【问题标题】:Feature selection on binary dataset(categorical)二进制数据集的特征选择(分类)
【发布时间】:2019-05-21 04:28:28
【问题描述】:

我的数据集有 32 个分类变量和一个数值连续变量(sales_volume)

首先,我使用 one-hot 编码 (pd.get_dummies) 将分类变量转换为二进制,现在我有 1294 列,因为每列都有多个分类变量。

现在我想在使用任何降维技术之前对它们进行降维。

  1. 选择最有效变量的最佳选项是什么?

  2. 例如;一个分类变量有两个答案“是”和“否”。是否有可能“是”列具有重要意义而“否”列没有什么可解释的?您会删除问题(“是”和“否”列)还是只删除“否”列?

提前致谢。

【问题讨论】:

  • 你想用这 32 个二进制变量 + 1 个连续变量预测什么 - 你也在预测二进制吗?
  • 我不会建立预测模型,实际上我最终会建立一个聚类模型,可能会使用 K-means。但是对于特征重要性,可以使用 1 个连续变量,因为它是销量,其他二元变量是销售点的特征(例如位置、消费者类型等)
  • 啊哈...我明白了。聚类是无监督的。所以你应该注意主要特征分析。

标签: python categorical-data feature-selection


【解决方案1】:

sklearn 上,您可以使用sklearn.feature_selection.SelectFromModel,它使您能够为所有特征拟合模型,并仅选择在该模型中更重要的特征,例如RandomForest。然后get_support() 方法为您提供重要功能。

from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import SelectFromModel

clf = RandomForestClassifier()
sfm = SelectFromModel(clf)
sfm.fit(X,y)

sfm.get_support() 

【讨论】:

  • 感谢您的回答。所以即使它是分类的,这种方法是否适用于特征选择?我的另一个问题是,我如何衡量重要特征的结果,例如我怎么能说“特征 a”比“特征 b”更重要?
  • @Tyr 特征选择和特征重要性是两个不同的问题。我建议在一个新问题中询问它。 categoricalcontinuous 的特征选择是有区别的。 Franco Piccolo 的答案不正确,因为它没有回答 OP 问题。看看Principal Component Analysis(连续变量)和Multiple Correspondence Analysis(分类变量)
猜你喜欢
  • 2014-09-21
  • 2016-03-16
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
  • 2021-03-26
  • 2014-02-05
  • 1970-01-01
  • 2013-10-13
相关资源
最近更新 更多