机器学习(Coursera吴恩达)(八 其他)
机器学习(Coursera吴恩达)(八 其他)
标签(空格分隔): 机器学习
异常检测(anomaly detection)
异常检测问题:假设有一个新飞机,引擎有特征变量,异常检测就是我们希望制导这个新的飞机引擎是否有某种异常。
给定数据集,假设数据集是正常的,我们希望制导新的数据是不是异常的,即测试数据不属于该组数据的几率。
这种方式称为密度估计,表达式如下:
欺诈检测:
模型是其属于一组数据的可能性,通过检测非正常用户。
异常检测主要是用来识别欺骗。
算法
对于给定的数据集,我们要针对每一个特征计算和的估计值。
一旦我们获得了均值和方差的估计值,给定新的一个训练实例,根据模型计算.
当为异常。
数据集选择
还是要用F1选择阈值。判断查准率和查重率。
与监督学习对比
选择特征
对于异常检测算法,我们使用的特征是至关重要的.
异常检测假设特征服从高斯分布,例如使用对数函数:,其中为非负数,或者, c为0-1之间的一个分数。
目的是让数据特征更接近高斯分布。
推荐系统
引入标记:
* 代表用户数
* 代表电影书
* 如果用户j给电影i评分,则为1
* 用户j给电影i的评分
* 用户j评分过电影的综述
基于内容
- 表示用户j的参数。()
- 电影i的特征
- 用户j和电影i,我们预测的评分为
- 代价函数针对用户j:
为了学习所有用户,要对所有用户的代价函数求和:
然后对这个总的代价函数使用梯度下降法求最优解。
协同过滤
现在,我们如果没有对每一个电影都有评价,也就是没有电影的特征。因为我们很难对每一个电影都设计合适的特征,所以在我们拥有用户评价的情况下,需要对每个电影学习特征。
*协同过滤:是电影特征与用户参数协同学习。前提是我们不知道用户的参数也不知道电影的特征。我们拥有的只有用户对电影的评分。
修改优化目标:
对代价函数求偏导数:(对和同时最小化)
算法步骤:
1. 初始
2. 使用梯度下降法最小化代价函数
3. 在训练完之后,我们预测为用户j对电影i的预测评分。
大规模学习算法
- 用学习曲线确定是否我们需要打大训练集。
随机梯度下降法
直接用梯度下降,对大规模系统来说每一次迭代都需要对所有数据进行误差进行累加,那么一次的计算量就会特别大。所以要找更快捷的方法,适用于大规模学习。小批量梯度下降(Mini-batch)
随机梯度下降收敛