机器学习笔记(1)-线性回归,梯度下降,logistic回归
今天开始学习 机器学习,将我每次学到的内容做一个笔记,方便以后复习。
一、线性回归
(一)
什么是线性回归呢,我的理解是已经知道一些数据,根据已知的数据拟合出一条直线(二维空间中)或一个平面(三维空间中)以此类推。用拟合出来的“直线”来预测未知的数据。举一个例子,比如有某家银行给不同人贷款的额度的数据,假设是根据这个人的工资以及年龄判断贷多少钱给这个人。根据这些数据拟合出一个公式,后面只要输入一个人的工资和年龄就可以预测出银行会贷给他多少钱。其中工资和年龄称为特征,贷款额度称为标签。
从这个表可以看到工资和额度两个特征从数值上差距比较大,那么到底每个特征对标签的影像有多大呢,这就需要通过算法来确定每一个特征所占的权重。(参数)
我们假设是年龄的参数,是工资的参数。这样拟合的平面为
其中是偏置项。偏置项的变动体现出来的是拟合平面的上下整体浮动,可以看作是对其他各个解释变量留下的偏差的线性修正。(这里留下一个问题,在什么情况下线性回归可以不考虑偏置项?望知道的大牛告诉我)
将上面的式子整合一下,令为1,则上式变为
(二)误差
误差就是真实值与预测值之间存在的差距,用表示。对于每个样本,误差是独立并且具有相同分布,并且服从标准正态分布的。
为什么呢?概率论与数理统计里的中心极限定理有解释。
吴恩达斯坦福大学的公开课中关于这个有两个回答:
1.方便数学处理
2.他不知道,比如中心极限定理带来的效应,但是对于绝大多数实际的问题,通常服从高斯分布。
用最大似然法求出使得已知数据符合这个分布的概率最大的,简单来说就是似然函数就是求所有样本值都预测正确的概率。要求出一个,使这个概率最大。
展开化简后
要使这个最大,就要使后面的那项最小。
因此目标就是使最小,使用最小二乘法。
为了方便计算,将上式写成矩阵形式
求偏导数
使偏导数等于0,求出
上面涉及到矩阵求导的知识,可以参考这篇博客 矩阵求导
(三)评估方法
拟合出“直线”后还要对其进行评估,
二、梯度下降
当我们得到一个目标函数后,很多时候不能直接求解(线性回归可以当成一个特例),常规套路就是我交给机器一堆数据,然后告诉它什么样的学习方式是对的,让它抄着这个方向去做。
目标函数:
寻找山谷的最低点,也就是我们的目标函数终点
(什么样的参数能使得目标函数达到极值点)
下山分几步走呢?(更新参数)
(1):找到当前最合适的方向(2):走那么一小步,走快了该” 跌倒 ” 了
(3):按照方向(梯度方向,也就是使目标函数下降最快的方向)与步伐(学习率)去更新我们的参数
下标j代表第i个样本的第j个特征
学习率会对结果产生巨大的影响,一般设置小一点
批处理数量:32,64,128都可以,很多时候还得考虑内存和效率
三、logistic回归
logistic回归不是一个回归算法,而是一个二分类算法。线性回归中拟合函数
求出来的是一个具体的值。logistic回归需要根据这个值的大小将其分成两个不同的类别。这就需要用到近似于单位越阶函数但是是连续的sigmod函数去拟合分类问题。
logistic回归预测函数:
其中代表y=1的概率,即
为什么代表y=1的概率呢?由
变换得,越大,y=1的几率越大;反之,越小,y=0的几率越大。
在线性回归中,为预测值的拟合函数,在逻辑回归中,=0为决策边界
==
整合后有
似然函数为
对数似然函数为
此时可用梯度上升法求对数似然函数的最大值,可引入
转换为梯度下降任务
求导过程为
参数更新
参考:http://blog.csdn.net/u010692239/article/details/52345754