【数据挖掘】多项式回归原理介绍及实战应用(超详细 附源码)

简介: 【数据挖掘】多项式回归原理介绍及实战应用(超详细 附源码)

需要源码请点赞关注收藏后评论区留言私信~~~

线性回归是用一条直线或者一个平面(超平面)去近似原始样本在空间中的分布。线性回归的局限性是只能应用于存在线性关系的数据中,但是在实际生活中,很多数据之间是非线性关系,虽然也可以用线性回归拟合非线性回归,但是效果会变差,这时候就需要对线性回归模型进行改进,使之能够拟合非线性数据

非线性回归是用一条曲线或者曲面去逼近原始样本在空间中的分布,它“贴近”原始分布的能力一般较线性回归更强

线性回归的局限性是只能应用于存在线性关系的数据中,但是在实际生活中,很多数据之间是非线性关系,虽然也可以用线性回归拟合非线性回归,但是效果会变差,这时候就需要对线性回归模型进行改进,使之能够拟合非线性数据

多项式回归

多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式关系的回归分析方法。多项式回归模型是非线性回归模型中的一种。由泰勒级数可知,在某点附近,如果函数n次可导,那么它可以用一个n次的多项式来近似

研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果因变量y与自变量x的关系为非线性的,但又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。在这种回归技术中,最佳拟合线不是直线,而是一个用于拟合数据点的曲线

多项式回归的最大优点是可以通过增加x的高次项对观测点进行逼近,直到满意为止。多项式回归在回归分析中占有重要地位,因为任意函数都可以分段用多项式逼近

进行多项式回归分析,首先要确定多项式的次数。次数的确定一般是根据经验和实验。假设确定了用一个一元n次多项式来拟合训练样本集,模型可表示如下

那么多项式回归的任务就是估计出各θ值。可以采用均方误差作为损失函数,用梯度下降法求解,但难度较大

多项式回归实战

先拟定一个一元三次多项式作为目标函数,然后再加上一些噪声产生样本集,再用转化的线性回归模型来完成拟合,最后对测试集进行预测。采用sklearn.linear_model包中的LinearRegression函数来完成

产生样本集与测试集:

可见三次多项式的模拟比较精确 可以拟合大部分的样本点

下面我们用线性回归与多项式回归来对比拟合效果

首先准备数据 可视化如下

用线性回归拟合如下 可见在复杂情况下线性回归拟合效果并不好

多项式回归拟合如下 可见效果明显好于线性回归 精度较高

最后 部分代码如下

import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(-3,3, size=100) # 产生100个随机数
X = x5 * x**2 +x +2 + np.random.normal(0,1,size=100) 
#数据中引入噪声
plt.scatter(x,y)
plt.show()
from sklearn.linear_model import LinearRegression
#线性回归
lin_reg = LinearRegression()
lin_reg.fit(X,y)
y_predict = lin_reg.predict(X)
plt.rcParams['font.family']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.tier(x,y)
plt.plot(x,y_predict,color='r')
plt.show()
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2) 
#设置最多添加几次幂的特征项
poly.fit(X)
x2 = poly.transform(X)
from sklearn.linear_model import LinearRegression
#接下来的代码和线性回归一致
lin_reg2= lin_reg2.predict(x2)
plt.scatter(x,y)
plt.plot(np.sort(x),y_predict2[np.argsort(x)],color='r')
plt.title('多项式回归')

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
5月前
|
机器学习/深度学习 分布式计算 数据挖掘
数据仓库与数据挖掘技术的结合应用
【7月更文挑战第30天】数据仓库与数据挖掘技术的结合应用是现代企业实现高效决策和精准分析的重要手段。通过整合高质量的数据资源,利用先进的数据挖掘技术,企业可以更好地理解市场、客户和业务,从而制定科学的决策和战略。未来,随着技术的不断进步和应用场景的不断拓展,数据仓库与数据挖掘技术的结合应用将会为企业的发展提供更多机遇和挑战。
|
4月前
|
数据采集 自然语言处理 数据可视化
基于python数据挖掘在淘宝评价方面的应用与分析,技术包括kmeans聚类及情感分析、LDA主题分析
本文探讨了基于Python数据挖掘技术在淘宝评价分析中的应用,涵盖了数据采集、清洗、预处理、评论词频分析、情感分析、聚类分析以及LDA主题建模和可视化,旨在揭示淘宝客户评价中的潜在模式和情感倾向,为商家和消费者提供决策支持。
109 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】PCA 主成分分析算法过程及原理讲解
主成分分析(PCA)的原理和算法过程。
133 0
|
6月前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
679 11
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
数据挖掘实战:Python在金融数据分析中的应用案例
Python在金融数据分析中扮演关键角色,用于预测市场趋势和风险管理。本文通过案例展示了使用Python库(如pandas、numpy、matplotlib等)进行数据获取、清洗、分析和建立预测模型,例如计算苹果公司(AAPL)股票的简单移动平均线,以展示基本流程。此示例为更复杂的金融建模奠定了基础。【6月更文挑战第13天】
1648 3
|
6月前
|
人工智能 分布式计算 算法
数据挖掘实战随笔更新清单
这是一系列技术博客的摘要,涵盖了多个主题。包括Elasticsearch实战经验、Maxcompute中的Geohash转换和GPS处理、Python环境配置与管理(如Jupyter、Miniforge、Miniconda)、批量接口调用、多进程CSV图片下载、Excel到Markdown转换、Scikit-learn的异常检测(OC-SVM)和模型总结、人工智能领域的图像分类和识别、文本挖掘算法以及数仓相关的行转列处理。所有文章都在持续更新和补充中。
51 2
|
7月前
|
算法 搜索推荐 数据挖掘
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)
|
7月前
|
机器学习/深度学习 数据采集 算法
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二)