块引用
我是机器学习的学生和初学者。我想做
列的特征选择。我的数据集是 50000 X 370,这是一个二元分类问题。首先我删除了 std.deviation = 0 的列,然后我删除了重复的列,之后我检查了具有最高 ROC 曲线面积的前 20 个特征。除了进行 PCA 之外,下一步应该是什么?任何人都可以给出特征选择要遵循的一系列步骤吗?
块引用
我是机器学习的学生和初学者。我想做
列的特征选择。我的数据集是 50000 X 370,这是一个二元分类问题。首先我删除了 std.deviation = 0 的列,然后我删除了重复的列,之后我检查了具有最高 ROC 曲线面积的前 20 个特征。除了进行 PCA 之外,下一步应该是什么?任何人都可以给出特征选择要遵循的一系列步骤吗?
尝试 L1 正则化。这是删除不太相关的功能的标准方法。
您可以尝试以下技术/算法:
L1 正则化:这将生成稀疏特征矩阵;大多数特征权重为零。但是,如果您有高维数据集,则此技术很有用,这在您的情况下似乎是正确的。有些算法不支持正则化。
顺序特征选择:对于不支持正则化的算法很有用。这种算法会自动选择与问题更相关的特征子集。您可以在此处找到更多相关信息:(1)大规模特征选择技术的比较研究,F. Ferri、P. Pudil、M. Hatef 和 J. Kittler。大规模特征选择技术的比较研究。实践 IV 中的模式识别,第 403-413 页,1994。(2) scikit-learn 中的特征选择。
降维:如果您的问题是线性的,即您的数据是线性可分的,PCA(主成分分析)和 LDA(线性判别分析)将很有效。如果数据不是线性可分的,那么您可以尝试核主成分分析。
随机森林的特征重要性:这是一种集成技术,可为您提供特征重要性(数值)。您可以丢弃重要性较低的特征。
你已经做了很多预处理。我推荐的唯一额外步骤是在 PCA 之后对值进行标准化。然后你的数据应该准备好输入你的学习算法。
还是您想避免 PCA?如果您的特征之间的相关性不是太强,这可能没问题。然后跳过 PCA 并规范化这些值。