心累,感受不可能教會媽媽建模和調優了

前言

你們還記得上一篇《如何教媽媽學會數據準備》嗎?這一期咱們將試圖教會媽媽級小白選手創建模型並進行調優。html

在準備完畢的數據上,咱們再添上「seed1」這一列,以下圖所示。「seed1」列中的數值1表示該id是咱們已知的目標用戶,0表示不是咱們的目標用戶。python

(注意:在這裏咱們略爲粗暴地將未知特質用戶所有打上了0標籤,這是出於建模須要,但願讀者可以與真實情景進行區分)。bash

圖:聚合數據的前5行示意網絡

以後咱們將用 XGBoost 開展建模。 XGBoost 被視爲機器學習的一大利器,若是你還不瞭解它,就去看它的官方文檔吧。這是關於 XGBoost 最好的介紹文檔,簡潔明瞭,圖文並茂:https://xgboost.readthedocs.io/en/latest/index.htmldom

咱們須要對上述聚合數據進行切分,一份做爲訓練集,另外一份做爲測試集。
機器學習

之因此要這樣作,是爲了防止過擬合。所謂的過擬合,即下面的左圖。在過擬合時,訓練所得的模型與樣本數據幾乎能夠徹底貼合。這樣,模型就成爲這一份樣本數據的「量身定製」了,它只適用於這一份數據,泛化能力不好。ide

所以,爲了防止出現左圖的情形,咱們從樣本數據中抽出一部分(而不是所有)來作訓練,獲得模型後,再用另外一部分數據來評估模型好壞。若是在訓練集上獲得的模型可以很好地對測試集進行預測,那麼這就是一個使人滿意的模型。學習

咱們能夠用如下語句實現數據集的拆分。測試

圖:拆分爲訓練集與測試集優化


訓練模型

這個步驟聽起來使人懼怕,實際上只有一行。

01方法一 import xgboost

訓練的核心語句是

1xgb.train(param, dtrain, num_round, evallist)複製代碼

括號中是咱們填入的參數,分別是xgboost的超級參數、數據集、訓練次數、評估結果。在賦值過程咱們把設定賦予參數,而後運行訓練語句便可。

1)超級參數。在實際運行的代碼中,咱們沒有特地設置超級參數,而是選擇了默認值(param = {})。讀者能夠參考官方文檔進行超級參數的設定。

圖:部分超級參數

2)數據集。以前咱們已經切分好了數據集,但還不夠。在這一步咱們要把數據準備爲 xgboost 可識別的 DMatrix 格式。

3)訓練次數。

4)評估結果。用一些評估方法(如均方偏差根rmse、auc等)對模型在訓練集和測試集上的表現進行評價。

從上圖能夠看出,隨着訓練次數的增多,均方偏差根rmse在降低,說明模型的表如今變好。

若是你對模型如今的效果足夠滿意,就能夠用當前的模型進行預測了。這意味着咱們的任務已經接近尾聲!

圖:用訓練完成的模型進行預測

02方法二 from xgboost.sklearn import XGBClassifier

XGBClassifier是xgboost的sklearn包,一樣的,方法二中的核心代碼也只有一句:

1XGBClassifier().fit(X_train, y_train)複製代碼

在這裏咱們直接使用了默認設定,讀者也可按照官方文檔說明自行設定,參數跟方法一中大致一致,具體見下(感到眼花繚亂的如今能夠跳過不看):

class xgboost.XGBClassifier(max_depth=3, learning_rate=0.1, n_estimators=100, silent=True, objective='binary:logistic', booster='gbtree', n_jobs=1, nthread=None, gamma=0, min_child_weight=1, max_delta_step=0, subsample=1, colsample_bytree=1, colsample_bylevel=1, reg_alpha=0, reg_lambda=1, scale_pos_weight=1, base_score=0.5, random_state=0, seed=None, missing=None, **kwargs)

中文版參數詳解:
https://blog.csdn.net/qq_36603091/article/details/80592157

圖:訓練模型

下圖中的 bst 就是咱們訓練所得的模型,拿來預測就能夠了。

雖然看起來已經完成了任務,但其實模型還有優化的空間,能夠按照下文中的步驟調參。

原文地址:

https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

譯文地址:

https://blog.csdn.net/u010657489/article/details/51952785

好了!最後具體的調優就交給讀者們本身完成。以上就是lookalike 任務的所有內容,下一期咱們再見!


本文轉自:TalkingData數據學堂

封面圖來源於網絡,若有侵權,請聯繫刪除

相關文章
相關標籤/搜索