程序员训练机器学习 svm算法

程序员训练机器学习 svm算法

ID:14114213

大小:109.99 KB

页数:8页

时间:2018-07-26

程序员训练机器学习 svm算法_第1页
程序员训练机器学习 svm算法_第2页
程序员训练机器学习 svm算法_第3页
程序员训练机器学习 svm算法_第4页
程序员训练机器学习 svm算法_第5页
资源描述:

《程序员训练机器学习 svm算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、摘要:支持向量机(SVM)已经成为一种非常受欢迎的算法。本文主要阐述了SVM是如何进行工作的,同时也给出了使用PythonScikits库的几个示例。SVM作为一种训练机器学习的算法,可以用于解决分类和回归问题,还使用了kerneltrick技术进行数据的转换,再根据转换信息在可能的输出之中找到一个最优的边界。【CSDN报道】支持向量机(SupportVectorMachine)已经成为一种非常受欢迎的算法。在这篇文章里,GregLamp简单解释了它是如何进行工作的,同时他也给出了使用PythonScikits库的几

2、个示例。所有代码在Github上都是可用的,GregLamp以后还会对使用Scikits以及Sklearn的细节问题进行更深一步的阐述。CSDN对本篇技术性文章进行了编译整理:SVM是什么?SVM是一种训练机器学习的算法,可以用于解决分类和回归问题,同时还使用了一种称之为kerneltrick的技术进行数据的转换,然后再根据这些转换信息,在可能的输出之中找到一个最优的边界。简单来说,就是做一些非常复杂的数据转换工作,然后根据预定义的标签或者输出进而计算出如何分离用户的数据。是什么让它变得如此的强大?当然,对于SVM来

3、说,完全有能力实现分类以及回归。在这篇文章中,GregLamp主要关注如何使用SVM进行分类,特别是非线性的SVM或者SVM使用非线性内核。非线性SVM意味着该算法计算的边界没有必要是一条直线,这样做的好处在于,可以捕获更多数据点集之间的复杂关系,而无需靠用户自己来执行困难的转换。其缺点就是由于更多的运算量,训练的时间要长很多。什么是kerneltrick?kerneltrick对接收到的数据进行转换:输入一些你认为比较明显的特征进行分类,输出一些你完全不认识的数据,这个过程就像解开一个DNA链。你开始是寻找数据的矢

4、量,然后把它传给kerneltrick,再进行不断的分解和重组直到形成一个更大的数据集,而且通常你看到的这些数据非常的难以理解。这就是神奇之处,扩展的数据集拥有更明显的边界,SVM算法也能够计算一个更加优化的超平面。其次,假设你是一个农场主,现在你有一个问题——你需要搭建一个篱笆来防止狼对牛群造成伤害。但是篱笆应该建在哪里呢?如果你是一个以数据为驱动的农场主,那么你就需要在你的牧场上,依据牛群和狼群的位置建立一个“分类器”,比较这几种(如下图所示)不同的分类器,我们可以看到SVM完成了一个很完美的解决方案。GregL

5、amp认为这个故事漂亮的说明了使用非线性分类器的优势。显而易见,逻辑模式以及决策树模式都是使用了直线方法。实现代码如下:farmer.pyPython1.importnumpyasnp2.importpylabaspl3.fromsklearnimportsvm4.fromsklearnimportlinear_model5.fromsklearnimporttree6.importpandasaspd7.8.9.defplot_results_with_hyperplane(clf,clf_name,df,plt_

6、nmbr):10.x_min,x_max=df.x.min()-.5,df.x.max()+.511.y_min,y_max=df.y.min()-.5,df.y.max()+.512.13.#stepbetweenpoints.i.e.[0,0.02,0.04,...]14.step=.0215.#toplottheboundary,we'regoingtocreateamatrixofeverypossiblepoint16.#thenlabeleachpointasawolforcowusingourclass

7、ifier17.xx,yy=np.meshgrid(np.arange(x_min,x_max,step),18.np.arange(y_min,y_max,step))19.Z=clf.predict(np.c_[xx.ravel(),yy.ravel()])1.#thisgetsourpredictionsbackintoamatrix2.ZZ=Z.reshape(xx.shape)3.4.#createasubplot(we'regoingtohavemorethan1plotonagivenimage)5.p

8、l.subplot(2,2,plt_nmbr)6.#plottheboundaries7.pl.pcolormesh(xx,yy,Z,cmap=pl.cm.Paired)8.9.#plotthewolvesandcows10.foranimalindf.animal.unique():11.pl.scatter(df[df.animal==an

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。