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 多分类 多标签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机网络连接方式linuxcentos
- 下一篇: dataframe 拆分 分裂