机器学习课程

一、KNN算法

即:K近邻算法,全称为:K Nearest Neighbour

1、定义:

如果一个样本在一个特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。通俗来讲,就是找出和被预测点离得最近的k个邻居,然后这k个邻居中的大多数属于哪个类别,则我们就预测这个预测点也是属于这个类别。

注意:通常我们不会将k值取1,因为有肯能那个最近邻的样本是一个异常值(点),那么预测的结果就会受到异常值的影响。

2、那么,如何确定谁是我的邻居呢?

既然要判定谁是我的邻居,那就要计算距离,计算距离的公式有很多,常用的并且好理解的有:欧式距离,曼哈顿距离

2-1 欧式距离:

2-2 曼哈顿距离(绝对值距离)

3、KNN应用举例:电影类型预测 

 k=1 爱情片

k=2 爱情片

...

k=6 近邻中爱情片和动作片各占一半,无法确定电影类型

k=7 假设表中再加了一个动作片电影电影,则预测电影为动作片,可是该电影中却有90个接吻镜头,明显应该是爱情片。所以,如果k值取的过大,当样本不均衡的时候,就容易分错。即:k值过大,容易受到样本不均衡的影响。

总结:

k值如果取得过小,容易受到异常值的影响;

k值取得过大,容易受到样本不均衡的影响

4、KNN算法API

5、KNN算法优缺点:

优点:

简单,易于理解,易于训练,无需训练

缺点:

1)必须选择K值,如果K值选择不当,则分类精度不能保障

2) 是懒惰算法,对测试样本分类时的计算量大,内存开销大

二、朴素贝叶斯

 

 1、女神喜欢的概率?

P(喜欢) = 4/7

2、职业是程序员并且体型匀称的概率?

分析:程序员,且体型匀称,在这7个样本中只有样本3满足

P(程序员,体型匀称) = 1/7

3、在女神喜欢的条件下,职业是程序员的概率?

分析:上述样本中,有4个样本是女神喜欢的,而其中有2个是程序员

P(程序员|女神喜欢) = 2/4 = 1/2

4、在女神喜欢的条件下,职业是程序员,体重是超重的概率?

三、决策树算法、随机森林算法

(一)决策树

1、什么是决策树?如何进行高效的决策?

最早的决策树就是利用程序设计中的if-else结构分割数据的一种分类学习法。决策树的思想就是:如何高效的进行决策。而我们决策是有顺序的,即:我们在看不同的特征的时候,先看哪一个,后看哪一个是有讲究的。因为正确的特征先后顺序有利于我们进行高效的决策。比如:

从上图可以看出,该女生最在意的是男方的年龄,其次是长相,收入,职业。如果男方年龄不合适,则直接就不见了,就省去了后面的问题。所以正确的特征的先后顺序有利于我们进行高效决策。 

2、特征的先后顺序

举例:已知有四个特征:“年龄”,“是否有工作”,“是否有自己的房子”,“信贷情况”这四个特征,请你预测是否要贷款给某个人。

参考上图(以往的样本),如果我们先看是否有房子,再看是否有工作:

以往的样本中,有房子的都拿到了贷款:

 但是,有一些人没有房子也拿到了贷款,所以我们光看房子还不够,所以继续看是否有工作。

剩下的没放没工作的人,不论信用如何,都没有拿到贷款。所以如果我们先看房子,再看工作,就不用再看其他特征,就可以决定是否贷款了。

如果我们不按照这个顺序,比如我们先看年龄,再看信贷情况,再看工作,才能确定是否贷款。如下图:

我们需要看3个特征才能确定是否贷款,这个效率显然就比前面看2个特征的效率要低了。所以,特征的先后顺序会影响到我们决策的效率。

那么问题来了,我们如何找到高效的决策顺序呢?这里就要引入信息熵、信息增益的知识。

3、信息论基础——信息熵

1)什么是信息?

信息是消除随机不定性的东西是信息(香农定义的)。比如:我不确定小明的年龄。而小明说:“我今年18岁。”那么“我今年18岁。”就是一个信息。

为了进一步取理解什么是信息,我们再举一个例子:现在我已经知道小明18岁了,而小华说:“小明明年19岁。”那么“小明明年19岁。”这句话就不算信息了,因为小明之前已经告诉了我他的年龄,我对于小明年龄的不确定性已经被消除,所以小华这句话并没有消除我任何不确定性,所以不能算是信息。

2)信息的衡量——信息量和信息熵

信息量度量的是一个具体事件发生所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。

信息量的表示:

信息量的大小和事件发生的概率成反比

信息熵的表示:

发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。 

信息熵是用来衡量事物不确定性的。信息熵越大,事物越具不确定性,事物越复杂。

那么对于上面的贷款问题,可以计算出,信息熵为:

H(X) = -(6/15 * log6/15 + 9/15 * log9/15) = 0.971

这个0.971表示的就是申请贷款者的总的不确定性

3)决策树划分的依据之一——信息增益

当我们知道贷款人的某个特征之后,其不确定性就会减少,如果我们能够计算出知道某个特征之后,其不确定性减少的程度,再比较出哪个特征减少的不确定性的程度是最大的,那么我们以后放贷款时就可以先看这个特征了。这就是决策树解决问题的思路。同时,我们还要引入信息论中的一个新的概念——信息增益。

信息增益衡量的是知道某个特征之后,不确定性的减少程度。

公式:特征A对训练集X的信息增益g(X, A),定义为集合X的信息熵H(X)与特征A给定条件下X的信息条件熵H(X|A)之差,即:

g(X, A) = H(X) - H(X|A)

举例:计算知道年龄之后的信息增益?

g(X|年龄) = H(X) - H(X|年龄)

4、在sklearn中使用决策树

 

 实操:鸢尾花分类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值