机器学习:在训练集中识别相关特征使用哪种算法?

3
我有一个问题,我可能拥有大量的特征。基本上是一堆数据点(让我们说它有数百万个特征)。我不知道哪些数据点对于给定结果是有用的,哪些是无关紧要的(我猜1%是相关的,99%是无关紧要的)。
我已经有了数据点和最终结果(二进制结果)。我有兴趣减少特征集,以便我可以确定最有用的数据点集来收集以训练未来的分类算法。
我的当前数据集非常庞大,我不能像识别相关特征,减少收集的数据点数量和增加训练样本数量时那样生成尽可能多的训练示例。我预计,在保持相关数据点的情况下,给出更少的特征数据点会得到更好的分类器。
应该首先关注哪些机器学习算法来识别与结果相关的特征?
从我阅读的一些资料中,似乎SVM提供每个特征的权重,我可以使用这些权重来确定最高评分的特征。有人能确认这一点吗?扩展解释?还是我应该考虑其他方面?
5个回答

5
在线性模型(逻辑回归、朴素贝叶斯等)中,特征权重可以被视为重要性度量,前提是你的特征都在同一比例尺上。
您的模型可以与正则化器结合使用,以惩罚某些类型的特征向量(基本上将特征选择折叠到分类问题中)。L1正则化的逻辑回归听起来对您想要的非常完美。

3

也许你可以使用主成分分析(PCA)或极大熵算法(Maximum entropy algorithm)来减少数据集...


1
您可以根据数据类型选择卡方检验或熵。监督离散化以智能方式大幅减少数据大小(请查看Fayyad和Irani提出的递归最小熵分割算法)。

0

0

如果你在使用R语言,SIS包中有一个函数可以帮助你完成这个任务。

如果你想要走一条艰难的路,你需要进行特征筛选,这是在从一个合理大小的特征集中进行特征选择和模型选择之前进行的大规模初步维度缩减。确定合理大小可能会很棘手,我没有一个神奇的答案,但你可以通过以下方式优先考虑要包含的特征顺序: 1)对于每个特征,通过二进制响应将数据分成两组 2)找到比较两组的Komogorov-Smirnov统计量 具有最高KS统计量的特征在建模中最有用。

有一篇名为“超高维数据特征筛选的选择性概述”的论文,作者是刘、钟和李,我相信免费副本在网上流传。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接