sklearn-随机森林

1.决策树分类过程理解
决策树在进行分类是根据特征数据进行建立树结构模型,也许特征并未使用完全。
2.sklearn中随机森林分类器的参数使用注释,

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
data=load_wine()
xtrain,xtest,ytrain,ytest=train_test_split(data.data,data.target,test_size=0.3)
#实例化
dtc=DecisionTreeClassifier(random_state=25)
rfc=RandomForestClassifier(random_state=25)
#训练
dtc=dtc.fit(xtrain,ytrain)
rfc=rfc.fit(xtrain,ytrain)
dtc_score=dtc.score(xtest,ytest)
rfc_score=rfc.score(xtest,ytest)
print("决策树:{}".format(dtc_score),"随机森林:{}".format(rfc_score))

################################
#交叉验证
#实例化
#n_estimators 随机森林中所包含的模型数
dtc_list=[]
rfc_list=[]
for i in range(10):
    dtc=DecisionTreeClassifier()
    rfc=RandomForestClassifier(n_estimators=25)
    #训练
    dtc_list.append(cross_val_score(dtc,data.data,data.target,cv=10).mean())
    rfc_list.append(cross_val_score(rfc,data.data,data.target,cv=10).mean())
plt.plot(range(1,11),dtc_list,color="red",label="sigle model")
plt.plot(range(1,11),rfc_list,color="green",label="forest")
plt.xticks(range(1,11))
plt.legend()
plt.show()

#查看训练后基层树信息
rfc.estimators_
#使用交叉验证中未被抽到的样本作为测试集
#样本整体未被抽到的概率是1-0.63
rfc= RandomForestClassifier(n_estimators=25,random_state=20,oob_score=True)
rfc=rfc.fit(xtrain,ytrain)
rfc_score=rfc.score(xtest,ytest)
#查看oob作为验证集的测试结果
rfc.oob_score_
#查看特征在随机森林中重要性占比
[*zip(data.feature_names,rfc.feature_importances_)]
#查看测试集在决策树分的叶节点顺序
rfc.apply(xtest)
#对测试样本进行预测
rfc.predict(xtest)
#查看样本被分类概率
#基分类器的识别率要高于五十,否则随机森林的识别率会低于基分类器
rfc.predict_proba(xtest)

2.sklearn中随机森林回归器的主要用于连续结果的预测

from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston
boston=load_boston()
rfr=RandomForestRegressor(n_estimators=100,random_state=1)
#交叉验证
#默认输出结果R平方
cross_val_score(rfr,boston.data,boston.target,cv=10,scoring="neg_mean_squared_error")
#当不知道交叉验证打分参数选项是可根据以下代码
import sklearn
#查看交叉验证打分参数选项
sorted(sklearn.metrics.SCORERS.keys())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值