首页 > 代码库 > ufldl学习笔记与编程作业:Logistic Regression(逻辑回归)

ufldl学习笔记与编程作业:Logistic Regression(逻辑回归)

ufldl学习笔记与编程作业:Logistic Regression(逻辑回归)


ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践。

在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl。

于是最近就开始搞这个了,教程加上matlab编程,就是完美啊。

新教程的地址是:http://ufldl.stanford.edu/tutorial/


本节学习链接:http://ufldl.stanford.edu/tutorial/supervised/LogisticRegression/


有了线性回归的基础再来学这个,简直是easy啊。

线性回归通常是拟合,预测的输出通常是连续的。

而逻辑回归通常来做离散的预测,比如二值的0或者1,也就是分类问题。


搞懂了目标函数和偏导数后,就可以编程了。


编程题目是对手写数字0和1做分类。

logistic_regression.m代码如下

function [f,g] = logistic_regression(theta, X,y)
  %
  % Arguments:
  %   theta - A column vector containing the parameter values to optimize.
  %   X - The examples stored in a matrix.  
  %       X(i,j) is the i'th coordinate of the j'th example.
  %   y - The label for each example.  y(j) is the j'th example's label.
  %

  m=size(X,2);
  
  % initialize objective value and gradient.
  f = 0;
  g = zeros(size(theta));
  
  h = sigmoid(X'*theta);
  f=-y*log2(h)+(1-y)*log2(1-h);
  g=X*(h-y');
  %
  % TODO:  Compute the objective function by looping over the dataset and summing
  %        up the objective values for each example.  Store the result in 'f'.
  %
  % TODO:  Compute the gradient of the objective by looping over the dataset and summing
  %        up the gradients (df/dtheta) for each example. Store the result in 'g'.
  %
%%% YOUR CODE HERE %%%

结果如下:


教程里说准确率应该是100%,我这里竟然是99.7%和99.9%。

难道我做错了。。。

如果由谁做到100%,记得告诉我啊。


本文作者:linger

本文链接:http://blog.csdn.net/lingerlanlan/article/details/38390085