推荐答案
-- -------------------- ---- ------- - ------ -------------- ---------------- - ----- ------------------------- ------- -- ------------------- - -------------- ------------- - --------- ---------- -- ------------------------------------- - - ---- ---- - ------ --------- -- ------------------- - -------- -- -------------------- - - -------- ------------ -- ------------------- - ----- ------ - --- - ---- ----- -- -------------- - -- ---- - ---------- ------ - ------ --------- - ------------- - -- ----------- -- -------------- --------- - ---- ---------------------------- ------------------
本题详细解读
1. 加载必要的包
首先,我们需要加载 caret
包和 mlbench
包。caret
包提供了模型训练和评估的工具,而 mlbench
包包含了一些常用的数据集。
library(caret) library(mlbench)
2. 加载数据集
我们使用 mlbench
包中的 PimaIndiansDiabetes
数据集作为示例数据集。
data(PimaIndiansDiabetes) dataset <- PimaIndiansDiabetes
3. 设置随机种子
为了确保结果的可重复性,我们设置一个随机种子。
set.seed(123)
4. 划分训练集和测试集
使用 createDataPartition
函数将数据集划分为训练集和测试集,其中 80% 的数据用于训练,20% 的数据用于测试。
trainIndex <- createDataPartition(dataset$diabetes, p = 0.8, list = FALSE) trainData <- dataset[trainIndex, ] testData <- dataset[-trainIndex, ]
5. 设置交叉验证参数
我们使用 10 折交叉验证来训练模型。trainControl
函数用于设置交叉验证的参数。
trainControl <- trainControl(method = "cv", number = 10)
6. 训练模型
使用 train
函数训练模型。这里我们使用广义线性模型(glm
)作为示例模型。
model <- train(diabetes ~ ., data = trainData, method = "glm", trControl = trainControl)
7. 预测
使用训练好的模型对测试集进行预测。
predictions <- predict(model, testData)
8. 评估模型
最后,使用 confusionMatrix
函数评估模型的性能,输出混淆矩阵和相关的统计指标。
confusionMatrix(predictions, testData$diabetes)