import numpy as np import matplotlib.pyplot as plt from sklearn import linear_model import pandas as pd from sklearn import preprocessing def data_input(): data=pd.read_excel('22AI1.xlsx') data=data.dropna(axis=0) data = data.reset_index(drop=True) X=data.身高 Y=data.体重 X=np.array(X).reshape(-1,1) Y=np.array(Y).reshape(-1,1) return X,Y X,Y=data_input()[0],data_input()[1] clf=linear_model.LinearRegression() clf.fit(X,Y) X2=np.array([[160],[165],[170]]) Y2=clf.predict(X2) res=clf.predict(np.array(190).reshape(-1,1))[0] print('预测身高190的学生体重为:{:.2f}'.format(res[0])) # 画图部分 plt.plot(X,Y,'ks') plt.plot(X2,Y2,'g-') plt.show()我的代码如上,请再次给出解决办法
时间: 2024-01-14 15:02:47 浏览: 156
根据您提供的代码,您想要预测身高为190的学生体重,并且画出身高和体重之间的回归线。
您的代码中已经使用了sklearn库的线性回归模型来拟合身高和体重之间的关系,并且使用predict()方法来预测身高为190的学生体重。但是,在预测身高为190的学生体重之前,您需要对身高数据进行标准化处理,以提高模型的准确性。
以下是修改后的代码,其中使用了sklearn库中的preprocessing模块来进行身高数据的标准化处理:
```
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
import pandas as pd
from sklearn import preprocessing
def data_input():
data=pd.read_excel('22AI1.xlsx')
data=data.dropna(axis=0)
data = data.reset_index(drop=True)
X=data.身高
Y=data.体重
X=np.array(X).reshape(-1,1)
Y=np.array(Y).reshape(-1,1)
return X, Y
# 标准化身高数据
X = preprocessing.scale(data_input()[0])
Y=data_input()[1]
clf=linear_model.LinearRegression()
clf.fit(X,Y)
# 标准化待预测的身高数据
X2 = preprocessing.scale(np.array([[160],[165],[170],[190]]))
Y2=clf.predict(X2)
res=Y2[-1][0] # 取出预测结果中身高为190的学生体重
print('预测身高190的学生体重为:{:.2f}'.format(res))
# 画图部分
plt.plot(X,Y,'ks')
plt.plot(X2,Y2,'g-')
plt.show()
```
在这个修改后的代码中,我们首先使用了preprocessing.scale()方法对原始的身高数据进行了标准化处理,使其具有相同的尺度。然后,我们将标准化后的身高数据用于训练线性回归模型,并使用predict()方法来预测身高为190的学生体重。最后,我们从预测结果中取出身高为190的学生体重,并使用format()方法将结果打印出来。
在画图部分,我们将标准化后的身高数据和原始的体重数据用于绘制散点图,将标准化后的身高数据和预测结果用于绘制回归线。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)