![cover](https://img-blog.csdnimg.cn/5b7f67d103a54487bea12154b0da77c5.png)
机器学习 ||《菜菜的sklearn机器学习》笔记——2 随机森林
【代码】机器学习 ||《菜菜的sklearn机器学习》笔记——2 随机森林。
·
1 集成算法
- 集成学习 非常流行的机器学习算法,通过在数据上构建多个模型,集成所有模型的结果。
- 多个模型集成成为的模型叫做集成评估器,其中的每个模型叫做基评估器。通常来说,有三类集成算法:袋装法(Bagging)、提升法(Boosting)、stacking。
- Bagging:构建多个独立平行的评估器,对其预测进行平均或多数表决原则来决定结果。
- Boosting:基评估器是相关的,按顺序一一建造的。
2 RandomForestClassifier 随机森林
- n_estimators:
森林中树木的数量。
越大,模型效果往往最好,需要的计算量内存也越大,达到一定程度之后,随机森林的精确性往往不再上升或者停止波动。
#代码与决策树基本一致
from sklearn.tree import RandomForestClassifier #导入需要的模块
rfc = RandomForestClassfier() #实例化
rfc = rfc.fit(X_train, Y_train) #用训练集数据训练模型
result = rfc.score(X_test,Y_test) #导入测试集,从接口中调用需要的信息
- 来建立一片森林吧
#随机森林和单个决策树的对比
%matplotlib inline
from sklearn.tree import DecisionTreeClassifier #构建决策树
from sklearn.ensemble import RandomForestClassifier #随机森林分类器
from sklearn.datasets import load_wine #加载Wine数据集
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
wine=load_wine() #导入红酒数据集
"""
X_train, X_test, Y_train, Y_test = train_test_split(wine.data, wine.target, test_size = 0.3)
#单个决策树
clf = DecisionTreeClassifier(random_state = 0) # random_state 随机种子 确定固定值
clf = clf.fit(X_train,Y_train)
score_c = clf.score(X_test,Y_test)
#随机森林
rfc = RandomForestClassifier(random_state = 0)
rfc = rfc.fit(X_train,Y_train)
score_r = rfc.score(X_test,Y_test)
"""
#在十组交叉验证的效果对比
rfc_l = []
clf_l = []
for i in range(10):
rfc = RandomForestClassifier(n_estimators=25) #n_estimators 森林中树的个数
rfc_s = cross_val_score(rfc, wine.data, wine.target, cv=10).mean() #cv 交叉验证的折数k的。常用的cv值有5、10等
rfc_l.append(rfc_s)
clf = DecisionTreeClassifier()
clf_s = cross_val_score(clf, wine.data, wine.target, cv=10).mean()
clf_l.append(clf_s)
plt.plot(range(1,11), rfc_l, label = "Random Forest")
plt.plot(range(1,11), clf_l, label = "Decision Tree")
plt.legend() #添加图例
plt.show()
.estimators
- 随机森林中所有树的列表
.oob_score_
- 袋外得分。对训练集放回抽样不断组成新的训练集时总有一些数据从来没有被随机挑选到,称为“袋外数据”,sklearn可以用他们来测试模型,测试的结果就用“
obb_score_”来导出
.feature_importance_
- 输出各个特征的重要性。
apply, fit, predict, score 以及 predict_proba 五个接口
- apply返回每个测试样本所在的叶子节点的索引;
- predict返回每个测试样本的分类/回归结果;
- predict_proba返回每个测试样本对应的被分到每一类标签的概率,标签有几个分类就返回几个概率。
更多推荐
所有评论(0)