class sklearn.ensemble.RandomForestClassifier(n_estimators=10,
criterion='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,
random_state=None,
verbose=0,
warm_start=False,
class_weight=None)
我正在使用一个随机森林模型,包含9个样本和大约7000个属性。在这些样本中,我的分类器识别出3个类别。
我知道这远非理想条件,但我试图找出哪些属性在特征预测中最重要。哪些参数最适合优化功能重要性?
我尝试了不同的n_estimators
并注意到“重要功能”(即feature_importances_
数组中的非零值)的数量急剧增加。
我已经阅读了文档,但如果有人对此有任何经验,我想知道哪些参数最适合调整,并简要解释原因。
答案 0 :(得分:50)
根据我的经验,按照重要性的顺序,使用sklearn RandomForestClassifier有三个值得探索的功能:
n_estimators
max_features
criterion
n_estimators
并不值得优化。你给它的估算越多,它就越好。通常足够500或1000。
max_features
值得探索许多不同的价值观。它可能会对RF的行为产生很大影响,因为它决定了RF中每棵树在每次拆分时考虑的特征数量。
criterion
可能会产生很小的影响,但通常默认情况很好。如果你有时间,试试吧。
在尝试使用这些参数时,请务必使用sklearn的GridSearch(最好是GridSearchCV,但数据集尺寸太小)。
如果我正确理解你的问题,你只有9个样本和3个类?大概每班3个样本?你的RF很可能会用少量的数据过度拟合,除非它们是好的,有代表性的记录。
答案 1 :(得分:18)
关键部分通常有三个要素:
答案 2 :(得分:5)
This精彩文章详细解释了可调参数,如何跟踪性能与速度权衡,一些实用技巧以及如何执行网格搜索。
答案 3 :(得分:1)
n_estimators
是好的。增加它时,它也很擅长处理过度拟合。
但我认为min_sample_split
在处理小样本但功能较强的数据集中出现过度拟合时也很有用。