还剩2页未读,继续阅读
文本内容:
随机森林简单回归预测RandomForest随机森林是方法的一种具体实现它会训练多棵决策树,然后将这些结果融合在一起bagging就是最终的结果随机森林可以用于分裂,也可以用于回归主要在于决策树类型的选取,根据具体的任务选择具体类别的决策树对于分类问题,一个测试样本会送到每一颗决策树中进行预测,然后投票,得票最多的类为最终的分类结果;对于回归问题,随机森林的预测结果是所有决策树输出的均值本文介绍利用随机森林进行时间序列的简单回归预测,满足大部分科研需求介绍随机森林的优点在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合,但是对于小数据集还是有可能过拟合,所以还是要注意;两个随机性的引入,使得随机森林具有很好的抗噪能力;它能够处理很高维的数据,并且不用做特征选择,对数据集的适应能力强既能处理离散性数据,也能处理连续型数据,数据集无需规范化;在创建随机森林的时候,对使用的是无偏估计;generalization error训练速度快,可以得到变量重要性排序;在训练过程中,能够检测到间的互影响;feature容易做成并行化方法;实现比较简单随机森林的缺点对于小数据集和低维的数据效果可能不是很好整个模型为黑盒,没有很强的解释性由于随机森林的两个随机性,导致运行结果不稳定数据准备安装所需要的库pypip installsklearn导入所需要的包import numpyas npimportmatplotlib.pyplot aspitfrom sklearn.ensemble importRandomForestRegressorfrom sklearn.model_selection importtrain_test_splitfrom sklearn.multioutput importMultiOutputRegressor单输出回归预测给定输入的单个数字输出随机构建训练集和测试集rng=np.random.RandomStatelX=np.sort200*rng.rand600,1-100,axis=0y=np.array[np.pi*np.sinX.ravel].Ty+=
0.5-rng.rand*y.shape和的为#x yshape600,1600,1X_train,X_test,y_train,y_test=train_test_splitX,y,train_size=400,test_size=200,random_state=4的#X_train,X_test,y_train,y_test shape#为400200400,1200构建模型并进行预测#定义模型regr_rf=RandomForestRegressorn_estimators=100,max_depth=30,random__state=2#集合模型regr_rf.fitX_train y_train/#利用预测y_rf=regr_rf.predictX_test#评价printregr_rf.scoreX_test,y_test作图plt.figures=50a=
0.4plt.scatterX_test,y_test,edgecolor=k,c=navy,s=s,marker=s alpha=a,label=“Data”/plt.scatterX_test,y_rf,edgecolor=kJc=c,s=s,marker=A,alpha=a,」label=RF score=%.2f%regr f.scoreX_test,y_testplt.xlim[-6,6]plt.xlabelX_testplt.ylabeltargetplt.titleComparing randomforests andthe testplt.legendplt.show多输出回归根据输入预测两个或多个数字输出随机构建训练集和测试集,这里构建的是一个对应两个x ymg=np.random.RandomStatelX=np.sort200*rng.rand600,1-100,axis=0y=np.array[np.pi*np.sinX.ravel np.pi*np.cosX.ravel].Tzy+=
0.5-rng.rand*y.shape和的为#x yshape600,1600,2X_train,X_test,y_train,y_test=train_test_splitX,y,train_size=400,test_size=200,random_state=4#的X_train,X_test,y_train,y_test shape#为构建模型并进行预测400,1200,2400,1200,2这里尝试了利用随机森林和包装器类两种方法#定义模型max_depth=30regr_multirf=MultiOutputRegressorRandomForestRegressorn_estimators=100z#拟合模型max_depth=max_depth,random_state=0regr_multirf.fitX__train,y_train#定义模型regr_rf=RandomForestRegressorn_estimators=100,max_depth=max_depth random_state=2z#拟合regr_rf.fitX_train,y_train#预测y_multirf=regr_multirf.predictX_testy_rf=regr_rf.predictX_test作图plt.figures=50a=
0.4plt.scattery_test[:,0],y_test[:,1],edgecolor=k,c=navy,s=s marker=s alpha=a,label=Dataz匕二plt.scattery_multirf[:,0],y_multirf1],edgecolor k,c=cornflowerblue s=s,alpha=a,/label=Multi RF score=%.2f%regr_multirf.scoreX_test,y_testplt.scattery_rf[:,0],y_rf[:,1],edgecolor=k,c=,c,s=s,marker=A,alpha=a,label=RFscore=%.2f%regr__rf.scoreX_test,y_testplt.xlim[-6,6]plt.ylim[-6,6]plt.xlabeltarget1plt.ylabeltarget2plt.titleComparing randomforests andthe multi-output metaestimatorplt.legendplt.show版权声明本文为博主「遥感迷」的原创文章,遵循版权协议,转载请附上CSDN CC
4.0BY-SA原文出处链接及本声明原文链接。
个人认证
优秀文档
获得点赞 0