1. 程式人生 > 其它 >波士頓房價預測(一)

波士頓房價預測(一)

技術標籤:機器學習kagglepython機器學習

波士頓房價預測

波士頓房價預測(一)

比賽網址: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