机器学习-线性回归

来源:互联网 发布:淘宝二手ipad 哪家靠谱 编辑:程序博客网 时间:2024/05/22 04:43
一个栗子
数据:工资和年龄(2个特征)
目标:预测银行会贷款给我多少钱(标签)
线性回归
考虑:工资和年龄都会影响最终银行贷款的
结果那么它们各自有多大的影响呢?(参数)
工资              年龄              额度
4000        25          20000
8000        30          70000
5000        28          35000
7500        33          50000
12000       40          85000
 
通俗解释
X1,X2就是我们的两个特征(年龄,工资)
Y是银行最终会借给我们多少钱
线性回归
找到最合适的一条线(想象一个高维)来
最好的拟合我们的数据点
 
数学来了
假设     是年龄的参数,    是工资的参数
线性回归
拟合的平面:
(     是偏置项)
整合:
 
误差
真实值和预测值之间肯定是要存在差异的
(用    来表示该误差)
线性回归
对于每个样本:
 
误差
误差      是独立并且具有相同的分布,
并且服从均值为0方差为     的高斯分布
线性回归
独立:张三和李四一起来贷款,他俩没关系
同分布:他俩都来得是我们假定的这家银行
高斯分布:银行可能会多给,也可能会少给,但是绝大多数情况下
这个浮动不会太大,极小情况下浮动会比较大,符合正常情况
 
误差
预测值与误差:                                                                               (1)
线性回归
由于误差服从高斯分布:                                                                  (2)
将(1)式带入(2)式:
 
误差
似然函数:
解释:什么样的参数跟我们的数据组合后恰好是真实值
线性回归
对数似然:
解释:乘法难解,加法就容易了,对数里面乘法可以转换成加法
 
误差
展开化简:
线性回归
目标:让似然函数(对数变换后也一样)越大越好
(最小二乘法)
 
误差
目标函数:
线性回归
求偏导:
偏导等于0:
 
评估方法
最常用的评估项   :
线性回归
的取值越接近于1我们认为模型拟合的越好
(残差平方和)
(类似方差项)
 
梯度下降
引入:当我们得到了一个目标函数后,如何进行求解?
直接求解?(并不一定可解,线性回归可以当做是一个特例)
线性回归
常规套路:机器学习的套路就是我交给机器一堆数据,然后告诉它
什么样的学习方式是对的(目标函数),然后让它朝着这个方向去做
如何优化:一口吃不成个胖子,我们要静悄悄的一步步的完成迭代
(每次优化一点点,累积起来就是个大成绩了)
 
梯度下降
目标函数:
线性回归
寻找山谷的最低点,也就是我们的目标函数终点
(什么样的参数能使得目标函数达到极值点)
下山分几步走呢?(更新参数)
(1):找到当前最合适的方向
(2):走那么一小步,走快了该”跌倒  ”了
(3):按照方向与步伐去更新我们的参数
 
梯度下降,目标函数:
批量梯度下降:
(容易得到最优解,但是由于每次考虑所有样本,速度很慢)
线性回归
随机梯度下降:
(每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向)
小批量梯度下降法:
(每次更新选择一小部分数据来算,实用!)
 
梯度下降
学习率(步长):对结果会产生巨大的影响,一般小一些
线性回归
如何选择:从小的时候,不行再小
批处理数量:32,64,128都可以,很多
时候还得考虑内存和效率
 
Logistic regression
目的:分类还是回归?经典的二分类算法!
逻辑回归
机器学习算法选择:先逻辑回归再用复杂的,能简单还是用简单的
逻辑回归的决策边界:可以是非线性的
 
Sigmoid 函数
公式:
逻辑回归
自变量取值为任意实数,值域[0,1]
解释:将任意的输入映射到了[0,1]区间
我们在线性回归中可以得到一个预测值,再将该值映射到Sigmoid 函数
中这样就完成了由值到概率的转换,也就是分类任务
 
Sigmoid 函数
预测函数:
其中
逻辑回归
分类任务:                                          整合:
解释:对于二分类任务(0,1),整合后y取0只保留
y取1只保留
 
Logistic regression
似然函数:
逻辑回归
对数似然:
此时应用梯度上升求最大值,引入                       转换为梯度下降任务
 
求导过程:
逻辑回归
 
Logistic regression
参数更新:
逻辑回归
多分类的softmax:
总结:逻辑回归真的真的很好很好用!