机器学习系列 五 Classification 分类

分类的问题:
1. 信用卡借贷判断
input:    收入、存款、职业、年龄、过去的财务历史等等....
output: 借钱  或  不借钱

2.医疗诊断
input:    某个人的症状、年龄、性别、旧病史等等....
output: 他生的是哪一种病

3.手写文字辨识
input:手写字图片
output: 属于哪个字(中文有8000个字)
那就是要做test 的classification

4.人脸识别
input: 人脸图片
output:这个人是谁


举个例子:
宝可梦有16中属性如下,那我们要做的就是,input任何一只宝可梦,output是该宝可梦的属性是哪一种:
比如皮卡丘=>电, 龟=>水, 妙蛙种子=>草。等等。

那么一个宝可梦,可以利用一组数字来描述他的特性。
下面我们选择7中宝可梦的属性来描述他:
1.综合,2.血量,3.攻击力,4.防御力,5.特殊攻击力,6.特殊防御力,7.速度
那么我们是否可以找到一个function将这7中属性整合描述一只宝可梦呢?
这件事的重要性在哪里: 因为宝可梦战斗,是由属性相克关系的。
下面是18种属性的相克表:

辣木,怎么完成这个任务:
1. 首先,收集数据:将宝可梦编号400以下的当做training data,400以上的当做testing data。
那么模拟我们看到新的宝可梦是否能够也测他属于哪一种属性。

那我们收集来的数据就是一对一对的,(X,Y),比如input比卡丘,输出电,input杰尼龟,输出水,input妙蛙草,输出草。

假设我们没有学过classification,可以把它当做regression来硬解。
把classification当做binary regression看待
那拿去给testing数据后,如果结果接近1的话,就当做是class1,如果接近-1,就当做是class2.所以现在想法就是以0为分界。如果regression 算出来大于0,就说接近于1,如果算出来小于1,就说接近于-1.


但是,这样做会遇到什么问题呢?
假如我们input就两个feature :x1,x2. 
class类别:蓝色是class1,红色是class2.
现在开始想,如果蓝色的哪一些数据input到regression的model我们都希望他们越接近1越好。红色这些数据input到regression model我们希望越接近-1越好。那这样是可以做到的,绿色的那条线就是分界线。他的function写作:
b+w1x1 + w2x2 = 0

但是,这么做是有问题的:
如果是用regression的话,他会惩罚那些error误差太大的点,因为右下角的那些点糊导致regression过度矫正。所以会得到的不是绿色那条线,而是紫色的,所以反而得到的结果不好。


那么理想的做法应该是这样的:

也分三步走:
1.找model,那么我们可以找当x满足某个modle >0的话就是第一类,反之就是第二类。
2.确定loss function,在训练集上,model   f(x) 获得到错误数据的次数。
3.找到最好的function,例如Perceptron感知机,SVM。

然而今天先不讲这两个,先说说别的方案:

首先讲一下贝叶斯


然后将贝叶斯的这个概念带入到分类的问题上,二分类:

再来看看,我们如果只考虑水系和其他系的二元分类问题,
我们把数据的编号小于400的当做training data,把其他的当做testing data。
在training数据中:79只水系,61只一般系

那么这时候,从class1中找出一只水系宝可梦的概率是P(c1), 从class2中找出一只其他类型宝可梦的概率是P(c2)


那我们假设拿到一只海龟的概率是多少呢?其实我们会使用一组向量来表示宝可梦的特征feature


然后考虑他们防御力,和特殊防御力,假设这些点的分布都符合高斯分布

讲一讲高斯分布

已经听不懂了,需要复习概率论


独立同分布











为什么要用高斯....永远可以选自己喜欢的,以人的智慧去选择比较适合的。
又来了一个伯努利分布

下面涉及到了sigmod的激活函数


























阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页