通过scikit构建 - 学习一个首先检测一个类的组合分类器,然后在子类中对这个类进行分类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过scikit构建 - 学习一个首先检测一个类的组合分类器,然后在子类中对这个类进行分类相关的知识,希望对你有一定的参考价值。
我是Sci-kit学习的新用户,我正在研究分类问题,其中我有两个主电源类,Class_1:良性程序和Class_2:恶意软件(恶意程序)第二类(恶意软件)由不同的子类:蠕虫,病毒,特洛伊木马......等。
在我的数据集中,我有良性程序,蠕虫,病毒等样本
因此,由于我对两个主要类别(良性与恶意软件)进行分类具有相当不错的准确性,因此我不想直接将我的问题转换为多类问题(良性VS木马VS病毒VS蠕虫......) ..)。我想要的是,通过sci-kit构建一个组合分类器,在第一次将我的数据集分类为主类(恶意软件,良性),然后如果样本被归类为恶意软件,则继续向多个类问题(蠕虫VS病毒VS木马,...)。
我不知道如何通过sci-kit学习的功能直接做到这一点。我听说过多标签和多输出分类,我不知道我的问题是否可以在scikit中解释和实现学习多输出问题:我的意思是,两个主要类(恶意软件,begnin),多个 - 恶意软件类的输出(多个子类:蠕虫,木马,......)?
提前感谢您的宝贵帮助
您正在做的是多类分类,您可以通过指定您自己的损失函数来实现它,例如:
loss(benign, trojan) = loss(benign, virus) = ... = 10
loss(trojan, virus) = loss(trojan, worm) = ... = 1
这将使您的分类器“学习”将蠕虫错误分类为病毒并不像将恶意软件错误分类为良性程序那么重要。
以上是关于通过scikit构建 - 学习一个首先检测一个类的组合分类器,然后在子类中对这个类进行分类的主要内容,如果未能解决你的问题,请参考以下文章
深度盘点:初学者必备这 15 个 Scikit-Learn 重要技能