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

相关文章
|
2月前
|
机器学习/深度学习
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析(下)
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
|
机器学习/深度学习 数据可视化 Python
逻辑回归那些事—使用牛顿法解决实际问题
逻辑回归是机器学习中的重要章节,本文将带你从公式推导到算法实现详细讲述这部分内容,想学习这个高大上的技能么,快来看吧!!!
5442 0
|
15天前
|
机器学习/深度学习 算法
Logistic回归(二)
Logistic回归,又称对数几率回归,是用于分类问题的监督学习算法。它基于对数几率(log-odds),通过对数转换几率来确保预测值在0到1之间,适合于二分类任务。模型通过Sigmoid函数(S型曲线)将线性预测转化为概率。逻辑回归损失函数常采用交叉熵,衡量模型预测概率分布与真实标签分布的差异。熵和相对熵(KL散度)是评估分布相似性的度量,低熵表示分布更集中,低交叉熵表示模型预测与真实情况更接近。
|
16天前
|
机器学习/深度学习 存储 自然语言处理
逻辑回归的介绍和应用
**逻辑回归简介** 逻辑回归是一种分类模型,尽管名字含“回归”,实际上是用于二分类问题的。它简单易懂,计算高效,适用于许多领域,如医学、社会科学、市场营销等。优点是模型简单,易于实现,具有强解释性。然而,它易受多重共线性影响,可能欠拟合,分类精度有限,尤其对非线性问题和数据不平衡问题处理不佳。在实践中,逻辑回归常作为其他复杂算法的基线,如用于信用卡欺诈检测和点击率预测。通过调整和与其他技术结合,如GBDT,可以提升其性能。
|
2月前
|
机器学习/深度学习 算法 调度
多元线性回归梯度下降法
梯度下降法是一种通用的优化算法,尤其适用于机器学习中找到最优解。与解析解法不同,它不局限于特定情况,能在数据规模较大时依然有效。该方法通过迭代逐步接近最优解,每次迭代利用损失函数的梯度信息调整参数。学习率是控制参数更新幅度的关键因素,太大会导致发散,太小则收敛慢。全量梯度下降每次使用所有样本更新,收敛稳定但速度慢;随机梯度下降每次仅用一个样本,速度快但可能产生较大波动;小批量梯度下降取两者之间,以一定的样本批量进行更新,兼顾速度和稳定性。
42 1
|
2月前
使用R语言进行多项式回归、非线性回归模型曲线拟合
使用R语言进行多项式回归、非线性回归模型曲线拟合
|
2月前
|
机器学习/深度学习 算法
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析(上)
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
|
机器学习/深度学习 算法
逻辑回归和线性回归有何不同?
逻辑回归和线性回归有何不同?
|
数据可视化 算法
13张动图快速理解马尔科夫链、PCA、贝叶斯!
本文用可视化的方式来解释抽象的理论概念,使这些抽象概念变得生动而立体!
|
机器学习/深度学习 Web App开发 算法
四、多元线性回归
四、多元线性回归
四、多元线性回归

相关实验场景

更多