DataWhale—16期组队学习—Task3:基于支持向量机的分类预测

Task3:基于支持向量机的分类预测

1 支持向量机简介

在机器学习中,支持向量机(英语:support vector machine,常简称为SVM,又名支持向量网络[1])是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。
除了进行线性分类之外,SVM还可以使用所谓的核技巧有效地进行非线性分类,将其输入隐式映射到高维特征空间中。
当数据未被标记时,不能进行监督式学习,需要用非监督式学习,它会尝试找出数据到簇的自然聚类,并将新数据映射到这些已形成的簇。将支持向量机改进的聚类算法被称为支持向量聚类[2],当数据未被标记或者仅一些数据被标记时,支持向量聚类经常在工业应用中用作分类步骤的预处理。
SVM的优点:
1)可以解决高维问题,即大型特征空间;
2)解决小样本的机器学习问题;
3)能够处理非线性特征的相互作用;
4)无局部极小值问题;(相对于神经网络等算法)
5)无需依赖整个数据;
6)泛化能力比较强;
SVM的缺点:
1)当观测样本很多时,效率并不是很高;
2)对非线性问题没有通用解决方案,有时候很难找到一个合适的核函数;
3)对于核函数的高维映射解释力不强,尤其是径向基函数;
4)常规SVM只支持二分类;
5)对缺失数据敏感;

SVM有如下几个特点:
(1)支持向量机通过非线性映射将数据样本导入到高维特征空间。用内积核函数代替了数据的点积运算。
(2)支持向量机获得的最佳超平面的最终目的就是对高维特征空间进行有效的划分,使获得的类别距离超平面的距离最大化。
(3)支持向量机通过对训练集数据样本的训练获得的支持向量是决定支持向量机分类效果的关键。
(4)最终的分类效果只由少数支持向量决定,而且支持向量机算法具有“鲁棒性”。这种“鲁棒性”主要表现在以下几个方面:
a. 支持向量机的数据样本的增加与减少对分类效果影响不大
b.支持向量机对的核函数的适应力比较广泛

2 基于支持向量机的分类预测实践

from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.svm import SVC
from numpy import *
 
# download the dataset
iris_dataset = datasets.load_iris()
iris_data = iris_dataset.data           
iris_target = iris_dataset.target
 
# split data and target into training set and testing set
# 80% training, 20% testing
x_train, x_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size = 0.2)
# construct SVC by using rbf as kernel function
SVC_0 = SVC(kernel = 'rbf')
SVC_0.fit(x_train, y_train)
 
predict = SVC_0.predict(x_test)
right = sum(predict == y_test)
# accuracy rate
print("%f%%" % (right * 100.0 / predict.shape[0]))

96.666667%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值