,,python实现H2O中的随机森林算法介绍及其项目实战

,,python实现H2O中的随机森林算法介绍及其项目实战

这篇文章主要介绍了大蟒实现H2O中的随机森林算法介绍及其项目实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

2O中的随机森林算法介绍及其项目实战(python实现)

包的引入:来自H2O。评估人员。随机_森林导入h2orandomforestestestimator

H2ORandomForestEstimator 的常用方法和参数介绍:

(一)建模方法:

模型=H2 orandomforestestestimator(n trees=n,max_depth=m)

model.train(x=random_pv.names,y='Catrgory ',training_frame=trainData)

通过列车数据来构建随机森林模型,模型。火车中的列车数据:训练集,x:预测变量名称,y:预测响应变量的名称

(二)预测方法:

H2 orandomforestestestimator。预测(模型,测试数据)利用训练好的模型来对测试集进行预测,其中的型号:训练好的模型,测试数据:测试集。

(三)算法参数说明:

(1)ntrees:构建模型时要生成的树的棵树。

(2)最大深度:每棵树的最大深度。

项目要求:

题目一:利用train.csv中的数据,通过H2O框架中的随机森林算法构建分类模型,然后利用模型对test.csv中的数据进行预测,并计算分类的准确度进而评价模型的分类效果;通过调节参数,观察分类准确度的变化情况。注:准确度=预测正确的数占样本数的比例

题目二:通过H2o流量的随机森林算法,用同题目一中所用同样的训练数据和参数,构建模型;参看模型中特征的重要性程度,从中选取前8个特征,再去训练模型,并重新预测结果,进而计算分类的准确度。

需求完成内容:2个题目的代码,认为最好的准确度的输出值和试验数据与预测结果合并后的数据集,命名为预测。战斗支援车

大蟒实现代码如下:

(1) 题目一:

#手动进行调节参数得到最好的准确率

进口熊猫作为螺纹中径

将numpy作为铭牌导入

将matplotlib.pyplot作为plt导入

导入h2o

h2o.init()

从h2o.estimators.random_forest导入h2orandomforestestestimator

从__未来_ _进口部门

df=h2o.import_file('train.csv ')

trainData=df[2:]

模型=H2 orandomforestestestimator(n trees=6,max_depth=16)

model.train(x=trainData.names,y='Catrgory ',training_frame=trainData)

df2=h2o.import_file('test.csv ')

test_data=df2[2:]

H2 orandomforestestestimator。预测(模型,测试数据)

predict=df2.concat(pre_tag)

df new=predict[predict[' Catrgory ']==predict[' predict ']]

精度=df新值。nrow/预测。nrow

打印(精确)

h2o.download_csv(predict,' predict.csv ')

运行结果最好为87.0833%-6-16,如下

#for循环进行调节参数得到最好的准确率

进口熊猫作为螺纹中径

将numpy作为铭牌导入

将matplotlib.pyplot作为plt导入

导入h2o

h2o.init()

从h2o.estimators.random_forest导入h2orandomforestestestimator

从__未来_ _进口部门

df=h2o.import_file('train.csv ')

trainData=df[2:]

df2=h2o.import_file('test.csv ')

test_data=df2[2:]

精度=0

nt=0

md=0

对于范围内的一(1.50):

对于范围(1,50)内的j:

模型=H2 orandomforestestestimator(ntrees=I,max_depth=j)

model.train(x=trainData.names,y='Catrgory ',training_frame=trainData)

H2 orandomforestestestimator。预测(模型,测试数据)

predict=df2.concat(pre_tag)

df new=predict[predict[' Catrgory ']==predict[' predict ']]

p=dfnew.nrow/predict.nrow

如果精度p:

精度=p

nt=i

md=j

打印(精确)

打印(一)

印刷(j)

h2o.download_csv(predict,' predict.csv ')

运行结果最好为87.5%-49-49,如下

(2)题目二:建模如下,之后挑出排名前8的特征进行再次建模

#手动调节参数得到最大准确率

进口熊猫作为螺纹中径

将numpy作为铭牌导入

将matplotlib.pyplot作为plt导入

导入h2o

h2o.init()

从h2o.estimators.random_forest导入h2orandomforestestestimator

从__未来_ _进口部门

df=h2o.import_file('train.csv ')

trainData=df[['Average_speed ',' r_a ',' r_b ',' v_a ',' v_d ',' Average_RPM ',' Variance_speed ',' v_c ',' Catrgory']]

df2=h2o.import_file('test.csv ')

test_data=df2[['Average_speed ',' r_a ',' r_b ',' v_a ',' v_d ',' Average_RPM ',' Variance_speed ',' v_c ',' Catrgory']]

model=H2 orandomforestestestimator(ntrees=5,max_depth=18)

model.train(x=trainData.names,y='Catrgory ',training_frame=trainData)

H2 orandomforestestestimator。预测(模型,测试数据)

predict=df2.concat(pre_tag)

df new=predict[predict[' Catrgory ']==predict[' predict ']]

精度=df新值。nrow/预测。nrow

打印(精确)

h2o.download_csv(predict,' predict.csv ')

运行结果最好为87.5%-5-18,如下

#for循环调节参数得到最大正确率

进口熊猫作为螺纹中径

将numpy作为铭牌导入

将matplotlib.pyplot作为plt导入

导入h2o

h2o.init()

从h2o.estimators.random_forest导入h2orandomforestestestimator

从__未来_ _进口部门

df=h2o.import_file('train.csv ')

trainData=df[['Average_speed ',' r_a ',' r_b ',' v_a ',' v_d ',' Average_RPM ',' Variance_speed ',' v_c ',' Catrgory']]

df2=h2o.import_file('test.csv ')

test_data=df2[['Average_speed ',' r_a ',' r_b ',' v_a ',' v_d ',' Average_RPM ',' Variance_speed ',' v_c ',' Catrgory']]

精度=0

nt=0

md=0

对于范围内的一(1.50):

对于范围(1,50)内的j:

模型=H2 orandomforestestestimator(ntrees=I,max_depth=j)

model.train(x=trainData.names,y='Catrgory ',training_frame=trainData)

H2 orandomforestestestimator。预测(模型,测试数据)

predict=df2.concat(pre_tag)

df new=predict[predict[' Catrgory ']==predict[' predict ']]

p=dfnew.nrow/predict.nrow

如果精度p:

精度=p

nt=i

md=j

打印(精确)

打印(一)

印刷(j)

h2o.download_csv(predict,' predict.csv ')

运行结果最好为87.5%-49-49,如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: