目录
本章节讲解逻辑回归的基本原理、逻辑回归模型构建过程。课程环境使用Jupyter notebook环境
引入
首先,在引入LR(Logistic Regression)模型之前,非常重要的一个概念是,该模型在设计之初是用来解决0/1二分类问题,虽然它的名字中有回归二字,但只是在其线性部分隐含地做了一个回归,最终目标还是以解决分类问题为主。
import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt
之前我们研究了线性回归模型的原理与应用,线性回归模型可以简写为:f(x) = w^Tx + b
当我们希望线性模型的预测值逼近真实标记Y,这样就是线性模型,那可否令模型的预测值逼近y的衍生物呢? 比如,是在线性回归基础上,在等号的左边或右边加上了一个函数,这个函数对线性结果进行了一系列的非线性转换,从而能够让模型更好的捕捉一般规律,此时该模型就被称为广义线性模型,y的衍生物生成函数,我们称之为联系函数。
y = e^{w^Tx+b}这就是对数线性回归(log-linear regression),它实际上是在e^{w^Tx+b}试图让逼近,上式形式上是线性回归,但实际上已是在求输入空间到输出空间的非线性函数映射。
我们通过一个例子先来熟一下线性回归模型的不足:
先看一下方法:np.linalg.lstsq(x, y, rcond=-1)
- NumPy 中用于求解最小二乘问题的函数,它返回最小二乘解,即找到一个最接近输入数据的解,使得残差平方和最小。
np.random.seed(216) x = np.linspace(0,10,100).reshape(-1,1) # ...行1列
该模型还需要引入一个截距参数:
x = np.concatenate((x, np.ones_like(x)), axis=1)
数据标签:
y = np.exp(x[:,0] + 1).reshape(-1,1)
如果我们使用简单线性回归模型来对数据进行预测 y= w^T X + b
- # 权重向量 ( w ) 的转置,与自变量向量 ( x ) 进行点积运算
- 使用最小二乘法来进行计算,则模型输出结果为:
np.linalg.lstsq(x, y, rcond=-1) (array([[ 2968.68189529], [-8611.71543123]]), array([8.22208992e+09]), 2, array([58.52647642, 4.9819583 ]))
通过结果发现,通过最小二乘法计算出模型参数为 2968.68和-8611.71,即 y=2968.68x-8611.71
我们最后将原始数据导入模型中,计算出模型预测值,再进行可视化:
yhat = x[:,0] * 2968.68 - 8611.71 plt.scatter(x[:,0], y) plt.plot(x[:,0], yhat,'r')
红色的是我们预测出的模型,蓝色的点是真实的数,可以将方程改写为:
np.linalg.lstsq(x, np.log(y), rcond=-1)
按照输出结果, 我们得到模型方程:lny=x+1,即解出原方程。
Logistic回归(二)+https://developer.aliyun.com/article/1544676?spm=a2c6h.13148508.setting.29.2a1e4f0euIPhgb