311581019 何立平 智能所 ## 資料分析: * Correlation between all Features and the Price   由上圖Correlation分析可知, bathroom、sqft_living、grade、sqft_above、sqft_living15等feature,都是correlation大於0.5的feature。代表這個dataset的feature與price是有一定程度的關聯性。 ## 做法: * 原本我是使用一般自行疊加的MLP做為model,發現效果不理想,最後使用了XGBoost作為model。 * 以下是XGBoost的介紹: XGboost 全名為 eXtreme Gradient Boosting。此機器學習模型是以 Gradient Boosting 為基礎下去實作,並添加一些新的技巧。它可以說是結合 Bagging 和 Boosting 的優點。XGboost 保有 Gradient Boosting 的做法,每一棵樹是互相關聯的,目標是希望後面生成的樹能夠修正前面一棵樹犯錯的地方。此外 XGboost 是採用特徵隨機採樣的技巧,和隨機森林一樣在生成每一棵樹的時候隨機抽取特徵,因此在每棵樹的生成中並不會每一次都拿全部的特徵參與決策。此外為了讓模型過於複雜,XGboost 在目標函數添加了標準化。因為模型在訓練時為了擬合訓練資料,會產生很多高次項的函數,但反而容易被雜訊干擾導致過度擬合。因此 L1/L2 Regularization 目的是讓損失函數更佳平滑,且抗雜訊干擾能力更大。最後 XGboost 還用到了一階導數和二階導數來生成下一棵樹。其中 Gradient 就是所謂的一階導數,而 Hessian 即為二階導數。 * XGBoost 優點: XGBoost 除了可以做分類也能進行迴歸連續性數值的預測,而且效果通常都不差。並透過 Boosting 技巧將許多弱決策樹集成在一起形成一個強的預測模型。 • 利用了二階梯度來對節點進行劃分 • 利用局部近似算法對分裂節點進行優化 • 在損失函數中加入了 L1/L2 項,控制模型的複雜度 • 提供 GPU 平行化運算 * 參考資料:https://ithelp.ithome.com.tw/articles/10273094 ## 程式寫法: Step1: include library dependencies Step2: feature engineering Step3: model fitting and prediction Step4: result ## 結果分析: * 過程中我調整了一些超參數,讓準確率提升,超參數包含: * n_estimators=1800, * learning_rate=0.04, * max_depth=7 * 要注要model size不能太大,可能會overfitting ## 檢討與改進: * 可以比較多種model的performance,進而找到更適合的model,或是更好的超參數組合。 * 可以試試超參數搜尋的技巧和工具,讓超參數的調整更有效率。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up