【问题标题】:Classifier prediction results biased分类器预测结果有偏差
【发布时间】:2014-03-07 18:18:58
【问题描述】:

我构建了一个具有 13 个特征(没有二进制特征)的分类器,并使用 scikit 工具(Normalizer().transform)为每个样本单独标准化。

当我进行预测时,它会将所有训练集预测为正数,将所有测试集预测为负数(不管它是正数还是负数)

我应该关注分类器、特征或数据中的哪些异常?

注意:1) 我分别对测试集和训练集(每个样本单独)进行归一化。

2)我尝试了交叉验证,但性能相同

3) 我同时使用了 SVM 线性和 RBF 内核

4) 我也尝试过不进行标准化。但同样糟糕的结果

5) 我有相同数量的正面和负面数据集(每个 400 个)和 34 个正面样本和 1000+ 个负面测试集样本。

【问题讨论】:

    标签: machine-learning normalization svm prediction


    【解决方案1】:

    如果您在平衡数据上进行训练,“它将所有训练集预测为正数”这一事实可能足以断定出现问题。

    尝试构建一些非常简单的东西(例如,具有一两个特征的线性 SVM)并查看模型以及训练数据的可视化;遵循 scikit-learn 示例:http://scikit-learn.org/stable/auto_examples/svm/plot_iris.html

    您的输入数据也有可能有许多影响转换过程的大异常值...

    【讨论】:

    • 我会尝试第一个建议。实际上我是使用特征选择的 MRMR 技术做到的。但我怀疑第二个数据有很多异常值。我假设创建负数据集(分类器无法预测)非常大。因此,您能否向我推荐一些具有实用链接和资源的技术,可用于去除异常值。我尝试使用 SVM 处理异常检测技术,但似乎我也失败了。请帮帮我。
    • 好吧,异常值可能意味着很多不同的东西。与其尝试更复杂的方法,不如尝试更简单的方法来弄清楚您的数据或数据准备过程中发生了什么。这不仅仅是建模技术,可能是您所观察到的根本原因。
    • ok...任何特定的协议或方法来解决这个问题(数据或数据准备过程的问题)???
    【解决方案2】:

    尝试对训练数据进行特征选择(与您的测试/验证数据分开)。 对整个数据集进行特征选择很容易导致过拟合。

    【讨论】:

      猜你喜欢
      • 2015-10-22
      • 2016-02-07
      • 2020-09-24
      • 2020-05-31
      • 2018-11-28
      • 2021-03-23
      • 2021-09-26
      • 2019-08-14
      • 2018-09-16
      相关资源
      最近更新 更多