Datawhale组队学习:数据竞赛(房价预测)课程任务
背景
Datawhale 是國內很有名的一個開源學習組織。這個組織將渴望改變的學習者以及一群有能力有想法的青年人集結在一起,營造出一種互促高效的學習環境,一起為開源學習付出努力。
Datawhale 近期將推出三門課程的組隊學習。我將第三門 數據競賽(房價預測) 的任務發布出來。如果你愿意跟我們一起來學習這門課程,請留意我們近期公布的 “Datawhale第八期組隊學習計劃”。
“2019未來杯高校AI挑戰賽 > 城市-房產租金預測”
賽題說明
線上比賽要求參賽選手根據給定的數據集,建立模型,預測房屋租金。
數據集中的數據類別包括租賃房源、小區、二手房、配套、新房、土地、人口、客戶、真實租金等。
平臺提供的數據包括訓練集、預測試集(Test A)、正式測試集(Test B),詳見數據集說明。
參賽選手需要將預測的結果按照測試集ID順序輸出,以便平臺對提交模型的結果進行驗證。每天每個參賽者最多可以提交2次。
線上賽數據發放與結果提交
訓練數據Train_data和預測試集Test A將在賽事開始時開放,Train_data供參賽選手訓練模型;預測試集Test A只供參賽選手熟悉提交流程,Test A的預測結果不計入正式成績。
正式測試數據Test B在賽事規定的時間開放,僅供模型驗證使用,禁止調整測試數據Test B的順序及任何其他形式的修改。參賽選手需要在賽事結束前提交模型、代碼以及預測結果。平臺將及時更新結果排名,取最好成績作為客觀成績,每人每天有2次提交機會。
比賽要求
- 賽選手可以根據模型需求,篩選適當的數據維度。
- 參賽選手可以根據模型需求,自行清洗訓練數據。
- 不得使用提供的數據集之外的數據訓練模型。
- 不得將自行手工標注的結果運用于訓練和測試。
- 參賽選手需要同時提交說明文檔、預測結果、訓練和預測代碼、模型(參數集),詳見結果提交要求。
- 參賽選手所提交程序應可在Linux/windows環境順利運行。建議(不強制)使用Python 2.7或Python3.6作為首選編程環境,使用Anaconda 3 搭建軟件環境。不限制第三方軟件包使用,但須獲得合法授權和軟件拷貝,以確保主辦方可以復現程序運行過程。
- 參賽選手的提交作品需要可完整復現訓練和預測過程,主辦方不會做任何代碼修改,如無法復現的,視作無效提交。
復賽晉級與綜合評審
根據模型有效提交的得分,前10名選手可以晉級復賽。晉級復賽的選手需要通過PPT展示進行線下答辯,PPT展示主要包括數據清洗規則、模型創新、算法實現、結果分析等。
有關這次比賽更多的信息參見:
https://2019ai.futurelab.tv/contest_detail/3#contest_des
學習任務
Task01:賽題分析(2天)
https://github.com/datawhalechina/team-learning/blob/master/數據競賽(房租預測)/1_賽題分析.ipynb
每一步都要認真完成,附上代碼,最終效果截圖
認識數據
- 了解比賽的背景
- 分類問題還是回歸問題
- 熟悉比賽的評分函數
對比賽數據做EDA
- 缺失值分析
- 特征值分析
- 是否有單調特征列(單調的特征列很大可能是時間)
- 特征nunique分布
- 統計特征值出現頻次大于100的特征
- Label分布
- 不同的特征值的樣本的label的分布
Task02:數據清洗(2天)
https://github.com/datawhalechina/team-learning/blob/master/數據競賽(房租預測)/2_數據清洗.ipynb
每一步都要認真完成,附上代碼,最終效果截圖
缺失值分析及處理
- 缺失值出現的原因分析
- 采取合適的方式對缺失值進行填充
異常值分析及處理
- 根據測試集數據的分布處理訓練集的數據分布
- 使用合適的方法找出異常值
- 對異常值進行處理
深度清洗
- 分析每一個communityName、city、region、plate的數據分布并對其進行數據清洗
Task03:特征工程&特征選擇(2天)
https://github.com/datawhalechina/team-learning/blob/master/數據競賽(房租預測)/3_特征工程.ipynb
使用3種以上特征選擇的方法,附上代碼,最終效果截圖
特征工程
數據和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已。那特征工程到底是什么呢?顧名思義,其本質是一項工程活動,目的是最大限度地從原始數據中提取特征以供算法和模型使用。so,想要獲得一個比較好的分數,特征工程是十分重要的。那么數據清洗之后,特征工程該如何下手呢?由于不同的業務特征工程千差萬別,在這里,只給一些思路,一些具體的特征工程方法,大家自己摸索。
- 房間總數
- 根據房型信息抽取出更細的信息,然后可以組合
- 每平方均價
- 根據租房信息可以求得每平方的均價
- 根據小區信息groupby
- 同一個小區的租房信息相差不大,可以根據小區
- 聚類特征
- 使用sklearn.mixture.GaussianMixture做聚類特征
- Word2vec特征
- 將類別特征使用w2v構建特征(思路:將每一個樣本的類別特征夠造成一個句子,然后使用word2vec提取特征之間的相關關系)
- OneHotEncoder、labelencoder
- 過大量級值取log平滑(針對線性模型有效)
特征選擇
- Filter
- 相關系數法
- 卡方檢驗
- Wrapper
- 遞歸特征消除法(RFE)
- Embedded
- 基于懲罰項的特征選擇法
- 基于樹模型的特征選擇法
- baseline
- 任選一個模型套用,得到baseline。對比任務二使用的模型結果的得分情況。
Task04:模型選擇&模型調優(2天)
https://github.com/datawhalechina/team-learning/blob/master/數據競賽(房租預測)/4_模型選擇.ipynb
每一步都要認真完成,附上代碼,最終效果截圖
模型選擇
如果你不熟悉各個算法模型的適用數據,那么就去嘗試吧!然后選取效果最好的模型,當然這個是基于你已經做好一套特征工程之后,比賽中常用的模型有GBDT,XGB,LGB,CatBoost等等。
選取兩個模型,學習Sklearn包相關參數。
模型調優
使用網格搜索進行模型調參,并記錄每個模型的最優參數
結果對比
任選一個模型套用,得到 baseline 對比任務三使用的模型結果的得分情況。
Task05:模型融合(3天)
https://github.com/datawhalechina/team-learning/blob/master/數據競賽(房租預測)/5_模型融合.ipynb
任選三個模型融合的方法進行融合。附上代碼,最終效果截圖
模型融合
嘗試多種模型融合的方案
- stacking
- 簡單加權融合
- blending
- boosting
- bagging
- 將多個模型結果再放入模型中預測
- ……以及你能想到和借鑒的模型融合方法
結果對比
對比任務四使用的模型結果的得分情況。
Task06:比賽整理(1天)
https://github.com/datawhalechina/team-learning/blob/master/數據競賽(房租預測)/6_競賽整理.ipynb
以賽方最后給的答辯模板為主線整理比賽思路,模擬比賽答辯環節,進行比賽整理。
Part1:參賽隊成員簡介
這個由于是模擬比賽所以這個部分可以不寫哦
Part2:參賽作品概述
Part3:關鍵技術闡述
數據清洗、特征工程、模型、模型融合,并強調對比賽提分最有幫助的部分
Part4:探索與創新
寫明做的與眾不同的創新點
Part5:實施與優化過程
在過程中嘗試過的方法都可以提及并總結
Part6:其它
有其他需要補充的可以寫在這個部分,因為比賽是和企業合作,并具有實際意義的比賽,所以強調你的代碼模型的實際意義,商業價值都會在答辯環節有幫助哦。
總結
以上是生活随笔為你收集整理的Datawhale组队学习:数据竞赛(房价预测)课程任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜集-类似Visio绘图软件
- 下一篇: 怎么用python找资料_python去