省流版:
本期内容:三种经典且主流的回归模型:线性回归、多项式回归、岭回归
什么是回归分析?
定义:
回归分析是一种统计方法,用于研究自变量(独立变量)与因变量(依赖变量)之间的关系。它通过建立一个数学模型来描述自变量与因变量之间的关系,以便对未知数据进行预测和解释。
目的:
- 确定自变量与因变量之间的关系。
- 对因变量进行预测。
- 了解自变量对因变量的影响程度。
- 探索数据中的模式和趋势。
适用场合:
- 用于预测和解释现象,如销售量、股票价格、房价等。
- 用于分析实验数据,以确定自变量对因变量的影响。
- 用于探索数据集中的相关关系,帮助做出决策。
分类:
- 线性回归(Linear Regression): 自变量与因变量之间的关系被假设为线性关系。
- 多元回归(Multiple Regression): 包含多个自变量的回归分析。
- 岭回归(Ridge Regression): 用于解决多重共线性问题的一种回归分析方法。
- Lasso回归(Lasso Regression): 在多元回归中用于进行特征选择的一种回归分析方法。
- 多项式回归(Polynomial Regression): 自变量与因变量之间的关系被假设为多项式关系的一种回归分析方法。
- 非线性回归(Nonlinear Regression): 自变量与因变量之间的关系被假设为非线性关系的一种回归分析方法。
回归模型和分类模型有哪些异同?
总的来说,回归模型和分类模型都是用来解决建模和预测问题的重要工具,但其适用的数据类型和输出结果有所不同,因此在选择合适的模型时需要考虑因变量的性质和模型的目标。
相似之处:
- 建模目的: 两者都是用来分析数据并建立模型,以了解变量之间的关系或进行预测。
- 使用的技术: 在建立模型时,两者都使用了统计学和机器学习的方法,包括参数估计、模型拟合和模型评估等技术。
- 模型评估: 在评估模型性能时,两者都使用了类似的指标,如均方误差(MSE)、准确率、召回率等。
不同之处:
- 因变量的类型:
- 回归模型的因变量是连续型变量,即模型预测的结果是一个连续值,如房价、销售量等。
- 分类模型的因变量是分类型变量,即模型预测的结果是一个类别标签,如是否患有某种疾病、邮件是否为垃圾邮件等。
2. 输出结果:
- 回归模型的输出是一个连续值,用于预测或估计目标变量的数值。
- 分类模型的输出是一个类别标签,用于对实例进行分类。
3. 模型形式:
- 回归模型通常假设因变量与自变量之间的关系是连续的,并通过拟合一条(或多条)曲线来描述这种关系。
- 分类模型通常假设因变量是离散的,并通过找到一个决策边界或分类器来对不同类别进行划分。
4. 常见算法:
- 回归模型常用的算法包括线性回归、岭回归、多项式回归等。
- 分类模型常用的算法包括逻辑回归、决策树、支持向量机、随机森林等。
下面进入正题,三种常见且常用的回归模型介绍
一、线性回归
1. 原理:
- 假设自变量(特征)与因变量(目标)之间存在线性关系,通过拟合一条直线来描述这种关系
2. 形式:
3. 计算方法:
- 线性回归通常使用最小二乘法来估计模型参数,即通过最小化实际观测值与模型预测值之间的平方误差来确定参数的最佳值。最小二乘法的目标是最小化残差平方和(RSS)
4. 多重共线性的处理
-
定义:线性回归模型中的解释变量之间由于存在精确或高度相关关系
-
危害:模型估计失真,参数估计不准确,模型可解释性和稳定性降低
-
检测方法:
- 相关系数矩阵(皮尔逊相关系数),相关性大于0.8可认为相关性过高
- 方差膨胀因子(VIF):表达式1 / (1 - r2)。多重共线性会使参数估计值的方差变大,方差膨胀因子越大,说明共线性越强。通常的判断标准是VIF值大于10,即具有多重共线性
-
解决方法:
- 逐步回归法:保留一个变量,并删除与其高度相关的其他变量
- 特征合并或特征组合
5. Python实现
# 导入所需的库
import numpy as np
from sklearn.linear_model import LinearRegression
# 创建示例数据
X = np.array([[1], [2], [3], [4], [5]]) # 特征矩阵
y = np.array([2, 3.5, 2.8, 4.6, 5.2]) # 目标变量向量
# 创建线性回归模型对象
model = LinearRegression()
# 使用训练数据拟合模型
model.fit(X, y)
# 打印模型参数
print('斜率(系数):', model.coef_)
print('截距:', model.intercept_)
# 使用模型进行预测
X_new = np.array([[6], [7], [8]]) # 新数据点
predictions = model.predict(X_new)
print('预测值:', predictions)
(打个小广告,文中部分内容来自GPT4.0生成,大模型的文本能力和条理性真的没的说,对提升学习和工作效率帮助太大了。有需要升级GPT4.0或者想要学习GPT使用方法的请参见一下几条博客:GPT升级指南)
三、岭回归
1. 原理:
- 岭回归是一种线性回归的改进方法,用于解决多重共线性问题。在多重共线性中,自变量之间存在高度相关性,导致普通最小二乘法(OLS)估计的系数不稳定。岭回归通过在最小二乘法的损失函数中加入一个惩罚项,以缩减系数的大小,从而提高模型的稳定性
2. 形式:
-
岭回归的目标优化函数如下。其中:
- Y是因变量向量
- X是自变量矩阵
- β是回归系数向量
- α是岭回归的超参数(惩罚系数)
3. 计算方法:
- 岭回归的计算方法通常使用矩阵运算或优化算法,通过最小化目标函数来求解回归系数
4. 岭回归的应用场合
- 多重共线性问题: 岭回归主要用于解决多重共线性(multicollinearity)问题,即自变量之间存在高度相关性的情况。在这种情况下,最小二乘法的估计可能会变得不稳定,而岭回归通过加入惩罚项来改进模型的稳定性。
- 高维数据: 当数据集中的自变量数量远远大于样本数量时,岭回归可以有效地处理高维数据问题,避免过拟合。
- 噪声较大的数据: 在存在噪声或异常值的情况下,岭回归的惩罚项可以减小异常值对回归系数的影响,提高模型的泛化能力。
- 参数收缩: 岭回归通过对回归系数的大小进行约束,有助于缩小不重要的变量对模型的影响,从而提高模型的泛化性能。
- 处理特征相关性: 当特征之间存在相关性时,岭回归可以有效地处理这种相关性,提高模型的鲁棒性。
5. Python实现
from sklearn.linear_model import Ridge
import numpy as np
# 准备数据
X = np.array([[0, 0], [0, 0], [1, 1]])
Y = np.array([0, .1, 1])
# 创建并拟合岭回归模型
ridge = Ridge(alpha=1.0)
ridge.fit(X, Y)
# 输出回归系数
print("回归系数:", ridge.coef_)
总结
今天的内容主要讲了回归模型,在数分、算法的实习面试和保研考研复试中都是常客。下一篇我会介绍常见的几种分类模型。
如果你觉得文章对你有帮助,还请点赞收藏支持呀~
我了解到部分朋友还不清楚怎么开通正版GPT,下面把我和周边同事都在使用的一个平台分享给大家,可以免排队开通正版GPT4.0: 正版GPT升级渠道