减少特征的一般方法

数据挖掘 数据挖掘 特征选择 数据
2021-10-09 00:16:46

假设我有一个巨大的数据集(600 多列),我不知道我可以从中获得什么见解或我想运行什么模型。

找到最有影响力的列/功能的最佳方法是什么?我知道知道首先运行哪些模型很重要,但是有没有一种通用的方法可以找到比其他模型更重要的列?

到目前为止,我已经删除了 80%+ 为空的列,但我仍然有超过 600 列,我不知道从哪里开始。请让我知道你的想法!我是新手,所以任何指针都会有所帮助。

4个回答

由于您没有提到任何类型的标签,我认为您没有进行监督学习。请注意,如果您是,则无需丢弃功能。您可以使用套索回归之类的方法来构建一个模型,该模型在拟合预测模型的同时稀疏地选择有影响的特征。

无监督方法可以减少您的特征集大小,但可能会失去其原始特征的可解释性(如果这对您很重要),例如 PCA 或自动编码器。但也有这些的替代品,所以取决于你在寻找什么。

查看 600 列的另一种方法是使用 600 维的向量。因此,在不丢失大量信息的情况下将 600 维向量减少到更少维的答案将是降维。

主成分分析(PCA)是一种常用的分析方法。T 分布随机邻域嵌入 (TSNE) 一直是减少高维向量的最先进技术。使用 TSNE 进行数据可视化

为了快速了解向量,最好的办法是将其简化为 2 或 3 维向量并将它们绘制在图表中。数据可视化总是有助于了解您正在处理的数据。

清除具有 >80% 零的列可能是一个错误。这些非零值可能是数据中最重要的位。文本挖掘中有一个完整的研究领域,致力于从词袋模型中发现知识,这些模型就像你的表一样,除了可能有数十万个特征宽且 >99% 为空(即稀疏)。

也就是说,特征选择的白痴方法是将线性曲线(使用线性或逻辑回归;或其他简单模型)拟合到数据中,然后从模型中提取各个特征系数。这些是你的影响权重。

一个简单的可视化特征重要性的工具是Orange我发现它的 Rank 小部件大部分时间都对我有用。 在此处输入图像描述

有很多特征选择技术,但取决于您是否有样本的“标签”。一种简单的技术涉及方差

删除所有方差不满足某个阈值的特征

默认情况下,它会删除所有零方差特征"