基於MATLAB的視覺化支援向量機

2021-10-05 05:23:47 字數 2438 閱讀 8247

其實, 散點圖很容易畫, 大家都各有各的畫法.主要問題是分界線的繪製, 因為得到分類器之後, 我不會得到它的分介面.通過觀察, 例子中與畫分界線的**有關的部分如下:

h = 0.02; % mesh grid step size

[x1,x2] = meshgrid(min(x(:,1)):h:max(x(:,1)),...

min(x(:,2)):h:max(x(:,2)));

[~,score] = predict(svmmodel,[x1(:),x2(:)]);

scoregrid = reshape(score,size(x1,1),size(x2,2));

figure

hold on

contour(x1,x2,scoregrid);

hold off

其中, 涉及到的陌生函式有meshgrid, predict, reshape, contour

簡單介紹一下:

h = 0.02; % 設定取點的間隔

[x1,x2] = meshgrid(min(x(:,1)):h:max(x(:,1)),...

min(x(:,2)):h:max(x(:,2)));% 得到所有取點的矩陣

[~,score] = predict(svmmodel,[x1(:),x2(:)]);

% 應用得到的分類器對網格矩陣中的所有點進行分類, 只要取點間隔夠小, 相當於對整個平面上的所有點進行分類結果的計算.

scoregrid = reshape(score,size(x1,1),size(x2,2));

% 由於分類得到的score的對應順序對不上網格, 所以需要用reshape對score進行改變行數列數

figure

hold on

contour(x1,x2,scoregrid);

% 畫出線,這裡不是分界線, 只是等高線

hold off

理解原理之後, 對某男女分類問題的分界線進行繪製:

[x1,x2] = meshgrid(140:0.02:200,30:0.02:130);

% 這是我的取點範圍, 感覺效果不錯, 也可以自己改改

[~,score] = predict(svmmodel_rbf,[x1(:),x2(:)]);

% 對網格進行分類結果的計算

scoregrid = reshape(score(:,2),size(x1,1),size(x2,2));

% 改變score的行數和列數, 使之和網格[x1,x2]中的點一一對應

contour(x1,x2,scoregrid,[0 0]);

% 繪製等高線, 最後乙個引數[0 0] 就是只繪製出score值為0的點的等高線, 也就是分界線.

legend('female','male','support vector','分界線');

基於caffe的特徵視覺化

lian jie 最近想看一看卷積神經網路中各層的卷積結果,但在網上搜尋feature visualization並沒能找到通俗易懂的內容。在caffe的官網教程中,有這麼乙個instant recognition with caffe,參照它可以很快的做出視覺化的結果。但感覺裡面還是稍有些複雜,這...

基於vue的視覺化程式設計

vue layout用了muse ui 感覺還不錯。vue layout 流程學習 編譯流程 參考文件 中間preview 最右側控制項列表 components.vue mu select field muse ui mint ui iview ui 我們來看mu select field 這個m...

基於pandas的內建視覺化

資料分析能夠很好地幫我們了解資料,理解資料,能夠幫助我們進行有效的特徵工程,方便後續的機器學習建模。pandas作為強大的資料分析工具,提供的內建視覺化功能也是十分強大的。series和dataframe上的這個功能只是使用matplotlib庫的plot 方法的簡單包裝實現。繪圖方法允許除預設線圖...