线性回归模型案例1---机器学习part

本文介绍了如何使用Python的scikit-learn库进行线性回归以及2次和4次多项式回归,通过比萨直径预测价格。通过训练集拟合模型并计算R方值,然后用测试集评估模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.代码部分 (合并转发,仅仅作为学习记录,仅供参考)

# 使用线性回归模型在比萨训练样本上进行拟合
import numpy as np
from sklearn.linear_model import LinearRegression  #线性回归模型
import matplotlib.pyplot as plt

x_train = [[6],[8],[10],[14],[18]]
y_train = [[7],[9],[13],[17.5],[18]]

regressor=LinearRegression()
regressor.fit(x_train,y_train)
xx=np.linspace(0,26,100)  #在0-25上均匀采样100个数据点
xx=xx.reshape(xx.shape[0],1) #数据维度转化
yy=regressor.predict(xx)
plt.scatter(x_train,y_train)
plt1,=plt.plot(xx,yy,label='Degree=l')
plt.axis([0,25,0,25])
plt.xlabel('Diameter of pizza')
plt.ylabel('price of pizza')
plt.legend(handles=[plt1])
plt.show()

print('回归模型在训练集上的R方:',regressor.score(x_train,y_train))

# 使用2次多项式回归模型进行拟合
from sklearn.preprocessing import PolynomialFeatures #从sklearn.preproessing 中导入多项式特征产生器
poly2=PolynomialFeatures(degree=2)
x_train_poly2=poly2.fit_transform(x_train)
regressor_poly2 = LinearRegression() #以线性回归器为基础,初始化回归模型
regressor_poly2.fit(x_train_poly2,y_train) #2次多项式回归模型训练
xx_poly2=poly2.transform(xx)
yy_poly2=regressor_poly2.predict(xx_poly2)
plt.scatter(x_train,y_train)
plt1,=plt.plot(xx,yy,label='Degree=l')
plt2,=plt.plot(xx,yy_poly2,label='Degree=2')
plt.axis([0,25,0,25])
plt.xlabel('Diameter of pizza')
plt.ylabel('price of pizza')
plt.legend(handles=[plt1,plt2])
plt.show()
print('2次多项式回归模型在训练集上的R方:',regressor_poly2.score(x_train_poly2,y_train))

# 使用4次多项式回归模型进行拟合
from sklearn.preprocessing import PolynomialFeatures #从sklearn.preproessing 中导入多项式特征产生器
poly4=PolynomialFeatures(degree=4)
x_train_poly4=poly4.fit_transform(x_train)
regressor_poly4 = LinearRegression() #以线性回归器为基础,初始化回归模型
regressor_poly4.fit(x_train_poly4,y_train) #2次多项式回归模型训练
xx_poly4=poly4.transform(xx)
yy_poly4=regressor_poly4.predict(xx_poly4)
plt.scatter(x_train,y_train)
plt1,=plt.plot(xx,yy,label='Degree=l')
plt2,=plt.plot(xx,yy_poly2,label='Degree=2')
plt4,=plt.plot(xx,yy_poly4,label='Degree=4')
plt.axis([0,25,0,25])
plt.xlabel('Diameter of pizza')
plt.ylabel('price of pizza')
plt.legend(handles=[plt1,plt2,plt4])
plt.show()
print('4次多项式回归模型在训练集上的R方:',regressor_poly4.score(x_train_poly4,y_train))

#测试数据
x_test = [[6],[8],[11],[16]]
y_test = [[8],[12],[15],[18]]
print('回归模型在测试集上的R方:',regressor.score(x_test,y_test))
x_test_poly2=poly2.transform(x_test) #使用测试数据对2次多项式回归模型的性能进行评估
print('2次多项式回归模型在测试集上的R方:',regressor_poly2.score(x_test_poly2,y_test))
x_test_poly4=poly4.transform(x_test) #使用测试数据对4次多项式回归模型的性能进行评估
print('4次多项式回归模型在测试集上的R方:',regressor_poly4.score(x_test_poly4,y_test))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Murrays

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值