99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀簡單易學(xué)的機(jī)器學(xué)習(xí)算法—線性可分支持向量機(jī)
簡單易學(xué)的機(jī)器學(xué)習(xí)算法—線性可分支持向量機(jī)
2017-03-21
收藏

簡單易學(xué)的機(jī)器學(xué)習(xí)算法—線性可分支持向量機(jī)

一、線性可分支持向量機(jī)的概念
    線性可分支持向量機(jī)是用于求解線性可分問題的分類問題。對于給定的線性可分訓(xùn)練數(shù)據(jù)集,通過間隔最大化構(gòu)造相應(yīng)的凸二次優(yōu)化問題可以得到分離超平面:
以及相應(yīng)的分類決策函數(shù)

稱為線性可分支持向量機(jī)。
二、線性可分支持向量機(jī)的原理
1、原始問題
   支持向量機(jī)學(xué)習(xí)的基本想法是求解能夠正確劃分訓(xùn)練數(shù)據(jù)集并且?guī)缀伍g隔最大的分離超平面,這里的間隔最大化又稱為硬間隔最大化。
   我們可以把這樣的問題抽象稱為如下的數(shù)學(xué)表達(dá)式:

然而,函數(shù)間隔的取值并不影響最優(yōu)化問題的解,我們可以取。則上述的優(yōu)化問題就可以轉(zhuǎn)化為:

可以將上述的最大化問題轉(zhuǎn)化為最小化問題:

這樣的問題是一個凸二次規(guī)劃的問題。在線性可分情況下,訓(xùn)練數(shù)據(jù)集的樣本點中的分離超平面距離最近的樣本點的事例稱為支持向量,即滿足:
2、對偶算法
   對于上述的帶約束的優(yōu)化問題,我們可以引進(jìn)拉格朗日函數(shù)來解決:

這樣,原始的問題就轉(zhuǎn)化成一個極小極大問題:

再通過拉格朗日函數(shù)的對偶性,將上述的極小極大問題轉(zhuǎn)換成一個極大極小問題:

此時,我們先求:
    將拉格朗日函數(shù)分別對和求偏導(dǎo),并令其為0,則為

可得:
將上面兩個等式帶入拉格朗日函數(shù),得

再求對a的極大,即:


將這樣的最大化問題轉(zhuǎn)化為最小化問題,即為

根據(jù)拉格朗日對偶性,通過對偶函數(shù)的最優(yōu)解即可以求出原始函數(shù)的最優(yōu)解:

其中,下標(biāo)是使得的樣本。這里使得的樣本也稱為支撐向量,與上述的滿足的樣本本質(zhì)上是一樣的。
三、線性可分支持向量機(jī)的步驟
1、構(gòu)造帶約束的優(yōu)化問題:

2、計算原始問題的最優(yōu)解:

3、求分離超平面:

分類決策平面:

四、實驗的仿真
    我們通過二次規(guī)劃來求解上述的帶約束的優(yōu)化問題,對于一個實例:(選自:《統(tǒng)計學(xué)習(xí)方法》)正例點為,負(fù)例點為,圖像為:數(shù)據(jù)分析師培訓(xùn)

(正例點和負(fù)例點)
MATLAB代碼
[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片
%% 基于凸二次規(guī)劃的線性可分支持向量機(jī)  
 
% 清空內(nèi)存  
clear all;  
clc;  
 
%簡單的測試數(shù)據(jù)集  
X = [3,3;4,3;1,1];  
x_1 = X(:,1);  
x_2 = X(:,2);  
Y = [1,1,-1];%標(biāo)簽  
 
 
m = size(X);  
for i = 1:m(1,1)  
    X(i,:) = X(i,:)*Y(1,i);  
end  
 
%% 對偶問題,用二次規(guī)劃來求解  
H = X*X';  
 
f = [-1;-1;-1];  
A = Y;  
b = 0;  
lb = zeros(3,1);  
% 調(diào)用二次規(guī)劃的函數(shù)  
[x,fval,exitflag,output,lambda] = quadprog(H,f,[],[],A,b,lb);  
 
% 求原問題的解  
n = size(x);  
w = x' * X;  
 
for i = 1:n(1,1)  
    if x(i,1) > 0  
        b = Y(1,i)-w*X(i,:)'*Y(1,i);  
        break;  
    end  
end  
 
% 求出分離超平面  
 
y_1 = [0,4];  
for i = 1:2  
    y_2(1,i) = (-b-w(1,1)*y_1(1,i))./w(1,2);  
end  
 
hold on  
plot(y_1,y_2);  
for i = 1:3  
    if Y(1,i) == 1  
        plot(x_1(i,:),x_2(i,:),'+r');  
    elseif Y(1,i) == -1  
        plot(x_1(i,:),x_2(i,:),'og');  
    end  
end  
axis([0,7,0,7])  
hold off 
分類的結(jié)果:

(最終的分類超平面)

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }