機器學習——最小二乘分類
今天介紹機器學習中的分類,我們知道,在某種意義下,機器學習方法一般被用來做兩件事:回歸(擬合)和分類,再進一步,可以將分類也歸為擬合,只不過擬合的是離散的值(函數值的符號)。
考慮2類別分類問題y∈{+1,-1},這種情況下,分類器的學習問題可以近似地定義為取值為+1、-1的二值函數問題,如下圖:
注意:f=0是指實際上不怎麼會發生的事件,也就是小概率事件。
像這樣,把分類問題看成函數的近似問題,通過在分類器得構造中採用最小二乘法,就可以對前面我們學習到的最小二乘學習法進行拓展並靈活應用了。
所以,我們還是使用和回歸一樣的學習方法:
學習好參數之後,我們在測試樣本取值的時候還要進行一些簡單的處理,就是取函數值的符號,我們使用符號函數sign。
最小二乘分類的代碼如下:
clear; closeall; clc;
n = 200;
a = linspace(0,4*pi,n/2);
u = [a.*cos(a) (a+pi).*cos(a)]" + rand(n,1);
v = [a.*sin(a) (a+pi).*sin(a)]" + rand(n,1);
x = [u v];
y = [ones(1,n/2) -ones(1,n/2)]";
x2 = sum(x.^2,2);
hh = 2*1^2;
l = 0.01;
k = exp(-(repmat(x2,1,n) + repmat(x2",n,1) - 2*x*x")/hh);
t = (k^2 + l*eye(n))(k*y);
m = 100;
X = linspace(-15,15,m)";
X2 = X.^2;
U = exp(-(repmat(u.^2,1,m) + repmat(X2",n,1) - 2*u*X")/hh);
V = exp(-(repmat(v.^2,1,m) + repmat(X2",n,1) - 2*v*X")/hh);
holdon
contourf(X,X,sign(V"*(U.*repmat(t,1,m))));
plot(x(y==1,1),x(y==1,2),"bo","MarkerSize",8,"linewidth",2.5);
plot(x(y==-1,1),x(y==-1,2),"rx","MarkerSize",8,"linewidth",2.5);
axis([-15,15,-15,15]);
colormap([1 0.7 1; 0.7 1 1]);
代碼運行結果如下:
由結果可知,最小二乘分類的效果非常好。
以上就是今天推送的內容,歡迎討論。
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※一種機器學習方法,用於庫存受限的動態定價
※10種機器學習即服務特性簡介及入門!
TAG:機器學習 |