机器学习实验---random forest的实现~

导语

辣么,如题这篇就是要搞定random forest的实现了~怎么实现呢?当然是用库了,要我自己写怎么可能写得出来。库的选择是用sklearn。

实现步骤

第一步:当然是导入库了。
第二步:导入了之后我们简单的给出样本(0,0,0)和(1,1,1)这两个样本
第三步:我们调用RandomForest分类器为clf
第四步:使用样本对该分类其进行训练
写成python的代码就是如下所示

>>> from sklearn.ensemble import RandomForestClassifier
>>> X = [[0, 0], [1, 1]]
>>> Y = [0, 1]
>>> clf = RandomForestClassifier(n_estimators=10)
>>> clf = clf.fit(X, Y)

我们暂且不管n_estimators=10这个语句

继续按照我们熟悉的思路,在训练好了分类器之后,我们自然想着要调用训练好的分类器对测试集进行预测~

第五步:这时候我们首先准备好测试集,然后调用所定义分类其的predict方法即可对测试集进行预测。

>>> X1 = [[0,1],[1,0]]
>>> Y1 = [[0],[1]]
>>> clf.predict(X1)

第六步:对分类的结果进行检验。这个当然是用循环啦,具体的代码我也不再这里演示了。

这里我说一些需要注意的地方吧,就是在使用predict的时候,需要输出的不仅仅是一个list,而且是一个元素为list的list,最后给出的array是按照顺序把为每一个list元素当作特征向量输出的标签。
(以上部分内容可参考官网手册http://scikit-learn.org/stable/modules/ensemble.html#forests-of-randomized-trees


进阶调参

了解了random forest的一般调用方法,我们再来侃一侃随机森林的参数调整,即知道每个参数大致的含义。

n_estimators:显然这个参数使随机森林的重要参数之一,它表示的是森林里树的个数(这个话写得我自己都有点懵逼),理论上越大越好(嗯嗯,如果你配置足够好的话)。

max_features:这个参数的官方名称是随机选择特征集合的自己和的个数,如果个数越少,方差就会减少得越快。通常情况我们的max_features取默认值,但是如果样本的特征数非常多,我们就让max_featrues=sqrt(n_features)。

当然还有很多其他的参数啦,比如max_depth,min_samples_split什么的,但是我们现在先暂时解释这两个参数吧。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值