从一个机器学习案例思考病毒分析

admin 2022年5月5日14:25:24评论34 views字数 1329阅读4分25秒阅读模式
从一个机器学习案例思考病毒分析

点击蓝字 · 关注我们

前言

从一个机器学习案例思考病毒分析

之前有一个简单的想利用敏感API判断是否是病毒的想法。昨天看了一个通过线性回归进行利润估计的一个案例,一开始想着能不能直接套用这个案例的算法,但是自己思考了一下,然后问了一下我一个搞这方面的哥哥,发现是不行的,一个属于回归问题,一个是分类问题,如果想利用这个思路判断是否是病毒,还是得继续学习逻辑回归。这里就记录一下自己学习线性回归的一个小笔记。

参考书籍:

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

从一个机器学习案例思考病毒分析

相关知识

从一个机器学习案例思考病毒分析

学习线性回归,需要依赖一点高数和线代的知识。

在机器学习中,函数的变化趋势是通过求导和微分来实现。

连续性是函数的性质之一,它是可以对函数求导的前提条件。

导数是定义在连续函数的基础之上的。想要对函数求导,函数至少要有一段是连续的。

导数是针对一个变量而言的函数变化趋向。而对于多元(即多变量)的函数,它关于其中一个变量的导数为偏导数,此时保持其他变量恒定。如果其中所有变量都允许变化,则称为全导数。

张量是机器学习程序中的数字容器,本质上就是各种不同维度的数组。

仅包含一个数字的张量叫作标量(scalar),即0阶张量或0D张量

由一组数字组成的数组叫作向量(vector),也就是一阶张量,或称1D张量。一阶张量只有一个轴。

通过向量、矩阵等数据结构进行向量化运算是机器学习中的一个关键技术。

矩阵(matrix)是一组一组向量的集合。矩阵中的各元素横着、竖着、斜着都能构成不同的向量。而矩阵,也就是 2 阶张量,或称 2D 张量,其形状为(m,n)。

矩阵之间也可以进行点积。具体来说,是第一个矩阵的行向量,和第二个矩阵的列向量进行点积,然后把结果标量放进新矩阵,作为结果矩阵中的一个元素。

从一个机器学习案例思考病毒分析

正文

从一个机器学习案例思考病毒分析

例子中的利润额的影响因素有多个,先从单个元素切入。

在读入数据后,先从微信的广告投放效果入手

从一个机器学习案例思考病毒分析

从一个机器学习案例思考病毒分析


然后对数据进行归一化

进行归一化的原因:

特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征

从一个机器学习案例思考病毒分析


这里面用的是MSE函数作为损失函数的线性回归算法,均方误差(Mean Square Error,MSE)函数,也叫平方损失或L2损失函数。

从一个机器学习案例思考病毒分析


结合损失函数的梯度下降,对于线性回归来说,可以使猜测沿着正确的方向前进,因此总能找到比起上一次猜测时误差更小的w和b组合.

梯度下降法会沿着负梯度的方向走一步,以降低损失

学习速率乘以损失曲线求导之后的微分值,就是一次梯度变化的步长(step size)。它控制着当前梯度下降的节奏,或快或慢,w将在每一次迭代过程中被更新、优化。

从一个机器学习案例思考病毒分析


如果所选择的学习速率过小,机器就会花费很长的学习时间,需要迭代很多次才能到达损失函数的最底点.

相反,如果学习速率过大,导致L的变化过大,越过了损失曲线的最低点,则下一个点将永远在U形曲线的底部随意弹跳,损失可能越来越大。

当这些都做好之后,剩下的事情,就是调试学习速率和迭代次数了。

对于多元的线性回归,可以看成y=wx+b

变成了 y=w0x0+w1x1+...+wnxn

通过目标值与真实值计算损失。

从一个机器学习案例思考病毒分析


多元计算梯度部分

从一个机器学习案例思考病毒分析


这样子一个基于线性回归的框架就出来了,可以套用到适合这个框架的地方。


原文始发于微信公众号(Th0r安全):从一个机器学习案例思考病毒分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月5日14:25:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从一个机器学习案例思考病毒分析http://cn-sec.com/archives/974583.html

发表评论

匿名网友 填写信息