00:01
2.3.7和支持向量机。我们要讨论的下一种监督学习模型是和支持向量机,可能来自support machine。在2.3.3节中,我们研究了将线性支持向量级用于分类任务和支持向量机通常简称为SVM,是可以推广到更复杂模型的扩展。这些模型无法被输入空间的超平面定义。虽然支持向量机可以同时用于分类和回归,但我们只会介绍用于分类的情况,它在SVC中实现。类似的概念也适用于支持向量回归,或者在svr中实现。和知识。向量积背后的数学有点复杂,已经超出了本书的范围。不过,我们会努力向读者传达这一方法背后的理念。线性模型与非线性特征。如图二杠15所示,线性模型在低维空间中可能非常受限,因为线和平面的灵活性是有限的。有一种方法可以让线性模型更加灵活,就是添加多个特征。举个例子,添加输入特征的交互项或多项式。
01:08
我们来看一下2.3.5节中用到的模拟数据集,建图二杠29。
02:12
这些代码中。大家唯一不理解的可能是在这里Y余上二表示什么?Y是个一为数组。它表示一个和Y长度相等的一维数组,其中每个元素的计算过程可以看一下表。通过表格可以发现,对任意的IY于二。I也就等于是Yi于二。用于分类的线性模型。只能用一条直线来划分数据点,对这个数据集无法给出较好的结果。
03:59
现在我们来想办法改善这样一种情况。
04:04
我们对输入特征进行扩展,比如说添加第二个特征的平方F出一的平方作为一个新特征,现在我们将每个数据点表示成为三维点fe出零,Fe出一,Fe出一的平方,而不是二维点出零出一。我们选择添加这个特征,只是为了便于说明这个特征并没有特别的重要性。这个新的表示可以画成一个三维三点图。
08:33
在这一段代码中。有很多。比较新的内容首先是none派stack这么个函数。很简单,它表示的意思是按顺序合并多个同为列向量或列向量组,变成一个列向量组。参数。多个同为列向量或列向量组构成的序列。
09:04
接下来是这里。一个二维数组的平方。X的平方表示什么?其中X是一个二维数组,X的平方表示什么?表示一个形状和X完全相同的二维数组,其中每个元素的计算过程兼粒子。对于其中的美国元素。X平方IG等于XI的平方。接下来是。X6MASK逗号零表示什么意思?Mask表示的是一个一为布尔数。其中X6是一个二维数组,Mask是一个一维布尔数组。Mask的长度mask等等于X6.shape的0X6MASK0表示什么?表示一个一位数组等价于X mask。
10:09
冒号逗号零。计算过程见粒子。首先。进行初始化相关的数据。X mask对应这么一个二维数组,这个二维数组怎么来的?我来讲一下。Mask。分别写在X的左边或者右边都行,True true false依次往下写,然后。把左边或右边为处的行。过滤出来。构成这个新数组。X mask,逗号零表示的意思是取这个新数组的第零列。535667也就等价于X mask冒号逗号零。
11:06
别急,还是这里。波浪号mask表示什么意思?Mask是什么?伊维布尔叔族,我刚说过。它表示一个和长度相等的。和mask长度相等的一维布尔数组,其中每个元素的计算过程看一下表。通过这个表格可以发现,对任意的I。波浪号mask I等于not mask I。运算浮波浪号。安位,也就是二进制位取法的运算符,用于整数的单位运算符示例。一个C元的事例。C语言的in测类型所占的二进制位数与应用程序的位数有关,在我这里32位。所以在这里,因此类型也是占用32位,也就等于四个字节。因为int没有加修饰符sign,所以这里是有符号整数最高位置符号为零这一负负数的机器数用补码表示,百分号X表示输出对应变量的机器数的16进制表示。
12:11
零转换成二进制还是零?补全32位可得零对应的奇数的二进制表示最高位为符号位。我家出了最高位。负一对应机期数是补码的格式,16进制,八个F转换二进制。三少个一。这个取反运算符的运算过程是怎样的?把整数的计系数对应的全部二进制位,不管符号位还是数值位都取反,得到一个新的整数的计系数,然后把这个机器数转换为对应的新整数。尝试令A取不同的初值范围。负二的32次方到二的32次方减1B区间中的所有整数,我们可以发现。A取反等于负A减一。但是需要注意的是,对于计算机来说,A取反比负A减一的速度要快,为什么要快?
13:05
执行A取反只进行了一次运算,而负A减一它进行了两次运算,先取负,再减一。既然如此,能不能用A取法来代替负A减一?如果是整数,完全可以这么去做。如果不是整数,而这浮点数就不能这样。在数据的新表示中,现在可以用线性模型三维空间中的平面将这两个类别分开。我们可以用线性模型拟合扩展后的数据来验证这么一点。
17:42
一就是先看这段代码中一些新函数或者是。操作。首先是数组方法,Minimum和max。猜都能猜的出来,求数组中的最小值,最大值吗?派变美。
18:00
参数A。一个类似数组对象存放要进行求最小值的数据。access类型囊type整数、整数元组三选一可选参数沿着哪一条轴或哪一些轴构成的超平面、超空间来计算对应的最小值。如果是一个整数元组长度大于一,将会通过多条轴过程的超平面超空间来计算对应的最小值。关于常用的参数、取值及其描述。看一下这个表。A的为数,任意N为。Access now。计算数组中所有元素的最小值,返回一个素或者一个数组。如果keep them等于true,返回只有一个元素的NV数组,否则返回一个数。一为数组。对应的取值情况。和X等于long是相等的。接下来是二维数字的情况。二位数组重点是。
19:01
X等于零和X等于一。X等于零的情况,把A看成是一个由列向量组构成的一个矩阵,求这个列向量组中每个列向量的所有分量最小值返回一个数组。设输入数字形状为M行列。如果keep等于true,返回一个。一行N列的二维数组,否则返回一个长度为N的一维数组。X等于一,二位数组,把A看成是一个由行向量组构成那个矩阵,求这个行向量组中每个行向量的所有分量的最小值,返回一个数组这输入数组A的形状M行一列。如果keep定等于数,返回一个M行一列的二维数组,否则返回一个长度为M的一位数组。其他情况和上面介绍的情况。对应的起来就行了。观察这个表格,可以看出axisx取值的一些限制条件。这个我在之前也讲过,大家自己看一下吧。
20:05
看例子。X等于零。堪称列向量组,求最小值。零,二最小值是零,一三最小值是一,X等于一,看成行向量组,求最小值。零一最小值是零。二三最小值是二。参数out,选择存放结果的输出数组默认为now。如果提供一个数组及形状。必须和预期的输出速度一致,如果必要的话,类型将被强制转换。Keep不好,类型可选参数如果设置为true,会保持数组为数不变,根据这个变量,结果会映射到输入数组中。零。列向量组,求最小值。零二求最小值是零,放在。
21:01
第一行。第一列一,三,求最小值是一,放在第一行第二列。X等于一。行向量组,求最小值。零一最小值是零,放在。第一行第一列。二三最小值12放在第二行第一列。其他情况包括默认情况会产生为数下降。我在之前也讲过。大家自己看一下吧。返回值。返回一个数组或者一个数。如果指定参数alt,它就会就替修改alt指针指向的数组对象,并返回这个指针。换句话说,返回的指针和参数alt指针指向了同一个数组对象,如果不指定参数alt,返回一个新数组。跟之前讲的差不多。这里是对应的例子,大家自己看一下。派点max。
22:04
和派点minimum异曲同工。就是把最小值改成最大值,其他地方不要去管它,大家自己看一下。南派点恩D瑞点minimum。也就是囊派。点N点瑞类的实例的方法,Minimum是什么意思?假设A是一个囊派N点实例a.minimum省略号等价于none派点minimum a逗号省略号。南派点ND.max。和上面是差不多的。大家自己看一下。
23:02
接下来是。比较复杂的函数ma。在讲这个函数之前,首先来问一个问题,通过N个一为数组,其中每个数组的长度即为N1 N2,一直到NN,可以获取多少个NV向量?第一个数组的每个元素只能作为向量的第一个分量,第二个数组中的每个元素只能作为向量的第二个分量,以此类推。很显然,这是一个分布基数问题,它可以获取I等于一到N。拍个NV向量。它表示连乘的意思,依次列出这些向量,就得到了这N个一位数组的一靠基。把这么多个N为向量的每个分量都放在一个N维数组中,共有N个N为数组,该函数就是输入这些一维数组,返回对应的N为数组。
24:03
这个N位数组是怎么来的?下面我来说一下两个例子,首先是二维数组的例子,假设有两个一位数组X等于零,Y等于零,一,二,通过这两个一位数组一,可以获取二乘三等于六个二位向量分别是零,001,零二,一,零一,一,二。把每个分量存入一个一位数组。接下来把这两个一维数组重塑成为二维数组。不是乱重塑的注意条件。通过XI,逗号YIG,可以获取六个二维向量中的任意一个。通过。X冒号零或者X0冒号可以获取小X,通过大Y冒号零或者大Y0冒号可以获取小Y。要同时满足这两个条件,只有二的阶乘等于二两种可能。第一种可能,两行三列的二维数组。通过X冒号零可以获取小X,通过Y0冒号可以获取小Y。
25:05
这样子写起来有点麻烦。我们来创建一个表格。数组形状。X长度Y长度。通过大X获取小X。冒号林。写下来。通过大Y获取小Y,这里是零冒号。写下来我们可以发现。这里有小X,这里有小X,相交处写冒号Y同理,其余位置补离。三行两列的二维数组,这是第二种情况。通过X0冒号可以获取小X,通过Y冒号零可以获取小Y。这个表格。其中这四个元素的填写过程零冒号,冒号零的填写过程同上。
26:00
把X和Y作为星号Xi参数传入呢派点bread中,就可以返回大X和大Y1共有两种情况,该选择哪一个?当以D等于IG的时候,对应第一种情况。当隐等于XY的时候,对应第二种情况。接下来来看一个三维数组的例子。假设有三个一位数组。X等于零,一,Y等于二三,Z等于四,五,通过这三个一位数组可以获取。二的三次方等于八个三位向量分别是零,二,四,零,二,五,零三,四,零三,五,一,二,四,125,一三,四,一,三,五,把每个分量存入一个一位数组。接着把XYZ分别重复成为一个三维数组,条件类比上面的二维数组,要同时满足这两个条件,一共有三个阶乘等于六种可能,因为三个一维数XYZ的长度都是二,为了便于区分,直接记作。论XNY,论Z。
27:00
数组形状。NXNYZZ。构成的三元组。通过X冒号零,零可以获取小S,通过Y0冒号零可以获取小Y,通过Z00冒号可以获取小Z。表格跟类比上面的二维数组。第二种情况,数字形状。YXZ。通过X0冒号零可以获取小X,通过Y冒号零,零可以获取小Y,通过Z00冒号可以获取小Z。表哥。和上面做个类比就行了。填写过程差不多,我之前也讲过。第三种情况,数组形状。XZY。第四种数字形状,ZYYZX。第五种字形状。ZXY。
28:00
第六种数组形状。ZYX。把XYZ作为星号Xi参数传入number派点gra中,就可以返回大,大Y、大Z,一共六种情况,该选择哪一个?当ind I j,当ini等于IG的时候,对应第一种情况,当ini等于XY的时候,对应第二种情况。其余四种情况不能用该函数进行实现。我们可以发现。小二位数的情况,小X跟小Y。对应的。这些。二维向量,也就是二维数据点。正好构成了一个网格。平面中的一个网格。三维数组。
29:01
不管是哪一种情况,它正好构成了空间中的。一个立体网格。虽然说三维数组的情况有四,有四种情况不能用该函数实现,但它还是构成了空间中的网格。型号Xi多个类似一位数组对象表示网格坐标中的一位数组。那些网格中数据点就是所谓的网格坐标。好。布尔类型可选参数默认处如果为false,就返回对应的数组视图。节省内存。如果需要写入数组,先制作副本。不好类型可选参数默认false,如果true则返回稀疏网格,节省内存index。XYIJ二选一默认XY输出的d com X y索引或矩阵IG索引、D索引。对应取值inex等于XY,返回的每个N为数组形状,N2 N1 N3,一直到NN1。
30:01
矩阵,所以引,这等于IG返回每个分为数字形状n nu2,一直到na。返回值对应的N个NV数组。接下来是这里。这个表达式表示什么意思?其中Co EF是一个长度为三的一维数组,XXYY是两个同行矩阵。这块内容表示什么?一步一步来,首先是cof,零乘上XX和线性代数一样,就是一个数乘以一个矩阵。CO1乘上YY,同理。然后是Co EF,零乘上XX加上Co,一,一乘上YY,依旧是和线性代数一样,两个同行矩阵相加,接着是。COF0乘上XX加上Co,一乘上YY,再加上intercept,假设intercept等于一。我们来看这么一个例子。假设。
31:04
刚才也说了,这一块表示的是一个矩阵嘛,因为两个同心矩阵相加嘛,我假设这个矩阵是1111。那么它加上一个数intercept,我假设是一,它就等于六个二。可以发现,对任意的I和G。这一个矩阵的D行DJ列元素等于。这一个矩阵的第二行地质列元素加上intercept,注意,和先进代数开始不一样了。最后是。这一块整体除以一个数,这里依旧是和线性代数一样,一个矩阵除以一个数等于一个矩阵乘上一个数的倒数,为什么书上P74 74页的印49。ZZ取值,或者说Z坐标要这么去写。X轴对应的第零个特征X0 Y轴对应第一个特征X1 Z轴对应第二个特征X2。分类执行方程Y等于W0 X0加W1X1再加W x2再加B。当Y大于零,预测该类,当Y小于零,预测其他类,当Y等于零,随便预测Y等于零,情况比较特殊,也就在分界处,这里就是平面上。
32:13
我现在已知平面在X oy。投影区域中的点坐标。也就是。构成的这么一个网格X Xi j YY I j0 X0等于X Xi j x1等于YYIJ,带入分类直径方程Y等于零,就可以解得X2等于W0 X0加W1X1再加B整体除以负的W2。那么X2求出来不就是ZZ的IG吗?
33:10
如果将线性VSVM模型看作原始特征的函数,那么它实际上已经不是线性的了,它不是一条直线,而是一个椭圆。
35:12
在结束今天的内容之前。我们首先来讲一下这个东西。派点C。把三个。一位数组。作为索引表示什么意思?很简单。囊派点CXXYYZZ表示什么?其中XXYY和ZZ表示三个等长一位数组。这个东西就。表示什么?其实它很简单,它就等价于那快点xxx。点re,负一一,YY点负一一,ZZ点负一一。就等价于这么个东西。
我来说两句