最近在学习Andrew NG的机器学习课程,上到定义函数的时候,就想着能否把代价函数画出来。
首先在编辑器定义一个函数文件,保存到工作路径中
function J = costFunctionJ(X,y,theta)
m = size(X,1); %样本量
predictions = X*theta
sqrErrors = (predictions-y).^2;
J = 1/(2*m)*sum(sqrErrors);
这是一个简单的一元函数,表达式为
我的思路就是写一个循环,然后循环中改变 θ1 计算代价函数J的值,并且储存到列表J_list中,最后再plot(θ1,J)得到结果
J_list = list()
for i = 1:10,
theta = [0;i];
J = costFunctionJ(X,y,theta);
J_list(i) = J
end;
list = (1:10)
plot(list,J_list)
但是这样会报错,于是改变了思路,不用theta=[0;i]表示了,我只要在上一个theta的基础上增加θ1就可以了,于是代码更改如下:
J_list = list()
theta = [0;1]
for i = 1:10,
delta = (i-1)*[0;1];
theta &