zoukankan      html  css  js  c++  java
  • Andrew Ng 的 Machine Learning 课程学习 (week3) Logistic Regression

     这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛。这门课程对想要了解和初步掌握机器学习的人来说是不二的选择。这门课程涵盖了机器学习的一些基本概念和方法,同时这门课程的编程作业对于掌握这些概念和方法起到了巨大的作用。

    课程地址 https://www.coursera.org/learn/machine-learning

    笔记主要是简要记录下课程内容,以及MATLAB编程作业....

     

     Logistic Regression

    由于线性回归的预测值可能会>1或者<0,所以线性回归不好。而逻辑回归的预测值会严格控制在[0,1],所以采用逻辑回归去解决0-1分类问题。
    Logistic Regression(逻辑回归)和通常意义上的”逻辑”没什么关系,只是一个名称的音译而已。 

    Week3 编程作业核心代码

    sigmoid.m

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

    costFunction.m

    1 h_theta = sigmoid( X * theta);
    2 sum = 0;
    3 for i = 1 : m
    4     sum = sum + ( -y(i) * log( h_theta(i)) - (1-y(i)) * log( 1 - h_theta(i)));
    5 end
    6 J = 1/m * sum;
    7 
    8 E = h_theta - y;
    9 grad = 1/m * X' * E;

    predict.m

    1 h = sigmoid( X * theta );
    2 p = (h >= 0.5);

    costFunctionReg.m

     1 h_theta = sigmoid( X * theta);
     2 sum = 0;
     3 for i = 1 : m
     4     sum = sum + ( -y(i) * log( h_theta(i)) - (1-y(i)) * log( 1 - h_theta(i)));
     5 end
     6 
     7 extra_fun = lambda / (2*m) * (theta' * theta - theta(1) * theta(1));
     8 J = 1/m * sum + extra_fun;
     9 
    10 E = h_theta - y;
    11 grad = 1/m * X' * E + lambda / m .* theta;
    12 grad(1) = grad(1) - lambda / m * theta(1);

     

  • 相关阅读:
    事务
    handler
    codeforces 27E Number With The Given Amount Of Divisors
    暑期实践日志(五)
    暑期实践日志(四)
    暑期实践日志(三)
    暑期实践日志(二)
    暑期实践日志(一)
    数论 UVALive 2756
    数论 UVALive 2911
  • 原文地址:https://www.cnblogs.com/zhubinwang/p/4939543.html
Copyright © 2011-2022 走看看