📅  最后修改于: 2023-12-03 15:34:35.433000             🧑  作者: Mango
predict
函数predict
函数是 R 编程语言中一个非常常用的函数,用于预测模型对新数据的响应。该函数包含多个选项,其中包括 type
和 prob
选项。本文将重点介绍 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$,因为数据集中有三个类别)。