2012-06-08 141 views

回答

3

在scikit-learn coef_属性中保存线性模型的分离超平面的向量。它的形状为(n_classes, n_features)如果n_classes > 1(多等级一对一)和(1, n_features)二进制分类。

在这个玩具二进制分类示例中,n_features == 2,因此w = coef_[0]是与超平面正交的向量(超平面完全由它定义+截距)。

要在2D情况下绘制该超平面(2D平面的任何超平面都是一维线),我们希望找到f,如y = f(x) = a.x + b。在这种情况下,a是线的斜率,可以通过a = -w[0]/w[1]来计算。

+2

为什么'a = -w [0]/w [1]'?为了找到b,为什么我们要计算' - (clf.intercept_ [0])/ w [1]'。不应该'b = clf.intercept_ [0]'? –

+0

这只是将超平面的通用n维参数化切换到线y = ax + b的2D特定方程的一个简单问题:通用的'w_0 x + w_1 y + w_3 = 0'可以是重写'y = - (w_0/w_1)x +(w_3/w_1)' – ogrisel

+0

s /切换到/切换到/ – ogrisel