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