获取随机森林回归器训练期间使用的特征列表
Posted
技术标签:
【中文标题】获取随机森林回归器训练期间使用的特征列表【英文标题】:Getting the list of features used during training of Random Forest Regressor 【发布时间】:2019-03-22 12:54:52 【问题描述】:我使用一组数据来学习随机森林回归器,现在我有另一个特征数量较少的数据集(前一组的子集)。
是否有一个函数可以获取随机森林回归模型训练期间使用的列名称列表? 如果没有,那么是否有一个函数可以为缺失的列分配 Nulls?
【问题讨论】:
你在使用scikit-learn
吗?
@vealkind- 是的。
“是否有一个函数可以获取训练期间使用的列的名称列表”是什么意思? RandomForestRegressor 将使用您提供给fit()
函数的特性。那你想做什么
应该有像varUsed()
这样的函数来检查使用了哪些变量。
【参考方案1】:
是否有一个函数可以获取列名列表 在训练随机森林回归模型时使用?
RF 使用您数据集中的所有特征。每棵树可能包含 sqrt(num_of_features) 或 log2(num_of_features) 或其他任何内容,但这些列是随机选择的。所以通常 RF 会覆盖数据集中的所有列。
当您在 RF 中使用少量估算器时可能会出现边缘情况,并且可能不会考虑某些功能。我想,RandomForestRegressor.feature_importances_(这里可能是零或 nan 值)或深入研究 RandomForestRegressor.estimators_ 中的每棵树可能会有所帮助。
如果没有,那么是否有一个函数可以用于丢失的列 分配 Null?
RF 不接受缺失值。您需要将缺失值编码为单独的类(并将其用于学习)或 XGBoost(例如)是您的选择。
【讨论】:
以上是关于获取随机森林回归器训练期间使用的特征列表的主要内容,如果未能解决你的问题,请参考以下文章
为啥与 MSE 相比,使用 MAE 标准训练随机森林回归器如此缓慢?