
一、線性支持向量機的概念
線性支持向量機是針對線性不可分的數(shù)據(jù)集的,這樣的數(shù)據(jù)集可以通過近似可分的方法實現(xiàn)分類。對于這樣的數(shù)據(jù)集,類似線性可分支持向量機,通過求解對應的凸二次規(guī)劃問題,也同樣求得分離超平面
以及相應的分類決策函數(shù)
二、與線性可分支持向量機的比較
線性支持向量機與線性可分支持向量機最大的不同就是在處理的問題上,線性可分支持向量機處理的是嚴格線性可分的數(shù)據(jù)集,而線性支持向量機處理的是線性不可分的數(shù)據(jù)集,然而,在基本的原理上他們卻有著想通之處。這里的線性不可分是指數(shù)據(jù)集中存在某些點不能滿足線性可分支持向量機的約束條件:。
具體來講,對于特征空間上的訓練數(shù)據(jù)集,且不是線性可分的,即存在某些特異點不滿足的約束條件,若將這些特異點去除,那么剩下的數(shù)據(jù)點是線性可分的,由此可見,線性可分支持向量機是線性支持向量機的特殊情況。為了解決這樣的問題,對每個樣本點
引入一個松弛變量
,且,則上述的約束條件被放寬,即:
此時目標函數(shù)變?yōu)椋?img src="/uploadfile/image/20170321/20170321181611_87789.png" alt="" />
其中稱為懲罰參數(shù),且。在線性支持向量機中加入了懲罰項,與線性可分支持向量的應間隔最大化相對應,在線性支持向量機中稱為軟間隔最大化。數(shù)據(jù)分析師培訓
三、線性支持向量機的原理
由上所述,我們得到線性支持向量機的原始問題:
接下來的問題就變成如何求解這樣一個最優(yōu)化問題(稱為原始問題)。引入拉格朗日函數(shù):
其中,。
此時,原始問題即變成
利用拉格朗日函數(shù)的對偶性,將問題變成一個極大極小優(yōu)化問題:
首先求解,將拉格朗日函數(shù)分別對求偏導,并令其為0:
即為:
將其帶入拉格朗日函數(shù),即得:
第二步,求,即求:
由可得
,因為在第二步求極大值的過程中,函數(shù)只與a有關。
將上述的極大值為題轉化為極小值問題:
這就是原始問題的對偶問題。
四、線性支持向量機的過程
1、設置懲罰參數(shù),并求解對偶問題:
假設求得的最優(yōu)解為;
2、計算原始問題的最優(yōu)解:
選擇中滿足
的分量,計算:
3、求分離超平面和分類決策函數(shù):
分離超平面為:
分類決策函數(shù)為:
五、實驗的仿真
1、解決線性可分問題
與博文“簡單易學的機器學習算法——線性可分支持向量機”實驗一樣,其中取中的最大值。
MATLAB代碼為
[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片
%% 線性支持向量機
% 清空內存
clear all;
clc;
%簡單的測試數(shù)據(jù)集
X = [3,3;4,3;1,1];
y = [1,1,-1];%標簽
A = [X,y'];
m = size(A);%得到訓練數(shù)據(jù)的大小
% 區(qū)分開特征與標簽
X = A(:,1:2);
Y = A(:,m(1,2))';
for i = 1:m(1,1)
X(i,:) = X(i,:)*Y(1,i);
end
%% 對偶問題,用二次規(guī)劃來求解
H = X*X';
f = ones(m(1,1),1)*(-1);
B = Y;
b = 0;
lb = zeros(m(1,1),1);
% 調用二次規(guī)劃的函數(shù)
[x,fval,exitflag,output,lambda] = quadprog(H,f,[],[],B,b,lb);
% 定義C
C = max(x);
% 求原問題的解
n = size(x);
w = x' * X;
k = 1;
for i = 1:n(1,1)
if x(i,1) > 0 && x(i,1)<C
b(k,1) = Y(1,i)-w*X(i,:)'*Y(1,i);
k = k +1;
end
end
b = mean(b);
% 求出分離超平面
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:m(1,1)
if A(i,m(1,2)) == -1
plot(A(i,1),A(i,2),'og');
elseif A(i,m(1,2)) == 1
plot(A(i,1),A(i,2),'+r')
end
end
axis([0,7,0,7])
hold off
實驗結果為:
(線性可分問題的分離超平面)
2、解決線性不可分問題
問題為:
(線性不可分問題)
MATLAB代碼:
[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片
%% 線性支持向量機
% 清空內存
clear all;
clc;
% 導入測試數(shù)據(jù)
A = load('testSet.txt');
% 處理數(shù)據(jù)的標簽
m = size(A);%得到訓練數(shù)據(jù)的大小
for i = 1:m(1,1)
A(i,m(1,2)) = A(i,m(1,2))*2-1;
end
% 區(qū)分開特征與標簽
X = A(:,1:2);
Y = A(:,m(1,2))';
for i = 1:m(1,1)
X(i,:) = X(i,:)*Y(1,i);
end
%% 對偶問題,用二次規(guī)劃來求解
H = X*X';
f = ones(m(1,1),1)*(-1);
B = Y;
b = 0;
lb = zeros(m(1,1),1);
% 調用二次規(guī)劃的函數(shù)
[x,fval,exitflag,output,lambda] = quadprog(H,f,[],[],B,b,lb);
% 定義C
% C = mean(x);
C = max(x);
% 求原問題的解
n = size(x);
w = x' * X;
k = 1;
for i = 1:n(1,1)
if x(i,1) > 0 && x(i,1)<C
b(k,1) = Y(1,i)-w*X(i,:)'*Y(1,i);
k = k +1;
end
end
b = mean(b);
% 求出分離超平面
y_1 = [-4,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:m(1,1)
if A(i,m(1,2)) == -1
plot(A(i,1),A(i,2),'og');
elseif A(i,m(1,2)) == 1
plot(A(i,1),A(i,2),'+r')
end
end
hold off
實驗結果為:
(線性不可分問題的分離超平面)
注:這里的的取值很重要,的取值將決定分類結果的準確性。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調研數(shù)據(jù)中的深度應用? 市場調研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03