【机器学习基石笔记二】----Learning to answer Yes or No(解决二分类问题)
perceptron hypothesis set
以信用卡发放为例,对顾客的相关特征信息进行收集,
数据集示例如下:
对每一个特征赋予一个权重,计算所有特征的加权,然后和已定义的阈值threshold进行比较,查看两者之间的大小关系
简化:将门槛值threshold转换为()
二维平面中的感知器:每个h对应平面上的一条直线,每条线会有不同的预测,perceptrons<=>linear(binary) classifiers,所以对于同一个点,使用不同的直线会产生不同的预测结果。
Perceptron Learning Algorithm(PLA) 感知器学习算法
设置演算法在hypothesis H 中选择最好的 g,达到理想的,但是困难的是H中hypothesis的个数无限,所以使用一个普通的直线基于数据集的错误分类不断进行修正。
使用权重向量代表
,设置所有的w都为0,对于给定的直线
,找到使用此直线分类错误的点并使用公式
进行修正,
实际y=+1,但分类为-1,即w和x的角度太大,使用
实际y=-1,但分类为+1,即w和x之间的角度太小,
一直循环,直到没有错误的分类点(知错能改)
怎样判断还有没有错误?cyclic PLA,例如从1-100,依次查看是否有错,有则修正,没有则继续
算法一定会停下吗?
(在对分类错误的点进行修正的时候,可能会使分类正确的点变成分类错误的点)
algorithmic:halt(no mistake)
Linear Separability 线性可分可以找到一条直线将其分类
假设是线性可分的情况,算法是否能停下来?
假设为理想的直线,则
为最接近理想直线的线,则使用
存在对每一个点
使用相乘,对于任何一个
,
內积会越来越大,角度越来越靠近,但是可能不是角度的关系,而是长度的关系。
只有出错的时候才会更新。
查看更新向量的长度变化:向量的增长会有限
从开始,进行T次修正后,因为长度的增长会有限,而內积正规化后最大为1,所以
和
会越来越接近,最终会停下来。
Non Separable Data
针对线性可分的情况,PLA为什么会停下来:
- 1、因为线性可分则
和
会越来越接近
- 2、
的长度会缓慢增长
PLA好处:实现简单,快速,可以工作在任何维度
PLA坏处:需要预先假设数据集是线性可分的,但是不能确定PLA需要多久能停下来
数据中可能有噪音,假设噪音很小,通常,找到一条线使得在data上犯得错误最小
pocket algorithm
修正PLA算法使用保留口袋中最好的w,在修正时比较修正的直线和当前直线哪一个犯错少,使用犯错少的进行替代。
口袋算法比PLA相比较慢。