00:00
前面讲的回归和分类问题里边是不是都得知道X对应的Y啊,回归问题里边,哎,那个Y本身的数值你得知道,分类问题里边是不是前面我们那个鸢尾花,它的预测的分类你首先得知道啊,啊就是本身它的分类你得知道对不对,这是我们的监典型的监督学习问题,知道它的答案,知道它的结果,那现在接下来我们要看一下无监督学习它的特点是什么呢?就是只有X没有Y对不对,就一组数据,你找它规律吧,那至于你要得到什么结果,不知道,你你自己随便去找,随便去看啊,你能找出什么规律来,都算,都算你本本事对吧,就这样的一个过程,所以无监督里边大家会看到我们重要的应用,哎,大家可以看到是这两类啊,一一个是聚类,什么叫聚类呢?大家想到聚类听起来好像跟分类差不多,对不对啊,它也是解决,可以认为是也是解决分类问题的,但是它跟我们前面讲的监督学习里面的。
01:00
分类不一样,不一样在哪里呢?就是它本身不知道该分到哪一类,也就是说来了之后的数据就是一堆点,任何信息都没有,就是一堆点,然后我让他们自动的找它的规律,让他们自动的聚在一起,那大家可能会想到这个最基本的一个想法是不是就是看他,诶你要是形状上这些点离得比较近,是不是离得近的就把它抱团聚在一起就可以了呀,啊,这就是一个基本的想法。所以那么聚类主要的一些算法就有K均值king,这就是最经典的k means,然后还有一些基于密度的,基于最大期望的一些聚类,都是属于聚类算法,另外还有一大类无监督的学习的这个模型叫做降维,或者说这个算法叫做降维方法,那么它主要是干什么呢?它相当于就是说我们的数据太庞大了,整个的这个维度太多了,太庞大了。我们希望把它的维度。
02:00
降低提取出它里边最重要的那些信息,或者说更能表现我们想要的目标,想要的标签,更能体现这些东西的那些特征,呃,相当于做一个特征选择,对不对?大家可以看到是这样的一个过程,那这里边有哪些方法呢?大家看到列出来的啊,L sa前语义分析,然后主成分分析PCA啊,这个也是很有名的一个方法啊算法,然后还有其值分解SVD,这里边我们不给大家详细展开去讲,那接下来啊,后续讲推荐系统算法的时候,我们里边有一个核心的,呃,基于模型的协同过滤算法,它其实就是做了一个降维处理的,那可以认为它其实跟这里边的奇异值分解是比较类似的啊,有些地方,有些文章里面也会把这个我们后面给大家讲到的,叫做隐语义模型的这样一种,呃,矩阵分解。
03:00
的方式是把它叫做SVD加加,基于SVD加加做的一个这样的一个矩阵分解,那这个是一个后话啊,就是后面再给大家详细展开讲,这里我们就主要是给大家看一看聚类就好了,那这里聚类主要就介绍K均值k means它是怎么样做剧烈的呢?给大家看一眼这里的这个图啊,呃,我们就用这几幅图,大家直观的一看,其实就能理解了,它是怎么做的呢?首先原始数据大家看A图里边所有的绿色的点都是我们的数据,我们其实明眼人一看的话很明显对不对,上面这一团是不是一类啊,下面这一团是不是又是一类?呃,其实我们如果人去看的话,一眼就知道,但是机器不知道啊,你上来之后它没有标签,是不是只有这些点的坐标,所以我只能把它画出来,但是并不知道它属于哪一类。
04:00
那大家就想,我想让它自动的聚起来,怎么能自动的聚起来呢?诶,我的做法就是说,首先先随机的指定两个,呃,大家会想到随机的指定两个中心点对不对,或者有些算法里边,书里边把它叫做质心点,那么这两个质星点大家看到它的颜色不同,就代表两个不同的类别,对不对,一个是红色的类,一个是蓝色的类,当然这个选取就是有时候你可以去直接指定,有时候可以随机的生,呃,随机的生成对吧?还有些时候更多的时候是干什么呢?是从已知的点里边,随机的选取两个点作为我们的初始点啊,为什么呢?就是大家会想到本身就在我们的数据样本点里边的点,是不是会更接近于本身的中心啊,你随机选的话,有可能就选到非常偏的边边角角了,对吧?啊,所以就是一般是直接在已有的数据里边去随机选去。
05:00
两个点啊,这里边是在外部选了两个点也是一样的,大家看一下这个效果啊,选了两个中心点之后,那大家会想到我们是不是要要要做聚类,是不是要做一个分类啊,好,那现在就开始做分类,怎么分呢?所有的点怎么分呢?很简单,还是基于KNN这个近邻的想法,跟谁离得近分到哪一类对不对?所以大家看接下来我就按照跟这两个质心点的距离做一个划分,跟红色质星点距离近的都分到红类里边,蓝色的离得近的都分到蓝类里边,那大家看第一次划分之后是不是就变成这个样子啊,就有点像从中间剖开了对不对?因为我们这里的执行点选取是一个这边一个这边,那接下来大家会想到下一步怎么办呢?这已经划分好了呀,下一步怎么办呢?下一步我们的做法是。
06:00
更新至新点。那这一次已经做完之后,这个执行点不要了,因为已经划分好类了,对不对,然后我们根据现有的所有红色这一类里边的点,把它求一个平均值。找到他们中间的这个质心点,大家想到所有的点球均值得到的那个点,是不是就是质心点啊,啊,就是像物理学里边的那个,你挂一根绳子那个最中心的那个点,对吧?那个就叫置行点,所以我们这里的做法也是类似,所以就是把所有的这些点求一个平均值得到的点作为更新之后的执行点,所以大家看第二轮之后,这个执行点是不是就跑到中间来了,对吧?所有红类的行点在这里,所有蓝类的执行点就变成了这里,那接下来怎么办呢?再来一轮划分,跟现在新的红之星点离得近的划分到红红类,离蓝之星点近的划分到蓝类,大家看再一次划分是不是就已经划分成这样的两类了?
07:08
然后最后再把它是不是再求一次平均值啊,更新直行点对不对,求到的直行点是不是就变成了这两类的中心,那当然大家如果再去做的话,发现是不是这个划分和执行点的再更新的话,发现已经基本上不变了,对吧,是不是迭代完成,哎,就可以得到这样的两类,所以大家看其实聚类的话,算法也很简单,它就是这样一个迭代的过程,一次一次迭代,那最最关键的部分是不是一个思想是跟KNN类似,离得近的就划分到一类,对吧?另外一个思想是不是就是划分完了之后再来一轮要求均值啊,哎,所以这一类聚类方法就叫做K均值k means。这样的一个聚类方法,那大家可以想到你KNN里边有一个KK命字也有一个K,那这里边的K到底是什么东西呢?啊对,大家会想到我这里边是一眼看出来它属于两类,我就把它给了两个初始点,初始类去划分对不对,那你如果要是一开始一堆杂乱无章的数据,你是不是有可能,而且大家会想到这是只是二维的数据,我能画出点来,对吧,高维数据你是不是没有办法一眼看出它,它到底是就是图像上属于哪两类对不对,那属于哪几类,所以我们这个。
08:37
它本身的类别数是不是不确定啊,所以这其实我们整个聚类过程当中的一个超参数对吧,一开始我们其实应该指定你到底应该聚成几类啊,所以这里边我们的K是不是取了二啊,所以在我们具体的这个聚类过程当中,这个K值就是我们指定的聚的类的个数。
09:01
好,那么我们再给大家把这个它的核心思想和这个算法流程再来详细的列出来说一遍啊,它的核心思想其实就是说指定K个初始之星,然后就作为类别重复迭代,直到算法收敛,怎么样重复迭代呢?啊,就是这个repeat里边每一次是不是都要对每个样本点对,根据这个KN的原则对吧,找最近的质星把它划分类别对不对,然后。全部划分完了之后,我们是不是把这一类的这个质星按照均值重新计算一遍啊,哎,重新更新一下这个质星,然后大家会想到,诶,更新完了之后,你又可以根据新的执行去划分类别对不对,然后再去更新执行,再划分类别,再更新执行,就是一遍一遍的重复迭代,那最后到什么程度结束迭代呢?执行不再发生变化,或者我们给一个迭代次数对不对,到达迭代上限的时候停止就可以了,所以这个算法是不是非常简单啊啊好。
我来说两句