1. 程式人生 > >期末大作業,最後一週上課檢查

期末大作業,最後一週上課檢查

#讀取資料
from sklearn.datasets import load_boston   #匯入房價資料集
boston=load_boston()  
boston.data
boston.target
boston.data.shape
#將資料轉化為資料框形式
import pandas as pd   
df=pd.DataFrame(x)
df


#建立變數與房價之間的預測模型
import matplotlib.pyplot as plt  
x=boston.data[:,5]     #下標2表示feature_names 的‘INDUS'
y=boston.target
plt.figure(figsize=(8,3))#指定顯示圖大小
plt.scatter(x,y,c='b',marker='*')
plt.plot(x,8*x-10,'r')#迴歸線
plt.show()


#通過訓練集和測試集劃分得出實際模型
from sklearn.linear_model import LinearRegression 
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(boston.data[:,5],boston.target,test_size=0.3, )#劃分訓練和測試資料集
lineR=LinearRegression()
lineR.fit(x_train.reshape(-1,1),y_train)  #對資料進行訓練
#lineR.coef_   #通過訓練得到斜率
lineR.intercept_   #通過訓練得到截距
plt.figure(figsize=(8,3))#指定顯示圖大小
plt.scatter(x_train,y_train,c='b',marker='*')
plt.plot(x,9*x-37,'r')#迴歸線
plt.show()

# 檢測模型好壞
x_train,x_test,y_train,y_test=train_test_split(boston.data[:,5],boston.target,test_size=0.3, )#劃分訓練和測試資料集
print(x_train.shape,y_train.shape)
lineR=LinearRegression()
lineR.fit(x_train,y_train)  #對資料進行訓練
lineR.coef_   #通過訓練得到斜率
lineR.intercept_   #通過訓練得到截距
import numpy as np
x_predict = lineR.predict(x_test)
print("預測的均方誤差:", np.mean(x_predict - y_test)**2)# 列印預測的均方誤差
print("模型的分數:",lineR.score(x_test, y_test))# 列印模型的分數----