分享

机器学习一Logistic回归公式推导及代码实现

前言:
算法和python对我来说都是新的知识,所以笔记也从新手的角度去写,比较适合入门学习。欢迎大牛给出错误指导。由于公式推导什么的打字不不好展示就把笔记贴出来了。

1. 线性回归2. θ 的求解分析
3. 梯度下降算法求 θ
4. Logistic 回归
5. Logistic 回归损失函数
6. 机器学习训练,验证,测试

1.线性回归

微信图片_20170829180311.jpg    微信图片_20170829185830.jpg    
上述提到了最大似然函数,最小二乘法
最小二乘法?因为是平方和,古人称平方为二乘,求平方和的最小值所以叫最小二乘。
最大似然函数?(似然:像……的样子)样本像x1,x2,x3...xn的样子发生时,求θ 的取值θ1,θ2,θ3....θn的函数就叫最大似然函数;
     理论依据(可证明)当似然函数取最大值时,参数θ使样本发生的概率最大就是所求的参数。


2. θ 的求解分析
微信图片_201708291803112.jpg    微信图片_201708291803114.jpg
3. 梯度下降算法求 θ
微信图片_20170829190523.jpg    微信图片_201708291803115.jpg
随机梯度下降法和批量梯度下降方法相比优点:
可以在线做随机梯度下降;速度快;可以跳过某些局部极小值点。
一般采用两者结合mini-batch: 例如每1000个的梯度下降方向平均作为下降方向
学习率/步长的取法:例如:初始步长随便给0.001;每迭代1000次取上次步长的十分之一
4. Logistic 回归
和线性回归的模型不一样使用sigmoid函数:因为函数图像像倒着的S所以叫sigmoid.
微信图片_201708291803116.jpg     微信图片_201708291803117.jpg
5. Logistic 回归损失函数
微信图片_201708291803118.jpg
6. 机器学习训练,验证,测试数据集的作用

θ的解析公式=(样本的转置矩阵 * 样本矩阵)的逆   *  (样本的转置 * 标记值y)
为了防止过拟合需要加入 入扰动
θ的解析公式=(样本的转置矩阵 * 样本矩阵 + 入*单位矩阵)的逆   *  (样本的转置 * 标记值y)
入是超参数无法确定,假设入= 0.01求θ
训练数据可以求出θ,θ的好坏通过验证数据确定;验证数据求出的确定入的好坏;测试数据确定θ的是否真的 好既模型的好坏。
验证时为了充分利用样本,例如将样本的百分之八十作为训练数据,在将训练数据分成多份,选择其中一份做验证数据,例如十折交叉验证就是分成十份。


7. 代码实现
核心代码求θ
微信图片_20170829191947.png


获得代码git@github.com:pergrand/ML.git
后言:由于python对我来说不太熟悉,代码是我找了一些代码(经过修改后都能运行),通过代码的分析对算法的核心更加清楚同时对python也是个学习。




微信图片_201708291803113.jpg

本帖被以下淘专辑推荐:

已有(3)人评论

跳转到指定楼层
美丽天空 发表于 2017-8-30 09:10:38
很不错的笔记
回复

使用道具 举报

pergrand 发表于 2017-8-30 10:00:43

自己能看懂,不知道别人能看懂不
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条