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

相关推荐
莲动渔舟1 小时前
Python自学 - 类进阶(可调用对象)
开发语言·python
Reese_Cool1 小时前
【Python】Python与C的区别
java·c语言·python
游客5202 小时前
设计模式-结构型-组合模式
python·设计模式·组合模式
跨海之梦2 小时前
springboot 加载本地jar到maven
开发语言·python·pycharm
weixin_404679312 小时前
Xinference 常见bug: "detail": "Invalid input. Please specify the prompt."
开发语言·python·prompt·bug·pandas
鹿屿二向箔2 小时前
一个基于Spring Boot的简单网吧管理系统
spring boot·后端·python
qyhua3 小时前
python项目结构,PyCharm 调试Debug模式配置
ide·python·pycharm
大油头儿3 小时前
Django后端相应类设计
python·django
PieroPc3 小时前
做一个 简单的Django 《股票自选助手》显示 用akshare 库(A股数据获取)
后端·python·django
AWM巴卡3 小时前
如何稳定使用 O1 / O1 Pro,让“降智”现象不再困扰?
python·gpt·ai·chatgpt·软件工程·o1 pro