这篇文章主要介绍了大蟒实现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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。