標籤:

kaggle房價預測

kaggle房價預測

本文數據來源kaggle的House Prices: Advanced Regression Techniques大賽。

#導入數據import pandas as pdpd.set_option(display.max_columns, None)import sklearnfrom sklearn.svm import SVRimport matplotlib.pyplot as plt% matplotlib inlinetrain = pd.read_csv(C:/wq/項目/房價預測/train.csv,engine = python)test = pd.read_csv(C:/wq/項目/房價預測/test.csv,engine = python)test.head()

協方差矩陣相關性分析

corrDf=train.corr()corrDf[SalePrice].sort_values(ascending =False)

我們取大於0.3的特徵變數

#取特徵值ssa=[OverallQual,GrLivArea,GarageCars,GarageArea,TotalBsmtSF,1stFlrSF,FullBath,TotRmsAbvGrd,YearBuilt,YearRemodAdd,GarageYrBlt,MasVnrArea,Fireplaces,BsmtFinSF1,LotFrontage,WoodDeckSF,2ndFlrSF,OpenPorchSF,HalfBath,LotArea,BsmtFullBath,BsmtUnfSF]

剔除多餘特徵

train1=train[ssa]train1.info()test[ssa].info()test1=test[ssa]

缺失值處理

train1[LotFrontage]=train1[LotFrontage].fillna(train1[LotFrontage].mean())train1[GarageYrBlt]=train1[GarageYrBlt].fillna(train1[GarageYrBlt].mean())train1[MasVnrArea]=train1[MasVnrArea].fillna(train1[MasVnrArea].mean())def buquan(df): for aa in ssa: df[aa]=df[aa].fillna(df[aa].mean()) return dfbuquan(test1)

進行建模,這次我們用的是支持向量回歸

model = SVR()

提取特徵

#原始數據集:特徵train_X = train1.loc[:,:]#原始數據集:標籤train_y = train[SalePrice]test_X = test1.loc[:,:]

訓練模型

model.fit( train_X , train_y )

我們先對訓練集做個預測

pred_Y = model.predict(train_X)pred_Y

結果值都一樣了,這是什麼情況,我們此時需要對數據進行分析,然後調整

我們觀察房價的分布,用散點圖來看

plt.scatter(range(0,1460),train[SalePrice])

發現可能因為房價過於集中,或者有些房價離散程度太高,然後產生了預測值為一個值的情況

那麼我們可以對價格取對數進行處理,我們從log函數的性質可以看到,自變數x的值越小,函數值y的變化越快,所以與這個圖結合起來,應該能夠放大接近的價格的距離,又縮小太高的價格的距離而具有線性關係

import numpy as nptrain_y = np.log1p(train_y)

再次訓練模型

svr_model = SVR()svr_model.fit(train_X, train_y)

對訓練集做預測看還是不是一個值

Y=svr_model.predict(train_X)np.expm1(Y)#取對數後進行恢復

這樣就沒有問題了,我們再預測測試集

Y1=svr_model.predict(test1)result=np.expm1(Y1)result.to_csv("C:/Users/Administrator/Desktop/logistic_regression_predictions.csv", index=False)

這樣大致完成,後續再進行深化與調整吧


推薦閱讀:

Kaggle 入門 1.1——A Journey through Titanic
Titanic: kaggle入門實踐-top10%(附Python代碼)
遺憾未進前10%, Kaggle&Quora競賽賽後總結
Kaggle入門系列:(二)Kaggle簡介
Zillow簡介(二)如何重構經紀行業的產業鏈?

TAG:Kaggle |