1. 導入boston房價數據集
2. 一元線性回歸模型,建立一個變量與房價之間的預測模型,並圖形化顯示。
3. 多元線性回歸模型,建立13個變量與房價之間的預測模型,並檢測模型好壞,並圖形化顯示。
4.一元多項式回歸模型,建立一個變量與房價之間的預測模型,並圖形化顯示。
from sklearn.datasets import load_boston#導入數據集 boston=load_boston() #住宅平均房數與房價之間的關系 import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression lineR=LinearRegression() x=boston.data[:,5] y=boston.target plt.figure(figsize=(10,6)) plt.scatter(x,y) lineR.fit(x.reshape(-1,1),y) w=lineR.coef_ b=lineR.intercept_ plt.plot(x,w*x+b,'r') plt.show()
# 多元線性回歸模型,建立13個變量與房價之間的預測模型,並檢測模型好壞 # 划分數據集 x_train, x_test, y_train, y_test = train_test_split(boston.data,boston.target,test_size=0.3) # 建立多項式性回歸模型 lineR = LinearRegression() lineR.fit(x_train,y_train) # 檢測模型好壞 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)) import matplotlib.pyplot as plt x=boston.data[:,12].reshape(-1,1) y=boston.target plt.figure(figsize=(10,6)) plt.scatter(x,y) from sklearn.linear_model import LinearRegression lineR=LinearRegression() lineR.fit(x,y) y_pred=lineR.predict(x) plt.plot(x,y_pred) print(lineR.coef_,lineR.intercept_) plt.show()
#一元多項式回歸模型,建立一個變量與房價之間的預測模型, from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) x_poly = poly.fit_transform(x) lp = LinearRegression()#G構建模型 lp.fit(x_poly,y) y_poly_pred = lp.predict(x_poly) plt.scatter(x,y) plt.plot(x,y_poly_pred,'r') plt.show() lrp = LinearRegression() lrp.fit(x_poly,y) plt.scatter(x,y) plt.scatter(x,y_pred) plt.scatter(x,y_poly_pred) #多項回歸 plt.show()