首页 文章

机器学习任务中的加权类

提问于
浏览
1

我正在尝试使用插入符号进行机器学习任务(二进制分类),并且想知道是否有一种方法可以合并有关“不确定”类的信息,或者以不同方式对类进行加权 .

作为一个例子,我使用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个不同的人,他们使用稍微不同的方法来指定“类”,我想更加重视A的分类方法而不是B,但是比C等更重要 .

实际数据是这样的,其中存在类不 balancer ,包括真/假,M / R或任何类,以及这些来源 . 从我发现的小插图和例子中,至少前者我会在调整过程中使用像ROC这样的度量标准,但至于如何合并后者,我不确定 .

  • 按源分隔原始数据并循环使用一个因子级别,使用当前级别构建模型,其余数据用于测试

  • 而不是分类,把它变成混合分类/回归问题,在那里我使用源的等级作为我想要建模的 . 如果A被认为是最好的,则“A阳性”将得到6分,“A为负”,得分为-6,依此类推 . 然后对这些值执行回归拟合,忽略Class列 .

有什么想法吗?我对类和权重进行的每次搜索似乎都引用了类不 balancer 问题,但假设分类本身是完美的(或者是建模的标准) . 尝试合并这些信息甚至是不合适的,我应该只包括所有内容并忽略来源?第一个计划的一个潜在问题是,较小的源占大约几百个实例,而较大的源则超过10,000个,所以我可能也担心 Build 在较小的集合上的模型不会像一个一样 . 基于更多数据 . 任何想法将不胜感激 .

1 回答

  • 1

    加权"because of importance"和加权"because imbalance"之间没有区别 . 这些是完全相同的设置,它们都引用"how strongly should I penalize model for missclassifing sample from a particular class" . 因此,您不需要任何回归(并且不应该这样做!这是完全明确的分类问题,而您只是过度思考它),而只是提供样本权重,这就是全部 . 在插入符号中有许多模型接受这种设置,包括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(如果是 class 加权)

相关问题