解锁机器学习核心算法 | 线性回归:机器学习的基石

news2025/2/21 7:44:19

在机器学习的众多算法中,线性回归宛如一块基石,看似质朴无华,却稳稳支撑起诸多复杂模型的架构。它是我们初涉机器学习领域时便会邂逅的算法之一,其原理与应用广泛渗透于各个领域。无论是预测房价走势、剖析股票市场波动,还是钻研生物医学数据、优化工业生产流程,线性回归皆能大显身手。

本质上,线性回归是一种用于构建变量间线性关系的统计模型。它试图寻觅一条最佳拟合直线(或超平面),以使预测值与实际观测值之间的误差降至最低。这般简洁直观的理念,实则蕴含着强大力量,助力我们从海量数据中挖掘宝贵信息,进而做出有效的预测与决策。

接下来,我们将深度探究线性回归的核心概念、算法原理、数学模型以及实际应用,全方位领略这一经典算法的独特魅力。
在这里插入图片描述

一、线性回归基础概念

1、定义与公式

线性回归,从名字上就能看出它的核心在于 “线性” 和 “回归”。简单来说,它是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。当只有一个自变量时,我们称之为单变量回归;而多于一个自变量的情况,则叫做多元回归。

单变量回归可以用一个简单的直线方程来表示,其公式为: y = β 0 + β 1 x + ϵ y = \beta_0 + \beta_1x + \epsilon y=β0+β1x+ϵ,其中 y y y是因变量(目标值), x x x是自变量(特征值), β 0 \beta_0 β0是截距,也就是当 x = 0 x = 0 x=0 y y y的值, β 1 \beta_1 β1是斜率,它表示 x x x每增加一个单位, y y y的变化量, ϵ \epsilon ϵ是误差项,代表了无法被线性模型解释的随机因素。

多元回归则是单变量回归的扩展,用于处理多个自变量的情况。其通用公式为:

h ( w ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + ⋯ + w n x n + b = w T x + b h(w) = w_1x_1 + w_2x_2 + w_3x_3 + \cdots + w_nx_n + b = w^Tx + b h(w)=w1x1+w2x2+w3x3++wnxn+b=wTx+b

这里 x 1 , x 2 , ⋯   , x n x_1, x_2, \cdots, x_n x1,x2,,xn n n n自变量 w 1 , w 2 , ⋯   , w n w_1, w_2, \cdots, w_n w1,w2,,wn 是对应的权重 b b b偏置项(类似于单变量回归中的截距), w w w x x x 都可以看作是向量, w T w^T wT w w w 的转置。通过这个公式,我们可以根据自变量的值来预测因变量的值,模型的任务就是找到最合适的 w w w b b b,使得预测值与实际值尽可能接近。

2、特征与目标关系

在线性回归里,特征(自变量)目标(因变量)的关系是关键。其假设该关系为线性,单变量时可用直线、多变量时能用超平面描述。

单变量线性关系,以房屋面积(自变量 x x x)与房价(因变量 y y y)为例,理想状态下有房价 = 面积×每平米单价 + 基础价格,此为典型单变量线性回归模型,每平米单价即斜率 β 1 \beta_1 β1,基础价格即截距 β 0 \beta_0 β0,收集相关数据并用线性回归算法确定参数,就能依房屋面积预测房价。

多变量线性关系稍复杂,如预测房价时,除房屋面积,房间数量、房龄等也作自变量与房价构成多变量线性关系。房价与房屋面积、房间数量可能正相关,与房龄可能负相关,关系强度由自变量对应权重体现,借助多元线性回归模型可找最佳线性组合以精准预测。

然而实际中,特征与目标并非总呈线性,可能出现非线性关系,像产品销量随时间先快增后平稳,线性回归拟合效果不佳。这时或许要对数据变换,或用多项式回归、神经网络等非线性模型。但线性回归作为基础模型,是理解和处理数据关系的重要开端,为学习复杂模型奠基。

二、线性回归原理剖析

1、模型假设

线性回归模型基于一个重要假设,即因变量(目标值)与自变量(特征值)之间存在线性关系。具体来说,对于单变量线性回归,我们假设 y = β 0 + β 1 x + ϵ y = \beta_0 + \beta_1x + \epsilon y=β0+β1x+ϵ,其中 ϵ \epsilon ϵ是误差项,它代表了模型无法解释的随机因素。在实际应用中,我们通常假设误差项 ϵ \epsilon ϵ 服从均值为 0 的正态分布,即 ϵ ∼ N ( 0 , σ 2 ) \epsilon \sim N(0, \sigma^2) ϵN(0,σ2) 。这一假设具有重要意义,它使得我们能够利用正态分布的性质来进行统计推断和模型评估。

从直观上理解,误差项服从正态分布意味着大部分数据点会集中在回归直线附近,离直线越远的数据点出现的概率越小。例如,在预测房屋价格时,尽管房屋面积与房价之间存在大致的线性关系,但由于诸如房屋装修、周边配套设施等无法完全被面积解释的因素存在,这些因素所导致的误差就体现在误差项中,并且这些误差的分布符合正态分布的特征。

对于多元线性回归,模型假设扩展为: y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n + ϵ y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_nx_n + \epsilon y=β0+β1x1+β2x2++βnxn+ϵ
同样假设误差项 ϵ \epsilon ϵ 服从均值为 0 的正态分布。在这种情况下,多个自变量共同对因变量产生影响,而误差项则综合了所有未被纳入模型的因素所带来的影响。例如,在分析影响农作物产量的因素时,除了考虑种植面积外,还考虑了施肥量、降雨量等多个因素,而诸如土壤微量元素含量、病虫害等未被考虑的因素所造成的影响就包含在误差项中,且这些误差也被假设为服从正态分布 。

2、目标函数与优化

线性回归的目标是找到一组最优的回归系数(在单变量中是 β 0 \beta_0 β0 β 1 \beta_1 β1,在多变量中是 β 0 , β 1 , ⋯   , β n \beta_0, \beta_1, \cdots, \beta_n β0,β1,,βn ),使得模型的预测值与实际观测值之间的误差最小。为了实现这一目标,我们需要定义一个目标函数,也称为损失函数
最常用的目标函数是残差平方和(Residual Sum of Squares,RSS),其计算公式为: R S S = ∑ i = 1 m ( y i − y ^ i ) 2 RSS = \sum_{i=1}^{m}(y_i - \hat{y}_i)^2 RSS=i=1m(yiy^i)2
其中 y i y_i yi是第 i i i个样本的实际观测值, y ^ i \hat{y}_i y^i是模型对第 i i i个样本的预测值, m m m是样本数量。

另一个常用的目标函数是均方误差(Mean Squared Error,MSE),它是 RSS 的平均值,即:
M S E = 1 m ∑ i = 1 m ( y i − y ^ i ) 2 MSE = \frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 MSE=m1i=1m(yiy^i)2
MSE 和 RSS 的本质是一样的,都衡量了模型预测值与实际值之间的偏差程度,只不过 MSE 对误差进行了平均,使得不同样本数量的数据集之间的比较更加公平。

以房价预测为例,如果我们有一组房屋面积和对应房价的数据,通过线性回归模型预测出的房价与实际房价之间会存在一定的误差。我们的目标就是调整回归系数,使得这些误差的平方和(或均方误差)最小。因为误差平方和(或均方误差)越小,说明模型的预测值越接近实际值,模型的拟合效果就越好。

优化目标函数的过程就是寻找最优回归系数的过程。在数学上,这是一个最优化问题,我们的任务是找到一组回归系数,使得目标函数取得最小值。下面我们将介绍两种常用的求解方法。

3、求解方法

3.1、普通最小二乘法(OLS)

普通最小二乘法(Ordinary Least Squares,OLS)是求解线性回归模型最常用的解析方法。它的基本思想是通过最小化残差平方和来确定回归系数。从几何意义上讲,就是找到一条直线(或超平面),使得所有数据点到这条直线(或超平面)的垂直距离的平方和最小。

为了更直观地理解,我们以单变量线性回归为例。假设我们有一组数据点 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) (x_1, y_1), (x_2, y_2), \cdots, (x_m, y_m) (x1,y1),(x2,y2),,(xm,ym),我们要找到一条直线 y = β 0 + β 1 x y = \beta_0 + \beta_1x y=β0+β1x,使得这些数据点到该直线的距离平方和最小。对于每个数据点 ( x i , y i ) (x_i, y_i) (xi,yi),它到直线 y = β 0 + β 1 x y = \beta_0 + \beta_1x y=β0+β1x 的垂直距离为 e i = y i − ( β 0 + β 1 x i ) e_i = y_i - (\beta_0 + \beta_1x_i) ei=yi(β0+β1xi),那么残差平方和

R S S = ∑ i = 1 m e i 2 = ∑ i = 1 m ( y i − β 0 − β 1 x i ) 2 RSS = \sum_{i=1}^{m}e_i^2 = \sum_{i=1}^{m}(y_i - \beta_0 - \beta_1x_i)^2 RSS=i=1mei2=i=1m(yiβ0β1xi)2

为了找到使 R S S RSS RSS 最小的 β 0 \beta_0 β0 β 1 \beta_1 β1,我们对 R S S RSS RSS 分别关于 β 0 \beta_0 β0 β 1 \beta_1 β1 求偏导数,并令偏导数等于 0,得到以下方程组(称为正规方程组):

{ ∂ R S S ∂ β 0 = − 2 ∑ i = 1 m ( y i − β 0 − β 1 x i ) = 0 ∂ R S S ∂ β 1 = − 2 ∑ i = 1 m ( y i − β 0 − β 1 x i ) x i = 0 \begin{cases} \frac{\partial RSS}{\partial \beta_0} = -2\sum_{i=1}^{m}(y_i - \beta_0 - \beta_1x_i) = 0 \\ \frac{\partial RSS}{\partial \beta_1} = -2\sum_{i=1}^{m}(y_i - \beta_0 - \beta_1x_i)x_i = 0 \end{cases} {β0RSS=2i=1m(yiβ0β1xi)=0β1RSS=2i=1m(yiβ0β1xi)xi=0

通过求解这个方程组,我们可以得到 β 0 \beta_0 β0 β 1 \beta_1 β1的解析解:

β 1 = ∑ i = 1 m ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 m ( x i − x ˉ ) 2 \beta_1 = \frac{\sum_{i=1}^{m}(x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^{m}(x_i - \bar{x})^2} β1=i=1m(xixˉ)2i=1m(xixˉ)(yiyˉ)

β 0 = y ˉ − β 1 x ˉ \beta_0 = \bar{y} - \beta_1\bar{x} β0=yˉβ1xˉ

其中 x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ分别是 x x x y y y的均值。

对于多元线性回归,我们可以将其表示为矩阵形式。设 X X X是包含所有自变量的设计矩阵(每一行代表一个样本,每一列代表一个自变量), y y y是因变量向量, β \beta β是回归系数向量(包括 β 0 \beta_0 β0 β 1 , ⋯   , β n \beta_1, \cdots, \beta_n β1,,βn),则模型可以表示为 y = X β + ϵ y = X\beta + \epsilon y=+ϵ。此时,残差平方和 R S S = ( y − X β ) T ( y − X β ) RSS = (y - X\beta)^T(y - X\beta) RSS=(y)T(y)。同样对 R S S RSS RSS关于 β \beta β求偏导数并令其为 0,得到正规方程 X T X β = X T y X^TX\beta = X^Ty XT=XTy。如果 X T X X^TX XTX是可逆的(即满秩矩阵),则可以直接求解得到回归系数 β = ( X T X ) − 1 X T y \beta = (X^TX)^{-1}X^Ty β=(XTX)1XTy

普通最小二乘法的优点是计算简单,理论上可以得到全局最优解,并且在满足线性回归模型假设的情况下,具有良好的统计性质。然而,它也有一些局限性,例如当 X T X X^TX XTX接近奇异矩阵(即不可逆或接近不可逆)时,计算逆矩阵会变得非常困难,甚至无法计算,此时普通最小二乘法的效果会很差。此外,它对数据中的异常值比较敏感,因为异常值会对残差平方和产生较大的影响,从而影响回归系数的估计。

3.2、梯度下降法

梯度下降法(Gradient Descent)是一种迭代优化算法,常用于求解目标函数的最小值。它的基本思想是从一个初始点开始,通过不断沿着目标函数的负梯度方向移动,逐步逼近目标函数的最小值点。在每一次迭代中,我们根据当前点的梯度来调整参数的值,使得目标函数的值不断减小。

对于线性回归模型,我们以均方误差(MSE)作为目标函数,其公式为 J ( β ) = 1 2 m ∑ i = 1 m ( y i − y ^ i ) 2 = 1 2 m ∑ i = 1 m ( y i − ( X β ) i ) 2 J(\beta) = \frac{1}{2m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 = \frac{1}{2m}\sum_{i=1}^{m}(y_i - (X\beta)_i)^2 J(β)=2m1i=1m(yiy^i)2=2m1i=1m(yi()i)2,这里的 X X X是特征矩阵, β \beta β是回归系数向量, m m m是样本数量。目标是找到一组 β \beta β,使得 J ( β ) J(\beta) J(β)最小。

梯度下降法的具体步骤如下:

1. 初始化回归系数: β \beta β,可以随机初始化或者全部初始化为 0。

2. 计算目标函数: J ( β ) J(\beta) J(β) 关于 β \beta β 的梯度: ∇ J ( β ) = 1 m X T ( X β − y ) \nabla J(\beta) = \frac{1}{m}X^T(X\beta - y) J(β)=m1XT(y) 这里的梯度表示了目标函数在当前点的变化率和方向,负梯度方向就是目标函数下降最快的方向。

3. 根据梯度更新回归系数: β = β − α ∇ J ( β ) \beta = \beta - \alpha\nabla J(\beta) β=βαJ(β)其中 α \alpha α学习率(也称为步长),它控制了每次迭代时参数更新的幅度。学习率的选择非常关键,如果学习率过小,算法的收敛速度会很慢,需要进行很多次迭代才能达到较优解;如果学习率过大,可能会导致算法无法收敛,甚至发散,错过最优解。

不断重复步骤 2 和步骤 3,直到目标函数的值收敛到一个足够小的值或者达到最大迭代次数,此时得到的 β \beta β就是我们所估计的回归系数。

在实际应用中,梯度下降法有两种常见的变体:批梯度下降(Batch Gradient Descent,BGD) 随机梯度下降(Stochastic Gradient Descent,SGD)

  • 批梯度下降(BGD)在每次迭代中,使用整个训练数据集来计算梯度并更新参数。这种方法的优点是每次更新都朝着全局最优解的方向进行,最终能够收敛到全局最优解(如果目标函数是凸函数)。然而,当训练数据集非常大时,计算整个数据集的梯度会非常耗时,内存开销也很大,导致训练效率低下。例如,在处理包含数百万条数据的图像识别数据集时,使用批梯度下降法每次计算梯度都需要遍历所有数据,这会耗费大量的时间和计算资源。

  • 随机梯度下降(SGD)与批梯度下降不同,随机梯度下降在每次迭代中,随机选择一个样本(或一小批样本,称为小批量梯度下降 Mini - Batch Gradient Descent)来计算梯度并更新参数。这种方法的优点是计算速度快,因为每次只需要处理一个样本(或小批样本),内存开销小,适用于大规模数据集。而且,由于每次使用的样本不同,它具有一定的随机性,有时能够跳出局部最优解,找到更好的解。但是,由于每次更新只基于一个样本,更新方向可能会比较 “嘈杂”,不是每次都朝着全局最优解的方向,所以收敛过程可能会比较不稳定,需要更多的迭代次数才能收敛。例如,在训练一个大规模的文本分类模型时,使用随机梯度下降可以快速处理大量的文本数据,虽然每次更新的方向可能不太准确,但总体上能够在较短时间内得到一个较好的模型。

除了上述两种方法,还有一些改进的梯度下降算法,如 Adagrad、Adadelta、Adam 等,它们通过自适应地调整学习率等方式,在不同的场景下表现出更好的性能,能够更有效地解决梯度下降过程中的问题,提高算法的收敛速度和稳定性。

三、代码实现与实战

1、准备工作

在实际应用中,我们通常使用 Python 语言结合强大的机器学习库 scikit-learn(简称 sklearn )来实现线性回归。首先,确保你已经安装了必要的库。如果尚未安装,可以使用 pip 命令进行安装:

pip install numpy pandas scikit-learn

其中,numpy 用于数值计算,pandas 用于数据处理和分析,scikit-learn 则提供了丰富的机器学习算法和工具,包括线性回归模型。

2、数据加载与预处理

我们以一个简单的房屋价格预测数据集为例,展示线性回归的实战过程。假设数据集存储在一个 CSV 文件中,包含房屋面积、房间数量、房龄等特征以及对应的房价。

2.1、使用 pandas 库读取数据
import pandas as pd

# 读取数据

data = pd.read_csv('house_prices.csv')
2.2、提取自变量(特征)和因变量(目标值)

假设我们使用房屋面积、房间数量和房龄作为特征来预测房价:

# 提取自变量和因变量

X = data[['area','rooms', 'age']]

y = data['price']
2.3、划分数据集

为了评估模型的性能,我们需要将数据集划分为训练集和测试集。通常,我们将大部分数据用于训练模型,小部分数据用于测试模型的泛化能力。这里我们使用train_test_split 函数将数据集按照 70% 训练集和 30% 测试集的比例进行划分:

from sklearn.model_selection import train_test_split

# 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

random_state 参数用于设置随机种子,确保每次运行代码时划分的结果一致,方便调试和比较不同模型的性能。

3、模型训练与预测

在准备好数据后,我们就可以创建线性回归模型并进行训练了。使用 sklearn 中的 LinearRegression 类来实现:

from sklearn.linear\_model import LinearRegression

# 创建线性回归模型

model = LinearRegression()

# 训练模型

model.fit(X_train, y_train)

在训练过程中,模型会根据训练数据学习特征与目标值之间的线性关系,确定回归系数。训练完成后,我们可以使用训练好的模型对测试集进行预测:

# 对测试集进行预测

y_pred = model.predict(X_test)

y_pred 中存储的就是模型对测试集的预测结果,我们可以将其与实际的房价(y_test)进行比较,评估模型的性能。

4、模型评估

为了评估线性回归模型的性能,我们需要使用一些评估指标。常用的评估指标有均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)和决定系数(R²)。

均方误差(MSE):计算预测值与真实值之间误差的平方的平均值,它衡量了模型预测值与真实值之间的平均误差程度,MSE 值越小,说明模型的预测效果越好。计算公式为: M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

均方根误差(RMSE):是 MSE 的平方根,它与 MSE 的作用类似,但 RMSE 对大的误差更加敏感,因为它对误差进行了平方和开方操作,使得大的误差在计算中占的比重更大。RMSE 的单位与目标值的单位相同,更直观地反映了预测值与真实值之间的平均误差大小。计算公式为: R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2} RMSE=n1i=1n(yiy^i)2

平均绝对误差(MAE):计算预测值与真实值之间绝对误差的平均值,它直接反映了预测值与真实值之间的平均偏差程度,MAE 值越小,说明模型的预测值与真实值越接近。计算公式为: M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i| MAE=n1i=1nyiy^i

决定系数(R²):用于衡量模型对数据的拟合优度,它表示模型能够解释因变量方差的比例,取值范围在 0 到 1 之间。R² 越接近 1,说明模型对数据的拟合效果越好,即模型能够解释大部分因变量的变化;R² 越接近 0,说明模型的拟合效果越差,可能需要考虑其他模型或对数据进行进一步处理。计算公式为: R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}{\sum_{i=1}^{n}(y_i - \bar{y})^2} R2=1i=1n(yiyˉ)2i=1n(yiy^i)2其中 y ˉ \bar{y} yˉ 是真实值的平均值。

sklearn 中,我们可以方便地计算这些评估指标:

from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

# 计算均方误差

mse = mean_squared_error(y_test, y_pred)

# 计算均方根误差

rmse = mean_squared_error(y_test, y_pred, squared=False)

# 计算平均绝对误差

mae = mean_absolute_error(y_test, y_pred)

# 计算决定系数

r2 = r2_score(y_test, y_pred)

print(f"均方误差(MSE): {mse}")

print(f"均方根误差(RMSE): {rmse}")

print(f"平均绝对误差(MAE): {mae}")

print(f"决定系数(R²): {r2}")

通过这些评估指标,我们可以全面了解模型的性能表现,判断模型是否满足实际需求。如果模型性能不理想,可以进一步调整模型参数、增加特征、对数据进行预处理等操作来优化模型。

四、案例应用与分析

1、房价预测案例

在房价预测中,线性回归应用广泛。假设数据集含房屋面积、卧室数量、房龄及对应房价。

  • 数据探索matplotlibseaborn 库可视化,发现房屋面积与房价强正相关,卧室数量与房价正相关但稍弱,房龄与房价负相关。
  • 模型训练划分数据集为训练集与测试集,训练线性回归模型,确定各特征与房价关系的回归系数,如房屋面积系数大且正,卧室数量系数正但小,房龄系数为负。
  • 模型评估用测试集评估,通过 MSE、RMSE、MAE 和 R² 指标判断。指标优则模型预测精度高、拟合好。线性回归可捕捉房价与特征的线性关系,但实际房价受多种因素影响,可完善数据或用复杂模型提高预测准确性。

2、销售预测案例

商业销售预测中,线性回归可助企业依历史数据预测销售额。假设零售企业数据含销售额、广告投入、促销次数及产品价格。

  • 数据预处理与分析检查处理缺失值和异常值,通过相关性分析发现广告投入、促销次数与销售额正相关,产品价格与销售额负相关。
  • 模型构建与训练以销售额为因变量,其他因素为自变量构建并训练模型,确定各因素对销售额影响的回归系数。
  • 模型评估与应用用测试数据评估模型,指标好则预测可靠。企业依预测结果安排生产、制定策略等。但市场复杂,实际销售额受多种不可预见因素影响,需综合分析预测结果。

五、线性回归的优缺点

1、优点

1. 可解释性强线性回归模型参数(回归系数)有明确物理意义,能展示自变量对因变量影响程度与方向。如房价预测中房屋面积回归系数,可表明每平米面积增加对应的房价涨幅,利于理解数据关系,对经济、医学等领域研究和决策重要。
2. 运算效率高算法计算复杂度低,用普通最小二乘法求解速度快,能快速处理大规模数据集,在实时数据分析、快速预测等对时间要求高的场景优势明显,如金融领域可快速支持投资决策。
3. 简单直观模型公式简洁,单变量的 ( y = β 0 + β 1 x + ϵ ) (y = β_0 + β_1x + ϵ) (y=β0+β1x+ϵ)和多元的 ( h ( w ) = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b = w T x + b ) (h(w)=w_1x_1 + w_2x_2 + ⋯ + w_nx_n + b = w^Tx + b) (h(w)=w1x1+w2x2++wnxn+b=wTx+b)都易理解掌握,是初学者踏入机器学习和数据分析领域的好起点,简单场景如分析学生成绩与学习时间关系可轻松建模。
4. 可扩展性强能通过添加多项式项、交互项扩展,如加自变量平方、立方项成多项式回归,处理曲线关系数据,像分析产品销量与价格关系。还能与正则化等技术结合,提高泛化能力与稳定性。

2、缺点

1. 仅适用于线性关系核心假设是变量间线性关系,但现实多为非线性,如生物生长速度随时间的非线性变化,此时线性回归无法准确拟合,需用非线性模型或变换数据后建模。
2. 对异常值敏感常用最小二乘法求解,最小化误差平方和使模型对异常值敏感,一个或几个异常值影响误差平方和,致回归系数估计偏差,影响准确性与稳定性,如房价数据中异常高价豪宅影响普通房价预测,可预处理识别处理异常值或用稳健回归方法。
3. 数据小时易过拟合数据集小,模型易过度拟合噪声和细节,训练集表现好但测试集或新数据泛化差,如小店铺销售额预测,少量历史数据建模会纳入偶然因素致预测偏差,可增加数据量、正则化或交叉验证避免。
4. 对多重共线性敏感自变量高度相关(多重共线性)时,系数估计不稳定甚至出错,难以区分自变量单独影响,影响解释性与预测能力,如分析汽车性能纳入高度相关自变量,可计算VIF检测,采取删除变量、主成分分析等解决。

六、总结与展望

线性回归是机器学习领域基础且经典的算法,因简单易懂、可解释性强与计算效率高,在多领域作用关键。本文我们讲述了其概念、原理、代码实现及案例应用,它既是有效预测工具,也是理解机器学习数据关系与模型构建的基石。

实际应用中,线性回归优势显著,可解释性助于决策分析,高运算效率能处理大规模数据。但也有局限,如对非线性关系不敏感、对异常值敏感及小数据易过拟合。

展望未来,大数据与计算能力提升推动线性回归发展创新。它或与深度学习结合,借深度学习强大特征提取能力弥补自身不足,在图像识别等领域提升预测精度与泛化能力。同时,引入正则化项与技术、应用集成学习方法,能优化模型,提高稳定性与准确性,未来还可能出现更高效算法满足大数据处理需求。

对机器学习爱好者与从业者,线性回归值得深入研究。它是入门起点,也是追求更高技术水平的支撑。希望本文能对大家学习机器学习有所帮助,有帮助的话求点点关注。


延伸阅读
深度学习框架探秘|TensorFlow:AI 世界的万能钥匙

深度学习框架探秘|PyTorch:AI 开发的灵动画笔

深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决

深度学习框架探秘|Keras:深度学习的魔法钥匙

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2300838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS 底部颗粒磨砂特效

参考:element-plus的顶部效果 background-image: radial-gradient(transparent 1px, var(--bg-color) 1px); background-size: 4px 4px; backdrop-filter: saturate(50%) blur(4px); 注意点:var(--bg-color) 改为跟你背景色相同的即可。 其他自己看情况…

QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。

部分代码: void FishControlForm::paintEvent(QPaintEvent *event) {QPainter p(this);p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);p.translate(m_centerPoint);//bgp.setPen(Qt::white);p.drawEllipse(-m_radius,-m_radius,m_rad…

Ubuntu18.04安装rvm、ruby2.6.5和rails5.2.6

系统环境:Ubuntu 18.04 一、安装前准备 1. sudo apt update 2. sudo apt upgrade 如果提示abort,忽略。 3. sudo apt install sqlite3 gnupg curl git libpq-dev 二、安装rvm ruby版本管理器 1.切换管理员模式 sudo su 2.安装软件签名公钥 gpg…

燧光 XimmerseMR SDK接入Unity

官网SDK文档连接: RhinoX Unity XR SDK 一:下载SDK 下载链接:RhinoX Unity XR SDK 二:打开Unity项目,添加Package 1、先添加XR Core Utilties包和XR Interaction Toolkit包 2、导 2、再导入下载好的燧光SDK 三&…

罗德与施瓦茨ZNB20,矢量网络分析仪9KHz-20GHz

罗德与施瓦茨ZNB20矢量网络分析仪9KHz-20GHz R&SZNB20矢量网络分析仪 产品型号: ZNB20 产品品牌:罗德与施瓦茨 R&S 产品名称: 矢量网络分析仪 频率范围:9kHz - 20GHz R&S ZNB 矢量网络分析仪 良好的测量速度、动态范围和操作方便性&am…

突破平面限制:低空经济激活城市土地“立体生长力”

蓄锐行:我深耕于低空经济领域,同时对IOT技术有着深入的理解,而在AI的探索性研究上,我也已迈出坚实的步伐,虽起步不久,却满怀热情与憧憬。平日里,我热衷于撰写关于低空经济的文章,分享…

可调节图片参数,解决图片模糊及尺寸过小问题的工具

软件介绍 你是否正为图片模糊、尺寸太小而烦恼?别担心,有这样一款神器能帮你轻松解决。它能精准调节图片参数,即便原本模糊不清的图片,经它处理后也能变得高清锐利,瞬间让图片焕然一新。而且,它还具备导出…

React 与 Vue 对比指南 - 上

React 与 Vue 对比指南 - 上 本文将展示如何在 React 和 Vue 中实现常见功能&#xff0c;从基础渲染到高级状态管理 Hello 分别使用 react 和 vue 写一个 Hello World&#xff01; react export default () > {return <div>Hello World!</div>; }vue <…

✨2.快速了解HTML5的标签类型

✨✨HTML5 的标签类型丰富多样&#xff0c;每种类型都有其独特的功能和用途&#xff0c;以下是一些常见的 HTML5 标签类型介绍&#xff1a; &#x1f98b;结构标签 &#x1faad;<html>&#xff1a;它是 HTML 文档的根标签&#xff0c;所有其他标签都包含在这个标签内&am…

力扣 买卖股票的最佳时机

贪心算法典型例题。 题目 做过股票交易的都知道&#xff0c;想获取最大利润&#xff0c;就得从最低点买入&#xff0c;最高点卖出。这题刚好可以用暴力&#xff0c;一个数组中找到最大的数跟最小的数&#xff0c;然后注意一下最小的数在最大的数前面即可。从一个数组中选两个数…

【SQL】SQL多表查询

&#x1f384;概念 一般我们说的多表查询都涉及外键和父子表之间的关系。比如一对多:一般前面指的是父表后面指的是子表。 ⭐分类 一对多(多对一) 多对多 一对一 ⭐一对多 &#x1f4e2;案例&#xff1a;部门与员工的关系 &#x1f4e2;关系&#xff1a;一个部门对应多个员…

知识篇 | DeepSeek企业部署模式主要有6种

国际数据公司IDC近日发文《DeepSeek爆火的背后&#xff0c;大模型/生成式AI市场生态潜在影响引人关注》表示&#xff1a; “大模型的部署过程需同时满足高并发与低延迟的严苛要求&#xff0c;并需全面考量数据安全、隐私保障、资源弹性扩展以及系统维护等多重因素&#xff0c;D…

uniapp中@input输入事件在修改值只有第一次有效的问题解决

在uniapp中使用输入框&#xff0c;要求输入不超过7个字&#xff0c;所以需要监听输入事件&#xff0c;当每次输入文字的时候&#xff0c;就把输入的值截断&#xff0c;取前7个值。但是在input事件中&#xff0c;重新赋值的值发生了变化&#xff0c;但是页面上的还是没有变&…

Linux运维篇-存储基础知识

什么是存储 用于存放数据信息的设备和介质&#xff0c;等同于计算机系统中的外部存储&#xff0c;是一个完整的系统。 存储的结构和趋势 存储的体系结构 当前存储的主要体系结构有三种&#xff1a; DASNASSAN 存储的发展趋势 ssd固态硬盘云存储一体化应用存储设备非结构…

Rook-ceph(1.92最新版)

安装前准备 #确认安装lvm2 yum install lvm2 -y #启用rbd模块 modprobe rbd cat > /etc/rc.sysinit << EOF #!/bin/bash for file in /etc/sysconfig/modules/*.modules do[ -x \$file ] && \$file done EOF cat > /etc/sysconfig/modules/rbd.modules &l…

第2章 信息技术发展(一)

2.1 信息技术及其发展 2.1.1 计算机软硬件 计算机硬件(Computer Hardware)是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。 计算机软件 (Computer Software)是指计算机系统中的程序及其文档&#xff0c;程序是计算任务的处理对象和处理规则的描述; 文档…

【网络基本知识--2】

网络基本知识--2 1.主机A和主机B通过三次握手TCP连接&#xff0c;过程是&#xff1a; TCP三次握手连接过程如下&#xff1a; 1.客户端发送SYN(SEQx)报文发送给服务器端&#xff0c;进入SYN_SEND状态&#xff1b; 2.服务器端收到SYN报文&#xff0c;回应一个SYN(SEQy)ACK(ACKx1)…

摄影——曝光三要素

曝光三要素 光圈&#xff08;F&#xff09;&#xff1a;控制进光量的装置快门&#xff08;1/X&#xff09;&#xff1a;接受光线的时间感光度&#xff08;ISO&#xff09;&#xff1a;感光器件对光线的敏感程度 一、快门&#xff08;1/X&#xff09; 静物 1/125 动物 1/500 …

DeepSeek-R1论文阅读及蒸馏模型部署

DeepSeek-R1论文阅读及蒸馏模型部署 文章目录 DeepSeek-R1论文阅读及蒸馏模型部署摘要Abstract一、DeepSeek-R1论文1. 论文摘要2. 引言3. DeepSeek-R1-Zero的方法3.1 强化学习算法3.2 奖励建模3.3 训练模版3.4 DeepSeek-R1-Zero的性能、自进化过程和顿悟时刻 4. DeepSeek-R1&am…

Python的那些事第二十五篇:高效Web开发与扩展应用实践FastAPI

FastAPI:高效Web开发与扩展应用实践 摘要 FastAPI 是一种基于 Python 的现代 Web 框架,以其高性能、自动文档生成、数据验证和异步支持等特性受到开发者的青睐。本文首先介绍了 FastAPI 的核心特性及其开发流程,然后通过实际案例探讨了其在异步编程、微服务架构、WebSocket…