机器学习笔记
1.机器学习
1-1.监督学习
用函数来拟合数据,来推断房价
监督学习(我们给算法一个数据集,其中包含了正确答案):例如在预测房价中,给出的每个样本我们都给出了正确的价格
回归问题(预测连续的数值输出):将上图的问题视为回归问题
分类问题(预测离散值输出):根据年龄和肿瘤尺寸来推测肿瘤良性还是恶性
1-2.无监督学习
无监督学习(数据没有任何标签):如下图所示
**聚类算法(将数据分类,属于无监督学习中的一种):如下图所示 **
2.线性回归
2-1:模型描述
Tips
(1)m=表示训练样本的数据
(2)x=代表输入变量或者说特征
(3)y=代表输出变量也就是预测的目标变量
(4)(x,y)=表示一个训练样本
(5)(x ^(i) ,y ^(i))=表示第i个训练样本
(6)h=代表假设函数
2-2.代价函数
代价函数:平方误差函数
2-3.梯度下降
梯度下降:可以将代价函数J最小化的梯度下降法
Tips
(1):= 表示赋值
(2)α 被称为学习率的数字,用来控制梯度下降时 我们迈出多大的步子(梯度下降的速度)
梯度下降算法(BATCH)
用矩阵来计算,能有效减少代码量,计算效率高
3.多元线性回归
3-1.模型描述
(1)n=表示训练样本的数据
(2)x ^(i)=表示第i个训练样本的特征向量
3-2.多元梯度下降法
(1)特征缩放
将特征进行缩放处理,更好的进行收敛
均值归一化
(2)学习率α
3-3.特征和多项式回归
将特征值经行转换
将特征设为x的不同次数
3-4.正规方程
特征变成向量
通过正规方程代替梯度下降算法来求参数,不适合n很大的情况
4.分类
4-1.Logistic函数
**h(x):y=1的概率函数(x为参数,即肿瘤大小) **
4-2.决策边界
概率的大小取决于z的大小
通过logistic函数来寻找决策边界
4-3.代价函数(拟合Logistic函数)
过去的方法得到的图形类似波浪状,无法有效梯度下降到最低点,想要得到的是右图曲线
代价函数
4-4.简化代价函数与梯度下降
简化代价函数
形式与线性回归梯度下降算法公式一样,但h(x)定义已经改变了
4-5.多元分类:一对多
将多元分类问题,看做多个二元分类来解决
5.过度拟合
5-1.定义
导致模型过度依赖训练数据,无法正确处理未知问题
5-2.代价函数
加入惩罚项
控制参数尽可能地小
5-3.线性回归的正则化
正规方程
5-4.Logistic回归的正则化
6.神经网络
6-1.非线性假设
问题:如果有n个特征,那么构成的多项式会过多
6-2.神经网络模型
模拟神经网络
这里的theta(2)应为1*4的矩阵
向量化实现方法,向前传播
6-3.神经网络模型例子
类似数电中与或门
XNOR:(x1 AND x2) OR [(NOT x1)AND(NOT x2)]
6-4.神经网络多元分类
和一对多类似
6-5.代价函数
Tips
(1) L:表示这个神经网络的层数
(2) S_l:表示第l层神经元的数量(不包括第l层的偏差单元)
正则化部分:该网络的K个输出单元的预测值都最小,因此需要累加每个输出单元的结果,使其总和最小
6-6.反向传播算法
反向传播的目的就是算出梯度下降时候的方向
*a.b表示矩阵a中的元素与矩阵b中的元素按位置依次相乘,得到的结果将作为新矩阵中相同位置的元素。
理解方向传播:类似正向传播
6-6.梯度检测
通过计算的估计值,与反向传播得到的值做比较,如果相近则为正确
6-7:整合
神经网络模型结构:默认选择第一种单隐藏层,或者二、三这两种每个隐藏层所含数目一样
模型的训练
7. 机器学习诊断法
7-1.评估假设
将数据分为测试集和训练集
计算测试集误差
7-2.模型的选择
训练集选择模型,选择出适合的d。但是在测试模型的泛化能力时,还在使用相同的测试集,效果很差
为解决上述问题,讲数据集分为:验证集、训练集和测试集
在模型选择时,先用验证机选择出d,再用测试集选择出泛化误差最小的模型
7-3.诊断偏差与方差
7-4.正则化
选择λ
λ不同训练集和验证集的效果
7-5.学习曲线
高方差的情况
高偏差的情况
对于这两种情况不同的改善手段
8.设计复杂的学习系统
8-1.误差分析
先将算法进行简单的实现,然后通过测试找出算法的不足所在和难以处理的样本类型
手动找出难以分类的邮件,在总结特征进行分析
在尝试新方法后,利用交叉验证集进行测试,通过误差率来看效果如何
8-2.查准率和召回率
仅仅通过误差率来判断算法的好坏是不全面的还需要看:
查准率和召回率:越高越好,过低可能就“欺骗”了我们
查准率和召回率的权衡
F_1值来比较算法
9.支持向量机(SVM)
9-1.优化目标
将λ和m去点,在前半部分乘x构成SVM的总体优化目标
9-2.大间距分类器
设置C很大更有利于直观理解大间距分类器
margin:支持向量机的距离
但是C过大,SVM就会对错误样本过于敏感,竟会从黑线变成粉线
数学原理
向量内积
9-3.核函数1
相似度函数就是一个核函数(高斯核函数)
9-4.核函数2
9-5.使用SVM
选择是否使用内核,无内核函数(线性核函数)
缩放比例
逻辑回归和SVM的比较
10.无监督学习算法-分类
10-1.K-Means算法
确定两个聚类中心
根据距离两个聚类中心的距离来进行分配
根据红色点的均值和蓝色点的均值来移动聚类中心
重复上述步骤
10-2.优化目标
最小化失真代价函数
10-3.初始化K-Means算法
随机选取聚类中心初始化
10-4.选择聚类数量
肘部法则,并不常用,像右图这样的没有明显的肘部
根据后续目的选择K
10.无监督学习算法-降维
10-1.数据压缩
只用一个数来表示数据所在的位置
3D降2D
10-2.主成分分析法(PCA)
找出低维的最小化投影距离
PCA与线性回归的区别:最小化的距离不同
数据预处理
PCA找寻u^(1)…和Z1来实现降维
求解过程
Tips
Σ矩阵和求和符号并不同
svd:奇异值分解
10-3.压缩重现
10-4.主成分K数量选择
k满足下式值小于0.01
化简
10-5.应用PCA建议
先通过训练集得到x->z,再将z用到cv集和test集
PCA不适合解决过拟合
不要再设计算法的时候上来就用PCA
11.无监督学习算法-异常检测
11-1.问题动机
11-2.算法
密度估计问题
计算过程
划分数据集
11-3.异常检测VS监督学习
正样本缺失或者经常出现不同的负样本时用异常检测
11-4.设计和选择特征来实现算法
将数据直方图画出观察,可以将不像正态分布的数据进行转化
通过错误样本来找出特征值
11-5.多元高斯分布
多元高斯分布例子
11-6.多变量高斯分布的异常检测
估计μ和Σ
计算p(x)
原始模型和多元高斯分布的关系
12.推荐系统
12-1.基于内容的推荐算法
12-2.基于特征的推荐算法
根据特征来推算内容
12-3.协同过滤算法
12-4.向量化实现
低秩矩阵分解
12-5.均值归一化
13.大数据集
13-1.随机梯度下降法
13-2.Mini-Batch梯度下降
介于批量梯度下降与随机梯度下降之间的算法
13-3.随机梯度下降收敛
检查梯度下降是否在收敛
学习率α的设置,让α随时间越来越小
13-4.在线学习机制算法
13-5.MapReduce
将数据进行划分,交给不同的服务器进行处理
14.流水线
14-1.OCR
14-2.上限分析
类似于控制变量法