大家好,今天我们来看机器学习知识,下来机,今天我们来学习 t 度下降法的现行 svm 分的器。 在这个本实验中,我们将使用两种方式来实现 svm, 第一种方式是手动实现一个线性的 svm, 而在实现的过程中,我们将使用的是梯度相声法来进行参数的调整,而第二种方式我们直接调用 skillen 的封装好的 svm 的分类器, 最后比较量子的结果,我们来看一下具体的实现过程。首先加载数据机,同样加载我们的 sk 了内置的原文化数据机,选择其中的两个特征作为我们的特征, 然后将标签设置为一个二分类任务。第一种方式是自定义批量梯度下降的现行 svm 分类器,我们定义的一个类, 然后这个类包含了一些函数,比如自适应的学习率的变化情况,还有定义的训练的过程,这个训练的过程就包含了我们的 自相机,根据自相机的公式计算得到损失,然后根据损失求梯度,最后再使用我们的梯度来更新参数, 这就是一个实现的一个梯度下架法的一个过程,直到最后训练结束,得到我们最终的一个模型,然后还有一个决策函数,绘制了决策函数,然后预测函数, 使用 predict, 有了我们定义的类,我们接下来就可以直接很方便的利用我们的类,然后输入一些参数进行我们模型的训练以及预测 是用 feid, 这些模型的训练是用 predict, 这些模型的预测是,当然调用的都是我们自己定义的这个 sbm 线性回线性分类器的一个函数 绘制损失值的变化情况。先 pro 绘制出叠来的次数,每一次叠来的次数以及模型的一个损失值, 这就是我们从图中可以看到,随着迭代次数的增加,损失只是逐渐变小,最后 距平稳速速参数,这就是我们知识限量机的一个参数定义。决策边界函数, 这个定义别是决策边界函数,主要是为了后续比较两个 我们手动创建的函数,以及使用 sk 论创封装函数,得到结果了一个决策边界绘制第二种,我们使用封装好的函数来进行某型的创建,如果使用封装好的函数,那么就非常的简单,直接调用 sk 论中的 svc 这样开露设置为逆耳进行模型的训练。然后比较 两种方式的决策间隔,调用我们上面定义好的这个函数来进行两者的比较。从图中可以看到,手动创建的和使用封装好的函数它的结果大致一致, 然后绘制 sgd 的决策边界 sd 就是使用随机梯路下降的一个分类器创建的角色边界,从图中可以看到它的结果也是大致相似, 比我们使用批量梯路下降法稍微性能稍微下降一点,但是它的速度会变得更快,那么这就是使用批量梯路下降法来进行 svm 分类器的创建的过程,谢谢大家。
粉丝1434获赞6277


in this video, i will show you how to use kernels with svm to perform non linear classification as you know svm creates a line or hyperplane to separate data points into classes the fact that the boundary between classes is flat is a pro, because it makes svm easier to work with, but it is also a limitation because most data says in the real world cannot be separated by hyperplane a workaround to this limitation is to first apply a no linear transformation to the data points before applying svm with this technique we can easily achieve the desired effect of getting another linear decision boundary without changing how svm works internally this is extremely easy to do in python for example, we load our training data points and labels as usual, but now when we call svm's fit function we don't use x, but try their f of x where f of x is another near transformation of x geometrically this non linear transformation might look something like this svm will return a flat hyperplane separating the two classes as usual, but in the original x space this corresponds to a non linear decision boundary mission accomplished right, should we stop here on call it today well, not quiet a first problem is that we need to choose what this nonlinear transformation should be, but as everybody knows emily enthusiasts are lazy people so the fewer choices we have to make the happier we are the second problem is that if we want a sophisticated decision boundary we need to increase the dimensional of the output of this transformation and this in turn increases computational requirements the so called camera trick was invented to solve both of these problems in one shot the idea is that the algorithm behind this vm does not actually need to know what each point is mapped to enter this not linear transformation the only thing that it needs to know is how each point compares to each other data points after we apply the nonlino transformation mathematically this corresponds to taking the inner product between f x and f x prime, and we call this quantity the current function for example the identity transformation corresponds to the linear kernel given by x transpose x prime the linear kernel gives a flat decision boundary which in this case is not good enough to separate the data properly a polynomial transformation like this one corresponds to the polynomial kernel note that the expression of the kernel function is simple and easy to compute even though the transformation itself is complicated intuitively a polynomial kernel takes into account the original features of our data set just like the linear kernel but on top of that it also considers their interaction it takes a single line of code to use this polynomial kernel with this vm and as expected this gives a curved decision boundary sometimes it is possible to give a kernel function for which it is hard or even impossible to find the corresponding transformation a prime example of this is the popular radial basis function kern not only is the corresponding nolinear transformation complicated it is actually infinite dimensional so it is impossible to use directly in a computer program, but the kernel expression is incredibly simple and again with a single line of code you can experiment with this kernel and you can play with this primate or gamma to make the boundary smooth or rough so in summary the kernel trick is so incredibly powerful that it feels like using a cheat code in a video game not only it is much easier to tweak and get creative with kernels, but we don't have to worry about the dimension of the output anymore。

之前我们讲过, svm 的终极目标就是要寻找一个线性分类超平面,将所有的样本划分开,但是这又有一个问题,我们真的需要将所有的样本必须正确无误的划分开吗?好,这就是我们本节将要引出的两个问题,也就是支持下相机的硬间格与软间格的问题。 我们先来看硬件格,当我们的支持下相机要求必须都将所有的样本正确划分的时候呢,这种情况呢是非常理想的,我们也叫做硬件格好,英文叫做哈士马嘴,那我们来看下面这幅图,好, 那么假如说对于我们所有的红色样本,我们把它的标签好都记为一,那么对于下面的所有蓝色的样本呢?把它的标签都记为负一,那么穿过红色样本的支持项链这根线呢?好,或者叫这个超平面呢?我们叫做 wx 加 b 等于一。穿过蓝色样本的支持项链的这根线呢,叫做 wx 加 b 等于负一,那么中间的这根线或者中间的这个超平面呢,我们叫做 wx 加 b 等于零。 好,那么现在也就说对于所有的样本,他到中间抄平面的距离必须要大于等于支持项链到抄平面的距离。转换成我们的数学公式来说,就是说,好,对于所有的红色样本,就是 y i 等于一的情况, w x 加 b 必须大于等于一。对于所有的蓝色样本,也就是对于所有的 y 等于负一的这些样本呢,我们的 wx 加 b 要小于等于负一,对吧?好,这是我们非常简单的啊,这个点到线之间的距离这个公式转化来的。那么上面这两种情况呢,大家看,我们就可以合成一个公式,就是 y w x 加 b 大于等于一, 那么这种呃转化的公式呢?啊,这个在我们记忆学习的呃过程中呢,非常常见,也就是说经常会把多个式子转化成一个式子,因为这样更简便了,好,那么这个式子翻译成我们的人话,也就说对于所有的样本,他到中间抄平面的距离都必须大于等于支持销量到中间抄平面的距离, 好,这就是我们的哈尔马铁,那么好,我们再把刚才的狮子啊进一步的推爆。那么如果说对于所有的样本到中间超平面的距离啊, 必须都要大于等于现我们的支持销量到超平面的距离,那么转换中的数学公式,也就说咱们是不是必须要最大化这个啊,我们的支持销量到超平面的距离,好,那么而支持销量到超平面的距离是不是都等于一啊,对吧?好,所以说呢,我们是不是所谓的要转化要最大化这个式子相当于就要最大化一除以大规模。 好,那么一出 w 要最大化是不是要相当于最小化我们的大规模,为什么呢?因为字母是大规模呀。好,那么一般在积极学习中呢,我们在求导的过程中呢,我们再进行一个转化,最小化大规模就相当于最小化二分之一的 w 模的平方,好,那么这个就是我们的硬间格所最终要达成的目标,好,也就是再说一遍,要做什么事情呢?在这个 ywxi 加 b 发于等于一的条件下,最小化二分之一 w 一 w 的平方。好, 那么下来呢,我们再看一下软间格,但是呢,咱们刚才说过,硬间格是非常理想化的,但是在现实情况中呢,往往呢,我们很难确定合适的合法术来使得我们的样本啊限定可分,即使你找到了,你怎么能确定这不是由于在宣传样本上的过敏合所造成的呢?所以呢,缓解该问题的一个办法就是允许我们 sum 在一些样本上划分错误啊,也就是我们的软间格 soft 玩具。 那么大家请看,在这幅图中我们圈起来的这个样本呢,他就是划分错位样本。好,那么我们软间格只是像样的这个数学表达呢啊,其实跟硬间格呢,只是有一点点区别,什么区别呢?就是他允许了犯错的情况,就是划分错误的情况。那么大家看,我们还是这个条件啊, y m x 加 b 等于一,但是后面 一个条件剪一个啊,折台啊,这个折台呢,就相当于是一个松弛变样啊,也就说引入了一个,可以引入一个错误。记者,那么在这个条件下,我们最小化上面这个式子,不,上面这个是也有一个正在拉射啊,这是 l 一正则,当然 l 正则呢,跟 l 一正则的目的是一样的,只不过 l 正则在优化过程中,咱们正则是则它挨的平方好,那么换颜值呢?又说我们在软间格的过程中呢, 不光要考虑咱们之前讲过的 fm 的目标,也就是要使这个马尔警对大话,而且现在还要考虑我们允许某一些样本划分错误,因为我们在训练样本集中某些样本,也许他就是异常样本,划分错误也无所谓对不对。好,所以呢,这就是我们的软件团的最终的目标。 好,那么我们啊,必须要注意一点啊,比如说我们在软件格的这个正合像前面的 c, 比如说这个 c 啊,他呢越大呢,也就说明我们相等容错空间越小。为什么呢?因为我们现在软件格是不是目标有两两个啊?一个是是我们的 man 最大化,一个是 如果 c 越大,那是不是说明我们的容错空间啊,在优化过程中就应该越小呀?为什么呢?因为我们现在目标是要最小化这个两两部分,那你 c 越大,是不是相当于后面的权重越大?也就是说我们在最小化的过程中,把更多的精力集中在我们的容错空间更小的情况下。好,那么如, 如果说 c 非常大,已经起到正无穷了,那也就是逼迫着我们的每一个泽卡,也就是松弛变量都必须得为赢,那这个时候呢, c 如果真的为最大的话,那我们泽卡都为赢了,那是不是就成了硬间隔了?也就说此时的软间隔就变成了硬间隔。 好,那么本节呢?啊,我们就讲到了这个硬间格和软间格,那么最终总结一句话,硬间格非常严格,非常理想,超平面将所有的样本都能正确划分,那么软间格呢,就考虑到了现实情况,我们允许一些样本划分错误。好,那么本节我们就到这里,大家加油。

大家好,今天来跟大家介绍一个这个一个工具啊,那么这个工具呢,就是将这个,呃用 vs 就 svm 啊,就支持销量机的一个算法,去训练一个图像分类的这样的一个模型啊。 呃,我们这个软件呢,训练出的模型支持这个它因为它是一个通用的模型文件,所以它支持 c 加加,支持 python, 还有 c 叉五等移动都可以的,因为它是一个标准的这样的一个生产的这样的一个模型文件。嗯, 呃,当然我们这个软件啊,他只支持这个图片分类啊,所以大家要出一下,呃,为了跟大家演示啊,我就这边啊,这边我会存放这个模型的保存路线的,就放到这里面,然后呢我会做一个 分类的这样的一个演示啊,就是,呃,这是猫啊,大家看这就是猫。呃,大家这个训练模型的时候啊,一定要注意一个细节,就是第一个就是建议大家不要用这个中文的路径还有空格啊,就大家尽量要避免这些, 哎,要如何避免中文还有这个空格这样一个路径啊?就是希望大家能够用全英文的路径去操作。 这个就是我们训练的时候啊,我们一定要把这个文件夹啊,下面要分类的,放好自己的这个类别的这个名字就可以了啊,当然这个类别呢就不要用中文的,大家建议用英文的啊, 这样呢,我们就相当于比如说你可以使用,但我们这个至少是两个分类以上,所以你必须得两个分类以上,比如 cat dog person 啊,然后呢每 一个类别呢,你可以单独建个文件夹,就像我这样建个文件夹,然后这边放图片,那么这个图片呢,因为训练的时候啊,他这个图片会进行缩放,所以你这个图片的任何分辨率都可以啊。呃,建议就是说不要太小,也不要太大,你看我这个分辨率 都可以随意五百至四乘四六七的,然后五百乘四零九的,这样我们的分辨率呢是非常粗松复杂的,就是各种各样的分辨率都有啊,这个就是我们的狗,然后这个就是我们的这个人,这个就是随便我们找到人就做个测试, 然后呢我们演示的时候,我们跟他准备了三百张图片的猫和三百张的图片的狗,还有三百图像,三百张图像里面有人的,这样这样的一个图像好,我们训练模型呢,十分简单啊,我们打开 我们的软件啊,首先呢我们选择图片的路径,大家可以点击选择啊,就这样去选择,也可以直接就是拖拽啊,大家要注意下,拖拽,一定要拖拽到这个,一定要是这个路径啊,大家千万不要选这样的路径,就是选啊,一定要选这个偏选到这个你的 pic 路径面啊,像这个就是错的, 一定要选择你类别的,这个存放的文件夹不能够选这个,这里面去了,所以你要注意一下,就是你的文件夹下面要要是这些类别, 然后你的图片格式啊, g b g 的啊,就是你看你的后缀啊,比如说像我这个猫的后缀,你看是点 g b g 的,点 g b g 的,那么大家就一定要选 g b g 啊,不然的话它会找不到。 如果你是 png 的啊,就是要 png, 所以你的图片一定要统一, 你要同意这个就是。然后训练的尺寸大家可以自己去改,默认的话就是六十乘七十的,你的图片的分辨率比较呃,小的时候你可以自己去改啊,这个就是随便了,默认的就给六十乘七十,然后最大叠的次数按默认就可以了, 然后你的模型往这存,模型往这个我们指定的路径下面去存就可以了啊,我们选择这个路径下面去存一下就可以了。 好,我们看一下我们软件,目前的话,我们这个东西呢是没有啊,就是这样的,就是我们只需要一个图片就行了,把这个按照我们的这种格式放好就可以了。我们点击开始训练。 好,大家看到他这个状态上面会有解释啊,说正在加载训练,正在训练中,然后将会说训练已完成,大家看到。好,当训练完成以后呢,我们可以直接在这个地方,我们点击模型的宝图文件加,大家看到他会 直接进去啊,好,大家看到我们这个地方就有了他这个模型啊,这个文件还文件还是比较大的。 好,这个就是我们的二十二十兆的文件。好,然后这里面分的是类别啊,我们的软件会自动的去把这个类别对应上,也就是零表示 cat, 一表示道路和这个二表示 person, 这个大家注意啊。 好,因为我们已经还跟大家准备了这个模型,我们已经过来测试了,我们已经经过测试了,所以呢, 大家看到我们这个已经经过测试了,我们已经在 c shop 里面测过了,这里呢我们提供了 c 加加的文件,还有 c shop 我们也测过了,还有拍摄我们都测过了,都是没问题的啊, 大家只要用我这工具,那么我就可以这个我们的接口啊,就全部跟大家样例,都跟大家听好听好了,大家 它只需要这个呃,安装 open c b 啊去引用就可以了。呃,我们 c 加加的版本啊,建议大家用四点七级以后的版本啊,那么这是 open c b 的这个版本的一个版本。 呃,我们测试的时候是用的 open cv 四点七啊去跟大家测试的, 然后我们的 c 上部呢是用这个 open c v 上部去,呃,我们是用的是这个 e m g u 这样的一个模块儿啊,跟大家去做测试的,它实际上也是一个类似于 open c v 的这样的一个库啊,用的是这个 e m g u 跟大家做测试的, 理论上也是支持 open cp shop 啊,大家可以自己去写啊,其实都差不多啊大家,首先我们来跟大家做做一下测试啊,我们的测试呢已经跟大家去,嗯,就是我们测试的话呢,我们就可以 已经呃放到这个借口里面去,借口文件里面去了,大家可以自己去测一下,然后我们这里边就测了一个这个 percent, 我们也测了 dog, dog 和 cat 这样的一个类啊,好,我们点击开始啊测一下,大家只要把模型传进去啊,基本上都可以很快的把它测出来。 好,大家看到这个地方呢,就已经正确的测试出来了,他已经是二,就是一个 person, 这个就是符合我们的期望了吧,这个就我们放在这个 person 就是二。 好,呃,我们这个呢,就是相当于我们这个就是 c 叉五的版本,我们也提供了 c r 加版本, c r 版本我就不跟大家演示,因为我这个版本也是,呃,测试,测试通过了,没有什么太大的悬念啊,就是因为我们是测试过了以后, 呃才会去发这个视频教程嘛,所以这个肯定是可以的啊。嗯,这个就是我们提供的这个 c r 加的版本,其实 很简单啊,我们训练的模型出来以后呢,我们只需要移动这几个代码就可以了。好,然后我们也也提供了拍摄的版本,所以我们整个的这个软件呢,是非常实用的啊,就是基本上,呃,让你就是傻瓜式的去训练一个模型,然后去做分类,然后最后呢 通过这个分类呢,我们通过调用啊,比如我们支持这个啊,我们可以支持 c 加加 c 叉五还有 pass 这样的一个接口去直接去做调用啊,大家只需要去新建一个项目,比如说我这个里面 c 叉五里面有些东西啊,你直接去做一下这个调用就可以了,做一下调用就可以了,按照这个模式啊, 这个就是一个典型的视力啊,这呢我们就实现了一个 v s v m 啊,那有人说啊,我们这个 v s v m 有什么特点呢?其实没有什么特点啊,它其实就是调用的这个 open c v 的一个呃, 模块儿, s v s v m 里面的一个支持相连接的模块儿去做训练的啊,所以说,呃,我们这个训练的这个流程啊,其实用你用 c 压压写,用 pass 都是可以写出来的啊, 只不过我这边啊,用这个啊,用界面画画画的方法跟他写出来啊,我们可以非常迅速的去训练,不用纠结于这个 啊,怎么这个做图片的 reset 啊,怎么去做这个标签二档呢,很麻烦。那么我通过我们这个软件的整合啊,我们可以达到这个傻瓜式的训练啊,直接就将我们用我们的 svm 的算法,直接就是 训练一个分类图片,基本上可以做到傻瓜式的操作,十分简单啊,而且我们已经提供了完整的接口跟大家啊,不管怎么说啊,我们这个地方呢,还是我就觉得还是比较非常实用的这个工具啊,好,我们的教程呢就讲解就到此结束,欢迎大家收看。

在机器学习中,最基本的任务之一就是你有一堆物体,你想把它们分到两个或更多的类别里。这是一张狗的照片还是一张猫的照片?这只狗是在向上还是向下? svms 也就是支持向量机, 是分类方法中最简单最优雅的一种。你想分类的每个物体都被表示为 n, 为空间中的一个点,这个点的坐标通常被称为特征。 svms 通过画出一个超平面来执行分类任务,也就是说, 在二 d 空间中是一条线,在三 d 空间中是一个平面。以这样的方式,所有属于一个类别的点都在超平面的一边。所有属于另一个类别的点都在另一边。虽然可能存在多个这样的超平面,但 svm 试图找 到最好的分隔两个类别的那个。也就是说,他最大化了到两个类别中的点的距离。这个距离被称为编剧,而恰好落在编剧上的点被称为支持像量。为了首先找到这个超平面, svm 需要一个训练级或者已经被正确类别标记的一组点。这就是为什么 svm 被称为有监督学习算法。在背景中, sbm 解决了一个凸优化问题,该问题最大化了这个编剧约束条件是每个类别的点应该在超平面的正确一边。在实践中, 你不必担心这个优化问题的实现细节。使用 sbm 可以像加在一个拍档库,准备你的训练数据,把它喂给你,和函数,以及调用预测函数为新对象分配正确类别一样简单。 svms 的最大优点是他们易于理解,实现、使用和解释。此外,当训练数据的规模小的时候,他们非常有效。 svms 的简单性也可能是一个问题,在许多应用中, 点不能被一个超平面分隔。在这种情况下,常见的解决方法是,首先用从现有特征计算出的一些非线性特征来增强数据, 然后你可以在这个高维空间中找到一个分隔超平面,就像你把样本抛到天上,某一刹那用一个平面进行有效的分割, 最后再投影回到原始空间。一种聪明的技术被称为核技巧,让我们能以非常高效的方式执行上面的所有这些步骤。现在你了解了 svms, 你可以用它们进行面部检测,垃圾邮件过滤和文本识别。这就是大约两分钟的 svm 介绍。

即使是同一种植物,由于植物生长的地理环境的不同,他们的特征也会有所差异。例如鸢尾花可以分为山鸢尾、杂色鸢尾、维基尼亚鸢尾。 假设此时您得到了一朵鸢尾花,我们该如何判断它属于哪一类呢?这里我们就可以使用到机器学习里面的知识。销量计算法,利用以往已有的数据训练出一个分类器。当我们得到一个新的样本时,就可以利用这个分类器预测出这个样本的所属类别。 首先来了解一下支持项量计算法的原理。 在空间中找到一个能够将所有的数据样 样本划分开的超平面,并且使得样本集中所有的数据到达这个超平面的距离最短。可以分为线性和非线性两大类。那么这个超平面该如何确定呢? 在这幅图中,蓝色的样本点为一类,红色的样本点为一类,我要找到一个分界线将两类数据划分开来,我们可以有很多种划分方式。那么支持相量机里面的 确定分界线的标准就是要使得两类样本到达分类面的最短距离之和达到最大。 图中可以看到样本点到达分类面的最短距离是指的就是样本点到这个分类面的垂直距离。 前面讲的是一个线性的支持向量机,但是有的时候使用线性的分类面难以将样本点有效的划分开来。例如这幅图中红色样本点和蓝色样本点之间存在的是一个非线性的分类界面,因此就有了非线性的支持向量机。 针对非线性的问题,实际上是利用了和函数将线将非线性的问题转化为另外一个空间的线性问题。我们比较常用的和函数是高斯和和多项式和在使用时, 嗯,选定合适的智齿项链题之后,为了使我们的分类器有更好的效果,通常还需要进行调餐。 回到我们之前,如何判断愿为 所属类别的问题?首先要获取一些有明确的所属类别的鸢尾花,获得他的数据指标。这里的鸢尾花数据即记录了鸢尾花的四个指标,分别是花的长度、花的宽度、花瓣长度和花瓣宽度。 在这些数据指标中,要先提取出能够最大程度区分鸢尾花类别的两个特征。 这幅散点图是四个特征两两组合下样本数据的分布情况。从对角线的分布图来看, 花瓣长度和花瓣宽度可以较好的将三类原尾花区分开来,因此可以选择花瓣长度和花瓣宽度作为我们的分类特征。假如我们 选择多项式和函数的非现金值限量级训练的一个分类模型, 这个分类模型在训练级上的准确率为零点八,测试级上的准确率为零点八二,效果还是可以的。 那么此时如果测得一朵嗯鸢尾花的花瓣长度是五厘米,花瓣宽度为三点二厘米,那么我们就可以推断出这朵鸢尾花大概率是山鸢尾。

给我足量数据,我将挖掘未来。大家好,我是江哥,以后是连续忙了,真的是快忙到通宵了,这几天真的是没时间。这个更新视频,这几天确实是异常的忙,因为这是有史以来疫情影响下的 学生们的第一次毕业啊,那么我们大家都没有经验,都是摸着石头过河,所以说非常的忙。好吧,又好像拖更了几天, 好在马上要放假了,放假一定不会脱更,并且放假我会拿出一些这个技能方面的东西,可能是放给大家,还是老规矩吗?大家喜欢看那就免费,大家不喜欢看, 那就转栏。今天我们来说织项链机当中的一个小案例,从头到尾按照思 思维的过程描述给大家,整个难度并不大,但是思考的过程非常重要。话不多说,我们开始吧。 ok, 大家好,我们现在来写 支持向量机的。呃,利用工具来写一下支持向量机的这个代码问题啊,同时呢,我也会告诉你大家,呃,整个思考的过程是什么,你明白了,思考过程 就把一个项目拆分成了无数个小的知识点,那么在无数个小的知识点你都会的话,这一个项目是没有问题的 啊,我们这个不能称之为项目,就是一个小小的练习啊。首先我们第一步啊,任何项目的第一步叫做数数据的准备, 数据准备,那么数据准备,比如说我们拿到数据以后,我们会把这个数据,呃,有些不能用的给删掉,对吧?空值给删掉,带有空值的或者删掉或者补齐, 那么嗯,正常值的情况下,我们需要哪一列?我们认为我们需要的是哪一行,哪一列的,我们把它提取出来等等一系列的,这都叫做数据的准备。 那么有了数据以后啊,有了数据以后我们就要把数据导入进来, 导入进来干什么啊?数据导入进来干什么?我们做记忆学习,呃,就是为给数据在打交道吗?当我们把数据导入进来以后就是准备训练了,在这个时候我们需要 确定啊,我们用的工具和工具和方法,那比如说我们是用我们尝试着用哪一个算法,或者说使用哪一个工具,哪一个算法来解决这类问题, 我们确定完了以后就是相应的导入工具,对不对?呃,这个 导入工具以后啊,呃,导入我们这个算法的模型来开始训练,对吧?导入工具。注意导入工具以后我们可能还需要一点。在这这里忘说了,数据导入以后我们需要进行 一般情况呀,需要数据拆分,呃,拆分成训练级和测试级。训练级 测试几,那为什么要这样拆?呃,为什么要这样拆分呢? 因为我们,呃训练完了以后啊,训练完了以后肯定是需要知道我们这个模型在我们的这个案例也好,项目也好,当中的表现如何,那么我们用训练级进行训练, 用测试机进行这个测试,对吧?这样我们就能得到一个我们想想要,或者说我们想看的,或者我们不想看到的一个结果,那这个结果是否符合我们的预期?好吧,那导入工具下一步就是,呃,训练了,对吧? 训练模型,训练完模型以后就是测试,对不对?达到我们的预期效果,整体上啊,整体上就这么多, 怎么样来,怎么样来写。说你语文学的好,你能写出来汉字,那代码能写出来不?能啊?能。首先数据准备啊,我们这一次案例是用了这个 sk 论当中的给给好我们的一个数据集,因此数据准备这一块我们是可以省略的 啊,这个数据集因为是准备好的,对吧?嗯,准备好的,所以我们这一次,呃,就不再进行了好吗?那如果有兴趣同学的话,那么可以去看我的专栏啊,我也说过,百分之七八十的工作你都是在做数据的准备,其实真正到后面的话只有百分之二三十的工作 啊。第二步就是数据导入,那么数据导入的时候我们需要呃,这个把我们的数据给导进来。导进来的话,我刚才说了,我们用的是谁? 用的是 s k 论, s k 论当中的 decide, 对吧? decide, decide 里面的谁呢?我们就用原尾画数据吧,原尾花, land, land, 原尾画, land, 烟尾化,对吧?我们导入数据,导入数据来以后,好,我们现在已经把烟尾化导入了,那我们就呃给他把数据给 land 进来,对吧? 来了,进来,好,这一步我们完成了,对不对?导数据这一步完成了,那么我下一步需要干什么?把他们数据进行拆分,对吧?这个数据啊,我们执行一下,那这个数据是一个完整的数据,因此我们要对这个数 进行拆分。还记得我们之前说过的拆分数据怎么来吗? run s k 论当中对,也有,对吧? s k 论当中的毛都 selection, 然后呢? import, import 什么? train 对不对? train task 的分割,对吧?那么怎么样去分割呢?现在我们已经把它导入进来了,对吧?我们怎么样分割呢?我们就是 date, 然后这是训练数据,对吧?然后是 date 什么? 这是测试数据,对不对?然后是该 level 了,对吧? level? level? 什么 level 测试数据啊?不对, level, 训练数据,然后干什么? level? level? 谁 level? 测试数据,对吧?然后我们让他开始拆分,对吧?拆分,我们刚才有工具,对不对?我们用这个开始拆分,拆分的话,拆分的数据是什么?鸢尾化数据,对不对?哎? 拆分的是鸢尾花数据,然后怎么个拆分呢?然后拆分的还有鸢尾花的标 签,对吧?原尾画的标签, 那拆分的原文化标签。然后我们需要给他一个参数,这个参数是这个参数是这个 test site, 它占多少?哎? 他 set 他占多少?让给他零点二吧。 ok, 这样的话我们就把这个数据给拆开了,少一个框, 这样我们就把这个数据给拆开了,我们执行一下啊,执行一下, ok, 拆开了以后我们需要做什么呢?注意看上面的,我们已经把数据拆分了,然后确定我们使用工具和方法,因为我们讲的是织项链金, 我们肯定是要用 s k n 当中的 s v m 织销量机,对吧?这个时候呢,我们就要来导入我们的工具了,对不对? fram, fram s k n 当中的谁? s v m, 对吧? s v m, 然后 input, 我们就用一个最简单的线性盒吧, 这是我们用线性和函啊, 好吗?好,我们把它导入进来,导入进来以后还记得我们说吗?导入进来以后他要干什么呢?我们用线性,哎,就错了啊, 我们用线性核吗?我们用线性核导入进来以后我们用线性核训练,对不对?线性核训练就是 as we uh learner, as we say their feet, 对吧? face? face 谁啊? face? 这个训练数据对不对?训练数据在哪里提?然后,哎,不对 t r, 然后给给他。谁? level? t r 对吗? 这是我们开始训练了,没有问题,没有问题。我们走,你训练一下, 走你,哎。 托尼, ok, 呃,我们现在已经把它训练出来了。训练出来的话,我们给他负一个值吧。 model 吧。 model, 我们给他负一个值啊,重新执行一下。 哦,你们不用管他啊,重新执行一下。好,我们现在得到了一个 model, 我们想知道这个 model 怎么样,对不对?我们想知道这个 model 怎么样?然后,呃,这个 猫兜,猫兜里面去钓谁, 对吧?然后 the party, 然后给他谁呢?给他这个 test, 对吧? 我们用它来去测试一下,用它来测试一下。执行,你走,你, ok, 这个时候我们得到了这个分类的数据,我们想知道这个分类的数据吗?后面已经训练完模型之后就是测试吗?就是看看这个效果好不好,看看这个效果好不好的情况下,我们给他,我们给他敷一个纸啊, 给他敷一个值,想看看这个效果好,只想你想看看这个效果好不好的话怎么样看呢?我们看一看我们这个,嗯,训练出来的这个值和原始的标签,嗯,怎么样?对吧? level level? 谁? level test 对不对?哦?因为我们是用的这个 p r e 嘛。 level test, 然后执行。你走你。哎,你看,处处处处处里面有一个 force, 哦,成,呃,这个准确率还是蛮高的啊准确率还是蛮高的,只有一个错的,其他的全部是正确的。 说明这个,呃,织香料机啊,说明这个织香料机的这个准确度还是蛮高的好吗?这就是织香料机的优势在。嗯,传统的机学习算法当中,织香料机的性能还是蛮好的 好吧。呃,好了,这整个的话我们就呃学习到这里啊,整个的话就学习到这里。如果你想呃继续的深入的话,你当然你可以换里面的不同的这个给到我们不同的工具进行不同的测试,这都是可以的。但是原 原理一定是我写的这么多啊,原理一定是我写的这么多啊。最重要的其实不是说最重要的啊,工作量最大的其实就是这一步, 其他的工作量其实都是蛮少的啊,都是蛮少的。这是在工程领域啊,在科研领域。我们随后另说好吗?有兴趣的话我们随后再说。好了,关注我,你会有不一样的收获哦,拜拜。

s v m 进行手写数字识别,支持向量机,简称 s v m。 支持向量机,和决策数一样,既可以用来做分类,也可以用来做回归。 s v m 通过一个和函数来将低位数据映射到高维空间,使得不同类别的数据可以更好地区分开。 再找出一个最合适的超平面来将样本分隔开这个超平面,使得样本点到平面的距离最大化。 这些最近的样本点就是支持项量。下面我们使用 s v m 来进行一下数字识别。首先,从 s k 乱导入 s v m 模块和其他用到的库。 from square import s v m from slinging data says imports will digit from slinging model selection import print test plate from sling matrix import accuracy score precision score record score f e score 其次,加在手写数字数据级 data 等于 obligate x 等于 data data, y 等于 data target。 然后将数据级的百分之二十用来做测试级,剩下的百分之八十作为训练级。 x train x test y train y test 等于 train test pleat x y test size 等于零点二, random state 等于九十三、接着创建 s v m 模型,并将训练级输入进行训练。 model 等于 c v m, 小 v c corner 等于 winnier model fit x train white train。 训练完模型之后,我们就可以将测试级输入模型,得到预测的结果了。 treat 等于 model predict ex test print y print。 再然后我们可以打印出模型的准确率,精确率,召回率, f 一分数等指标,看看模型的效果。 accuracy 等于 accuracy score a white test y print precision 等于 precision score a white test white rate everage 等于 wait 点 rico 等于 rico score by test white breed everage 等于 waited if e 等于 f e score by test wipe read average 等于 wait 点 print 准确率 accuracy print 精确率 precision print 召回率 recall print f e 分数 f e 最后我们一起来看一下程序的输出。

给大家讲一下 python 自动化办公的相关的知识点。先给大家说一下那个 python 对文件分类处理的使用方法。 拍摄文件处理方式其实很简单,嗯,大家在办公的过程中经常会遇到什么呀?如果我在这个目目录下边放多种文件夹, 你看这些文件夹,呃,就是多多种文件,然后这文件夹下的这种多种文件的话,他就比较杂乱,是吧?有 py 的模式的,有 jpg 的,有,有图片,你看有 ppt, 还有这个,嗯,还有一些其他的,你看这个 ppts 啊,这些文件,那如果我让你把它分类出来的话,那常规的一个分类方法的话,那你肯 就是每个文件都一个一个粘贴这种方式,然后给分到各个文件,但是这种就比较麻烦了,我给大家写一个 python 的一个呃,实现的一个方法吧, 就是拿 python 咱们来做一个迅速的那个文件的一个处理。 哎,咱们先导入两个 python 的包,一个是 o s 包,一个就是 python 的文件处理的一个包, 这个是做文件移动专门使用的 os 的话,就是他系统内置的,大家都知道 os 这个指的就是系统,然后拍子里边 os 模块它常见就是,呃, 计算机这咱们这个电脑的它的一些 a p i 的封装,然后就 python 就可以直接掉它。啊,好,那咱们做一个 处理啊,现在咱们用排插膜打开这个项目之后,然后找到咱们要处理这个文件的地址,在这获取到文件的地址就可以了啊,有文件的地址,然后把这些东西都打开,然后拿一下这个,这个地址,就这样的一个地址, 嗯,然后这个就是这样的一个地址,然后咱们再把这些文件放到对应的 目录下边,就是啊,放到这个就是把他所有分类的文件,咱们放到这个,放到这么一个目录下边 分类后的文件,然后咱们做一下那个处理给切, 这个成语很好写的,如果你对 python 比较熟悉的话,它其实就是一个便利,这个便利的话是便利要分类的文件,这个目录下边所有的文件给它便利下来。这个就比较容易了,可以用 sos 的 呃,利斯特 dir 这样的一个方法,然后直接拿这个结果就可以,然后他就可以直接给拿过去,你看这是他, 他报错了。这种其实不能这样写的,拍子的严格语法来说的话,这个得去加一下二,因为在拍子里边这种这是转移符的, 如果你加二的话,他就不是转移符,他就是路径的那个符号的使用啊。看这样一写,然后这样一写之后,你可以看一下啊,咱们一个一个调,这是很简, 然后你看我运行一下,哎,你看我可以把所有的这些文件我都可以拿到,然后拿到之后,那我怎么把它给它放到规定的地方呢?这个也比较简单,然后咱们先判断吧, 先判断他是不是一文件,你看咱们这目录下面虽然都是文件,但是如果要加咱目录的话,这个就比较麻烦了。所以说咱们加一个判断,然后来判断他是不是呃 文件,然后再做一定的操作啊?就是加个衣服吧,判断一句,然后判断一下这个 i, 但这样 i 肯定不能这样写,因为他只是路径的,他文件的名字,他不是整个文件的实际地址,所以说你得需要把 把把他的地址给他加进去,加进去之后,然后你才能判断他 是不是对应的这个文件。如果他是这样的一个文件,那再再让他进行一个处理,就是判断如果这样的一个文件存在的话,在这个目录下边,然后做对应的操作,操作的话其实咱们也比较简单,那咱们就 创建一个这样的一个东西,创建一个分类之后的目录,这个分类的目录其实也比较简单,咱这样来创建就可以了, 然后加一下然后这个目录的名字,咱们就以这个文件的结尾这一部分,然后咱们创建对应的这个目录的名字就可以了,就分类之后的目录名。那这个东西怎么取呢?就是简单的切割,这个比较简单啊,切割 然后怎么选?他一般都是文件跟文件类型都是以点进行分割的,然后咱们就选负一就行了,然后他这个呃名字就能拿出来,然后咱们再做一个那个什么样的一个判断就可以。如果 那怎么来创建这个目录呢?创建目录是这样,咱们得先判断,呃,先判断这个目录是不是存在才可以啊? 如果这个目录不存在的话,咱们再进行判断,再进行创建。如果你存在的话,你没必要创建。为什么要这样处理啊?你看他有好多他是同名的,那我不能每次都创建一次目录啊,这样也造成不必要的开销,是吧? 啊?那好,那这我就怎么写这个就是来判断一下他这个目录是不是存在?如果你看他 存在的话,是吧?然后他就做成判断,他就创建,如果他不存在的话,那就加一个 note 就可以了。我才我才那个,让他就是创建就可以了,如果不存在,那就无所谓,是吧?然后这样来创建这个目录,如果创建成功的话, 啊,创建成功的话,嗯,如果创建成功成功的话,然后就说明这个目录就创建成了。创建成之后,然后就做一个复制的过程,然后再复制,咱们就可以用刚才的这个方法 copy 的这个方式,然后把它给复制过去就行。但是你在写的过程中一定要注意啊,要写这个文件的全路径才可以,然后考到哪呢?考到这个这个路径下,然后转 就是一个完整的程序,你看我执行一遍就可以看到好的结果了。哎,你可以看执行完了之后,然后我分类的全部都出来了,你看 d o c 的,我都放到 d o c 这个目录下, j b j 的就放在 j b j 这个目录下, 你看,呃 p 呃 p b i x 就放在这个位置下。 p d f p p t p y 还有 excel 的这些文件都可以分类出来了,这就是 python 处理呃, 文件分类的一个快捷方法。这如果要少的话,这都无所谓,但是你要多的话,给你几百个文件,你这个东西拿人工选的话,估计你会眼睛看离了,你不一定能选。对啊,好。

