机器学习系列笔记(二)
上一次的学习的回顾
我们把每个使用者x用一个向量来表示
这个x有很多个维度 在银行卡申请的案例中 x就是申请表, 那么x的维度有:年龄, 年薪,..etc.
那么我们给x所有的维度计算出一个分数, 如果这个分数超过了某个极限就发卡
就像考试, 每题都给你分数,加起来超过60就给你及格, 没超过就不及格, 如果这个题很重要,给分多一点
注意到这里是小h 是可能的一个公式
那这里的threshold 是门槛 通过这些计算加权加起来, sign 一下如果大于0就是+1 good的意思, 如果正好就等于门槛,那么可以忽略..
这里做个公式简化
把这个门槛值当作第0维
那么就简化成从0开始累加
h(x)=sign(w0+w1x1+w2x2)
这里的x可以化成每个顾客的点
labels +1就成O -1就成X
hypothesis h:就是分割线 线的左边就是不好的,线的右边就是好的
perceptrons 感知器 <==>平面上的一条线==>linear classifiers (线性分类器)
演算法的目标就是选一条最好的线
那么我们怎么选一条最好的线出来呢
那什么又是最好的线呢, 就是理想上的F (当然我们这里不知道)
g≈f on D
要求:在看过的data的演算法g要求和f长的一模一样
那么会有无限多条线, 这是非常有难度的
所以我们从最简单的做起,假设有一条线g0, 虽然这条线不那么好,但是我们可以慢慢修正它让它变的更好
开始有个w0 但是这个w0就是不知道,那么就叫它0好了
那么怎么做呢
如果这条线还不完美,那么我们就一定找的出mistake 错误 我们把这个错误的点叫作(Xn(t),Yn(t)) t代表轮数,一轮一轮的
我拿这个线去和这个点做内积 sign(wx(xn(t),yn(t)))≠y();
那么就找到了错误,找到了错误我们就要想办法来修正它
如果我要正的我就w转的靠近x一点 如果我要负的就转的远离x一点
CYCLIC PLA
那么这个线就一直转啊转的. 修正修正一直修正, 一直到没有错误点的时候就会停下来了,那么停下来的哪个时候的算法就是最好的线,
但是,这个修正的过程会停下来吗?那吃了炫卖停不下来怎么办??
sign(wt*xt)≠yt ⇒ ytwtxt<=0 异号
所以成长最快的是最远的那个点,
PLA演算法会停下来
如果data 线性可分 wf 和wt 会越来越接近 wt的长度会缓慢的增长
多少次会停下来 R平方/搂平方
R是什么 搂是depend on wf算出来的
如果DATA不线性可分怎么办
那么如果data里面有一些noisy杂项 弄错了怎么办
那我们就找不到不犯错误的线–所以我们就要去找犯错误最少的线
NP hard 问题(千古难题)
keeping best weight in pocket
找到新的线, 和自己口袋里的线比较哪一条比较好, (好的意思是犯错误比较少) 好的放在口袋里
那什么时候停下来呢, 跑到足够多的次数就停下
pocket 会比pla慢 因为pocket要通过所有的data来比较哪个线比较好.