分类问题(classification problems)

y=0 or 1

回归分析/逻辑分析(logistic regression):

目标:令h(x)位于[0,1]之间

逻辑函数/S型函数:

图像:

x=0,y=0.5;x=正无穷,y=1;x=负无穷,y=0;

概率角度:P(y=0|x;θ)+P(y=1|x;θ)=1,P(y=1|x;θ)表示在给定x数值时y=1的概率。

由图可知,要使得h>0(y=1),就要z>0,所以是theta定义了决策边界,而训练集用于拟合参数theta

一对多问题(One-vs-all)

若有个分类,则将问题分成n个1/0简单分类问题。每个简单分类问题中,1代表n类中的一类,0代表剩余的n-1类。

计算出每个简单分类问题y=1的概率,最终概率即为n个概率中该分类概率最大的。

高级优化算法(Advanced Optimization)

如:BFGS(变尺度法)、L-BFGS(限制变尺度法)、Conjugate gradient(共轭梯度法)

优点

  • 不用手动选择α,内部有智能的线性搜索算法(line search),可以自动尝试各种α
  • 速度比梯度下降法快
  • 缺点只有复杂

在Matlab使用高级优化算法

1
2
3
4
function [jVal, gradient] = (theta)
jVal = [...code to compute J(theta)...];
大专栏  机器学习Week3s="line"> gradient = [...code to compute derivative of J(theta)...];
end
1
2
3
options = optimset('GradObj', 'on', 'MaxIter', 100); %储存option的数据结构,'GradObj', 'on'设置梯度目标参数为on打开,'MaxIter', 100最大迭代次数。
initialTheta = zeros(2,1); %theta的最初猜想值
[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options); %fminunc是无约束最小化函数,@为指向costFunction的指针。

运行结果中exitFlag=1表示已经收敛,此时functionVal的值接近0

θ必须是二维及以上列向量

过度拟合(overfitting)

图一表示未拟合(underfitting)或者HIgh bios(高偏差);图三表示表示过度拟合或者高方差(hegh variance)。

定义:在有很多数据的情况下,曲线可能很好的拟合已有曲线。但是无法泛化(generate)新数据。

解决:1.减少选取的变量数。人工选取更重要的变量或者用模型选择算法自动选择变量。

2.正规化(regularization)

保存所有变量,不过减少数量级或者θ(j)的大小

正规化

通过’惩罚’某些参数,可以使得曲线更加接近合适的曲线。为了使正规化更好的运行,需要选择合适的λ参数。

同样,正规化改变了J(θ),也要改变梯度下降和正规方程算法中θ的递归式。在正规方程算法中,只要λ>0,则矩阵可逆。


正文结束


一点吐槽:用了chrome和印象笔记快两年了,今天才发现印象笔记剪藏chrome插件有多好用,coursera上的文本基本都能一键收藏啊,还不用每次为了做笔记辛苦弄公式传图片。

大概以后就可以少写很多笔记了吧(各种偷懒)。

机器学习Week3的更多相关文章

  1. 斯坦福机器学习视频笔记 Week3 逻辑回归与正则化 Logistic Regression and Regularization

    我们将讨论逻辑回归. 逻辑回归是一种将数据分类为离散结果的方法. 例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件. 在本模块中,我们介绍分类的概念,逻辑回归的损失函数(cost fun ...

  2. Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)

    Logistic Regression 一.内容概要 Classification and Representation Classification Hypothesis Representatio ...

  3. coursera-斯坦福-机器学习-吴恩达-笔记week3

    1 逻辑回归 1. classification 分类 eg:垃圾邮件分类.交易是否是欺诈.肿瘤类别.分类的结果是离散值. 2. sigmoid函数 使用线性方法来判断分类问题,会出现上图中的问题,需 ...

  4. ML:吴恩达 机器学习 课程笔记(Week3~4)

    Logistic Regression Regularization Neural Networks: Representation

  5. Coursera-吴恩达机器学习课程笔记-Week3

    logistic regression Binary classification problems logistic regression 是一个分类算法 Hypothesis function d ...

  6. Andrew Ng机器学习课程笔记--汇总

    笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...

  7. Deep Learning--week1~week3

    week1 一张图片,设像素为64*64, 颜色通道为红蓝绿三通道,则对应3个64*64实数矩阵 为了用向量表示这些矩阵,将这些矩阵的像素值展开为一个向量x作为算法的输入 从红色到绿色再到蓝色,依次按 ...

  8. Coursera机器学习+deeplearning.ai+斯坦福CS231n

    日志 20170410 Coursera机器学习 2017.11.28 update deeplearning 台大的机器学习课程:台湾大学林轩田和李宏毅机器学习课程 Coursera机器学习 Wee ...

  9. Andrew Ng 的 Machine Learning 课程学习 (week3) Logistic Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

随机推荐

  1. 关于nginx配置的一个报错connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory)

    针对配置php的情况: linux服务器一般提示这个 connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory) ...

  2. pip换源源

    介绍 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里:https:/ ...

  3. C# 扩张方法的语法

    using System; namespace ConsoleApp { class Program { static void Main(string[] args) { string str = ...

  4. 吴裕雄--天生自然 PYTHON3开发学习:多线程

    import _thread import time # 为线程定义一个函数 def print_time( threadName, delay): count = 0 while count < ...

  5. 基础服务系列-Jupyter Install TensorFlow

    TensorFlow is a deep learning framework that provides an easy interface to a variety of functionalit ...

  6. tcp和udp的socket形式

    Sockets编程有三种: (1).流套接字(SOCK_STREAM): (2).数据包套接字(SOCK_DGRAM): (3).原始套接字(SOCK_RAW): TCP是流套接字 UCP是数据包套接 ...

  7. Python数据分析与展示第2周学习笔记(北理工 嵩天)

    单元4:Matplotlib库入门 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt # -*- cod ...

  8. Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-关于parfor的问题

    1 我们知道MATLAB支持并行运行一般有四种模式: 第一种模式:本机调用多核CPU性能并行运算 第二种模式:本机调用GPU性能并行运算 第三种模式:多计算机组成集群,调用集群CPU性能并行运算 第四 ...

  9. java 计算一个月有多少天和多少周

    import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> */ public class Test{ public static voi ...

  10. nutzboot 项目打包排除或指定配置文件(夹)

    springboot 是一样的 我这里就是从springboot哪里拿过来的 (nutzboot2.x已测试可以使用) 排除指定文件 在pom 文件 build 标签内添加 resources < ...