上期回顾,上一期我们把gradient descent详细的说了一遍,如果还是不熟悉的可以重新看一遍,反正我也还没有十拿九稳的拿下它,因为数学基础太差了,要补好数学,才能有更深的理解,放上链接:李宏毅机器学习-----Gradient Descent
分类:概率生成模型
分类问题的思想与前面所说的回归问题很类似,也是输入x,找到一个function(即model),然后输出这个x属于哪个class n。
上图也有很多例子:
例如信用卡评分,输入是你的收入,储蓄,工作,年龄等等,而输出就是接受或拒绝你的信用卡申请。
例如医疗诊断,输入是你的现在病状,年龄性别,过去的病史,输出是你得了什么病。
例如人脸识别或者手写字识别,输入人脸或者手写字,输出属于哪个人,或哪个字
例子:宝可梦的种类分类
我们知道宝可梦有18种类型,我们希望输入一个宝可梦的参数,然后能知道它是哪个种类。那我们应该怎么让一只宝可梦成为输入参数呢?
- Total :整体数值
- HP : 血量
- Attack:攻击力
- Defense:防御力
- SP Atk:特殊攻击
- SP Def:特殊防御
- Speed : 速度
我们用向量vector来保存这7个数值,作为宝可梦的输入。为了让大家更好理解,老师告诉了我们为什么知道一只宝可梦的属性很重要?哈哈哈,因为属性之间是相克的,对于战斗来说,如果选对了属性,你就已经赢了一半了,而且有时候,你不知道这只宝可梦是什么属性,你也可以通过模型来预测它是什么属性的宝可梦,请看下图的属性相克表:
怎么做分类呢?
我们只学过回归,所以首先尝试通过regression来硬解分类问题,用二分类问题来举例,我们可以让Class1的 y ^ \hat y y^就是1,Class2的 y ^ \hat y y^就是-1,然后train出一个model,拿去testing,数值接近1的就是Class1,数值接近-1就是Class2.
比较两幅图,我们可以发现,数据点的分布会影响绿色那条线,当考虑右下角远大于1的数据点,结果会被影响,因为紫色线希望让远大于1的点的更贴近自己,减少对于这些点的error。所以有个说法就是regression model会惩罚那些太正确的samples。还有一个问题,当这是多类别分类问题,回归模型是假设类别与类别之间是存在一定关系的,但是如果类别之间是相对独立的,那么回归模型不能产生很好的分类结果。
所以提出了一个比较理想的替代方案,就是funciton f(x)里面有个g(x),如果g(x)大于0,ouput就是类别一,否则是类别二。而Loss function用错误次数来表示,我们希望在训练集上,判断错误的次数越小,Loss就越小。找到最好的funciton的方法有SVM,Perceptron,暂时不涉及。
贝叶斯公式(概率模型实现原理)
假设有两个盒子box1和box2,里面有蓝色球和绿色球,现在我抽到一个蓝色球,求它从盒子1抽来的机率是多少?
图里可以看到,我们已知箱子里有多少个蓝球和绿球,所以一下子就能求出来 P ( B 1 ) P(B_1) P(B1)和 P ( B 2 ) P(B_2) P(B2),也能知道在box1和box2中拿到蓝球和绿球的机率 P ( B l u e ∣ B 1 ) , P ( G r e e n ∣ B 1 ) 和 P ( B l u e ∣ B 2 ) , P ( G r e e n ∣ B 2 ) P(Blue|B_1),P(Green|B_1)和P(Blue|B_2),P(Green|B_2) P(Blue∣B1),P(Green∣B1)和P(Blue∣B2),