簡體   English   中英

機器學習任務中的加權課程

[英]Weighting class in machine learning task

我正在嘗試使用插入符號進行機器學習任務(二進制分類),並且想知道是否存在一種方法來合並有關“不確定”類的信息,或者以不同的方式加權類。

作為說明,我從插入符號主頁上剪切了一些代碼,並與Sonar數據集一起粘貼(占位符代碼-可以是任何東西):

library(mlbench)
testdat <- get(data(Sonar))
set.seed(946)
testdat$Source<-as.factor(sample(c(LETTERS[1:6],LETTERS[1:3]),nrow(testdat),replace = T))

收益:

summary(testdat$Source)  
 A  B  C  D  E  F   
49 51 44 17 28 19   

一旦確定了模型,我將繼續進行典型的訓練,調試和測試程序。

我在此處添加的是來源的另一因素列,或相應的“類”來自何處。 舉一個任意例子,假設這是6個不同的人,他們使用略有不同的方法來指定“類別”,我想比B更加重視A的分類方法,但比C少。

實際數據是這樣的,在真/假,M / R或任何類別之間以及這些來源之間都存在類別失衡。 從我發現的小插曲和示例中,至少我可以通過在調整期間使用ROC這樣的指標來解決前者,但是對於如何合並后者,我不確定。

  • 按來源分離原始數據,然后一次循環遍歷因子水平,使用當前水平構建模型,其余數據對其進行測試

  • 而不是分類,而是將其轉變為混合分類/回歸問題,在該問題中,我將源的排名用作要建模的對象。 如果A被認為是最好的,則“ A”為正,得分為+6,“ A”為負,得分為-6,依此類推。 然后對這些值執行回歸擬合,而忽略“類”列。

有什么想法嗎? 我對班級和權重進行的每一次搜索似乎都參考了班級失衡問題,但是假設分類本身是完美的(或建模的標准)。 試圖合並這些信息甚至不合適,而我應該只包含所有內容而忽略來源嗎? 第一個計划的潛在問題是,較小的源大約占了數百個實例,而較大的源則超過了10,000個實例,因此我可能還擔心基於較小集合構建的模型不會像一個模型那樣泛化基於更多數據。 任何想法將不勝感激。

加權“因為重要性”和加權“因為不平衡”之間沒有區別。 這些設置是完全相同的,它們都指的是“我應該為從特定類中錯誤分類樣本而對模型進行多嚴厲的懲罰”。 因此,您不需要任何回歸(也不應該這樣做!這是一個非常明確的分類問題,您只是想得太多了),而只需提供樣本權重即可。 插入符號中有許多模型接受這種設置,包括glmnet,glm,cforest等。如果要使用svm,則應將軟件包(因為ksvm不支持此類內容)更改為例如https://cran.r- project.org/web/packages/gmum.r/gmum.r.pdf (用於示例或類別加權)或https://cran.r-project.org/web/packages/e1071/e1071.pdf (如果是)班級加權)

暫無
暫無

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

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