ML学习笔记第三周(五):编程作业

plotData.m(图形绘制)

%进行二分类
pos=find(y==1);
neg=find(y==0);

%绘制录取与未录取图形
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, 'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y','MarkerSize', 7);

sigmoid.m(冲激函数)

g=1./(1+exp(-z));

costFunction.m(代价函数与梯度下降)

J = 1/m *(-y' * log(sigmoid(X*theta)) - (1-y)' * log(1 - sigmoid(X*theta)));
grad = 1/m * X' *(sigmoid(X*theta) - y);

costFunctionReg.m(正则化之后的代价函数与梯度下降)

J = 1/m *(-y' * log(sigmoid(X*theta)) - (1-y)' * log(1 - sigmoid(X*theta))) + (lambda/(2*m)) *sum(theta(2:size(theta,1),:) .^2);

%theta(1)无需进行惩罚,分开计算
grad1 = 1/m *X'(1,:) * (sigmoid(X*theta) - y);
grad2 = 1/m * [zeros(1,size(X',2)); X'(2:size(X',1),:)] *(sigmoid(X*theta) - y) + (lambda/m) * theta;
grad = [grad1;grad2(2:size(grad2,1),:)];

完整代码:

1、机器学习 第三周编程习题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值