线性回归与逻辑回归

一、线性回归(Linear Regression)

1. 定义

线性回归是一种用于预测连续型目标变量(因变量)与一个或多个自变量(特征)之间关系的模型。其基本假设是因变量与自变量之间存在线性关系。

数学表达式为:
y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_n x_n y=β0+β1x1+β2x2+⋯+βnxn

其中:

  • y y y 是预测值
  • β 0 \beta_0 β0 是截距
  • β 1 , β 2 , ... , β n \beta_1, \beta_2, \ldots, \beta_n β1,β2,...,βn 是回归系数
  • x 1 , x 2 , ... , x n x_1, x_2, \ldots, x_n x1,x2,...,xn 是自变量

2. 损失函数

线性回归常用的损失函数是均方误差(Mean Squared Error, MSE),定义为预测值与真实值之间差异的平方的平均值:

MSE = 1 m ∑ i = 1 m ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{m} \sum_{i=1}^{m} (y_i - \hat{y}_i)^2 MSE=m1i=1∑m(yi−y^i)2

其中:

  • m m m 是样本数量
  • y i y_i yi 是真实值
  • y ^ i \hat{y}_i y^i 是预测值

最小化MSE可以找到最佳的回归系数,使模型对训练数据的预测误差最小。

二、逻辑回归(Logistic Regression)

1. 定义

逻辑回归是一种用于二分类或多分类任务的模型,旨在预测样本属于某一类别的概率。尽管名称中含有"回归"二字,但其主要用于分类问题。

数学表达式(用于二分类)为:
P ( y = 1 ∣ x ) = σ ( z ) = 1 1 + e − z P(y=1|x) = \sigma(z) = \frac{1}{1 + e^{-z}} P(y=1∣x)=σ(z)=1+e−z1

其中:

  • z = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n z = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_n x_n z=β0+β1x1+β2x2+⋯+βnxn
  • σ ( z ) \sigma(z) σ(z) 是逻辑函数(Sigmoid函数)

即对线性回归的输出多了一层取sigmoid。

2. 损失函数

逻辑回归常用的损失函数是对数损失函数(Log Loss),也称为交叉熵损失函数,定义为:

Log Loss = − 1 m ∑ i = 1 m [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] \text{Log Loss} = -\frac{1}{m} \sum_{i=1}^{m} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right] Log Loss=−m1i=1∑m[yilog(y^i)+(1−yi)log(1−y^i)]

其中:

  • m m m 是样本数量
  • y i y_i yi 是真实标签(0或1)
  • y ^ i \hat{y}_i y^i 是预测的概率值 P ( y = 1 ∣ x i ) P(y=1|x_i) P(y=1∣xi)

最小化对数损失函数可以找到最佳的回归系数,使模型对训练数据的分类概率误差最小。

训练完成之后,在预测时,当输出 > 0.5 >0.5 >0.5认为预测值是1,反之为0。

相关推荐
python算法(魔法师版)13 分钟前
基于机器学习鉴别中药材的方法
深度学习·线性代数·算法·机器学习·支持向量机·数据挖掘·动态规划
JNU freshman1 小时前
力扣第435场周赛讲解
算法·leetcode·蓝桥杯
眼镜哥(with glasses)1 小时前
蓝桥杯python基础算法(2-2)——基础算法(B)——模拟(上)
算法
赵鑫亿3 小时前
7.DP算法
算法·dp
iqay3 小时前
【C语言】填空题/程序填空题1
c语言·开发语言·数据结构·c++·算法·c#
辞落山3 小时前
使用numpy自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预
tensorflow·逻辑回归·numpy
还有糕手3 小时前
算法【有依赖的背包】
算法·动态规划
pursuit_csdn4 小时前
力扣 347. 前 K 个高频元素
算法·leetcode
wen__xvn4 小时前
每日一题洛谷B3865 [GESP202309 二级] 小杨的 X 字矩阵c++
c++·算法·矩阵
makabaka_T_T4 小时前
25寒假算法刷题 | Day1 | LeetCode 240. 搜索二维矩阵 II,148. 排序链表
数据结构·c++·算法·leetcode·链表·矩阵