随机森林结果分析,随机森林是线性模型吗
使用随机森林模型来训练和交叉验证数据集。
数据矩阵:allmatrix标签:目标随机森林培训来自sk学习。集成导入随机森林分类器来自sk学习。模型_选择导入训练_测试_分割来自sk学习。模型选择导入交叉值得分来自sk学习。指标将混淆矩阵作为CM导入来自sk学习。指标导入accuracy _ score为ACCS Xtrain,Xtest,Ytrain,Ytest=train _ test _ split(all matrix,target,test_size=0.3,random _ state=420)RFC=RandomForestClassifier(n _ estimates=100格式(分数))RFC第一次培训测试分数:0.8417841962046704打印(培训数据分数:{} 。格式(rfc.score(Xtrain,Ytrain)))训练数据得分:0.99946644308091CM _ RFC=CM(Ytest,pred_rfc) cm_rfcarray([[23340,4507],[ 4389,23991]]) CV=5 cross_val交叉验证score_val=cross_val_score(rfc,allmatrix,target,cv=5)print( RFC n _ estimator=100 cv=5 corss验证分数:{ } .format(score _ val))RFC n _ estimator=100 cv=5 corss验证分数:[0.82998986 0.84630776 0.86231459 0.81141287 0.82240423]score _ val。平均值()0.8344848485增加n _ estimators=200 score=RFC 200。score(Xtest,Ytest)print( RFC n _ estimators=200训练测试分数:{} 。格式(分数))RFC n _ estimator=200训练测试分数:0.84733658207使用criterion=entropy RFC=RandomForestClassifier(n _ estimators=100,criterion= entropy ,random_state=90,n_jobs=-1) rfc=rfc.fit(Xtrain,Ytrain) rfc.score(Xtest,Ytest)0.8427445888985718 entr _ val=cross _ val _ score(RFC,allmatrix,target,cv=5) entr_valarray([0.83004322,0 .准确率低于默认参数时的模型
调整对于范围(2,22,2)中的我,最大深度scorel=[]:RFC=RandomForestClassifier(n _ estimators=130,n_jobs=-1,max_depth=i.随机状态=90).score=cross_val_score(rfc,allmatrix,target,cv=5).平均值().scorel.append(分数).打印(最大深度优化及其值)最大深度优化及其值print(max(scorel),((scorel。index(max(scorel))1)* 2))0.834336482169649 20影响不大调整max-features now()分数2=[]features=范围(35,71,5)I英寸特性:RFC=RandomForestClassifier(n _ estimators=100,n_jobs=-1,max_features=i,random_state=90).score=cross_val_score(rfc,allmatrix,target,cv=5).平均值().得分2。追加(得分)打印(最高(得分2),(特色[得分2。index(max(得分2))]))0.83686666666使用标准化后的数据模型效果无明显提升RFC=RandomForestClassifier(n _ estimators=100,random_state=90,n _ jobs=-1)RFC=RandomForestClassifier(n _ estimators=100,random_state=90,n _ jobs=-1)Xstd _ val=cross _ val _ score(RFC,X_std,target,cv=5) Xstd_valarray([0.83001654,0.84582755,0.86226123,0 .使用归一化的数据模型效果无明显提升从sklearn .预处理导入minmax scaler scaler=minmax scaler()X _ mm=scaler。fit _ transform(all matrix)/homes/xiaohu Zou/anaconda 3/lib/python 3.7/site-packages/sk learn/utils/validation。py:595:数据转换警告:输入数据类型为int16的数据被最小最大缩放器转换为浮动64 .warnings.warn(msg,DataConversionWarning)Xstd _ mm=cross _ val _ score(RFC,X_mm,target,cv=5) Xstd_mmarray([0.82974977,0.84718813,0.86228791,0.81135951,0.82240423])Xstd _ mm . mean()0.83459791111592结论使用随机森林模型最多只能使准确率达到84%左右,无法进一步提升。如果想要更好的表现,需要使用其他模型
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。