簡體   English   中英

如何更改XGboost中的損耗矩陣(在R中)?

[英]How to change loss matrix in XGboost (in R)?

我想將誤報成本高於誤報成本的二進制變量分類。

rpart包中,我們使用損失矩陣,添加parms = list(loss=matrix(c(0,1,5,0),nrow=2))來將錯誤的示例錯誤分類為正值是正值的5倍而不是將一個正面的例子錯誤地歸類為負面的代價。

如何使用XGboost做到這XGboost

您在尋找scale_pos_weight參數嗎?

https://github.com/dmlc/xgboost/blob/master/doc/parameter.md

scale_pos_weight,[默認值= 1]控制正負權重的平衡,對不平衡類很有用。 需要考慮的典型值:sum(負數)/ sum(正數)有關更多討論,請參見參數調整。 另請參見Higgs Kaggle競爭演示示例:R,py1,py2,py3

您可以使用類似:

clf = xgb.XGBRegressor(objective='binary:logistic', 
                       scale_pos_weight= 5,
                       max_depth=3,
                       n_estimators=100)

在python中,sklearn api。

假設您正在使用xgboost包,則可以使用watchlist參數。 它是xgb.DMatrix的列表,每個標簽都標記有一個名稱。 您可以使用eval.metric參數,也可以使用多個評估指標。

watchlist <- list(train=dtrain, test=dtest)

bst <- xgb.train(data=dtrain, max.depth=2, eta=1, nthread = 2,
eval.metric = "error", eval.metric = "logloss", nround=2,
watchlist=watchlist, objective = "binary:logistic")

如果xgboost github頁面中的大量指標無法滿足您的需求,那么正如他們所說,您可以生成自己的指標,例如,假陽性和假陰性的加權總和,其中假陽性的權重是假陰性的五倍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM