基于逻辑回归案例的病毒分析思考

admin 2022年5月8日14:23:53程序逆向评论5 views1175字阅读3分55秒阅读模式
基于逻辑回归案例的病毒分析思考

点击蓝字 · 关注我们

前言

基于逻辑回归案例的病毒分析思考

之前发现线性回归不是很适合基于API识别病毒,就来学了一下逻辑回归这个方法,发现这也是个很通用的方法。下面的一些数学推导过程是用电脑编辑的,之前都是纸上打草稿,第一次用电脑编辑数学推导,可能有些不足,请多包含。有不对的地方,还请帮忙指出,谢谢大哥们。

参考书籍:

<<零基础学机器学习>>

我的基于API识别病毒的想法比较简单,就是把在病毒分析过程中遇到的几个比较敏感API列出来,作为向量,有为1,无则0。但是光有敏感API,不可能通过程序提取就自动判断它是病毒,因为有些敏感API,普通程序也会用到,所以想试着能不能通过机器学习的方法来解决这个简单的想法。

下面用书上的几个例子,来说明逻辑回归这个方法,当看到后面就会发现,这完全可以直接搬到我这个小想法上,只要把实验数据替换成由病毒提取的数据,然后调整学习速率和迭代次数。

正文

基于逻辑回归案例的病毒分析思考

logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。然后通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到底哪些因素是胃癌的危险因素。同时根据该权值可以根据危险因素预测一个人患癌症的可能性。

以上这段话来源于百度百科。

逻辑回归中的假设函数换成了Sigmoid,先通过之前的线性回归求出一个中间值。z=w0x1+w1x1+…+wnxn+b=WTX。然后带入到g= 1 / 1+e^-z

然后判断的结果以0.5为标准,所以选取样本的时候最好是和不是的结果比例,也在这左右。

逻辑回归的损失函数不能再用MSE了,因为经过Sigmoid函数转换后,已经不再是一个凸函数了。

而是两个函数

当y=1时,Loss(h(x),y) = -log(h(x))

当y=0时,Loss(h(x),y) = -log(1-h(x))

当y=1时,如果结果趋于0,结果会非常大,0的时候,则相反。所以满足损失函数的目的,当结果违背现实的时候,则给予一个比较大的数值。

结合起来就是:

基于逻辑回归案例的病毒分析思考

Sigmoid和损失函数的实现代码:

基于逻辑回归案例的病毒分析思考

基于逻辑回归案例的病毒分析思考


这里梯度变化的公式和线性变化比较相像。针对权重的求导过程如下:

根据链式法则,下面的过程都是针对某项的求导,因为这些都是我手动编写的,不太熟练使用电脑的公式编辑,有些不足。

基于逻辑回归案例的病毒分析思考

基于逻辑回归案例的病毒分析思考

基于逻辑回归案例的病毒分析思考


实现的代码:

基于逻辑回归案例的病毒分析思考

对于多元分类,sigmoid替换成了softmax。

基于逻辑回归案例的病毒分析思考


损失函数和梯度的求导过程:

基于逻辑回归案例的病毒分析思考

基于逻辑回归案例的病毒分析思考

基于逻辑回归案例的病毒分析思考



原文始发于微信公众号(Th0r安全):基于逻辑回归案例的病毒分析思考

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月8日14:23:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  基于逻辑回归案例的病毒分析思考 http://cn-sec.com/archives/979534.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: