📜  r predict type = prob - R 编程语言(1)

📅  最后修改于: 2023-12-03 15:34:35.433000             🧑  作者: Mango

R 编程语言中的predict函数

predict函数是 R 编程语言中一个非常常用的函数,用于预测模型对新数据的响应。该函数包含多个选项,其中包括 typeprob 选项。本文将重点介绍 type = prob 选项。

type = prob 选项

type = prob 选项用于预测模型对新数据的响应概率。这通常用于二分类和多分类问题中,例如预测一个疾病是否会发生或一个物品属于哪个组别。在这些问题中,我们通常关心每个类别的概率,而不仅仅是最终的预测类别。

type = prob 选项将返回一张矩阵,其中每一行都是观测值的概率估计,每一列代表一个类别。

在模型的训练过程中,必须确保模型支持这个选项,并且必须在模型训练前将它设置好。

示例

我们以下面的代码为例,使用一个简单的逻辑回归模型和鸢尾花数据集来演示如何使用 type = prob 选项:

# 加载数据集
data(iris)

# 划分训练集和测试集
train <- sample(nrow(iris), 0.7 * nrow(iris))
train_data <- iris[train, ]
test_data <- iris[-train, ]

# 训练逻辑回归模型
model <- glm(Species ~ ., data = train_data, family = "binomial")

# 预测测试集的类别
predictions <- predict(model, newdata = test_data, type = "response")
probabilities <- predict(model, newdata = test_data, type = "prob")

# 结果
head(predictions)
head(probabilities)

在这个例子中,我们首先用 sample 函数将数据集分割成训练集和测试集。然后我们用 glm 函数建立一个逻辑回归模型。在训练完成后,我们使用 predict 函数来对测试集进行预测。我们分别使用 type = "response"type = "prob" 选项进行预测,然后打印出结果。

结果的前几行展示如下:

# 预测类型
> head(predictions)
         6         7         14        21        27        29 
0.0007531 0.0008156 0.0695226 0.0006831 0.0037828 0.0420517 

# 预测概率
> head(probabilities)
              setosa  versicolor    virginica
[1,] 0.0000000033962 0.000179556 0.9998204439
[2,] 0.0000000202553 0.000219534 0.9997802113
[3,] 0.0000045859419 0.237187798 0.7628076163
[4,] 0.0000000022600 0.000174463 0.9998255354
[5,] 0.0000013502161 0.996217224 0.0037814265
[6,] 0.0001022465114 0.957948268 0.0429494843

我们可以看到,predictions 返回的是每个观测值预测的类型,它不带有关于每个预测类别的概率信息。而 probabilities 返回的是每个类别的概率估计,我们可以看到,它是一个 $n\times k$ 大小的矩阵,其中 $n$ 是测试集的观测数,$k$ 是类别数(在这个例子中是 $k = 3$,因为数据集中有三个类别)。