Python多项式回归sklearn

一、理论介绍

多项式回归是一种回归分析的方法,它通过使用多项式函数来拟合数据。与简单线性回归不同,多项式回归可以更灵活地适应数据的曲线特征,因为它可以包含多个特征的高次项。

多项式回归的一般形式为:

在实际应用中,可以通过调整多项式的次数来适应不同的数据特征。然而,过高的多项式次数可能导致过拟合,对新数据的泛化能力较差。

多项式回归可以通过最小化损失函数来找到最优的回归系数。一种常见的方法是使用最小二乘法。

在Python中,可以使用各种库(如NumPy、SciPy和scikit-learn)来实现多项式回归。例如,scikit-learn提供了PolynomialFeatures和LinearRegression等类来实现多项式回归。

二、案例分析

python 复制代码
# -*- coding: utf-8 -*-
"""
Created on 2024.1.22

@author: rubyw
"""

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

# 载入数据
data = np.genfromtxt('job.csv', delimiter=",")
x_data = data[1:,1]
y_data = data[1:,2]
plt.scatter(x_data,y_data)
plt.show()

x_data = data[1:,1,np.newaxis]
y_data = data[1:,2,np.newaxis]
# 创建并拟合模型
model = LinearRegression()
model.fit(x_data, y_data)

# 画图
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, model.predict(x_data), 'r')
plt.show()

# 定义多项式回归,degree的值可以调节多项式的特征
poly_reg  = PolynomialFeatures(degree=1)
# 特征处理
x_poly = poly_reg.fit_transform(x_data)
# 定义回归模型
lin_reg = LinearRegression()
# 训练模型
lin_reg.fit(x_poly, y_data)

# 输出回归系数
print("回归系数 (a_n, a_{n-1}, ..., a_1, a_0):", lin_reg.coef_[0])


# 画图
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, lin_reg.predict(poly_reg.fit_transform(x_data)), c='r')
plt.title('Truth or Bluff (Polynomial Regression)')
plt.xlabel('Position level')
plt.ylabel('Salary')
plt.show()


相关推荐
爱编程的化学家12 分钟前
代码随想录算法训练营第十一天--二叉树2 || 226.翻转二叉树 / 101.对称二叉树 / 104.二叉树的最大深度 / 111.二叉树的最小深度
数据结构·c++·算法·leetcode·二叉树·代码随想录
强盛小灵通专卖员13 分钟前
闪电科创 SCI专业辅导
python·深度强化学习·研究生·ei会议·导师·sci期刊
tqs_1234513 分钟前
redis zset 处理大规模数据分页
java·算法·哈希算法
跟橙姐学代码24 分钟前
自动化邮件发送的终极秘籍:Python库smtplib与email的完整玩法
前端·python·ipython
扯淡的闲人1 小时前
多语言编码Agent解决方案(2)-后端服务实现
开发语言·python·深度学习
蒋星熠1 小时前
深度学习实战指南:从神经网络基础到模型优化的完整攻略
人工智能·python·深度学习·神经网络·机器学习·卷积神经网络·transformer
吃着火锅x唱着歌1 小时前
LeetCode 1446.连续字符
算法·leetcode·职场和发展
愚润求学1 小时前
【贪心算法】day10
c++·算法·leetcode·贪心算法
万粉变现经纪人1 小时前
如何解决pip安装报错ModuleNotFoundError: No module named ‘cuml’问题
python·scrapy·beautifulsoup·pandas·ai编程·pip·scipy
吴秋霖1 小时前
主流反爬虫、反作弊防护与风控对抗手段
爬虫·算法·反爬虫技术