[学习笔记]机器学习实战(五)

27人阅读 评论(0) 收藏 举报
分类:

第5章 Logisitic回归

本章将接触到最优化算法,并利用它们训练出一个非线性函数用于分类
几个概念:
- 回归:假设现在有一些数据点,我们用一条直线对这些点进行拟合(该线成为最佳拟合直线),这个拟合过程就称作回归。
- 利用Logisitic回归进行分类的主要思想:根据现有数据对分类边界线建立回归公式,以此进行分类。
回归一词源于最佳拟合,表示要找到最佳拟合参数集。而训练分类器时的做法就是寻找最佳拟合参数,使用的是最优化算法。
Logistic回归的一般过程


5.1 基于Logistic回归和Sigmoid函数的分类

这里写图片描述
我们想要能够接受所有的输入然后预测出类别的函数,在两个类的情况下就是输出0或1。具有这种性质的函数称为海维赛德阶跃函数,或单位阶跃函数,不过该函数有时很难处理在从0瞬间跳跃到1的过程,所以我们引入了另一个具有类似性质的,即输出0或者1的函数——Sigmoid函数

σ(z)=11+ez

这里写图片描述
可以看出,当横坐标的刻度足够大时,Sigmoid函数就可以近似为一个阶跃函数。
实现Logistic回归分类器:
1. 在每个特征上乘以一个回归系数
2. 把所有结果值相加
3. 总和代入Sigmoid函数,得到一个范围在0~1之间的数值
4. 大于0.5的数据被分入1类,小于0.5被分入0类。
从上述实现过程我们也能看出Logistic回归也可以看成是一种概率估计。确定最佳回归系数也就成为了主要问题。


5.2 基于最优化方法的最佳回归系数确定

记Sigmoid函数的输入为z,

z=w0x0+w1x1+w2x2++wnxn=wTx
其中,向量 x 是分类器的输入数据,向量 w 是待求的最佳回归系数,n代表n维,即特征个数。假设n=2,则只有两个特征,在图像上表现为二维图像,有x和y两个方向,那么x方向的系数为 w0 ,y方向的系数为 w1 ,这样一个向量就是梯度。

要搞清:
向量=方向+标量
梯度=向量
梯度=梯度方向+梯度标量

5.2.1 梯度上升法(Gradient ascent)

梯度上升法是一个最优化算法,可用于求解一个数据集的最佳参数。该算法基于的思想是:要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。
梯度的计算公式:

f(x,y)=(f(x,y)x,f(x,y)y)
这个梯度意味着沿 x 的方向移动 f(x,y)x ,沿 y 的方向移动 f(x,y)y。其中,f(x) 在待求点必须有定义且可微。一张较为直观的图:
这里写图片描述
另外,梯度上升算法在到达每个点之后都会重新计算移动的方向,循环迭代直至满足停止条件,梯度算子保证我们总是能选取到最佳的移动方向,它总是执行函数值增长最快的方向。
要注意,上面所提的梯度只是确定了每一步移动的方向,记步长为 α ,则迭代公式为
w:=w+αwf(w)
同样的,梯度下降算法就是改变式子中加减号,即
w:=wαwf(w)
梯度上升算法用来求函数的最大值,而梯度下降算法用来求函数的最小值。
步长和初始点的选取会影响到最终结果的拟合程度,导致结果落在局部最优解而不是全局最优解上。对于步长,最好的方法就是随着迭代次数更改移动步长。
这里写图片描述


5.3 本章小结

这里写图片描述

查看评论

《机器学习实战》学习笔记3

2.3示例:手写识别系统 2.3.1准备数据:将图像转换为测试向量 def img2vector(filename): returnVect = np.zeros((1,1024)...
  • Leo_Huang720
  • Leo_Huang720
  • 2017-08-23 11:55:06
  • 217

Python3《机器学习实战》学习笔记(四):朴素贝叶斯基础篇之言论过滤器

朴素贝叶斯算法是有监督的学习算法,解决的是分类问题,如客户是否流失、是否值得投资、信用等级评定等多分类问题。该算法的优点在于简单易懂、学习效率高、在某些领域的分类问题中能够与决策树、神经网络相媲美。但...
  • c406495762
  • c406495762
  • 2017-08-17 20:57:59
  • 7642

《机器学习实战》学习笔记:支持向量机

支持向量机,就是通过最大化支持向量到分类超平面之间的分类间隔。分类超平面就是我们想要得到的决策曲面;支持向量就是离分类超平面最近的点,而间隔即为支持向量到分类超平面的距离。...
  • liyuefeilong
  • liyuefeilong
  • 2015-10-01 23:59:09
  • 3341

Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)

本文将从k-邻近算法的思想开始讲起,使用python3一步一步编写代码进行实战训练。并且,我也提供了相应的数据集,对代码进行了详细的注释。除此之外,本文也对sklearn实现k-邻近算法的方法进行了讲...
  • c406495762
  • c406495762
  • 2017-07-15 16:04:39
  • 27383

《GPU高性能编程CUDA实战》学习笔记(五)

第五章 线程协作 5.1 目标 了解CUDA C 中的线程了解不同线程之间的通信机制了解并行执行线程的同步机制 5.2 并行线程块的分解 add>>(dev_a, dev_b, dev_c); ...
  • w09103419
  • w09103419
  • 2016-09-09 17:00:42
  • 704

《机器学习实战》完整读书笔记

之前就知道有《机器学习实战》这本书,还有机器学习实战源码,对于想对机器学习理论和实践层面有更深入的了解和学习的话就可以看一下这本书,代码是python写好的,可以拿来跑一下,也可以加进去自己的理解,因...
  • Together_CZ
  • Together_CZ
  • 2017-07-22 08:09:35
  • 2310

机器学习实战之SVM

1 算法概述 典型传统的SVM跟Logistic一样也是一个二分类问题,就是训练一个决策面,使数据最大程度的分布在决策面两侧。如下图所示: 中间的那条线就是一个决策面。使得图中O数据集与...
  • jiafeier_555
  • jiafeier_555
  • 2017-04-10 10:22:25
  • 385

机器学习实战--fp-growth

接着前面所学的apriori频繁集挖掘,这里介绍一种更高效的发现频繁集的算法fp-growth(frequence pattern),对大数据量时尤其有效(近百万条数据中查找,一般电脑只需2s左右)但...
  • sunnyxiaohu
  • sunnyxiaohu
  • 2016-03-28 21:18:06
  • 601

《机器学习实战》学习笔记---朴素贝叶斯(Bayes)算法

作为一名机器学习小白,将自己的学习经历写下来,一方面为了总结和回顾,另一方面希望能得到各路大神的批评指正,若能给他人带来便利就更好不过了。 算法优缺点: (1)优点:在数据较少的情况下,依然有效,可...
  • weixin_38215395
  • weixin_38215395
  • 2017-04-09 20:53:20
  • 621

《机器学习实战》读书笔记

这个博主的阅读习惯真的挺好,吸取学习。 转载自:http://www.pythoner.com/238.html 1.书籍信息 书名:Machine Learning in Action...
  • memray
  • memray
  • 2013-12-29 02:05:56
  • 7255
    个人资料
    等级:
    访问量: 228
    积分: 61
    排名: 162万+
    文章存档