sklearn基本用法----SVM

来源:互联网 发布:淘宝客服骂人怎么投诉 编辑:程序博客网 时间:2024/05/22 03:23

——sklearn(Google公司开始投资,是大数据战略的一个步骤)是python的机器学习模块,可用于模式识别,用在一般知识发现,例如户外参与人口的类型。sklearn包自带数据集。

svm

1.定义
       支持向量机(SVM)是一组用于分类,回归和异常值检测的监督学习方法。
       在机器学习中,支持向量机(英语:Support Vector Machine,常简称为SVM,又名支持向量网络)是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。
        除了进行线性分类之外,SVM还可以使用所谓的核技巧有效地进行非线性分类,将其输入隐式映射到高维特征空间中。 当数据未被标记时,不能进行监督式学习,需要用非监督式学习,它会尝试找出数据到簇的自然聚类,并将新数据映射到这些已形成的簇。将支持向量机改进的聚类算法被称为支持向量聚类,当数据未被标记或者仅一些数据被标记时,支持向量聚类经常在工业应用中用作分类步骤的预处理。
2.历史
       原始SVM算法是由弗拉基米尔·万普尼克和亚历克塞·泽范兰杰斯于1963年发明的。1992年,Bernhard E. Boser、Isabelle M. Guyon和弗拉基米尔·万普尼克提出了一种通过将核技巧应用于最大间隔超平面来创建非线性分类器的方法。
       当前标准的前身(软间隔)由Corinna Cortes和Vapnik于1993年提出,并于1995年发表。
3.应用
(1)用于文本和超文本的分类,在归纳和直推方法中都可以显著减少所需要的有类标的样本数。
(2)用于图像分类。实验结果显示:在经过三到四轮相关反馈之后,比起传统的查询优化方案,支持向量机能够获取明显更高的搜索准确度。这同样也适用于图像分区系统,比如使用Vapnik所建议的使用特权方法的修改版本SVM的那些图像分区系统
(3)用于手写字体识别。
(4)用于医学中分类蛋白质,超过90%的化合物能够被正确分类。基于支持向量机权重的置换测试已被建议作为一种机制,用于解释的支持向量机模型。支持向量机权重也被用来解释过去的SVM模型。为识别模型用于进行预测的特征而对支持向量机模型做出事后解释是在生物科学中具有特殊意义的相对较新的研究领域。
4.svm的优点与缺点
(1)优点:
在高维空间中有效。
在尺寸数量大于样本数量的情况下仍然有效。
在决策函数中使用训练点的子集(称为支持向量),因此它也是内存高效的。
通用:可以为决策函数指定不同的内核函数。提供公共内核,但是也可以指定自定义内核。
(2)缺点:
如果特征的数目远大于样品的数目,则该方法可能给出差的性能。
SVM不直接提供概率估计,这些是使用昂贵的五折交叉验证计算的。

下面以iris鸢尾花数据集为例讲述svm算法

#导入svm和数据集from sklearn import svm,datasets#调用SVC()clf = svm.SVC()#载入鸢尾花数据集iris = datasets.load_iris()X = iris.datay = iris.target#fit()训练clf.fit(X,y)#predict()预测pre_y = clf.predict(X[5:10])print(pre_y)print(y[5:10])#导入numpyimport numpr as nptest = np.array([[5.1,2.9,1.8,3.6]])#对test进行预测test_y = clf.predict(test)print(test_y)

这里写图片描述

0 0
原创粉丝点击