《机器学习实战》6.2小节,KKT条件代码理解
《机器学习实战》6.2小节
1 #这句是检测 当前样本点i 是否满足KKT条件的
2 if (alphas[i, :] < C and E_i * labelMat[i, :] < -tolerence) or \
3 (alphas[i, :] > 0 and E_i * labelMat[i,:] > tolerence):
4 # do something
这是我的理解:
考虑一种情形,存在一样本点,α<C,且标签yi=-1,该样本在当前超平面下的预测的间隔为g(xi)。
若预测正确,样本点应在间隔边界yi=-1以下,g(xi) < -1,ei = g(xi) - yi < 0。
考虑 α<C 时的另一种情形,标签yi=+1 时,样本点应在间隔边界yi=1以上, g(xi) > 1, ei > 0。
综合yi =±1 ,当 α<C 时,yi * ei > 0 。否则,样本点在不满足KKT条件。