2014-09-30 84 views

回答

4

在用於二元分類邏輯迴歸,分類爲0或1的新樣品x的概率是:

enter image description here

因此,判定邊界對應於行,其中P(y=1|x)=P(y=0|x)=sigmoid(theta'*x)=0.5,其對應於theta'*x=0 。 sigmoid函數是sigmoid = @(z) 1.0 ./ (1.0 + exp(-z))

enter image description here

在我們的情況下,該數據具有兩個維度加偏壓,因此:

enter image description here

例如,在範圍與x1決策邊界[-1 1]可以可表示爲:

theta = [-0.34, -4.5, 0.5]; 
sigmoid = @(z) 1.0 ./ (1.0 + exp(-z)); 

% Random points 
N = 100; 
X1 = 2*rand(N,1)-1; 
X2 = 20*rand(N,1)-10; 
x = [ones(N,1), X1(:), X2(:)]; 
y = sigmoid(theta * x.') > 0.5; 

% Boundary line 
plot_x = [-1 1]; 
plot_y = (-1./theta(3)).*(theta(2).*plot_x + theta(1)); 

% Plot 
figure; 
hold on; 
scatter(X1(y==1),X2(y==1),'bo'); 
scatter(X1(y==0),X2(y==0),'rx'); 
plot(plot_x, plot_y, 'k--'); 
hold off 
xlabel('x1'); ylabel('x2'); 
title('x_{2} = 0.68 + 9 x_{1}'); 
axis([-1 1 -10 10]); 

它生成以下圖表:

enter image description here

+1

OP的θ是從邏輯迴歸中獲得的。你提到的文章是關於線性迴歸的。這裏有什麼缺失嗎? – greeness 2014-09-30 20:52:20

+0

你是完全正確的!我沒有意識到我的錯誤。我糾正了錯誤。 – tashuhka 2014-09-30 20:58:51

+0

看起來不錯。所以實際上在邊界上:「斜率= theta(2)/( - theta(3))= 9'和'intercept = theta(1)/( - theta(3))= 0.68'。邊界因此是'y = 9x + 0.68'。 – greeness 2014-09-30 21:51:25