1

3

I'm following *Introduction to Machine Learning with Python: A Guide for Data Scientists* by Andreas C. Müller and Sarah Guido, and in Chapter 2 a demonstration of applying `LinearSVC()`

is given. The result of classifying three blobs is shown in this screenshot:

The three blobs are obviously correctly classified, as depicted by the colored output.

My question is **how are we supposed to know how to interpret the model fit output** in order to draw the three lines? The output parameters are given by

```
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]
```

And the authors walk us through how to draw the lines:

```
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()
```

The line of code with the comment is the one that converts our coefficients into a slope/intercept pair for the line:

```
y = -(coef_0 / coef_1) x - intercept/coef_1
```

where the term in front of `x`

is the slope and `-intercept/coef_1`

is the intercept. In the documentation on LinearSVC, the `coef_`

and `intercept_`

are just called "attributes" but don't point to any indicator that `coef_0`

is the slope and `coef_1`

is the negative of some overall scaling.

**How can I look up the interpretation of the output coefficients of this model and others similar to it in Scikit-learn without relying on examples in books and StackOverflow?**

I think the only hint is that is says, the coefficients belong to the primal problem which is briefly stated in the user guide under 1.4.7.1. It then follows probably more or less from the definition of the separating hyperplane. If your question is whether there are some more details about the coef_ attributes, then the answer is probably no. The documentation, in general, is not very detailed regarding implementation details. – oW_ – 2017-03-29T23:57:08.740