七月在线公开课笔记-七-

龙哥盟 / 2024-11-11 / 原文

七月在线公开课笔记(七)

【七月在线】机器学习就业训练营16期 - P2:在线视频:2-决策树、随机森林、GBDT_ev - IT自学网100 - BV1Z9T5ewEKL

好的好的,那那个大家晚上好啊,我们今天上咱们的第二次课,在今天的课程当中呢,我会给大家介绍到另外一类非常独特的模型啊,我们昨天的模型和今天的模型,是工业界当中最爱使用的模型。

而今天介绍的模型相比于昨天的模型,有它自己的一些独特的优势,使得啊工业界当然在工业界的话,我们是两类模型都会用,但是如果大家去看一看各式各样的,近几年各式各样的数据科学比赛,你会看到。

今天我们讲到这一类模型占据了半壁江山,于是无论如何,大家在解决任何问题的时候,都会第一第一时间想到说,我要用数模型去试一下,所以这个地方数模型,包括我们说的决策树,以及决策树的一些集成模型。

包括今天会提到的随机分明,Random forest,Ok,这个模型相对于昨天的模型有它自己独特之处,它在数据的预处理的部分啊,我的声音大小OK吗,声音小不小吧,那我在具体讲内容之前。

我再跟大家确认一下我的声音大小是OK的吗,没有问题吧,啊所以我觉得说声音小的同学,可能是自己那边声音调的不够大啊,所以调大一点,好吧啊,好没问题,那我们今天提到这个模型非常非常重要啊。

就是数模型的基础啊,叫做决策树,decision tree啊,那基于这个决策树呢,我可以用一些集成的方法,去得到各式各样的高级模型,比如说其中的一个高级模型叫做随机森林,这是我们今天要给大家讲到的模型。

这个模型呢在于它自己独特的特点,我们上节课讲这个模型,做分类的模型叫做逻辑回归,逻辑回归完成的,完成预估的这个方法是呃,你可以对它做一个WX加B这样的运算,在送到一个sigma的函数当中去。

拿到一个概所谓的概率P,而今天的数模型是另外一类处理的模型,所以这类模型在解决问题的时候,会有它自己的独特之处,而这类模型由于它非常非常友好的,一些数据预处理上面的一些特性,使得它在工业界被广泛的应用。

所以这是我们今天要给大家讲到的内容,我们会给大家讲到从逻辑回归,上节课讲到模型,我们简单的过渡一下,提到今天这个模型叫做decision tree,决策树,我们会告诉大家它总体的流程和核心的问题。

而这一部分也是大家在去参加各式各样的,机器学习工程师面试的时候,公司面试的时候最爱问到的问题,所以希望大家一会在我讲到这个部分的时候,能够好好的理解一下,有问题也可以提出来,大家一起讨论一下呃。

我会告诉大家,这类决策树它不仅能完成分类问题,它同样可以完成回归的问题,所以我们会给大家讲到回归数,Requesting tree,我会告诉大家说你回归树是如何去构建的,你如何去生长出来一棵这样的树。

以及如何去最优化一个回归树,那N科的树,单科的角色数,他可能会有他自己的一些问题,我们可以用一些模型集成的方法,去把单科的决策树集成一个集成模型,所以最终这个地方有一个很重要的集成模型。

叫做random forest,叫做随机森林,OK所以我们会给大家介绍到这样的一类模型,好的,所以这就是我们今天我给大家提到的,三个主要的内容,以及他的一些更细的二级大纲,所以大家有一个大题的印象。

我们就开始给大家做一个介绍了,我们思考一下这个地方有一个这样的问题啊,有一个妈妈在这个小姐姐到了24岁的时候,很着急啊,觉得女孩子年纪大了啊,如果没有出价,可能会有一些问题,于是他要去做一个事情。

他要去相亲啊,小姐姐长得不错,所以来相亲的人很多,于是他需要需要去做一个决定,说今天这个人来了之后,或者说今天这个人的条件下,我要不要去参加这次相亲对吧,因为出了门我还得化个妆好。

所以这个地方的问题就是,我是否要去相亲这样的一个问题,我们上节课讲到这个模型叫做逻辑回归好,这个logic的关系是一个很棒的模型,在这个模型的场景底下呢,我可以去完成一个是或者是否这样的一个。

分类的问题,所以如果我们用logistic regression,去解决这样的一个问题,我们可以找一些需要思考的因素过来,比如说这个不要和我相亲的,这个小哥哥或者大叔,他是否长得足够的高。

他是否足够的有钱,他是否长得比较帅呃,还是说它是一个很有潜力的这样的一个人,或者说他的品德是什么样的一个程度,OK所以我找了这样的一些X1X2X三,X4和X5过来,然后我可以基于上节课的内容。

给定W1W2W3W4W五,当然你可以加一个偏执项啊,OK于是我们做了一个事情叫做WX啊,你可以加一个偏置项给B,然后你可以送到一个什么对SIGMOID函数当中,对你可以送到SIGMOID的函数当中去。

拿到一个概率P,找到一个概率P,这就是我们上节课讲到的内容对吧,我们还是给大家讲到了,到我们有用这样一个模型的时候,我们会有一个损失函数叫做log loss,然后我们会对这个logo los。

基于比如说gradient descent,梯度下降去完成一个优化,拿到最好的那一组WOK好。

这是逻辑回归,我们今天讲完的模型就很有意思了,所以这个小姐姐在发现啊,前面这个东西要有这么多的数学知识。

这是一个很头疼的事情,还要去做数学计算,所以这个事情就变得很boring,所以有没有其他的方法呢。

他想了一下,他说哎好多场景下我有一票否决否决权,如果今天这个小哥哥的年龄大于30岁了啊,不好意思,你就不是小哥哥了,你可能是一个小叔叔了,所以年龄大于30岁呢,有一票否决权,不好意思,就完全不去了啊。

就不用考虑其他的因素了啊,然后呢如果他年龄小于等于30岁呢,我再看看其他条件,哎呀这个这个呃有一点点丑啊,所以呢这个时候哎这个条件也不行,也一票否决了,唉如果现在唉年龄也还还适中,长相也还不错。

那再看一看他的收入状况啊,所以如果他收入状况非常非常穷啊,买个冰淇淋都买不起,不好意思啊,一票否决权取不了了,如果他今天诶收入状况很高,那不就是高富帅吗,好去所以就去了,对吧好,如果他的收入中等。

我要看一看有没有时间陪我对吧,所以是不是公务员好,如果是公务员的话,好建,不是公务员的话不建,而这个很符合大家的日常生活,做决策的这样的一个过程对吗,所以人做决策的时候,有时候是这样一种更直观的过程。

我我才不会去做什么数学计算呢,我就是一些规则,这个东西翻译成程序语言是什么,对呀,它就是if else if什么什么什么,我怎么怎么样,else啊,if啊,怎么怎么怎么怎么样啊。

那else再不是的话怎么怎么样,OK所以他是这样的一个诶,如果怎么怎么样就怎么怎么样,如果再怎么怎么样,就怎么怎么样,如果都不是我怎么怎么样,是这样的一个房事,去判断这个小姐姐是否去参加这次相亲好。

所以我们把这个东西做一个抽象呢,大概是这样的,我们会拿,我们会从左边这个小姐姐和妈妈对话当中,去得到这样的一个决策树啊,这就是一个决策树,所以这棵决策树实际上很清晰,他给他的每一个分支。

实际上就是你会根据一个,你会根据这个条件在取值去做一个判断,OK顺着这本书往下走,走到叶子节点,你就可以拿到,你要的结果,所以这个模型是,这显然也是一个可以用于决定,我到底去不去参加相亲的。

这样一个二分类的一个模型,这个模型是有它独特的特点,它的特点是什么呢,它很简单很简单吧,他甚至不需要去做数学的计算啊,我就是一堆的规则,我做预测的时候就是顺着这个规则往下走,我就拿到结果了。

第二个他的逻辑非常清晰,对不对,它相对于我前面数学自动的那种模型,它的逻辑非常清晰,我就是去做一个条件判断他的年龄怎么样啊,大于小于他的长相是什么样的水平,OK她的收入是什么样的水平。

OK他的可解释性非常好,对不对,如果今天小姐姐告诉你说,OK这个人我去见,那你就可以知道他为什么去见,你就可以基于这些条件去判断说为什么他见哦,是因为这个人收入很高,然后他的年龄和长相也还OK。

所以他们把这种模型叫做透明的,叫做叫做transparent透明的,所以透明的意思就是,它它对用户而言是直接可见的,你是知道他为什么去做这样一个角色。

为什么做了这样一个判断好了,所以大家已经见到了这样的一个结构,那我们来,我们现在来给这个这个决策树这个模型,做一点小小的定义,决策树是一个基于树的结构进行决策,这样的一个model。

那这个模型它有它自己的特点哦,大家仔细看一下,每个内部节点就是这个地方绿色节点,OK那这个地方的内部节点,就是这个地方的绿色节点,大家看到了啊,这些绿色节点啊,那它是什么呢,那每个绿色节点。

是不是针对某一个条件去做了一个判断呢,就是针对某个属性去做了一个判断呢,所以我上最上面的绿色节点,对年龄做了一个判断,第二个类似的节点对长相做了一个判断,第三个绿色节点对收入做了一个判断。

在下面一个绿色节点针对公务员做了一个判断,那我们再看一下每个分支,是不是对应这个判断的一种可能的结果呀,如果它小于30岁,他就走左分支了,它大于30岁他就走六分之了。

所以这个地方的每一个分支实际上是一种取值,对不对,他要不在这个范围内,要么就是说OK他的收入,他的长相是什么样的一个程度,所以某每个分支都是一种可能的结果,或者说这个属性的取值。

然后这个地方的每个叶子节点是什么呀,我们说了,顺着这棵树往下走,他如果走到了叶子节点,他拿到结果了,所以叶子节点就是结果呀,就是你的预测结果好,所以这棵树就长成这样,但是这棵树它不是平白无故出现的呀。

这个小姐姐一定是根据自己多年的这个,这个追剧的这些经验对吧,看了不少的韩剧,OK所以就养成了这样的,不不是养成了,就是培养起来这样的一种判断的标准,所以说所以说唉当我有一个小哥哥来的时候。

我可以去做一个判断好,所以这个学习的过程,实际上就是通过不断的去看韩剧,去通过这个训练样本的分析,来确定说我划分属性到底是什么,我最看重什么,我最看重的是帅不帅,是高不高,是有没有钱还是高。

是有没有钱还是高,是有没有钱还是年龄怎么样,所以这棵树是慢慢长出来的,你得去看看他最关注什么。

然后看他在关注什么,再看他关注什么,OK好,那预测预测的过程当然非常简单了,预测的过程就是直接顺着根节点往下走就好了,你是有一个条件就走哪个分支呗。

你往下走,直到你碰到叶子节点,结果都取出来了,这里就叫做进去,叫做决策树,好了,说了半天,你知道这个东西长什么样了,你知道这个东西呢,呃我怎么去完成他的预测,诶,我好像不知道这个东西怎么得到对吧。

所以所以我怎么知道小姐姐,她对哪个东西最最最看重了。

这个就是我们需要去了解的信息啊,所以这棵树的生长的这个过程呢,总总体的流程是这样的,大家先建立一个基本的概念,它有一个总体的流程,它总体流程是一个分而治之的一个流程啊。

一个divide and conqueror分制的一个流程,我会自根节点至叶子节点去做一个递归,所以这个地方自根节点和带叶子节点,去做一个递归,去做一个递归,然后,大家看到这个地方呢在每个中间节点。

实际上他会去寻找一个划分的属性,然后这个地方有三种终止的条件,就是这棵树它会一直生长对吧,但它不能一直长下去啊,你总得讲到什么时候,这个小姐姐总得在判断若干个条件之后,就知道我到底去不去参加相亲对吧。

去不去参加这个相亲,对不对,对啊大家能听到我声音吗,大家能听到我声音吗,啊不卡对吧,那个大家切换一下路线啊,我这边我这边是没有问题的,我这边的掉帧率是没没有掉帧率的,我的我这边是百兆的宽带。

所以大家那个那个切换一下自己的线路,有可能是这个切换一下自己的线路,有可能是这个直播平台的这个线路的问题,对OK好,所以这个地方呢我这个地方的这一行,说的事情是我需要去了解什么时候停止。

就是这棵树什么时候停止生长啊。

你总得长成一棵这样的树,这个小姐姐才知道说要如何去,做预估吧或者做预测吧,现在大家能听到我声音吗,我再问一遍,能听到我声音吗。

啊你们切换一下线路好不好,你们切换一下线路好不好,对我这边的话做不了什么东西啊,因为我这边显示是OK的状态,好好,好那个啊,对我我我我知道你反映的情况啊,你们切换下线路试试看,因为我这边做不了调整。

Ok,我这边我这边的带宽和掉帧率,是没有任何问题的,所以我不知道怎么去调这个东西好吗,好不好,好那个大家先听啊,如果你在听的过程中实在忍不了了,你跟我说,我我再看一看是不是用流量给大家讲个课好吧。

因为我家WIFI应该是没有问题的啊,嗯好的好,所以这个地方呢其实像我们要做的事情,是这样的,我知道了,这棵树长成这样,我下面要解决两个问题是第一怎么长,OK第一怎么长好,第二涨到什么时候停,Ok。

对不对,我需要去解决这样的问题,对吗好,所以我需要解决两个核心的问题是诶,我知道这棵树长成这样了,但是请告诉我怎么去长出这样的一棵树,我已经有一堆的数据给你了,我有一堆的韩剧准备好了,小姐姐去看好。

但我我我得知道这一堆的韩剧看完之后,它的判定依据是什么,就是这棵树的怎么去得到啊,怎么找,以及涨到什么时候去停啊,因为你不能说你让他一直涨对吧,你总得说你总得告诉我说,你满足某些条件的时候。

你到底去不去参加这次相亲啊。

对吧嗯好的,所以这个地方有三种终止的条件,第一个条件是当前节点包含的样本,全属于同一个类别。

意思是什么呢,我看了这么多的韩剧,所有韩剧都告诉我说,如果这是这个小哥哥是一个年轻有为,长得帅,然后收入又高的这样的一个小哥哥一定要建好,所以所有的韩剧都告诉你这件事情说要建好,所以那就不用。

那就大家都达成了统一的意见啊,我不需要我不需要再去做做什么呃,这个别的条件判断了,所以这样的情况下又高又高,又不不是高啊,就说这个年又年轻,长得又好又帅,收入高频,我不见对吧,大家都见啊。

所以这个时候大家意见一致,OK那我就拿到了一个结果,不需要再不需要再往下涨了,结果一致好。

那第二种情况是什么呢,当前的属性即为空,或者所有样本在属性上的取值相同。

无法无法划分,什么意思,就是这个是这样的,他今天看韩剧了,他发现一个很纠结的问题,这个很纠结的问题就是男2号也很年轻,也很帅,也很有钱,但是韩剧里头的很多小姐姐不见了,这个就有点小尴尬了啊。

所以这就是你找了好多韩剧过来,你发现诶都是这样的情况,走到这了,有些建了,有些没有见我,我好像这个都是一样的条件,有些建了,有些没有见对吧,可能就不好判断了,这时候我就没有办法。

我就我就我所有条件都一模一样,这个时候你还有些看,有些不看,有些贱,有些不见,那我也找不到其他的条件去做区分了。

对吧,所以这个时候你就要停,那个大家听这个课的时候,跟着我的思路来好吗,你们你们现在有疑问是正常的,因为你们第一次见到这个东西,等往后讲你的疑问就没了,所以你们可以先提问。

但是我不一定会马上解答你的问题好吧,所以记住了,第一种条件是说所有的韩剧都告诉你说,要去见他,第二种条件通常情况下是告诉你说,哎我所有条件都一模一样,这两个人的这两个人的条件完全都一模一样啊。

你说的没呃,我不好意思,我看到大家提问这个问题,但我们没有理解大家的意思是什么,第二条的属性取值相同,和第一条有什么区别,第一条告诉大家的是,我只要满足有钱,所有韩剧告诉你,只要满足有钱全都要满足。

有钱全都要满足,有钱全是它的属性,我不用考虑了,明白吗,就是这种终止条件,意思是说,如果今天韩韩剧里头告诉我大于30岁,我就不见了,我其他东西都不用看,明白吗,就是只要满足这样的属性。

满足这样的条件全都一模一样,结果全都一模一样,我就不需要去区分了,我这个时候就终结了,OK我有这个条件,一票否决,我就终结了,我不看去不去看有没有钱,不去看是不是公务员不用看了,你能力这么大。

我借你干嘛,OK所以这是第一个条件说的事情,第二个条件说的事情是,我把所有的属性全都取出来了,这些所有条件都一模一样,这个时候还是有时候见,有时候不见,他是不是没有办法再往下生长了呀,你要往下找找。

总要去找到一些不同的条件去做区分吧,要不就是这个高那个矮,所以你不你你去见高的,不去见矮的,那如果他都有钱对吧,他都都有钱,都年轻,都很高,都很帅,还是有些小姐姐不去见,有些小姐姐去见了。

这个时候你告诉我,你还能找到什么条件去做区分,你找不到了,所以这是第二个条件,告诉我们说所有样本所有属性上的取值都相同,我找不到属性,找不到其他的判定标准去区分它了,我说明白了吗,这是一和二的区别。

对有人总结的很,有同学总结的不错,一个意思是说我在这个条件下,所有标签都一样,二是我所有属性全用完了,或者说所有属性都一模一样,但是它的结果还是不一样,啊这这个叫什么OOOIS,这位同学不要太着急呃。

我没我还没有给大家讲到如何去做预估,我现在在讲什么时候停,至于停掉了之后选什么还没有讲到,不要着急好不好好吗,所以不要跳啊,就是大家稳一点啊,好的,所以我说清楚了吗,第一种情况和第二种情况。

我有我我给大家说清楚了吗,好那第三种情况是当前节点包含的样本即为空,就是呃就是没没有没有样本了,所以这种情况下你是没有办法去划分的。

所以记住了这个地方,当出现这种情况的时候啊,这个小姐姐看韩剧总结到这些情况的时候。

她就有心里有数了,就说OK这个看这个不看,或者说这个不能再分了啊,不能再区分了,请大家条件都一样好。

所以记住大家了解第一件事情是什么啊,就是这两件事情啊。

涨到什么时候停啊,已经知道了,涨到什么时候停,嗯对下面这这这页有点有点懵,好看的对吧啊,这个地方是从周志华老师的西瓜书里摘出来的,一段伪代码,听清楚啊,是一段伪代码,然后看代码大家都很头疼对吧。

所以我也不需要大家去看,我嘴里头框出来的一些东西,大家看清楚了,我框出来了一些东西,我框出来了一些东西,所以这个时候框出来的东西是,你,什么时候停。

同学说第三个终止条件没有看懂,三是没有输入数据啊,没错有同学说的对,就是你这个店里头有红色,有蓝色,有紫色的衣服,OK我要决定他买不买,本来是衣服是有这三种颜色的,今天紫色卖光了,不好意思。

我到这个地方去做分叉的时候,有三种颜色,紫色的,今天店里头卖光了就没有了,你不能甩这个东西就停掉了,这肯定肯定是没有的,然后另外两个你可以继续往下涨,OK没有对应的样本了。

然后大家往下看呢,这个地方是一段伪代码,伪代码呢其实那个大家要读也读得懂啊,大家要读是读得懂的,我就是把刚才的三个终止条件写到这,这是对应第一类的终止终止条件,这是对于第二类的终止条件。

这是对应第三类的终止条件,好这个我不给大家念,你们自己去对好,现在这里头有个我用红色加粗的部分,在这红色加粗加粗的部分,这个家最后说了一件事情,小姐今天得判断一下我,我到底现在最看重的是什么。

比如说你今天要在北京或者在上海买个房子,你手头上的钱有限,那你手头上的钱有限,肯定不能所有所有条件都满足,对吧哦,我要学区房,我要房子要大,我要防止新,我要防止这个采光好,户型好,交通便利啊。

哪来那么多钱,所以你钱有限的情况下,我要怎么样要取舍嘛对吧,所以你要举手的话,他就问你一件事情说,那你买这个房子,老哥你买这个房子,你最看重什么,你最看重什么对吧,什么样的东西是你完全接受不了的。

你看都不会看的,那有些人会说这个房子朝北的,完全不看,而有些人会说这个房子的年龄啊,这个房龄是他的房子,这个建造时间是在90年以前的,完全不会看,OK好,所以这个地方这个我用红色的这个底色加粗的。

这个部分是很重要的一个点,他告诉我们说,我必须要去决定,小姐姐现在去做这件事情,最关注的点是什么,当前最关注的点是什么,这是最重要的点,大家听清楚啊,一会儿我们会讲到三种决策树,这是决策树算法的核心。

你之所以会有三种不同的决策树,很大程度上是因为他们在做做这件事情的时候,有不同的方法,但他们都达到了这样一个目的,所以记清楚啊,终止条件我说完了,那如果他不终止,要怎么样,不终止的话,这棵树要涨怎么涨。

你得去判断你现在看重什么好。

我们来到这个问题,你现在看重什么,插播一点小小的数学知识啊,不要害怕,这个地方有一些公式,我要给大家,以比较直接的方式来给大家介绍一下,这个地方的数学公式,你见到的第一个概念叫做熵。

这个概念是一个物理概念,所以物理老师会告诉你说,整个宇宙是在朝着熵变大的方向去发展的好,这个东西听起来逼格就很高了对吧,那什么叫做商呢,其实啊一点也不高级,这个东西是一个一个度量标准。

这个东西信息上所谓的entropy,它度量呢就是一堆的样本,它的纯度纯度什么叫做纯度,没有杂质就纯了对吧,有不同的东西混在一起,它就不纯了对吗,所以它是用来衡量纯度的一个概念,然后这个时候一个指标。

这个时候呢大家先看怎么算,我一会给大家解释,假定当前的样本当中,集合当中第K类所占的比例是pk,听清楚啊,今天有一个蛋,这个蛋里头有三种颜色的球,分别是蓝色的,红色的和黄色的,好,我们举这样一个例子好。

所以这种小袋里头就有很多很多的球,他们有三种不同的颜色,蓝色红色和黄色,那个这句话的意思就是说我告诉你说,我的蓝色啊取值是对他的这个比例是P1啊,红色比例是P2,黄色黄色的比例是P3。

那大家告诉我这个西格玛P等于多少,西格玛I等于一到,不知道有多少类啊,假设它有N类,那一到N的这个PPI它应该等于多少,大家告诉我这个东西等于多少,你所有东西加在一起的比例当然是一啦,有问题吗。

没有问题啊,就是加在一起概率等于是一,好好问大家一个问题,问大家一个问题,哎我今天问你伸手进去摸球,然后我问你一个问题,我说哎小哥哥,你伸手进去摸这个球,你能告诉我你你你猜一下,你摸出来的是什么球吗。

然后我问你一下诶,如果你现在有你这三种颜色里头,有90%的球都是蓝色,你伸手进这个大眼睛去摸这个球,你会告诉我是什么颜色,你当然会告诉我是蓝色,因为有90%的球都是蓝色,我当然猜最多的那个了。

而且什么时候最不肯定啊,我问大家什么时候这个事情是最不肯定的,是不是三种球的,这个袋里头这三种球的数量一模一样,你你猜不出来,你没有办法去取一个最大的,你新手进去摸它就是一个随机的啊,我说的三种球啊。

不要和0。5没有关系啊,就是大家那个跟着我的节奏来,有三种球,那我应该是,那我应该是什么样,三种球都是一样多,1/3,对不对,如果他是1/3,我伸手进去摸,我现在就很很懵。

他跟我说小哥哥小哥哥现在这里头最,你你觉得摸出来的这个球概率最高的是什么球,我不知道,因为这三种球居然数量也一样,所以这个地方的信息熵度量的是一种啊,不纯度就是这个值越大,它的纯度越低,这个值越小。

它的纯度越高,那大家告诉我,这个信息熵在什么时候去取到它的最大值啊,什么时候我的纯度是最低,我的不确定度是最高的呀,听清楚我的描述啊,纯度月最低,不确定度最高,对没错,在你每个类别的比例都一样的时候。

哎大家大家高中的时候就学过不等式对吧,我问大家那个不等式哦,不等式它的它的它的这个不等式的,它的一般什么时候取到等号啊,不准是他什么时候取到等号啊,通常情况下是相等的时候对吧,是那几个东西相等的时候。

比如说A等于B等于C,对不对,所以这个地方的entropy取到了极值,取到最大值的时候,也是这个地方的pk相等的时候,能能明白我意思吗,如果这个东西衡量的是一个不,一个一个混乱程度。

或者说它的一个不纯度的话,他什么时候取到最大,什么时候最混乱,是不是所有的pk都相等,是不是所有的pk都相等,是不是伸手尽力了,带头去摸球,所有球队所有颜色的球数量相等,有问题吗,这个地方有问题吗。

没有问题,对不对,好记住了,记住了,有这样一个概念,它叫做安全比叫做细,它叫做安全比叫做细,它叫做安全比叫做细,他这样去算,他这样去算这个东西在所有的pk相等的时候,取到的值是最大的。

这个时候你最不肯定最不肯定。

你完全你完全,你完全不知道自己摸出来的是什么样的颜色,这个东西叫做信息熵,好记住了,信息熵描述的是什么。

是不纯度,就是他描述的是它的一个不纯的程度。

所以这个东西越大,它的不纯度越高,它越小,它的不纯度越低,它的纯度越高,OK听清楚了啊,那你想决策树如果要去完成一个判断。

我是希望我的肯定度越来越高,对不对,而我是希望这棵树,你你希望这个规则产出以后,我们更肯定一点点,我能更肯定一点点有问题吗,啊我我说一下,我说一下,这个地方表示的是它表示的是Y的类别数量,听清楚啊。

这个东西不是Y的绝对值啊,它是Y的类别数量,它是一个标记,它表示我有多少种不同的label,有问题吗,所以K等于一,但有多少种不同的label,比如说红黄蓝是三种,所以就是从1~3。

这不是什么Y的绝对值啊,这个绝对值没有关系,这个东西就是一个标记,它表示有多少种不同的label,好收到就就就点到这好吧,然后唉你想想啊,哎为什么我需要机器学习的模型啊,机器学习模型是为了干嘛呀。

为了做预估位,预估是为了为了怎么样,为了提前去拿到一个可以去猜出来的一个答案,或者是提前去预估出来一个答案,所以如果你这个模型构建的足够好,是不是去把我的这个地方的不确定度,降得足够低啊。

这句话有问题吗,你的机器学习,你想想机器学习这些模型的本,他希望做什么样的事情啊,他是不是希望去让我提前拿到一个,预估的结果呀,是不是提前拿到一个预估的结果呀,是不是让我未来的不确定性尽量的低啊。

所以我希望这棵树在生长的过程当中,能让现在我对于我训练的数据。

它的不确定度越低越好,你最好能让我现在很肯定的,就根据你这个规则就知道这是哪一类,根据另外一个规则就知道是另外一类,所以这是机器学习模型想要做到的事情。

他想让这个不纯度往下降,他想让这个不纯度往下降,他想让这个纯度往上升,他想让我去做预估的时候,这个事情足够的肯定,所以这个时候我有了一个东西去度量,我现在的不确定度,度量我现在的不纯度对啊。

我现在的不纯度,我是不是在每一次生长的时候。

我希望我基于这个规则,可以让这个不纯度往下降啊,好来这个地方又有公式好,不要怕公式,我给大家解释一下,他说了一件事情,他说嗯这样这样这样现在电商里头,就是现在电商里面有这样一些衣服的颜色啊。

衣服颜色分别是什么呢,OK分别是这个这个啊黄色啊,蓝色,哎呦那大家等我,大家等我半分钟好不好,等等我半分钟好吧,现在OK了是吗,好的可能是直播平台的问题好吗,好所以我接着往下讲了。

记得我刚才记得我刚才说什么吗,我刚才说到一个东西叫做不纯度,叫做不确定性,不纯度机器学习模型,为了干嘛把不确定性往下降,我希望这个东西越来越纯,我希望越来越肯定,所以我们来看看怎么做。

假设我现在有一个属性取值叫做红黄蓝好,所以一个小姐姐来买衣服了啊,红黄蓝啊,红黄蓝号那个小姐姐,一个小姐姐来买衣服了,诶诶那个如果我现在不确定这件衣服颜色啊,我就告诉你说有一件这样的衣服。

那肯定是有一些小姐姐买了,有些小姐姐没有买嘛对吧,所以呢哎这个地方呢,就是在我没有根据这个属性往下生长之前,大家听清楚啊,肯定是对于这件衣服呢,肯定是有些有些小姐姐买了,有些小姐姐没有买。

所以这个时候他是不是在这个数据集上,我可以基于买和不买计算出来一个不确定度啊,不纯度啊,是不是可以计算出来一个信息熵啊,告诉我这个有问题吗,比如说有十个小姐姐过来,这十个小姐姐当中有啊。

那个四个小姐姐买了,有六个小姐姐没有买,是不是可以基于这个东西去计算出来,一个不确定性啊,有问题吗,没问题对吧好,那如果现在新加了颜色,颜色有三个分支,所以这个地方是蓝色,这个地方是红色啊。

衣服的颜色啊,这个地方是黄色,OK那这些小姐姐是不是可以根据这些衣服啊,就是她最后有没有买件衣服,衣和衣服的颜色有关系吧,所以我根据衣服是不是颜色,是不是可以把它分到几个不同的袋里头啊。

我是不是可以把它分到几个不同的袋里头啊,所以这个地方有几个不同的袋里面的话,每个袋里头都会有一些样本,但是因为我把我按照这个东西去区分了,所以它的肯定度有可能会变高对吗,所以这个时候这个东西就是。

我在基于现在的这个属性取值,划分之前的这个地方,它的交叉熵,而我说也不是交叉商,他的信息熵,他的信息熵是划分以前的信息熵,后面这个东西是什么呢,对后面这个东西是分成的,每个代理头氢分成了三个蛋。

每个蛋里头它的不确定性,但是因为我的样本量减少了呀,所以我要给他做一个加权,我在前面这个地方不是绝对值,我重复一遍,这个东西不是绝对值,这个东西表示这个集合的数量,这个集合的数量。

我总共会有多少个小姐姐去买这件衣服啊,总共有十个小姐姐。

我记忆不同颜色区分以后会有多少个小姐姐,对,在这里头也许是啊,我随便举个例子。

也许它是5+3加二。

所以这个东西是数量好,所以我在我给大家说一下,这个事情实际上是什么样的呢,是说诶我在做划分之前,我可以计算出来一个不确定度。

不纯度我可以确定出来的不纯度,我在划分以后,我基于某一个东西去做判断了,我基于这个人的年龄大小,我去判断一下我要不要去要不要去和他相亲,我记得他是不是有钱,我去判断一下他是不是要相亲。

所以这个时候它会被分到不同的同类,而每个同类里头都可以算出来一个不纯度,这个时候我会用它这个桶中的数量比例,数量比例去做一个加权,我用这个东西去衡量说,当我用这个离散的属性去做区分的时候。

我的不确定度有没有往下降,我的不纯度有没有再往下降,降了多少啊,所以听懵了是吧。

听懵了是吧,好没关系,听懵了,我们来找个例子,这个地方的例子来源于周志华老师的机器学习,西瓜书的数据集,好的,所以这个问题很简单,我们最终的目标是为了去判断一个西瓜,到底是好西瓜还是坏西瓜。

最开始啊把西瓜什么各种都把西瓜包起来,你不准你去碰,不准你去看我,我只知道最终的结果诶是这样的好,最终的结果呢有有总共会有17个西瓜,这实习西瓜当中有八个是好西瓜,有九个是坏西瓜。

哎你告诉我能算他的信息商吗,就是如果我现在给你17个西瓜,这17个西瓜当中有八个九八个好西瓜,九个烂西瓜,然后把它一起放到这个袋里头,让去摸,你能知道你的不纯度是多少吗。

有公式的嘛,带进去算就好了,所以往里面一代是不是就算出来,信息上长这样啊,0。998,这个值挺大的,你想一想为什么挺大的,八个好瓜,九个坏瓜差不多呢对吧,一半一半一半一半,对吧是吗是吗。

是不是有一半一半,所以这种情况下不确定度肯定很高啊,所以这个0。998,实际上就代表说不确定度还挺高的,诶,那我能不能去找一些其他东西来做,做一些判断的,所以他就找了,他说前面不是有些信息吗。

哎那那不如取下颜色好了,把颜色取过来总行吧,所以他把颜色调过来了,他就把颜色调过来,他一看。

他说啊那个有多少种不同的颜色啊,好我来看一下,有青绿,有乌黑,有浅白,好,好像就是三种,诶我记得这个颜色色泽等于青绿和乌黑和浅白。

我可不可以把这些西瓜分到三个袋里呀,我可不可以现在把它们分到不同的桶里头啊,我找三个桶过来,我把这些西瓜按照颜色分到不同的桶里,可不可以,OK所以你把它分到不同的桶里,我问大家一下,你分到不同的桶里。

是不是桶里还是有好瓜和坏瓜呀,对啊,所以这个时候我们来看一下这个地方。

盐分为亲密的瓜,有这么六个瓜,这六个瓜里头有三个好瓜,三个坏瓜,所以我算了一下,在第一个桶里面,它的不确定度是一在第二个桶里面呢,在颜色是乌黑的桶里面呢,在颜色是乌黑的桶里头,我算了一遍,它是0。

918,在颜色为浅白的,同理呢对颜色为浅白,同理我算了一下,它的大小是0。722,所以我基于刚才的公式去算一下,大家看到的这个地方,0。998,0。99998,实际上是原来的不确定度或者原来的不纯度。

听清楚啊,原来的不纯度,那我现在后面这个东西呢,对后面这东西是我现在的不纯度,就是我基于颜色已经分到三个桶里面,我积分到三个桶里面以后,我这三个桶里面的数据,我算出来的一个平均的近似的。

平均的加权平均的这样的一个不确定度,是不是不确定度降了多少啊,你看他说老师老师这个我明白了,他不确定度降了0。0。109呗,对呀不确定度降了0。109啊,哎这是唯一的属性吗,这不是唯一的属性啊。

还有好多其他的属性呢,好那我把其他属性拿过来,我是不是我在前面这个数据集当中。

是不是还有这个属性啊,是不是还有敲的声音啊,是不是还有纹理啊,是不是还有起步,是不是还有触感呢,对我把每个都拿过来算一遍。

按照一模一样的方式,大家告诉我有多少种取值,我就把它分到几个桶里,我按照一模一样的方式去算,分桶之前的不确定度和分桶之后的不确定度,我去看看这个不确定度下降了多少,这个东西能够提供多少的信息。

让这个不确定度下降,这是决策树想做的事情,所以你用同样的方式,你按照耕地去做风筒,你按照敲的声音去做风筒,你按照纹理做风筒,你按照起步做风筒,你按照触感去做风筒,他都可以算出来一个不确定度,下降的程度。

你发现哪个下降的最大呀,哪个下降的最大,纹理下降的最大嘛,所以是不是基于纹理先去做区分呢,是不是基于纹理先去做区分呢,OK好啊,所以记清楚了,这个时候呢,你的你的这些西瓜已经被分到了三个桶里。

你的西瓜已经被分到了三个桶里,结束了吗,没有结束,继续往下长。

分到左边这个桶里头的西瓜,可不可以再基于其他的东西去做区分,用一模一样的方式啊。

听清楚啊,你这棵树涨到这一步以后,这个又是一个数据集合,这个数据集合还是不确定还是有好瓜还是坏瓜,所以再往下找,接着去判断,到底哪个东西能让我现在这个桶里头的西瓜,能够不确定度下降。

最多我再去扫描一遍这个地方的耕地,敲声起步,触感和色泽,所以大家能感受到这棵树是怎么生长的吗,我说清楚它的过程了吗,它每一次分桶,每一次的生长,都是希望让我现在的不确定度下降,最多朝着这个方向去找。

好我希望大家没有问题,OK好,所以这棵树就会一直往下涨,涨到什么时候停,涨到什么时候停,是不是说终止条件1231233个终止条件,是不是说只要满足任何一个终止条件就停掉,它就停掉它,然后给一个结论。

OK好好。

这个这个很伟大的模型呢。

或者说这个很伟大的这个决策决策树的模型呢,叫做IP3啊,叫做D3对,它是一个递归的,没错它是一个递归的这个算法啊,就D3K好吧,他这个id3记住了ID3是基于什么,是基于信息增益,记住了啊。

这个东西是会会考考试,那个面试的时候会问的啊,而第三是基于信息增益去挑我最优的划分属性,去挑哪个条件对我现在而言是最重要的,记清楚了。

好诶诶这个信息分析有它的问题哦,信息分析有他的问题啊,为什么会有他的问题啊,我给大家举个例子,班上有45位同学,但这个45的同学,每个同学都会有一个学号,一号2号三号,一直到45号。

老师今天说哎呀我想研究一下,我想研究一下这个呃,这些同学到底成绩好还是不好啊,有没有办法呀,你说老师老师我知道用决策树呗,然后决策树的话,老师说,那那就把他的这些所有的因素都拿出来吧。

每天花多长时间学习,对吧啊,父母亲是什么样的学历状况,OK然后平时的这个听讲的这个程度等等,都拿进来诶,他不小心拿了一个另外一个东西进来,叫做学号,他把学号拿进来了。

哎大家想一想学号有多少种不同的取值啊,学号有多少种不同的取值啊,45种对吧,我分45个叉,我分到45个桶里头,每个桶里面有多少个同学,每个桶里面有多少个同学,你告诉我,每个桶里面一个同学对吧。

分45个差,每个每个桶里面一个同学,一个同学,我还不好判断它好不好吗,我直接告诉你答案了,我直接告诉你说,43号同学是一个超级牛逼的一个学霸啊,2号同学是一个学渣哎,但拜托这个东西有用吗。

你新来一个同学,他的学号是46诶,46往哪走啊,他没有用吧,所以这是这是T3的问题,D3的问题就是说他他对于这种有特别多取值,特别的取值的这种属性有特别强的偏好,因为你想一想,分叉分的越多。

他是不是越开心,每个桶里面的数量越少吧,因为少他有可能越肯定嘛,所以他特别喜欢去挑这种数目非常非常多,分叉非常非常多的这种属性,这是它的一个问题,IT3刚才用信息增益就有这个问题,所以怎么办呢。

他思考了一下,他说这个根本原因,说这个时候有好多分叉的,有好多分叉的,所以有好多分叉,那有好多分叉,带来的这个信息增益的绝对值很大,绝对值很大,绝对值很大,我们说的绝对值是不可靠的对吧。

就是我们我们昨天给大家讲到课里头,我说我用线性回归加阈值,我们阈值定不下来的,所以我一直定不下来的时候,我怎么办呢,绝对绝对值没有用的时候用相对值呗,所以他这个地方给了一个分母,他给了一个分母,诶。

你刚才哪个桶里面一个同学啊,你45个学号,45个桶里头,每个桶里头一个同学啊,哎我问你哦,这个分母是什么,大家告诉大家,现在告诉我这个分母是什么啊,这个这个不是绝对值啊,再说一遍,这不是铜里面的数量。

你们告诉我你们现在看的这个IVA,你们告诉我这个东西是什么,我们记得那个公式吗,负的sigma啊,p log p这个东西叫什么,这个是什么的信息商,这个是不是我刚才这个属性的信息熵啊,是不是我这个属性。

我基于这个属性去看它的分散程度,它的一个伤啊,哎你告诉我刚才分45个分支,这个值有多大,哎45种颜色啊,进去都一模一样啊,我进去伸手进去摸球,它的概率它的不确定度有多高啊,高的很,你别看你的分子大啊。

你别告诉我说你别告诉我说你的分子大没有用,我的分母也大,我的分母也大,所以这是叫做信息增益,听明白了吗,信息增益加了一个分母,这个分母呢会随着你的分叉多啊,我直观的这样说啊,这个表述是不精准的。

但但但对大家的理解可能是有帮助的,就是它分叉多的情况下,它的分母也多,把分母也大,但分母也大,有问题吗,所以这个地方的grand ratio这个信息分辨率,他加了一个分母,他说不好意思,你啊。

取那个信息增益大的不够,我得看一看,原来这个属性有多分散,原来这个属性有多分散,OK所以记住啊,这个地方是第二种决策树的模型叫做C4。5,C4。5和D3很像,差别就在于说他选了信息增益率。

他选了信息增益率去作为我的一个判定的,作为我一个特征,我的属性选择的一个判定标准,属性选择的一个判定标准好,我希望我给大家说清楚了,所以到目前为止,我们学了两种不同的角色,数一组叫做ID3。

一组叫做C4。5,他们都会往下涨,涨到什么时候对这个条件吗,123,那怎么涨去挑最重要的属性,怎么去挑最重要的属性。

信息分析信息分辨率好往下走,这是唯一的思路吗,当然不是,这个地方有另外一个有另外一个数学的指标,叫做DEMIDEX,基因系数,基尼指数这个东西又来数学公式了,看着就烦对吧,没关系。

我给大家解释一下这个是怎么得到的,诶我还问大家啊,这个地方这个地方有小球啊,有两种颜色的小球,黑和白的小球,黑白啊,黑和白色小球诶,我怎么去判断它的纯度怎么样啊。

就是因为有个袋袋里头有有黑色和白色两种球,然后伸手进去摸,对吧啊,伸那个伸手不见五指啊,然后你看不到,所以你进你进去,你进去去去摸,你进去不哎,这个时候我除掉我刚才说的方式,去衡量它的纯度。

我有没有其他的方式,所以这DINDEX从你他做了一件这样的事情,大家仔细听啊,他做了一件这样的事情,他伸手进去,摸了一个球,他伸手进去摸了一个球,他又伸手进去摸了一个球,他他在小本本上记下来了。

他摸了第一个球,大家听清楚了,他摸了第一个球,他在小本本上记录一下,说OK这是第一种颜色,他摸到第二个球,他把他放回去了,他把他放回去了,他又摸到第二个球,他摸出来以后,他又记录一下这个颜色叫做C2诶。

我问大家那个纯度高的时候,摸到我摸出来的这两个球,颜色一致的概率是不是会很高啊,如果我全是黑色的球,我连摸两次,我摸下球是不是都是黑色啊,有问题吗,什么时候我摸出来的球。

它的颜色不一致的可能性会比较高啊,哎是不是说我这里头两种颜色都一样,那我去约的时候都是1/2的,可能是不是这个时候不一致的概率就高了,有问题吗,好没有问题好,所以我们再来看看公式。

告诉我告诉我取到DK类的概率是多少,取到第K类的概率是多少,是不是pk,我摸一个球的概率是不是pk嗯,我再去摸第二次概率是多少,是不是还是pk,我是不是用一减去摸到所有摸出来的两次。

都是黑球和摸出来的两次都是白球的概率啊,这个公式看懂了吗,这个公式我这么讲,看懂了吗,是不是相当于我摸两次全是黑球,可以摸两次全是白球的概率,我要把它剪掉,我要用一减掉,它是不是要用一减掉。

西格玛所有的不同的类别,以及两次摸出来的都是这个类别的概率,那两次摸出来的就是不一样的,对不对,好没问题好,很聪明啊,大家都很聪明,所以你们理解了,说哎这个东西好像也能衡量它不它的这个纯度,对不对。

好像也是可以去衡量它是纯度的啊,它的这个不纯度的sorry,他的不纯度的OK好,所以我是不是要去找到不纯度最小的属性啊,我是不是需要去找到使得划分以后,所以你看数学这个东西很神奇对吧。

他换了一个角度去解释这个问题,他换了一个角度去解释这个问题,但是你发现它依旧是合理的,你想这个事情你说太合理了,这个事情对吧,我连摸球都有这么多种这么多种不同的玩法,好接着往下走。

这个地方诞生的这个算法叫做cards cut,是一种二叉树,听清楚啊,cut和D3和C4。5的C4。5的差别在于,它是一个二叉树,它是二叉树,然后这个二叉树它用于选择属性。

选择现代划分属性的方法叫做他的不是方法,它的评估的指标叫做GUIDEX,看你翻译啊,这个东西是偶然吗,他是偶然吗,他不是偶然,数学真的是一个很神奇的东西哦。

所以如果大家来看一下负的PROGP,p log p啊,所以这个地方的负log p4p log p4的log p,它可以做一个什么,泰勒展开它的菜单展开约等于一减X,把高阶无穷小忽略掉。

把高阶无穷小忽略掉,它只只保留一阶的,所以这个时候约等于一减X,这个公式我不想多说了,泰勒展开,我真的不想多说,他又展开了,不想多说,那个有有同学没有看前面的数学课的吗,为什么要补那个数学课。

就是因为在后面的部分,我会涉及到一些数学知识点,但我并不想把这个课讲成一个数学课,所以大家最好有一点点的数学基础,包括微积分,包括这个地方的啊,后面的一些矩阵相关的一些知识。

所以这个地方就用到了一个数学的知识,叫做泰勒展开,叫做泰勒展开,所以如果你作为一个泰勒展开,你发现什么这俩货其实是一模一样的,你你不要以为是什么,DINDEX和和,现在这个我的这个信息商去去做这个呃。

是这个这个取法要求的这个取法是一致的,它是一种偶然,它不是偶然,它在数学上证明,这两个东西就是约等于基本上就是一致的,所以这个东西你用泰勒一展开,泰勒展开就变成这个。

我再给大家写一下这个东西K等于一到大K啊,它相当于pk对不对,减去pk的平方对不对,好这个东西大家告诉我,K等于一取到小,K等于一取到大k pk这个东西等于什么,这个东西等于什么,这个东西等于什么。

大家告诉我,对这个东西等于一,所以发现了吗,这俩玩意儿长得就是一模一样的,我又他又展开以后,发现他就是约的鱼的,发现了吗,这个东西是什么啊,这个东西是什么,这个东西是不是give me dex啊。

这个东西是什么啊,这个东西是不是信息熵啊,你在数学上证明了这俩玩意儿,这两个玩意儿,其实就是一样的对吧,他们两个趋势完全一样吧,对不对,好吧好吧,所以截止目前为止了解了三种不同的决策树,叫做D3C4。

5和cut,然后你发现说这三货,这仨货好像用于最优属性划分的时候,评估的准则是不一样的,但是都好合理啊,然后你在数学上找到了一个方式,就把它们统一起来,你说就是这样的。

这个东西本来就是趋势就是一样的好呃。

学过逻辑回归对吧,学过逻辑回归对吧,好我就回归输出的是一个概率P对不对,好P是一个0~1之间的一个一个概率对吧,所以我们告诉大家说,我用一个CMODE可以把这个东西叫变变成这样。

我用这个mod可以把概率变成这样,唉那你讲一下决策树是什么呀,对呀类比一下哦,决策树是这样的哦,决策树可不像你那么平滑,决策树就是个跳票哦,今天是一个小叔叔来找我,今天这是一个小叔叔去找我相亲。

我就不去哦,所以我就直接跳成零哦,如果今天是一个这个这个什么样的人找我去,我有可能就会去哦,高富帅哦,我就是一哦,所以这个地方呢它就是一个跳变啊,这是一个平滑的方式,我给大家对比一下。

因为我们刚学过逻辑回归,你学了这个模型,所以我就用它做对比啊。

这是从二分类的视角去看一下cart呃,有有有有同学是学那个电子或者通信出身的吗,有同学是学电子或者通信出身的吗,那这个地方呢针对于我们的这个问题,你有其他的一些解释。

比如说它是可以从信息论的角度来来解释的,所以这个地方呢啊这个没关系啊,这个只是我给大家拓展一下知识,我给大家拓展一下知识,所以那个你的你的信源经过一个发射器,发射信号以后,经过信道接收器以后去做解码啊。

达到限速,OK所以这个地方如果大家去看你的X你的特征,你的标签实际上对应的它会有对应啊。

所以大家可以看后面它,它实际上是有一些对应的啊,这个是一个拓展,没有关系,这个部分呢不影响大家理解这个模型,只是我为了让大家对这个理解,对这个模型的理解更加的透彻,所以我做了一个类比这个东西呃。

我不给大家,我会给大家完全展开来说,等到大家积累了一些知识之后,你回来看,你会发现这个地方说的东西是有道理的,你发现所有的这些知识他都是有关联的,它都是可以类比的,它很像。

OK总结一下总结一下总结一下啊。

那个我们学了三种不同的决策树,我我再强调一遍,决策树的核心是,第一这棵树长什么样,大家已经知道了啊,就是它是一个这种规则式的往下生长,然后去拿到结果的这样的模型,第二这棵树什么时候停。

记清楚了什么时候停,有三种不同的条件,一定得记清楚什么时候停,第三你这棵树生长的过程当中,每个时间点我最关注的东西到底是什么,我最关注的当前最关注的属性到底是什么,就是这样一个东西。

它的不同诞生了三种不同的决策树,应该说那个有其他的区别啊,但是这是最大的区别,这是最大的区别,所以我们有了第三,我们有了C4。5,我们有了cut,我们希望通过信息增益这样的方式去衡量。

什么样的东西能让它变得更纯,能让我现在的肯定度更高啊,所以我选择了信息增益,得到了T3,我选择信息增益,我得到了B3,我选择了信息分辨率,我得到C4。5,我选择了这个地方的gm dex,我得到了cut。

OK相信大家都有一些概念了对吧,好很好啊,然后我再讲一遍,我再讲一个问题,然后我们休息几分钟,我再给大家讲后面的部分好吧,有同学刚才提到的一个点说,老师老师你你你这没讲清楚啊,你这句话没讲清楚啊。

那个那个你这个地方谁告诉你,说一定是离散的属性啊,哎今天如果有一个有一个字段,它是一个比如说销量这个东西是个连续值啊,连续值你怎么去分叉呀,哎连续值怎么去分叉呀,你没讲诶,对我没讲。

所以我现在要给大家讲啊,这个事情是这样的,那个要去相亲对吧,来了一群小哥哥,好小哥哥里头有一个有个字段叫做edge啊,很可怕,AJ哦,哎A级,可能有些同学说哎,有些同学说老师老师你这个A级这个东西哎。

其实东西很好办的,年龄人最小是一岁,最大是那个100,所以我就假定是这样啊,可能100多岁吧,相亲不可能有100岁啊,那相亲就更小,更更那个我们更约束一下,我们约束到那个呃,比如说22岁吧。

我们约束一下,22岁到到这个这个60岁好不好,22岁到60岁啊,所以在这样的一个区间内,那他那你告诉我邵师二十二十二岁到60岁,不就这么几个曲师吗,你每个取值当一个分叉不就好了吗,可是可以。

但是总觉得有点怪怪的,呃其实我们实际在做决策的时候,好像不是因为一个岁数而去对吧,我是因为一段岁数,他好像是在这个小哥哥是在24岁到这个呃,比如说28岁之间诶,我觉得挺好的,OK啊。

或者说24岁到30岁之间,我觉得挺好的,那可能大于30岁,我觉得说哦不OK了,所以好像不是单个的年龄吧,好像是一个对吧,这个就尴尬了,所以怎么办呢,啊大家听清楚怎么办啊,年龄是一个字段。

首先啊听清楚年龄是一个属性,是一个字段啊,先明确一下啊,年龄是一个属性,一个字段好,先明确这样一个东西,我把所有小哥哥找过来,我把所有小哥哥找过来,我把所有小哥哥从年龄从小到大排列,OK这是一号小哥哥。

他年龄只有21岁,这是2号小哥哥,他的年龄有呃,这个23岁啊,这是3号小哥哥和4号小哥哥,小哥哥他们年龄分别是20,都是26岁,我在这上面呢,就我就把这个年龄列到一条数轴上,然后怎么办呢,哎。

呃你只能处理离散值对吧,你刚才告诉我说你只能处理离散值对吧,OK那我就我就用同样的方式来处理一下了,所以我在21~23之间取一个值好不好,我在这里取一个值,我我另一个另一个栏杆在这。

我在这个地方再取一个值,我在这里取个值,我在另一个栏杆,我在这个地方再取一个值,我再立一个栏杆好,每两个点之间我都取一个值,我去另一个另一个这个泥巴,另一个这个柱子立在这,然后我怎么办呢,可以这样哦。

这个时候小于哎,比如说这个地方是22,小于22,是一个分支,大于22,是一个分支哦,唉所以这个地方有一个字段,叫做是否小于22,这个时候是不是一个类别的属性,大家告诉我是否小于22。

是不是一个类别的属性,告诉我是否小于22,是不是一个类别性的属性,哎他就两个结果哎,要不就小压杀,要不就大压杀了,是不是一个类别性,是不是一个离散的属性,哎这个这个是不是小于24或者小于25。

是一个分支,大于25是一个分支,别着急啊,我在讲着呢,怎么去分段,我在讲啊,OK我刚才给大家强调了一个问题,我说我说age它是一个属性,听清楚啊,age是一个属性,但是我这个处理把拉成了很多个属性。

听清楚啊,第一个属性叫做是否小于22,第二个属性叫做是否小于25,第三个24啊,是是否小小于24啊,第三个属性叫做是否小于,比如说啊27,所以我把年龄由一个连续值的属性,分拆成了若干个二值属性。

有问题吗,这个分之二值属性的值我怎么得到的,我是不是任取两个连续值的点在中间,在这个数轴的中间去取到一个东西,所以请大家把你现在的想法变一变,你不是拿着年龄这样一个属性去做选择啦。

你是拿了一堆和年龄相关的,这样的离散的属性去做选择啦,所以这个时候是不是变成我要从这个属性,这个属性,这个属性当中去挑出来最可靠的属性啊,是不是回到了刚才那个问题啊,告诉我你们听懂了吗,我说明白了吗。

我把一个连续值的年龄变成了很多个零散的,零散的这样的二分的属性,二只属性,然后我对这一堆的二只属性用同样的方式去选,我把每一个都当做不同的属性去做选择,明白了吗,好啊,还有个问题啊。

我知道我知道有些同学会问题说,老师老师哎,你刚才还说24岁到28岁呢,你这个地方只能小于28,大于28,哪来的24~28呀,哪还当是死的是吧,诶你这本书要涨价,你这棵树现在长了左分支。

你说是小于28岁的,小于28岁的,你确定他后面不会再长出来一个分支,是大于啊那个24岁吗,你确定他不会再长出来一个分支,是大于24岁吗,这就是年龄段就出现了,听明白我的意思了吗。

这些属性是可以重复被选择的,他在下一轮的时候,他还是会扫描这些属性,所以这个年龄段是怎么来的,年龄段是这样来的,你先判断来说小于28这个最有用,然后到小于28以后,你又扫了一遍,发现说乐趣大于24岁。

这个东西也有用,所以你就把它长出来了,所以这条分支就变成了小于大于24,小于28,听明白了吗,你要的段就出现了,所以我说明白了吗,好诶有个问题啊,同学有同学说,老师老师我听明白了,我听明白了。

但是那个呃那个那个感觉计算量好大呀,感觉计算量好大呀,哎但是那个你知道这些属性之间的选择,它是不相关的吧,我可以并行去做计算的吧,所以明白我的意思了吗,唉我干嘛要去等另外一个算完,我再算呢。

我另外有16个和我同时跑着呗,OK好,所以所以大概这么个意思啊,我我我就说到这儿,然后那个咱们休息5分钟,我们休息5分钟,一会回来,我给大家讲后面的部分,好吧好,呃我来回答几个问题啊,大家听好了。

大家大家先不要先不要刷屏,挺好,我给大家解释一下问题,第一位同学问到说,是不是只有在做决策树回归的时候,才会将连续值这样做,不是你今天去不去相亲,你就不看年龄了吗,年龄就是一个连续值。

做分类的时候一样要用数值型的属性好,我们就问第二个问题,刚才有同学说老师老师你没有讲,怎么去确定这个分界啊,哎22~60是不是要取38个属性啊,NO不是听懂听清楚啊,我一开始就给大家说,我列一条数轴。

为什么要列数轴,我要去看一看我有哪些取值,如果今天你的数据集当中只有22岁,23,26岁和60岁三种取值,我we啊,或者说可以更多一点了,就是不是每隔一岁都有取值的话,为什么要取这38个属性啊。

所以他正确的做法是什么样的,我给大家说一遍啊,我放慢语速说一遍,我希望大家能听明白,我把我整个数据集取过来,我拉了一条数轴,我把我整个数据集上出现过的年龄,从小到大排在这条数轴上。

所以我把我出现过的年龄从小到大排到数轴上,我在任意两个相邻的年龄之间取得它的均值,去作为在它的中间这个均值去作为它的分界点,听明白了吗,大家对于分段对于这个地方的切分的阈值,切分的这个值还有疑问吗。

不一定是38个候选点啊,因为你22岁到60岁之间,并不一定每个年龄都会有取值,所以我拉了一条数轴,把有年龄的值标在上面,在任意的两个连续的段中间,取它的均值作为切分点,还有问题吗,这是分界值的取法。

说明白吗,好嗯其他的问题回头再说。

我们先往下走好了,大家心心念念的回归出来了,呃,决策树这么这么牛逼的模型只能做分类,整个分类太可惜了吧,那不如用它来做一下回归了,所以回归怎么做呢,回归是这样的,呃,这个地方有个例子,在这个例子当中呢。

我要根据一个运动员的从业年限和表现,去问一下这货值多少钱对吧,你知道很多球员踢俱乐部,那他比如说转会或者什么样,他值多少钱,你肯定要根据他的这个呃这个年龄啊,或者是他的这个表现状况啊,去判断一下。

比如说那个C罗啊,大家看他年龄其实已经超过了,大家一般情况下认为最佳的这个年龄了对吧,T嗯最佳的这个踢球踢足球的这个年龄了,但是他表现依旧很好对吧,所以这个时候呢。

我假设我要通过那个从业年限和表现两个维度,去预估他的工资的高低,我把它列到这个上面,然后在这个上面呢大家可以看到有两种不同,有不同的颜色啊,这个地方的那个深色表示说这个地方的深色。

表示说这个这个地方的深色或者暖色调,表示说很高的收入,冷色调表示说很低的收入,所以大家看到的是诶从业年限比较低,同时表现也不太好的钱就很少啊,从业年限不错,然后表现很好的这些啊。

这些暖色调他实际上他的工资就很高对吧,就是红色和黄色就表示高收入啊,然后蓝色和绿色就表示低收入啊。

这样哎先别管它怎么来的,大家先别管它怎么来的嗯,我们假设有这样的一棵树,这棵树是这样的年龄,从业的年限小于45,四点5年的时候,小于四点5年的时候,全都预估成5。11,大于45年呢,我要再做个判断。

判断一下他的表现,如果他的某一个积分小于117。5,我认为他的工资应该是这样的,如果他的年龄,他的他的表现,或者他积分是大于117。5,我认为是这样的,决策树最妙的地方就在于说,如果大家去看一看。

这个地方的这样的一个卷回归数,你仔细去看一下这样的一颗回归数,你会发现它实际上是在做什么样的事情啊,它实际上是不是在做这样的事情啊,去把整个平面切分成了三个区域,大家看一下三个region。

这是第一个region,这是第二个region,这是第三个region,告诉我你们看得明白这个东西吗,是不是年限小于4。5的都在这一侧有问题吗,市值大于4。5,要看看表现,表现好的,在这表现不好的。

在这,告诉我有问题吗,所以大家记住一件事情,大家记住一件事情呃,决策树这种模型啊,它有它自己很独特的地方,还有他自己很独特的地方,这种很独特的地方就在于说,如果说如果说逻辑回归是产出一条决策边界。

去完成分类,回决策树做什么,不管是回归数还是分类数啊,听清楚,不管是回归数还是分类数,就是你拿起一把刀垂直于坐标轴去砍一刀,再垂直于坐标轴再砍一刀,把整个空间砍成一堆的小矩形,能理解我说的意思吗。

回想一下刚才小于30岁和大于30岁,是不是在年龄这个字段上,拿起那把刀,沿着30那个轴砍下去的那一刀,明白我说的意思吗,所以决策树是一种很妙的模型,他做的事情是他不断的对这个空间去做细分。

他拿起那把刀垂直于坐标轴砍这么一刀,觉得不够砍的再去补一刀,垂直于另外一个坐标轴,或者再垂直于某个坐标轴再砍一刀,好,你先知道这个东西如何去做预估,以及它的物理含义是什么,我们再往下看。

有人就会说老师老师我知道这个东西长这样了,告诉我吧,怎么长,告诉我这个这个树怎么长出来的吧。

OK好呃,这是一个回归类的问题,所以回归类的问题呢,预测的结果一定是一个连续值,特征向量是这样的,我有很多个维度,X1这个维度X2这个维度X3,这个维度一直到XP这样一个维度对吧。

所以回归数的两个步骤是什么呢,回归数的两个步骤是说,我把整个空间切成这个没有重叠的区域,我拿起那把刀咔咔咔一顿砍,就只能垂直于坐标轴砍,不能斜着砍,呃,我们认为这个地方的决策树啊。

我们常常讲到的决策树是不可以斜着砍的,它一定是垂直于坐标轴一刀一刀的砍,所以改完了以后会生成N个区域。

哎你说N个区域里头会有不同的取值对吧,哎这个区域里面有不好的取值呢,我我怎么去做预估啊,我问大家,我问大家,我问大家一个很有意思的问题啊,就是哎我现在我现在有ABCDEFG,巴拉巴拉巴拉这样一堆的数。

我我要去找到一个数,这个数据和这一堆数的啊,这个均方误差这样的和是最小的,我取我取多少啊,你学过不等式吗,我要去找到一个X让X减A的平方,再加上X减B的平方,再加上X减C的平方。

再加上巴拉巴拉巴拉一直往下加,哎我希望这个东西最小我取多少,哎学位均值不等式吗,什么时候去,什么时候取到,什么时候取到最小值,唉说智勋的这个同学不错,啊有同学问到说为什么只能垂直于坐标轴哎。

Come on,小于4。5和大于等于4。5,是不是小于4。5,是不是这个这个平面的这一侧呀,大于等于4。5,是不是右边这一侧呀,你怎么斜着看呢,哎那个刚才那位同学听明白了吗,这垂直于坐标轴是你小于4。

5和,大于等于4。5,是不是只能是垂直的啊,你还能斜着,你还能斜着跑,呃我不知道那位同学有没有听到过这个解释啊,所以那个那个尾号是什么384的同学啊,OK那我就假定你听到了啊,OK好。

然后刚才我问了个问题啊,那个问的问题有同学答出来答出来了啊,说老师老师我知道了,高中所有的不等式都告诉我们一件事情啊,如果今天这道选择题做不出来。

我就猜答案不等式的题目,我硬猜他们的均值对了,这个时候呢为了让我和所有的样本点,我的y predict和我的Y之间的这个差距最小,我在每个区域里头取什么,我在每个区域里头就取所有预估值的均值。

我就去取所有预估值的均值,哎但是这个东西还是没有告诉我怎么涨啊,老师你你你你这个我等了半天,你告诉我怎么找,你告诉我说我划分成这个区域以后,我怎么去,我怎么去给这个预估的结果值,你长在哪儿呢。

别着急别着急,先再想一个问题,这个地方有一个东西叫RSS,这个东西衡量了我预估的结果的一个好坏,告诉我能看看明白吗,第一层CDMA是什么意思,我要遍历整个这个空间,我要遍历整个这个块儿,明白吗。

我要去遍历整个这个块,每个块里头我去求它的误差,是不是这样去计算呢,啊这个公式大家能看明白吗,能看明白,这个东西求出来的是一个总体的误差吗,左边那个sigma是对每一个你划分,你用刀砍出来的小块。

右边那个西格玛是每个小块当中的误差加一起,是不是所有的误差全体有误差,有问题吗,我是不是我的回归我的回归我的问题,我想让它尽量的小,我是不是要让这个地方的RSS尽量的小。

我是不是要让这个地方的rs尽量的小啊,怎么做怎么做。

马上来了,首先这是一种自顶向下的贪婪式的递归方案,听清楚了,就是这个问题是没有,你是没有办法用穷尽的方式去拿到最优解的,对,你是没有办法通过穷尽的方式去拿到最优解的,你肯定做不了啊。

这个因为它是它的切分方式,是无穷无尽种的,无穷无无尽种,所以这个时候呢,我们只能用一些启发式的方式去做,所以启发式的方式,这个实际上启发式的方式是一个自顶向下的,贪婪式的递归方案。

所谓的自顶向上是什么意思,自顶向下什么意思呢,是说我从当前的位置开始,我那一刀砍下去,只能把已经有的这个区域已经生成出来的区域,再砍成两个区域,听清楚我的意思了吗,就是今天如果有这样一个方块。

你第一刀砍了这么一刀,不好意思,第二刀,你只能在这个区域或者这个区域去砍刀了,当然你可以这样砍,也可以这样砍啊,这是随意,你也可以砍在这啊,你砍在哪是随你随意,但是你只能在我新的区域里头去砍。

你不能再回头了啊,你不能说我之前那刀砍的不算,我重新砍诶,这个没有重新砍的,就是这样一回事,你砍下去了就砍下去了,你下一步你就想着呃,你就想着你打这副扑克牌,你牌已经拿到手上了,你就不要想着去换牌了。

你就想着说我现在有这副牌,我怎么打好这副牌,明白吧,所以这个就是自顶向下的意思,就是说你一刀砍下去了,你下一刀只能砍在,你只能砍在生成的那个新的小区域里头啊,你别再想把之前的刀再怎么磨掉。

或者怎么样做不了,然后他们的意思就是每一次划分,我只我只考虑当前最优,我只考虑当前作用啊,这个没有没有太大意义啊,我只是告诉大家是这样做的,最关键的点在哪,最关键的点在哪,在这个位置,这是最关键的点啊。

这是最关键的点,对有同学提到动态规划,因为这是一个NP问题啊,你你没有办法,你没有办法穷尽了,所以它确实是启发式的方式,诶我问大家一个问题啊,我现在有这样一个区域,我这个区域呢这条轴上有一些取值。

就是我连续值嘛,但跟刚才一样连续值嘛,我画一下树桩,连续值,我画一下树桩,OK那个我有我有多少种不同的砍刀方式啊,这个大家请告诉我说,如果我选定这个地方这条轴,如果我选定这条轴。

我现在有多少种不同的砍刀方式啊,诶我是不是我是不是可以卡在这,我是不是可以砍在砍在砍在这都可以砍的,啊甚至你在左右也可以看对吧,哎左右其实没有意义了,因为你砍下去都没有样本了啊,所以左右我先把它忽略掉。

是不是中间每个位置都可以砍呢,哎所以你以为这个算法,你以为这个算法很牛逼吗,这个算法就是一个很常规的算法,它就是把这个地方每一个分裂点,哪一个切分点啊,看清楚啊,这个地方能切的所有的都能落下去的。

所有点啊,每个点都去算一个rs,每个点都去算一个,每个点切下去了之后,他都去算一个rs,这个东西算的是切出来的左区区域,或者是上区域,这个切出来的右区域或者是下区域,有问题吗,想象一下吧。

拿着刀砍下去了以后不就变成两块了吗,它的误差不是左右两块的误差之和吗,有问题吗,就砍你,你砍下一刀不是左右或者上下吗,不是两块之合吗,现在这个地方的sigma不就是对左对两不同。

对这个砍刀这一刀落下去的两块分别去求吗,没问题吧。

好那我再解释一下什么叫做我,什么叫做递归的砍刀哦,递归的这个这个这个砍这些刀哦,递归的意思是什么,递归的意思是像这样的,这是二分的递归的方式,这个不是递归啊,这个你看不出来啊,这你看不出来。

你不要把一个砍哦,对你不能歪着砍了,所以你只能说哎我砍这一刀,然后下一次怎么办,下次砍这一刀,我再下次怎么办,我砍这一刀,我再下一次怎么办,砍这一刀,这个叫做这个叫做二分的递归切分。

OK那个有同学问到这个问题,说老师,老师这个地方是针对一个特征进行切分的,对吧对,是针对一个特征,我刚才已经告诉大家说,如果我就针对水平的那一位做切分,听清楚啊,我就针对我水平的那一位去做切分。

所以大家看到这个地方确实是,就是他的这个方式很粗暴,听清楚啊,他还会把所有水平上能切分的点全都试一遍,再把数值垂直的这个方向上能切分的,所有的点全试一遍,全试一遍,听清楚了,全是一遍。

Y的值怎么去确定呢,我刚才刚说完的,我说给定一个区域,这个区域里头的Y怎么去预测啊,我说这个区域里头有一堆的数,ABCDEFG巴拉巴拉巴拉,这个区域里头有一堆不同的数,我怎么去预估一个值。

你所有这些数的平方和最小啊,对吧,我说的是均值,对不对,所以你告诉我,你把所有能砍刀的方式全都试一遍,你是不是可以挑出来那个最好的砍刀的方式啊,RCS最小的那个方式有问题吗,我这么说,大家有问题吗。

啊有同学说老师老师这个计算量好大的呃,你从人的角度上来说,这个计算量当然很大了,但对计算机而言还好啊,就是计算机而言还好,同时又考虑到这个地方的问题,实际上是可以并行的对。

所以大家先不要纠结这样的问题啊,就是不要去纠结这样的问题,你以为你以为逻辑回归计算量就不大了吗,你输入的维度高的时候,逻辑回归一样,计算量很大,所以那个计算量呢它主要是这个算法,他也没有。

他没有太多可以去做,更非常非常非常牛逼的优化的这样的操作,所以它总是会有一些计算量的,你为了去找到这个比较优的这个结果,还是要付出一些代价。

OK啊哎这个地方还有一个问题,就是有同学提到说老师老师哎,你这你这个你你这个数一直往下长就完蛋了,那那那我,我今天我想去预估班上的每个同学的得分,我想去预测预估每个同学的得分,我诶那我岂不是可以。

每每一个,我最后这个数可以生长在每个同学,都在我的叶子节点上对吧,这有什么意义啊,每个同学都在我的叶子节点上,这个有什么意义啊,这个有什么意义啊,所以他可能会过你喝啊。

一会儿我们再说混拟合怎么去处理,我先回到刚才这个问题,有同学问了一个很好的问题,说老师你每切一次,都要对全部的样本去计算一次对吗,诶我问大家一个问题啊,你诶你在这样的情况下,你想一想啊。

你已经切了这一刀,你下次切这一刀唯一变化的是不是这个区域啊,是不是说只需要去管一管这个区域,原来的rs是多少,现在切完这一刀以后,新的rs是多少,RS1S二S二是多少,我是不是算一下这个东西的一个增量。

就可以了呀,我感觉这个地方也是,我只需要算左边这个区域的增量就可以了,我需要把全部都算一遍吗,我这么说能明白我的意思吗,我只关心我砍的那个小区域,我没有砍到的地方,我不管它,它没有动。

所以我只关注我砍下去的那个小区那一刀,他有没有变小,变小了多少,有人听吗,不是不是全部算一遍了,他只他只算我,我砍那一刀的那个区域哦。

OK好吧好,所以我希望我说明白了呃,下一页图中间的那个图也是二分吗,中间这个图就是二分吗,中间这个图就叫做二分递归啊,不是二分啊,二分递归,所以什么叫做递归,递归的意思是我先砍这一刀,我再看这一刀。

我再去看这一刀和这一招,这叫做递归,就是不断的去把区域切成两个区域,这个叫做递归,这叫做递归,OK所以它是它是二分递归,没错嗯。

OK我回到这个地方啊,我刚才说了一个很可怕的一个问题,叫做过拟合,哎,这棵树可牛逼了,你知道你在这个区域里头有好多散的点对吧,有好多三个点它都有取值,然后这棵树如果真的牛逼,他可以牛逼到什么程度。

我这些刀你反让我砍呗,我砍的足够多的刀的时候,诶,我今天可不可以把每个样本键盘,在一个小格子里啊,我把每个样本点都砍到一个小格子里对吧,我每个小格子里头就一个就一个样本,好牛逼的。

取均值就是自己误差就是零,好开心的,分分钟就全拟合出来了,哎这有用吗,这有用吗,这有点可怕吧,每个样本都是在一个小格子里,这个对我新样本的预估有什么用啊,这就过拟合了,你把答案记下来。

你就告诉他说这个词家门店就在这个小格子里,它取值就是这个没用的,所以怎么办,别让他切这么多刀,谁让你一直切一直切的,所以我们之前在逻辑回归以后,我告诉大家说,我们控制过拟合用什么,我控制过拟合用什么。

用正则化,我们加一个正则化,像我们去惩罚他,我们说哎不能切哦,你这你你你不不是不能弃啊,不能用那个甩甩棍,那么厉害的方式去拟合样本点了,你再甩你再甩,我要我要跟你那个扣分了啊。

所以所以他就他就他就不敢甩对吧,好,这个地方也一样,这个地方我要加一个惩罚项,我加什么惩罚项呃,大家告诉我一个问题,我这棵树刀切的越多,我刀切的越多,是不是越积累越多,我刀切的越多。

我是不是叶子节点越多,我那一刀一刀砍下去,我刀切的越多,是不是叶子节点会越多,所以我把这个叶子节点的数量,以某一个超超参数夹到尾巴上,意思就是我想让rs尽量的小,但是你不能用这个地方尽量的把。

如果这个鬼东西,这个叶子节点太多了,不好意思啊,你这个东西不合格,你回去重做,你这个刀砍太多了,所以所以这个地方的损失,实际上这个地方的误差或者说损失,它实际上在这种情况下。

它在RSS的基础上加入了乘法项,这个乘法项是什么,对叶子节点的数量,乘以阿尔法,你可以学,你可以砍刀,不要砍太多刀,看多了重做不合格,好,所以这个地方呢大家知道,知道一下它的形式就好了。

这里头可能会有一些你没有听过的名词啊,比如说交叉验证,这个我们在后面会给大家讲到,所以大家先不用先听一下就好了啊,不用着急,好那个回归数我就给大家讲到这好吧,所以回归数是一种启发式,它会一直生长。

刚才有同学说千分会穷尽X1和X2的组合吗,它不需要穷尽X1和X组合,它只需要穷尽所有X1的划分点,和所有X2的划分点啊,不是组合不需要组合啊,他每次只砍一刀,只能垂直于某一个坐标轴砍一刀。

所以它只尝试一条轴的所有情况。

和另外一条轴的所有情况,但不是一个pair,不是一个组合,下面介绍一个很牛逼的思想,叫做BGIN,然后这一页写了一大坨啊,我决定给他个tap,这一页,我今天给大家跳舞这一页。

为什么呢,因为我马上要告诉大家,什么是在我们的机器学习当中,什么是bg bi是一个缩写啊,be这个缩写叫做boost chap like rigating,Aggregating。

所以就用了一个叫做boost chapter的一个思想,他他长了一样的事情,叫做人多力量大,然后呢,这个事情是这样的,如果你要去构建一个模型,这个模型可能是不太准的,OK啊抱歉,这个地方呢写笔误啊。

大家听到这个课的时候呢,你要知道这个地方是T啊,这个地方是T不是M,所以他想了一件这样的事情,诶诶刚才我很很很很害怕一个东西啊,很害怕那个东西叫过你河,所以过拟合产生的本质是什么。

过拟合产生的本质是会有一些noise,会有一些噪声点,这些噪声点你怎么你怎么着啊,噪声点你以为他是你,你买了一本课外练习题回来,你以为课外练习题所有答案都是对的,唉拜托他印刷错了,这道题错了。

但是你不知道你把它学下来了,下次你再考到这道题写错了,所以这就是过拟合学太过了,你们太适合这本参考书了,拿出那本5年高考3年模,你说我去把它做完,分分钟上上清北复交,然后那本书里就提错了啊。

然后你就学错了,所以这个地方过拟合相机的原因,实际上很多时候是,因为我们这个地方会有很多的噪声,我们会有一些错误的题,我们有些答案错了的题,但是我不知道,我并不知道这个东西是错的。

所以我就拼命的学我我我就拼命的学,然后你把你你也不管答案对不对,我就说这个答案印刷是这样,他肯定是对的,我拼命的去记这个东西,我是按照他的思路去理解,错误的思路去理解。

然后将来你去做高考的时候就就很可惜,对吧好,所以你怎么去防止这样一个问题呢,啧哎你要你要是没有看到这道错题,你不就不会学这道错题了吗,那你看不到这道错题说明什么,说明你要把这道错题。

这个这个呃你你你你这一次就不要看到它,所以在这个时候呢,我们有一个思想是这样的,我们总共会有1000道题,我们总共会有1000道题,我们在这1000道题的基础上,我们把它切成。

我们每次从1000道题当中去抽取出来,其中的800道题,每次都取800道题,当然每次800道题可能不一样啊,就是那个无放回的随机去抽抽800道题,我抽出来以后,我每次都在800道题上去学习出来一个模型。

比如说用决策树去学习出来一个决策树的模型,然后我再对最后的这个结果去做什么呢,如果它是分类问题,我就做投票,少数服从多数,如果他是一个回归问题呢,对回归问题我就求平均,啊大家理解了这个思想吗。

begin就是从总的样本当中,每次抽取出来一部分样本,从总的样本当中每次抽取出来一部分样本,去构建学习器,然后再把这些学习器拿过来去做投票,或者是求平均,因为我只抽800道题。

我很可能看不到那道错的题哦,所以我可能学不到这道错的题啊,所以很有可能会有一些学习自学的是不错的哦,所以比我一个人瞎学可能需要好的,所以这个叫做白点好。

所以这是bedroom对吧,好BGIN的话有另外一个非常牛逼的模型,叫做random forest,叫做随机森林,第二个随机森林啊,随机森林做什么样的事情呢,随机森林做什么,做什么样的事情呢。

随机森林是一种基于数模型改进的begin的版本,刚才我只对刚才我只对数据去做采样,听清楚了,我刚才只对我的1000道题当中去抽800道题,数据去做采样,现在在随机分明里面,每一个模型还需要对这个地方的。

还需要对这个地方的特征或者属性去做采样,就是原本可能会有时有有100列,我每次自己取出来,其中的70列,明白吗,就是有些列我也不用,我也不知道哪一列是不是都有用,所以我在构建每一个子模型的时候。

只取了一部分的样本,一部分的样本数据我也只取了一部分的特征,一部分的属性听明白了吗,其他的东西和刚才的BING是一样的,我说清楚了吗,能理解这个地方的意思吗,写了一堆文字啊,就是我说的意思。

就是我只每个模型在构建的时候,我只取了其中的一部分样本,同时呢我也只取了其中的一部分特征,就是我没有所有的属性全取,我每次只能挡住一部分属性,我只当你从剩下的属性里面去选,我为了增加它的随机性。

不让它受噪声去干扰,好。

所以你们已经学会了最牛逼的random forest,这个模型,所以这个地方呢给大家看到这个,OK这就是单科决策树,单棵决策树啊,单棵决策树在这个场景里面,大家看到单棵决策树很有可能会过拟合。

他会因为这个地方有两个小的样本点,会拉出来一个板,一个区块给他,也因为这个地方的两个样本点,两个样本点去拉出来,这个地方的一个区区块给他,但你看当你用五颗决策树,25棵决策树。

100棵决策树去构建随机森林的时候,它的边缘会变得非常的平滑,他不会那么容易受到noise噪声的干扰,他不会那么容易受到噪声的干扰,这个叫random forest,诶,我来回答几个问题。

有同学说老师呃,那个之前听说有人用了100多个模型去做集成,是这个方法吗,呃他集集成方法有很多种方法,有很多种方式,bin只是其中的一种,它还有一些其他的BLANDING。

那些waiting那些呃stacking都有啊,这个我我后面会给大家讲,这个我后面会给大家讲,然后有同学问到说是有放回还是无放回的,对是有放回的,是有放回的,OK就是在对样本采样的时候是有放回的。

有同学说老师老师没有案例吗,我又没有说要下课着急吗,马上来了安利等我一下,对有些样本没有抽到,有些样本没有抽到,这个同学问到的问题是说到的问题是对的。

啊选择多少个,选择多少个学习器,诶我回答不了你哦,因为如果我能告诉你这个东西的话,诶你还调什么参数啊,你这个模型可牛逼了,你直接往上一怼,比其他模型效果都好,这是一个要调节的参数。

后面我会给大家讲到调参的方法好吧,所以我回答不了你这个问题,选多少个学习期,最好,也没有任何一个数学公式可以回答你这个问题,好吗啊,没有任何一个那个呃。

没有,没有任何任何一个数学公式可以回答这个问题,有同学问到说,老师begin或者集成方法在工业界有用吗,作用很大吗,有用,但是作用的大小不确定啊,就是有些地方他会用模型去做集成,我们个人的经验是。

像神经网络这样的模型和数模型,数模型包括随机森林,包括一些树的串行模型,他们去做集成效果是很好的啊,这是BEGGIN对,对这样的数模型和神经网络,这样的计算模型去做一个融合,一般效果会很好,嗯嗯好。

我来讲一下案例,无非就是分类和回归呗。

走一遍喽,角色数完成分类的问题,把需要的工具库import进来好。

Import turns p d,这个是一个数据处理和分析的工具库啊,我给大家,我给大家去那个列了,这个说明哎,我发现大家好像很爱问这种参数的问题啊,因为有同学问了一个问题。

说随机森林里抽取的样本数和特征数,怎么定定不了,没有数学公式,这是超参数,有多少个学习器乘多少样本,抽多少特征都是超参数,一般情况下,根据经验,根据各位我们的经验,取0。0。6到0。8之间的值。

应该会有比较好的结果,就百分比60%到80%,但具体取多少,你要做实验啊,这个经验值也不一定准,它只是一个经验值而已,提供给你参考啊,所以啊我看看是同样一位同学吗,啊不是同一个同学。

那个你问的这个问题没问题啊,说明你在思考,但是这种问题没有明确的数学公式解,这个意思啊,就是如果他有的话,我肯定会告诉大家对,所以这个就是要我们需要我们去调节的,这个参数或者叫超参数啊,这个意思好吧。

那我就继续说我这个案例咯,我这个案例里头所有的地方已经给大家写上了,写上了注释,所以那个我相信大家是能看得懂的,对吧啊,代码我下课再上传啊,我现在在讲课,那我不能停下我的课去给你上传一下代码。

你也不着急,几分钟啊,几分钟以后你就会看到这个案例好不好,先听我把它讲完好吗,不要着急,OK啊,所以把需要的工具库import进来,这个pandas适用于数据工具,适用于数据处理的工具库。

从sk learn cn里头去import一下PROPOSSESSION,我需要对数据做一些预处理,然后我去import一下决策树,决策树在处理里头,OK我用pandas去把数据读进来。

我这个地方有个decision tree点,CSV有一个这样的文件。

我可以用pandas这个工具库去读进来,这个工具非常牛逼,它读进来的数据就会变成行行列列的数据,所以大家看到的就是行行列列的数据,这是一个什么样的问题呢,这是一个很经典的问题。

这个问题的标签或者说你需要去完成的分类,是去判断一个美国的一个一个居民,他的收入是不是比50比5万美元要低,就是比5万美元要低还是要高,这是一个分类问题啊,就是yes or NO。

就是比5万美元到底是要低还是要高,然后我可以去基于这个地方的啊,参考的一些因素是什么呢,或者说基于你可以去做判断的一些因素,包括哪些呢,包括诶大家看到这个地方对,包括大家看到这个地方的这个呃。

第一个第一个这个列叫做work class啊,他到底是一个这个这个给国家干活的公务员呢,还是一个市里面的一个国家公务员,还是市公务员,还是这个私企的员工,还是等等等等这样的因素对吧。

所以大家看到这个地方有什么所谓的这个state,government对吧,有private等等等等啊,啊OK还有一些那个那个什么失业的人群,OK这些都有啊。

然后第二个叫做education education的,想一想就知道啊,education就是教育程度对吧,所以这个地方呢包括这个呃学士factual,包括这个可能会有一些高中生毕业啊。

因为在美国其实干这种蓝领啊,这种活实际上也收入也还是可能是不错的,所以这方面education包括说有学士,有这个硕士,可能会有一些这个高中生可能都会有啊,各种各样的,然后第三列呢叫做他结婚的这个状态。

可以是呃没有结婚啊,未婚过对,然后有这种已婚,也有这种已婚又离异的对吧,哎离婚的,OK然后下面这些东西啊,还有一些其他的因素就是relationship对吧啊,是那个是是没有结婚的人。

就是不在一个家庭当中,然后结了婚的人可能是一个哈曼,是一个丈夫或者是一个一个妻子,OK然后他的种族他是个白人还是黑人,还是黄种人对吧,然后他的性别是男性还是女性啊。

然后他的国家到底是古巴还是这个地方的美国,还是另外的某个国家,OK然后我来看一下这个地方有些函数啊。

就是info函数就告诉我一些信息,所以他可以把这个地方所有的列告诉你,说他有多少行,它有3万2561行。

OK每一行都是一个类别型的一个变量,然后这个地方消耗了两兆多的内存啊。

就还是比较比较小的内存。

然后我的这个地方的成年人这个数据它的形状,它的形状表示它是多少多少行多少列,所以他有373万多行,3万2561行。

它有九列,OK然后我的列包括哪些列。

包括world class education,一些结婚状态,巴拉巴拉巴拉巴拉一堆啊,到最后我我的特征是什么。

我的特征是不是前面这些东西,我的特征是不是前面这样一些东西,我特征是前面这样一些东西对吧,我的是我最后需要去判别的标签是什么,我判断标判别的标签是这个地方的income,是这个地方的收入。

所以我把这个地方写下来,我的特征是前面这么多列,我这个地方的标,我的标签我的Y是这一列。

然后我去把我要的特征和我要的label取出来,所以我根据我列的名字就取出来我要的特征,我再根据我列的名字取出来我要的标签。

然后我给大家看一下,这个时候呢对我就拿到了这样的特征。

这就是特征嘛对吧,车身就包括说诶他是哪个什么样的工作类型,什么样的教育程度啊,什么样的一个结婚状态啊。

哪个国家的等等,那他的VIVO呢,它的标签呢标签就两种,要么就是小于50K,小于5万美金,然后要么就是大于5万美金,这样啊。

OK然后下面这个地方呢有一点小小的特征,工程特征处理,这个大家不用管这个呢,就是那个我们会在后面的特征工程部分,会给大家重点讲到,你要知道的东西,就是计算机,它很傻,计算机它傻到什么程度呢。

你丢给他一个文本型或者字符串型的东西,他是读不懂的,你给他一个类别的东西,你说我今天买了一件很好看的衣服,是件蓝色衣服,它对于蓝色这个东西是毫无概念的,所以怎么办呢,对你要用一个数字去表示。

我给大家举个例子,你你今天是星期几,星期几这个东西计算机是读不懂的,星期几计算机是读不懂的,啊我知道有些同学,你们的基础比另外一些同学要好一点,但是不用着急好吧,就是那个大家也那个啊。

各位陈独秀同学稍微收敛一下,不要先先不用不用就说,我给大家先简单解释一下啊,因为这个这些知识,我们在后面讲到特征工程的时候,大家都会都会懂,所以那个大家嗯先听一下啊,听着我跟着我的节奏来来听一下,对。

是确实是读着向量编码,但是我要读出来这样东西就有点有点内容,太多了,可能有些同学就会蒙,嗯其实我就想说一件事情,就是计算机呢对于这种类别性的东西,是读不懂的,所以你告诉他说今天星期一啊。

今天星期天他毛线都不懂,那怎么办呢。

他就想了个办法,他说不如我就把一天切成七天,我就开七个位置在这,如果是星期一,我就是第一个位置取一,后面的位置全部取零啊,这几个数字了,1234567对吧,如果是第二天啊,如果是星期二。

星期二我就变成零一,这样对吧,星期三星期三我就变成这样,能明白这个意思吗,对这就是刚才啊这位同学说到的,这位同学陈独秀同学说到的这个毒液向量编码,OK好吧,然后独立向量编码,意思就是我把类别哎。

又占一个位置的形式去告诉他,如果这个位置取一,就说明是这样一类,如果这个位置取零,它就不是这样一类,所以这个地方有一个处理,叫做叫做特征工程的处理。

这样啊,所以这个地方呢,我们用get dis去拿到一个特征工程的处理啊,这个不用管这个,如果大家那个看不懂的话,你先看一眼,因为我们后面会给大家讲到。

好吧,后面我会给大家讲到,所以大概的意思就是说哎呀计算机太傻了。

他读不懂这些类别,他懂不懂这些类别。

所以那个请帮我把它转成一个数字的表达形式,我还能看懂,就这个意思啊。

你就可以认为这个地方做的,就是这样一个事情啊,就这样一个事情好。

所以下面我就开始构建模型了哦,这个事情真的是很简单。

所以构建这个模型呢,我就只需要去构建一个分类器啊,我这次我就不手写了啊,我昨天在把手写蒙蒙了一群同学,就是大家大家看蒙看蒙了一群同学,所以我就决定今天用一下工具库啊。

所以我就搞了一个decision处理的一个分类器啊,Decision to class file,然后告诉他说我要用商去作为我的信息熵,信息增益就作为我的评估的这个准则,然后我最大的数升深度啊。

我限制一下最大的数升深度是四,然后我就拟合一下我的数据,拟合一下我的特征,拟合一下我的X和Y。

然后下面就拿到了一个分类器,诶,下面这个东西大家照着抄就好了。

这是一个可视化,这棵树是可以可视化的,老师可以告诉你说我为什么去做这样一个决定。

我沿着每个分支走,它会它会是哪个哪什么样的一个决定。

大家看到最底下这个class,大家见到最底下这个class这幅图当中啊,每个框框最底下的class就是它的类别。

那class就两种,小于等于50K对吧,大于50K对吧。

小于等于50K,大于等于大于50K,所以这就是一幅可视化可视化的一幅图。

就告诉大家这些决策树长出来的,决策树长什么样。

那个这个代码我不想给大家多说,这就是个模板,就是个模板,你就把你的那个分类期望有一怼就可以了,结果就出来了,唯一要改的是这个地方啊,就是你的分类的名字不一样嘛,对啊分类的名字。

我这个地方是小于5万美刀和大于5万美刀吧,就我写成这样,如果你现在的这个分类是说,比如说会不会买件衣服。

那就是买和不买嘛,OK所以这就是一个案例啊。

再看另外一个案例,是一个随机森林,随机森林,然后这个案例呢反正也挺简单的对,所以随机森林那个,那个我刚才给大家讲分类数,我没有说呃,我没有说怎么去控制过拟合是吧,分类数控制过拟合有一些方式啊。

比如说减脂,但是这样的工这样的那个方式呢,在工业界用的不多,工业界就会直接去做一些限制,比如说限制数的深度,对限制数的一些,这个每个叶子节点的一些样本数等等,他会做一些这样的限制。

所以这个地方我们做一些限制,因为不做限制,那棵树太大了,它可能会过拟合,所以我就限制了一下,说我允许你的最大的数升就是四,然后涨到四了还要往下长,不好意思,不让你涨了,太平了,这个意思明白吧。

所以这是一个超参数啊,就数升是个超超参数,我自己手敲了一个超参数是四,它不一定是四啊,它可以是那个其他的一些结果,所以大家理解一下是这个意思哈。

好然后这几个地方呢,我们我们在构建这个随机森林啊,去完成一个回归的问题,一个regression,所以随机森林完成回归呢,就说我建了很多棵树,然后我做了一个每棵树都做了一个预估。

我再把预估的结果只去求了个平均啊,就这个意思好了。

然后这个地方呢我就不解释这个工具库了啊,工具库无非就是import pandas,import一下数据的预处理,然后我从on sunday里头去,import一下随机森林的回归器啊。

Random forest regression,然后我用了一个自带的数据库,叫自带的数据集,叫做load boston,Load boston。

哎呦大家知道我现在解释一下啊。

树的深度是树的层次1234。

这是树的深度。

只能用到四个数字段吗,谁告诉你只能用到四个字段的。

这里头有多少个分支啊,这有多少个分支啊,哎你四层四层你就垂垂直往下长啊。

你的数不长两个分支的,所以所以啊大家大家大家去看一下这个东西。

你就明白了啊,就是四层最多涨涨四层,好属性不止四个啊,因为我这里头每每一层都会展开两个分叉,每一层都会展开两个分叉啊,颜色大家不用管颜色,就是为了好看而已,你你可以你可以理解成暖色调和冷色调。

它做一些区分,但是这个地方其实在颜色的深浅,并没有大家想象的那个,你可以认为颜色越深,他越肯定你可以从某种程度上这样去理解啊,呃细节的细节的代码的部分代表下去以后再问。

好吧,那个我如果上课给你每个点都讲了,就会很碎,这个课你回头去听起来,所以我建议大家阅读代码的方式,是不是逐行的去阅读,而是我去了解每一个块在做什么样的事情,我再进到每个块里头。

去了解它是怎么实现这个东西的,而不是一行一行读,一行一行读,很容易蒙的,这个地方代码还短,代码长了你就蒙了,OK所以values是什么意思,values是把那个pandas。

data fm当中的南派数组取出来,对啊这个意思,然后如果我刚才说的话,里头有些名词你听不懂呃,没关系,因为后面我们还会再用到,所以慢慢你就懂了好。

然后加载数据很简单,加载数据加进来了,直接就可以把贝塔把X取出来,把Y取出来啊,所以贝塔就是X。

他给的就是Y啊,贝塔就是X,他给的是Y,然后这个地方呢,反正就是一堆的这个房子信息呗。

我去做房子价格预估啊,我要搞告诉他说这个区域的一个犯罪率有多高,然后巴拉巴拉巴拉吧,然后这个这个地方的那个那个居民的这个,比如说呃居民的人均的这个呃人均的这个站,就是说自己住宅。

住宅的这个面积有多大对吧,然后啊这个地方会有一些其他的啊,不拉巴拉巴拉巴拉。

反正有一些信息用于这个这个地方的这个,回归问题的解决,然后再把数据读出来,大家看一下,这个就是一个一个的样本,这是一个样本,这是第二个样本,这是第三个样本,这是第四个样本啊,这是第四个样本的特征。

大家听清楚啊,第四个样本的特征。

我只取了我只取了五个样本,我把五个样本的特征全都打给大家看啊,这是用科学计数法,然后我把所有的这些样本的标签。

拿到的价格是多少万美刀,OK240000美刀还是21。6万美刀,还是34。7万美刀啊,还是说是一般有贵的50万美刀啊,这样然后所以这个东西就是Y这个东西就是X。

我就把X和Y送到这个地方的random forest。

REGRESSOR当中去学习,我先告诉他说我要取15棵树去做预估,我的NATHMATTERS,就是我那个随机森林取的多少棵树,我要取15棵树去做学习。

我用这15棵树的这样的regression去fate一下,我的X和Y好,很简单,secular用起来很简单,CN所有的CCULAR,所有的监督学习的model全都是feat。

这就表示拟合拟合一下XY他就开始学习了,然后我们就可以拿到一个这样的回归器。

我们就可以用这个回归器去预估一下,我现在波士顿的这个features,我们去看一下他预估的结果,下面这个东西就是他预估的结果,这就是他预估的结果,OK然后下一个地方呢。

你你可以去用这个regression,这个是默认的,刚才我给了15棵树,它默认的应该是十棵树吧,如果没记错的话,对这个random service of regressor。

它是有些参数的,然后它这个地方的参数,比如说我们看一下,默认默认的树的棵树是十棵树,对默认的ns litters值是等于10K是等于十的啊,然后我刚才是给了15嘛对吧。

如果我给参数,它就会以参数初始化了,所以我我刚才这个地方啊,我在下面我是给了15嘛对吧,我是给了15嘛,好啊,下面这个地方呢我又重新跑了一遍,这个时候没有给没有给,就是十嘛。

就是十棵树嘛啊具体多少棵树最好,这个我们后面再学好吧,嗯这个我们后面再学,对每棵树都是一种样本和属性的采样,没错,你说的很对,我们都是用决策树,我们都是用决策树,我们只是15棵树。

用了不同的样本和不同的属性好,有同学说设置了15棵树后,模型的内部做了什么模型,内部拆除了15颗,准备好了15个模型,去15个决策树的模型去拟合,现在这个数据OK明白了吗。

然后再对结果预估的结果去做一个平求平均,因为现在是回归求平均,所以啊我说明白了吗,所以当你设定N等于NS等于15的时候,他就准备好了15棵树等着去学,OK这个意思。

设置属性的个数在哪,刚才我设过来,这不在这吗,这是属属性的个数啊。

sorry属性的个数在这,matt features属性的个数在这。

你可以取,比如说啊0。6他就取60%的属性,60%的全部特征的60%的特征。

比如说这个地方还会有一些其他的啊,这个地方是max feature。

你还可以选max,你可以取simple啊,就是关于这个样本样本去做采样啊,样本做采样都可以在这里去选,OK好吧。

每棵树随机采取采样多少不同的样本,看读它的APIAPI不是在这吗,max feature读它的default是什么,default是default。

是它默认的值,它会有一个默认的值的,它会有个默认的值啊,对这个参数大家看文档就好了,没错,它是呃对不同的数据集啊,它是对相同的数据做采样以后,得到不同的数据集,去构建了15棵树去求平均好不好。

那个我希望大家在学习这些,你们可以提问题,没问题,我觉得好的问题我会回答,有些问题的话呃,就是我不太建议给大家的方式是一直喂饭,就你看我不会给大家列一个文档,我不练这种东西。

因为列文档这个东西的话就没意义了,我希望大家在上完这个课以后,这个这个书关上你能记得一些核心的点,你能记得老师说最重要的点在哪,这些东西是最重要的,他们可以散开来,我要解决这个问题的话。

我查API谁都会查,有一个说明文档谁都会用,然后你需要记住的东西是,这个算法的核心是什么,哪些东西会影响我现在的学习啊,这个这个是比较重要的,CELINE当中必须是二叉树吗。

对CELINE当中没有实现D3和C4。5,它实现的是cut啊,对就是一般工业界的工具库实现的都是CD,所以都是二叉树啊,都是二叉树,模型内部构建15个数的方法都一样,只是样本不同对吧,样本样本不同。

特征也不一样,样本不同,它的每一次生长的时候选取的特征也不一样,对属性也不一样,没错,工业业做机器学习,是不是大部分时间都花在数据处理,数据处理中啊,数据处理确实会花掉一大部分的时间。

但是模型我们也会去做研究啊,模型我们也会做研究好,那个今天我就给大家讲到这儿好吗,大家有更多的问题可以在QQ群里再交流,我会下课,马上把这个地方的两个案例和数据,打包发到群里,好不好。

我希望今天的课大家听完对决策树这种模型啊,或者是随机生成的模型,回归数会都有一些认识,大家记住我说的最重要的核心点,这些核心点非常的重要,对所以我希望大家能够回看到这个课的时候,或者回顾这个算法的时候。

能记住最核心的这样一些点,这就够了,好的你们有问题,你们在QQ群里再和我去啊,交流好吧好,谢谢大家。

【七月在线】机器学习就业训练营16期 - P3:在线视频:3-SVM与数据分类_ev - IT自学网100 - BV1Z9T5ewEKL

好那我们闲话不多说,然后我们就直接进入到我们今天的正题,就是SVM好,然后我们今天的主要内容是讲SVM的模型,然后主要会在在这个讲解过程中,会让大家了解到就是SM的模型的基本的推导。

然后嗯然后还有SVM的实战,然后在文在文本分类上的应用,然后在SOM模型的推导过程中,会给大家讲解如下几个知识点,第一个就是一个线性可分的分类器,然后,然后后面还有一个是线性不可分。

就是在线性不可分的数据上,我们的SM的模型是怎么样去构建的,然后还有就是SVM的求解呃,SM求解,就是有一个叫做SMO算法,当然在讲解这个的过程中,我会把就是中间用到的一些数学知识,也都串起来。

那当然如果大家知道的话,我们可以跳过,如果不知道的话,我们可以过一遍,好然后今天的homework,然后会跟那个就是今天的实战文本分类相关,然后嗯对,然后但到后面我们会细说好。

我们再讲SVM的模型的构建的,就是模型的构建过程中,我们会讲到如下的知识点,就是第一个就是第一个是函数间隔和几何间隔,然后第二个就是自由间隔分类器,然后所有间隔分类器就涉及到我们把SVM去嗯。

把SM模型的建模就已经建出来了,然后在建在建模完成之后,他作为一个数学问题,我们会使用一个叫做拉格朗日方程的东西,去对它进行求解,所以说我们中间会补充一些高等数学的知识,然后在在补充完这个数学知识之后。

我们会去讲自由间隔分类器是如何求解的,嗯对然后再讲到呃,在讲到用拉格朗日的方法,对自由间隔分类器的求解做了一些变化之后,我们会介绍会引出SVSMO算法,然后这个SMO算法就是呃去求解SVM的。

一个比较呃比较直观的一个算法,然后然后呢讲完前五个之后,其实SVM的模型就已经是,大家就已经有一个概念,说SVM模型就是这样这样子的,然后在后面我们会介绍两个扩展,一个叫做合计法。

这个合计法就是SM里面一个常用的技巧,然后用来处理呃线性不可分的数据的,然后还有一个叫呃,还有一个是软件的分类器,它也是呃去求解啊,当数据线性不可分的情况的时候,SM是怎么求解的,好了讲完这两个之后。

我们会用另外一种方式,就是荷叶损失函数的一种方式,再去重新理解一下SVM,然后再到最后我们会会讲解到,SVM是如何去做多分类的,然后这个就是我们今天的,这是一个主要的一个呃知识pass吧,就是知识路径。

然后希望大家能跟上,就是说呃是这样的,因为今天的知识点比较多,公式推导也比较多,所以大家如果中间没有听懂的话,或者是没有呃,就是觉得我没有讲清楚的话,可以那个随时打断,然后我我希望就是说因为知识点很多。

所以我希望大家都能听懂,就是我们也不求多,只求那个我们能把每一步都听懂,好然后嗯如果还有同学没有那个没有进来的话,可以看一下,就是嗯可以看一下丽娜在群,在群里面发的一个一个截图。

然后可可能需要修改一下浏览器的设置,才可以进来,然后如果没有声音的话,建议再重新嗯重新进一下,或者是重新换个浏览器试一下,首先是那我们先介绍函数间隔和几何间隔好,那我们看到下面有一有一张图。

这个图里面是一个数据集,当然它是一个二维的一个图形,然后黑点的话就就代表正一类,然后空心点的话就代表一类,大家可以看到它其实是一个线性可分的,数据集嗯,因为因为我可以画一条直线。

把这两个数据集完完全全的分开,当我画完这条直线的时候,我其实这条直线的方程是W乘以X加B等于零,就是在这条线上的所有点呃,代入进去之后,W和B带我到W和B中去,就会使得这就会使得最后的方程数是零。

然后在这条线下面的的这些空心点,他们都是W乘以X加上B都是小于零的,当然在实心点都是W乘以X加上B是大于零的,好对于一个线性的数据集来说,那我们可以随随便便的就可以画一条直线,就可以把它给区分开。

当然我的线还可以这么画,还可以这么画,还可以这么画,那么问题就在于哪一条线是最好的,好对于一个线性可分的数据数据集来说,那我们可以再画出来N多条线,画出来无数条线,然后这无数条线都可以把这个呃。

都可以使得准确率能达到百分之百,但是这无数条线里面总有一个是好的,总有一个是坏的,比如说这个贴着两个点的,我就觉得应该不如在中间的某一条线好,那么该怎么样去衡量这个事情好,那我们用数学公式来表达一下。

第一个那我们先建一个建一建一个模型,它的模型的参数是呃W和B,然后呃它的表达式是W乘以X加上B,然后经过一个激活函数吧,然后这个激活函数也可以,大家也可以认为是一个只是函数啊,这只是函数里面。

当里面的值是小于零的时候,就是一,当里面的值大于零,大于等于零的时候,就是一好,已经有同学开始剧透了啊,可能大家已经有有用过那个SM的,已经知道了是最小间隔最大的,这个对这个事情好。

那我们还是照顾一下对S没有了解的同学,然后我们还是继续讲清楚,好那么对于对于这个分类,对于这个数据来说,它的分类模型就是这样的,HWBX等于GWX加上B好,那么它的函数间隔是什么。

它的函数间隔其实大家可以认为,就是把这个点带入进去之后,得到的得到的值就成为它的函,就成为它的函数间隔,好那么我们可以看到把这个点代入进去之后,他为什么在前面乘以一个YI呢,因为我们刚才是讲过。

就是说这条线我们可以看到,我们可以看到这条线可以使得那个可以使得呃,可以使得那个整个数据集被区分开,然后当我把这个值把实心的,代入到这个线的方程中去之后,那么它的值不是等于零,而是大于零的。

然后当我把空心点的值代入进去之后,那么它的它的值是额是小于零的,而是小于零的,所以说当如果是空心点的时候,那么W乘以X加上B的这个数是是那个负数,而负数是不能作为距离的这个度量的。

所以说在我们这里用了一个取巧的办法,就是说我们把类别值给命名成正一和一,就作为它的符号,对于是负类的的,对于父类的数据集数据点,我们乘以这个符号之后,它就变成了正数,好至于有同学问为什么是这个式子。

那我们来看一下它的几何意义是啥,好我们我们可以看到画一条线,然后我们可以看到,我们比如说画一条比较简单的线,就是Y等于Y等于X,然后在这条线里面,那么它的方程是什么。

它的方程可能这个是Y这个呃也不能这么写,就是这个相当于是我,比如说我还是根据刚才那个数据跟从那个数据,从刚才的那个数据集中来,然后在这里他的X其实是两个分量,然后X1和X2,这个是X1,这个是X2。

然后我画了一个线是比较呃比较简单的一个线,就是他经过原点,所以它没有截距啊,没有截距的话,B就是零,所以这个大家应该可以理解,那么这个线的方程其实是X1减X,二等于零对吧。

那么相当于是比如说我在这个线上的所有的值,比如说这个一这个值叫一一,那么代入到这个方程中去,1-1就等于零,那么比如说我有一个正,我有一个正类的数据点在这里,这个点是一二,那么它带入进去之后。

他代入进去,带入进去之后,对我们在这里可以变成X2减X1吧,他带你进去之后,那么2-1就等于一,那么它代表的含义是什么,它代表的含义其实是这段距离,就是就是说从就是以跟Y轴跟Y轴是平行的。

然后这个数据点到线上的,这个数据点到线上的距离就是一,这个就是啊函数函数间隔的几何意义,好那我们可以看到对于这个问题来说,我们要找到一个最好的,我们要找到一个最好的直线,那么在最好的直线里面,就是说呃。

我先我对于每个数据点都计算出来,它的函数间隔,然后然后,有同学说好像公式好像错了,但是其实不是这样的,因为我在这里计算的是几何,是函数间隔,还不是几何间隔,所以呃后面会讲到几何间隔。

好那么函数间隔是这样,然后那么我对于每一个每一个数据点,这都可以计算出来它的所有的函数间隔,然后呃对于一个值,对于对于一个直线来说,我可以计算出来所有的,就是对于一个直线来说,我可以给他计算出来一个值。

这个值叫做叫做最小函数间隔,这个最小函数间隔就可以代表的,就是就是说我可以去衡量说,这个这条直线到底跟这个数据集的一个,拟合程度,对刚才有同学说我举的例子是X2减X1的,对,其实就是这样子,嗯好好。

那么我们可以看到,那么我们就我们可以看到,如果是对于函数间隔来说,我只要把W和B,我只要把W和B成倍的去进行增大,那么这个函数间隔就可以变得无限大,那么就我们刚才介绍的这个最小函数间隔。

其实就就没有什么意义,就是就是说呃,我我我只要成倍的把W和B进行增大之后,就可以使得这个最小函数间隔变得无限的大,所以说这个函数间隔它的含义是呃就是没有,那么就是它是一个它并不能够代。

并不能够完全的代表这条直线的一个好坏,所以说我们在这里又引入了一个几何间隔,这个几何间隔的含义,就是说他把这个值给设的,也更加的就是做了一个normalize,然后做normalize的必要必要条件。

就是说我把这个,我把这个W给设成一好,有同学,有同学在表示说函数间隔是指什么之间的间隔,函数间隔是指的是数据点和这条直线,之间的一个距离,好有同学在问Y乘以WX1加上B呃。

是和X2和X减X1是一个意思吗,在这里可能大家那个没有,就是可能大家没有没有没有那个正确的去理解,我刚才的说法是这样的,就是对于一个,对于一个对一个二维空间X1和X2。

那么我在这里其实X其实它是一个向量,就是它是X1和X和X2的一个向量,然后W也也是一个向量,所以在这里其实相当于是X1X2是一个向量,然后W1W2也也也也是一个向量,然后B是一个标量。

所以它比如说我刚才的这条直线,他是这样子,但是他其实是W1乘以X1,加上W2乘以X2加B等于零,不好意思啊,那个我的触摸板好像有点问题,然后导致他写出来的公式有点模糊。

在这里这条直线的含义其实是W1乘以X1,加上W2乘以X2,再加上B等于等于零,对,然后我我我把这条直线的,就是表达式给求出来之后,那么就变成了,其实就变成了那个就是在W等于在X1上的。

这个系数其实就相当于是负的负X1加X2,然后B因为我的这条直线是经过原点的,所以我的B应该它的结局是零,所以所以那个B是零,所以这条这条直线的方程是这样的,就是负X1加X2是零。

然后对于一个一个点二一来说,应该是一二,然后他带入进去之后就是一二,然后我代表我,我我想要我想象它是一个正类,所以说-1+2是一,就是W乘以X加上B的值是一,然后Y也是一,所以1×1。

然后这个函数间隔就是一,所以刚才的意思是这样子的,然后我们可以同时看到,除了这个W之后是什么样子的,我们可以看到,还是刚才的那个还是刚才的那个数,然后我们可以看到,其实他在这里他的W是一个向量。

然后这个向量在在X1上的值是一,在在那个在X2上的系数是一,他的W是这样子的,然后对于二一这个点,他们我们刚才计算出来的函数间隔是一对吧,然后,然后他再他再把那个令令这个数是另,令这个这个系数是一是一。

所以我们可以先计算一下,就是呃这个是W的,就是那个叫开平方的一个值,应该是二阶平方的二阶开方对,然后我们可以求求一下,我们可以先在这里先求一下它的,它的值就是一的平方,加一的平方等于呃等于二。

然后相当于是他然后再开,然后再开方之后就成了根号二,然后相当于是我们现在,W是等于根号二,然后我们令W是一,所以所以那我们就需要,那我们就需要在每个上面都开一个,就是都需要呃。

需要使得W再乘以一个根号12,就相当于是因为我现在是根号二嘛,然后我如果能让他等于一的话,那我们需要除以根号二,所以我们在W的每个分量上都除以一,除以一个根号二,这样就相当于是我计算出来的这个距离。

就变得就就变得是一个呃,是一个比较绝对的距离,其实它的几何含义就是这样子,就是我我在函数间隔上再除以一个根号二,就相当于是我把这个我把这个W的范数,然后二阶范数再除再除一下。

其实就相当于是我这个点到到直线的一个呃,一个就是最短距离,垂直距离,相当于是在这个直线的法向量上,又求出来的一个距离好,然后这个是几何间隔的意义,几何间隔的意义就代表了,就是说这个点到直线的最短距离好。

那我们介绍介绍完了这个几何间隔,然后我们再往下看,好那我们如果介绍完几何间隔之后,那我们就可以下按键,就可以推导出来说哪一条直线是最好的,哪一条直线是最好的,那个直线最好的那个就是代表说的含义。

就是说它的几何间隔是最大的,然后它的几何呃,当然我们刚才也说了,就是一个直线的几何间隔,一个一个直线的函数间隔,就是一个直线的函数间隔,就是所有的数据点到这个线的,所有的函数间隔的最小值,那么同理。

一个直线的几何间隔,就是所有的数据点到这个直线的呃,所有几何间隔的最小值,所以一个最好的线,一个一个最好的分类,一个最好的分列线就是一个最好的分类线,就是呃几何间隔最大的一个分类线。

有同学问为什么刚才除以根号二,因为是这样的,就是刚才我的W我的W是呃,我的W是一个向量啊,这个向量是一一,就这个向量的值是一和一,一和一的二阶范数就是根号二,好。

那我们刚才其实我刚才说的那一段比较长的话,其实就是用这个公式可以可以表达出来,然后我们可以使得就是因为我在这里定呃,设了一个限制,叫做呃叫做W等于一,所以我在这里呃,当W等于一的时候。

我这个伽马其实就相当于是一个呃,是一个几何间隔,然后我最大化这个几何间隔,使得所有的数据点,所有所有的数据点,所有的数据点都大于等于这个几何间隔,然后同时W还等于一,啊二阶范数就是L2就是欧式距离。

欧式距离是两个点之间的呃,是两个点相减,然后再求二阶范数,所以二阶范数跟跟欧式距离没有什么关系,就是你可能把这个概念给弄混了,就是二二阶范数是求欧式距离的一个手段吧,而二阶方式就是指对于一个向量来说。

每个分量都求平方,然后再开根号,然后把每个分量加起来,然后再求根号,有同学问呃,W的范数为什么是一,W的范数是一,就代表它是几何间隔,然后几何间隔相对于函数间隔来说,就是一个是一个比较绝对的数。

因为如果是函数间隔的话,我可以把W成倍的成倍的变大,然后就是就可以使得函数间隔也成倍的变大,所以它不是一个定值,为什么W垂直于直线,这就是那个呃就是怎么说呢,就是说这这可能就是在几何意义上。

就是说呃W的范数就代表着这个几何含义,就是它其实是一个法向量的一个一个求法,是,好,那么对于这个问题来说,我们可以看到它有很多个,为什么W等于一的条件下函数间隔最小呢,不是这样子的。

就是说函数间隔的大小,跟跟那个W等于E没有关系,就是你还可以把呃,就是说相当于是一个标准,就是我练W等于一,相当于是这个函数间隔就到了一个标准上,大家都是这样去计算的,当然因为如果不是这样的话。

你可以成倍的去调整W,然后使得函数间隔可以变大,可以变小,函数间隔不是在W点E的时候最小,而是说它是一个变化的值,而几何间隔因为W等,因为我设定了W等于一,所以它就是固定不变的,好那我们可以看到。

其实我们刚才的问题的表达,就是说我要找到一个这样的分类面,我要找到一个这样的分类面,使得它在线性可分的时候,这条直线是最好的,然后SVM的一个基本的一个核心思想。

就是说我要找到一个这样一个最好的这样的线,从而去去去个更好的去分类,然后大家可以理解的就是说,因为大家可以看到就是这条线呃,这个点到到那个到分类界面的这个距离,我们可以其实可以把它理解成为执行度。

就是说呃当这个点离这个分类界面越远的时候,我认为就是说我可以直观的去去理解,说这个点被分类的置信度就会比较高,当然当它比较接近边缘的时候,那么我可能会认为说,这个点到这个点被分类的置信度。

不是那么的好好,那我们还看到呃呃最后的这个问题的表达,就在于我要找到一个最大的几何间隔,使得呃使得所有的数据中,所有的数据点都大于等于这个间隔,就是我们,这就是我们现在这个图上的一个表达方式。

但是大家可以看到对于这样的一个问题来说,我们还没有特别直观的一个idea去去处理它,然后因为是这样的,就是就是说它有很多的条件,比如说有数据点的约束条件,然后因为它是一个线性表达式嘛。

所以它是一个凸性约束,然后呃对于这个W来说,它是一个非凸性的,然后所以比较容易达到局部最优,然后同时它的变量数是W乘以和B,还有还有这个还有这个伽马,然后所以它的变量数也比较多。

然后我们可以通过一系列的变化,使得这个问题达到简化,好第一步将第一第一步的变化,就是就是说我们我们那个可以,可以通过那个可以通过除以W除以W的方式,来消除那个W的这个W的这个约束。

有同学问为什么W乘以X加上B是正一负一,因为我们PPT里面之前有讲,在这里就是有一个函数,这个函数它就是一个指数函数,当最小的时候是一,最大等于零的时候是正一,好大家可以,现在可以听到吗。

啊好可能刚才那个刚才网络有些问题,好,那我们可以看到就是我们在刚才有一个,这有一个这样的原始问题,然后我们在这里做一下简化,就是说我们把W等于一的那个限制给去掉,然后我们在这里就是做了简化。

就说我们把W等于把W等于一的限制给带到,这个给带到这个限制给带到这个约束条件中来,然后我们在这里两边都除以一个W,这样相当于是我wt除以了这个W之后,除以了W的二二维就是二阶范数之后。

那么在这里整个它就是一个它就是一个呃,他就是一个在这里除以它之后,那么W的范数其实就是一了,然后同时我们做了一些,我们那个在在这个嗯,在不等式的两边都除以了W之后,那么伽马除以这个W其实就相当于是嗯。

是几何间隔呃,是这样的,就是就是说有同学问这个W不是一吗,这个W的范数不是一吗,我们在这里有有一个条件是是W范数等于一,然后我们先把这个W的W的范数等于一,给给调整到那个就是给去掉,然后给调整到那个。

给调整到给调整到函数表达式中去,好我们可以看到在这里,为什么去掉,然后去掉的原因就在于,我可以使得它这个问题变得更加简化,然后我在呃我们大家可以先不看最下面这一行。

我在上面两行的每一个地方都除以了一个W,多出一个都除以一个一个W的二阶范数,然后就,然后就相当于是我把W等于一的,这个条件给加进去了,相当于做对,有同学已经说了,相当于做了归一化,然后我在这里。

其实是因为我的两等式两边都除以了W,所以我还我还可以把这个W消掉,然后整个问题就变成了,我去max这个伽马除以除以W,其实相当于是相当于这个问题,就变成了一个这样的问题,就是伽马是函数间隔。

函数间隔除以W模之后,那么它就是几何间隔对吧,就是我在这里,我本来伽马的含义是是函数间隔,然后除以了W2阶函数之后就变成了几何间隔,然后在这里,我仍然我的条件仍然是那个大于等于伽马,好因为我在表达式中。

我在这个表达式中,W和B可以通过成倍的调整去呃,去使得呃去使得伽马可以变成一,所以我在这里又做了一个简化,就是说我直接把伽马给设成一,然后在这里相当于是伽马等于一之后,它就变成了W的二阶范数分之一了。

然后最最大化这个函数,就其实就相当于是最小化,最小化W的范数,所以我可以把这个最大化的问题,给变成一个最小化的问题,所以在这里就做了第二个变化好,那么最终问题就变成了呃。

调整W和B使得WW的二阶范数的平方,是是最小的,因为在这里大家可以看到我突然加了一个平方,然后然后这个平方的含义就是,因为W作为一个距离,他其实是那个什么,就是他呃加加上平方之后,其实是我自己设的。

然后1/2也有同学也说了,是是为了封面求导,然后最大化最小化W和最小化W的平方,其实是呃是是一个意思,就是说他们是叫什么叫正相关,所以在这里其实我在这里应该是最小化,最小化这个W。

然后为了便于后面的计算,所以我在这里加了一个平方,好,那么最终问题就变成了最小化二分之1W平方,然后使得我满足这些条件,好,那么这个问题其实就变成了一个呃,比较就是在数学上就可以解决问题。

然后相当相对于之前我们的呃,我们的公式,然后他减少了一个参数,就是伽马,我们把伽马在这里在之前给给生成了一对哦,我们现在的问题跟刚才的那个,跟刚才最开始那个PPT里面的那个问题是等价的。

然后在我们的高等数学里面,就有一个这样的函数和这样的方法,去解决这个问题,就是去去U去最小化一个东西,使得它能满足某些条件,好那么这个这个东西是什么,这个东西就是拉格朗日函数,然后这个拉格拉格朗日函数。

如果我没有记错的话,应该是在高等数学里面,可能是上一期的上上册里面,会有这个函数的解释,这个函数呃,我们先回顾一下拉格朗日函数,拉格朗日函数的意思,就是就是说我最小化一个FW。

使得呃使得它满足条件hi额hi w等于零,然后,有同学问为什么引入拉格朗日函数,引入拉格朗日函数的一函数,的目的是为了去求解这个问题,好那我们在这里就是我们的,我们可以先假设一个简单的问题。

简单的问题就是就是说最小化呃,FW使得他满足这些约束,HIW等于零,然后我们有L个这样的这样的啊,这样的这样的函数,这样的约束,然后我们构造一个拉杆式函数,这个拉杆朗日函数就是说除了W之外。

我再加一个贝塔的一个一个值,然后这个值就是说,我把那个约束条件都给添加到目标函数中来,对,然后再后面就是LW乘以LW贝塔就等于FW,然后后面是所有的所有的呃约束条件,然后我在这里我要求我要求解这个问题。

其实我要求解的问题是,最后的是那个呃FW的最小值,然后那我就让L就是这个LW贝塔,对所有的WI的偏导数都是零,然后那L对于所有的贝塔I的偏导数都是零,那么我们可以看看它是什么含义呢。

我们可以看一下LWLW贝塔,它的它它对于那个他对于,呃我们现在可以先看LLL对贝塔的偏导,L对贝塔偏导,其实就相当于是只跟那个只跟hi打不了相关,然后在这里就相当于是呃,我令啊L对贝塔对贝塔的偏导。

其实就等于HIW,然后在这里我要求解它,我们到最后要达到一个这样的效果,就相当于是hi w等于零,那么我们先看哦,那我们再看L对呃,对WI的偏导,就相当于是FW对那个对对对,对那个WI的偏导。

然后再加上后面的那个hi贝塔,HIW对那个对对对那个对WI的偏导,然后其实最后达到的目的就是FW是最小的,好那我们这是拉格朗日函数,然后我们可以看到有一个叫有一个扩展,就说可能高等数学里面没有。

就是就是说高等数学里面讲的那个都是呃,它的约束都是相等的,然后然后在这里,我们在广义上可以引入一个不等的一个呃,JW的函数,好呃那么这个函数我们可以看到,同样的我们还可以去构建一个拉格朗日方程。

然后这个拉格朗日方程,其实相当于是,我把两个优势和线都分别加入进来,都分别加入进来,然后对于对于那个等式的约束条件,我们用贝塔系数去做,然后对于那个不等式的右边,我们用阿尔法的基础去做好。

对于一个有不等式的,有不等式的拉格朗日方程来说,我们对它的求解,就比刚才只有等式约束条件的时候,就变得复杂了一些,它的复杂地方就在于哪,就在于我在这里JIW这个是一个是一个不等式。

所以我要求到FW的最小值的时候,我需要我需要去做一个,我需要去做一个最大最小的一个变化,有同学问为什么是加在这里,加其实只是一个通用的含义,在这里如果贝塔是负数的话,那么就相当于是减了,好。

那我们可以先做一个这样的,一个这样的一个变化,叫做极小极大,首先我们我们先对这个拉格朗日的这个,所有的这个变化后的这个函数求极大值,我们可以看到我们在这里其实有两个设置,第一个设置是阿尔法A是大于零的。

然后贝贝塔是无所谓的,那么我们调整阿尔法贝塔,使得我们先不管FW,使得那个可以看它这个西塔W,它的值可以变得有多大,我们可以看到,如果大家注意啊,如果都满足条件的话,那么HIW是零。

那么GIW是小于等于零的,然后在这里不管我怎么调整阿尔法和贝塔,那么它的它的那个最大值都应该是零,这一步大家可以理解吗,好那么我们可以我们那我们可以再看,如果当当某个条件不允许的时候。

比如说HIW它它不等于零了,那么我可以通过调整贝塔,我我使得贝塔调整的特别大,然后就可以又可以使得那个它的,比如说我可以使得那个是贝塔,调整到一个特别大的数,然后他就是一个正无穷大。

嗯对如果GI不满足条件,当然了,当然如果JI都满足的话,那么JI是小于等于零的,然后阿尔法I是大于零的,所以阿尔法I乘以JI,永远都是一个小于等于零的数,但是如果JI是一个大于零的数。

那么阿尔法我们可以使得阿尔法特别大,然后同时就可以使得GI就变得特别大,对吧,然后大家可以可以理解,就在这就是对于这个公式,我们求求最大值,当这些条件都到这条不满足的时候,那么它的最大值就是一个贝塔。

我总可以调整调整阿尔法贝塔,使得使得使得这个CAPW是一个正无穷大,当然当他都满足的时候,那么它的值就是FW好,那么我们再对这个C3PW再再去求极小值,然后我们调整W让他求极小值。

相当于是如果所有条件都满足的话,那么我们对这个公式的求导就是FW的最小值,就是原问题的解,但是如果呃hi和GI有有某个条件不满足的话,那么我们求到的这个最小值,就其实就是正无穷大,所以它没有最小值。

所以我们就求不到FW的解,好这个是广义拉格朗日函数,好我们大家可以看到在这里我们设一个P星,就等于那个就是这个问题,就是极小极大问题的一个最一个最优解,我们在后面会不会用到好,那么它有一个队友问题。

队友问题其实其实很简单,我们就是把把这个把这个min和max给那个,给给那个翻转过来,就变成了max m,好大家可以那个就是可能看到这么多公式,会觉得比较比较比较生疏,然后大家就是说对于一个知识点来说。

我们知道他的目的是什么,就先足够了,然后我们可以可以先看到,我们可以先在中间,我们可以那个对于一些具体的细节,我们可以先记住,然后然后后面再慢慢理解,好我们在这里讲对偶问题的,对偶问题的原因是什么啊。

对文件的原因就在于我对问题的一个简化,就是说我讲了这个对偶问题之后,相当于是我的目的,是为了把那个极小极大的问题就转化成极大,极给点给转化成极大极小的问题,这样我在求解上就可以。

就在求解rs s vm的时候就可以变得比较简单,所以这是广义拉格朗日,我讲广义拉格朗日函数的一个目的好,那我们可以看到极大件问题,就相当于是一个呃max命的一个问题,然后同时在求max的时候。

我是调整阿尔法贝塔求命的时候,我是调整W,好在这里,然后在这里呃就是呃我们先下定义,就是就是说呃一般来说不是,一般来说就是我们有一个严格的区间的,就是就是那个地星就是极大极小问题,极大极小问题是极小。

极大问题的一个对偶问题吗,然后他的最优解是地星,然后地星是小于等于P星的,好有有有同学表示,那个有有同学表示这次有点听不太懂,就是这样的,就是这一部分广义拉格朗日函数的这一部分嗯。

大家是可能是需要记一下的,就是它相当于是一个数数学知识,然后我也不会给大家展开去讲,然后大家只要知道在这个地方可以去验证对哦,我可以把那个SVM的解释方法呃,求解方法给,由那个最得由极小极大问题。

变成极大极小的问题,好在这里1D星一般是小额,是小于等于P星的,地星是对偶问题的对偶问题的一个一个答案,一个最优解,然后呃所有队伍问题就是极大极小问题,然后P型是极小极大问题的一个最优解好。

那么当这些约束条件都满足如下条件的时候,就是约束不不等式G都是凸函数,然后再在这里,因为我们的呃,因为我们在SVM中,它的约束条件都是线性的,所以线性函数都是凸函数。

所以呃所以SVM的问题是满足这个条件的,然后第二个条件是约束等式H都是反射函数,然后仿真函数其实和线性都是等价的,然后在我们的SVM这个问题中,它的呃这这一条也也是可以满足的,然后不等式是严格执行的。

然后在这里就被不等式时间之前,就就代表就是那个不等G不等式,是肯定是有那么一到两个,有至少有一个是肯定小于零的,而不是都是等于零的,好,这三个条件是就是就是说不是需要大家理解的,就是需要大家记住的。

就是他是数学课本里面,可能是数学课本里面就提出来的好,那么在上述的这几个假设下,只要满足KKT条件,然后就就使得那个对偶问题和原始问题,是是等价的,好好那我们来看一下KKT条件。

KKT条件其实就是相当于是五个条件,我们再看一下,那就是我们刚才那个不等式和等式的右条件,都加到一般还是能去的,一个最后的表达式是这样的,FW加上西格玛嗯,贝塔I乘以HI,再加上西格玛阿尔法乘以GI。

在这里需要满足五个条件,满足了这五个条件之后,就使得对,就使得那个队友问题的最优解,和原始问题的最优解是是那个等价的,这五个条件是分别是这样子的,大家可能在这里是要记一下,然后我们可以看一下。

当然如果他是,我们可以看一下,当然如果这五天的含义分别是什么阿尔法,我们先看第三个阿尔法,I乘以JI是等于零的,相当于是相当于是在在在这里,因为我们GI是一个不等式的表达式,那么当GI小于零的时候。

我们就肯定就使得阿尔法的这个值是零,所以它才能等于零,当那个呃GI是小于小于零的时候,那么当G是那个等于零的时候,那么我们在这里阿尔法还可以不用是零,可以可以是任意值,然后他这个条件就可以满足了。

然后同时GIW型是小于等于零的,就是不等式的条件,要满足,然后阿尔法星是大于等于零的等等,对,有同学说,拉格老师和KKT当定理记住就可以了,对是的好,那我们在这里,因为它是需要我们记住的。

所以就记住就好了,那我们在刚才的那个问题上,使用那个使用我们刚才讲的拉格朗日方程,我们在这里就是我们把不等式的这个这个条件,相当于是变成了负的,就相当于是只有因为我们在原始问题里面。

可能只有不等式的约束条件,所以在这里就就写出了就是这个的公式,就是我们原始问题可以变成这样的一个,一个问题,然后再使用拉格朗日方程之后,就变成了一个这样的问题,变成了LWB和阿尔法。

因为没有那个没有等式的约束条件,所以我们就只有嗯只有不等式约束条件,然后就变成了这样,好啊,有同学来表示,那就是就是那个应该是这样,就是支持向量机,比较比较就是数学知识会比较多一点。

所以可能大家理解上都会稍微有点嗯,就是一遍可能理解不透吧,有有同学表示这样的对,其实就是这样的,但是但是大家一定要坚持下去,因为后面已经到了简单的部分,好那么我们刚才可以看到,其实我们把把这个问题。

套入到拉格朗日方程中去之后,就得到了一个这样的表达式,这个表达式就是我们要求解的目标,我们要我们要求那个,我们要求二分之1W2阶范数的最小值,然后我们使用对偶问题去去去求解。

然后队友问题就是先先求极小啊,再后求极大,好在这里就是我们先固定,先固定阿尔法,然后对W和B进行求导,然后,其实就是我们对这个式子,然后我们先固定阿尔法,阿尔法是不变的,我们先不管它。

然后对对于那个W和B先去求偏导,然后我们可以看到,如果是对W求偏导的话,那么它就变成了是对这一项求偏导,然后然后再再再把这一项给,再对这项再求偏导,好这一项,Sorry。

在二分之1W的平方的这一项求偏导的时候,其实我们可以比较简单的,就是比如说我们之前对X的平方求偏导的时候,二分之1X的平方求偏导的时候,它其实它的偏导就是X在这里其实是一样的,就是虽然他加了范数。

我们也可以一栏把它当成是一个呃,当成是一个数就好了,然后在这里我们就可以让他就是二分之1W,二分之1W的平方求偏导就是二,其实就是W4级,然后在这里跟在这个西格玛里面跟W相关的,其实就是就是这一项。

这一项跟W相关,然后因为我们是对W求偏导,所以在这里只有一个W自己,所以我们把系数提取出来就好了,在这里就是其实就是西格玛,阿尔法A乘以YI然后再乘以X,然后把这两项加起来,就相当于是W减去它。

相当于是这一步我们对W求偏导,其实就是这一步的W,还有这一步的阿尔法IYI乘以X,I加起来就就是W的偏导,然后如果是对B求偏导的话,因为我们在这里跟B相关的其实就这一项,所以而且它是一个一次项。

所以我们在这里就只需要把它的系数提出来,就可以了,它的系数就是啊阿尔法I乘以Y,所以这是B的偏导,然后我们可以看到最后的求解就是这样子,就是呃这个LWB阿尔法对W求偏导,就是W减去C干嘛。

阿阿尔法IYI乘以XI等于零,又推出了W呃,就是我们在这个值最小的时候,我们就得到了W应该等于西格玛阿尔法,IYI乘以XI,然后同时那个对B求偏导,就是阿尔法IY我刚才就已经看到过了。

然后因为我们求出来这个之后,我们再把这两个式子,再再把这两个式子再代入到原始的,再带入到原始的这个这个表达式中去,然后我们就可以得到一个新的问题,我们可以看到这个是一个代入的过程,就是把把W的性质和和。

那个和和这个式子都代入进去之后,我们来看第一,第一步是这样代入的嗯,首先第一步是二分之1W的平方,我们可以写成这样,然后第二步我们把它先先展开,就是把这个西格玛的这个数字先展开。

第一步就是阿尔法I乘以Y乘以WT乘以XI,然后再减去再把B的这一项展开,就是阿尔法I乘以Y乘,再乘以B,然后再因为这里有一个负号,所以后面应该是一个加上西格玛阿尔法,那么我们可以看到。

因为我们刚才看到了B在这里是一个标量,而阿尔法I乘以YI乘以西格玛的这一项,就这一项它其实是零,然后我们就可以把这一项就可以干掉,然后我们在这里,因为我们可以看到有一个W是等于一个数的。

所以所以我们把W这个数给带入进来,就成了这样,然后这一项也也也在这里,这一项其实跟那个跟这一项其实是一样的,就是就是说把W带入进来之后,那么投头里面的这个WT乘以W,跟这一项就是其实是一样的。

但是它后面它前面有一个系数是1/2,所以1/2的这个数,再减去它本来这个数其实就是-1/2,变成了-1/2,所以在这里是这样子,然后我们把西格玛阿尔法这个数再放到前面来,然后就成了一个一个这样的数。

然后就成了一个这样的视频,同时我们在这里看到还有一个wt,所以我们还可以把这个WT再替换掉,就成为了一个这样的是不好,然后最后我们可以看到我们把把那些把把W的,把W给替换掉,然后把AI乘以Y西格玛。

把西格玛AI乘以Y等于零,这个给带入进去之后,这个公式就变成了这样的一个公式,那在这个公式我们可以再做一个变化,就是说把这个西格玛的这一项提到前面去呃,呃也相当于是把阿尔法A乘以YI给提到后面。

给给进给提到那个给放到西格玛函数中去,然后就得到了一个这样的式子,就是后面就变成了所有的式子都放在一起了,然后同时因为阿尔法I,阿尔法GYYG都是标量,所以他们都就是一个数,可以看成一个数。

然后后面XG和XI其实都是向量,所以可以把它看成是一个内积,然后所以最后的问题就变成了调整阿尔法,使得后面这个式子是最大的,然后同时我满足几个给我条件,就是阿尔法I是大于等于零的。

西格玛I等于1M阿尔法YI是等于零的,然后这个是我们上一步求出来的,所以到现在为止,我们的这个问题就变成了这样的一个问题,是我们刚才是最原始的那个问题,已经现在对我们被我们变换的,是就被我们变化的。

可能我们现在也完全不是特别认识了,就变成了这样的一个问题,好那么在这个问题里面之后,我们可以先直观的去理解一下,去去去理解一些,就是中间的一些值的概念的含义,第一步就是就是说做阿尔法。

阿尔法是大于等于零的,那么什么时候是大于零的,什么时候是等于零的,我们在这里大家可以先记住,就是说在求解完之后,每一个非零的阿尔法,就预示着它是它是支持向量,所谓的支持向量其实就是那个就是他在边界。

它在那个呃,他在边界点上的,它在边界上的一个一个向量,好,在这里给大家写一下支持向量,好比如说这个这条线是最,是那个我们的支持向量的分界面,然后然后同时我这条线平行的,往往两侧去去推展,那么在正力上。

在正力上我肯定会会遇到一些正立的数据集,然后在负利上肯定会遇到一些负利的数据集,复利的数据点,然后当然在编辑之外,还有还有很多还有很多数据,那么当阿尔法等于零等于零的时候。

那么就就代表的就是说这个点是在这个,是在这个平行,是在这个跟分类界面平行的一个线上,然后是呃离就是说是是这个分类界面的,是这个分类界面平行的,往正面的方向推推到遇到第一个阵地开始,然后就再停下。

然后就遇到了一个这样的知识向量,当然如果是阿尔法不等于零等于零的时候,那么就代表他不在这个线上,这个是阿尔法的概念,然后第二个概念就是说,我把我的分类模型本来是FX等于呃,当然这在这里可能缺一个东西啊。

就是缺一个指示函数,等于WX加上B,然后我们可以把W给代代入进去之后,然后就就成为了一个这样的一个函数,然后这个是我们最后使用的分类模型,那么在这里我们可以看到,它其实是对于训练数据。

训练数据集中的所有的点,就是R所有的点都在这个计算中去,都在这个计算中,所以当阿尔法就是对于支持向量来说,这个阿尔法是不等于零的,对于非支持向量来说,这个阿尔法是等于零的,所以就相当于是新数据的分类。

需要和所有的知识向量做内积,因为阿尔法不等于阿尔法等于零的时候,相当于是这个数据集,这个数据点就没有起作用好这是第二点,然后第三点就就就在于就是说我在训练的时候,我其实是用到了一个所有的一个。

一个数据点的一个内积,好这个是co间隔分类器,我们带入拉高,我们带入了拉格朗日之后的一个求解过程,好,那么接下来我们可以看哦,那我们接下来再看这个函数,再去怎么这个问题再怎么去求解,就是调整阿尔法。

使得这个函数最大,使得这个这个目标函数最大,然后同时满足这些条件啊,这些都比较简单了,已经不算是约约束了,所以在这里我们需要用到一种新的,我们需要遇到一种新的优化方法,叫做,SMO算法。

然后SMO算法跟之前的跟之前之前,可能大家在课上有学过那个梯度下降,还有牛牛顿推导等等的方法,然后SM算法跟他们是呃略有不同,然后呃你可以这样的话,它的基本思想是什么,首先我们可以先看一个简单版本。

就是叫坐标上升法,对于对于一个对于一个问题来说,就是我我的W,我有个W,然后这个W是个函数,这个可能是一个很复杂的函数,然后它有很多参数叫做阿尔法一,阿尔法二和阿尔法N,然后我该怎么样去求解这个函数呢。

然后这个这个这个时候用到的叫做坐标上升法,然后这个坐标上升法的基本的思想就在于,首先第一步是,我去不停的去执行下面的这个命令,然后在直到收敛为止,然后下面那个面是什么呢,就是说我对于每一个阿尔法来说。

我都去单独的去对它进行求解,而不是说去对每一个去求解,我们大家知道如果是如果是梯度下降的话,那么它会它会对所有的参数都求出来梯度,然后统一去更新这梯度,在这里它的不同点就在于。

我在这里我先fix入其他的所有的参数,然后只优化这一个参数,然后把这在当前的参数状态下,我把这一个参数给优化到最好的时候,然后然后再去优化下一个参数,然后这个就是坐标上升法的一个基本的思想。

好那么有一个图示是这样去去去解决的,比如说在一个二维的情况下,再一个就是我们在这里是阿尔法一,到阿尔法N嘛,然后假如说只有阿尔法一和阿尔法二,那么我们就相当于是先先调整一个维度上的,比如说先调整这个呃。

竖竖着的这个位上的阿尔法值,使得它在目标函数上能够达到一个最优值,然后我再我再调整横坐标的,代表了这个这个分量的参数值,然后使得它在目标函数上达到最优值,然后然后我们在我们再去调整。

那个Y轴上的阿尔法值,然后使得它能达到最优值,然后然后再调整X轴上的这个这个过程,这个循环的过程其实就是呃,坐标上升法的这个一个计算过程,好有同学问这是随机推向上吗,就是它不是随机选项。

他跟我刚才也说了,就是说它跟随机梯度下降的区别,就在于随机梯度下降,它会同时更新所有参数,就是给所有参数都计算出来呃,都系统出来梯梯度值,然后去更新所有参数,而呃这个坐标上升法它是呃在一个一个状态下。

它只更新一个参数,然后是一下子把这个参数调整到,当前的参状态下,这个W的最优质的的这个这个地方,然后再去调整下一个参数,好,那我们那我们看到的就是这个这个方法,其实是一个比较简单的一个坐标生成法的例子。

那么对于我们的这个问题该怎么样去去优化,首先我们再复习一下,我们刚才刚才优化后,就是刚才做过转化后的一个嗯一个问题,然后他的问题就在于求解这个这个问题,调整阿尔法,使得目标函数最大同时满足这几个条件吧。

然后但是在在这里有一个问题就在于阿尔法I,阿尔法I是有是有那个是有嗯限制条件的,阿尔法I乘以Y的西格玛值是等于零的,所以在这里,他并不能够像像普通的坐标相乘法那样,去去调整一个维度上的值。

使得它使得目标函数最大,因为他在这里有一个约约束条件,就是我更更改了一个阿尔法的值之后,我的我肯定会有另外一个肯定会需要调整,另外的阿尔法值,使得这个这个条件要再满足了才行。

所以说SM算法的基本核心思想,就是说我每次都去选择两个变量去进行优化,他跟那个普通的坐标方法有一个区别,就是说因为他多了一个约束条件,所以他每次选择两个变量,然后因为一个变量变化。

我们再调整另外一个变量,肯定都能使得这个表达式的这个优势条件,肯定还可以继续满足,所以他要这样去解决好,那么我我的算法流程就变成了这样,就是重复上面的操作,直到直到那个直到收敛为止。

然后每次操作是什么呢,就是说我选择两我随机的去选择两个参数,阿尔法I和阿尔法G啊,因为是两个嘛,所以I不等于G,然后我我去优化这个最后的目标函数,我去调整阿尔法和阿尔法G,其其实呃跳动阿法I和FID。

其实只只需要动一个,因为你动一个,另外一个可能会自动随着动的,因为它有约束条件的,他有约有约束条件在里面,所以我调整阿尔法I,使得在当前的参数来下W阿尔法是是最大的呃,是是最优的。

呃有同学问阿尔法IG是一个变量吗,不是阿尔法I是一个变量,阿尔法G是一个变量,但是因为有约束条件,阿尔法I乘以Y的西格玛等于零,所以所以比如说我在这里举了个例子,就是阿尔法一和阿尔法二吧。

其实我调整了阿尔法一,阿尔法二也应该跟着在一块变,所以在这里其实我选我虽然是选择了两个变量,但其实是只选择了一个变量好,这个就是SMO算法的一个基本的核心思想,就是坐标上升法的一个变种,然后对。

然后呃可能也是就是今天的今天的,可能今天的主要内容会比较的复杂,然后大家可以分块的去理解,就是就是说比如说呃,可能大家前面拉格朗日那块没有理解,那么我在这一部分SM算法就可以理解了。

那么也是就是比较好的,就是说呃,尽量把这个知识给分成一块一块的去理解,这样会比较快,对有同学说,单词相等式是不是只有阿尔法I和阿尔法即变,对是的,在SMO算法里面就是这样子的好。

那我们现在已经经过了一个小时15分钟了,然后大家可以先休息一下,我们再讲后面的,然后经历了前面的很多公式推导之后,后面的内容会越讲越简单,希望大家不要走开,然后我们休息3分钟,然后9。18的开始。

然后大家有什么问题,可以在可以在那个在群里面提出来,好看到里面有些问题啊,第一个问题就在于那个单次调整时,只有阿尔法和阿尔法G变啊,这个问题我已经回答过了,后面调整阿尔法I和阿尔法G的。

这一次是什么时候是停止条件的,停止条件就是呃,在这里有一个阿尔法,A是大于等于的约约束条件,然后这是第一个条件,第二个条件就是说它调整阿尔法I,使得这个函数使得目标函数最大。

嗯对有人说是普通的坐标上方法是重复,每一个阿尔法都收敛吗,对是的,他是先有一个有一个最开始有一个阿尔法,就是所有的参数的一个状态,所有参数的一个状态,然后调整其中的一个参数,使得目标函数最优。

然后在这个基础上再去调整另外的参数,使得你把函数最优,等等,然后现在SVM用的多吗,嗯是这样的,就是现在很多问题上,其实都在转用转用deep learning的方法。

所以但是SOM作为一个比较强大的算法,就是他在之前很多年都曾经是呃,欺负那个地方呃,欺负神经网络算法的,所以现在在一些比较传统的问题上,还是有很多用处的,是让谁收敛,就是让现在我就是现在这些PPT上的。

这一表函数收敛,然后老师现在是做什么工作的,然后我现在这边我是在google,然后我现在是在做呃,就是做两个方向吧,第一个就是就是算法,然后后面还有一个是安卓,就是说现在相当于是前端和算法都会做。

就是说有一个很奇怪的,有的就是很很很可能跟大家的工作的公司,不太一样,在google里面就是只要编程合格了,他他就认为你是啥都能做,然后所以虽然我是主,我的主页是算法,但是也会做一些前端的事情。

对有同学说SVM也可以在小M上用,就是有一些问题,比如说你的数据集是比较嗯,可能刚开始没有那么多,所以你可以用SVM先快速的做一些,做一些实验,结果出来,算法偏哪方面偏。

deep learning就是循环神经网络了,我同学问调整是不是让偏导都等于零,在这里其实就没有就没有偏导的这个概念了,因为他看感觉看起来像是一个一个线性的问题,所以你就直接能找到它的最大值就可以了。

现在图像方面,基本上应该都是基于深度学习的吧,SVM主要文本处理主要在哪些方面嗯,可能用的最多的就是文本分类嗯,好那我们时间差不多了,然后我们开始继续继续我们的我们的课程,好那么正如我刚才所说。

就是后面公式会越来越少了,我们的讲解会越来越清楚,好第一个,那么我们回想一下问题,就是我们刚才讲解问题的时候,所有的问题都在都在说,都在提前说说这个数据集是线性可分的。

那么当数据集不是线性可分的时候该怎么办,那么XYM还可以处理吗,好在这个时候我们可以看一下,其实是这样的,就是说当数据不是线性可分的话,你可以做一些做一些映射,使得使得这个我们现有的数据。

在当前空间下可能不可分,但是我们映射到一个新空间之后,可能就变得可分了,然后就我们就比如说一个二维的数据集,我们做了一个做了一个映射变换,把它把它映射到三维去,然后就变成了一个这样的数据集。

然后这样的数据集其实就变得就是可以区分了,其实呃the u比较直观的就是,它其实也可以在二维上做变化,比如说他现在是IPHONE11和X2嘛,我在每个数据集都都变成X11的平方,加X2的平方。

那么那么这这这些点,应该都会集中到第一象限中来,然后这些蓝色的点滴,都会集中到第三间的这个位置上来,所以这也是一种可能的变化,当然映射到三维空间上去,也是一种可以可以实现的变化。

就是说我经过空间变换之后,我可以使得这个数据集从不可分变得更加可分,所以这有一个空间变化的问题,然后空间变化就相当于是本来我做空间变换,就相当于是我对每一个数据点都做些,都做了一个做一个映射。

比如说我有一个函数嗯,比如说我有一个函数是是F,然后FX然后我们在新空间里面那个X6吧,都等于FX,然后做一个这样的变化,然后我再在这个X6的这个数据上,再可以再去构建一个。

再去构建一个SM的等model,然后去去运算就可以了,但是那么有什么方法可以可以,就是我们不显示的做这个做,做这个不显示的是对数据去做处理了,然后就直接在model里面就可以体现出来。

正好我们也可以看到我们刚才ISOM呃,就是呃简化到最后它形成的问题是这样子的,在这里有有一个有一个续呃,有一个分量是XG和xi的一个内内积,那我们可以在这里就直接对啊,对XG和xi去做变换。

其实就可以了,这个就相当于是我我我本来就是我本来的步骤,是需要把呃X显示的做一个做一个变换,生成一个新的数据集,叫X6,然后在X6上再去做一个,再去做一个XM的model,但是因为我们到最后SM优化的。

最后是一个这样的表达式,所以呃在这里有一个X,在这里只有一个地方用到了X,所以我在这里直接做就可以了,就可以省掉那个省掉在硬盘上占用的空间,不用生成新数据集了,然后这个是第一第一个省掉的地方。

我们省掉了很多空间,然后第二个就是就是说因为XG和xi,我做了映射之后,可能投射到一个引入了一个叫做合技法,这个合计法其实它的概念就是这样子的,就是说我定义了一个核函数。

然后这个核函数我可以把它看成是两个,两个经过变化后的,两个经过经过空间变化后的向量的内积,然后这个就是核函数的一个概念,好那我们在这里引入引入了它的,我们应用它的定义就是和核函数。

它对应的是一种映射函数啊,这个映射函数可以使得呃,数据集从旧旧的空间映射到一个新的空间,然后为什么使用核函数就到,就就是就是说我映射后的向量,可能维度会非常的高,然后导致内机计算量比较大。

然后我用核函数,我可以比较省略的去计算这个和好,我们可以看一个和函数的例子,第一个,第一个和函数的例子就是呃,贺函数XZ就是在这里,Z是相当于是跟刚才大家看到的一样,就是XY和XG吧。

在这里我用一个比较general的方式,就是X和Z,然后它的和函数是X乘以Z的平方,然后把这个式子给展开,相当于是,就相当于是嗯把这个式子展开,就等于就等于到最后的式子,然后我就不一一给大家去说了。

然后这个我们可以看到,我们可以看到它其实就相当于是,我把X和和和Z分别映射到了这样的一个空间,就是在这里他最后简化成的函数是X3XG,相当于是相当于是说我把X给变成了一个XI。

XG就相当于是枚举枚举两个分量,然后的乘积,然后那么它的映射函数就是X1X1,X1X2等等,一直到X乘以XN,那么这个对应的映射函数的,映射函数的长度就是N的平方,因为它是从里面任意选两个分量。

然后乘积,好那我们可以看第二个和函数的例子,第二个和函数的例子,其实就比较跟刚才那个就稍微变化了一下,就加了一个C,然后相当于是我来这里需要嗯,需要把平方给展开,然后它的对应的函数其实就是这样子的。

相当于是我在这里,也需要去对每个平方去做检查,然后然后再把根号2C的这个分量,也就给加到这那个加到里面了,同学们,这是常量吗,这不是常量,ZZ跟X是一样的,是一个是一个是一个向量,都是都是一个数据点。

好那我们我们可以看到就是在做了变换之后,那么这个对应的对应的应用函数,其实都是比原来的的维度要高很多,比如说呃,第一个它的运算函数的,最后的这个呃向量空间其实是N的平方,我们之前是比如说之前的维度是N。

现在就变成了N的平方,然后他的幅度比较大,然后我们就可以看到,和核函数其实是可以降低了计算量,然后另外的一个一个层面,就是就是说X1和X2,其实度量的,其实是在一个在一个对应的维度空间中的。

一个位置的一个一个度量,所以说我可以使用一些使用,使用一些那个其他的相似度的函数去做,比如说在这里就引入了一个叫做高斯函数啊,这个高次函数其实它也是就就算了,距离我我在这里高斯函数的呃。

输入同样是X和Z,然后它的它的表达式是X减Z的二维的平方,然后除以二的这个这个值,然后再求指数好,这个是一个比较常用的和,然后因为他也是去matrix距离的,同学说FX和Z没关系。

对FX和FX和FZ去去再计算,在计算内积,然后KXZ其实就相当于是FX和FZ做内积,好这个是和函数的一个基本的一个思想,然后什么样的和是,啊有同学说怎么样体现计算量的连接上,我们可以看看这个例子。

比如说我在这里,我去求这个和它相,当于是我在XT乘以Z,其实都是在在N维空间里面的,就是,XT其实是一个属于N维的,然后Z也是属于N维的,所以X乘以Z其实就相当于是,它的复杂度是ON对吧。

然后我们可以看到它对应的它对应的映射函数,对应映射函数之后,在映射函数过过变换之后,那么XT他就从一个N维空间就变换到了一个,N方X6吧等就等于二的N方的对于空间。

所以所以他在这里如果是XT的变化后的值,变换后的向量和ZT变换后的Z变换后的向量,它其实它的计算内积的实验法,都是ON的平方对,所以这就是它降低计算量的一个一个方法,就是从ON的平方降低成了ON。

当然对于不同的和它映射的空间是不一样的,比如说后面的这个,后面这个高斯和他其实是对应的,一个无限维的空间,然后再在这个时候嗯嗯就不是降低,否则降低计算量的问题,就是说是根本不能算的问题,好到这里。

就就是说呃高斯和对应无限的空间的这个概念,其实相当于是呃,因为对于一个E的指数次方来说,可以通过高数里面的那个叫做呃叫做,泰勒泰勒展开的一个方法,然后去把它展开,所以是无限维的,好我们继续往下讲。

什么样的和是合法的,然后在这里有一个充分必要条件吧,就是一个定理,然后我就不给大家去去多说了,就是说对于一个数据集,然后它对应的合矩阵应该都是对称,半正定的矩阵。

然后这个呃呃可以说一下对应的和矩阵是什么,核心,就是比如说我有XN个呃,就我一个数据里面有N个数据,有N个数据,N个样本,然后我对每每两个样本去计算,通过这个和去计算一个值出来。

然后相当于是我有N的平方的值,然后这N的平方,就相当于是可以组成一个矩阵嘛,然后这个矩阵是一个叫做和矩阵,还有同学问增肥后一定会更好分吗,呃是这样的,就是你你作为一个数据集来说,可以这样理解。

就是增肥后不一定不一定马上,不一定肯定是线性可分的,但是肯定会有更大的概率是线性可分的,好,那么我们可以看到常用的核函数,就是一个是多项式,一个是高斯,还有一个是SIGMOID呃。

和矩阵的每个元素是不是常量和矩阵,每个元素都是一个值,都是一个标量嘛,不是常量,这应该应该叫标量,一个数叫标量,一个呃,标量向量矩阵,好没有多项式的核函数,高斯核函数和西格玛的核函数等等。

然后然后当然还有一个最基础的就是没有加,没有加任何的和,就是就直接算内积的那个那个叫线性核函数,好,那么如何选择和函数,其实其实在所有的核函数里面,其实一般使用频率就按经验来说。

使用频率最高的其实是高斯核和线性格,然后大家可以看到就是可以根据一些呃,从你的数据集上的一些特点可以选择,可以选择不同的和,比如说当你的特征数不很大,但是样本比较少。

然后在这个时候相当于是他的空间已经很很,他就是他的样本数比较少,但是它的空间维度很高,所以我们在这个时候,就一般认为说它很有可能是线性可分的,所以一般用线性盒就可以了,当你的特征数目很小。

然后但样本数目还可以吧,然后然后再在这个时候,我们认为它可能是一个比较空间,维度,是比较相对来说是比较小的,所以需要加一个高斯核,然后当然还有还有最后一种情况,就是当特征数目比较少。

但是你的样本数额特别大,这个时候你可能需要做一些特征工程的事情,当然还有一个就是说一个比较好的方法,就是很多库里面集成了很多的,都集成了各种各样的盒,你可以你可以用交叉验证的方法。

比如说在一个小数据上去交叉验证,看看哪个核是最好的,比如说你拿到一个问题啊,这个问题有100万个数据呃,分成4000雷,然后你可以先拿出来100类,然后然后取1万个变量先试一下,看看会不会比较好。

然后再去应用到应用到那个大数据上去,然后当然当然比较高端的玩家,会涉及自己的盒的,好那我们可以看到就是SOM的用法,正确的打开方式其实相当于是我,我首先就是SM会帮我确定一个超平面,来进行分类。

但是呢如果他是如果就像我们刚才说的,就是说他在当前的空间,就是求不出来一个超平面,抽出来一个超频段,可以分开所有的类别,但是用它的高度空间的这个操作,S m,并不是说他直接去在每个样本上去去做转换的。

而是说他用了一个核函数的方法,然后既省略了去转换数据集的这个行为,然后又省略了,又省掉了计算量,好那么就是说我们就正如刚才所说,那么我仍然可能就是这个数据集还是不可分的,使得这个数据集变得线性可分。

但是可能他还是不可分的,那么这个时候该怎么办,就相当于是这样,就是他可能有一些噪音吧,就是说每个数据集里面都有噪音,就是说它可能是别的类里面的,然后是混进来这个类里面的特务是吧。

然后但是他他他仍然在其他的类上,相当于比如说这个时间点,你它映射之后还是在还是在这里,然后还是跟跟原来的数据,跟那个跟跟那个复利数据还是在一块,还是混在一块,你不管你头上到哪里,它可能都分不开。

因为它就是噪音的,它它本来就是噪音,所以这这种情况下,我们不能假设呃,我们拿到的数据一定是线性可分的,所以我们一定要考虑到这种情况,然后如何考虑这种情况呢,我们在目标函数上就加了一个加了一个乘法项。

就是说我们允许一些数据点小一,拥有小于一的几何间隔,但是其他数据点还是还是那个,还是大于一的几何间隔,但是这样的数据点是要受到惩罚的,比如说比如说我有一个数据点,它它是小于一的。

然后但是它小于小于小于到什么程度呢,小到一个叫做伊布斯的程度,然后有一个叫做一步9I,然后这个一步9I是要受到乘法的,乘法呃,惩罚项其实比较类似于,如果大家如果大家之前有上过LR的话。

可能会讲到正则项正德画像,然后这个跟那个正常画像其实是比较类似的,相当于是一个多余的乘法,然后他加到目标函数中去,然后相当于是我最后的这个问题,就变成了一个这样的问题,然后这样的一个优化方法。

就是叫做软间隔分类器,就是说我在这里就是不要求,每个数据点都一定是,是那个大大于等于几何间隔了,好同理,这样的一个东西经过拉格朗日方程,同理这样的一个这样的一个这样的一个问题,经过拉格拉格朗日方程。

然后我们去计算,然后我们就就得到了一个新的问题,完了这个新的文件可以,大家可以看到,跟跟原来我们没有那个没有软件课的时候,它的区别就在于呃阿尔法的限制变多了,阿尔法限制除了大于等于零之外。

还要小于等于C,然后这个C就是加在乘法向量的系数,然后然后cc也是SVM的一个比较重要的参数,好那么经过了这个之后,那么我们可以看到,其实在SMO的算法,它有了更多的约束之后,他其实也变得更加好算了。

就是就是说我阿尔法的值,我阿尔法值得选界是有边界的,一个是C,一个是零,这只是个示意图,大家可以理解为主,好那么我们讲了刚才的软件和分类器之后,那么SVM的所有的推导的知识点,应该都已经讲完了。

然后可能就是因为SVM的数,学推导会非常的多,所以大家可能听起来比较那个比较比较混乱,然后因为我在这里,其实相当于是把每一个每一个SOM理解,SM的每一个pass上的每一个节点都分出来了。

就是最开始讲的那个,大家希望大家可以分块的去去理解SVM,然后对于拉格朗日方程来说,你只需要记住他的一些条件,还有一些推导就可以了,然后其他部分其实大家用手推一下,其实就能知道呃。

呃其实就能知道最后的SOM的推导是怎么样的,好其实后面的核函数还有那个软间隔,虽然推导上没有,没有之前对讲基础的时候那么多,但是他们其实是SM里面很重要的概念,呃有同学问为啥支持向量的线等于一和一。

不是等于其他值,是这样的,就是如果它不等于一和一的话,那么那么我们可以等比例的调整,W和B使得它等于一和一,所以一和一是我们自己设的值,而不是说它是一个求出求出来的值好,那我们得到了SVM之后。

我们可以看到SYM的M,SVM的问题的数学特性,就是说它优化的是一个二分之1W平方,所以它是一个凸优化问题,肯定会有一个全局的最优解,然后它的特性就在于它可以处理高维数据。

比很高维的他只要算内机就可以了,嗯然后它的软间隔可以,其实也也可以起到一些过敏,降低过拟合的作用,然后嗯啊而且有个重要的重要的特点,就是它就是说它求解问完成后,它的它只有少数数据起作用的。

就是那些支持向量,就是阿尔法,不等于零的那些向量,然后还有一点就是说它因为有核函数的概念,所以和核函数是可以设置很多的,就是你可以自定义和函数等等,你可以有无限的空间去选择合函数,然后有同学问。

有同学问管金额是为了增加模型,泛化能力和函数是为了更好的分类也对吗,对和函数其实就像有同,就像下面同学说的,就是它还可以减少计算复杂度,对这两个都是,然后软软间隔主要是呃兼容那些就是不可分数。

一级的起作用的,其实和函数和卵间隔也都有,那种就去兼容不可分数,去去解决不可分问题的,不可分数据集这样的问题的一个一个方法,有同学说得到了支持向量后,那其他的项链就就没有作用了,其实是这样子的。

就之前我在那个有一个PPT上也讲过。

对在这个PPT上大家可以看到,其实因为我的不是非支持向量,它的阿尔法都是零,所以所以只有支持向量才会起到作用。

好那我们继续往后讲,其实除了刚才的那种方式之外,还有另外一种方式去理解SVM,然后这种方式就就叫做合一选择函数,然后我们可以直接去看这个分差数是什么啊,就是它的损失函数其实是这样的。

就是对于对于一个数据点来说,如果它的如果它的几何间隔是那个是大于一的,那么它就是嗯,那么我们就先不管它,如果它的几何间隔是小于一的,那么我们就去调整参数,使得它的几个间隔变得大于一,这个横之道。

这个合约等差数的意思就是这样子的,然后我们可以看到呃,其实主要的主要的精华就在于一减去Y乘以,W乘以乘以WX加B这一块,然后一大家可以看到Y乘以WX加B呃,其实就是就是那个就是几何间隔嘛。

然后就是几何间隔合一去做做减法,然后在这里有一个损失函数的一个变化,就是说呃有一个有一个函数吧,叫Z加,然后这个Z加,这个其实跟呃跟那个神经网络里面的软路函数,其实是一样的,就是当Z大于零的时候。

它就它就是大,它就是Z,当Z小于零的时候,它就是零,所以什么时候Z小于零呢,就是说几何间隔是大于一的时候,一减去它就小于零了,然后当几何间隔小于一的时候,这个这个数就是正数。

然后这里面后面有一个W的二阶范数,然后这个二阶范数就相当相当于是一个呃,这个是一个正常画像,然后通过这个loss,我们去我们去那个我们去呃做梯度下降之类的,然后就可以去求解这个去求解呃,去求解SVM。

然后这个是一个是SM从损失函数的角度,然后去用的另外一种理解方法,但是通过这个这样的理解的话,我们我们既引入不了和那个合计法,也引也引入不了软软结构分类器,所以它可以作为一种补充材料,放在后面。

放在这里,然后我们可以看到这个横着loss,它的它的它的方程是这样的,就是当,应该是当几何间隔了,对它下面的图是这样子的,就是还是说就是当当那个几何间隔,是是那个小学一的时候,我就去考虑它。

就是它相当于是他离分错就不是特别远,然后我就去考虑它的操纵函数就是这样子的,然后它几何间隔是大于一的时候,它就是零,然后在这里有一个有一个另外的一个,就是真实的,就是最原始的那个零一损失函数。

其实是这样的,就是当X小于零的时候,它就是一,当X大于零的时候,他应该是零,所以相当于是这个函数是那个是零一损失的函,001损失函数的一个一个一种拟合手段,它跟那个西格玛的损失函数是类似的,好。

那么我们刚才讲的SVM,它其实都是支持的是二类分类,然后呃对于多类分类来说,他该怎么支持呢,其实有很多种方法,第一种第一种方法就是说对于N分类问题,然后我可以我可以用一对多的方式。

就是每个类和剩下的类去做去训练分类器,这样我需要训练N个分类器,然后然后去去得到那个最后是哪个是哪个类别,这是第一种方法,第二种方法是一对一的分类器,一对一的分类器,就相当于是我需要串出来。

二分之N乘以N减一个分类器,然后这样这样我就可以对每个分类器,我都去投票,然后相当于是到最后哪个类别得的票数多,就就属于哪个类别,第三个就是用层次,用层次的方法,就是就是说我把我首先把类别分成两个部分。

就是比如说我有100个类,然后就首先是这50个类和这50个类,相当于是呃把100个类分成两部分,50类和另外五之类,然后这是一个二分类器,然后对于这50来说,再再去做做二分,就是分成25个类和25个类。

然后再去训练一个分类器,这个是一个层次向量层次支持向量机,然后这个就需要log n个分拣器,然后在现实中,然后呃一般来说就是呃,在一般的SVM的开源库的实现,一般都会实现一对一和一对多的人理器层次。

知识分电器好像用的不是特别多,好那我们后面就到那个实战环节,然后啊对可能有的同学说的对,时间占的太多了,前面安排的内容比较多,所以后面到实战的时候嗯,时间比较少,你可以看到呃,我们解决一个经典问题。

就是SVM需要可以去解决的一个经典问题,就是文本分类,然后之前在我记得我上学的时候,应该SOM解决文本分类还是一个比较经典的,比较主流的算法,然后再在那个时候大家都用SVM去做分类。

然后基本的方法就是课程工程加上分类,就是特征工程,就是说我先把文本给给表达,成向量的向量的样子,然后再去用SM去做分类,然后就可以解决这个问题了,但是现在比较主流的方法就是用深度学习。

就是直接把文本输入到神经网络中去,然后直接得到一个分类结果,也不用提取太多的特征,但是两个各有优势啊,不是说生物学机会一定好,然后SM它也有表现好的是吗,好这个是我之前参加过的一个文本分类的比赛。

然后是在13年的,然后他的基本问题就是1000万条33类,然后去去去做分类,然后但是会要求算法基还都不去实现,然后我得到的结果是97。65,然后当时比一等奖就是整整差1%吧,然后是因为特征向量没有做够。

特征工程没有做够,后面会讲特征工程在哪里没有做够,首先文本分类的主要流程,因为时间不多了,我就直接简单给大家过一下,就是第一就是分词,当然大家可能也都了解,就是对于中文来说。

所有的ALP任务都需要先分词,才能做到一些比较好的效果,然后就是特征筛选,特征筛选有两步,第一步是去除停用词,就是把一些没有没有那个没有真实意义的,比如说语语气词和助词。

比如说像的像呃阿妈爸这样这样子的,以及助词什么的都去掉,第二个就是我可以去计算特征的重要程度,就是有很多特别选择的方法,然后可以去给每个特征去计算一下,然后把特征程度比较低的给删掉啊。

然后在大家使用SM的时候,特征选择也是一个比较重要的topic,然后就是我把分词的结果,然后经过筛选之后,然后会有一个新的新的结果,然后这些结果呃,再去给每一个词分配一个id,然后把它表示成一个向量。

就是相当于是每一个每一每一个文本,到最后都转化成是一个向量,这个向量里面,每个分量就代表的是这个词出现了多少次,或者是这个词的重要程度是什么,然后再输入到SVM中去做训练,好这是特征选择的几种方法。

大家可以去了解一下,好那我们就直接看到,就是我当时调参的一个呃对SM调对整个项目,对整个比赛的问题,调仓的结果,第一第一个就是就是说,因为我是33分类的嘛,然后我是那个我最后是用的一个组分类的方法。

就是说就类似于嗯,类似于那个层次知识摄像机做多分类,但是我把很多类分成多个组,就是比如说33类,然后每四个是一组,分成八组,然后这样再去一对一的去训练分类器,然后再去投票。

然后然后就是分词上面有两种分词方法,一种是细粒度分词,一种是就是粗粒度分词和细粒度分词,之前用这种的,用这种的时候,虽然感觉分词分的还可以,但是呃用细粒度分词之后,确实是可以提取出来更多的特征。

所以用细粒度分词可以提升0。8%,然后最开始的时候我是用的嗯用的那个瓷瓶,作为那个作为向量的嗯,作为向量的值,后来把词频替换成权重,权重就是可能是TFIDF,然后可以提升0。02。

然后FM的参数你可以去尝试各种盒,然后各种设置,然后可以提升0。2%,然后去除填充词,可以提升0。04%哦,有同学问我多大保密,好大家可以看到,其实我已经做了很多的挑战的工作,但是其实还没有做到位。

因为确确实实,第一名的方案跟我的就是在模型的,在模型和实现上其实没有什么区别,但是他在那个他在他在特征提取上,确实能能做到比较好的效果,然后他可能提取出来是比我用的更细粒度的。

比如说他对于一个词它会提取,它会提示各种各样的嗯子特征,第一个就是有生日蛋糕,它可能会在对这个词再做一些组合,有生日蛋蛋糕,就是还有生日这样的词都提取出来,然后还有就是他做了一个n gram自己组合。

就是就是说比如说分成代词,就天津天津新开河,天津新开新开河街房价,然后他会把天津新开河街,还有天津房价,新开新开河街房价都都做,都做组合,然后所以到最后它的特征数目是非常大的,一个数是750万的一个数。

然后我在这里提出来的特征应该是不到30万,所以它的特征数是远大于我的,所以他能够得到第一名的效果好,然后这个就是后面的一个实现,然后还都不实现,然后我就不给大家再细过了。

好我们直接看一下今天的那个实战代码,有同学问模型效率怎么样,是这样的,当时是在海图上去实现的,然后都在set up上,所以应该最后实现的虽然是1000万条,但是训练时间应该也只有不到一个小时吧。

好那我们看一下今天的,你可以看下今天的这些内容,在在这个文件夹下,其实还有一些那个,还有一些IOSTM和CN的一些一些model,去串文本分类,然后这个就不是就不是我们课程的范畴了。

那就先看一下我们的数据是什么样的,然后怎么样去用到SVM中去,第一步就是就是说,我先我们先看看我们的现有的数据,其实数据都是这样子的,就是我是,我现在是用了一个一个新闻分类的一个数据集。

然后这个数据里面有十个类,然后分别是体育啊,政治啊之类的,然后他的他的数据是这样子,大家可以看到啊,就是第一个是label,然后LOR后面跟个tab键,tab键之后是新闻的,新闻的内容。

然后我在这里有一个有一个文件,去去对它进行分词,对在这里有一个文件叫generate word level data,然后我去先去对它去进行分词,然后分词之后分词我在这里是用的结巴分词。

然后因为之前我相当于是我的数据,都是quest level的,但是没有分词的,所以我的我把它命名成create level,哦然后在这里有一个函数。

然后这个函数generate generate wordfile,输入和输出文件,然后在里面调用接调用结巴分词,把它分词成一个呃,分割成一个分分词后的结果,然后再把它写入到一个文件里去。

得到分词后的结果,有同学问结巴是什么J吧,其实就是一个分词的库,叫结巴,分词是个Python库,大家可以去装一下,当然大家也可以用中科院的那个CT,c l cs也哭,好这样我就得到了。

这样我就我就得到了分词后的结果,就是每一个相当于是在这里对它都进,都进行了分词,然后分词之后,上次之后我还有一个生成词表的过程,为什么要生成词表嗯,因为是这样,就是呃我们到最后是要输入到SVM中去的。

模型是那个什么是呃输进的SVM中去的,数据其实是向量,所以所以我需要给每一个词都呃,都分配一个ID,所以我需要一个词表,然后这个词表这个词表里面能看一个,就是保持一个映射。

这个映射是词语到id的一个映射,然后呃到最后,所以说到最后每一个文本,它对应的是一个是一个向量,这个向量的长度是词表的大小,然后里面那个相当于是一个文本,然后比如说它有有某个词,我们对吧,由于这个词。

然后我们这个词在词表中它id是15,然后那么这个向量这个长度为,比如说我们有此表个数是1万啊,这长度为1万的向量,就是在15的那个地方是一有对,如果我们如果是以次评为为那个为值的话,那就是一。

如果如果我们出现两次的话,那就是二,所以在这里生成生成一个词表,然后生成完词表之后,生成完词表之后,我会用这个word level feature的这个Python notebook,然后去去把每一个。

去把每一个每一个分词后的结果都转换成向量,在这里我会,我会把词表都读进来,然后成为一个就是给他每个都上一个id,然后这是dict在这里,然后然后把这个feature DC传进来。

对于对于那个对于后面的每一个文本,就是对于那个分词后的每个文本,我都去查找,说这个词有没有出现过呢,如果出现过,我就给他个id,然后把把value也也写进去,然后就会生成一个生成一个。

创造一个id id号,然后value的一个值,好这个是这个函数的作用,然后我们可以看一下最后生成的结果,作胜的结果是这样子的,就是说我对于每一个类,然后它出现过的,就是所有的不为零的值都要显示出来。

好有同学已经问了两次了,就是说海杜普spark推荐哪个,现在来说,海杜普和分布式的机器学习已经成为主流,所以肯定是要学一个,还还都还是要学一个,那个分布式的文件管理系统。

然后还有一个是分布式的机器学习算法,所以呃但是对于分布式机器学算法来说,海德博SPK其实都被证明了,是不是不太适合去实现分布设计一些算法,所以推荐大家使用那个就是学那个parameter server。

他们的server叫就简称PS,然后嗯然后它是一种分布式的机器学习框架,然后在TENSORFLOW里面会有集成,所以可以去学TENSORFLOW,然后对于文件系统来说的话,其实学海图谱应该就够了。

所以不太我,因为我从来没用过,没用过spark,然后当时我用过map reduce,所以推荐大家去学海德堡和tc flow好,这个是生成的最后的文件,那么生成的最后文件,是怎么样输入到那个SVM中去的。

我们可以看这样,我们在这里有一个,就是我下载了一个lib s v m的一个包,然后在这个包里面它会生成很多个,它它有那个s m predict和sm train。

然后这两个是那个是用来串model和做predict,所以我写了一个bus脚本,然后这个玩脚本,可以把刚才我们生成的那个向量的文件,可以做处理,然后做完处理之后,然后去用SVM去做,去做做训练。

在这里可以看到,其实我趁用了很多参数,杠S杠C杠T杠杠E等等,然后大家可以看它的各个参数的含义是什么,在这里其实可以在这个read me file里面,其实大家可以看到很多。

比如说杠S其实就是SOM的type,然后gt就是核函数,so eam tab可能就是不同的实现吧,比如说它多多类的的实现,然后还有那个呃两两类分类器实现,然后核函数的话,他现在支持线性和多项式和。

还有那个镜像积函数,就是那高斯函数,然后还有SIGMOID等等吧,然后还支持自定义盒,然后好,下面这些杠D杠,G杠二都都是那个都是上面不同的和,就是不同的盒会有不同的参数,然后下面有一堆,然后有一个杠。

有一个杠C,杠C,其实就是我们讲那个软件的分类器里面的,那个那个就是对于错误的分类,就是噪音的数据,它不是有惩罚项吗,惩罚项有个系数是C,然后这个C就是那个的参数好,所以在这里是有这些的的函数。

然后通过我的这个这个脚本就可以去冲,然后这个是我给大家实现了一个,实现了一个用脚本计算的方式,所以我们今天的homework,其实是那个是是要求大家是导入到。

因为lip s v m它有一个Python的包,所以今天homework就是希望大家能去呃,能呃导入那个Python的包,然后用Python代码去实现今天的分类结果,然后呃今天的那个数据上的分类。

然后数据其实我都已经帮大家处理好了,大家可以直接在直接在那个数据上,直接导入那个数据,然后去进行串就好了,然后我这边串出来的结果,我可以跟大家展示一下,在word level上。

在word level上,我那个什么我我有不同的参数,就是这个大于20,大于100,大于200是什么意思,就是说我对于视频做了一个filter,因为我之前不是用了很多种方法吗。

就是呃跟大家讲了很多特征选择的方法,然后我在这里用了一种比较简单的,就是就是视频呃,用spin filter呃,小于出现小于24个,然后就直接filter掉,然后可以看到它的它的效果是是百分之test。

94啊,value的值是92,在看到其实把四把这个数调大一点,其实可能对分裂结果也没有太大的影响,都是92和94点多,然后同时我到这里还冲出来一个create level,就是我们之前不是说分词嘛。

然后如果不分词,把每一个值都当成是一个,把每一个字符都当成是一个特征的话,那么它的结果是这样的,就是91和93,这边是92和94,对然后大概的结果是这样,然后也希望大家写code去实现的结果。

应该应该也能达到这个也能达到这个预期,然后有同学问其他库可以吗,其实这些库都比较都比较类似,所以我还是建议你用LIBSVM,或者或者还有一个可选的,就是你可以用live la。

是live s o m对线性盒的一个优化版,我之前那个做比赛就是用的live lander那个库,好然后这个是今天的notebook。

好因为时间已经超了,然后后面的这些我就简单的给大家介绍一下,就是说在文本分类领域,然后有一个很很什么的问题,就是很很流行的问题,就是不平衡,文本分类这个其实很常见,就比如说呃我之前在腾讯的时候有做过嗯。

色情文本就不是色情嘛,就是不讲文本分类吧,不一定是色情的,就是有色情的,还有那些就是,骂人的话等等都是需要FC调的,所以但是这些话相对于腾讯的所有数据来说,他是一个很少量的。

所以说他对于这种分类是一个是一个很强大的,就是一个不平衡性很强的一个文本分类问题,好然后对于这个问题,其实我们需要做很多种方法去去去优化它,第一个就是说对于不对于那个不平衡问题来说。

就是不仅仅是文本分类上,对于其他问题上所有的不平衡分类问题来说,都有很都有很多种通用的解决方法,第一种是重采样,就是说呃可能对多数样本去去做降采样,就是去选一些样本,对少数样本去做上采样,上采样。

就是说我把样本复制很多份,把少数类的样本复制很多份,形,形成一个跟多数类样本差不多的一个,一个那个一个比例,然后还有一个叫smooth算法,smoke算法,其实跟其他的上载量和下载量差不多。

但是它是自己生成样本的一种方式,就是说它会通过训练数据集里面已经有的样本,去再重新生成新的样本,这个是数据层面,我会做这样的一些事情啊,对当然还有一个就是训练集划分,就是我把大类划分成划分成很多子类。

很多子子集,比如说比如说正常的样本,我可以分成十份啊,像这样的话,这个样本数目这个,然后这个样本比例,就相当于是降低了原来的1/10了嘛,然后然后我再把少少数类的样本。

和每一个大类子样本都去训练一个分类器,然后这样这样再去到最后再去做投票,那么这是训练集层层面的一个一个建模,还有一个就是在传统在算法层面,大家可以用用一些,比如说在算法领域可以对少数类去加权。

在损失函数里面就说如果少数类分错的话,那么我可以使得它的惩罚变大一些,这也是在算法层面中的一些改动,还有一些就是就是多层分类,嗯还有到后面就是规则,机场就是到最后可能你拿到的一个最后的的model。

是不仅仅是由你的分类分类model在里面,可能还会有一些规则在里面,比如说有很多很明显的filter,就是很很多敏感的,这个是一个很重要的一个,第一个事情是宁可错杀100,不能放过一个的一个事情。

所以说可能到最后的model,还会有一些规则进行的东西,大概是大概对于不平衡,不平衡的分类问题,大概有这么有这么多的解决方法,然后啊在这里因为不是本节课的主题,所以就给大家简单的带过一下好。

那我们总结一下今天的今天的嗯,今天的主题第一个就是我们推导了SVM,然后呃,重要的一个就是SVM公式化的一个一个变化,就是说这个问题,从刚开始的一个简单的函数间隔呃,要求函数间隔最大值的一个问题。

转化成到最后是一个很奇怪的一个表达式的,一个中间的一个要转换啊,大家要理解中间的转换到底是哪一步,是为什么可以这样做等等,然后然后为了求解最后变换后的那个问题,我们引入了拉格朗日的一个数学知识。

然后这个数学知识,然后可能大家不是特别理解,然后记住就可以了啊,然后嗯然后我们讲了最大线性可分的,最大间隔的分类器,还有软间隔的分类器,然后同时还给大家讲了合计法,然后应该这些就已经把SOM的。

所有的东西都讲全了,但是可能今天那个就是呃SM内容比较多,然后时间比较少吧,可能有一些没有给大家讲清楚啊,在这里也非常呃给大家嗯很抱歉,然后呃但是本来就是这样,就是SM作为一个复杂的算法。

可能就是大家一次也可能也理解不了,需要大家看很多次才可以好,然后最后我们再带大家做了一个,文本分类的实战,用live s v m去处理一个十类的新闻数据集。

然后呃然后呃用命令行的方式去运行live s o m,得到了分类结果,然后homework就是希望大家能够用那个用引入Python code,Import in python code。

然后用Python code去实现这个算法,然后希望能达到92%到94的一个,一个分类的效果,然后大概是这样,然后嗯对就像我刚才说的,其实SM的理解不是,也不是说一朝一夕就能理解的。

然后死背也不是一个特别好的方法。

然后希望大家就像我刚才说的,就是就是我在最开始的时候列了一个,列了一个就是pass,然后这个pass就是各种知识点,然后大家可以分类,就是每一个每一个知识点都理解了,就是去去去一个一个的去去去解决。

你不理解的地方,然后嗯然后试着自己手动推导一下,应该到最后应该就能理解了,好然后今天的课程基本上就是这样,然后现在是超过了13分钟,然后嗯大家可以再提一些问题,然后可以再回答一下。

然后回答完之后再拿这门课就可以到此结束了,啊好看,大家还有没有什么问题,啊对现在是在故事中国啊,如果有兴趣来面试的话,欢迎发奖励给我,但是google的面试可能不会问太多机器学习的code啊。

这学习的东西可能更多的是偏向于代码实现,就是呃面试比较比较那个比较偏算法,然后实战代码在没有在群文件,我之前有发过一个百度网盘的link,然后呃后面我会把,后面我会把那个数据集也传到那个群文件中去。

拉格朗日是哪两个条件内积,怎么切换这个函数的一个一个解决,是这样,就是内机怎么切换成和函数的,就是你直接把这个放在一部分,用这个KXZ给替换掉就可以了,给替换掉就可以了,就是把三对一的部分。

就直接用和函数的值给替换掉,因为这也算内积,它其实也得到的是一个数嘛,然后KXZ他得到的也是一个数,直接替换掉就行,然后拉格朗日是哪两个条件,拉格朗日有两个条件,第一个条件就是说它的约束条件是要求是。

凸函数和反射函数在后,然后在这里,然后在这里,然后除了这两个条件之外,然后还需要满足一个叫KKT条件,KKT的条件就是最优解要满足KKT条件,然后才能使得对偶问题和原始问题是等价的,SOM的基础呃。

是这样,我见过的最全的一个基础,就是李航的那本统计学习方法上SVM的讲解,所以如果大家如果大家想要去完整的去了解,SM的推导的话,可能看比韩那本书会比较好,然后第四集的图优化,我觉得也可以去看一下。

但是我没有看过,不知道它里面讲的都是些什么,HW和GW都是AHW和GW,都是都是那个约束条件,AHW等于零,GW小于等于零,都是都是约束条件,然后一个算法团队怎么分工啊,我之前在百度做的时候嗯。

这个创作团队一般都会分成model,团队和特征工程的团队,然后然后加一些模型的改进等等,特征工程的部分,就很显然就是大家去提特征什么的和函数,其实也不需要去讲数学知识,因为它没有数学知识。

它只是一个替换,对问题是这样的,就是说SM的求解,它其实是使用那个,使用极大极小的这种方式能够能够才能够求解,极小极大的方式是不能够求解的,所以说我需要使得那个我,我我需要在求解SM的时候。

使得他这个最小极小极大问题,变成极大极小问题,所以说这个是对我问题的一个目的,就是然后恰好SVM它它它能够使得他的是SM,它恰好能够使得最优解能够满足KKT条件,然后所以就能够使得那个SM能够使。

能够使用对偶问题求解出来,用来训练的特征,其实就是我刚才说的嗯,很多种方法,文本分类里面TFIDF词频文档频率等等,这个是文本分类的特种选择方法,如果是对于其他问题的话,就要具体问题具体分析了。

比如说有有有很多做特征工程的一些呃,一些经验吧,可能,为什么支持向量的阿尔法大于零呢,这个是在求解之后才能去得到的,阿尔法阿尔法大于大于零,是指的就是在求解完之后,大家发现就是阿尔法呃。

大于零的地方就是支持相关的地方,但是在理论上来说就是说呃从理解上来说,就是对于几何间隔最大化,这个也是就是就是说,其实对于不在那条线上的呃,不但拿不到那现场数据数据,它其实对于那个整个分类界面的确定。

其实也没有呃,没有没有贡献,基本上,所以只有在在那个只有知识向量,才会对那个对分类界面的确定呃,会起作用,所以这也是阿尔法大于零的一个从问题,从问题的角度去理解的一个思路吧,对偶是用来优化目标函数的。

是的就是我们讲队友问题,就就是为了要用那个要用那个队友后的,队友后的解决方法,去去求解那个SVM最后变化的,最后转换后的那个问题,好然后关于SVM,我在我的博客中,然后会有三篇是介绍SVM的。

然后大家如果感兴趣的话,可以去看一下,当然是比较早期的的播客,为啥先求极大,就不可以,因为先求极大的话,应该是先求极大,大家就发现就已经求不出来了吧,好啊,大家看还有没有其他问题,如果没有其他问题的话。

那我们这次课就暂时到这里,然后嗯SM在那个什么在实际使用中,可能现在是呈现一个,就是逐渐会被define取代的过程,但是他在面试中也确实像很多同学说的,面试过程中肯定呃有很多会被问到。

所以希望大家能对这方面的知识也有所理解,但是呃也不一定就是上不上上不转的,山不转水转,然后之前是SM嗯,比较高调,然后现在deep learning上来了,然后也说不定什么时候有一种SM的扩展方法。

才可以杀回来,所以理解这方面的知识,也会对大家学习学习也会有很多的帮助,现在SM的嗯应该没有那么多了,之前比较多,我我13年的时候,我见大家还普遍还在用SVM,那在那个时候我面试的时候不问SVM。

简直要逆天了,但是很奇怪的就是说现在DEFI经这么火了,大家还在问SM,这也是我觉得比较奇怪的地方,好然后看大家也没有什么问题了哦,对还有一些问题,google招聘侧重编程算法。

对google招聘确实侧重编程算法,然后怎么提高这种能力额数据结构算法,然后去去刷题吧,去刷题的扣子,然后如果能刷过两遍的话,可以把简历交给我,当然也不只是刷题。

就是就是说可能更关注的还是要那个什么要嗯,八个free的代码,就是说你用用在一个在一个text上,再一个就是在一个文档里面可以直接扣的,然后扣出来一个基本上没有没有bug的代码,我刷了多少题。

我刷的题比较少,我只刷了100多万,model是怎么上线的,model其实是这样的,就是呃对于很多模型来说,它都有一个线上的服务,然后这个线上的服务呢就部署在很多机器上,然后如果你要替换model的话。

就是呃会是一个机器一个机器的去替换,然后当然还需要做a b test,就是来证明你的model是有效的,然后证明了这个之后才会比如说MODETEST,a b test是在10%的用户上。

然后你拿model在这个上面证明了你是有效的,然后再逐渐的铺到30%,50%,其实model的更新就是你在勾起了server之后,然后相当于是更新的时候,只要把model替换掉,数据文件替换掉。

就可以想用开挂来想来作为项目经验面试可以,如果你的开发项目排名比较好的话,应该应该可以,一般招聘对depending方面的职位会有啥要求,我们现在呃不知道其他公司,google的话。

AI center招聘发件方面就必须有一篇顶会paper,至少一篇,但是其他很多公司应该不要求这个,只要项目有就可以了,机器学习会饱和吗,我目前认为应该不会,但是我说的应该也不太准,但是嗯怎么说呢。

就是说现在这个行业应该是属于刚刚兴起,所以我觉得缺口还会很大,所以学这个是嗯还是很有必要的,回归中国,这个我也不知道,我希望他能回来,但是我不知道中国的新学期处于睡眠水平,什么意思,其实是这样的。

就是孙楠转行的多,但是呢呃但是合格的人比较少,其实各大家去找工作什么的,各行各业都是这样,就是就是说嗯可能竞争很大,但是呢但是就是合格的人比较少,尤其是呃就在我们在我们这个行业。

不管是做去做编码还是去做研究嗯,都是都还是挺需要那种就是合格的人才的,所以不用担心大家,只要只要能够保证自己是优秀的,然后肯定就不用担心明天的课程,大家去课本上看一下,我给大家看一下。

明天是最大商em什么的,但是到明天就不是我讲的,是其他老师讲,好然后看大家没有太多问题了,然后后面我们有有时间再在QQ群里面再继续聊,然后好,那么今天的课程就到这里,感谢大家,已经过了半小时了。

还在这里听我唠叨。

【七月在线】机器学习就业训练营16期 - P4:在线视频:4-特征工程:数据清洗、异常点处理、特征抽取选择组合_ev - IT自学网100 - BV1Z9T5ewEKL

🎼。🎼,啊,从这次课开始呢,你们会陆续看到一些。更贴近实际算法应用的这样的一些内容。呃,你们将来有同学如果要出去面试啊,就是从事这个方向的工作。你要出去面试的话。

一一定会遇到面试的过程当中提到的几个板块的内容。有一个板块的内容是大家一直在从前面的课程到今天一直在学的。模型的部分。就是你们会听到一些很夸张的说法,说,你去面试的时候,怎么也得手撸个SVM。

或者是呃推一个什么角色术,或者是呃数模型的创新模型等等这样的一些。😊,一些面试题问。但除掉这个理论的部分以外,我们也会很关注你实际应对数据的感知和应用的能力。😊,呃,我指的不是调餐。

这个不你指的这个调餐的部分,对整个模型的。影响或者对整个整个数据驱动方案解决它的效果影响没有那没有你想象的那么大。对,如果你是你的重心放在调三上,我会觉得你是一个没有没有动手去做过相关工作的人。😊,呃。

所以我的我的一个同事,去年的时候呃,我们一起出去校招啊,我说校招,就是我们我们会跑一些城市。比如说呃除了北京以外啊,北京本地以外,我们可能会去上海会去武汉,会去哈尔滨,会去那几个对应的城市嘛。

哈工大呀、华科等等。然后我们会去面试校招的面试。然后一一般一面试就是呃两三天。然后在这个面试过程当中呢,就是我们不同的面试官他大家可能会有不同的风格。

坐在我旁边的我的同事最爱问的一个问题是那你知道什么样的。😊,数据的。处理和特征工程的方式。这个是我们今天要给大家讲到的课心的内容,几乎那一天面试的所有人都被他问过这个问题啊。

当然有一大部分人是能回答上来这个问题的,就是还是不错的,说明储备还是可以的。在这里头会涉及到一些会涉及到一些具体的数据上的一些操作。和我去应用这些算法的时候,如何能让我的算法的能算法的这个表达力。

或者是个算法模型的这个效果更突出的这样的一些点。那我在今天讲授这个部分内容的时候,我也会给大家呃就是。😊,问到一些你们出去以后可能会被问到的一些问题。然后我让大家一起来思考一下,为什么我们要做这个处理。

当然这些数据处理的具体的这些操作可能就这么些操作,所有人都知道,但是哪些模型需要用到这个操作,哪些模型不需要用的,以及说做这个操作,它可能会带来什么样的。😊,影响什么有什么样的效果。

这个是你需要去理解的。所以我们今天提到这个内容叫做机器学习中的特征工程,叫做faceci engineering。呃,这个部分呢很神秘,因为你在市面上基本上找不到。😊,一本书去讲这个内容。

你可以找到很多机器学习原理的书。但是在实战的特征工程这块,你会发现并不是太多。所以今天我给大家讲到的是一些里面很核心的一些操作和一些对应的处理。呃,不过大家更多的要关注说为什么我要我要去做这样一个处理。

做完以后,数据会是以什么样的形态去呈现。这是包括这是今天的整体的这个内容。会包括我会带大家聊一点这个关于特征工程这个板块。它的作用或者说我们聊聊一聊它的意义。为什么他会大家会这么关注这个这个部分。

然后我们会聊一聊这些所谓的大家比较关心的数据处理和我真的从数据上去做特征抽取的这样的一些过程。对,然后大家看到的第三个部分是我会带大家过一下,当我想办法产出了很多很多的特征,我脑洞出来了非常多的特征。

我怎么在这个。😊,场景下去选出来真正有用的那些特征。因为当你的维度真的很高的时候,这个对计算资源是一种很大的压力。ok然后所以我们先聊一聊这个词叫做特征工程,叫做fishci engineering。

所以这个特征工程呢特征这个东西指的是从原始的数据当中去抽取出来对预测结果有用的信息。但也没有太大的意义啊,但是大家理解一下,为什么会这样去说,我给大家举一个例子。

你们想的人工智能远没有大家想象的那么智能,人工智能真的需要很多人工的环节在。所以你你不要想着这件事情是我准备好数据了,我把数据往那个模型里头一怼,然后就能出来一个很好效果的。😊,这样的一个模型。

如果这件事情这么简单的话,你们今天还用来学这个课吗?😊,那阿里云和腾讯云或者各家语音公司不早把这个事情做完了吗?对吧这些所谓的auto ML的平台,自动机器学习,自动人工智能的平台,这个事情就完成了。

对吧?实际上远没有大家想象的这么简单啊,模型也没有你想象的那么强的作用。因为可能在很多不太熟悉这个领域的人眼中,我最终能取得好的效果是用了因为我用了逼格非常高的模型。😊,啊,B格非常高的模型要用。

但它不是决定型的因素。它只是因素之一。所以这个地方很重要的一个事情是你原始的数据可能是一种很很杂乱的一种形态。呃,会会有另外一些表达形式是计算机读不懂的。举个例子来说。

今天你上淘宝这个小姐姐看到了这只口红会不会买,可能和这个口红的颜色会有关系啊,口红有很多的色号啊,很多读不懂的色号。然后但是这个颜色这个信息怎么表达给计算机呢?😊,他们读不懂的。你不要想着这些文本。

这些。类别型的这些属性可以直接送到计算机里,他能读懂,他读不懂的。所以需要你去做一个表达。那我再说一个事情,你们知道近几年,你们知道近两年dep runninging很热,对吧?深度学习。

大家都在都在往这上面往这个人工智能往深度学习上去靠。所以深度学习这个词儿很很热。那你们有没有想过深度学习,为什么会突然在这两年热钱呢?当然他会有些原因,你会告诉我说,老师因为数据量的规模增长上来了?

因为现在我的很多硬件资源可以支撑我去学习这些很复杂的神经网络的模型呢?😊,其实根本原因是因为在有一些数据上深度学习的模型的效果确实碾压了传统的模型。那是不是说我们现在学的这些机器学习没有用了。

是这些模型已经过时了,所以深度学习起来了以后,大家都应该去学习深度学习。😊,不是的。在有些场景里面,机器学习做不好的原因是因为你没有给他一个很好的数据表达。举一个例子来说,深度学习最。有。

发挥最好的一些领域。很多时候是多媒体数据的领域。那图像这样的数据,你你是没有办法用更高效的方式表达给这些原来这些模型的。不是说这个啊SVM不好,这些什么数模型不好。

不是是因为你没有把那个信息呈你某一种计算机能读得懂的形式去呈现给他。你在从这个原始的图像数据送给模型的这个过程当中损失掉了很多信息,你表达不充分,所以计算机也没有办法从你这个数据。

从你这个这给到的这个数据当中去学习到一个什么样的有用的模式,所以不是模型本身的问题,而是说深度学习这种模型,它更适合去做一个表达学习。对于这种很抽象的这种数据,比如说啊这种图像这样一种数据。

它能够从原始的pixel像素级别的这种表达上。去学习出来一种,去感知出来一种更有效的表达方式。然后后面的部分才是就是和大家现在学到的一样的。这些分类器。就是一个神经网络尾部上,尾巴上也是这些啊。

比如说sof max的多分类啊,或者是逻辑回归,你可以认为是逻辑回归啊,就是bysigoid接个soid就完成二分类啊,也是这样的东西。只是它前面层次做了太多的特征抽取,已经能把那个数据表达的非常好了。

所以现在你有表达非常好的这种把把人能够理解的这个信息,以这种比较丰富的形态传送给计算机,它就能拿到很好的效果。😊,所以特征工程这个东西如果要给个定义,实际上他做的事情。

就是说你去结合你的计算机的这种知识,再结合你对于这个场景,对于这个领域了解的这些专业的背景知识,去把你原始的数据处理成这些机器学习的模型或者算法,能发挥更好作用的这样的一种数据的表达形态。😊。

它是这样的一个事情,它是很偏工程的一个事情。也很偏你对数据的一个理解和思考。原因很简单,你们你们千万不要追求太。逼格非常非常高非常非常复杂的模型。😊,我们实际在工业界最喜欢的模型是简单。

但是效果又比较好的模型。因为简单的模型意味着说它的可控度非常高,可意味着说我线上的复杂度会小。意味着说当我出现问题的时候,我能第一时间去解决它它是一个透明的模型,或者说它是一个可解释性非常好的一个模型。

😊,如果你搞一个黑箱模型过来,你搞一个很复杂的神经网络,对吧?你今天很开心,你说我叠了1个1024层的神经网络,这个事情我以前也干过,那叠1个1024层的神经网络,然后一跑开之哎,效果很好。

但你今天你要是你要是这个线上的业务出现问题了。😊,很麻烦。因为你很难去debug。你没有办法第一时间去处理这个问题。所以我们会更希望去把这个场景挖掘的足够的充分,把它的信息足够充分的去表达出来。

送给这些相对不是那么复杂。但是这个效果同样很好的学练模型,然后让他们去解决当前这样一个问题。如果你抽到足够好的特征。我可以告诉大家,你用最简你用简单的模型,不一定比你用深度学习的模型效果要差。😊,对。

所以有同学问到说,是不是意味着对业务了本身了解更多的人做更可以更做到更做出来更好的特征。是的。😊,数据驱动这个方案,解决这个方案的这个问题需要几部分的技能。一个部分的技能叫做开发技能,你需要能够写代码。

因为你有idea,你必须要能够实现,你也必须能够基于这些工具库去完成数据的理解。另外第二部分技能叫做机器学习的理论技能。因为它能够更好的告诉你说,我现在出现的问题,应该调什么样的参数。

调哪部分的参数可能会有什么样的影响,它也许能够收敛的更好,或者说能够在我当前这个场景里面有更好的这个呃模型的这种表达能力。第第三个部分就是我们今天给大家讲到这个特征工程,它会很和你的场景相关。

我们叫做domentdknowledge或者domentd expertise,就是领域内的知识。因为我是一个不懂医疗的人,你给我一些医疗的问题让我去处理,我无从下手。我拿到这些数据。

我都不知道它什么含义。😊,所以总体说来,特征工程就是从原始的数据上想各种各样的办法去抽取出来,说对最后预测有用的这样一些信息,更充分的信息,让模型去学。OK然后这个地方有一个小小的说明。

这个说明我不想多说。总之呢说到就是给大家说一下,在互联网公司当中,你大概会有百分之啊不是互联网公司啊。我找很多同学对那个各种机器学习的数据科学的比赛很感兴趣。你们去刷一个,你们随便玩一个比赛。

你们就知道了。你们大概会有60%到70%的时间都花在数据上。😊,剩下的30%左右的时间花在模型上,为什么?因为模型的套路太明显了。模型的套路太明显了,我我我身边会有一些呃这个数各种数据科学比赛的。

这些大牛。啊,然后包括我本人之前也简单的刷过一些玩玩一些比赛。😊,我会告诉大家,所有这些比参加比赛的老司机,后面调餐的部分或者是模型的部分,大家套路都很明显。😊。

而且基本上模板就是类似那种不是大家想象的那种非常成型的模板啊,把数据往头一怼就出来结果的模板。就是说可插拔的这种组件的这种模板,大家手上已经有很多了。所以这个部分大家做到的都差不多。😊,那前面的部分。

你能你能对你的数据有多大程度的理解,你能对从你的数据上拿出来多高效的表达所有用的信息,这个东西会很大程度上影响你最后能做到什么样一个程度。它会影响你到底是呃200名还是20名。

而刚才你说到那些模型的部分,会决定可能在一定程度上能决定你到底是在一名、二名还是3名。就是我需要去做一些微调,他们竞争已经很激烈了。在前面。OK所以这些互联网公司的工作,包括你去参加一些数据科学比赛呢。

没有大家想象的那么的f。是我一天到晚就在研究这些B格很高的模型。没有有时大部分情况下呢,数据对数据本身的理解会更重要。你很多时候你需要去跑一些,因为那个公司里头数据量一般比较大。

所以很多时候你可能要用一些分布式的平台去跑一些呃简单一点一些circle,然后你可能要写一些分布式的一些小 jobb,然后去跑点数据拉出来看一下,那更小一点的数据,中小型的数据,你可能用也可以完成分析。

对吧?然后你要去结合你的场景去做一些数据的清洗啊,一些业务的分析啊,去看一看我到底现在这个场景底下什么样的特征会更有效啊。现在这本效果好不好啊,分析一下原因啊,然后。😊,我有没有更合理的这个表达模式啊。

对这个数据啊。然后你们你们甚至听过一句话,在很多的公司里头,它叫做一招LR打天下。就是我们之前学到的那个逻辑回归,在很多很多的中小型公司当中已经足够他们解决各种各样的。😊,各种各样的。分类的问题了。呃。

特征工神大概有多大的作用呢?呃,我看过很多开过的比赛,大家有兴趣呢你也可以去研究一下,然后会有一些数据科学的一些比赛。比如说很典型的二分类比赛当中,我们有一个评估指标叫AOC。😊。

因为在那个比如说不均衡的样本当中,我们可能不会用accuracy这样的一些评估的标准啊,就准确率这样评估标准。所以。我们可能在这个情况下会用到一些类似于AUC这样的呃一些评估标准。

那如果你去做一些数据层面的处理啊,这个地方有效特征的抽取呢,不只是指的你你去搞一个什么样的操作,从数据里头抽一部分信息出来,而是说你研究你研究了这个数据的分布,你从这个数据的分布和你这个场景里面。

结合这个场景去做了一个合适的表达。比如说我给大家举一个非常呃我之前参加比赛的一个例子啊。😊,我之前我去年参加了一个比赛,然后那个比赛是要去预测呃一个用电量的一个一个预测的一个比赛。阿里天池上的一个比赛。

然后在那个用电量的一个比赛当中呢,我需要去预测下一个月的呃每一天这个某一个城市的一个一个区它的一个用电量啊,应该说这些高新企业的一个用电量。😊,然后这个比赛当中呢。

我我我因为大家都知道这些呃后面建模的部分呢,可能套路大家都很熟啊,所以就开始就哗哗哗撸了一版,撸完之后呢,就提交上去发现说。😊,呃,就是还行排名。然后当时然后但是有一个问题。

就是我自己去看了训练集当中哪些样本预估的不太好。我看了一眼,我发现有一天有一天的用电量,我怎么也没有办法。😊,去。把它拉到和这个标签啊,就最后的label一样的这个幅度。我就很奇怪。

因为那一天我预估的他它的那个呃用电量,我预估的是高的,实际上非常低。所以一定是有什么原因导致的这件事情。然后我就看我说这一天也不是周末,也不是什么什么法定的这个节假日,为什么这一天用电量会这么低。

感觉是大家是要上班的呀?这企业要上班肯定要用电的呀,后来我发现了一件事情,我后来就查了一下日历,那一年有一个节日叫做抗法西斯胜利,什么什么什么节日,然后那一天居然放假了。😊,所以这个东西很奇怪。

因为当你当你没有你拿不到这部分信息的时候。😊,你不管你是怎么调你的模型。😡,你的模型都你的模型是不会撒谎的,它基于他给到的信息只能预估到那个程度。而当你拿到这部分信息以后,明显你把这个标签一放进去。

明显那一天的用电量就往下降了,它就是一个放假一个一个节日。再给大家举另外一个例子,我在啊那个例子一会儿再举吧。这总之这个东西呢就是我看过很多次的比赛当中,大家做一个有效特征的抽取是能到百分位的提升。

而你去做一些单个模型啊,单个模型调仓的优化顶多就在千分位波动。😊,所以这个事情是这样的,大家要去考虑性价比啊,所以如果你现在的名次还在几百名,你要进到100名内,那请大家多多关注你现在的数据和你的场景。

如果你现在已经在20名之内了。你要去冲刺前面的几名,一名二名。那请大家这个时候研究一下那些模型融合模型的一些各种各样的组装啊,一些各种各样的方式去拉低拉高最后的那1一部分的泛化能力啊。

拉高一点点泛化能力。😊,那后同样下面会有一些其他的一些例子啊,一些电商的比赛呀,一些阿里天使的比赛啊,都是这样,大家都在寻求更有效的数据表达。😊,好,那说到这件事情,我们就从头开始讲这个故事吧。

所以在这个故事的一开始,你面对的东西的时候,我需要去取道数据啊。😊,所以这个地方呢第一件事情是你需要去做一些数据的采集。但好在这个事情呢,采集数据本身并不需要大家这些机器学习的工程师去做。

但是啊你需要去考虑什么样的数据,你是需要的。所以在这个过程当中,你需要去思考思考说哪些数据对最后的这个结果的预估是有帮助的。你思考一下,然后这些数据我们能不能采集的到。因为有些数据它是很有帮助的。

但是实际上你是没有办法提前采集到的。我给大家举一个例子啊,你。😊,在淘宝的场景底下,你每搜一个结果,你会拿到一个结果列表。那他很关心一件事情,就是你在这个商品上会不会发生点击或者下单这样的行为。

但是这个过程呢显很显然,在你拿到这批数据的时候啊,你拿到这批训练数据的时候,你的每一个结果,你都可以有一个有一个特征叫做位置,对吗?因为你已经拿到这个结果了,所以你知道它排在哪个位置。

就是position。😊,所以你的特征,你可以有这个商品的价格呀,这个商品的一个呃商商所在的商铺的评分的情况啊,我的一个评论的心级情况啊,然后你也可以拿到一些这个用户历史上消费的一些情况啊等等。

你可以把这些信息都采集过来,你去帮助你预估当前这个问题。但是你发现你突然发现说这个地方还有另外一个信息叫做位置。😊,叫做position。

你发现说这个太牛逼了positionsition这个东西呢只要放进去。😊,预估的AUC明显会提高很多。但是他有问题啊。你实际在解决这个分类问题的时候,你可能你实际去构建这个分类器。

可能本身就是为了完成这个培排序这个问任务,你会把那些呃更可能下单,更可能发生点击的那样一些东西放在前面。对吧排在前面那些商品你会把那些相对可能你发生点击或者发生购买这个可能性更小的一些商品放在后面。

所以这个时候呢,你发现说你这个potition这个东西在你做这个预估当前这一次预估的时候,你是没有办法提前拿到的。😊,所以这个时候大家要多考虑一点这个信息,你不不能把东西直接就拿过来。

然后你就直接往里头一怼,去生成一个模型,有可能在线上用不了,因为你取不到这分信息,以及线上实时计算的时候,获取是不是快捷,因为线上的效率同样很重要。😊,所以如果你这个特征需要去反复的计算。

很复杂的计算才能得到。那你线上可能要考虑一下。这个地方有一个例子,我举例一下,我说如果我要预测用户对于商品的一个下单的情况,就是说会在在当前的这个商品上会不会下单啊?如果会的话,它发生下单的概率有多高?

😊,或者说我要去做一个商品的一个推荐,我应该采集什么信息呢?我这方给大家写了一点店家的商品的和用户的,你从三个维度去切入嘛。然后每个维度你再考虑一下他们有什么样的信息可以取到。

以及我可不可以把这些信息交叉起来,做一些组合的特征呢?😊,所以这个地方会还是涉及到数据采集这个问题啊,就是大家需要去思考的是哪些数据有用。然后真正的这些数据的采集存储啊。

会有一些其他做数据的同学会帮大家去做啊。可能这些数据工程师或者是这些啊数那个数据科学家可能不用去做这么底层的工作。所以我们举个例子,我们说如果今天今天有这个7月开了一个。😊,机器学习的一个算法。

某个机构开了一个机器学习算法的一个模型。😊,对吧算法的一个模型。所以这个时候呢,我想构建一个这样的模型,去预测一下,说哎能大家来听这这样一个课,大家来听这样的一个课,然后有兴趣听下去的程度有多高。

我应该采集一些什么样的数据呢?😊,那你这个时候你就可以开脑洞了,对吧?实际上很多比赛的比很多大家参加数据科学比赛的第一步就是先理解场景,然后就开始分析场景,开始开脑洞,想有什么样的特征了。举个例子来说。

可能今天如果是呃韩老师过来讲,可能大家听着就会想睡觉,可能会换成其他的,换成唐老师过来讲,可能大家就很开心啊,这个有可能对吧?所以他可能会和这个老师有关系,可能会和这个老师的声音有关系。

可能韩老师说话的声音不太好听,某个老师的声音比较好听,可能可能这也是一些影响因素,哎,可能说和今天这个课程的内容的难度有关系。因为这个课程要是太难了,我一堆的公式推导,可能大家就听不下去。

可能如果今天是比较唉这个显展示效果比较好的这个数据对吧?可能呃展示效果比较好的这样的一部分内容,可能大家就比较有兴趣。😊,对,所以有同学说对了,就是这样去想的话是很没有顺序的。所以有同学很棒啊。

就会给到说这个地方呢我会给到一些信息。比如说和培训机构有关的信息,对吧?比如说和和当前这个老师有关的信息,比如说和同学们有关的信息,和我开课的时间点有关的信息。

和我其他的一些呃这个这个一起参与的这个参与课程的同学们有关的一些信息,所以你可以找一些维度去切入进去去组织这部分的数据,刚才有同学问到说买点是什么?这个这个不属于数据科学的范畴,就是你用1个APP。

比如说你用一个抖音,那你的上面的每一个行为,你用一个抖音或者用一个今日头条,你上面的每一个行为我都应该去做一个记录,对吧?那记录这个是在前端的对吧?对,就是在APP里头去做对做一些记录,然后把信息返回。

😊,这个和我们这个课程关系不是太大,所以我没有特别去做解释。😊,然后这个地方的数据的格式化,我就简单的说一下就好了。就是你确定一下你你什么样的方式去存储会更方便,方便你将来的读取或者解析啊。

有时候呢我们数据量会比较大,所以我们会去存储在那些啊,比如说HDFS上啊等等。然后啊大家要注意的一件事情是这样的。除掉就刚才我们说的事情叫数据采集,并不是采集到的所有的数据都需要用的。😊。

就是它有可能是会有一些噪声的,可能你们想象不到这个事情有影响程度有多大。首先呢你要知道机器学习模型对于模型而言,你给到他的数据。他是没有任何的区分能力的。什么意思?你今天要学。这个高二的一门数学数学课。

你上书店里头买了一本书,那这些练习题就是你要学习的这样一些样本,对吧?所以你会通过这些题反复的去做这些题,去学习到一个做题的呃套路和方法。但今天有个问题,万一你今天买的这本参考资料里头有几道错题。😊。

其实你是不知道的对吧?你对那本书非常信任,你觉得说他已经给出来参考答案,他肯定是对的。所以你就拼命的去想,为什么这个参考答案这个思路呃,这个思路是怎么去想的,你想了想着就学偏了,对吧?😊。

所以这个时候有一个说法叫做垃圾进垃圾出。就是如果你给了一些精准度很低,很没有意义的一些信息,或者说有干扰的信息送到模型当中,那这些干扰有干扰的信息同样会被模型学习的。😊。

因为他区分不出来这个东西是不是脏数据,你给到他所有东西他都想学。然后同样这个地方呢,就是所以大家一定要注意一下,这个地方算法大多数就是一个加工机器,最后的成品如何,其实取决于你原材料的好坏。

所以你的算法模型啊就是你的数据这块的处理啊,特征和数据这块处理,基本会决定你最后这个在你当前的这个场景底下,结合你这份数据,你能达到的一个效果的上限。而你的模型只是让它不断的去逼近这个上限。😊,贵。

这个过程会花掉很大一部分的时间。然后他主要在做的事情,实际上是把这些noice data,这些脏数据干掉,就是这些不可靠的数据,这些错误的题目干掉。我我给大家说一个例子。

我在去年的时候参加了一个天池的比赛,也是学员在参加。然后我就我就陪他们一起看一下呗。然后大概呃因为因为那个数据量不是太大,分析起来还比较简单,所以我就快速的撸了撸了一半,提交上去了。

最开始的时候不瞒大家说,反正在也在200名左右啊,就那个比赛大概有2700支队伍参加,在200名左右。然后后面的那因为那些建模的那些套路,大家大家都很熟啊,所以这些工程师直接拿过来快速的搞一搞一把。

可能半个小时或者多久就提交上去了,然后大概在200名。😊,大概这个排名2100多名,大概持续了两天吧,我提交了有晚两个晚上拿了一点时间出来做了一下。然后呃后来我做了一件事情,名次就上升到40名之内了。

😊,就上升到40年之内了,这个世界并不像大家想的,我用了比格更高的魔心,没有。😊,后面的所有处理环节一模一样,我仅仅是把那份数据当中,我觉得。偏了的数据或者说噪声数据干掉。仅仅是这样一个操作,它就从。

100多名升到了进入了到40名之内。然后后面的部分啊再进到20名之内,进到15名之内,那个可能要花一些其他的精力去做后续的这个特征,去做一些啊模型层面的一些呃融合啊或者其他的提升这样。

所以这个是呃就是我给大家说一下一些实际的感受,真的是很重要的。然后这个地方有什么样的方法可以去判定这些脏数据nise data,然后。以及判断到这去把这些脏数据去掉呢。

所以这个地方会涉及到一些大家可以看到这个地方涉及到一些方法。最简单的方法是呃有些东西就是不可能的。你看看这个地方身高超过3米的人,然后买各种各样的生活的洁据。

能买到10一个月能买到10万的这样的呃单个用户或者一些组合特征,对吧?根据你的这个信息去做组合,有些问题啊,这样的一些,然后除掉它以外,还会有一些其他的方法,比如说统计值啊,就是统计分布统计分布。

那比如说在我这连续值啊,我的一个连续值,连续值的,你们知道分位数这个概念吗?😊,分位数,比如说10%的分位数,你们知道是什么样一个概念吗?分位数是指的,比如举个例子来说啊。

就是现在我有一个年龄这样一个字段。那如果要取整个淘宝的用户当中年龄在呃10%分位数的这样的一个值。我做的事情是把所有的淘宝的用户取过来,让他们根据年龄去排排站。年龄去排败站。

就是从年龄到小到年龄年龄最小到最大,然后去排一个序,然后我去取其中第百从左往右数第10%的那个位置,他的年龄,所以这个叫做分位数。所以很多时候我们去脏数据会怎么去呢?你就会把呃比如说哦举个例子。

我随便举个例子,99%分位数以上的只卡掉。像这种一个月买脸盆买墩布,买了10万的人很有可能就在99%的分位数以外。就是去头掐头去尾,明白我意思吧?就是大家都会在这个平台上会有消费。

那这个消费它一定是有符合它一定是有大有小的那我让他从小到大去排序,然后把头和尾掐掉,就这个意思O。😊,就是根据统计呃,然后这个地方还有些其他的数据处理。举个例子来说啊。

第一有一种很重要的数据处理叫做数据采样。😊,都数据采样。所以数据采样的时候,很多情况下,大家看到那些样数那些呃我们叫做样本或者那些数据呢,它的正负样本是不均衡的。

这种这种场景通常情况下是会在分类这个场景里面出现的。在分类的场景里面呢,很多时候你的正负样本是不均衡的,是balance的。举个例子来说啊,在电商里头啊,用户买和没有买过的商品,实际上是不成正比的呃。

或者说他们不是一个数量级的。显然购买这个行为是需要付出代价的,要花钱。所以大部分人只逛不买。😊,那再比如说有一部分的疾病,他的患者和健康人,实际上他的比例是。不均衡的。就是有一些很稀少的病。

他可能患病的概率只有10万分之1、100万分之1。所以这个时候呢,大家想一想,大部分你取到的都是都是健康人。😊,所以这种情况下,你要去构建模型,你需要去构建一个模型,去学习。

区分这两这个健康人和患者或者区分会不会在淘宝这个平台上发生购买这样的行为。很显然,你不能直接把数据放进去。这个时候我肯定只关注大多数的那些样本,少种的那部分样本。我不用太关心。举个例子来说。

我现在以准确率去做评估。那我这个患病的可能性是1%,我只需要把所有人都判断成正常人。我这时候的准确率只有99%,对吗?😊,但这个事情有意义吗?准确率达到99%,这个事情有意义吗?我就想去找到那个病人。

你告诉我说,所有的人都是健康的。你告诉我说,这个时候的准确率是99%,这个没有意义的。所以这种时候呢,你的正负样本是不均衡的,你可能要去做一些采样的处理啊,大多数的模型对正负样本比都是敏感的。

比如说逻辑回归。啊,然后这个时候呢你要去做一下采样。比如说你可以随机采样,你可以做一些分层采样,分层采样。为什么要做分层采样呢?举个例子来说,淘宝上的小哥哥和小姐姐他们购买的。😊。

感兴趣的东西肯定是不一样的。你今天做一个。抽样你假如说啊一般不会有这样的情况。假如说你今天数据很倒霉,你今天数据就是你抽出来的所有的小哥哥都落到了啊一份就是落到了。😡。

这个呃抽抽取出来的一个一个数据集当中,然后所有小姐姐都变到另外一个数据集当中。那这个时候呢,你去你再去构建这样的模型,显然是会有问题的。你最好能够保持住这个每一份数据集当中,你的数据。

现在里头的小哥哥和小姐姐的配比,都和我淘宝这个平台上,小哥哥和小姐姐的配比是一致的,最好是这样。😊,对吧?好,所以底下会有一些正负样本不均衡的一些处理办法。举个例子说,最简单的是什么呢?

最简单的是我把正样本或者负样本去做一些采样嘛。所以这个地方呢我可以对这样我我我写了一些场景啊。有时候我是做一些down。有时候我是做一些 over,或者说叫做过采样啊,这个下采样也叫做欠采样。

对就是如果我的正样本是十我的副样本是啊一我可能就可以把十采样出来10分之1,让它尽量的配成1比1或者差不多的这样的一个比例啊。如果我的我的呃量都不太大呢,你可以做一些事情,采集更多的数据啊。

你可以把一的这个部分都重复几次啊,或者说你不用简单的重复,而是用这个地方的一些镜像或者是旋转这样的处理。比如说图像识别当中,你对一只猫去旋转一下去翻转一下去上下平移一下,做一个截段。对于计算机而言。

它看到的数据是完全不一样的。但是对于人而言,它就是一。😊,只猫。这个地方的over sampling还还有一些其他的方法。比如说有些同学可能听过这个方法啊。

我不在这个课里头给大家细讲叫SMOTE啊smote这是一个处理un balanceance data会用到的一个一个算法。而这个算法呢会造出来一些数据。

这些造出来的数据呢是在在正样本和负样本之间去做一些线性内差,然后造出来一些样本。😊,呃,抱歉,我今天没有带手写本,所以写的可能有点丑啊,但是FMOTE啊这个意思。😊,这个意思O。

然后呃底下的这个地方修改损失函数呢也很好理解。你想一想在逻辑回归当中,我是不是把所有的正样本和负样本。把所有的正样本和负样本,它的lo都加在一起啊。有印象吗?

我是把它每个样本的los function都加在一起,对吗?那如果你今天有一类的样本占比占了99%,是不是我所有的损失函数的los都倾斜到上面去了?😊,所以这个显然是不合理的对吧?

所以你可以去修改一下你现在的lo function,你可以给不同的比重或者怎么样去做一些处理。😊,有同学问到一个问题,说smote的效果好不好?SMOTE我不太我不太喜欢回答这种问题。

因为你没有给我任何的场景,也没有给我数据,就是你没有给我任何的背景信息。你问我一个东西好不好。你要知道这个世界上呃有一个就是你有很多事情确实是存在就有意义的。所以这个方法在有些场景里面好。

在有些场景里面不好。但是很多时候你确实要结合你的数据结合的实验去看这样的一个结果,你不能直接说它好或者不好。我见过一些比赛里面用它效果也也不太明显的,也有,然后也有另外一些人号称用这个算法。

用这个方法之后,效果有一定程度的提升。所以在这个课里头呢,我会尽量的给大家罗列到所有可能你会用到的处理。然后你我我对于那种比较清晰的能够告诉大家哪些场景里面效果比较好的,我会告诉大家。

但另外一些如果我没有提到,可能这个部分就需要大家通过自己。😊,的实验或者结合自己的数据去看它效果到底好不好,就是没有对,没有办法直接给到结果,这个意思好吧。好,下面就进入我们重点的部分了。

然后这个部分很重要。因为我刚才一上来给大家提到的说,我有一个同事很爱问大家说你知道什么样的特征工程的处理方法呀?他指的就是这一块。它指的就是这个地方这一块。

我看到有同学问到一个问题说没懂修改损失函数解决不平衡不均衡啊,最简单的一个问题啊,最简单的一个问题就是你现在的正样本和负样本的比是99比1。你想一想,你最后损失函数当中,你的损失值是不是在逻辑回归了?

如果用逻辑回归,因为我先讲最简单的模型,里面是不是有99%的损失都来源于正样本,有1%的损失来源于负样本了,有问题吗?因为你这幅样本就是这样的嘛,你每个样本都要求一个los嘛,加起来。😡。

所以这个时候最简单的一个处理就是你把这个东西的last function当中少了这一类的los去做加权。它我指的不是说把l function的形态改变,比如说不用对数损失。

或者不用这个对逻辑回归当中对数损失,不是这个意思。就是有些简单的处理,比如说。😊,修改权重对吧?因为它的形态会有一些变化嘛,就是你你最终的损失函数是一个sigma的形态嘛。😊,类似这样的意思啊。

大概大家明白我的意思啊,就是会让你的让你的损失函数上不要有那么强的倾向性去倾向到非常多的那一类。😊,然后这个地方的特征的处理,实际上找指的是不同的类型的数据上,我去做各种各样的处理。举个例子来说,呃。

你会见到各种各样形态的数据。😊,你会见到各种各样形态的数据。比如说比如说你会见到有数值型的数据,比如说年龄,比如说商品的价格,比如说这个房子的一个房龄,这些就是数值型的数据,对吧?

那会见到另外一些数据叫做类别型的数据。比如说你上淘宝上买东西,你那个小姐姐告诉你说这个口红会有180个色号,然后你就一脸懵逼的问她说180个色号,所以这是不同的取值的类型。然后。比如说这件衣服的尺寸大。

这件衣服的size大小有有S,有M,有L,有叉L,有叉叉L。对吧所以这个东西它是一个一个类别,就是你你可以取不种不同的这种类别。比如再举个例子来说,比如说星期几。

今天星期一还是星期二还是星期三还是到星期天,这也是类别型O好,像面第三种类型叫做时间型啊,时间型很重要啊。因为它提供了很有很多的问题是时续性的问题。

所以我会提供和时间相关的这样的一些信息给到你O然后还有一些更特殊的数据。比如说文本型啊,比如说图像类型啊,比如说你也可以基于我的业务去做一些统计啊。啊,我们分别来看一看有哪些套路是可以去啊做这样的处理。

😊,呃,我先讲,然后对于我这个地方刚才提到的问题,有问题的同学,一会儿在我们休息时间内让,大家尽管提,然后我来做解答,好吧。😊,这个地方呢我见到第一种类型叫做竖直形。

叫做numberbreak这样的类型。所以数直型顾名思义。指的就是我现在这一列是一个连续值呗。所以我先给大家罗列了一下连续值有哪些不同程度的或者不同方式的处理手段。

所以这个地方第一个处理手段叫做幅度调整和规一化。叫做scaling,叫做幅度缩放。什么意思呢?哎,大家都知道我们采集我们会采集很多数据过来。比如说我房子预测这样一个例子,然后我采集到很多列啊。

我给大家随便画一些列啊,那个抱歉,今天那个手写本不在身边,所以那个可能画的不太好,见谅就是我会有很多行很多列对吧?会经给大家说过,每一行呢就是一个一条记录,一个样本。

然后每一列呢就会是呃对应的这个一个维度,一个观测维度。所以你有很多列。你发现这个房子里头啊会有一些列式,这个房子的呃几居啊,几居。😊,啊,就几居,然后哎呀这个。就几居这样一个字段。

然后你会有其他的一些字段,比如唉。有其他的一些字段,比如说呃均价就是这块地区的房子的均价。😊,所以这个时候呢就是你发现你的不同的字段之间,它的幅度大小是不一样的。举个例子来说,几居啊。

我假设说有有人有一个豪宅,但豪宅应该也到不了一两百个卧室吧。就是你这个通常情况下,你几居这个应该是在在5以下。😊,就是你那个房子一个一套房子是几居的话,它可能是在呃在5这样一个数字以下。

那那均价呢均价不一定吧。你比如说像北上广这样的地方,很多的呃北上广深这样的地方,很多的区域价格甚至能标到呃4万5万以上,对吧?均价。😊,所以。😊,所以你发现这两列它之间的幅度差异很大。

就有一列大概是也许哎它就是在0到5之间。另外一列是你发现它可以到几万。😊,就是均价而它幅度就大很多。所以所以这个时候哎我我会有什么问题吗?就问大家一下,那这有什么问题呢?你一列的幅度范围小。

一列的幅度范围大,这个有什么不可以呢?模型就不能学了吗?😊,模型当然可以学了,但你回忆一下,有些模型我又拿逻辑回归为例。大家想一想,在logistic regression当中。

我们要做的事情是给每个位置都给一个权重,对吧?所以我会有W1乘以X1加W2乘以X2加W3乘以X3。你现在的X1这个几居,它是一个只在0到5之间的值。你的那个W啊,不不是WX啊。

几比如说X6或者X7均价可以标到几万。😊,你这个时候你去做刚才那个运算,那个W1X1,再加上啊W2X2,你会。啊,WIXI吧。😊,你会发现你有一些字段它的幅度范围非常大,有些幅度范围非常小。

那这个时候会有什么问题啊?大家想一想我的W是不是也要学习出来,幅度相差很大的权重啊,不然的话啊,你的你的均价这个地方几万,你的几居就是0到5,那我W都配一个都配一个幅度差不多的值。

那你几居那个影响因素还有什么关系?我房价上差上1000,你那个几居,你你你多少套房子的N居你都追不上,对吧?😊,所以这个时候就会带来就会让模型很困惑。他在学习的过程当中。😊,因为幅度相差实在太大了。

这个时候如果大家去思考一下,我们在逻辑回归当中,我们如果用一个2元来分析的话,我们是一个碗状的一个一个损失函数,对吧?我们要去找到那个碗状的那个lo function,它的底部,对吧?😊。

所以之前我给大家画了一个等高图,等高线的一个图,类似于啊等高线的一个图。所以正常情况下,这个等高线的图应该是这样的。如果你今天的幅度差异很大的话,这个等高线的图可能会变成这个样子。😊,是非常非常尖。

非常非常窄。所以这个时候他在做呃,因为大家知道我的梯度下降是找法线的方向,就是垂直于切线的方向去每次迈进一小步,对吧?所以这个时候大家就会发现它的那个垂法线的方向啊就会。就很纠结,就会抖动。

明白我意思吧?所以所以对于有些模型,比如说逻辑回归这样的模型,他是很怕这个事情的。你给到的数据,现在的每一列有大有小,有些这么大,有些那么小。😊,他学习起来就很纠结。所以这个时候怎么办呢?

我们就会想一些办法把它调整到同样的幅度范围内。比如说有一些scalar,这个地方有一些scalar,比如说最大最小值的scaar,它做一件事情,它把最大值减去最小值作为一个缩放的幅度。

去做一个分母去对你原始的数据去做一个做一个转换啊,就是用你现在的这个值,你现在这个值比如说A去减掉我的最小值,最小值叫什么叫MINO这个时候呢我再去除以我的最除以我的最大减最小啊,除以我的max。😊。

不好意思,这个写的有点丑了啊,大家理解一下,大概是A减去MIN除以max减去MIN啊这样的意思。然后所以它会把它变成一个呃一定范围内的一个值,对吧?😊,0到1之间的一个值。okK哎。

但是你要把这个地方的最大最小记录下来啊,因为你待会儿对数据去做变换的时候,都需要通过这个公式去做变换。所以第一个大家要做做的处理叫做幅度缩放。幅度缩放有很多的方式。

刚才给大家讲到这个min max scale是其中的一一种,它还会有一些其他的,比如说标准化,叫standard scale啊,然后呃这个我要给大家。😊,抱抱歉,这个地方我要纠正一下,这个叫做标准化。

不叫规一化啊。这个课件有点小问题,就是我们要精准一点,这个的称呼叫做标准化。啊,不是规化,对,叫standandard scale。所以标准化做什么样的事情呢?就是减掉了这一列的均值,再除以它的啊。

方差。这做了一个变换啊啊或者说标准差啊,注意标准差做了一个变换变换,所以它叫做标准化。我我下课以后把那个呃我们的课件更新一下啊,它叫做标准化。

然后这个大家在SK learn当中去调这个standard scale也可以啊,就直接对数据去fit一下,fi一下,它就变化了就变化了。然后下面跟另外一些重要的。😊,特征就是各种各样的统计值。

举个例子来说,我我刚才已经说到了一点,我说我要去预估房子的价格,我可能会去采集这个地区的房子的一个均价,一个average的price,然后均价,然后最大最最便宜的价格,最高的价格。然后25%分位数。

75%分位数的价格。所有这样的统计信息大家都可以用。所以这个地方呢基于统计信息去拿到的特征,大家可以在这个地方通过pandas的这个一些crmeile这样的呃pandas有一个函数啊。

叫做crmeile。然后你可以通过类似于这样的一些函数去取到它对应的特征啊,对应的特征。OK然后呃底下这个唉这个操作很重要,就是前面这两个我已经说完了,一个是幅度缩放,还有一个是统计值。

我也说了一下原因。然后下面这个地方这个操作很重要,这个操作叫做离散化。😊,我先说理想化是什么样的一个意思?我今天有一列这一列叫做年龄或者叫做价格。这一列显然是一个连续值,对吧?显然是一个连续值。

但是这个连续值我就直接送到模型里头去做计算吗?我拿了一个活逻辑回归出来,我就直接把它送到一个逻辑回归的这个呃结果送到一个逻辑回归的这个模型当中去完成训练吗?😊,想想这个事情一定是合理的吗?

我给大家举一个例子啊,哎,今天我经常会举这个例子,我说今天你你去坐地铁,对吧?你出门你坐地铁,然后你上到地铁上,然后你看你坐地铁的时候呢,就是那个上来了,地铁上上来了一个人。

然后你要判断一下说我要不要给这个人去让座,就是这个这个人上来了以后呢,我要不要给他让座。那我我有很多的因素都会影响你让不让该不该让座,对吧?那其中一个因素是这个人的年龄到底有多大。😊。

那你想一下什么样的情况下,你可能会让样座。老人或者小孩,对吧?所以上来一个年纪很大的一个步履蹒跚的一个老人,你可能会给他让座。上来一个年龄很小的一个小朋友,你可能觉得说要尊老爱幼,你可能会给他让座。

对吧?啊,带带宝宝的这种妈妈ok那你可能会让给宝宝。所以这个时候你发现了一个问题,好像好像我这个时候要照顾年龄很小,要照顾年龄很大的人,哎,你在回忆一下我们的逻辑回归,逻辑回归当中,我会去做一个计算。

一加上意的。😊,负的WX。分之1去作为我让座的一个概率P对吗?哎,你想一下这个事情,如果我的W,我年龄这一个字段,如果我的W是正直,我随着我的年龄越大,我的概率P应该怎么样?😊,来。

哪个同学能回答一下这个问题。如果我基于逻辑回归去完成这个现在这个让不让座的这个场景,我的年龄越大。如果我的W是一个正的值啊,就是对年龄而言,年龄的权重是一个正值。那我这个时候年龄越大。😊。

我更有可能会让座还是不让座。X越大WX越大。负WX越小E的负WX越小一加上E的负WX分之1越大。😊,这以是让座,对不对?对,所以你发现但是这样的话,哎我的我好像就照顾不到小朋友了。哎。

那如果我把X取成一个负值呢,取成个负值X越小,他越会让,对吧?那小朋友他会让,但我就照顾不到老人了,所以你就陷入一个很两难的境地。你说现在这个场景太复杂了,这个年龄居然是两段儿的。😊,我又照照顾小朋友。

也要照顾老人,这个我就很纠结了,我的逻辑回归好像做不到这件事情啊。因为我的W要不就是正的,要不就是负的,对吗?😡,所以他想了一个很聪明的办法。他想了这样的一个办法。😊,刚才的年龄是一个字段,对吧?

一个字段就表示它是一列,就是一列。刚才年龄就是我所有的那个表当中的一列。哎,我觉得一列这个东西真的是哎太不好弄了。所以我来我不如来对它做一点小小的变换,我产出来新的三列,这三列分别是年龄小于6岁。😊。

年龄在6到60岁之间。年龄大于60岁。哎,这个时候你发现好办了,为什么年龄这一列变成了三列?😡,我需要在这个里面对我的三列给三个不同的W。哎,我是不是可以单独给小于6的这个区间1个W1给他一个很大的W。

然后给大于60岁的人也给一个很大的W。啊,sorry,这个小于6的给一个很小的W,然后一个负值一个负值,然后大于60岁的给一个很大的W,这不就解决了吗?中间这个我就不管了。😊,啊,我可以给个零。

你也可以给一个其他的属性啊,这无所谓,就是这个是模型学出来的。但是大家get到我的意思了吗?就是好像。😊,我原本用逻辑回归解决不了这个问题,原因是你的信息不够细,你都给我放到一列里面了。

好像我现在放在这一列里面,我我其实我就很很两难,我要么就照顾年纪大的,要不照顾年纪小的。那那我怎么办呢?哎,你既然觉得说你不同的年龄段会有影响。你为什么不把年龄分成段呢?

所以这个离散化本质上就是把年把这样的数值分成不同的段儿。所以他把一个连续值分成很多段,单独把每一段列成一个特征。这个时候你就可以单独的照顾这一段里头的这个数据。😊,明白我意思了吧?

这个操作就叫做离散化哦,它是一个很重要的操作。因为这个操作在呃我了解的同学出去面试啊,就是一般出去面试,问到特征工程这块,5个人能能有4个被问到这个问题?就是你对连续只有什么样的处理?

为什么要做这样的一个处理。😊,有同学刚才回说了一句话,说,trainree model数模型好多都是要离散化的吧。你说错你说错了,你说反了,数模型是不需要离散化的。数模型天生的结构产出的。分支就是规则。

就是离散化的入。要做离散化的是向逻辑回归神经网络。这种模型理数模型不需要。所以呃但是我不了解我不理解我就是我不确定你是不是表达上有一些偏差啊。可能你想说的是说,数模型可以产出一些区间或者是规则。

对数模型可以产出,但数模型不需要对原始数据去做理想化。但是你用于计算的这种模型是需要的。因为你刚才大家已经看到了,我让不让座这个问题,严重的被年龄这个东西干扰了。我照顾不到两头。😡。

所以第一件事情我问大家,这个地方关于离散化这个操作,我给大家解释清楚了吗?😊,关于离散化这个操作,我给大家解释清楚了吗?或者分箱或者分桶。好好,下面我要说另外一个很重要的事情。

我要我要提另外一个很重要的。这个很重要的事情是这样的。哎,我我今天我就我就很纳闷的,就是你要对年龄去做分段,我怎么分呢?😊,对吧你你得告诉我你分的那些边界是什么呀,那我怎么去取这个东西啊?😡。

所以这个地方有两种有两种离散化的,或者它有不同的称呼啊,它也叫做分箱或者分筒。你们如果在其他地方看到了那个叫做分箱或者分筒这样的称呼,它指的也是这样的操作。对连续值啊,对连续值做分箱或者分筒。

但这里又有个问题,就是我去我这边界怎么取啊?😡,你现在这个场景你是可以去敲1个6岁和60岁。但但。比如说我今天上淘宝了,我看一个商品的价格,我我不知道这东西贵不贵啊。比如说呃举例子啊。

就是比如说电子产品可能对我还比较熟悉,就我对电子产品可能比较熟悉。那比如说今天这个东西是一只口红或者是一条一一件什么连衣裙,那我就很懵逼了。😊,我对那个东西不熟啊,什么样东西算贵,什么样算便宜啊?😡。

那我怎么去分这个段儿?所以啊这个地方有两种处理方式,第一种处理很很简单啊,就是我们今天讲到的全是实操类型的那个一些处理。所以那个很简单,这些地方呢有两两种处理方式,一种叫做等平切分。等平切分很简单。

就是啊总共呃衣服最便宜是搞活动的5块钱最贵的这个衣服可能价格呃到几千,那就从5块钱到几千,每隔50块钱切一段,每隔50块钱切一段,能明白吧?这就叫做等平等距啊,叫等距切分。

所以是等价格距离或者等年龄距离去做切分。我直接说我要分成1段。okK那就取到最大最小。然后中间呢按照最大最小,每次跳过呃是那个10分之1的最大最小,这样大小或5分之1的最大最小。

然后去做一个边界产出边界。😊,所以这个叫做等距切分,但是等距切分会有些问题。有聪明的同学能告诉我等距切分的问题是什么吗?😊,哎,你想一下,好像好像你你看数据的分布会是均匀分布吗?

这个世界上好像是均匀分布的,这种数据好像很少啊。😊,所以可能大部分的连衣裙,大部分的口红可能都会集中在某一个价格段里。那你这样的话,你切一切有什么用啊?我其他的那些段里头取取不到什么数据。

大部分都丢在一个一个段里头了,或者丢在两一两段里了。对吗?所以没有人告诉你说,我的数据是均匀分布的呀,凭什么你去等距的去切呀,这个好像会有问题吧。😡,所以OK所以这个时候呢,对呀。

第二种处理方式我就不等距了。对,有同学很聪明,我按照分位数来切不行吗?我要求我每个桶里头都有总量的10分之1的数据不行吗?我按照从小到大排排站站好以后,我按照等数量的方式去切,就取出来那个边界不可以吗?

😊,哎,很棒。所以我看到我们有同学很棒,这个方式叫做等平切分。是的啊,很好。所以等平切分是指的我做一些统计,我去把分位数取出来,然后我根据我的分位数去去分段。好了,所以离散的话。

我就给大家介绍到这离散化一般情况下最棒的方式是用呃就是两种方式都有用啊,两种方式都有用。然后这个里面呢如果大家要去用这个地方的pas去做操作的话,有两个函数,一个叫cut。

一个叫Q cutcut呢是直接等距去切,就是你给边界,它按照边界去等距去切。然后如果那个那个Q cut呢,Q cut就是我去算一下百分比,然后我去给你切啊,就是分位数,然后就给你切。😊,好了。

然后呃柱状分布我就我就不多说了。然后我们来说一下,刚才有同学问到了一个问题,说老师我知道有一些数据的处理叫做one化encoding。😊,对,那个读热向量编码和离散化是两回事儿。你们下次如果要出去面试。

有人问到的话,你千万不能说这个是一个处理啊,它是两种不同的处理。对,这个会显得有点不专业。那刚才我介绍我刚才我介绍到了那个这个数值型。大家看到数值型的话,我要做什么幅度缩放。

我要做一些唉统计的运算去拿到一些结果。哎,我要去做什么?我可能会有些模型我需要去做一些离散化,这样的话,我能够在计算的时候就照顾到不同的段,啊,我不会随着年龄越大或者是越小而怎么样单调的变化,对吧?

我可以让它不单调,哎,这个就很好。然后我们下面要介绍另外一类数据,就是计算机完全懵逼的数据,叫做类别型的数据。OK一支口红有180个色号啊,这个180是纯属我鬼扯了啊,我也不知道口红有多少种色号色号。

也许这个世界有多少种颜色,口红就可以有多少种色号。然后一件衣服会有很多不同的颜色。一一双鞋会有很多不同的尺码。然后你的一件衣服呃可能会有不同的size大小okK啊,所以这样的数据计算机现在就完全懵逼了。

😊,我我哪知道什么叫红色,什么叫绿色?什么叫蓝色?😊,我我怎么知道今天星期一和星期二有什么样的差别?😊,你你我读不懂这个东西,你得告诉我数字啊,在计算机的世界里只有数字,更严格一点点说只有零和一。😊。

所以你学到你掌握的这些东西,但其是读不懂的,所以怎么办呢?这个地方我列了四种操作,我一种一种来给大家讲。第一种操作叫做读热向量编码,也叫做亚变量变换,叫做one hot encoding,哎。

也叫做W variable这个transformation。所以读热向量编码或者亚变量指的是什么样的意思呢?😊,这个时候有一个问题,就是啊我今天去买一件衣服,我看到我看到有个款式衣服太棒了。

然后这个款式衣服有三种不同的颜色啊,分别是这个啊红色啊。😊,红色red,然后呃绿色green,然后蓝色blue,然后啊四种颜色嘛,然后黄色yellow。😊,所以有四种不同的颜色。😊,计算机读不懂了。

那怎么办呢?计算机只能读这种数字,我要区分这四种颜色怎么办呢?😊,嗯。嗯,那我要用数字编码一下,对吧?所以有同学就提出来了一种编码方式,这种也是一种编码方式啊。

叫label encoder label encoder。所以叫做1234。然后你很开心,你说老师。😊,我区分出来了,你看我现在把R用一个字典,python里头字典映射成一,把green映射成2。

把blue映射成3,把yellow映射成映射成4,这个事情就解决了。😊,让家很开心,哎,大有同学能告诉我说,我这种编码会不会有会不会有问题啊?😊,就是独热向量编码,呃,为什么我一定要用独热向量编码。

而不用1234这样的编码形式呢?至少在逻辑回归这样的逻辑回归这样的模型当中,为什么我不能这样去做呢?哎,回到刚才年龄的那个例子,你想一想,如果我颜色这个字段,我拿到的权重W是大于零的。哎。

我是不是黄色明显概率就会变高啊?😊,如果是小运营的,是不是颜死红色明显概率就会变高啊?问题是你凭什么让不同的颜色之间有大小关系啊?谁告诉你说黄色比红色要大了。谁告诉你这件事情了,不能红色比黄色大吗?

所以就很糟糕这个事情,对吧?哎,我们回想一下,我们可在刚才李散画一头是如何处理这个事情的。😊,OK我处理不了。😡,那不处理不了,不如我就把它们分到不同的列里面就好了。就是我认为说不同的颜色。

它应该是等价的对吧?红色是我的一种颜色,蓝黄色也是我的一种颜色,凭什么你说红色比黄色数值要小,谁给你的权利?所以你不能这样做呢,你就只能用其他的方式去解决。所以有同学提到一个很好的思路叫做正交化。没错。

你调得到这个核心的点了,这个地方最根本的东西,就是让。😊,让这些不同的特征之间是平等的。平等怎么办?对,平铺开来给四列,这四列分别是是不是红色,是不是绿色,是不是黄色,是不是蓝色。所以这个地方R。知。

B。hy。如果今天是红色是什么1对吧?其他颜色肯定取不到000,这叫做one hot。然后如果今天是绿色,肯定是010。0大家get到这个意思了吗?好像他做了一个什么样的事情啊。

好像我们现在一旦发现说哎我引入这种正相关或者大小顺序不合适的时候,我就把它拆开来,我就单独去考虑,我就单独去考虑这里头的每一种取值。每一个段它是不是。😊,是正相关还是负相关?

所以这个地方的独热向量编码就是指的你这一列有多少种不同的类别型的取值,我就把它平铺成多少行啊,多少列。sorry,我把它平铺成多少列。大家明白我的意思了吗?get我的意思吗?😡,这个就叫做独热向量编码。

叫做亚变量。所以你现在逻辑回归就可以很平等的去处理这个地方的红色、绿色、蓝色和黄色了。O好,这个操作大家可以通过pandas当中的get da miss去拿到get da miss可以从原来的这样一个数据当中。

大家看到啊这个cabin里头yes no这个灯船口岸SC啊SCQ可以去对get missget miss是一个很好用的函数,它可以帮助大家去拿到啊这个地方的。😊,这个这样的一个结果呃。

亚变量变换和读热向量编码是两种称呼是两种称呼。这个东西就像是呃就是奇异果和。呃,这个地方的。哎,奇奇奇果客。不对,就就是猕猴桃是吧?sorry,我有点懵,就是奇异果和猕猴桃一样,就是两种不同的称呼。

但是说的是一件事情。对啊,所以我没有单独说亚变量,就是这是一种变换。😊,啊,好,然后类别型的特征啊类别型的特征呢有另外一个处理叫做哈希特征啊,那举个例子什么意思呢?刚才大家见到的叫什么?

刚才大家见到的叫one hot。哎,你们知道为什么叫one hot吗?😊,因为弯号的表示说我只有一个地方是热的哟,我只有一个位置是一哦,其他位置全是零哦。😊,其实除掉oneho以外。

有另外一种变换的方式叫modty hott。modty hott的意思就是哎,我有几个地方都可以同时使用,同时被激活。所以大家来看一看,这个地方有一种文本处理的方式。😊。

有三句话叫Johnhn likes to watch movies。Mary likes movies, too。john also likes football,所以这三句话。

我如何去对他做编码呢计算机是读不懂文本的,你们不要对他抱太大的希望,文本他绝对读不懂,所以怎么办呢?做表示啊,所以怎么做表示啊,他想了一下,他说这里头不就1234567899个词嘛?哎。

我就立搞一个9个词的词表不就考了,所以他这个地方就搞了一个9个词的词表。john likes to watch movies marry to alsofoot。😊,然后我这句话哪些位置有值。

我就变成一,哪些位置没有值就是零,能明白吧?所以这个就是一种呃,它有一点点像mty hot,就是不止一个位置为一哟。我出现过的所有词,这个位置都要填一哟。哎,那这个东西有没有进一步的一个处理呢?

有时候它会有更高级一点点的处理。举个例子再说啊,我随便举一个例子,今天大家可能去你也看一个什么网易的呃新闻客户端,看一个今日头条里头的新闻,他嗯他希望对文本去做一个编码,但是他又觉得你上面这个编码呢。

好像也还挺好的。但是这个编码形式好像有点好像有一点点的。😊,太稀疏了,就是维度好像很高,有没有办法去把这个信息更浓缩一点点,但是又能表现出来它的体现出来它的某某种程度的信息呢?他做了这样的一件事情。

大家都知道那个比如说头条啊,或者是这些呃网易新闻呢,或者是新浪新闻呢,他们手上会有很多的那个领域内的词表。比如说他今天有一个领域叫做财经啊,那财经这个领域呢就是哎呀。对,就是啊财经类。然后会有一些。

比如说体育类okK所以每一个类别当中都会有一些词表,对吧?所以他这个时候呢,他找了三个不同的领域过来。😊,啊,他找了三个不同的领域过来,所以一个领域是财经,一个是体育,还有一个是ma币政治啊这样的新闻。

然后所以在这种情况下呢,你每个领域都有一批词表,他就统计说我第一句话落在这三个词表当中的词有多少个,落在第二个呃这个地方的类别当中的词有多少个,落在第三个类别词表当中的词有多少个。

所以他拿到这样的一种编码。大家听明白了这个处理怎么来的吗?😊,就是今天我我我有我有很多的词表,我有财经,我有体育,我有政治新闻,然后都是一堆的词表。我就统计说它在里头出现了多少个嘛?哎,这个有什么用啊?

大家想一想是不是能够在一定程度上体现我当前的这个文本的一个。一个一个词的一个倾向性啊,或者内容的一个分布性,分布倾向性啊。所以这种变换呢会依旧依据一个判断,这个地方叫做哈希的判断。

比如说我刚才说的这个哈希判断是判断我落在这些词汇当中的词的个数。财经体育和新闻的词表,他们自己是有的。因为你想一想你随便戳开一个你随便去戳开了一个体育新闻啊。

就是你戳开了腾讯的一个体育新闻的这个专栏里面每天有这么多的报道,哪些词出现最高频,他也不知道吗?他已经做过这些统计了,所以它有这样的一个词表,明白吧?就是有一份预先预先存储好的词表。

然后我去判断这些新来的这篇文章落在不同的统,落在不同的这个地方的。😊,类不同类别的新闻当中的次数有多少次词?有多少次?所以你就拿到了这样的一个表达。你看是不是我把第一句话可以表达成1个320。

第二句话可以表达成1个220。第三句话可能会表达成1个102,哎,他们就会有一体现出来一定程度的分布的差异性啊。😊,对吧。没问题吧。所以所以大概大家get到我的意思吧。所谓这种哈稀技巧。

哈稀处理就是这样。然后还有一些其他的处理,我我把这个地方的类别型的给大家讲完啊,然后我们再那个歇几分钟,我再给大家讲后续。所以这个地方呢还有另外一种很tri的处理啊。我给大家说,你们听着。😊。

这个地方呢有几列,第一列叫做性别啊,男女。第二列呢是年龄啊,21、48、22啊,第三列呢叫做爱好,ok叫做爱好。呃,今天。😊,今天。我想去对这里头不同的数据去做一个表示。比如说我想对性别去做一个表示。

我的性别可以基于什么去做表示呢?对,可以基于后面的些信息去做表示。比如说基于爱好。😊,这个时候呢有几种不同的爱好,分别是足球、散步和看电视剧。所以足球散步和看电视剧。

你想一想男生和女生的占比是不是一定是不一样的呀?所以他把足球散步,他把足球呃散步和看电视剧分别列成这个地方的三列,去统计不同的性别。这种爱好出现的占比有多高?你看男生里头有3分之2的男生都是喜欢足球的。

有3分之1的男生是喜欢散步的。有百3分之00%的男生是喜欢看电视剧的。然后女生当中有32%的女生都是喜欢看电视剧的,有3分之1的女生啊呃,这个当然我我有可能是我的数据的问题啊。

就是3分之1的女生可能是我这个顺序可能有点问题啊,是喜欢散步的,有3分之0的女生可能是喜欢呃踢足球的。😊,大家get到这个地方这个数据是怎么得到的呢?😊,是通过性别做分组。

在每一组当中去统计其他一个类别型的列当中的不同占比。不同类取值类属性取值的占比。所以我讲明白了吗?我讲明白了。O所以这个地方呢,我希望通过另外一列对我这一列的某些属性去做一个表达。我发现说他是能表达的。

因为男生和女生显然他在爱好上会有一些差别。OK好的。没问题啊。对,这个有些同学说,然后呢,然后你就可以在男生的那个样本当中接上这样的一接上这样的一个。😊,三列在女生的那个样本上接上这样的三列。明白吗?

就是它可以作为特征,直接补补充到原来的数据上啊,这个意思。嗯,好的,我们休息5分钟,然后一会儿我回来给大家把后面的内容讲一讲。所以这个地方呢呃休息5分钟的时候,我先回答一下刚才有同学问到的一个问题。

有同学问到说,老师我没明白下载样什么意思,就当三品什么意思?很简单,你现在会有10万的正样本会有1万的负样本。那我把这10万的正样本当中取出来10分之1等于1万。

我取出来这一份数据去和我这个地方的一份数据构成训练集。😊,明白了吗?当samp做的事情就是对多的那一份去做采样。😊,啊,去对多的那一份去做采样。所以呃10比1,你现在从十里头取出来1分之1啊,这叫当。

好,有同学问到一个问题,问的很好,你问 normalmalization和 standardization有什么区别?这个问题问的很好。😊,我来跟带大家说一下这个差别是什么。😊,标准化是对列做处理的。

标准化是对列去做处理的,什么意思?我对我的一个价格这一列去统计价格的呃均值和方差标准差。然后我去做变换。normalization是对行去做处理的。所以我是把一整行的X全都。

把它的平方和加在一起开根号作为我的一个呃normalize的一个一个分母,再去对数据做处理。所以我说明白了吗?归一化和标准化nmalization归一化是对行做处理的。

standalization是对列做处理的。OK明白了吧?😊,对,归一化就是把所有一行里头所有的X1X2这一堆东西的平方加在一起,然后再用X去除以根号下的啊这一堆东西的平方和对归一化是对行,没错。

没有明白这个地方的histtogram怎么用啊。你现在不是有很多的样本吗?你不是有很多的人在淘宝上发生记录了吗?所以有一些行这个地方会是男呢,会是m啊,有些男有些行会是非 male啊。

你把这个男的这一列,3分之1、3分之20接在后面接三列不就好了。然后把女性的这个地方的零3分之13分之2,在后面接三列不就好了,这个事情就完成了。😊,所以明白这个地方怎么用了吗?就接三列拼接上去啊。

是男的就拼上这三个三个值,是女的就拼上那三个值就好了,这不就是特征吗?😊,明白了吗?明白这个用法了吗?对呀,相当于自己补充的特征啊。没错。啊,你们没有操作过数据是吧?

就是我的意思是把这个地方在这个已有的列上接三列,分别是3分之1、3分之2和0啊,03分之1和3分之2明白吗?😊,我说我说我这么说,大家能明白吗?就是你的数据就是行行列列的形式嘛,每一列就是特征嘛。

每一行就是一个样本嘛。😊,对不对?不会啊,互联网公司的数据不不用不用那个人工去做标注啊,每天淘宝上会有那么多的用户浏览的,哪些商品买了,哪些商品没买,哪些商品点了,哪些没点。你每天打开抖音,你双击点赞。

你浏览的时间长度,你看头条里头的每条新闻,停留的时间长度,这些都是标签啊。我为什么需要人工去标注呢?人工还标不过来呢?你天天在看这些东西,你再给我提供label啊,我我为什么要自己去标?😡。

你天天用抖音呢,你天天用头条,你天天用淘宝,用京东的。对吗?明白了吧。哎,我们说点好玩的,因为有人说小黄图需要人工标注那个不一定哦。你要知道物以类聚,人与群分哦,我不需要全部我手工去标注哦,我标一点点。

然后我去看一看哪些人在这些东西上面感兴趣。我再看看这些人去看了其他的什么样的东西,我可能就知道了。在夜深人静的时候,你打开了你的手机,看了什么样的东西,很有可能这个东西。

这一类人看了某些东西就有可能会和这个有关系哦。😊,所以。不一定啊,你要想办法。就是广大的互联网。😊,民众永远可以给我们提供很多的数据。大家get到了吧。😊,哎,真的,这些互联网大厂能做的这么好。

不全是不全是那个呃他们的模型做的有多好,真的是数据数据很充分,数据非常充分。呃,我再说一下这个地方的Histogram映射,这个不是一个你你们在你们并没有你们在其他地方并不会看到这个说法。

这个只是之前在比赛里头用过的一个一个技巧。它的原因是因为男性和女性的行为会有些差别。后面这个向量本质上体现出来了,他们在不几种不同的行为上的一个一个分布差异。

所以我把这两部分信息分别接在男性和女性上会能对我区分是有帮助的。比如说男性很显著的其中某一列就会是比较大的值。那女性会是比较小的值。但这个东西不一定不一定是。不一定是一定要做的处理,明白我意思吧?

刚才的那个类别型的那些呃one hot encoding那种是经常会做的啊,或者是有些情况下我们也会用label encoing,有些情况下也会做这样啊。😊,我说一下时间型的这个特征。

就是feature这样的特征啊呃,sorry time time这样的feature time这样的feature呢它很特殊,它可以做连续值,也可以做离散值。我举个例子来说。

今天头条想去预测这想给你去做一个这个推荐,就是说我这个结果它的一个。😊,它的一个给你推荐一个1一系列的这个文章,或者是抖音,想去给你做一个。什么样的视频的一个推荐?对视频的一个推荐。

那大家可以看到这个地方呢,我们需要捕捉到大家一些信息。比如说我可以去看你在我抖抖音或者头条上看到的某个内容,你的一个浏览时长有多长,就是单页的浏览时长有多长,也有可能有间隔时间。

比如说你上次你经常在京东上去买呃洗面奶。然后你距离上次买洗面奶到现在有多长的时间了。😊,所以这两个东西它是。你可以看出来时间是可以作为连续值来用的,可以作为continuousnumber来用的对吧?

但,它同样可以做离散值。就是你看一天当中的第哪个时间段,这个有用的。举个例子来说。呃,饿了么。😊,饿了么现在是属于。😊,是阿里的是吧?okK对,比如说饿了么或者说美团外卖。😊,那那你去看看这个数据。

真的下单的这个可能性,显然和它的是否在饭点,这个时间段是非常非常相关的。比如说。一周当中的星期几?啊,就是周末和工作日是有差别的对吧?

工作日和周末okK然后大家知道会有一些什么black black Friday之类的一些活动。一年当中的哪个星期唉,哪个季度会影响天气的,这个是会有影响的对,然后。😊,然后你们也知道。

就是在双十一618之前。大家只加车的,没有人会购买的啊,也有人会购买。对金主爸爸们会购买。一般的普通老百姓,像我这样的普通老百姓可能只会加车啊,等着到了活动期间再买啊,反正也就两三天了,我等得起啊。

然后可能金主爸爸们就不想等,就想直接用啊,所以这个有差别,还是没有很大的差别。所以比如说距离618或者距离双十一的时间,对吧?这个也可能也是一个特征,所以你发现这个很有意思。

然后这个地方有个比赛是以前在开拓上的一个比赛。😊,对,呃,叫做acquired value shopper challenge啊,大概是一个电商的一个比赛。然后这个比赛呢这里头有一个很重要的啊。

其实他给的信息就是呃某一个customer,某一个顾客在某一个product商品上啊,一个多贵的一个商品上发生了这个购买。然后这个后面是一个time一个time step,一个时间戳。😊。

然后所以他在这个地方呢取了很多的信息,年月日啊,星期几啊,一年当中的第几周,一年当中第几周是有用的。为什么?哎,你们知道有一些节日叫做什么父亲节和母亲节吗?😊,他们是和一年当中的第几周是有关系的。

所以这个地方你不要觉得某些信息是没有用的。它在有些场景里面是有用的。然后our of the day啊,我不知道可能下班以后上班和下有很多人逛逛购物,它是会有时这个网上购物,它是会有固定的时间点的啊。

比如说。😊,每一每个晚上到了快睡觉的时候,如果有什么某美食博主发了一些呃美食的照片,大家又开始。就会很饿,对吧?所以就是our of day这个东西呢会体现一些差异啊。

所以啊所以大家看到的就是这个地方会有一些信息啊,你们以为这个信息这些信息就已经够了吗?哎,我问一个问题啊,这个地方的年月日是什么类型的呀?如果我抽取出来的年月日它是什么类型的呀?😊,如做了一个数据表达。

抽取来了年月日。它是个类别型的吧。对,字符串嘛就类别型的对吧?所以这个时候大家要再接再去接类别型的处理啊,比如说独热向量编码,明白吧?OK然后比赛呢是需要开脑洞的,比如说看节假日和购物的关系。

所以这个地方呢他把所有美国的节假日信息全都取出来了。去看这一天距离这一个节假日有多长时间啊,这个是会影响会有影响的。OK就像我刚才说的,618和双十一,这个对电商绝对有影响。

你们想都不用想这个这个影响非常大。而且那几天的数据分布明显和平时的分布不一样。呃,我们再讲讲文本。刚才有同学提到文本了。😊,文本的最简单的一种形式,刚才已经讲过了,这个叫做磁模型叫back for。

为什么?因为我就相当于拎起来了一个袋儿呗,这个袋里头就有出现了这五个词呗,我们就把这把词拎着嘛,对吧?我把这这这个地方的这一把词拎着嘛,我去拎着这个这个袋儿里头的这四个词嘛。

所以你每一行相当于你你打了一个包啊,它叫st模型叫back for。😊,打了个包顶起来。OK这就是它的一种表示形式,计算机能读懂。呃,然后如果大家要用这个里面的这种形式的话。

它有一个处理函数叫conteactizerizer,叫做筒磁这个。应该叫磁屏向量器,这个磁屏向量器就会把一句话转变成一个什么样的向量。但大家注意这个地方的向量,很显然,里面的衣少零多。明白吧?

就是出现的词显然是少数,这个词表当中没有出现词显然是多数。所以在这种情况下呢,它最后的存储通常都会是一个稀数矩阵,spae的一个mtrix。稀疏矩阵。因为这样能节省空间吗?然后有同学会问到一个问题啊。

说老师。有个非常严重的问题。李雷喜欢韩梅梅和韩梅梅喜欢李雷,这明显就是男追女和女追男呢。但是你用刚才的磁带模型糟糕了,都是韩美眉,都是喜欢都是李雷,都是仨词,拿一个袋拎起来,我怎么知道谁喜欢谁呀?

这你不就糟糕了吗?你看你后面模型可以去很牛逼的模型啊,你送给他的信息你都分不出来,你就看到三个词,李雷韩梅梅喜欢我哪知道谁喜欢谁。😊,所以你发现你丢失了一个很重要的信息,这个信息叫做顺序信息。😊。

因为李雷喜欢韩梅梅和韩雷,韩梅梅喜欢李雷,你用前面的磁带模型back forth拿到的是一样的结果。😊,所以怎么办呢?这个地方有一个东西叫Ngram。呃,它和语义没有关系和语语义没有关系。

就是大家听的这个顺序啊,这个故事是怎么发展的。故事的一开始呢,他们想了一个很牛逼的方法,叫做style模型,去把文本表示成计算机看。然后计算机就提了一个问题,说,老哥,你这个方法不行。

因为韩梅梅喜欢李雷和李雷喜欢韩梅梅都是111,后面一堆的零。😊,对吧我去这两句话我分不清楚,然后你人又告诉我说,李雷喜欢韩妹梅和韩明梅喜李雷是两句话。😡,不一样的含义。所以这个地方对丢失了语序信息。

那怎么办呢?那怎么办呢?谁告诉你只能留李雷韩梅梅喜欢呢?你去多留一点不就好了,你把两两相连词也留下来不就好了吗?你刚才那句话除了编码称,李雷喜欢韩梅梅,你也可以再加上李雷喜欢喜欢韩梅梅啊。

这个就叫做togram叫bigram,就是2元。😊,这个就是2月。这个叫叫做哎呀。不好意思,对,这个叫做tto gra,就是我这个地方的bigrams are cool。

它会直接取出来by gras are cool,它也会取出来bigrams grams are are cool。😊,ok。所以你发现他用了一个非常原始,但是很有效的方式去把语序信息捕捉下来了。

他把两两相连,甚至是三三相连的词全都存下来了。所以这个地方用到了一个类叫做conactizer。当你用conactizer去初始化一个对象的时候,用这个对象直接对我的数据去做一个fe chance。

它就可以表示成么这样的形式。😊,很神奇吧,那句话就变成向量话的表示了。而且这个下量化的表示,计算机还真能读明白为什么?因为你每一列就是一个词嘛。😡,对他不需要去知道这一列是什么词。

他只是需要只需要知道说哎,当我这个词出现的时候,我这个词频繁出现的时候,它会更倾向于是样的一个结果。那个词更出现的时候,它会更倾向的是另外一个结果,他根本不需要去个知道这个是什么词。😊。

具体此的物理含义,他不需要知道。ok。所以这个地方第一个大家见到的工具叫conactizer。Comferprier。文本分类是一个很管广很垂直的一个问题。这个有兴趣后面再给大家聊。

它不属于这节课的范畴啊,会相对麻烦一点点。传统的方法,你可以用这个地方的back words或者是TFIDF或者是一些其他的方式。

再加上各种各样的机器学习的模型去完成朴素贝耶斯SVM逻辑回归复杂一点的模型,可以借助于word embedding词嵌入,或者是word to vectorctor转是转成稠密的词项量。

再接上啊长短时记忆,或者是这样的一系列神经网络去完成。所以这个再说你们。如果我刚才说的话,对大家而言,有很多新的词或者是不认识的词没关系,这个仅仅是因为大家呃要一步步学过来啊而已。啊。

下面我会给大家讲到这个这个唉这个故事在不断的发展啊,一开始是磁带,然后磁带这个计算机很不满,说你丢掉信息了。我我我明明明明。😊,谁喜欢谁是有顺序的丢了。所以他把Ngram加进来了。Ngram加进来呢。

计算机又提意见了。😊,说哎老哥,你这方法好像还是不行啊。😊,你凭什么说一个词,在我现在这个文本当中出现的频次高,这个词就很重要啊。你这个词出现了两次、三次、四次、5次、6次。

它就一定比那些出现一次两次的词要要要那个呃不重要吗?呃,要更重要吗?不一定吧,所以这个故事往后发展,它就出现了很奇怪的一个问题,就是。你只给我统计的频次,我不满足。

我希望你能告诉我说这个词对于现在这个文本的一个重要度。不要给我次数,给我一个连续值告诉我它的重要度。所以这个怎么怎么算呢?这是很经典的一类自然语言处理的特征,很重要。

这类特征呢对TFITFIDF是很重要的一类统计特征。这类统计特征在大家当年做搜索引擎的时候会频繁的用到它是怎么去做呢?非常的简单。我给大家说一下,你们就明白了,它有两个部分组成。

一个叫做t frequency,一个叫做inverse document frequency。😊,叫做term的频度和逆序啊,文档频度什么意思呢?他觉得说哎我这个词。

我这个词在我现在这个文档里面出现的频次高的话,应该蛮重要吧。然后他转间想了一下,说,我去,万一这个词在全部的文章里头出现频次都很高,那不就是大家都要用这个词吗?有什么用啊?😊,好像这个事情也不太重要。

所以它算了两个部分,一个部分是当前这个词,在我现在这个文档里面出现的次数除以全部文档里头出现的次数来体现它的一个一个term的一个frequ。

然后下面这个地方有个inverse document frequency。它指的是说这个总文档数去除以含T的一个文档数。还有我当前的这个 termm的一个文档数。😊,总之你们想一想这个地方。

他说的事情就是说这个词什么时候重要了呀?当他在文件当中出现的次数。增多的时候这应该很重要吧。哎,但是他如果在整个语调库当中,每篇文章大家都在用它,它好像就是一个滥用词吧,好像也没那么重要。

所以它结合了这两个东西是做了一个计算。大家可以看一下,做了一个计算,拿到了一个结果。OK这个TFIDF就是这样得到的。同时它也很好理解,大家也可以直接理解它是。😊,对,就是你可以看到它能体现出来一个词。

对于一个文档,它的重要程度有多高。啊,下面会有一些其他的方式,这个等到回头再跟大家说,这是一些深度学习的一些方式,它能把一个词映射成一个稠密的词向量。应该刚才刚才大家看到这个是一个稀疏的词向量。

这个很spae,非常稀疏。有很多零,有些疑。现在大家看到这个是一个稠密的向量啊,一个相对比较稠密的向量,就是word to a,然后这个这个等到后面有机会再说。

因为在因为它和机器学习的模型配合效果并没有特别好,就是这种语义的表达可能放在深度学习当中会更合适一点点啊,在机器学习当中,至少你用数模型它是不太不太合理的。可能你用一些SVM可能还好一点啊。

假似SVM可能是还ok。😊,啊,这个的后面的原理内容比较多,我们就先暂时的跳一下。如果大家感兴趣的话,你们可以去呃搜一下这个关键词叫word to vectorO。😊,啊。

然后呢其实就是各种各样的统计特征了。举个例子来说,这个地方的加减平均。比如说商品高于平均价格多少啊,比如说用户在某个品类下消费超过平均用户多少啊,比如说用户连续登录的天数超过平均多少啊。

然后以及一些分位数,商品属于售出价格的多少分位数处啊,次序排在第几位啊,班上的成绩,你排在第几位的同学啊,比例型,电商里头好中差评的比例啊,你已经超过全国百分之多少的同学呀,对吧?😊。

然后这个地方有个比赛是很早的一届,大概14年还是什么时候的一个天池大数据的移动推荐算法大赛。然后这个大赛呢给了到给到了大家一些数据。比如说大家看到这个地方的数据呢。

包括有用户的ID有当时在淘宝上的一些商品的ID但这个ID都是做过处理的,就是不能直接和淘宝的那些数据去呃匹配上的。为什么呢?就是。用户的隐私很重要。

就即使说我们在我们在大陆可能呃很多公司做的还没有那么完善,但是用户的隐私很重要,你直接把这些东西甩出来是会会有影响的啊,所以这个时候他会做一些脱敏处理,就是做一些哈西的映射呀等等啊。

然后使得现在呃同一个用户出现的时候,它会是同样一个优子 IDD但是你看不到他的名字,你也和淘宝那些U子ID对应不上。😊,所以这个地方呢就给了用户,给了商品,给了他的行为。

比如说这个行为可以是哎浏览哪、收藏啊,加购物车呀,购买呀,对吧?😊,啊,然后比如说用户的那个隐私用户的地理位置,对吧?地理位置,所以这个地方有个叫做吉尔哈西。吉尔哈西呢就是相当于把整个地球切成了很多块。

然后每个经纬度的小方格里头可能会是一块,这样,然后他给了你一个这个小块的一个ID号,然后会有一些item的 categoryry,就是你这个商品的一个类别啊会有一个time呀,行为时间啊,对吧?😊,对。

然后底下这个字段呢是具体商品的一些信息。比如说商品的ID啊,比如说商品的位置啊,江浙沪包邮嘛,你们知道的对吧?肯定会有影响的嘛?比如说item的 category啊,商品的这个类别啊等等。

然后大家来看一下这个地方的特征处理啊,这是一个当时特征处理的一个抽取出来的一部分特征,我们来一起看一下,你就知道这个信息做的有多细了。然后在这里面呢,首先前一天的购物车商品很有可能第二天就被购买。

它找出来一个这样的规则啊,你先不用管啊这个东西和特征没有关系。然后以及剔除掉30天内从来不买东西的人啊,就是只逛啊,频繁的逛,但是不买的人啊,这个会有一些影响,然后加车N件只买了一件。

基本上剩余的都不会买。😊,尤其是当这N件商品,它的呃它的这个品类,它的类别是一样的。你买了一个买了一个电脑,一般情况下不太可能你加车的其他电脑你也一起买下来啊,比较少这样的情况。然后底下就是一些特征了。

这些特征包括说购物车的购买转化率呀,所以这是一个统计的特征。😊,购买转化率就是说你加车加了多少,你买了多少?😡,就是你最后转化了多少?对吧转化了多少?对啊对。

然后这个地方的商品的热度就是商品的一些统计维度的特征呢,对吧?然后对不同的item对对不同的物品的点击啊、收藏啊、购物车呀、购买的一些总数啊。统计特征对吧?点击收藏购物车购买的平均每个user的技数啊。

统计特征,对吧?变热门的品牌和商品变热门是不是差值啊?昨天卖出去了8000件,前天卖出去了1000件,那是不是1000到8000是不是一个涨幅啊啊,或者说在大前天卖出去了200件。

200到1000到8000,这是一个涨幅,对吧?这个东西开始变成网红的东西开始热了吧。然后最近的第1237天,最近最近的第一天第二天第三天第七天的行7天类的行为数和平均行为数的一个比值啊。

就是这个用户的一个一个那活跃程度有多高啊?商品在类别中的排序啊,对吧?商品交互的总人数啊,这些都是一些统计特征嘛,然后商品购买率及转化率与平均转化率的一个比值啊,然后商品的行为和同类同行为的一个均值啊?

最近的。😊,呃,一天两天三天内的行为啊,按照四类去做统计,就是它不是会有四类嘛?浏览加车啊,点击购买这样。然后最近的交互离现在的时间呢,这就是一个时间型,总交互天数啊,时间行,然后。大家可以去看啊。

这个地方就很多会有很多。对啊,有同学说这个规则是做规则处理嘛,就是有一些有一些是数据清洗,做一些数据清洗的一个处理。然后有另外一些呢是确实会在预估的时候发挥一些作用啊,会发挥一些作用。

所以它会用这样一个总结出来的一个规律去用起来。因为不管你是人为去看数据,还是用细学习的方式去看数据。实际上你本质上是为了捕捉到数据当中的一些规律嘛。😊,对。

所以这个地方实际上我是基于一些统计的值统计的结果值去拿到了一些规律,然后把这些规律用起来,这个意思对。下面这个地方就是我可以去做一些特征的组合呀啊,没有人说只能用单特征。

所以这个地方呢最简单的方式就是做一些组合。比如说用户的一个ID和我的商品的一个类别去做组合,所以只有当我现在是这个用户啊,而且这个用户又在看这个这个品类的商品的时候,这个字段才取一。

其他的情况这个字段都取0。比如说不是这个用户,哎,那这个字段取0。比如说是这个用户看的不是这个类别,这个字段就取0,能明白吧?就是新产出来一列,这一列呢只有当前面两个东西都取一的时候,他才会取一。😊。

当前面两个东西有一个取0,它就是取0。所以这个就叫做组合型特征。组合型特征。但这种组合型特征就是比较粗暴。有另外一种基于数模型的组合特征是这样的,它先用决策数啊,这个地方决策数可以是各种各样的决策数啊。

比如说GBDT比如说随机森林,比如说啊决策数。DC进去去对我的数据跑一遍,跑完以后有什么好处呢?跑完以后,你不是得到了一棵树吗?😡,哎,这个数目就帮你产生了一些分支嘛。每个分支不就是一些条件的组合吗?

比如说性别为难的。这个啊性别为男生的这个这个这个呃省份在在上海okK啊,这样的话是通过。对,通过这个地方的这个这个联网方式是呃移动联网或者说联通啊,OK。然后这个地方有什么用呢?😡。

你的每一条分支都可以是一个特征,你不用走完整个分支,南and上海就是一个分支,对吧?就是就是一一些一小段路径,对吧?它就可以是一个特征,对吧?就是只有当现在是来的是一个男性,同时它是一个上海用户的话。

这一个列才取一。如果不是不满足这两任意一个条件不满足,它就是零。所以这个有什么用呢?就是你刚才的这个组合完全是你在拍脑洞去组,完全是你在拍脑洞去组。现在这个数模型学出来的一些规律。

你可以用它学习出来的这些规律去组合出来一些组合特征。去组合出来一些组合特征。不一定要是一整条路径,就是这条路径当中的一小节儿,它也可以是一个组合特征。

所以你可以通过这样的方式去总结说哪些特征和哪些特征可以去做组合。呃,最后我们来讲一个部分叫做feature selection。通过前面的方式,你可以产出很多的特征啊,新手大家要慢慢的去感受一下。呃。

我去年和另同事去参加一个开口的比赛,我们从原始的二三十维的特征当中,最后产产出了接近4000维的特征。😊,呃,用了各种办法产出了接近4000维的特征,而且我们不是一个一个特征去写的那那写到天荒地老。

就是有一些有有一些办法去写嘛,就批量的去产出一些特征。所以产出了很多特征。然后但是这个时候呢,4000多维的特征呢就会有个问题,就是维度好像有点高,就是跑着会有点慢。😊,这种这种建模过程。

所以这是因为这样的话,另外一方面你来想这里头一定会有很多的维度是。啊,会有很多的维度效果是不太好的。就是它和最后的结果之间是没有太大关系的。😊,所以怎么办呢?把它干掉。所以这个地方呢把它干掉。

就是涉及到这个板块叫做特征选择,叫做feature selection。呃,我先要说我要说我说一下它的原因和需要注意的点。一方面是原因是因为它会消耗计算资源,维度很高的情况下,有一些特征的相关度非常高。

我举个例子啊,之前有一个比赛是做这个呃。其实有些比赛呢是做做这个。嗯。房房价预测了,然后里头会有两个字段,一个叫做房子的总面积,一个叫做房子一层的面积。因为你想一下呃,一般来说一层的面积越大。

总面积应该也越大吧。就有些房子它是两层的。所以这两个维度之间其实相关度非常高,但是你要传达来用呢,有点多余。啊,这个意思,所以有些信息它比较相关度很高,它会溶于。有些信息呢就是这是会消耗我的计算资源。

另外一方面,有些特征对结果是有负影响的,就是作用不大,甚至可能会有负影响。😊,所以我可能就不用它。然后第二部分我们说一下呃,特征选择和降维这两个部分的差异啊,特征选择和降维。呃。

特征选择是指的我剔除掉一些和结果关系不太大的力或者是特征。降维是指的我在低纬的空间当中保持住高维度的空间当中,所有的尽尽量去保存它有用的所有的信息。所以。这个地方大家要理解一下。

特征选择和降维是两回事儿。ok。呃,三种方式三种方式很简单。第一种方式叫做filter类型,叫做过滤型。过滤型什么意思?我去评估每个特征和结果值之间的一个相关程度。怎么去评估这个东西呢?大家想一想。

你某个特征的取值是不是这个数据当中的一列呀?结果值是不是也是一列呀?这两列之间的相关程度,我就算一下这两个向量之间的一个相关系数就好了。所以这个时候我们可以有各种方式,我们可以去计算它们之间的相关度。

比如说用一个皮尔森的相似度或者什么样的一个相关度。所以这个方法就是一个一个的特征去看它和标准和参考结果之间的一个相关程度有多高。选出来相关程度高的特征。这个特征啊,不这个方法它会有缺点。

它的缺点是没有考虑到特征之间的关联作用。因为如果你用一个逻辑回归这样的线性模型还好,因为确实是我是一个一个特征放进去的嘛,但有些特征它的作用单维度上来看,它作用不一定会有那么大。

但是它和其他特征去做组合的时候,它的作用会体现出来。😊,但是这种评估方法就是一个一个评估,评估每个特征和结果值之间的相关程度。O。😊,然后这个里头大家如果要用python包的话,对。

一般情况下用的是slalect key best选出来最重要的K个 selectlect percentile选出来其中的百分比百分之多少最重要的特征。

所以大家可以看一下这个地方我load了一些data eraase datata,然后它原本是140乘以150乘以4的,就是150行4列。那如果你初始化了一个s k bus告诉他说。

我要取最重要的两个特征,你再对你的data去 transform一下,就是去啊做一个拟合变换一下,你会发现它就变成了150乘以2。150乘以2就两维。然后第二种处理方式叫做rapper,叫做包裹型。

包裹型是把整个特征做特征选择看做一个特征子集搜索的过程。所以你想一想,无非是从原来的特征当中选出来一批特征嘛,选出来一批我觉得很重要的特征,不重要的,我踢掉嘛。

所以这里头最典型的方法叫做recursively feature elimination。递归的特征删除算法,这个特征删删除算法怎么做呢?首先你需要去找到一个可以提供特征重要度的一个模型。

比如说逻辑回归,比如说决策数,比如说随机森0。然后你怎么做呢?你用全量的特征去跑一个模型,然后根据我的特征重要度去删除掉。比如说啊5%到10%的弱特征最不重要的特征,再去跑一遍模型。

看一看现在的指标的一个变化。如果指标变化不太大,那说明我现在的删掉这部分特征重重要度不大,就可以把它踢掉。所以这个时候我就把它踢掉。然后再去删掉5%到10%的弱特征。如果这个时候还没有变化。

说明这部分5%的特征可能作用也不大再提掉。然后直到什么时候呢?直到你删掉了一部分尾部的现在最相对最不重要的特征,发现我去。准确率下降了。这个识别的这个。准则标准最后的这个评估的这个结果变差了。

不能删停了,所以这个方法很很粗暴,对吧?就是大家理解一下,其实很简单,就是把特征按照重要度排便序,从尾巴上开始砍砍掉多少,做出实验,砍掉多少,再做一次实验。

所以这个方法叫做RFE叫做非 recursly feature emination。然后这个地方在SK learn当中的包叫做RFE叫做RFE啊。

就是RFE大家可以看一下这个地方就是用了一个RFE用逻辑回归去选出来啊,最重要的这个啊一个特征这样啊。😊,呃,最后一种方式叫做embedded。embed的方式呢是说呃我借助于模型的一些特性。

比如说embody通常借助的方式是线性模型,再加上。L一的正则化就加正则化。L一的正则化。正则化的话就是啊大家都知道是那个W的。😊,一番数或者二番数嘛,那现在的L一正则化就是一范数嘛。

啊简单理解成绝对值也可以。OK啊,所以它举的就是一范数。然后如果你用逻辑回归,再加上这种政则化的方式,L一政则化的话,它会会有一个很有意思的特性。L一正则化有一个有一个效应。

在逻辑回归当中叫做稀疏化效应叫做截断效应。你产出的结果是一个稀疏化的一个结果。😊,我们之前在电商里头,最早的时候,我们特征维度可以拉到3到5亿维。对你没有没有听错,是3到5亿维,但是它是非常稀疏的。

非常非常稀疏的。因为其中比如说电商里头每个商品都会有很多的趋势,连口红都有那么多种不同的色号,对吧?然后连连衣裙都会有那么多种我看不懂的材质,然后各种各样的小的变化,小的款式。

各种各样的女生的衣服的品牌,所以所有这些东西,当你做完这些毒恶向量编码或者各种各样变换以后,它就会升到很高的维度,所以这个时候的维度可能是3到5亿维。然后如果你们加一个L一的正则化的话。

你完成模型的训练,你发现最后只会剩下几千万的特征,其他特征权重全都会变成零,就是学不到权重。😊,权重都是零,这就纯天然帮你完成了一个特征的选择。你线上实际去做预估的时候。

只需要用我有权重的2到3000万的特征就可以了。这个就叫做embeded的方式。通常情况下,它就是用L一加上逻辑回归,或者是加上line的SVM啊都可以。对。

就大家可以在这个地方用线性的SVM也是行的啊,然后也是可以一样可以拿到。😊,嗯。这样的效果。Yeah。不好意思啊。这个触摸板特别好用。

然后这个地方的L one based feature selection就是我刚才给大家说的LE正则基于LE正则化的特征选择,那你可以用一个哎,你看这个地方就是一个线性的SVM,对吧?

line的 SVC啊, linearsport vector啊class file分类器,然后你用了这个select from model,用了一个LE正则化,然后你可以去唉从四维降到三维。😊,ok。

啊,好,我来给大家看一点案例嗯。好。给大家看。点案例啊,等我切换一下。哦,安利我好像没有传到我们群文件里,我要打包发给大家啊。然后所以大家。呃,看到这个地方的话,呃,我们会有两个案例,呃。

这样的有一个案例是我自己写的,所以呃这个地方呢是。所以这个地方呢是呃一个中文的案例。还有一个我觉得比较好的案例是一个英文的案例啊,其他的国外小哥哥写的他有很多的分析在里面。

所以我希望大家有时间去看一看这些分析。我会说一说这些分析是如何去做的。呃,但是这个里面对,还是有一些说明的,只不过是那个英文的嗯。啊,有同学在问问题,你们还有什你们有什么问题呢?比如说。嗯。

你们问到说嵌入型能再讲讲吗?嵌入型我你希望再听到什么样的信息呢?它实际上就是利用逻辑回归或者是线性的SVM再加上LE正则化。LE正则化它是有很特殊的效应的对,那我这个地方的推导我就不能跟你们讲了。

有一点点的复杂啊,就是它LE正则化纯天然的作用就是阶段性效应。最后拿到结果就是一个稀疏解稀疏解就时候,我会有很多的很多的特征是拿不到权重的,权重是零,权重是零。所以最后它会。😊,呃。对。

L一大会最后他会拿有很多的特征,拿到的权重是0。你们想一想,在逻辑回归当中,如果我做完了幅度缩放,是不是我权重的绝对值越大,它的重要度就越高啊。所以L一正则化和特征的重要度是没有关系的。

我仅仅是利用L一政则化去它的结论性效应去做完训练之后,让很多的特征的权重变成0,它并没有影响特征的这个重要度的排序啊,或者其他的一些因素啊,就是最后你看到的结果就是你有4亿多维的稀疏特征送进去。

然后跑完模型以后,发现只剩下来了3000万左右,三四千0万,其他的那些特征都拿不到权重全是0。那特征权重是零,你就不用用它了呀。它不就相当于纯天然完成了一个降维吗?它没有主动的去做降维。

但是它这个特性就使得降维这个事情自然而然的就做完了,就是。有很多的特征,它是取不到这个重要度的,或者说它其实重要度就是零学出来的。这就是他在做的事情。然后这种这个方法通常是用在那种很稀疏很高维的数据上。

就是很稀疏的高维表达的数据。它对稠密型的数据效果是不好的。就是大家我这是我的一个经验啊。如果大家要用那种很稠密的数据,就是你的每一列都有值都有值,而且都是连续值,大家就不要用这个方法了。

你可以用第二个方法,用那个RFE叫recursory future,那个方法是可以的。OK所以我大概说了一下适用场景,大家可以呃结合自己的场景去用一下,好吧。对。然后主要在用到的是这三类方法。

可能有同学提到了还有一些其他的方法用的比较少。因为工业键我们要考虑时间的代价。因为我们我们的数据量很大,你不能说让我反复的去做实验,对吧?这个事情不合理。我们真的我们跑个模型都好几个小时的。

而且这已经是分布式的训练了,好几个小时的,你这要让我一直做实验这个很尴尬的对,所以呃一般情况下就是第二种和第三种两种特征选择的方式用的非常多啊,二和三用的很多,然后那个三的话,我刚才说了。

如果你是那种很高维的稀疏数据,一般用它还是还是不错的啊。二的话就是我会呃二都可以。二就是我会先建模,然后逐步的剔除掉不重要的特征。这样啊把从尾巴上开始砍。😊,呃,这个地方的案例呢是一个回归的一个案例。

叫做cago的 bicyclecycle的一个 example,一个cago的一个一个那个自行车租赁的比赛。所以这上面呢大概做的事情就和大家去骑摩拜呃,摩拜单车。然后OFO小蓝单车。

hello单车是差不多的啊,总之呢就是我会有这样的一些数据。然后这些数据呢需要大家去。😊,做一个这个呃做一个模式的学习,希望能够预估出来呃,这个骑其这种共享单车的数量有多少,然后它会给到一些数据。

所以这个地方呢我们用了pandadas这样的一个工具库去把这份数据集读进来了啊。这个案例我会在课下打包完整的给到大家。所以这个caval的 bike competition chain。

这个就是一个CSV的文件,我用padas这个工具库,这个地方importpasPD啊,就pandas这个工具库去把文件读进来。它就会把这个文件读成行行列列的形式。

所以这个文件就是一个这样的行行列列的形式,它每一行会是一条记录,每一列会是一个信息维度。所以第一列是一个日期精确到小时的日期,就几点钟的日期,比如说2011年的呃一点钟凌晨的一点。

2011年的凌晨的4列。第二列是季节,季节没有给明文,就是它不好给大家春夏秋冬这样的铭文,它给了一个编码嘛,反正啊其实也可以和四季对应上对应上啊。

所以这个它地方的一可能就表示春天二就可能表示 maybe是夏天或者怎么样O然后holiday holidayday就是一个零一值,零就表示说这一天不是节假日啊,一一就表示说是节假日。

然后workingday就是是不是上班这一天weather就是天气,天气呢也有几种不同的类型,它也没有给大家明文,它也是给的编码类别型的这种编码,所以weather可能是说啊大暴雨。

可能是说这个晴天万里晴空万里ok然后temperaturetemperature是指的那个呃temperature指的是这个温度嘛,对吧?啊,还有A temperature。

这两个基本上是相关度非常高的。因为这俩一个是温度,一个可能是体感温度啊,然后湿度,这个是湿度,这个是风速,然后最后会有三列,这一列呢是。😊,说你拿那个就是caule就是没有去注册的。

意思就是你拿微信或者支付宝扫开来的这个共享单车的数量啊,就是随意的拿了一个支付宝,或者是呃微信扫开来的数量reged指的就是我。😊,用这个app就是APP我下载了一个摩拜单车的APP。

我下载了一个hello单车或者什么单车的1个APP,然后去扫开的数量。最后这个count count是一个总数,就是我用支付宝或者微信扫开来,再加上我用APP扫开来的总和啊这个意思。

所以我们有这么一些信息,我们希望通过前面的那些列去推断最后这个count的数量,就是最后我到底这一天会有多少辆的未来会有多少辆的这个车去被呃这个小时会有多少车被租出去啊。

这个地区所以啊我们用了pandadaspadas这个工具库呢,可以先提供一些信息。比如说我发现它的数据是全的数据记录很全。😊,我把第一列转成了一个日期型的列,为什么?因为我待会儿要抽取日期的特征呢?

我要抽取日期的特征。所以这个地方我先转成日期,再从日期当中选出来了。年啊,小时星期几,我觉得这种影响重要度很很高。因为你想这工作日和周末骑共享单车,肯定是分布肯定是不一样的。

周末肯定是哪个时间点都会有人在骑。而工作日很显然是早高峰和晚高峰会比较。😊,比较多啊,当然这个不是我拍脑袋说的事情啊,我看了这个数据的分布,大家也同样待会儿啊你看到的后面这个cago的EDA啊。

EDA就叫做explor explorationplordata analysis探索式的数据分析。那你就会看到这样的一些情形。😊,然后你往下看这个地方是啊前十行数据,然后我要做一些特征工程。

我已经做了特征工程,包括什么对日期行处理。发现了吧?对日期行处理。然后啊我我在前面还做了一些one hot encoing。比如说星期几。当然这个地方你看你用什么样的模型啊,我这个地方用的树模型啊。

用的random forest random forest regressor啊,然后就是如果大家用逻辑回归,大家用逻辑回归这样的分类方式,你一定要对数据去做一个。😊,离散化哦。

不one hot encoding或者是离散化这样的处理。如果大家用数模型,比如说决策数,比如说随机森林,你不需要去做这个事情。所以下面的两个部分呢大概是一些那个呃调餐的一些工作。

这个我们会在明天的课里头给大家讲到,大家也可以先去看一眼这个地方主要的特征工程是这样的,把星期几取出来。对,把星期几取出来。所以这个地方的得就是星期几小时就是第几个小时,然后月份就是几月份。

然后这个地方。季节季节不,明天我会给大家讲,我会给大家补充一些其他的呃案例,不是也讲这个案例啊,就是我还会有其他案例补充。但是这个里头有一部分名天的内容啊,我大概我说清楚了吧。

就是这里头有一部分明天的内容,调餐的内容。😊,所以这个地方的season是星期几,是星啊,不sor,抱歉啊,口误season是季节。那我问大家一下啊,如果我现在用的是逻辑回归这样的模型。

我的season,我这个地方的这个呃weather天气,我这个地方的月份啊,天和小时,我都要做什么处理呀?😊,我都要做什么处理呀。粗暴一点点,我就做一个独热向量编码呗。如果不粗暴呢?如果不粗暴。

前面这个没有办法,季节和天气,我觉得大家用毒热向量编码就可以。那那我这个时候如果要对月份对天1个1111个月当中的第几天,或者呃,不不是一个月当中第几节。sorry,说错了。

星期几月份、星期几和小时有没有一些其他的处理办法呢?😊,no no no no no,不是标准化。离散化呀。对对对对,很好很好很好,大家很棒。离散化。因为想一想我我问大家一个问题啊。

我刚才已经提示过大家了,我说上下班的高峰期和非上下班的高峰期数量是不一样的哦。所以大家请把这个地方的小时切一切。😊,你你用很粗暴的方式,你当然可以用one hot了,一天无非就是24个小时。

但是那种方式会把每个小时单独拎出来看。有时候我更关注是其中的一段儿。所以我可能需要把几点钟到几点钟这一段儿定义出来。所以这个有时候用离散话或者是分筒分箱处理会更合适。包括星期几也一样。

我可能觉得星期一到星期五是一段呢,我可能觉得星期六星期天是一段呢。对。啊,这个地方不一定是不一定是就是这个地方大家可以去看一下什么样的切分方式会是比较合理的切分方式啊。有同学提出来说,用等频,对。

这是一个解决办法。然后那个下面的调三的部分,我先不给大家说这个呢会和明天有关系。所以我们来可以明天回头再再看一下啊。然后这个地方的cago的EDA model呢,是另外一个。

我希望大家有时间去看一看的一个。😊,这个呃一个notebook。然后这个notebook呢我没有给大家做汉化。因为这个notebook本身就是国外的一个小哥哥写的,它里头包含了一些内容。

这个内容就包括说告诉大家这份数据集是什么样的一个数据集,其实就是刚才我们看到的呃共享单车的数据集,做一个数据的汇总特征工程缺失值的分析,异常值的分析。对,然后这个地方的关联分析数据分布的可视化。

然后一些频次的可视化。呃,缺失值的填充。然后用线性模型去做线性回归去做拟合,然后加正则画像在用了不同的模型去做组合。所以会和明天的内容也有一些关系。我先带大家过一下这个地方的数据我就不多说了。

和我刚才那份数据一模一样,就是同一个份数据。然后它这个地方解释了一下datime啊、sea啊,holiday啊working day啊、天气啊等等。所以这个地方呢给了大家一些解释,然后数据。😊。

同样读进来一样的方式,caval bike competition的一个training data读进来。然后这个地方data summaryary就是我去看一下有多少条样本,总共会有1万多条样本。

有12列,然后瞄一眼数据长什么样。我看一下每一列是什么样的类型,然后我来做一些特征工程。这个地方特征工程呢,他说了一下,他说我需要去构建一下新的列哦,哪些列啊,我要根据日期去构建小时。

根据日期去构建说星期几根据日期去构建说几月份O然后我需要把这个地方的季节holiday和这个working days啊,变成类别型,你看to cat把它变成类别型的列,这样的话我可以去做后续的处理。

然后我把日期这一列干掉。因为日期这一列当我抽完信息之后,它就没有太大的作用了。所以这个地方就做了一些处理,大家可以看一下啊,一个一个的处理。这个处理是我构建新的一些列取出来日期里面的小时啊星期几啊。

几月份呢季节呀,天气啊,然后具体的操作,我就不给大家那个解释一些on一个一行一行解释python的代码,这个大家搜一下就搜入到都是的操作。对,就把date取。😊,出来以后,你可以直接去取它的那个。

你有不同的方式去做啊,这个地方它用的是apply,从里头去切,那你也可以把它转成today time转成日期型之后去取,它可以取到它的属性。然后把这个地方的小时啊,那个星期几啊,月份呢季节啊。

全都变成类别型的S type就是把转成类别型转成字符串或者类别型这样然后drop unnecessary column把不要的列干掉这个地方的day time就不要了,干掉它,然后它去做了一些分析。

比如说分析这里头不同类型的那个特征的数量有多少分析一下这个地方的缺失值没有缺的,全满全是百分之百全满分析一下异常值啊,这个地方分析异常值用的方法叫做相线图叫box plot,它是一个基于统计的方法。

大家看到的这个箱子是一个连续值的字段,做统计得到的结果,这个箱子中间那一条横线,是它的50%的分位数。比如说年龄有年龄这样一个字段,对吧?😊,那年龄这个字段的50%的分位数,在它举实就是中间那一条横线。

它的箱子的上下边缘,箱子的这个上面和下面啊边缘是75%和25%的分位数,就是从小到大75%和25%的分位数。然后上面那个边界和下面这个边界是基于统计值,把这个箱子的高度往上挪了1。5%倍。

然后往下挪了一定的倍数。然后所以得到了上下界。它认为在这两条界之外的都是异常值。当然了,这是一些统计的方法,它不一定那么好用,就是大家。😊,啊,这画了一个图,带大家看一下,有些维度是会有异常值的。

所以你可以基于它去去一些异常值。所以它去了一些异常值,去异常值怎么做呢?对,统计的方法,他去把上下界取出来了,然后判定一定要在上下界之间的对,在上下界之间的啊,它其实是求了标准差就是扫开共享单车的数量。

它的这个分布的标准差,用了这个标准差的3倍去作为一个边界。所以如果你现在的数量减去我的均值,在我标准差的三倍以外,我就认为你是一个异常值,如果在三倍之内,我就认为是正常值。

所以它用这样的方式去做了一个截断O然后底下是一些关联分析,分析不同维度和不同维度之间的相关性,颜色越深,表示它的相关程度啊,正相关程度越高,颜色越浅,表示它的负相关程度越高。所以这个地方会有很多的是啊。

😊,啊,sorry,说错了,颜色越浅,说明它的相关程度越高,颜色越深,说明它的负相关程度越高啊。所以这个地方呢我发现所有对角线都是一,因为自己和自己的相关系数一定是一。

那非对角线呢对非对角线会有一些维度相关度很高。比如说大家看这个地方的reged和我的countt就是我通过APP扫码开扫扫码的这些车的数量和我这些共享单车数的总量显然是很相关的嘛。

所以这个相关度达高达0。97。😊,对,所以这个就是一个相关分析,底下这个地方是一个数据的一个分分布分析。所以他看了一下天气对于我扫开这个车的数量的影响,风速对于我的影响,湿度对于我的影响。

你发现的一个情况是随着温度变高一点点,风速变得稍微高一点点,好像扫开车的人的数量会更多。然后随着温度变啊,湿度,sorry湿度变得高了,就可能会下雨,下雨的话可能骑车人就少嘛。所以湿度越高。

它的数量一般情况下是越少的,然后是一些分布,这个地方呢就是用的一个啊叫做KDE啊,这个叫叫做概遇密度。然后他把这个频次的分布啊,直方图给大家画出来了。所以呃可能做了一些变换,它这个地方取了一个log吧。

做了一个变换。😊,底下有一些其他的,呃,包括说哎我按照季节来看,我按照季节来看每个小时它的变化状况来,大家告诉我一件事情。上面这幅图我。不多说,我说中间下面这幅图中间这幅图中间这幅图你们看出来了什么?

😡,有4条曲线是那种有两个尖儿的,有两条曲线是一个。有一定弧度的。为什么星期一到星期五sorry不是4条曲线,5条曲线。为什么星期一到星期五会有两个尖儿?😡,为什么星期一到星期五会有两个两个高峰?

会有上下班的高峰期嘛,显然周末就平稳很多嘛,所以没错啊,就是数据分析是一个很大的支撑。就是你们看到这么多同学去玩那个数据科学的比赛,他们都要做数据分析的,就是不做数据分析,拍脑袋,拍出来的特征。

效果都不好的。对,拍脑袋拍出来的效果都不好的,一定要做数据分析。所以这个地方就是给到大家一些,你可以去读一读它的代码啊,常用的工具就和函数就这么些啊,在这个代码里头都有体现。

然后他在这个地方呢去点了一些缺失值的填充,他缺失值填充的,没有填均值,也没有填这个中位数,他是填充是用的那个预估的方法去填充的。因为你想一下,如果你今天在淘宝上,你以为你不填你是小哥哥还是小姐姐。

你以为你不不填小哥哥还是小姐姐,我就不知道你是小哥哥还是小姐姐了吗?你天天在淘宝上看那么多的数看那么多的东西,点那么多的东西,我会分析不出来,你是个男生还是女生。😊。

对吧所以我完全可以基于其他维度的信息去预估出来,你是一个男性或者是女性,或者说去预估出来这个地方的一些其他的信息。比如说打雷了,下雨要收衣服,对吧?

所以这个地方呢啊就是基于一些什么湿度啊或者风速啊或者什么东西,你可以去预估一下天气嘛,湿度很高的时候,温度肯定不会太高嘛。对,那讲就是大概这个意思啊,大家能明白,对吧?😊。

然后底下这个地方呢就是一些建模和它的一些对模型的融合啊,这个案例很好。然我没有去改动它里头的具体的内容啊,然后我希望大家有时间去读一读啊,基本上是这样的一个流程还比较好。这个流程。

所以这两个案例我我一会儿下课就打包发给大家。对我下课就打包发给大家。这里头有一部分调参的内容我没讲,因为是明天的内容,我会继续给大家讲到。然后明天我还会有一些这个其他的资料可能会给到大家这个意思啊。

EDA是一个缩写叫做explation啊,data analysis。😊,就是。对啊,X。Plororation data。Alysis。对,就是分探索式的数据分析。

因为一开始没有任何的人知道这份数据长什么样啊,这个意思O。啊,所以它是一个缩写。啊,好的,今天的内容我就给大家讲到这儿,好不好?我把这些案例和数据打包一下,发给大家,你们去读一读明天课,我们接着聊模型。

今天我们聊了数据,明天我们接着聊模型,聊完以后就完整了。这个这两个案例你就都能看懂了。😊,OK好的,谢谢大家。你们有问题就在QQ群里头艾特我去大家交流一下。好。😊。