00:15
第一行inport na派SNP,这个派就是大家上午抓的那个na派包,这个派呢,用的最多的地方,上午大家简单说过是什么是矩阵运算对吧?和矩阵运算,那大家可以也可以在这里边动手写一下啊,因派SNPNP的主要的几个工作呢,可以给大家简单演示一下,第一个就是A等于NP点。创建一个数组,123456。啊,之后就得到了一个两行两列的数组,对吧?这个时候呢,它和Python不太一样的地方是这样的,它可以多,它可以多集索引,比如说Python的一个例子啊,你可以写A1括号五对吧,你把1234的数据都索引出来,对吧?但是在这里边呢,你可以写逗号,你可以对行索引,可以对列索引,打个比方说,我们现在把五取出来的话,那行是什么呢?是一对吧,可以写逗号。
01:20
列是什么呢?列列是一对吧,所以你写A1就把五取出来了。它可以这样去明白吧,而且呢,如果我想把二五这一列取出来,怎么写呢?可以写成A1,呃,在前面加一个零冒号一啊,这不行,零括号取一,后面列取明白吧。就是冒号后边你不写东西,在Python里默认不就是取最后一个下一个嘛,对吧,把最后一个之前的全取出来了,所以你这么写的时候,你就可以取出来一个二五,就把这个一列取出来了。明白吧?然后呢,除了这个以外呢,NP还有很多其他的一些作用,比如说NP一点。
02:05
对吧,生成全是零是吧,比如说一点接入三,当然你这个三呢,你可以给他一个三逗号三,给他一个ta,这个tale是一个ship,是一个ship是一个形状对吧,三行三列对吧,是三行三列了对吧,就很简单,比如说罐子。就全一对吧,这很简单,为什么一定要说单派这些操作呢?因为数数据计算数据,数据分析里边很大的因素,很大一个事情就是矩阵运算,对吧?而矩阵运算在Python里做,你拿列表去做,那是非常非常低效的,所以那派D在后端实现了一个C的一个引擎,对Python暴露出来一个接口,你在Python里直接调IPA的一些函数,在后端就是用C去做这个矩阵的运算,它的速度就很快,对吧?就PA的几个基本基本用法我们都已经看过了。OK是吧,好,然后。第二个是pandas pandas其实在大家的正常工作当中呢,用的可能没那么多,但是呢,它有一些基本的一些函数,用起来比较方便,比如说readid csv这个方法,什么叫CSV呢?知道吗?是不是一个LCSV是separate war。
03:20
知后面是什么呢?就逗号,比如说你清洗完一个数据,别人根本用不了,比如你拿空格,空格的结果那个,比如说你那个文章里边有很多空格,你这个文文件就有问题,就打不开了,是吧?好列数不对了,对吧?我们一般用什么风格呢?有两种,一种是逗号风格,一种是杠T风格。明白吧,这个数据一种情况是这种数据12345,这叫逗号风格,这种数据就叫做CSV文件,一种情况下是一杠T杠二,呃一杠T,这个杠T当然接打不出来了啊,直接你直接打那个杠T也不行,杠T,然后二杠T3这种风格对吧?所以CSV的格式呢,是逗号风格的文件啊,然后第一行呢是没有的,就是没有,没有表头就把这个数据读进来了。
04:12
数据读进来以后呢,就形成一个lr date对吧,Lr data这个时候就开始了,开始做这个呃,数据清洗的一个工作,因为你这个数据读进来以后呢,他可能有些行是重复的,对吧,有些数据重复的工作,这个时候做了一个clean date,一个清洗的一个工作,之后呢,做了一个NP.split。为什么呢?因为因为有一部分是标签对吧,一部分是原始数据,一部分是标签对吧,你前面1234后边跟了一个男,然后第二是1235后边跟个铝对吧,那最后那一列肯定是要切出来的,对不对,和这个地方做了一个SY是一个切割。切割之后呢,又做了一个train test split这个地方做的什么工作呢?就刚才大家说过,你要做一个测训练集和测试集的一个切分,对吧。
05:03
就是说这个地方实际上是切了四刀,最开始我一个大家可以看到,最开始有一个数据是123,然后逗号,最后是一个男,最开始我这么写道,后边是叫Y,前面叫X,明白吧,456。前面叫S,然后呢,我又这么切一刀,上面这叫什么呢,那叫。下边叫什么test?训练一测试题明白吧,在上面这个训练,然后在下面这个呢做预测,下面这个作为模型的一个准确率的评估。明白意思是吧。然后之后呢,做了一个standard。为什么要做这个工作呢?这个地方呢,还得看个人啊,有的人就比较喜欢做standard standard的意思就是说把X轴和Y轴上这些数据量刚变成一样的。
06:00
打个比方说,年龄大家差距也就是几十最多了,对吧,但是体重则可能差距100对吧?你如果把体重和年龄放在一块儿去建模这个直线,很可能就因为因为你体重差的特别多,体重的损失就特别大,明白吧。可能年龄的损失就很小。明白吧,所以年龄这个特征很可能看起来很无关紧要,但是呢,年龄的区分度往往很高,他比体重区分度,对,对某一些推荐啊,或者对于某一些特征来说,它区分度更高,对吧?如果你不把这个Y和X压缩成一个量刚去表示的话,很可能就会出现数据在某一个轴上分布的特别散,而在另一个轴上基本上不怎么变,看起来就是这样的一个形。对吧,这个时候如果你用机器学习的模型去学它的时候,这个数据分布本身是有问题的,学来的模型可就是肯定也不是很好。明白吧,所以要做一个把它压缩,压缩成这样的,这样让它XY成一个正方形,一个范围,明白吧。
07:03
明白了是吧,然后接下来第二个是做一个poly no poly是啥意思呢。后者标是这样一个意思啊,刚才我们说了,我有一个函数叫Y等于AX加B是吧?好A加B呢,但是我刚才给出来大家的点,它这个函数是这样的。对不对,我用A加B,我是没有办法去拟合这个曲线的,对不对,所以这个地方我要给它升升幂。明白吧,变成as平方加BS加C,变成as立方加BS平方加CS加D,明白这个操作就叫做抛秒。就原来我只有一个X,但是我现在通过生幂变出来了四个X。然后加了四个参数,明白吧,Abcd,我限于你和abcd这四个参数,明白吧,在这里边我升了多少次幂呢?我给它升到60次幂。也就是说这个地方拟合的函数应该是A的X60次幂加上B的X59次幂,一直加加加加,后面肯定没字母了,加加加,Z的就加。
08:10
这一这类或者CX这样,我现在用的是这个函数去拟合那个房价,所以可想而知这个模型是非常复杂的,对吧,模型非常复杂的。模型非常复杂的,本质上它这个体现出来的结果呢,肯定就是有问题的啊,就是大家可以看一下,回头也跑一下。这边有一个。大家可以看到啊,这个函数呢,看起来是有一点问题的啊,它有点是吧,有点这不这个地方很很扯,其实它看起来像一个二次函数,实际上不是对吧。嗯,然后呢,再往下说啊,我做了po之后呢,我又做了一个拉,实际上我最后的模型是通过拉回归做出来的拉索就是我们刚才讲的L1正则,对吧,L正则。
09:04
为什么这个模型是60次幂呢?看起来中间还很平稳呢。就因为在这个地方,我做的是拉走。而不是Grace。对吧,如果我换成大家可以看到啊,如果直接我们就用。继续卡。那这个参数可能是不需要了。我直接再跑一次啊。逃里出来一个。对,这是它真实的续签。它真实的曲线是这样的,为什么它变成了刚才那样呢?因为我们用的是拉so,拉so,刚才给大家说过,拉是把它的系数是吧,把它的系数作为一个什么。一个参数加在了它的损失值的后边,对吧?所以这个系数现在变得非常非常复杂,它的损失值就很大,它会约束它去倾向变这个系数变得简单,对吧。
10:07
明白意思是吧,所以系数变简单了,它就变成第一个图像了。就平稳下来了。所以拉是有很好的这个泛化性能,Range也是一样啊,Range和拉手都是比较好的,就是带带正则化的,都是比较好的这个分化性能的模型。可以了哈,这个代码就差不多了。然后呢,接下来呢,我们再回到这个。线性回归的下一章啊,我们可以再总结一下,线性回归呢是一个回归算法,首先回归算法是处理连续值的。而模型呢,非常简单,计算量小是它的优点,但是它对误差很敏感。
11:00
为什么对误差敏感啊,比如说现在我这个有一些点搞错了,这个点我搞到这边来了,那这个分界面就不可避免的跑到这里,对吧,被说就是说被这种巨大的这个损失值怎么样给牵走了,对吧。比如最开始这个点都在这个线附近,你做这样一个线,它非常好,突然有一个点是噪声点,它在这儿,它这一个不是这个,这个不是这个弦,这个弦它自己的这个损失值,甚至抵得上所有损失值的,怎么办呢?这个这个模型为了应付这个点,他必须得把这个直线向上调,调成这样子对吧?所以就导致这个直线其实它是个异常点对吧?所以这个直线就对他都就偏离了它本来的应该去的地方,所以这样的话就说明这个模型本身它是不是很抗噪声的,对吧。
我来说两句