往期日誌:
ScalersTalk成長會機器學習小組第6周學習筆記
ScalersTalk成長會機器學習小組第5周學習筆記(微信有個Bug,無法連結,參見3月23日推送)
ScalersTalk成長會機器學習小組第4周學習筆記
ScalersTalk成長會機器學習小組第3周學習筆記
優化目標
最大間隔
最大間隔分類的數學背景
核函數
核函數
使用支持向量機
本周主要知識點:
一、優化目標
二、最大間隔的含義
優化求解目標函數:
支持向量機的決策邊界:
當C為一個很大的值:
支持向量機:線性可分場合
支持向量機:最大間隔在存在異常值場合
四、核函數
非線性決策邊界:
模型預測:
對樣本進行預測,具有下面形式:
核函數:
核函數和相似度函數:
核函數例子:
五、核函數
如何選擇標記點:
SVM的核函數:
SVM的核函數:
SVM的參數選擇:
六、使用SVM
核函數的相似度函數如何寫:
記得在使用高斯核函數時不要忘記對特徵做歸一化。
其他的核函數選擇:
並不是所有的核函數都合法的,必須要滿足Mercer定理。
多項式核:
衡量x與l的相似度:
通用的公式:
如果它們是相似的,那麼內積就會很大。
String kernel:
如果輸入時文本字符
用來做分類
Chi-squared kernel
Histogram intersection kernel(直方圖交叉核)
SVM的多分類:
Many packages have built in multi-class classification packages
Otherwise use one-vs all method
Not a big issue
SVM和Logistic 回歸的比較:
六、作業
function sim = gaussianKernel(x1, x2, sigma)x1 = x1(:); x2 = x2(:);sim = 0;sim = exp(-(x1 - x2)' * (x1 - x2) / (2*(sigma^2)));% =============================================================end
dataset3Params.m:
function [C, sigma] = dataset3Params(X, y, Xval, yval)C = 1;sigma = 0.3;smallest_error=1000000;c_list = [0.01; 0.03; 0.1; 0.3; 1; 3; 10; 30];s_list = c_list; for c = 1:length(c_list) for s = 1:length(s_list) model = svmTrain(X, y, c_list(c), @(x1, x2) gaussianKernel(x1,x2,s_list(s))); predictions = svmPredict(model, Xval); error = mean(double(predictions ~= yval)); if error < smallest_error smallest_error = error; C = c_list(c); sigma = s_list(s); end end endend
emailFeatures.m:
function x = emailFeatures(word_indices)n = 1899;x = zeros(n, 1);for i=1:length(word_indices) row = word_indices(i); x(row) = 1;endend
processEmail.m:
for i=1:length(vocabList) if(strcmp(str , vocabList(i))) word_indices = [word_indices; i]; enden
ScalersTalk ID:scalerstalk本微信公眾號作者Scalers,遊走在口譯世界的IT從業者。微信公眾號ScalersTalk,網站ScalersTalk.com,口譯100小時訓練計劃群C 456036104
成長會是由Scalers發起的面向成長、實踐行動,且凝聚了來自全球各地各行各業從業者的社群。有意入會者請和Scalers直接聯繫,我和其他會員會和你直接交流關於成長行動等各方面的經驗教訓。2016年成長會持續招募中,參見做能說會寫的持續行動者:ScalersTalk成長會2016年會員計劃介紹(2016.3更新)