[英]Random Forest or other machine learning techniques [need advice]
“我如何量化重要性”是非常常见的问题,也称为“特征重要性”。
功能重要性取决于您的 model; 通过回归,您的系数很重要,在随机森林中,您可以使用(但有些人不推荐)内置feature_importances_
或更好的SHAP
。 此外,您还可以使用 som correlaion,即您的特征和目标之间的 Spearman/Pearson 相关性。
不幸的是,没有“免费午餐”,您需要根据您的用途、数据的外观等来决定。
我认为您遇到的可能是 Boruta,您可以在其中对变量进行洗牌,将它们添加到您的数据集中,然后根据随机森林中的“最佳洗牌变量”创建一个阈值。
我的想法如下。 您的结果变量“Y”只有几个可能的值。 您可以构建一个分类器(随机森林是许多现有分类器之一),以预测说“Y in [25-94,95-105,106-150]”。 您将在这里获得三种不同的结果,它们相互排除。 (如果更适合您的应用程序,则可以使用95
和105
以外的其他间隔限制)。
正如您所解释的,您的一些预测变量是时间序列,而其他预测变量是恒定的。 您应该使用滑动 window 技术,其中您的分类器根据时间相关变量预测“Y”,例如 1 月份。 一些变量是常数并不重要,因为实际变量“City”有四个结果:“[City_1,City_2,City_3,City_4]”。 同样,使用“Population”和“Age_mean”作为实际变量。
一旦你使用了分类器,就会开发出许多特征排名和特征选择的方法。 您可以使用 web 服务(如洞察分类器)为您完成此操作,或下载 package (如Weka )。
关键是您组织 model 及其预测变量,以便分类器可以正确学习。
如果城市和月份也是您的自变量,您应该将它们从索引转换为列。 使用 pandas 读取您的文件,然后使用 df.reset_index() 可以为您完成这项工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.