泰坦尼克:随机森林预测
01、题目大纲
有两个数据集,一个train,一个test
根据训练集train探究生存率与其他因素的关系
然后在测试集test中根据已经得到的关系预测生存率
02、Megan Risdal:基于随机森林预测死亡率
随机森林
作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景
(1)随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器。是集成学习的其中一种模型。
(2)集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。
(3)从特征空间上直观地可以看出,随机森林比决策树拥有更强的分割能力
优点
(1)在当前所有算法中,具有极好的准确率
(2)能够有效地运行在大数据集上
(3)能够处理具有高维特征的输入样本,而且不需要降维
(4)能够评估各个特征在分类问题上的重要性
(5)在生成过程中,能够获取到内部生成误差的一种无偏估计
(6)对于缺省值问题也能够获得很好得结果
03、泰坦尼克随机森林预测生存率应用
3.1、数据集介绍
train数据集和test数据集有20个变量
train数据集有891行;test数据集有418行
数据集[1] "PassengerId" "Survived" "Pclass" "Name" "Sex" "Age" "SibSp" "Parch"
[9] "Ticket" "Fare" "Cabin" "Embarked" "Title" "Surname" "Fsize" "Family"
[17] "FsizeD" "Deck" "Child" "Mother"
3.2、随机森林预测
随机森林(Random Forest,简称RF)预测,在R中使用函数randomForest实现。
library(randomForest)
# Build the model (note: not all possible variables are used)
rf_model <- randomForest(factor(Survived) ~ Pclass + Sex + Age + SibSp + Parch +
Fare + Embarked + Title +
FsizeD + Child + Mother,
data = train)
Call:
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 3
OOB estimate of error rate: 16.72%----------------->模型误差为16.72%
Confusion matrix模糊矩阵:
0 | 1 | 分类误差class.error | |
---|---|---|---|
0 | 496 | 53 | 0.09653916 |
1 | 96 | 246 | 0.28070175 |
3.3、变量权重分布
使用importance函数计算变量对死亡率影响的权重。
可以发现基于随机森林计算的死亡率预测,主要因素是身份、票价、性别、年龄以及船舱等级。
主要影响因素
importance <- importance(rf_model)
变量权重
3.4、模型评价
黑线显示的总错误率低于20%。
红色和绿色的线分别显示了“死亡”和“幸存”的误差率
显然红色的死亡率预测效果比较好,绿色的生存率预测效果则比总错误率要高
3.5、测试集预测
使用函数predict,基于train数据集的随机森林,预测test数据集的生存与死亡情况
prediction <- predict(rf_model, test)
test数据集预测