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

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

好尴尬,折腾了一会,终于弄明白了,记录下来,以说明自己too young。

正文

我们使用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_

输出如图:

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

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

hθ(x)=11+e(−θTx)

h_\theta(x) = \frac{1}{1+e^{(-\theta^Tx)}} 其中 θ\theta 是模型参数,其实 θTx\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))

输出结果:

可以看到结果是吻合的,说明我们的猜想是正确的。

END

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏fangyangcoder

tensorflow笔记(五)之MNIST手写识别系列二

http://www.cnblogs.com/fydeblog/p/7455233.html

12120
来自专栏AI深度学习求索

CAM实践:基于pytorch的使用方法

注意:如果为了快一点,不使用网络的图片以及文件的话,记得更改图片地址和已下载文件地址哦

52250
来自专栏大数据挖掘DT机器学习

阿里天池大数据竞赛实战:RF&GBRT 完成过程

一点比赛心得,供不太熟悉Xlab RF和GBRT调用的同学参考,不喜勿喷,大神绕道---------- 6月初的时候LR 做到4.9后一直上不去,...

408110
来自专栏PaddlePaddle

【RNN】使用RNN语言模型生成文本

导语 PaddlePaddle提供了丰富的运算单元,帮助大家以模块化的方式构建起千变万化的深度学习模型来解决不同的应用问题。这里,我们针对常见的机器学习任务,提...

58060
来自专栏专知

【专知国庆特刊-PyTorch手把手深度学习教程系列01】一文带你入门优雅的PyTorch

【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视...

1.2K80

Keras中带LSTM的多变量时间序列预测

像长短期记忆(Long Short-Term Memory ) LSTM 递归神经网络这样的神经网络几乎可以完美地模拟多个输入变量的问题。

12.1K80
来自专栏新智元

【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文

【新智元导读】10月26日,深度学习元老Hinton的NIPS2017 Capsule论文《Dynamic Routing Between Capsules》终...

43470
来自专栏程序员的知识天地

前端工程师深度学习,就能在浏览器里玩转深度学习

TensorFlow.js 的发布可以说是 JS 社区开发者的福音!但是在浏览器中训练一些模型还是会存在一些问题与不同,如何可以让训练效果更好?本文为大家总结了...

18130
来自专栏Felix的技术分享

jpeg编码学习笔记

33860
来自专栏腾讯Bugly的专栏

机器学习入门之HelloWorld(Tensorflow)

1 环境搭建 (Windows) 安装虚拟环境 Anaconda,方便python包管理和环境隔离。 Anaconda3 4.2 http://mirrors...

48880

扫码关注云+社区

领取腾讯云代金券