我正在关注Andreas C. Müller 和 Sarah Guido的 Python 机器学习简介:数据科学家指南LinearSVC(),在第 2 章中给出了应用演示。此屏幕截图显示了对三个 blob 进行分类的结果:
这三个 blob 显然被正确分类,如彩色输出所示。
我的问题是我们应该如何知道如何解释模型拟合输出以绘制三条线?输出参数由下式给出
print(LinearSVC().fit(X,y).coef_)
[[-0.17492286 0.23139933]
[ 0.47621448 -0.06937432]
[-0.18914355 -0.20399596]]
print(LinearSVC().fit(X,y).intercept_)
[-1.07745571 0.13140557 -0.08604799]
作者向我们介绍了如何画线:
from sklearn.svm import LinearSVC
linear_svm = LinearSVC().fit(X,y)
...
line = np.linspace(-15, 15)
for coef, intercept in zip(linear_svm.coef_, linear_svm.intercept_):
plt.plot(line, -(line * coef[0] + intercept) / coef[1]) #HOW DO WE KNOW
plt.ylim(-10, 15)
plt.xlim(-10, 8)
plt.show()
带有注释的代码行是将我们的系数转换为该行的斜率/截距对的代码行:
y = -(coef_0 / coef_1) x - intercept/coef_1
其中前面的项x是斜率,-intercept/coef_1是截距。在有关 LinearSVC 的文档中,coef_andintercept_仅称为“属性”,但不指向任何coef_0作为斜率且coef_1是某些整体缩放的负数的指标。
在不依赖书籍和 StackOverflow 中的示例的情况下,如何在 Scikit-learn 中查找该模型和其他类似模型的输出系数的解释?
