2020/06/16 -
今天在阅读《海量数据挖掘》的过程中,看到了这个TF.IDF的内容。书中提到,一般来说,当我们看到例如“奔跑”,“某球”的单词(出现次数很多),就会觉得这篇文章属于一种球类的文章。。。
我感觉我没弄懂他到底想说什么。其实TF.IDF就是说,有些时候有些单词可能出现次数低,但他就是决定某个文章是某类的因素。
这让我想到了这个问题:那恶意软件中怎么来推广。好像推广不过来(从指令特征的角度上来解释),即使你是某个序列,你也不能认定这个东西就是恶意的,他没有语义,他只是执行一些命令,可能这些命令是破坏性的,除非是那种恶意破坏主机的, 但是对于僵尸网络来说,你怎么弄?你弄不了。
所以就是说,单纯的从这个角度,从单词的某些频率或者说序列来进行判定是行不通的。(但是,我觉得也值得一试)
那么可行的方法就是利用相似度,就是利用新的样本与之前样本的相似度,如果这个相似度比较高,那么就证明这个东西是恶意的。这也是之前的那种病毒检测引擎常用的方法。但是这种情况有一个问题,某个新的样本必然是无法被检测出来的。
我感觉这都不是泛化能力,因为你已经圈定了你的样本空间了,你就是从这个角度来出发的。
但是,这里也有问题,普通的机器学习的算法,怎么从相似度的角度来理解,明明这个东西就是要划分边界?这个是我没有理解的。
那么再来说一说,从我个人的角度出发,因为从语义的角度,你并不能知道这个东西就是恶意的, 除非你去定义,也就是基于专家的特征工程,比如定义某种操作,定义某个字符串等。这些信息是可以的。这些信息是人类推导后,将这些特征带有了人类的专家知识,也就是引入了领域知识。这样能够发现出来,同时也就是具备了一定的繁华能力,只要符合这些特征就能算是恶意。
但是,如果是按照相似度的想法来比较;;好像也不对。。
我总感觉,我好像没有弄明白。。。就感觉这部分内容有点乱。。。乱的原因是我对机器学习没有完整理解。