一.逻辑回归问题(分类问题)

  1. 生活中存在着许多分类问题,如判断邮件是否为垃圾邮件;判断肿瘤是恶性还是良性等。机器学习中逻辑回归便是解决分类问题的一种方法。
    二分类:通常表示为yϵ{0,1},0:“Negative Class”,1:“Possitive Class”。
  2. 逻辑回归的预测函数表达式hθ(x)(hθ(x)>=0 && hθ(x)<=1):

    其中g(z)被称为逻辑函数或者Sigmiod函数,其函数图形如下:

    理解预测函数hθ(x)的意义:其实函数hθ(x)的值是系统认为样本值Y为1的概率大小,可表示为hθ(x)=P(y=1|x;θ)=1-P(y=0|x;θ).

  3. 决策边界(Decision boundary):y=0和y=1的分界线,由逻辑函数图形可知,当y=1时,g(z)>=0.5,z>=0,也就是说θTX>=0,这样我们就可以通过以xi为坐标轴,作出θTX=0这条直线,这条直线便是决策边界。如下图所示:
  4. 代价函数(Cost Function)J(θ):一定要是一个凸函数(Convex Function),这样经过梯度下降方便找到全局最优 。

    根据以上两幅图我们可以看出,当预测值hθ(x)和实际值结果y相同时,代价值为0;当预测值hθ(x)和实际结果y不同时,代价值无穷大。组合在一起可以写为:

    向量化后可写为:

  5. 梯度下降算法:和线性回归中使用的一样

    向量化:
  6. 高级优化方法(用来代替梯度下降选择参数θ):Conjugate gradient(共轭梯度法)、BFGS、L-BFGS,只需要掌握用法即可,不需了解原理。
    优点:不需要手动选择学习速率α,收敛速度比梯度下降快,更复杂。
    %首先写一个函数用来计算代价函数和代价函数的梯度
    function [jVal, gradient] = costFunction(theta)
    jVal = [...code to compute J(theta)...];
    gradient = [...code to compute derivative of J(theta)...];
    end %然后在命令行中通过调用fminunc()函数来计算参数θ

    options = optimset('GradObj', 'on', 'MaxIter', 100);
    initialTheta = zeros(2,1);
    [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

  7. 多分类问题:可以转化为n+1个二分类问题看待,如下:

    通过这种形式,我们可以预测出结果最接近哪个y值。

二.过拟合问题和解决方法

  1. Underfit:欠拟合问题具有高偏差;Overfit:过拟合问题具有高方差。

  2. 过拟合的定义:如果训练集中有过多的特征项,训练函数过于复杂,而训练数据又非常少。我们学到的算法可能会完美的适应训练集,也就是说代价会接近与0。但是却没有对新样本的泛化能力。

  3. 解决方法:手动的选择合适的特征;或者使用模型选择算法(用来选取特征变量)。

  4. 正规化(Regularization):正则化中我们将保留所有的特征变量,但是会减小特征变量的数量级(参数数值的大小θ(j)),相当于减少参数θ(j)所对应的多项式对整个预测函数的影响。以下内容以线性回归为例。
    正规化代价函数:其中λ过大会导致欠拟合。

    正规化梯度下降:θ0不需要

    其中当参数Θ不为θ0时,梯度下降形式又可以改写为:

    正规化正规方程:其中L为(n+1)*(n+1)维矩阵。

  5. 正规化逻辑回归:

    代价函数:

    梯度下降形式和线性回归相同。

  6. 正规化逻辑回归中高级的求解参数θ方法:
     

    无~~~~

Coursera-AndrewNg(吴恩达)机器学习笔记——第三周的更多相关文章

  1. Coursera-AndrewNg(吴恩达)机器学习笔记——第三周编程作业

    一. 逻辑回归 1.背景:使用逻辑回归预测学生是否会被大学录取. 2.首先对数据进行可视化,代码如下: pos = find(y==); %找到通过学生的序号向量 neg = find(y==); % ...

  2. Coursera-AndrewNg(吴恩达)机器学习笔记——第三周编程作业(逻辑回归)

    一. 逻辑回归 1.背景:使用逻辑回归预测学生是否会被大学录取. 2.首先对数据进行可视化,代码如下: pos = find(y==); %找到通过学生的序号向量 neg = find(y==); % ...

  3. 吴恩达机器学习笔记(三) —— Regularization正则化

    主要内容: 一.欠拟合和过拟合(over-fitting) 二.解决过拟合的两种方法 三.正则化线性回归 四.正则化logistic回归 五.正则化的原理 一.欠拟合和过拟合(over-fitting ...

  4. 吴恩达机器学习笔记(六) —— 支持向量机SVM

    主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...

  5. Machine Learning|Andrew Ng|Coursera 吴恩达机器学习笔记

    Week1: Machine Learning: A computer program is said to learn from experience E with respect to some ...

  6. Machine Learning|Andrew Ng|Coursera 吴恩达机器学习笔记(完结)

    Week 1: Machine Learning: A computer program is said to learn from experience E with respect to some ...

  7. [吴恩达机器学习笔记]12支持向量机5SVM参数细节

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.5 SVM参数细节 标记点选取 标记点(landma ...

  8. [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...

  9. [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...

随机推荐

  1. 【一天一道LeetCode】#99. Recover Binary Search Tree

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Two ele ...

  2. ios可视化编程 UI高级 UI_13

    一.简单的说,IB Xib就是拖控件编程,也可以说是可视化编程(所见即所得),使用Xib编程,相对于纯代码,可以省下大量的敲代码时间,从而提高程序的开发时间,Xcode  4 之后才可以在工程中直接使 ...

  3. Leetcode_118_Pascal's Triangle

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41827325 Given numRows, generat ...

  4. Android 纵向跑马灯滚动效果

    像淘宝和京东都会有跑马灯的效果,今天给大家贡献下以前项目的一个demo,各位看官,且看效果图. 我们先定义一个Bean文件,这个实体类文件主要包含标题,内容描述,以及还有跳转的链接. LampBean ...

  5. 《java入门》第一季之类(String类字符串一旦被赋值就没法改变)

    毫无疑问,String类是java里面最重要的类之一.因此它有很多方法需要了解和掌握. 字符串一旦被赋值,值就不能发生改变: package cn.itcast_02; /* * 字符串的特点:一旦被 ...

  6. Linux C OSS音频编程

    在linux下也可以写一个类似麦克风和喇叭这样的应用程序,只要打开/dev/dsp这个设备驱动,对该设备read读操作相当于录音,对这个设备write写操作相当于放音. 对于以下出现的一些参数我就不多 ...

  7. 【一天一道LeetCode】#20. Valid Parentheses

    一天一道LeetCode系列 (一)题目 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', ...

  8. 从头到尾解析Hash表算法

    via:点击打开链接 十一.从头到尾解析Hash 表算法 作者:July.wuliming.pkuoliver   出处:http://blog.csdn.net/v_JULY_v.   说明:本文分 ...

  9. How to Send an Email Using UTL_SMTP with Authenticated Mail Server

    In this Document   Goal   Solution   References APPLIES TO: PL/SQL - Version 9.2.0.1 to 12.1.0.1 [Re ...

  10. android 实现淘宝收益图的折线

    实现的效果我一会贴上,我先说下原理,我们知道要实现在canvas上画线,不就是要搞一个paint嘛,然后首先肯定要设置下paint的属性,那么画文字呢,不就是Textpaint吗, 对,就是这么简单, ...