1. 程式人生 > >支撐向量機 SVM 學習筆記(Matlab程式碼)

支撐向量機 SVM 學習筆記(Matlab程式碼)

% 支援向量機SVM分類演算法



clear all
% ------------------------------------------------------------%
% 構造兩類訓練資料集     x2=aa*x1+bb+(-)b1

aa=3;
bb=6;
b1=0.2;       

x1(:,1) = -1:0.1:1;

n = length(x1(:,1));

x1(:,2) = aa.*x1(:,1) + bb + b1 + abs(randn(n,1));
y1 = ones(n,1);

x2(:,1) =  -1:0.1:1;
x2(:,2) = aa.*x2(:,1) + bb - b1 - abs(randn(n,1));

y2 = -ones(n,1);


figure;
plot(x1(:,1),x1(:,2),'bx',x2(:,1),x2(:,2),'k.');
hold on;

X = [x1;x2]; % 訓練樣本
Y = [y1;y2]; % 訓練目標,n×1的矩陣,n為樣本個數,值為+1或-1
% ------------------------------------------------------------%

tic
% 解二次優化方城
n = length(Y);
H = (Y*Y').*(X*X'); % liner kernel 
f = -ones(n,1);
A = [];
b = [];
Aeq = Y';
beq = 0;
lb = zeros(n,1);
ub = 100*ones(n,1);
a0 = zeros(n,1);
options = optimset;
options.LargeScale = 'off';
options.Display = 'off';
[a,fval,eXitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options);
eXitflag

time=toc


   
%先複製上面的程式碼 執行後  再複製下面的程式碼 執行 呵呵 (對Matlab不熟,不知道為什麼一次執行和分開執行看到的結果不同)

% 以下是分類平面:
Y2=a.*Y;
 W(1)=sum(Y2.*(X(:,1)));
 W(2)=sum(Y2.*(X(:,2)));

aLarge=find(a>0.1);
j=aLarge(1);

S(:,1)=Y.*a.*X(:,1);
S(:,2)=Y.*a.*X(:,2);

S2=S*(X(j,:)');

b=Y(j)-sum(S2);


 xx1=x1(:,1);
 xx2=-(W(1)*xx1+b)/W(2);
 plot(xx1,xx2);              

相關推薦

支撐向量 SVM 學習筆記Matlab程式碼

% 支援向量機SVM分類演算法 clear all % ------------------------------------------------------------% % 構造兩類訓練資料集     x2=aa*x1+bb+(-)b1 aa=3; bb=6; b1=0.2;        x

支援向量SVM----學習筆記程式碼實踐一高斯核函式

import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.preprocessing import StandardScaler from sklearn.svm import SV

Python中的支援向量SVM的使用有例項

轉載自https://www.cnblogs.com/luyaoblog/p/6775342.html。謝謝作者整理,若侵權告知即刪。 除了在Matlab中使用PRTools工具箱中的svm演算法,Python中一樣可以使用支援向量機做分類。因為Python中的sklearn庫也集成了SVM演算

支援向量SVM通俗理解python程式碼實現

這是第三次來“複習”SVM了,第一次是使用SVM包,呼叫包並嘗試調節引數。聽聞了“流弊”SVM的演算法。第二次學習理論,看了李航的《統計學習方法》以及網上的部落格。看完後感覺,滿滿的公式。。。記不住啊。第三次,也就是這次通過python程式碼手動來實現SVM,才

吳恩達機器學習筆記十二-支援向量

第十三章 支援向量機(SVM)優化目標支援向量機在學習複雜的非線性方程時能夠提供一種更為清晰個更加強大的方式。    先回顧一下邏輯迴歸的相關概念,看如何進行改動可以得到支援向量機。邏輯迴歸的假設函式為

機器學習支撐向量SVM

1.SVM的原理與目標 1.1 分割超平面 來看上圖,假設C和D是兩個不想交的凸集,則存在一個超平面P,這個P可以將C和D分離。 這兩個集合的距離,定義為兩個集合間元素的最短距離。 做集合C和集合D最短線段的垂直平分線。這條垂直平分線就是分割超平面。 在兩個

支持向量-SVM 學習

境界 每次 char 符號 ref com 2.3 center 沒有 一 支持向量機(SVM) 一.1 符號定義

《深入理解Java虛擬學習筆記第三章 垃圾收集器與內存分配策略

關鍵字 rem 永久 規模 是把 同時 技術 source () 第三章 垃圾收集器與內存分配策略 要解決的問題 哪些內存需要回收? 什麽時候回收? 如何回收? 概述 當需要排查各種內存溢出、內存泄漏問題時,當垃圾收集成為系統達到更高並發量的瓶頸時, 需要對內存動態分

【Java】「深入理解Java虛擬學習筆記4- 類文件結構

jruby idt this 原因 cal constant borde ESS groov   我為什麽喜歡Java,另重要原因就是跨平臺,就是WORA。   程序員是爽了,但肯定有人要為你遮風擋雨,解決WORA的基石就是字節碼+虛擬機。 ?Tip   Java生

matlab學習筆記實驗課

2018.9.15 rem(x,y)與mod(x,y)的區別: % 當x,y同號時,rem與mod結果相同; % 當x,y異號時,rem(x,y)與x同號,mod(x,y)與y同號。 int2str 把數值陣列轉換為整數數字組成的字元陣列 integer n.

灰色預測模型的學習筆記MATLAB 包含模型的建立 求解 及檢驗

本博文是本人在學習灰色預測模型時所做的筆記,原理及程式碼部分都是基於學習各位大佬的博文,詳見後面的參考, 一、 實操,利用灰色預測模型預測未來十年湖南的人口數量 二、 具體實現,從國家統計局獲取湖南省過去十年的人口資料,作為原始資料,見Excel檔案,利用MAT

Matlab學習筆記持續更新

矩陣 在matlab中矩陣是以陣列的形式存在的,一維陣列相當於 向量,二維陣列相當於矩陣,所以矩陣是陣列的子集 函式名稱 函式功能 ones(n)構建nXn的1矩陣, 矩陣的元素全部是1 ones(m,n)構建mXn的1矩陣 ones (size (A) )構

支援向量SVM及Demo轉載

1 簡介 支援向量機基本上是最好的有監督學習演算法了。最開始接觸SVM是去年暑假的時候,老師要求交《統計學習理論》的報告,那時去網上下了一份入門教程,裡面講的很通俗,當時只是大致瞭解了一些相關概念。這次斯坦福提供的學習材料,讓我重新學習了一些SVM知識。我看很多正統的講法都是從VC 維理論和結構風險

模式識別Pattern Recognition學習筆記十二--SVM廣義:大間隔

       在學習之前,先說一些題外話,由於博主學習模式識別沒多久,所以可能對許多問題還沒有深入的認識和正確的理解,如有不妥,還望海涵,另請各路前輩不吝賜教。        好啦,我們開始學習吧。

9.支撐向量-SVM

SVM要最大化margin,而margin=2d,所以問題轉化為最大化d. SVM演算法最終的最優化問題: s.t. 表示subject to,它後面的式子表示約束條件。 這個最優化問題是Hard Margin SVM問題,它假設資料是線性可分的。 Sof

matlab學習筆記十一---二值形態學運算

1、膨脹運算 1.1對影象text.png進行膨脹操作,並對比。 bw=imread('text.png');se=strel('line',11,90); %建立一個線性結構元素 bw2=imdilate(bw,se); %用線性結構元素來進行膨脹操作 s

【Java】「深入理解Java虛擬學習筆記5- 類加載

一次 some img 不同的 各路 轉換 準備 自己 綁定   C/C++在編譯時需要進行連接,而Java的類加載、連接和初始化是在運行時完成的。       圖 類的生命周期   圖中解析的過程不一定在準備和初始化之間,也可以在初始化之後再開始,以支持Java

OpenCV2學習筆記十五:利用Cmake高速查找OpenCV函數源代碼

one 生成 img log 分享 lan 學習筆記 全部 modules 在使用OpenCV時,在對一個函數的調用不是非常了解的情況下,通常希望查到該函數的官方聲明。而假設想進一步研究OpenCV的函數,則必須深入到源碼。在VS中我們能夠選中想要查

機器學習筆記Washington University- Regression Specialization-week five

ril ... des stl it is idg evaluate date lec 1. Feature selection Sometimes, we need to decrease the number of features Efficiency: With f

Pro Android學習筆記一三七:Home Screen Widgets3:配置Activity

map onclick widgets info xtra ces extends height appwidget 文章轉載僅僅能用於非商業性質,且不能帶有虛擬貨幣、積分、註冊等附加條件。轉載須註明出處http://blog.csdn.net/flowingfly