004-基于Sklearn的机器学习入门:回归分析(下)

本节及后续章节将介绍机器学习中的几种经典回归算法,包括线性回归,多项式回归,以及正则项的岭回归等,所选方法都在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)分析是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一,应用十分广泛。

相关推荐
m0_613856292 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
我的xiaodoujiao3 小时前
API 接口自动化测试详细图文教程学习系列16--项目实战演练3
python·学习·测试工具·pytest
ID_180079054733 小时前
Python 实现亚马逊商品详情 API 数据准确性校验(极简可用 + JSON 参考)
java·python·json
时空系3 小时前
第10篇:继承扩展——面向对象编程进阶 python中文编程
开发语言·python·ai编程
CHANG_THE_WORLD4 小时前
python 批量终止进程exe
开发语言·python
liann1195 小时前
3.2_红队攻击框架--MITRE ATT&CK‌
python·网络协议·安全·网络安全·系统安全·信息与通信
云天AI实战派5 小时前
AI 智能体问题排查指南:ChatGPT、API 调用到 Agent 上线失灵的全流程修复手册
大数据·人工智能·python·chatgpt·aigc
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列15--项目实战演练2
python·学习·测试工具·pytest
多思考少编码6 小时前
PAT甲级真题1001 - 1005题详细题解(C++)(个人题解)
c++·python·最短路·pat·算法竞赛
ZhengEnCi6 小时前
M5-markconv自定义CSS样式指南 📝
前端·css·python