Random Forest(sklearn参数详解)

本篇不是介绍RF的,关于RF网上有很多通俗易懂的解释
西瓜书与统计学习方法等很多教材中的解释也都足够
本篇仅针对如何使用sklearn中的RandomForestClassifier作记录

一、代码怎么写

class sklearn.ensemble.RandomForestClassifier(n_estimators=10, crite-rion=’gini’, max_depth=None,  
min_samples_split=2, min_samples_leaf=1,  
min_weight_fraction_leaf=0.0,  
max_features=’auto’,  
max_leaf_nodes=None, bootstrap=True,  
oob_score=False, n_jobs=1, ran-dom_state=None, verbose=0,  
warm_start=False, class_weight=None)  

二、关于参数

其中关于决策树的参数:

criterion: ”gini” or “entropy”(default=”gini”)是计算属性的gini(基尼不纯度)还是entropy(信息增益),来选择最合适的节点。

splitter: ”best” or “random”(default=”best”)随机选择属性还是选择不纯度最大的属性,建议用默认。

max_features: 选择最适属性时划分的特征不能超过此值。

当为整数时,即最大特征数;当为小数时,训练集特征数*小数;

if “auto”, then max_features=sqrt(n_features).

If “sqrt”, thenmax_features=sqrt(n_features).

If “log2”, thenmax_features=log2(n_features).

If None, then max_features=n_features.

max_depth: (default=None)设置树的最大深度,默认为None,这样建树时,会使每一个叶节点只有一个类别,或是达到min_samples_split。

min_samples_split:根据属性划分节点时,每个划分最少的样本数。

min_samples_leaf:叶子节点最少的样本数。

max_leaf_nodes: (default=None)叶子树的最大样本数。

min_weight_fraction_leaf: (default=0) 叶子节点所需要的最小权值

verbose:(default=0) 是否显示任务进程

关于随机森林特有的参数:

n_estimators=10:决策树的个数,越多越好,但是性能就会越差,至少100左右(具体数字忘记从哪里来的了)可以达到可接受的性能和误差率。 

bootstrap=True是否有放回的采样。  

oob_score=Falseoob(out of band,带外)数据,即:在某次决策树训练中没有被bootstrap选中的数据。多单个模型的参数训练,我们知道可以用cross validation(cv)来进行,但是特别消耗时间,而且对于随机森林这种情况也没有大的必要,所以就用这个数据对决策树模型进行验证,算是一个简单的交叉验证。性能消耗小,但是效果不错。  

n_jobs=1并行job个数。这个在ensemble算法中非常重要,尤其是bagging(而非boosting,因为boosting的每次迭代之间有影响,所以很难进行并行化),因为可以并行从而提高性能。1=不并行;n:n个并行;-1:CPU有多少core,就启动多少job

warm_start=False热启动,决定是否使用上次调用该类的结果然后增加新的。  

class_weight=None各个label的权重。  


进行预测可以有几种形式:

predict_proba(x):给出带有概率值的结果。每个点在所有label的概率和为1.  

predict(x):直接给出预测结果。内部还是调用的predict_proba(),根据概率的结果看哪个类型的预测值最高就是哪个类型。  

predict_log_proba(x):和predict_proba基本上一样,只是把结果给做了log()处理。  

  • 27
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Isolation Forest是一种异常检测算法,可用于识别数据集中的异常值。Sklearn是一个Python机器学习库,提供了Isolation Forest算法的实现。 Isolation Forest基于以下两个概念来检测异常值:孤立实例和孤立树。孤立实例是数据集中的少数异常点,而孤立树是通过随机选择和分割特征来建立的二叉树。算法通过计算数据实例在树中的深度来评估其异常程度。异常点被认为是通过较少的路径被孤立,而正常点通常需要更多的路径来被孤立。 使用sklearn库中的Isolation Forest算法,我们可以按照以下步骤来进行异常检测。 首先,导入必要的库和数据集。使用sklearn.ensemble模块中的IsolationForest类来创建模型。 ``` import numpy as np from sklearn.ensemble import IsolationForest # 创建模型 model = IsolationForest(n_estimators=100, contamination=0.05, random_state=42) ``` 然后,我们可以使用模型的fit()方法来训练 Isolation Forest模型。 ``` # 训练模型 model.fit(data) ``` 在训练完成后,我们可以使用predict()方法来预测数据中的异常值。预测结果是-1表示异常值,1表示正常值。 ``` # 预测异常值 predictions = model.predict(data) ``` 最后,我们可以根据预测结果来标记和分析数据中的异常值。 需要注意的是,在使用Isolation Forest算法时,需要调整一些重要参数。例如,n_estimators参数表示建立孤立树的数量,contamination参数表示数据集中异常值的比例,我们可能需要根据实际情况进行调整。 总的来说,通过使用sklearn中的Isolation Forest算法,我们可以简单方便地进行异常检测,对于发现数据集中的异常值具有较好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值