在Octave中绘制决策边界线

时间:2018-03-08 00:15:28

标签: 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));

有人解释?

1 个答案:

答案 0 :(得分:2)

我也和你一样学习。我想代码的作用是在决策线上生成两个点。

如你所知,你有这个功能:

theta0 + theta1 * x1 + theta2 * x2 = 0

它可以改写为:

c + mx + ky = 0

其中xy是与x1x2对应的轴,ctheta(0)或y截距,{ {1}}是斜率或mtheta(1)k

此等式(theta(2))对应于决策边界,因此代码为c + mx + ky = 0(或x)找到两个值,涵盖整个数据集(-2和+2)在x1 plot_xmin个函数中),然后使用公式查找相应的max(或y)值。最后,可以绘制决策边界 - x2

换句话说,它的作用是使用公式生成两个点来绘制图上的线,这样做的原因是Octave不能绘制给定方程的线。

希望这可以帮到你,对不起任何语法错误或不清楚的解释^。^

重新排列方程帮助了我,所以在这里添加:

plot(plot_x, plot_y)

请注意,Octave中的索引从1开始,而不是0,因此plot_y = -1/theta2 (theta1*plot_x + theta0) theta(3) = theta2theta(2) = theta1

theta(1) = theta0等式相当于:

plot_y