【问题标题】:Machine learning: Which algorithm is used to identify relevant features in a training set?机器学习:哪种算法用于识别训练集中的相关特征?
【发布时间】:2014-06-01 03:51:47
【问题描述】:

我遇到了一个问题,我可能拥有大量功能。本质上是一大堆数据点(为了讨论,假设它包含数百万个特征)。我不知道哪些数据点有用以及哪些与给定结果无关(我猜 1% 是相关的,99% 是无关的)。

我确实有数据点和最终结果(二进制结果)。我对减少特征集很感兴趣,这样我就可以确定最有用的数据点集,以收集来训练未来的分类算法。

我当前的数据集非常庞大,如果我要识别相关特征、减少收集的数据点数量并增加数量,我无法用海量数据生成尽可能多的训练示例的训练示例。我希望在给定更少的特征数据点(同时保持相关数据点)的情况下,我会得到更好的分类器和更多的训练示例。

  • 我应该首先关注哪些机器学习算法, 确定与结果相关的特征?

从我所做的一些阅读看来,SVM 似乎为每个特征提供了权重,我可以使用它来识别得分最高的特征。 谁能证实这一点?展开解释?还是我应该换个思路?

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

    线性模型(逻辑回归、朴素贝叶斯等)中的特征权重可以被认为是重要性的度量,前提是您的特征都在相同的尺度上。

    您的模型可以与用于学习的正则化器相结合,以惩罚某些类型的特征向量(本质上是将特征选择折叠到分类问题中)。 L1 正则化逻辑回归听起来很适合您的需求。

    【讨论】:

      【解决方案2】:

      也许您可以使用 PCA 或最大熵算法来减少数据集...

      【讨论】:

        【解决方案3】:

        您可以根据您的数据类型进行卡方检验或熵。有监督的离散化以一种智能的方式高度减小了数据的大小(看看 Fayyad 和 Irani 提出的递归最小熵分区算法)。

        【讨论】:

          【解决方案4】:

          如果你在 R 中工作,SIS 包有一个函数可以为你做这件事。

          如果你想以艰难的方式做事,你想做的是特征筛选,在从一组正常大小的特征中进行特征选择和模型选择之前进行大规模的初步降维。弄清楚什么是健全的大小可能很棘手,我对此没有一个神奇的答案,但您可以优先考虑您想要包含功能的顺序 1) 对于每个特征,通过二进制响应将数据分成两组 2) 找出比较两组的 Komogorov-Smirnov 统计量 具有最高 KS 统计量的特征在建模中最有用。

          Liu、Zhong 和 Li 发表了一篇题为“超高维数据特征筛选的选择性概述”的论文,我敢肯定网络上某处有免费的副本。

          【讨论】:

            【解决方案5】:

            4 年后,我现在已经完成了该领域的博士学位,我想补充一点,功能的定义并不总是那么简单。如果您的特征是数据集中的单个列,则此处的答案非常适用。

            但是,以卷积神经网络处理的图像为例,特征不是输入的一个像素,而是比这更概念化的。以下是关于图像情况的一个很好的讨论:

            https://medium.com/@ageitgey/machine-learning-is-fun-part-3-deep-learning-and-convolutional-neural-networks-f40359318721

            【讨论】:

              猜你喜欢
              • 2012-03-27
              • 2014-12-27
              • 2018-10-10
              • 2017-07-11
              • 2016-09-03
              • 1970-01-01
              • 1970-01-01
              • 2016-07-31
              • 2013-11-01
              相关资源
              最近更新 更多