机器学习sklearn:随机森林的决策树

bg:对比决策树来说,搞多几棵树就是随机森林了

python 复制代码
rlf_1 = []
rlf_2 = []
for i in range(10):
    rfc = RandomForestClassifier(n_estimators=25)
    rfc_s = cross_val_score(rfc, wine.data, wine.target, cv=10).mean()
    rlf_1.append(rfc_s)
    clf = DecisionTreeClassifier()
    clf_s = cross_val_score(clf, wine.data, wine.target, cv=10).mean()
    rlf_2.append(clf_s)

plt.plot(range(1, 11), rlf_1, label="Random Forest")
plt.plot(range(1, 11), rlf_2, label="Decision Forest")
plt.legend()
plt.show()

一、参数

1、n_estimatiors

越大就效果越好,同时也消耗更多资源

python 复制代码
superpa = []
for i in range(200):
    rfc = RandomForestClassifier(n_estimators=i+1, n_jobs=-1)   # n_jobs是调整调用的cpu核心
    rfc_s = cross_val_score(rfc, wine.data, wine.target, cv=10).mean()
    superpa.append(rfc_s)
print(max(superpa), superpa.index(max(superpa)))
plt.figure(figsize=[20, 5])     # 调整生成的尺寸
plt.plot(range(1, 201), superpa)
plt.show()

2、n_jobs

调用的cpu核心,-1就是调用全部

3、oob_score

true的时候,所有的数据都会用于测试和训练,对单棵树自动分测试和训练集,如果想要整个森林的测试得分就直接"模型.oob_score_"。

二、接口

1、predict_proba

在每个target的概率