精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

XGBoost中無需手動編碼的分類特征

jf_pJlTbmA9 ? 來源:NVIDIA ? 作者:NVIDIA ? 2023-07-05 16:30 ? 次閱讀

XGBoost 是一種基于決策樹的集成 機器學習算法,基于梯度增強。然而,直到最近,它還不支持分類數據。分類特征在用于訓練或推理之前必須手動編碼。

在序數類別的情況下,例如學校成績,這通常使用標簽編碼來完成,其中每個類別都分配一個與該類別的位置相對應的整數。等級 A 、 B 和 C 可分別分配整數 1 、 2 和 3 。

對于基數類別,類別之間沒有序數關系,例如顏色,這通常使用一個熱編碼來完成。這是為類別特征包含的每個類別創建新的二進制特征的地方。具有紅色、綠色和藍色類別的單個分類特征將是一個熱編碼為三個二進制特征,一個代表每種顏色。

>>> import pandas as pd
>>> df = pd.DataFrame({"id":[1,2,3,4,5],"color":["red","green","blue","green","blue"]})
>>> print(df)
  id  color
0   1    red
1   2  green
2   3   blue
3   4  green
4   5   blue

>>> print(pd.get_dummies(df))
  id  color_blue  color_green  color_red
0   1           0            0          1
1   2           0            1          0
2   3           1            0          0
3   4           0            1          0
4   5           1            0          0

這意味著具有大量類別的分類特征可能會導致數十甚至數百個額外的特征。因此,經常會遇到內存池和最大 DataFrame 大小限制。

對于 XGBoost 這樣的樹學習者來說,這也是一種特別糟糕的方法。決策樹通過找到所有特征的分裂點及其可能的值來訓練,這將導致純度的最大提高。

由于具有許多類別的一個熱編碼分類特征往往是稀疏的,因此分割算法 經常忽略 one-hot 特性有利于較少稀疏的特征,這些特征可以貢獻更大的純度增益。

現在, XGBoost 1.7 包含了一個實驗 特征,它使您可以直接在分類數據上訓練和運行模型,而無需手動編碼。這包括讓 XGBoost 自動標記編碼或對數據進行一次熱編碼的選項,以及 optimal partitioning 算法,用于有效地對分類數據執行拆分,同時避免一次熱解碼的缺陷。 1.7 版還支持缺失值和最大類別閾值,以避免過度擬合。

這篇文章簡要介紹了如何在包含多個分類特征的示例數據集上實際使用新特征。

使用 XGBoost 的分類支持預測恒星類型

要使用新功能,必須首先加載一些數據。在本例中,我使用了 Kaggle star type prediction dataset 。

>>> import pandas as pd
>>> import xgboost as xgb
>>> from sklearn.model_selection import train_test_split
>>> data = pd.read_csv("6 class csv.csv")
>>> print(data.head())

然后,將目標列(星形)提取到其自己的系列中,并將數據集拆分為訓練和測試數據集。

>>> X = data.drop("Star type", axis=1)
>>> y = data["Star type"]
>>> X_train, X_test, y_train, y_test = train_test_split(X, y)

接下來,將分類特征指定為category數據類型。

>>> Y_train = y_train.astype("category")
>>> X_train["Star color"] = X_train["Star color"].astype("category")
>>> X_train["Spectral Class"] = X_train["Spectral Class"].astype("category")

現在,要使用新功能,必須在創建XGBClassifier對象時將enable_categorical參數設置為True。之后,繼續訓練 XGBoost 模型時的正常操作。這適用于 CPUGPU tree_methods。

>>> clf = xgb.XGBClassifier(
    tree_method="gpu_hist", enable_categorical=True, max_cat_to_onehot=1
)
>>> clf.fit(X_train, y_train)

XGBClassifier(base_score=0.5, booster='gbtree', callbacks=None,
              colsample_bylevel=1, colsample_bynode=1, colsample_bytree=1,
              early_stopping_rounds=None, enable_categorical=True,
              eval_metric=None, gamma=0, gpu_id=0, grow_policy='depthwise',
              importance_type=None, interaction_constraints='',
              learning_rate=0.300000012, max_bin=256, max_cat_to_onehot=4,
              max_delta_step=0, max_depth=6, max_leaves=0,
              min_child_weight=1, missing=nan, monotone_constraints='()',
              n_estimators=100, n_jobs=0, num_parallel_tree=1, 
              objective='multi:softprob', predictor='auto', random_state=0, 
              reg_alpha=0, ...)

最后,您可以使用您的模型生成預測,而無需對分類特征進行一次熱編碼或編碼。

>>> X_test["Star color"] = X_test["Star color"]
    .astype("category")
    .cat.set_categories(X_train["Star color"].cat.categories)
>>> X_test["Spectral Class"] = X_test["Spectral Class"]
    .astype("category")
    .cat.set_categories(X_train["Spectral Class"].cat.categories)
>>> print(clf.predict(X_test))
[1 0 3 3 2 5 1 1 2 1 4 3 4 0 0 4 1 5 2 4 4 1 4 5 5 3 1 4 5 2 0 2 5 5 4 2 5
 0 3 3 0 2 3 3 1 0 4 2 0 4 5 2 0 0 3 2 3 4 4 4]

總結

我們演示了如何使用 XGBoost 對分類特征的實驗支持,以改善 XGBoost 在分類數據上的訓練和推理體驗。。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    4949

    瀏覽量

    102828
  • AI
    AI
    +關注

    關注

    87

    文章

    30239

    瀏覽量

    268479
  • 機器學習
    +關注

    關注

    66

    文章

    8382

    瀏覽量

    132444
收藏 人收藏

    評論

    相關推薦

    基于xgboost的風力發電機葉片結冰分類預測 精選資料分享

    xgboost中文叫做極致梯度提升模型,官方文檔鏈接:https://xgboost.readthedocs.io/en/latest/tutorials/model.html2018年9月6日筆記
    發表于 07-12 06:58

    基于xgboost的風力發電機葉片結冰分類預測 精選資料下載

    xgboost中文叫做極致梯度提升模型,官方文檔鏈接:https://xgboost.readthedocs.io/en/latest/tutorials/model.html2018年9月6日筆記
    發表于 07-12 06:44

    編碼器的分類及其工作原理

    稱為碼盤,后者稱為碼尺。編碼器的分類1.按按碼盤的刻孔方式可分為絕對編碼器和增量編碼器絕對編碼器由機械位置決定的每個位置是唯一的,它
    發表于 09-14 09:16

    基于快速低秩編碼與局部約束的圖像分類算法

    ;其次,在視覺詞典采取K最近鄰( KNN)策略查找聚類中心對應的K個視覺單詞,并將其組成對應的視覺詞典;最后,使用快速低秩編碼算法獲得局部相似特征集合對應的特征
    發表于 11-24 16:39 ?0次下載
    基于快速低秩<b class='flag-5'>編碼</b>與局部約束的圖像<b class='flag-5'>分類</b>算法

    色環電阻識別工具計算器(無需手動計算)

    電子發燒友網站提供《色環電阻識別工具計算器(無需手動計算).rar》資料免費下載
    發表于 12-25 10:54 ?103次下載

    通過學習PPT地址和xgboost導讀和實戰地址來對xgboost原理和應用分析

    關于xgboost的原理網絡上的資源很少,大多數還停留在應用層面,本文通過學習陳天奇博士的PPT和xgboost導讀和實戰地址,希望對xgboost原理進行深入理解。
    的頭像 發表于 01-02 10:18 ?6507次閱讀
    通過學習PPT地址和<b class='flag-5'>xgboost</b>導讀和實戰地址來對<b class='flag-5'>xgboost</b>原理和應用分析

    基于棧式自編碼的惡意代碼分類算法

    針對傳統機器學習方法不能有效地提取惡意代碼的潛在特征,提出了基于棧式自編碼( stacked auto en-coder,SAE)的惡意代碼分類算法。其次從大量訓練樣本中學習并提取惡意代碼紋理圖像
    發表于 01-16 17:19 ?0次下載
    基于棧式自<b class='flag-5'>編碼</b>的惡意代碼<b class='flag-5'>分類</b>算法

    一種新的目標分類特征深度學習模型

    受限和高識別率要求,提取圖像的局部方向梯度直方圖( HOG)特征,構建稀疏自編碼器棧對HOG特征進行深層次編碼,設計Softmax多分類器對
    發表于 03-20 17:30 ?0次下載
    一種新的目標<b class='flag-5'>分類</b><b class='flag-5'>特征</b>深度學習模型

    面試中出現有關Xgboost總結

    介紹 Xgboost是GB算法的高效實現,xgboost的基學習器除了可以是CART(gbtree)也可以是線性分類器(gblinear)
    發表于 03-20 16:48 ?4460次閱讀

    XGBoost原理概述 XGBoost和GBDT的區別

    相比于經典的GBDT,xgboost做了一些改進,從而在效果和性能上有明顯的提升。
    的頭像 發表于 07-16 18:54 ?7.9w次閱讀
    <b class='flag-5'>XGBoost</b>原理概述 <b class='flag-5'>XGBoost</b>和GBDT的區別

    基于自編碼特征的語音聲學綜合特征提取

    信噪比衡量)很低。在不影響可懂度的情況下,為了提高語音増強后語音質量,提出了一種基于自編碼特征的綜合特征。首先利用自編碼器提取自編碼
    發表于 05-19 16:33 ?27次下載

    基于XGBoost的樹突狀細胞算法綜述

    樹突狀細胞算法(DCA)要求輸入3類信號,需要通過人工選取或統計學等方式提前進行特征提取。為準確、高效地提取特征,提岀一種基于 Xgboost的DCA。通過使用ⅹ Gboost算法迭代生成決策樹
    發表于 06-09 14:48 ?3次下載

    常見的11個分類變量編碼方法

    機器學習算法只接受數值輸入,所以如果我們遇到分類特征的時候都會對分類特征進行編碼,本文總結了常見的11個
    的頭像 發表于 11-28 15:45 ?3408次閱讀

    XGBoost 2.0介紹

    ,還將介紹新機制和更新。 這是一篇很長的文章,因為我們首先從梯度增強決策樹開始。 基于樹的方法,如決策樹、隨機森林以及擴展后的XGBoost,在處理表格數據方面表現出色,這是因為它們的層次結構天生就善于對表格格式中常見的分層關系進行建模。它們在自動檢測和整合特征之間復雜
    的頭像 發表于 11-03 10:12 ?456次閱讀
    <b class='flag-5'>XGBoost</b> 2.0介紹

    BP神經網絡在語言特征信號分類的應用

    Network),即反向傳播神經網絡,作為一種強大的多層前饋神經網絡,憑借其優異的非線性映射能力和高效的學習機制,在語言特征信號分類展現出了巨大的潛力。本文將從BP神經網絡的基本原理、語言
    的頭像 發表于 07-10 15:44 ?332次閱讀