赞
踩
机器学习初学者,原本是写来自己看的,写的比较随意。难免有错误,还请大家批评指正!对其中不清楚的地方可以留言,我会及时更正修改
异常检测是机器学习算法的常见应用,它主要用于非监督学习问题,但从某些角度看,又十分类似一些监督学习问题。
假设我们有m个样本
异常检测可以应用在欺诈检测,飞机引擎参数检测,数据中心的计算机监控等。
又常称作正太分布Normal Distribution,其分布函数可以描述为
给定训练集
评估我们的学习算法,首先要获得一些标记好的数据,将其分成异常样本(
由于我们的样本是偏斜的(如单独预测y=0就可以得到很高的准确率),因此,这里常使用精确率、召回率、
注:我们使用交叉验证集来选择阈值
使用异常检测
- 样本中有很少的正样本即异常样本(0-20),和大量的负样本。
- 异常类型比较多样,对于任何机器学习算法,都很难从正样本中学习得到出现异常的规律,亦即很难预测异常的产生。未来的样本参数规律可能跟训练样本的任何一个都不相似。
使用监督学习
- 有大量的正负样本,训练集可以被均匀的分成两类
- 有足够的正样本可以帮助我们对正样本的产生和规律有一定了解。未来的样本可能跟训练样本的某一个非常相似。
特征的选择对异常检测算法的影响很大,由于我们的算法使用的是高斯分布模型,因此我们希望选取的特征也能够满足高斯分布。可以通过绘制特征的直方图来判断特征的分布情况,对于不满足高斯分布的特征,可以进行
通常,我们希望
在选择特征的过程中,通常选择那些值不太大,也不太小的特征。
与之前分别建模
推荐是机器学习的一个很流行的应用,我们考虑用户给电影进行评分的案例,每个用户都会对一部分电影进行评分,我们根据已评的分数来推测该用户对其他电影的评分,进而给用户进行电影推荐。
先定义以下参数:
我们引入两个特征
学习
得到所有用户的参数,参考下式:
我们可以使用之前学过的梯度下降算法优化上式。
很多时候,我们很难对一部电影给出一个爱情程度或动作程度的参数。为解决这个问题,我们可以让用户告诉我们他们喜欢那些种类的电影,直接提供参数向量。从给定的参数中推测特征,我们对所有用户使用正则化的平方误差函数:
也可以随机猜测用户的特征参数,对该参数进行迭代优化,最终收敛到一组很好的特征。
根据前两节的内容,我们知道,如果给定电影特征,我们可以使用这个资料去获得用户参数;相反,如果给定用户参数数据,我们也可以使用这些资料获得电影特征。将这些概念合并,就形成了我们的协同过滤算法。其模型如下:
通过比较可以明显看出,这个模型只是上两节模型的组合。这个模型可以自己学习。在该模型中,偏差单元
算法执行步骤如下:
1 将
2 使用梯度下降(或其他优化算法)最小化代价函数
3 对参数为
给定矩阵
预测产品
我们考虑一个用户没有给任何电影评分的例子,回头看我们的协同过滤算法,为了使正则项最小化,它会使这个用户的参数
首先,我们使用矩阵
其实就是对每行的评分进行了均值,如下例:
上述预处理过称完毕后,我们新的预测函数变成:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。