线性回归与逻辑回归

一、线性回归(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。

相关推荐
DoraBigHead30 分钟前
小哆啦解题记——映射的背叛
算法
Heartoxx41 分钟前
c语言-指针与一维数组
c语言·开发语言·算法
孤狼warrior1 小时前
灰色预测模型
人工智能·python·算法·数学建模
京东云开发者1 小时前
京东零售基于国产芯片的AI引擎技术
算法
chao_7892 小时前
回溯题解——子集【LeetCode】二进制枚举法
开发语言·数据结构·python·算法·leetcode
十盒半价2 小时前
从递归到动态规划:手把手教你玩转算法三剑客
javascript·算法·trae
GEEK零零七2 小时前
Leetcode 1070. 产品销售分析 III
sql·算法·leetcode
凌肖战3 小时前
力扣网编程274题:H指数之普通解法(中等)
算法·leetcode
秋说3 小时前
【PTA数据结构 | C语言版】将数组中元素反转存放
c语言·数据结构·算法
WebInfra3 小时前
如何在程序中嵌入有大量字符串的 HashMap
算法·设计模式·架构