1 / 4
文档名称:

contourf参数pythonPython机器学习.pdf

格式:pdf   大小:965KB   页数:4页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

contourf参数pythonPython机器学习.pdf

上传人:鼠标 2023/6/16 文件大小:965 KB

下载得到文件列表

contourf参数pythonPython机器学习.pdf

相关文档

文档介绍

文档介绍:该【contourf参数pythonPython机器学习】是由【鼠标】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【contourf参数pythonPython机器学习】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。contour参f数python_Python机器学****六)?使??持向量机最?化分类间隔0?引???持向量机(SVM)可以看做感知器的拓展。感知器算法中,我们可以最?化分类误差。?在SVM中,我们的优化?标是最?化分类间隔。此处间隔是指两个分离的超平?的距离,?最靠近超平?的训练样本被称作?持向量。1?对分类间隔最?化的直观认识?其实就是确定了决策边界的系数之后,移动决策边界(超平?),使得平?的两个超平?在保持依然为决策边界的前提下,距离最?化。?注:在实践中,通过?次规划的?法很容易得到我们想得到的最值。2?使?松弛变量解决?线性可分问题原因?对于?线性可分的数据来说,需要放松线性约束条件,以保证在适当的罚项成本下,对错误分类的情况进?优化时能够收敛。SVM与logistic回归logistic回归优点:?logistic回归会尽量最?化训练数据集的条件似然,这使得它??持向量机更易于处理离群点;?logistic回归模型简单更容易实现;?logistic回归模型更新?便,当应?于流数据分析时,这是?常具备吸引?的。?SVM优点:??持向量机更关注接近决策边界的点。3?使?scikit-learn实现SVM?前?章节?到了scikit-learn中的Perception和LogisticRegression类,它们都使?了LIBINEAR库,LIBLINEAR是?度优化的C/C++库。类似的,?于训练SVM模型的SVC类使?了LIBSV?M库。?与使?原?python代码实现线性分类器相?,使??LIBLINEAR和LIBSVM库实现由其优点:在?于?型数据时,可以获得极?的训练速度,然?有时候数据集很?导致没办法加载到内存中,针对这种情况,scikit-learn提供了SGDClassifier类供?户选择,这个类还通过partial_fit?法?持在线学****SGDClassifier类背后的概念类似于第2章中实现的随机梯度算法。我们可以使?默认参数以如下?式分别初始化基于随机梯度下降的感知器、logistic回归以及?持向量机模型。from??import?SGDClassifierppn?=?SGDClassifier(loss?=?'perception')lr?=?SGDClassifier(loss='log')svm?=?SGDClassifier(loss='hinge')?使?核SVM解决?线性问题0?引???持向量机可以很容易的使?“核技巧”来解决?线性可分问题。在讨论SVM的基本概念之前,先通过?个例?来认识?下所谓的?线性可分问题到底是什么。1?例??通过如下代码,我们使?Numpy中的logical_xor函数创建了?个经过异或操作的数据集,其中100个样本属于类别1,另外的100个样本属于类别-1import?numpy?as?npimport??as?(0)X_xor?=?(200,?2)y_xor?=?(X_xor[:,?0]?>?0,?X_xor[:,?1]?>?0)y_xor?=?(y_xor,?1,?-1)(X_xor[y_xor==1,?0],?X_xor[y_xor==1,?1],?c='b',?marker='x',?label='1')(X_xor[y_xor==-1,?0],?X_xor[y_xor==-1,?1],?c='r',?marker='s',?label='-1')(-)()()?执?上述代码可以得到?个异或数据集,其图像为:图1?显然通过之前的SVM和logistic回归模型是不能把它线性分类的,从图??也看不出明显的线性决策边界。??核?法处理此类?线性可分数据的基本理念就是:通过映射函数?把样本的原始特征映射到?个使样本线性可分的更?维空间中。就这?例?来说,我们可以将?维数据集通过下列映射转换到新的三维特征空间中,从?使样本可分。这使的我们可以将图中的两个类别通过线性超平?进?分割。然后如果我们把此超平?映射会原始特征空间,则可先?分割两类数据的超平?就变成?线性的了。2?使?背景?为了使?SVM解决?线性问题,我们通过?个映射函数将训练数据映射到更?维度的特征空间,并在新的特征空间上训练?个线性SVM模型。然后将同样的映射函数应?于新的、未知数据上。进?使?新特征空间上的线性SVM模型对其进?分类。?但是这种思路是有问题的。?构建新的特征空间带来?常?的计算成本,特别是在处理?维数据的时候。这是就?到了我们称作核技巧的?法。3?使??下?使?核技巧来对之前给的异或数据来进?分类。import?numpy?as?npimport??as?pltfrom??import?SVCfrom??import?ListedColormapdef?plot_decision_regions(X,?y,?classifier,?test_idx=None,?resolution=):????#?setup?marker?generator?and?color?map????markers?=?('s',?'x',?'o',?'^',?'v')????colors?=?('red',?'blue',?'lightgreen',?'gray',?'cyan')????cmap?=?ListedColormap(colors[:len((y))])????#?plot?the?decision?surface????x1_min,?x1_max?=?X[:,?0].min()?-?1,?X[:,?0].max()?+?1????x2_min,?x2_max?=?X[:,?1].min()?-?1,?X[:,?1].max()?+?1?????#?成两个个?维的矩阵????xx1,?xx2?=?((x1_min,?x1_max,?resolution),?(x2_min,?x2_max,?resolution))????Z?=?(([(),?()]是).T求)?转#置?.T????Z?=?()????(xx1,?xx2,?Z,?alpha?=?,?cmap?=?cmap)????((),?())????((),?())????#?plot?all?samples????X_test,?y_test?=?X[test_idx,?:],?y[test_idx]????for?idx,?c1?in?enumerate((y)):????????(x=X[y?==?c1,?0],?y?=X[y?==?c1,?1],?alpha=,?c=cmap(idx),?marker=markers[idx],?label=c1)????#?highlight?test?samples????if?test_idx:????????X_test,?y_test?=?X[test_idx,?:],?y[test_idx]????????(X_test[:,?0],?X_test[:,?1],?c='',?alpha=,?linewidth=1,?marker='o',?s=55,?label='test?set')(0)X_xor?=?(200,?2)y_xor?=?(X_xor[:,?0]?>?0,?X_xor[:,?1]?>?0)y_xor?=?(y_xor,?1,?-1)(X_xor[y_xor==1,?0],?X_xor[y_xor==1,?1],?c='b',?marker='x',?label='1')(X_xor[y_xor==-1,?0],?X_xor[y_xor==-1,?1],?c='r',?marker='s',?label='-1')(-)()()svm?=?SVC(kernel='rbf',?random_state=0,?gamma=,?C=)(X_xor,?y_xor)plot_decision_regions(X_xor,?y_xor,?classifier=svm)(loc='upper?left')()?其中svm中gamma的值会影响图像的拟合程度。越?拟合的越好。