python logistics regression,Python——sklearn 中 Logistics Regression 的 coef_ 和 i

sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义

​ 使用sklearn库可以很方便的实现各种基本的机器学习算法,例如今天说的逻辑斯谛回归(Logistic Regression),我在实现完之后,可能陷入代码太久,忘记基本的算法原理了,突然想不到**coef_和intercept_**具体是代表什么意思了,就是具体到公式中的哪个字母,虽然总体知道代表的是模型参数。

正文

我们使用 sklearn 官方的一个例子来作为说明,源码可以从这里下载,下面我截取其中一小段并做了一些修改:

import numpy as np

import matplotlib.pyplot as plt

from sklearn.datasets import make_blobs

from sklearn.linear_model import LogisticRegression

# 构造一些数据点

centers = [[-5, 0], [0, 1.5], [5, -1]]

X, y = make_blobs(n_samples=1000, centers=centers, random_state=40)

transformation = [[0.4, 0.2], [-0.4, 1.2]]

X = np.dot(X, transformation)

clf = LogisticRegression(solver='sag', max_iter=100, random_state=42, multi_class=multi_class).fit(X, y)

print clf.coef_

print clf.intercept_

输出如图:

6c1555302777729326ca3efa0910d9ec.png

可以看到**clf.coef_是一个3×2(n_class, n_features)**的矩阵,**clf.intercept_**是一个1×3的矩阵(向量),那么这些到底是什么意思呢?

我们来回顾一下 Logistic 回归的模型:

$$ h_\theta(x) = \frac{1}{1 + e^{(-\theta^Tx)} } $$

其中 $\theta$是模型参数,其实 $\theta^Tx$就是一个线性表达式,将这个表达式的结果再一次利用 Logistic 函数映射到 0~1 之间。

知道了这个,也就可以搞清楚那个**clf.coef_和clf.intercept_**了: **clf.coef_和clf.intercept_**就是 $ \theta $,下面我们来验证一下:

i = 100

print 1 / (1 + np.exp(-(np.dot(X[i].reshape(1, -1), cc.T) + clf.intercept_)))

# 正确的类别

print y[i]

print clf.predict_proba(X[i].reshape(1, -1))

print clf.predict_log_proba(X[i].reshape(1, -1))

输出结果:

6c1555302777729326ca3efa0910d9ec.png

可以看到结果是吻合的,说明我们的猜想是正确的。
原文链接:https://blog.csdn.net/u010099080/article/details/52933430!

来源:oschina

链接:https://my.oschina.net/u/4339825/blog/3318907

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值