R语言机器学习系列-随机森林多分类代码解读

多分类问题指的是因变量或者被预测变量是分类变量,且其取值水平有多个水平的情形,比如预测病人糖尿病分期的情形。整个代码大致可以分为包、数据、模型、预测评估4个部分,接下来逐一解读。

1、包部分,也就是加载各类包,包括随机森林包randomForest,数据相关包tidyverse、skimr、DataExplorer,模型评估包caret、pROC。

2、数据部分,主要是读取数据,处理缺失值,转换变量类型。此处要确保因变量被处理为factor,这样才能在训练模型时才会被自动识别成分类模型。

3、模型部分。

为了对模型的泛化能力有更准确的评估,先将数据集拆为训练集和测试集,后续将在训练集上训练模型,然后以测试集上的结果评估模型泛化能力。

模型训练部分及模型结果部分的代码如下:

# 因变量自变量构建公式
colnames(winequalityred)
form_clsm <- as.formula(
  paste0(
    "quality ~ ", 
    paste(colnames(traindata)[1:11], collapse = " + ")
  )
)
form_clsm

# 构建模型
set.seed(42) # 保证结果的可重复性
fit_rf_clsm <- randomForest(
  form_clsm,
  data = traindata,
  ntree = 500, # 决策树棵数
  mtry = 6, # 每个节点可供选择的变量数目
  importance = T # 输出变量重要性
)

# 模型概况
fit_rf_clsm

# ntree参数与error之间的关系图示
plot(fit_rf_clsm, main = "ERROR & TREES")

你可能感兴趣的:(R语言大学作业,机器学习,决策树,算法)