本节及后续章节将介绍机器学习中的几种经典回归算法,包括线性回归,多项式回归,以及正则项的岭回归等,所选方法都在Sklearn库中聚类模块有具体实现。本节为下篇,将介绍多项式回归和岭回归等。
2.3 多项式回归
在一般的线性回归中,使用的假设函数是一元一次方程,也就是二维平面上的一条直线。但是很多时候可能会遇到直线方程无法很好的拟合数据的情况,这个时候可以尝试使用多项式回归(Polynomial Regression)。
2.3.1 概述
多项式回归是一种扩展了线性回归模型的统计方法,用于拟合数据之间的非线性关系。具体来说,多项式回归通过在传统的线性回归模型中增加变量的高次项(如平方项、立方项等),使得模型能够更好地适应数据中的曲线趋势。这种方法的核心思想是,任何光滑的曲线都可以通过适当高阶的多项式来逼近。
以下是多项式回归的一些关键点:
- 基本原理:多项式回归的基本思想是在线性回归的基础上,将自变量的幂次作为新的特征加入模型中,从而使模型能够捕捉到数据的非线性结构。
- 模型表达:见下面。
- 模型评估:在选择多项式的阶数时,需要权衡模型的复杂度和拟合度。过高的阶数可能导致过拟合,即模型在训练数据上表现良好,但在新的数据上泛化能力差。
- 优缺点:多项式回归的优点在于其能够拟合非线性关系,但缺点是随着项数的增加,模型可能会变得过于复杂,导致过拟合和计算成本的增加。
添加高阶项的时候,也增加了模型的复杂度。随着模型复杂度的升高,模型的容量以及拟合数据的能力增加,可以进一步降低训练误差,但导致过拟合的风险也随之增加。
2.3.2 数学模型
最简单的针对一元的多项式回归数学模型如下:
比如,当p=2时,上述模型简化为:
上式是典型的基于一次函数和二次函数的多项式表达式。
2.3.3 Sklearn实现
Sklearn仍然使用LinearRegression函数实现多项式拟合。不过要首先给添加新的特征。
多项式回归(一)-CSDN博客
import numpy as np
import matplotlib.pyplot as plt
#生产随机数据100个——范围在(-3,3)
x = np.random.uniform(-3,3,size=100)
X = x.reshape(-1,1)
y = 0.5 *x**2 + x +2 + np.random.normal(0,1,size=100)
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(X,y)
y_predict = lin_reg.predict(X)
plt.scatter(x,y) #原数据
plt.plot(x,y_predict,color='r') #预测值
plt.show()
是
X2 = np.hstack([X,X**2])
#X2.shape
lin_reg2 = LinearRegression()
lin_reg2.fit(X2,y)
y_predict2 = lin_reg2.predict(X2)
#绘制结果
plt.scatter(x,y)
plt.plot(np.sort(x),y_predict2[np.argsort(x)],color='r') #对x,y_predict2进行排序,光滑展示
plt.show()
的
from sklearn.preprocessing import PolynomialFeatures
ploy = PolynomialFeatures(degree = 2) #表示要为原始数据集添加几次幂
ploy.fit(X)
X2 = ploy.transform(X) #将X转换为多项式特征
#X2.shape
from sklearn.linear_model import LinearRegression
lin_reg2 = LinearRegression()
lin_reg2.fit(X2,y)
y_predict2 = lin_reg2.predict(X2)
#绘制结果
plt.scatter(x,y)
plt.plot(np.sort(x),y_predict2[np.argsort(x)],color='r') #对x,y_predict2进行排序,光滑展示
plt.show()
该函数在使用时,调用了以下函数:
2.4 带正则项的回归分析
回归(Regression)分析是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一,应用十分广泛。
2.4.1 正则项
的
2.4.2 岭回归
的
2.4.3 Loss回归
的
回归(Regression)分析是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一,应用十分广泛。回归(Regression)分析是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一,应用十分广泛。回归(Regression)分析是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一,应用十分广泛。