泰坦尼克:随机森林预测

2017-06-28  本文已影响0人  巴拉巴拉_9515
泰坦尼克

01、题目大纲

有两个数据集,一个train,一个test
根据训练集train探究生存率与其他因素的关系
然后在测试集test中根据已经得到的关系预测生存率

02、Megan Risdal:基于随机森林预测死亡率

学习Megan Risdal在kaggle上发布的代码

随机森林

作为新兴起的、高度灵活的一种机器学习算法,随机森林(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数据集预测
上一篇下一篇

猜你喜欢

热点阅读