「已注销」 2023-02-12 11:03 采纳率: 90.2%
浏览 21
已结题

多项式回归,matplob绘图

机器学习,用的Polynomial Regression,在jupyter运行,思路是先从excel读数据,再用LabelEncoder重新排序并索引,最后进行regression
问题:不管怎么改degree的数值,只能输出degree=2的图像,但是每次MSE都不一样

img


import numpy as np  
import sklearn.linear_model as lm    
import matplotlib.pyplot as plt 
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
from sklearn import preprocessing
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import mean_squared_error

df=pd.read_excel('data.xlsx',sheet_name='T5',header=9,nrows=1)
df.isnull()
data=df.iloc[0]    #read 2022 to 1950 into data
Y=data[1:]
le=LabelEncoder()
X=le.fit_transform(df.columns[1:])

datasets_X=np.arange(1950,2014,step=1)
dataset_length=len(datasets_X)
datasets_Y=data[2023-datasets_X]
datasets_Y=np.array(datasets_Y)
datasets_X=np.array(datasets_X).reshape([dataset_length,1])
test_X=np.arange(2014,2023,step=1)
test_length=len(test_X)
test_X=np.array(test_X).reshape([test_length,1])

poly_reg=PolynomialFeatures(degree=2)   ##reset degree
X_poly=poly_reg.fit_transform(datasets_X)
lin_reg=lm.LinearRegression()
lin_reg.fit(X_poly,datasets_Y)
data1=poly_reg.fit_transform(test_X)
pred=lin_reg.predict(data1)
TEST=[5469724,5535002,5607283,5612253,5638676,5703569,5685807,5453566,5637022]
mse=mean_squared_error(TEST, pred)

plt.scatter(datasets_X,datasets_Y,s=10)
my_x_ticks=np.arange(1950,2023,10)
plt.xticks(my_x_ticks)
X=np.arange(1950,2023).reshape([-1,1])
plt.plot(X,lin_reg.predict(poly_reg.fit_transform(X)),color='black')
plt.xlabel("Year")
plt.ylabel("Total Population(*$10^6)$")
plt.title("Multiple Regression")
plt.scatter(test_X,TEST,s=10)
plt.show()
print(mse)
  • 写回答

2条回答 默认 最新

  • CodeBytes 2023-02-12 11:24
    关注

    看起来这个代码只做了二次多项式回归,并且在图像中绘制了回归曲线。如果你想更改degree,你需要更改以下代码:

    poly_reg=PolynomialFeatures(degree=2)   ##reset degree
    
    

    把degree的值设置为你想要的数值。

    然而,每次运行代码所得到的MSE值都不一样是正常的。因为训练数据和测试数据是随机选取的,如果每次运行代码都选取了不同的训练数据和测试数据,则每次的MSE值都会有所不同。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月12日
  • 已采纳回答 4月4日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?