接下来我们要进入一个新的主题:分类
分类的input 是一个object x ,output 是这个object 属于哪一个class。
需要用数字来表示一个宝可梦,才能够把它放到一个function里面;
可以把它的特性数值化(生命值,攻击力,速度…)
为了完成这个任务,我们要先收集data (例:input 皮卡丘 output点)
那怎么解这个classification 的问题?
如果classification 就当做Regression 的问题来硬解,
这么做会遇到什么样的问题呢?
如果你用Regression 的话,你会希望,蓝色的点都越接近1越好,所以这些远大于1的点,他其实对Regression 来说,是error,所以如果你今天拿这样两群蓝色的点跟红色的点做Regression 的时候,你得到的线不会是绿色这条,而是紫色这条。
对Regression 来说,紫色这条是一个好的function,但对classification来说绿色明显是更合适的。
因为Regression 会惩罚那些output 值太大的点,这样反而得到的结果不好。
也就是说Regression 定义好坏的标准对classification 来说 不适用。
那应该要怎么做呢?
理想的做法:
我们今天先讲另外一个方法:Generative Model
(其实就是概率中的贝叶斯和全概率公式)
问题来了,怎么计算说,如果给我某一个class ,某一只宝可梦是从这个class sample 出来的概率呢?
比如说给一个海龟,问他是从水系sample出来的概率是多少?
(问题关键:训练集的水系神奇宝贝里面没有海龟)
这79只里面没有海龟,但海龟是水系的概率不能为零。
每一个宝可梦,都可以用一堆feature 来描述。我们把这些水系的神奇宝贝,他们的防御力,特殊防御力画出来。(每个宝可梦有七个特征,先画出来两个)
我们可以假设这79个点是从Gaussian Distribution 里面sample出来的。
现在我们要做的是根据这已知的79个点,找出Gaussian Distribution ,然后根据Gaussian Distribution 推算出79个点以外的点出现的概率。
高斯分布(正态分布):
只要找到 μ 和 Σ 就可以写出 f μ , Σ(x) 进而就可以算出该高斯分布下任一点的概率。
为了寻找 μ 和 Σ 我们使用:Maximum Likelihood(最大似然估计)
原理:每个Gaussian Distribution都有可能sample 出这79个点,但可能性不一样。
选择一个可能性最大的Gaussian Distribution。
有了 μ* 和 Σ* 我们就可以算出他们的高斯分布,就可以做分类了
二维空间只有47% 七维空间上,正确率只有54% 分的不是太好
改进:
比较常见的做法是不同的Gaussian Distribution共用参数。
注意 boundary is linear ,七维后正确率达到73%
回顾一下模型:
• You can always use the distribution you like
For binary features, you may assume they are from Bernoulli distributions(伯努利分布).
Warning of Math
z 应该长什么样子呢?
Σ1 = Σ2 = Σ z就可以就可以简化
如果我们可以直接找到 w 和 b 就不需要走这么麻烦的步骤了。
这个就是下节要谈到的。