第四节:支持向量机(Support Vector Machine,SVM)

有导式

解决分类、回归的问题

分类原理:

二分类

构造分类超平面,实现样本划分  n维   n-1维

最小化问题,不等式问题

变为:对偶问题,等式问题

转化过程参照网上的博客

推广:(线性不可分的时候仍然能用)

低维空间映射到高维空间,有可能会从线性不可分变为线性可分

纬度增加,要在高维空间做内积,比较复杂,利用K积,简化

支持向量机:低维映射到高维;利用Knell积,低维计算内积代替高维

最早用来解决分类问题

现在用它解决回归问题

在SVM分类的基础上引入了 丌敏感损失函数,从而得到了回归型支持向

量机(Support Vector Machine for Regression,SVR)。

寻找一个最优分类面使得所有训练样本离该最优分类面的误差最小。

多分类转化为二分类

方法一、one-against-all

方法二、one-against-one

 

每一个a对应一个样本

分块算法(Chunking)

Osuna算法

序列最小优化算法(Sequential Minimal Optimization,SMO)

增量学习算法(Incremental Learning)

怎样选择a,很多论文在论述,自己查

 

支持向量机的工具箱:(私人开发编写) (matlab系统自带的工具箱是用最小二乘法实现的)

Libsvm工具箱

需要自己下载

需要先安装  C++编译器 (VS就可以)

>> pathtool

^……

重点函数解读

• meshgrid

– Generate X and Y arrays for 3-D plots

– [X,Y] = meshgrid(x,y)

• svmtrain

– Train support vector machine classifier

– model = svmtrain(train_label,train_matrix,’libsvm_options’);

• svmpredict

– Predict data using support vector machine

– [predict_label,accuracy] = svmpredict(test_label,test_matrix,model);

 

 

因为训练集、测试集划分比较随机,所以结果不是很好。

搞清楚别人写的函数的接口,实现过程。

猜你喜欢

转载自blog.csdn.net/lusics/article/details/88074449
今日推荐