繁体   English   中英

随机森林或其他机器学习技术 [需要建议]

[英]Random Forest or other machine learning techniques [need advice]

我试图了解一些自变量之间的基本原理,并量化它们对因变量的重要性。 我遇到了诸如随机森林之类的方法,它可以量化变量的重要性,然后预测结果。 但是,我对要与随机森林或类似方法一起使用的数据的性质有疑问。 下面提供了一个数据结构示例,正如您所见,时间序列有一些变量,如人口和年龄,它们不会随时间变化,尽管不同城市之间存在差异。 而温度和#internet 用户等其他变量随着时间和城市内部的变化而变化。 我的问题是:如何量化这些变量对“Y”变量的重要性? 顺便说一句,我更喜欢在 python 环境中应用该方法。 在此处输入图像描述

“我如何量化重要性”是非常常见的问题,也称为“特征重要性”。

功能重要性取决于您的 model; 通过回归,您的系数很重要,在随机森林中,您可以使用(但有些人不推荐)内置feature_importances_或更好的SHAP 此外,您还可以使用 som correlaion,即您的特征和目标之间的 Spearman/Pearson 相关性。

不幸的是,没有“免费午餐”,您需要根据您的用途、数据的外观等来决定。

我认为您遇到的可能是 Boruta,您可以在其中对变量进行洗牌,将它们添加到您的数据集中,然后根据随机森林中的“最佳洗牌变量”创建一个阈值。

我的想法如下。 您的结果变量“Y”只有几个可能的值。 您可以构建一个分类器(随机森林是许多现有分类器之一),以预测说“Y in [25-94,95-105,106-150]”。 您将在这里获得三种不同的结果,它们相互排除。 (如果更适合您的应用程序,则可以使用95105以外的其他间隔限制)。

正如您所解释的,您的一些预测变量是时间序列,而其他预测变量是恒定的。 您应该使用滑动 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM