1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【數(shù)據(jù)競(jìng)賽】Kaggle知識(shí)點(diǎn):樹模型特征Embedding

        共 1607字,需瀏覽 4分鐘

         ·

        2022-02-17 05:54

        在對(duì)數(shù)據(jù)進(jìn)行編碼的過程中,經(jīng)常會(huì)遇到一些非結(jié)構(gòu)化的字段(如列表、文本),或者高維稀疏的字段。

        在使用樹模型的過程中,上述字段對(duì)樹模型很不友好,會(huì)增加樹模型的訓(xùn)練時(shí)間,一般情況需要通過人工特征提取,然后進(jìn)行。

        有沒有一種可以適合樹模型編碼的操作呢?在樹模型中可以通過葉子節(jié)點(diǎn)的次序作為進(jìn)行編碼,在Kaggle中稱為Tree Categorical Embedding。

        Tree Categorical Embedding

        在訓(xùn)練完樹模型之后,可以通過對(duì)模型進(jìn)行預(yù)測(cè),通過節(jié)點(diǎn)邏輯的判斷從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)。

        此時(shí)葉子節(jié)點(diǎn)中包含的樣本類別(或標(biāo)簽均值)為最終的預(yù)測(cè)結(jié)果。這里想要具體的index,也就是樣本預(yù)測(cè)到第幾個(gè)葉子節(jié)點(diǎn)中。

        在XGBoost中,擁有多棵樹。則一個(gè)樣本將會(huì)被編碼為多個(gè)index,最終可以將index作為額外的類別特征再加入到模型訓(xùn)練。

        具體API

        XGBoost

        使用Learning API,設(shè)置pred_leaf參數(shù)

        import?xgboost?as?xgb
        from?sklearn.datasets?import?make_classification

        X,?Y?=?make_classification(1000,?20)
        dtrain?=?xgb.DMatrix(X,?Y)
        dtest?=?xgb.DMatrix(X)

        param?=?{'max_depth':10,?'min_child_weight':1,?'learning_rate':0.1}
        num_round?=?200
        bst?=?xgb.train(param,?dtrain,?num_round)
        bst.predict(dtest,?pred_leaf=True)

        LightGBM

        使用sklearn API或者Learning API,設(shè)置pred_leaf參數(shù)

        import?lightgbm?as?lgb
        from?sklearn.datasets?import?make_classification

        X,?Y?=?make_classification(1000,?20)
        dtrain?=?lgb.Dataset(X,?Y)
        dtest?=?lgb.Dataset(X)

        param?=?{'max_depth':10,?'min_child_weight':1,?'learning_rate':0.1}
        num_round?=?200
        bst?=?lgb.train(param,?dtrain,?num_round)
        bst.predict(X,?pred_leaf=True)

        CatBoost

        使用calc_leaf_indexes函數(shù)

        import?catboost?as?cab
        from?sklearn.datasets?import?make_classification

        X,?Y?=?make_classification(1000,?20)
        clf?=?cab.CatBoostClassifier(iterations=200)
        clf.fit(X,?Y)
        clf.calc_leaf_indexes(X)

        使用細(xì)節(jié)

        1. leaf index預(yù)測(cè)維度與具體樹個(gè)數(shù)相關(guān),也就是與具體的round相關(guān)。
        2. leaf index的預(yù)測(cè)結(jié)果為類別類型。
        3. leaf index建議交叉驗(yàn)證編碼,避免自己訓(xùn)練并編碼自己。

        交叉驗(yàn)證實(shí)現(xiàn):https://www.kaggle.com/mmueller/categorical-embedding-with-xgb/script

        學(xué)習(xí)數(shù)據(jù)競(jìng)賽,組隊(duì)參賽,交流分享
        添加??微信


        瀏覽 67
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            女教师日记2暴露的性1997 | 日本特级黄色 | 日韩成人无码电影一区二区三区 | 特级西西裸体444Www高清大胆 | 免费黄网在线观看 | 国产.高清,露脸,对白 | 日韩在线视频欧美 | 奴役支配性狂虐xxxxx在线 | 91精品久久久久久久久久久久 | 色鬼久久|