开始使用免费开始使用

应用中位数插补

在本章中,您将使用一个经过处理的 Wisconsin Breast Cancer 数据集。这个数据集是一个经典的二分类问题:50% 的样本为良性,50% 为恶性,目标是区分二者。

这个数据集的特点是,许多预测变量包含缺失值,而且大多数行至少有一个缺失值。这对建模提出了挑战,因为大多数机器学习算法并不能直接处理缺失值。例如,您的第一反应可能是对该数据拟合逻辑回归模型,但在此之前,您需要先制定处理 NA 的策略。

幸运的是,caret 中的 train() 函数包含一个名为 preProcess 的参数,您可以通过它指定使用中位数插补来填补缺失值。在前面的章节中,您已经使用过 train() 函数并通过类似 y ~ . 的公式来创建模型。另一种方式是向 train() 指定 xy 参数,其中 x 是一个按行存放样本、按列存放特征的对象,y 是一个包含结果的数值或因子向量。换句话说,x 是一个矩阵或数据框,包含了您在调用 lm() 时会放入 data 参数的整张数据表,但不包含响应变量列;y 则是仅包含响应变量列的向量。

在本练习中,传给 train() 的参数 x 已作为 breast_cancer_x 加载到您的工作区中,y 则为 breast_cancer_y

本练习是课程的一部分

在 R 中使用 caret 的机器学习

查看课程

练习说明

  • 使用 train() 函数在乳腺癌数据集上拟合一个名为 median_modelglm 模型。使用 preProcess = "medianImpute" 来处理缺失值。
  • median_model 打印到控制台。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Apply median imputation: median_model
median_model <- train(
  x = ___, 
  y = ___,
  method = ___,
  trControl = myControl,
  preProcess = ___
)

# Print median_model to console
编辑并运行代码