日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

xgboost lightgbm catboost 多分类 多标签

發布時間:2023/11/28 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xgboost lightgbm catboost 多分类 多标签 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

xgboost 與 lightgbm 官方均支持多分類任務,但不直接支持多標簽分類任務,實現多標簽任務的方法之一是結合sklearn 提供的 multiclass 子類,如OneVsRestClassifier。

下面分別給出 多分類 與 多標簽 任務的使用實例。
xgboost 多分類任務

from xgboost import XGBClassifier
import numpy as npclf_multiclass = XGBClassifier()train_data = np.random.rand(500, 100)  # 500 entities, each contains 100 features
train_label = np.random.randint(5, size=500)  # 5 targets
val_data = np.random.rand(100, 100)clf_multiclass.fit(train_data,train_label)
val_pred = clf_multiclass.predict(val_data)

lightgbm 多分類任務

from lightgbm import LGBMClassifier
import numpy as npclf_multiclass = LGBMClassifier()train_data = np.random.rand(500, 100)  # 500 entities, each contains 100 features
train_label = np.random.randint(5, size=500)  # 5 targets
val_data = np.random.rand(100, 100)clf_multiclass.fit(train_data,train_label)
val_pred = clf_multiclass.predict(val_data)

xgboost 多標簽任務

from xgboost import XGBClassifier
from sklearn.multiclass import OneVsRestClassifier
import numpy as npclf_multilabel = OneVsRestClassifier(XGBClassifier())train_data = np.random.rand(500, 100)  # 500 entities, each contains 100 features
train_label = np.random.randint(2, size=(500,20))  # 20 targetsval_data = np.random.rand(100, 100)clf_multilabel.fit(train_data,train_label)
val_pred = clf_multilabel.predict(val_data)

lightgbm 多標簽任務

from lightgbm import LGBMClassifier
from sklearn.multiclass import OneVsRestClassifier
import numpy as npclf_multilabel = OneVsRestClassifier(LGBMClassifier())train_data = np.random.rand(500, 100)  # 500 entities, each contains 100 features
train_label = np.random.randint(2, size=(500,20))  # 20 targetsval_data = np.random.rand(100, 100)clf_multilabel.fit(train_data,train_label)
val_pred = clf_multilabel.predict(val_data)

運行效率相關的幾個測試
1.關于多標簽問題,
根據目前的測試,當數據體量較大(樣本量,特征量,類別數目)時,此方案速度極慢,且如果啟動并行內存占用量極大。可能由于使用OVR 直接建立了對應類別數量的分類模型,后續測試是否有更優化的實現方法。
2.xgboost 官方提供了gpu加速支持,調用語句中增加如下超參數即可
clf_multiclass = XGBClassifier(tree_method=‘gpu_hist’, gpu_id=0)
親測使用gpu效率較高。
3. xgboost 與 lightgbm 均可通過n_jobs 設置啟用并行加速,暫未進行測試。
4. lightgbm 的 gpu加速方法暫未測試。

參考資料:
stackoverflow
lightgbm官方文檔
xgboost官方文檔

catboost 也可以直接裝載到onevsrestclassification 實現多標簽分類
from catboost import CatBoostRegressor, CatBoostClassifier
https://blog.csdn.net/qq_36940806/article/details/100084041
應用

總結

以上是生活随笔為你收集整理的xgboost lightgbm catboost 多分类 多标签的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。