设Y是二元变量。
如果我们使用逻辑回归进行建模,那么我们可以使用cv.glm
进行交叉验证,我们可以在cost
参数中指定成本函数。通过指定成本函数,我们可以为不同类型的错误分配不同的单位成本:预测是|引用是否或预测否|引用是。
我想知道我是否可以在SVM中实现相同目标。换句话说,有没有办法指定成本(损失)函数而不是使用内置损失函数?
答案 0 :(得分:0)
除了岳国国的答案之外,还有三个解决方案,标准的Wrapper方法,超平面调整和e1017中的方案。
Wrapper方法(例如在weka中开箱即用)适用于几乎所有分类器。我们的想法是根据错误分类成本对数据进行过度采样或欠采样。如果经过训练以优化准确度,学习的模型在成本下是最佳的。
第二个想法经常用于文本化。分类是svm是从与超平面的距离导出的。对于线性可分离问题,对于支持向量,该距离为{1,-1}。然后,基本上是一个新例子的分类,无论距离是正还是负。然而,人们也可以改变这个距离并且不做出决定而是0而是将其移动到例如0.8。这样,分类就会在一个方向或另一个方向上移动,而数据的一般形状不会改变。
最后,一些机器学习工具包在class.weights
实现中具有类特定成本(如e1017
)的内置参数。该名称是由于术语cost
已被占用。