波士頓房價預測(一)
阿新 • • 發佈:2021-02-07
波士頓房價預測
波士頓房價預測(一)
比賽網址:https://www.kaggle.com/c/machine-learning-on-thursday/overview
比賽要求
1.做線性迴歸,或使用現成的線性迴歸函式,方法嘗試使用Gradient Descent,SGD以及ADAM。
2.比較不同的學習率的結果。例如損失函式曲線圖
3.比較有無加上regularization的結果。
4.比較有無否使用feature scale的結果。
熟悉資料
訓練資料:
train_data=pd.read_csv('train_dataset.csv',index_col=None) train_data.head()
檢視訓練資料是否有空值
train_data.isnull().sum()
測試資料展示:
test_data=pd.read_csv('test_dataset.csv')
test_data.head()
檢視測試資料有沒有空值
test_data.isnull().sum()
簡單的利用sklearn的線性迴歸函式進行預測:
庫:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
訓練資料的特徵與標籤進行分離:
train_price=train_data['PRICE'] del train_data['PRICE']
訓練資料3:7進行訓練與測試集進行分隔:
x_train, x_test, y_train, y_test = train_test_split(train_data, train_price, random_state=1)
建立模型,並把訓練資料放進去訓練
linreg = LinearRegression()
model = linreg.fit(x_train, y_train)
訓練完成,把測試資料放進去預測,並手寫mse:
y_hat = linreg.predict(np.array(x_test)) mse = np.average((y_hat - np.array(y_test)) ** 2)
mse=30.422305958595874
建立提交格式,預測比賽中的測試資料:
test_id=test_data['ID']
del test_data['ID']
test_price = linreg.predict(np.array(test_data))
L=[]
for x in test_id:
s='id_'+str(x)
L.append(s)
sub['ID']=L
sub['value']=test_price
price=[]
for x in test_price:
price.append( round(x,1))
sub.to_csv('answer_1.csv',index=False)
結果提交上去結果為15.211152979297937
時間:2021.02.06