sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义
目录
使用sklearn
库可以很方便的实现各种基本的机器学习算法,例如今天说的逻辑斯谛回归(Logistic Regression),我在实现完之后,可能陷入代码太久,忘记基本的算法原理了,突然想不到 coef_
和 intercept_
具体是代表什么意思了,就是具体到公式中的哪个字母,虽然总体知道代表的是模型参数。
好尴尬,折腾了一会,终于弄明白了,记录下来,以说明自己too young。
正文
我们使用 sklearn 官方的一个例子来作为说明,源码可以从这里下载,下面我截取其中一小段并做了一些修改:
1 | import numpy as np |
输出如图:
可以看到 clf.coef_
是一个 3×2(n_class, n_features)
的矩阵,clf.intercept_
是一个 1×3 的矩阵(向量),那么这些到底是什么意思呢?
我们来回顾一下 Logistic 回归的模型:
其中 $\theta$ 是模型参数,其实 $\theta^Tx$ 就是一个线性表达式,将这个表达式的结果再一次利用 Logistic 函数映射到 0~1 之间。
知道了这个,也就可以搞清楚那个 clf.coef_
和 clf.intercept_
了: clf.coef_
和 clf.intercept_
就是 $\theta$ ,下面我们来验证一下:
1 | i = 100 |
输出结果:
可以看到结果是吻合的,说明我们的猜想是正确的。