Scikit learn 通过scikit构建学习一个组合分类器,该分类器首先检测一个类,然后在子类中对该类进行分类

Scikit learn 通过scikit构建学习一个组合分类器,该分类器首先检测一个类,然后在子类中对该类进行分类,scikit-learn,multiclass-classification,Scikit Learn,Multiclass Classification,我是Sci kit learn的新用户,我正在研究一个分类问题,其中我有两个主要类,类_1:良性程序和类_2:恶意软件(恶意程序)。第二类(恶意软件)由不同的子类组成:蠕虫、病毒、特洛伊木马等 在我的数据集中,我有一些良性程序、蠕虫、病毒等的样本 因此,由于我对两大类(良性与恶意软件)的分类非常准确,我不想一开始就将我的问题直接转化为多类问题(良性与特洛伊木马、病毒与蠕虫……)。我想要的是,通过sci工具包构建一个组合分类器,第一次将我的数据集分类为主类(恶意软件,良性),然后如果样本被分类为恶

我是Sci kit learn的新用户,我正在研究一个分类问题,其中我有两个主要类,类_1:良性程序和类_2:恶意软件(恶意程序)。第二类(恶意软件)由不同的子类组成:蠕虫、病毒、特洛伊木马等

在我的数据集中,我有一些良性程序、蠕虫、病毒等的样本

因此,由于我对两大类(良性与恶意软件)的分类非常准确,我不想一开始就将我的问题直接转化为多类问题(良性与特洛伊木马、病毒与蠕虫……)。我想要的是,通过sci工具包构建一个组合分类器,第一次将我的数据集分类为主类(恶意软件,良性),然后如果样本被分类为恶意软件,则继续处理多类问题(蠕虫病毒VS特洛伊木马,…)

我不知道如何通过sci kit learn的功能直接做到这一点。 我听说了多标签和多输出分类,我不知道我的问题是否可以在scikit learn中解释和实现为多输出问题:我的意思是,两个主要类(恶意软件,begnin),具有多输出(多个子类:蠕虫、特洛伊木马等)对于恶意软件类


提前感谢您的宝贵帮助

您所做的是多类别分类,您可以通过指定自己的损失函数来实现,例如:

loss(良性,特洛伊)=loss(良性,病毒)=10

loss(特洛伊木马、病毒)=loss(特洛伊木马、蠕虫)=1


这将使您的分类器“了解”将蠕虫误分类为病毒与将恶意软件误分类为良性程序相比并不重要。

首先,非常感谢您的回答!我只有两个问题:1-请你给我一个代码示例或一个指向scikit中代码的网站链接,让我学习如何做?2-我还听说了多标签和多输出分类,你不认为我的问题可以在scikit learn中解释和实现为多输出问题:我的意思是,两个主要类(恶意软件,begnin),恶意软件类有多个输出(多个子类:蠕虫,特洛伊木马等)?1)抱歉,我没有示例。2) 您可以通过多种方式解决问题,多标签可能是一种解决方案。更准确地说,您尝试的是“结构化学习”,尤其是“分层多类分类”。也许可以帮助你,但我并不真正了解这个模块。或者可能你好,再次抱歉打扰你,请,我很难区分多输出分类和多标签分类,请,这将是我的最后一个问题,简单地解释一下两者之间的区别,您能告诉我我的问题是否更接近于多标签ou多输出分类吗?您好,我真的不知道,但您可以在这里找到更多信息: