Kaggle房價預測

Kaggle房價預測

         從去年9月份自學python以來,中間經理各種迷茫,但是依然堅持下來了。到現在開始要找工作了,在這之前,要花點時間把自己學習的知識複習回顧一遍,也要做一些實戰項目多多練習,以增加熟練度。本項目打算着重複習 python 數據分析(進階)相關的知識。(https://github.com/hpchihuo/houceprice)

項目簡介:數據分析是數學統計,計算機科學以及相關業務知識的統一。因此該項目將結合自己房地產工作經驗,以及自學的數學統計和分析軟件。探索與房地產價值相關的因素。

數據來源:來自於kaggle競賽:HousePrices: Advanced Regression Techniques的數據集

目的:探尋與房地產價值相關的因素,然後建立模型,預測房地產價值。

數據初步探索:

         通過其他數值屬性與SalePrice的相關關係,快速尋找與SalePrice相關因素較大的數值屬性。

在以上屬性中,有多個屬性從不同維度來描述同一特徵。通過比較變量相關關係以及變量與目標相關關係,應使用如下屬性:OverallQua(房屋用料及完好程度總體評價),GrLivArea(房屋地上居住面積),GarageCars(車庫容納車數量),TotalBsmtSF(地下室總面積),FullBath(衛生間數量), YearBuild(建築年代),Fireplaces爲壁爐數量。

上圖爲七個屬性與SalePrice組成的散點圖或箱型圖。可以看出隨着GrLivArea以及TotalBsmtSF的增大,SalePrice總體趨勢是上升的。OverallQua評價越高,則滿意度越高,房價也就越高。Fireplaces,FullBath,GarageCars越大,SalePrice趨勢也是上升的。房屋越新,使用年限越短,損壞越少,房價越高,當然也有一些特殊情況,如某些房子可能存在特殊的歷史意義等。

處理缺失值:

         在該數據集中,有部分屬性從不同角度描述了不同的物體,因此處理缺失值時,可以從兩個屬性之間的聯繫來處理。有部分NA則表示物體不存在,這樣的缺失值可直接填充None,或0,(注意:NA既表示缺失值,又表示不存在的情況)


尋找PoolArea不爲0但PoolQC爲NA的索引,根據面積填充PoolQC,PoolQC和PoolArea其他的Na值用None和0填充

尋找GarageCond不爲空而GarageCond,GarageFinish,GarageQual爲空的索引,用分組衆值填充,其他的均用None或0值填充

對含有Bsmt的屬性進行空缺值進行處理


由MasVnrArea和MasVnrType關係,對MasVnrArea不爲空和MasVnrType爲空值填充一定範圍內的衆值,其他的填充None或0。

由於MSZoning和MSSubClass存在一定關係,用分組衆值填充MSZoning空值

其他的空缺值均由衆值填充

數據變換

對CentralAir,Utilities,BsmtCond,GarageQual序列型屬性轉化爲數值序列型數據,將YearBuilt轉化爲連續型數據,將分類變量MSZoning轉換爲“啞變量矩陣”,將轉變後的數據重新與SalePrice進行相關性檢查後,去掉Utilities


特徵縮放:

對數值型特徵進行特徵縮放,取3/4位進行縮放。

對SalePrice進行處理,使用 x/(xmax-xmin)

建立模型

使用xgboost模型中得XGBRegressor進行擬合,得到結果後按要求保存到sample.csv中

總結:

         本項目的重點(對我來說)在於數據的清洗和數據轉換,以及特徵值的選取。在特徵選取方面,我根據個人經驗以及數據分析技術進行了選擇過濾,同時對選擇的特徵進行了初步的分析.特徵涵蓋了房屋面積,地下室,車庫,衛生間等狀況,也包括外部環境。嚴格說來,這樣選擇並不嚴謹,或許遺漏了某些特徵值。

         另外在機器學法的選擇上,我也只能進行初步運用,而且使用之後,也無法評論其好壞。這些知識只能在以後慢慢積累。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章