Classification(分类)
如何进行分类
分类问题中的线性回归
我们考虑一个二元分类问题,一类标记为
C
l
a
s
s
1
Class 1
Class1,一类标记为
C
l
a
s
s
2
Class 2
Class2。如果对于左图中的数据利用回归模型可以很好的区分,但是如果数据分布不是聚集分布,如右图,有部分
C
l
a
s
s
1
Class1
Class1 的数据远离拟合的直线,根据线性回归此时拟合的直线变为紫色直线,出现误判的情况。
较为理想的替代方法是:
对于二分类问题,定义一个函数,当函数值大于0就划分为类别1,否则就为类别2.损失函数定义为在测试数据上误分类的次数。
这样问题的关键就在于如何找到满足的函数。
概率生成模型
贝叶斯
贝叶斯公式
有两个盒子,都有蓝色球和绿色球,现在随机从两个盒子中抽出一个蓝色的球,根据贝叶斯公式可以计算。
现在求随机从两个盒子中抽一个球,抽到的是盒子1中蓝色球的概率是多少?(高中数学得:)
P
(
B
1
∣
B
l
u
e
)
=
P
(
B
l
u
e
∣
B
1
)
P
(
B
1
)
P
(
B
l
u
e
∣
B
1
)
P
(
B
1
)
+
P
(
B
l
u
e
∣
B
2
)
P
(
B
2
)
P(B_1|Blue)=\frac{P(Blue|B_1)P(B_1)}{P(Blue|B_1)P(B_1)+P(Blue|B_2)P(B_2)}
P(B1∣Blue)=P(Blue∣B1)P(B1)+P(Blue∣B2)P(B2)P(Blue∣B1)P(B1)
如果将上面例子中的盒子换成
C
l
a
s
s
1
Class1
Class1 和
C
l
a
s
s
2
Class2
Class2
生成概率模型其实是先假设数据的概率分布(正太、伯努利、泊松),然后用概率公式去计算
x
x
x 所属于的类型
p
(
C
1
∣
x
)
p(C_1∣x)
p(C1∣x)
如果需要自己生成
x
x
x,可以计算
x
x
x 的出现几率,这个几率的计算如下:
P
(
x
)
=
P
(
x
∣
C
1
)
P
(
C
1
)
+
P
(
x
∣
C
2
)
P
(
C
2
)
P(x)=P(x|C_1)P(C_1)+P(x|C_2)P(C_2)
P(x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)
先验概率
比如说,Pokemon分两类,
C
l
a
s
s
1
Class1
Class1 的标签是 Water,
C
l
a
s
s
2
Class2
Class2的标签是Normal。训练集中有79只Water Pokemon和61只Normal Pokemon。
根据公式需要得到先验概率和某类Pokemon的分布概率密度函数。其先验概率为:
P
(
C
1
)
=
79
79
+
61
=
0.56
P(C_1)=\frac{79}{79+61}=0.56
P(C1)=79+6179=0.56
P
(
C
1
)
=
61
79
+
61
=
0.44
P(C_1)=\frac{61}{79+61}=0.44
P(C1)=79+6161=0.44
其次,我们需要求得某个类别的分布概率密度函数
用一个列向量表示一只Pokemon的特征参数
这样,输入一个
x
x
x 向量,我们能得到它的抽样概率。
并且我们可以知道,上面的概率密度函数形状取决于
μ
\mu
μ 的值和协方差矩阵
∑
\sum
∑
总结—分类模型的建立
选择模型—>判断函数的好坏—>确定最优函数
朴素贝叶斯
如果假设所有的feature都是相互的,也就是说 P(C|x) = P(C|x1)*P(C|x2)…P(C|xn),协方差除了对角线其余位置都是0,这种情况下的 Generative model 就是朴素贝叶斯了。只是简化了分布假设,其它都一样。