[英]Plotting decision boundary line in Octave
我一直在學習機器學習課程,目前正在學習分類。 我實現了分類算法,並獲得了參數以及成本。 該分配已經具有繪制決策邊界的功能,並且可以正常工作,但是我試圖讀取其代碼並且無法理解這些行。
plot_x = [min(X(:,2))-2, max(X(:,2))+2];
% Calculate the decision boundary line
plot_y = (-1./theta(3)).*(theta(2).*plot_x + theta(1));
有人解釋嗎?
我也和你上同一門課。 我猜代碼的作用是在決策線上生成兩個點。
如您所知,您具有以下功能:
theta0 + theta1 * x1 + theta2 * x2 = 0
可以將其重寫為:
c + mx + ky = 0
其中x
和y
是對應於x1
和x2
的軸, c
是theta(0)
或y軸截距, m
是斜率或theta(1)
, k
是theta(2)
。
該方程式( c + mx + ky = 0
)對應於決策邊界,因此代碼正在尋找x
(或x1
)的兩個值,它們覆蓋了整個數據集( plot_x
min
和max
函數中的-2和+2),然后使用方程式找到對應的y
(或x2
)值。 最后,可以繪制決策邊界plot(plot_x, plot_y)
。
換句話說,它的作用是使用方程式生成兩個點以在圖形上繪制直線,這樣做的原因是Octave無法在給定方程式的情況下繪制直線。
希望這對您有所幫助,對於語法上的任何錯誤或不清楚的解釋^。^
重新排列方程式對我有幫助,因此在這里添加:
plot_y = -1/theta2 (theta1*plot_x + theta0)
請注意,Octave中的索引從1開始,而不是從0開始,因此theta(3) = theta2
, theta(2) = theta1
和theta(1) = theta0
。
此plot_y
公式等效於:
c + mx + ky = 0 <=>
-ky = mx + c <=>
y = -1/k (mx + c)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.