首页 > 编程知识 正文

随机森林算法举例,python随机森林选股

时间:2023-05-03 14:18:00 阅读:175637 作者:2310

随机森林主要应用于回归和分类。

可以输入大部分数据。 然后用爱丽思欧雅玛的数据进行分类和预测

环境python3.8

数据集光圈数据集

efdataset(self ) : iris=load_iris ) ) feature=PD.dataframe ) data=iris.data, columns=iris.feature _ names (target=PD.data frame (data=map ) lambda item 3360 iris.target _ names ) item,IRR feature_test,target_train,target _ test=_ train _ test _ } test _ size=0.3 ) return feature_train,featun

首先训练10个基分类器,每个基分类器是一个决策树; 在预测时统计性地逆运算各基分类器投票结果,选择投票数最多的结果,其中各树的生长状况如下

如果训练集中的案例数为n,则随机采样n个案例。 但是,将从原始数据中替换。 此示例将成为树木栽培培训集。

如果存在m输入变量,请指定数值mM,以便在每个节点上从m中随机选择m变量,这些m上的最佳分割用于节点分割。 在森林生长期间,m的值不变。

所有的树都尽可能地生长。 没有修剪。

浏览随机森林官方网站说明

fit训练

默认(self,feature=None,label=None ) ) :“”训练模型。 请将模型保存到self.models 3360 param feature 3360培训集数据中。 类型为ndarray3360。类型为nd array : return : none ' ' * * * * * * * * * begin * * * * * * * * begin n=len(feature ) forIinrangin frac=1采样可重复采集(采样仅包含特征数据) randomSamples=feature.sample(n ) n,replace=top axis=0) )在所有特征m中随机选择m个特征无重叠0.75表示4*0.75=3个特征random features=random samples.sample (frac=0. 75 ) axis=1) #标记此模型中选定的特征tags=self.connect (random features.columns.to list ) target_name #,其索引与示例中的索引相同将random lable=label.loc [ random samples.index.to list (, ) # for I,jinzip (random features.index.to list ) ] j ) model=DecisionTreeClassifier ) model=model.fit ) randomfeation random lable (self.models.append ) { tags : mord

defpredict(self,features, target ) :“”: param features :测试集数据,类型为ndarray :param target:测试集可重构,类型为ndarray :return: * * * * * * * begin * * * * * * * * * * * * # result=[ ] vote=[ ] formodelinself.models 3333 (0).split(000 ) ) 330 foriine ) forine )将r=list ) model.values #阵列转换为矩阵的第十行第四十五列对每棵树的投票结果进行排序,得到最大的v=sorted(counter(vote[:i] ).items )、key=lambda x: x[1]、 reverse=True ),并比较投票情况和实际标签(Prrot list(target(I ) ) result.append ) v(0) ) return result (* * * * * * * )

if _ _ name _=' _ _ main _ ' : BCF=bagging classifier (featureandtarget=BCF.dataset ) BCF.fit ) BCF.fit fatureandtarget [2] (RES=BCF.predict (features=featureandtarget [1],target=featureandtarget[3] ) target )

你知道精确度很高吧。 可以调整特征数m的参数,精度也不同。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。