美文网首页
吴恩达机器学习 - 练习题ex2

吴恩达机器学习 - 练习题ex2

作者: YANWeichuan | 来源:发表于2018-11-12 22:19 被阅读0次

练习了一下吴恩达的《Programming Exercise 2: Logistic Regression》, 两点心得:

  1. 听课和做习题是两回事,代码是需要严格按照理论公式实现
  2. 体会到矩阵运算的强大威力,重复的计算不仅仅是可以通过for循环实现,更可以通过矩阵高效的计算

惨不忍睹的第一版,很算法,很C程序员:

  • costFunction.m
for i = 1 : m,
    J += -y(i)*log(sigmoid(X(i,:)*theta)) - (1 - y(i))*log(1 - sigmoid(X(i,:)*theta));
end;

for j = 2 : size(theta)(1),
    for i = 1 : m,
       grad(j) += (sigmoid(X(i,:)*theta) - y(i))*(X(i,:)(j));
    end;
end;

J = J*(1/m);
grad = grad*(1/m);
  • sigmoid.m
for i = 1 : size(z)(2),
    g(i)  = 1/(1 + exp(-1 * z(i)));
end;

改进后的实现,注意对参数进行适当的转置,以满足矩阵运算的行列要求。

  • 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);

sigmoid.m

g = 1./(1 + exp(-1 * z));
  • costFunctionReg.m
J = 1/m * (-y'*log(sigmoid(X*theta)) - (1-y')*log(1 - sigmoid(X*theta))) + lambda/(2*m) * sum(theta(2:end).^2);
grad(1,:) = 1/m * (X(:, 1)' * (sigmoid(X*theta) - y));
grad(2:size(theta), :) = 1/m * X(:, 2:size(theta))' * (sigmoid(X*theta) - y) + lambda/m * theta(2:size(theta), :);

相关文章

  • 吴恩达机器学习 - 练习题ex2

    练习了一下吴恩达的《Programming Exercise 2: Logistic Regression》, 两...

  • 《吴恩达 - 机器学习》笔记

    学习资源 b站:机器学习(Machine Learning)- 吴恩达(Andrew Ng)网易:吴恩达《机器学习...

  • 机器学习笔记

    学习记录,从小白做起。 传统给机器学习 先来镇楼的,吴恩达机器学习:吴恩达机器学习 OCTAVE版本下载:http...

  • 吴恩达机器学习课程

    吴恩达机器学习课程

  • 机器学习相关资料整理

    初学机器学习,将部分资料整理在此,逐渐完善。 视频资源 吴恩达机器学习 介绍:吴恩达老师关于机器学习的入门级视频...

  • 吴恩达deep_learning_week2_logistic回

    吴恩达deep_learning_week2_logistic回归 标签: 机器学习深度学习 这是吴恩达深度学习里...

  • 机器学习资料汇总

    吴恩达深度学习讲义 http://www.ai-start.com/dl2017/ 吴恩达机器学习讲义 http:...

  • 引言

    这个文集是Coursera上吴恩达教授授课的《机器学习》课程的课程笔记与总结,下面是课程的链接:吴恩达教授机器学习...

  • 2018-04-27

    机器学习吴恩达第二章get

  • 机器学习 | 资料汇总

    一、学习资料 (一)视频课程 吴恩达机器学习入门课程 视频课程本课程是 吴恩达(Andrew Ng)在Course...

网友评论

      本文标题:吴恩达机器学习 - 练习题ex2

      本文链接:https://www.haomeiwen.com/subject/ypshfqtx.html