我正在学习机器学习,到目前为止,我已经使用逻辑回归和平衡数据的问题,如情绪分析,其中我有两个类的训练数据相同(+ ve,-ve)。
现在,我正在研究命名实体识别问题,我必须在文本中识别人员的姓名。为此我的数据很稀疏,不到10%的训练数据是+ ve情况(实际上是人物标签),重置是负面情况(不是人物标签)。因此,我的训练数据存在巨大的不平衡。
监督学习算法是否适用于这种情况?
答案 0 :(得分:1)
是;只要你在每一方都有足够的数据来正确定义类,它就能正常工作。您需要的金额取决于您使用的分类方法。事实上,我有几个SVM模型可以很好地工作,只训练+ ve数据 - 没有 - 甚至没有数据!
对于大多数方法,不平衡的输入表明你可以抛出80%的+ ve案例,这些案例没有做多少来定义边界。其中80%会随方法而变化。例如,如果你平均间隔80%(随机可能工作),光谱聚类和k均值将足够好。如果只保留最接近边界的10%,则线性SVM可以工作。朴素贝叶斯和随机森林也可以很好地随意移除80%,尽管通过连续细化工作的任何一种都可以稍微收敛一点。
答案 1 :(得分:1)
这一切都取决于你的结果。
除了极端情况:考虑以下情况:运行模型,并观察您的错误有点低,如5%。然而,实际上,这5%是因为你错误地将你的负数据分类为HALF(未能识别人名),那么显然5%的错误现在看起来更糟糕了。
您应该做的一件事是计算您的精确度和召回率。
精确度:
我们预测的所有单词都是人们的名字,其中实际上中的哪一部分是什么?
精确=#真阳性/(真阳性的数量+假阳性的数量)
高精度(接近1)意味着你有很少的误报。换句话说,你的模型正在拉动一个Dos Equis:“我并不总是预测正面,但是当我这样做时,我做对了”
但是,高精度并不能告诉您是否正确分类了所有实际的正面例子。
<强>提取强>:
在所有实际上人们的名字的例子中,我们预测正确的那一部分是什么?
召回= #strue positives /(#true positives + #false negatives)
高召回率(接近1)意味着我们正确地对正面例子进行分类,而且不会错误分类负面例子
然而,高回忆并没有告诉你你的模型是否将一些负面例子错误分类为正面(误报)
精确和召回可以是权衡(可能有很多而牺牲另一个)。如果是这样,请研究如何计算F1分数(简单),这决定了您的模型是否具有足够的精确度和召回率。
一个好的F1分数接近1.这应该告诉你更多关于你的模型如何将文本分类为人名。