我有大量恶意可执行文件,我想使用一类分类器将它们与其他可执行文件区分开来。我不能使用普通的svm分类器,因为我有一个巨大的不平衡数据(更恶意的ex),因此,是否可以使用一个类SVM,如新奇检测here? 我知道它通常通过确定正常行为而起作用,但出于其他原因我想要反过来..你有什么建议吗?
我现在正在使用Scikit学习Svm分类器的实现......我的数据包括6000个恶意和1000个非恶意
答案 0 :(得分:1)
1级SVM只是在寻找两个类之间的边界。从理论上讲,哪个是异常值并不重要;你的反演在逻辑上是合理的。
实际上,如果我使用高级内核(例如Gaussian),我在使用定义较好的类作为内部函数时,偶尔会发现更好的结果。这一点指导似乎有助于所选算法更可靠地汇聚到更好的解决方案上。事实并非如此;也许我的感觉仅仅是观察偏见。
是的,不断发展的分类是一个众所周知的问题,有各种各样的对策。该问题称为drift。您需要对自己的概念进行自我教育并研究解决您的应用的方法。
完成此操作后,如果您仍有未解决的问题,则应在此组中发布单独的问题。这是一个不同的主题,您的范例目前对于StackOverflow问题来说过于宽泛。
鉴于您正在尝试将恶意样本识别为明确定义的类,您可以使用所需的方法获得更好的结果。但请注意,良性代码也是明确定义的:缺少任何触发短语。对我来说,这似乎是一个更好的定义:你的恶意代码类实际上是不相交或松散连接类的联合,每个类都有一个特定的触发短语。
我会根据哪个可视化对于做这项工作的人最方便做出决定:你。因为你似乎喜欢"任何热的"一边是区别因素,我建议你顺其自然。如果您有任何疑问,请尝试以各种方式训练您的模型,并查看您使用的实施是否存在差异。
答案 1 :(得分:0)
是的,您可以使用它,但是:
这意味着要工作,您应该有一个相当“纯”的数据集, 最好只使用“好”数据。
还请记住,任何无监督方法都将不及有监督方法(更多的知识==对于可能的异常值而言,熵降低了)