【问题标题】:Will logistic regression work with imblanced data?逻辑回归是否适用于不平衡的数据?
【发布时间】:2016-02-10 12:29:19
【问题描述】:

我正在学习机器学习,到目前为止,我已经使用逻辑回归来解决平衡数据的问题,例如情绪分析,其中两个类 (+ve,-ve) 的训练数据数量相等。

现在,我正在研究命名实体识别问题,我必须识别文本中的人名。为此我的数据是稀疏的,我的训练数据中只有不到 10% 是 +ve 案例(实际上是一个人标签),重置是否定案例(不是一个人标签)。所以我的训练数据存在很大的不平衡。

监督学习算法是否适用于这种情况?

【问题讨论】:

    标签: machine-learning logistic-regression


    【解决方案1】:

    是的;只要您在每一侧都有足够的数据来正确定义类,它就会正常工作。您需要的数量取决于您使用的分类方法。事实上,我有几个运行良好的 SVM 模型,只使用 +ve 数据进行训练——根本没有 -ve 数据!

    对于大多数方法,不平衡的输入表明您可以丢弃 80% 的 +ve 案例,这些案例在定义边界方面做得不够。其中 80% 会因方法而异。例如,如果您移除 80% 的均匀间隔(随机可能会起作用),谱聚类和 k-means 将运行良好。如果只保留最接近边界的 10%,线性 SVM 就可以工作。朴素贝叶斯和随机森林在随机去除 80% 的情况下也可以很好地工作,尽管通过连续细化工作的任何这些都可能收敛得更慢。

    【讨论】:

      【解决方案2】:

      这一切都取决于你的结果。


      除了极端场景:考虑以下场景:您运行模型,并观察到您的错误有点低,例如 5%。然而,实际上,这 5% 是因为你错误地分类了一半的负面数据(无法识别人名),那么显然 5% 的错误现在看起来更糟糕了。


      您应该做的一件事是计算准确率和召回率。

      精度

      在我们预测的所有单词中,人名占多大比例实际上是?

      精度 = # 真阳性 /(真阳性数 + 假阳性数)

      高精度(接近 1)意味着您的误报数很少。换句话说,您的模型正在拉动 Dos Equis:“我并不总是预测为正面,但当我预测时,我做对了”

      但是,高精度并不能告诉您是否正确分类了所有实际的正例。


      召回

      在所有实际上人名的例子中,我们预测正确的有多少?

      召回 = # 真阳性 / (# 真阳性 + # 假阴性)

      高召回率(接近 1)意味着我们正确地分类了正例,而且没有错误分类负例

      但是,高召回率并不能告诉您您的模型是否将某些负例错误分类为正例(误报)


      精确度和召回率可以进行权衡(可能有很多以牺牲另一个为代价)。如果是这样,请研究如何计算 F1 分数(简单),它决定了您的模型是否具有足够的准确率和召回率。

      良好的 F1 分数接近 1。这应该可以告诉您更多关于您的模型将文本分类为人名的能力。

      【讨论】:

        猜你喜欢
        • 2016-02-09
        • 1970-01-01
        • 2018-07-26
        • 2013-01-29
        • 1970-01-01
        • 2020-10-05
        • 2017-11-06
        • 1970-01-01
        相关资源
        最近更新 更多