簡體   English   中英

在Octave中繪制決策邊界線

[英]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

其中xy是對應於x1x2的軸, ctheta(0)或y軸截距, m是斜率或theta(1)ktheta(2)

該方程式( c + mx + ky = 0 )對應於決策邊界,因此代碼正在尋找x (或x1 )的兩個值,它們覆蓋了整個數據集( plot_x minmax函數中的-2和+2),然后使用方程式找到對應的y (或x2 )值。 最后,可以繪制決策邊界plot(plot_x, plot_y)

換句話說,它的作用是使用方程式生成兩個點以在圖形上繪制直線,這樣做的原因是Octave無法在給定方程式的情況下繪制直線。

希望這對您有所幫助,對於語法上的任何錯誤或不清楚的解釋^。^


重新排列方程式對我有幫助,因此在這里添加:

plot_y = -1/theta2 (theta1*plot_x + theta0)

請注意,Octave中的索引從1開始,而不是從0開始,因此theta(3) = theta2theta(2) = theta1theta(1) = theta0

plot_y公式等效於:

c + mx + ky = 0             <=>
        -ky = mx + c        <=>
          y = -1/k (mx + c)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM