应用中位数插补
在本章中,您将使用一个经过处理的 Wisconsin Breast Cancer 数据集。这个数据集是一个经典的二分类问题:50% 的样本为良性,50% 为恶性,目标是区分二者。
这个数据集的特点是,许多预测变量包含缺失值,而且大多数行至少有一个缺失值。这对建模提出了挑战,因为大多数机器学习算法并不能直接处理缺失值。例如,您的第一反应可能是对该数据拟合逻辑回归模型,但在此之前,您需要先制定处理 NA 的策略。
幸运的是,caret 中的 train() 函数包含一个名为 preProcess 的参数,您可以通过它指定使用中位数插补来填补缺失值。在前面的章节中,您已经使用过 train() 函数并通过类似 y ~ . 的公式来创建模型。另一种方式是向 train() 指定 x 和 y 参数,其中 x 是一个按行存放样本、按列存放特征的对象,y 是一个包含结果的数值或因子向量。换句话说,x 是一个矩阵或数据框,包含了您在调用 lm() 时会放入 data 参数的整张数据表,但不包含响应变量列;y 则是仅包含响应变量列的向量。
在本练习中,传给 train() 的参数 x 已作为 breast_cancer_x 加载到您的工作区中,y 则为 breast_cancer_y。
本练习是课程的一部分
在 R 中使用 caret 的机器学习
练习说明
- 使用
train()函数在乳腺癌数据集上拟合一个名为median_model的glm模型。使用preProcess = "medianImpute"来处理缺失值。 - 将
median_model打印到控制台。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Apply median imputation: median_model
median_model <- train(
x = ___,
y = ___,
method = ___,
trControl = myControl,
preProcess = ___
)
# Print median_model to console