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)分析是机器学习领域中最古老、最基础,同时也是最广泛应用的问题之一,应用十分广泛。

相关推荐
Kenneth風车3 分钟前
【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版
人工智能·算法·低代码·机器学习·分类·数据分析·回归
_平凡之路_6 分钟前
解决ubuntu22.04 gnome-terminal 无法启动的问题
linux·运维·python
豆本-豆豆奶9 分钟前
23个Python在自然语言处理中的应用实例
开发语言·python·自然语言处理·编程语音
NiNg_1_23412 分钟前
机器学习之Python中Scikit-Learn(sklearn)入门
python·机器学习·scikit-learn
你可以自己看31 分钟前
python中函数式编程与高阶函数,装饰器与生成器,异常处理与日志记录以及项目实战
服务器·开发语言·python
ymchuangke1 小时前
线性规划------ + 案例 + Python源码求解(见文中)
开发语言·python
鸠摩智首席音效师1 小时前
如何设置 Django 错误邮件通知 ?
python·django
优雅一只猫1 小时前
Pybullet 安装过程
python
小羊在奋斗1 小时前
【C++】探秘二叉搜索树
c++·人工智能·神经网络·机器学习
秋秋秋叶1 小时前
Python学习——【3.1】函数
python·学习