1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 机器学习 ||《菜菜的sklearn机器学习》笔记——2 随机森林

机器学习 ||《菜菜的sklearn机器学习》笔记——2 随机森林

时间:2023-06-13 23:42:29

相关推荐

机器学习 ||《菜菜的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_splitfrom sklearn.model_selection import cross_val_scoreimport matplotlib.pyplot as pltwine=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返回每个测试样本对应的被分到每一类标签的概率,标签有几个分类就返回几个概率。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。