1. 讀取數據集
2. 訓練集與測試集划分
3. 線性回歸模型:建立13個變量與房價之間的預測模型,並檢測模型好壞。
4. 多項式回歸模型:建立13個變量與房價之間的預測模型,並檢測模型好壞。
5. 比較線性模型與非線性模型的性能,並說明原因。
#線性回歸模型:建立13個變量與房價之間的預測模型,並檢測模型好壞。 from sklearn.datasets import load_boston import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split boston=load_boston()#導入數據集 x = boston.data y = boston.target x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)#划分訓練集和測試集 lineR=LinearRegression()#線性模型 lineR.fit(x_train,y_train) #判斷模型的好壞
print('預測的准確率:',lineR.score(x_test,y_test))
#4. 多項式回歸模型:建立13個變量與房價之間的預測模型,並檢測模型好壞。 from sklearn.preprocessing import PolynomialFeatures poly=PolynomialFeatures(degree=2) from sklearn.linear_model import LinearRegression lineR=LinearRegression() x= boston.data y = boston.target x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)#划分訓練集和測試集 #多項式操作 x_train_poly=poly.fit_transform(x_train) x_test_poly=poly.transform(x_test) lineR.fit(x_train_poly,y_train)#建立模型 print('預測的准確率:',lineR.score(x_test_poly,y_test)) #圖形化 from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt lineR=LinearRegression() lineR.fit(x_train_poly,y_train) y_poly_pred=lineR.predict(x_test_poly) plt.plot(y,y,'r') plt.scatter(y_test,y_poly_pred) plt.show()
線性模型與非線性模型性能的區別:
一個模型如果是線性的,就意味着它的參數項要么是常數,要么是原參數和要預測的特征之間的乘積加和就是我們要預測的值。