机器学习之决策树和随机森林实践

一、决策树过拟合、剪枝以及评价

决策树拟合:
决策树对训练属于有很好的分类能力,但对未知的测试数据未必有好的分类能力,泛化能力弱,即可能发生过拟合现象;
决策树过拟合解决办法:剪枝,随机森林;
决策树剪枝:
决策树剪枝思路:
机器学习之决策树和随机森林实践
剪枝系数:
机器学习之决策树和随机森林实践
剪枝算法:
机器学习之决策树和随机森林实践

二、随机森林

BootStraping策略:
机器学习之决策树和随机森林实践
随机森林定义:
随机森林在bagging基础上做了修改:
1、从样本集中用Bootstrap采样选出n个样本;
2、从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;
3、重复以上两步m次,即建立了m棵CART决策树
4、这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类;
样本不均衡的常用处理方法:
机器学习之决策树和随机森林实践
随机森林(RF)计算样本间相似度:
机器学习之决策树和随机森林实践
随机森林(RF)计算特征重要度:
机器学习之决策树和随机森林实践
随机森林(RF)选择样本异常点:
机器学习之决策树和随机森林实践

三、决策树和随机森林代码总结

常用的函数:
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import pydotplus
部分代码实现
model = DecisionTreeClassifier(criterion=‘entropy’)
model.fit(x_train, y_train)
dot_data = tree.export_graphviz(model, out_file=None, feature_names=iris_feature_E, class_names=iris_class,
filled=True, rounded=True, special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)

clf = RandomForestClassifier(n_estimators=200, criterion=‘entropy’, max_depth=3)
clf.fit(x, y.ravel())