Logistic回归(一)

简介: 这篇内容是一个关于逻辑回归的教程概览

目录


引入

对数几率模型与Logistic回归

逻辑回归

逻辑回归损失函数

交叉熵

相对熵


本章节讲解逻辑回归的基本原理、逻辑回归模型构建过程。课程环境使用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 中用于求解最小二乘问题的函数,它返回最小二乘解,即找到一个最接近输入数据的解,使得残差平方和最小。


# 随机生成100个数
np.random.seed(216)
x = np.linspace(0,10,100).reshape(-1,1)  # ...行1列
 


该模型还需要引入一个截距参数:


x = np.concatenate((x, np.ones_like(x)), axis=1)
# 在给定的轴(axis)上将两个数组合并


数据标签:


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

相关文章
|
机器学习/深度学习 数据可视化 Python
逻辑回归那些事—使用牛顿法解决实际问题
逻辑回归是机器学习中的重要章节,本文将带你从公式推导到算法实现详细讲述这部分内容,想学习这个高大上的技能么,快来看吧!!!
5439 0
|
8天前
|
机器学习/深度学习 算法
Logistic回归(二)
Logistic回归,又称对数几率回归,是用于分类问题的监督学习算法。它基于对数几率(log-odds),通过对数转换几率来确保预测值在0到1之间,适合于二分类任务。模型通过Sigmoid函数(S型曲线)将线性预测转化为概率。逻辑回归损失函数常采用交叉熵,衡量模型预测概率分布与真实标签分布的差异。熵和相对熵(KL散度)是评估分布相似性的度量,低熵表示分布更集中,低交叉熵表示模型预测与真实情况更接近。
|
16天前
|
机器学习/深度学习 资源调度 并行计算
线性回归
【6月更文挑战第7天】线性回归是建立自变量与因变量之间线性关系的模型,常用于预测数值。它假设观测噪声符合正态分布。模型表示为$y=w^Tx+b$,其中$w$是权重,$b$是偏置。损失函数常用平方误差,通过梯度下降法优化。小批量随机梯度下降是常用的更新参数方法。正则化,如L2正则化(权重衰减),用于防止过拟合。丢弃法用于多层感知机,减少模型复杂度。训练时注意数值稳定性,如梯度爆炸和消失,可通过权重初始化、归一化等方法改善。
24 1
|
1月前
|
机器学习/深度学习 算法 调度
多元线性回归梯度下降法
梯度下降法是一种通用的优化算法,尤其适用于机器学习中找到最优解。与解析解法不同,它不局限于特定情况,能在数据规模较大时依然有效。该方法通过迭代逐步接近最优解,每次迭代利用损失函数的梯度信息调整参数。学习率是控制参数更新幅度的关键因素,太大会导致发散,太小则收敛慢。全量梯度下降每次使用所有样本更新,收敛稳定但速度慢;随机梯度下降每次仅用一个样本,速度快但可能产生较大波动;小批量梯度下降取两者之间,以一定的样本批量进行更新,兼顾速度和稳定性。
40 1
|
1月前
使用R语言进行多项式回归、非线性回归模型曲线拟合
使用R语言进行多项式回归、非线性回归模型曲线拟合
|
1月前
R语言多项式线性模型:最大似然估计二次曲线
R语言多项式线性模型:最大似然估计二次曲线
|
1月前
|
C++
拟合R语言中的多项式回归
拟合R语言中的多项式回归
|
机器学习/深度学习 人工智能 算法
|
机器学习/深度学习 算法
逻辑回归和线性回归有何不同?
逻辑回归和线性回归有何不同?