秦培煜 胡艷芬
1.武漢軟件工程職業學院; 2.中國地質大學(武漢)
隨著大數據和人工智能時代的到來,機器學習應用的場景越來越多。機器學習分為監督學習和無監督學習,回歸屬于監督學習范疇[1]。本文對scikit-learn自帶的房價數據進行了回歸分析。
數據使用scikit-learn自帶的boston房價數據,使用load_boston函數加載。
import numpy as np
from sklearn.datasets import load_boston
house = load_boston()
首先導入numpy和sklearn.datasets中load_boston函數,使用 load_boston加載boston房價數據,其中house.data是特征數據,house.target是標簽數據。
from sklearn.preprocessing import StandardScaler
stdHouse = StandardScaler().fit_transform(house.data)
特征數據中有些特征量綱比較大,有些特征量綱比較小,如果放在一起使用,會對最終分析結果產生不好影響。這里使用sklearn.preprocessing里的StandardScaler對房價數據進行標準化。house是標準化前的數據,stdHouse是標準化后的數據。
from sklearn.model_selection import train_test_split
data_train,data_test,target_train,target_test = train_test_split(stdHouse,house.target,random_state=100)
這里使用sklearn.model_selection里train_test_split對數據進行劃分。默認數據的75%劃分為訓練集,25%劃分為測試集。
from sklearn.linear_model import LinearRegression
linReg = LinearRegression().fit(data_train,target_train)
pred = linReg.predict(data_test)
使用sklearn.linear_model里的LinearRegression模型對數據進行訓練和預測。得到的pred是預測數據。
from sklearn.metrics import mean_squared_error
mean_squared_error(target_test,pred)
mean_squared_error是均方誤差指標,最后得到真實值target_test和預測值之間的均方誤差為27.18。
本文用scikit-learn,對boston房價數據進行了回歸分析。首先加載房價數據;其次對數據進行標準化;然后將數據劃分成訓練集和測試集,并用線性回歸模型對訓練集進行訓練,對測試集進行預測;最后用均方誤差指標對真實值和預測值進行評價。整個過程對于回歸分析有著重要的指導作用。