推荐答案
// www.javascriptcn.com code example # 加载必要的包 library(caret) library(mlbench) # 加载数据集 data(PimaIndiansDiabetes) dataset <- PimaIndiansDiabetes # 设置随机种子以确保结果可重复 set.seed(123) # 划分训练集和测试集 trainIndex <- createDataPartition(dataset$diabetes, p = 0.8, list = FALSE) trainData <- dataset[trainIndex, ] testData <- dataset[-trainIndex, ] # 设置交叉验证参数 trainControl <- trainControl(method = "cv", number = 10) # 训练模型 model <- train(diabetes ~ ., data = trainData, method = "glm", trControl = trainControl) # 预测 predictions <- predict(model, testData) # 评估模型 confusionMatrix(predictions, testData$diabetes)
本题详细解读
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)