boston房價預測--大作業一


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()

線性模型與非線性模型性能的區別:

一個模型如果是線性的,就意味着它的參數項要么是常數,要么是原參數和要預測的特征之間的乘積加和就是我們要預測的值。

線性模型計算復雜度較低,不足之處是模型擬合效果相對弱些。非線性模型擬合能力較強,不足之處是數據量不足容易過擬合,計算復雜度高,可解釋性不好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM