我有一个变量列表,我想从中训练随机森林算法。我怀疑我的一些输入变量具有嘈杂的分布,无法预测太多。我是否可以使用它们,知道算法会在此过程中消除它们,还是应该注意这些变量可能会影响我的模型?
随机森林算法如何处理一些不相关的输入变量
数据挖掘
随机森林
2021-10-01 19:23:11
1个回答
随机森林往往对预测能力低的特征不太敏感。原因是 RF 在给定每个节点的特征子集(列)和观察值(行)的情况下寻找“最佳分割”。因此,在大多数情况下(拆分),“弱”功能可能会被忽略。
但是,删除 最弱特征的百分比可能会提高模型的性能。如果您使用sklearn
,可以使用便利功能来执行此操作,例如SelectFromModel()
。有关更多详细信息,请参阅文档。
>>> from sklearn.ensemble import ExtraTreesClassifier
>>> from sklearn.datasets import load_iris
>>> from sklearn.feature_selection import SelectFromModel
>>> X, y = load_iris(return_X_y=True)
>>> X.shape
(150, 4)
>>> clf = ExtraTreesClassifier(n_estimators=50)
>>> clf = clf.fit(X, y)
>>> clf.feature_importances_
array([ 0.04..., 0.05..., 0.4..., 0.4...])
>>> model = SelectFromModel(clf, prefit=True)
>>> X_new = model.transform(X)
>>> X_new.shape
(150, 2)
其它你可能感兴趣的问题