概念
分类要找一个 f u n c t i o n function function 函数,输入对象 x x x 特征, 输出是该对象属于 n n n 个类别中是属于哪一个。
- 例子1:比如信用评分【二分类问题】
- 输入:收入,储蓄,行业,年龄,金融史…
- 输出:是否拒绝拒绝贷款
- 例子2:比如医疗诊断【多分类问题】
- 输入:当前症状,年龄,性别,医疗史…
- 输出:患了哪种疾病
总体步骤
模型选择
回归模型
- 类别1:相当于target是 1 1 1。
- 类别2:相当于target是 − 1 -1 −1。
- 然后训练模型:因为是个数值,如果数值比较接近 1 1 1,就当作类别1,如果数值接近 − 1 -1 −1,就当做类别2。
- 无法得到好结果,回归方式对于分类问题来说是不适用的
其他模型
- 将 f u n c t i o n function function 中内嵌一个函数 g ( x ) g(x) g(x),如果大于0,就认识是类别1,否则认为是类别2。损失函数的定义就是,如果选中某个 f u n c i t o n f ( x ) funciton \ f(x) funciton f(x),在训练集上预测错误的次数。当然希望错误次数越小越好。
- 但是这样的损失函数没办法解,这种定义没办法微分。
概率模型
原理
- 知道红色方框的值,就可以计算出给一个 x x x,它是属于哪个类型的, P ( C 1 ∣ x ) P(C_1|x) P(C1∣x) 和 P ( C 2 ∣ x ) P(C_ 2 | x) P(C2∣x),哪个类别的概率大就属于哪个类别。接下来就需要从训练集中估测红色方框中的值。这一套想法叫做生成模型(Generative Model)。因为有了这个模型,就可以生成一个 x x x,可以计算某个 x x x 出现的概率,知道了 x x x 的分布,就可以自己产生 x x x 。
举例
- 二分类问题,根据神器宝贝属性值判断该神奇宝贝是属于水系宝贝还是不是
- 通过训练集的数据可以计算出
P
(
C
1
)
P(C_1)
P(C1) 和
P
(
C
2
)
P(C_2)
P(C2)
- 水属性占比: P ( C 1 ) = 0.56 P(C_1) = 0.56 P(C1)=0.56
- 普通属性占比: P ( C 2 ) = 0.44 P(C_2) = 0.44 P(C2)=0.44
- 计算 P ( x ∣ C 1 ) P(x|C_1) P(x∣C1),假设水系宝贝的属性值符合高斯分布,然后利用训练集上79个神器宝贝找到该高斯分布的方程,然后把x带进去,计算出被挑选出来的概率
- 完了就可以进行分类判断了
高斯分布
-
https://blog.csdn.net/lin_limin/article/details/81024228
最大似然估计
-
判断怎么找到最优的高数函数
-
将使得 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑) 最大的 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑) 记做 ( μ ∗ , ∑ ∗ ) (\mu^∗,\sum^∗) (μ∗,∑∗) , ( μ ∗ , ∑ ∗ ) (\mu^∗,\sum^∗) (μ∗,∑∗) 就是所有 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑) 的 Maximum Likelihood(最大似然估计)
模型优化
上面结果
- 结果是测试集上正确率只有 47% 。当然这里只处理了二维(两个属性)的情况,那在7维空间计算出最大释然估计值,此时μμ是7维向量,ΣΣ是7维矩阵。得到结果也只有54% 的正确率
改进
-
给描述这两个类别的高斯分布相同的协方差矩阵
-
修改似然函数为 L(μ1,μ2,Σ)L(μ1,μ2,Σ)。μ1,μ2μ1,μ2 计算方法和上面相同,分别加起来平均即可;而ΣΣ的计算有所不同。
-
正确率提高到了73%。
后验概率
Sigmoid function
进行一系列的化简后