吴恩达机器学习全课程笔记第二篇

目录

前言

P31-P33

logistics (逻辑)回归

决策边界

P34-P36

逻辑回归的代价函数

梯度下降的实现

P37-P41

过拟合问题

正则化代价函数

正则化线性回归

正则化logistics回归

前言

这是吴恩达机器学习笔记的第二篇,第一篇笔记请见:

吴恩达机器学习全课程笔记第一篇

完整的课程链接如下:

吴恩达机器学习教程(bilibili)

推荐网站:

scikit-learn中文社区

吴恩达机器学习学习资料(github)

P31-P33

logistics (逻辑)回归

二进制分类问题

分类问题不适合使用线性回归算法,如下图所示,如果只有下面的四个良性和上面的四个恶性样本,那么画出的曲线可能是蓝色那条,此时可以设置一个阈值0.5,如果算出的值小于0.5,那么预测为良性,否则就为恶性

但是当右侧多了一个恶性样本之后,曲线可能就会变为绿色那条,此时选择0.5阈值就会导致大量的数据分类错误

对于这种二进制分类问题,常用的是logistics回归,需要注意的是,虽然名称为“回归”,但这个算法是用于分类的

S型函数(英语:sigmoid function,或称乙状函数)是一种函数,因其函数图像形状像字母S得名。其形状曲线至少有2个焦点,也叫“二焦点曲线函数”。S型函数是有界、可微的实函数,在实数范围内均有取值,且导数恒为非负[1],有且只有一个拐点。S型函数和S型曲线指的是同一事物

如上图所示,把sigmoid函数和原来的线性回归式子结合,使得最终结果永远落在0-1上,这样的话,最终预测的结果就可以被解释为被分类为1的概率

决策边界

二进制分类毕竟只有两种结果的可能性,要么是0,要么是1,即使logistics回归给出了为1的概率,也需要去设置一个阈值去决定最终的输出结果

决策边界的可视化表示:

再看一种更复杂的情况,如果决策边界不是一条直线,可以使用之前学过的多项式回归去设置z的表达式,此时再令z值为0,得到决策边界如下:

P34-P36

逻辑回归的代价函数

对于平方误差成本函数,如果使用在线性回归上面,得到的曲线就是一个凸函数(convex),然而当使用在logistics回归上面,得到的就不是一个凸函数,此时运行梯度下降,就可能会陷入很多局部最小值

此时我们需要再找到一个新的代价函数,使得最后得到的结果是一个凸函数,如下图所示

如果真实的标签为1,那么图像如下,此时当预测值接近1,loss接近0,反之预测值接近0,loss接近无穷

当真实标签为0时,同理

证明最后的代价函数时凸函数超出了本课程的范围

由于y的值只能是1或者0,所以可以把上面的loss function进行简化:

这个并不是完整的代价函数,我们对其进行进一步处理,最终得到:

 

梯度下降的实现

我们需要找到合适的w,b对logistics回归模型参数的拟合,我们依然使用梯度下降实现这一点

代入之后得到如下结果,可以发现似乎更新的算法和线性回归是相同的,但实际上f的定义发生了变化,最后,和线性回归一样,我们可以对logistics的梯度下降进行学习率的检测、向量化的实现以及进行特征缩放的处理

P37-P41

过拟合问题

在统计学中,过拟合(英语:overfitting,或称拟合过度)是指过于紧密或精确地匹配特定数据集,以致于无法良好地拟合其他数据或预测未来的观察结果的现象

回归过拟合的例子

分类过拟合的例子

解决过拟合的第一个方法是去收集更多的数据

第二个方法是取选择合适的特征,而不是选择过多的特征,特别是当数据量不够时

当然这种方法的缺点就包括了可能会丢失一些对于预测数据很有用的信息

最后一种方法是正则化,这种方法可以减小一些参数的大小,这些参数对应的特征一般对整体影响较大,比如下面的右图,x的幂越高,就让其对应的参数变小

正则化代价函数

正则化的想法是,让参数有更小的值,使其不容易发生过拟合,但很多时候我们不知道应该减小哪些特征对应的参数,这时候就可以对所有的参数进行处理

一般只需要正则化参数\omega而无需对b进行处理

对于正则化参数\lambda的选择,一个极端是设置其值为0,此时就失去了意义,另一个极端是选择其值极大,此时,由于需要保证成本函数去最低值,就需要保证\omega的所有值都非常接近0

如上图所示,如果λ取0,就会发生过拟合,但若λ取很大,会使最后的曲线接近f(x)=b

正则化线性回归

实现正则化线性回归的梯度下降:

通过上图,可以发现正则化前后的梯度下降每一步的变化

正则化logistics回归

如果使用多项式回归代入sigmoid函数可能会形成蓝色这条过拟合曲线,所以使用正则化去减小ω的值,从而让曲线变成紫色这条合适的曲线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day32打卡

day32打卡 122. 买卖股票的最佳时机 II 解法,贪心:局部,收集每天的正利润-》整体,获取最大利润 从第0天到第3天,利润为:price[3] - price[0],也可以是(price[3] - price[2]) (price[2] - pr…

160基于matlab的负熵和峭度信号的盲分离

基于matlab的负熵和峭度信号的盲分离。基于峭度的FastICA算法的收敛速度要快,迭代次数比基于负熵的FastICA算法少四倍以上。SMSE随信噪比增大两种判据下的FastICA算法都逐渐变小,但是基于峭度的算法的SMSE更小,因此基于峭度的FastICA算法性能…

论文精读--对比学习论文综述

InstDisc 提出了个体判别任务,而且利用这个代理任务与NCE Loss去做对比学习从而得到了不错的无监督表征学习的结果;同时提出了别的数据结构——Memory Bank来存储大量负样本;解决如何对特征进行动量式的更新 翻译: 有监督学习的…

C++并发编程 -3.同步并发操作

本文介绍如何使用条件变量控制并发的同步操作、C 并发三剑客,函数式编程 一.条件变量 1.概念 C条件变量(condition variable)是一种多线程编程中常用的同步机制,用于线程间的通信和协调。它允许一个或多个线程等待某个条件的发生…

爬虫之正则表达式

个人主页:Lei宝啊 愿所有美好如期而遇 概念: 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),正则匹配是一个模糊的匹配(不是精确匹配) 如下四个方法经常使用: match()search()f…

基于Java+SpringBoot+vue+elementui 实现即时通讯管理系统

目录 系统简介效果图源码结构试用地址源码下载地址技术交流 博主介绍: 计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,同时也熟练掌握mysql、oracle、sqlserver等主流数据库,能够为大家提供…

Django学习笔记教程全解析:初步学习Django模型,初识API,以及Django的后台管理系统(Django全解析,保姆级教程)

把时间用在思考上是最能节省时间的事情。——[美]卡曾斯 导言 写在前面 本文部分内容引用的是Django官方文档,对官方文档进行了解读和理解,对官方文档的部分注释内容进行了翻译,以方便大家的阅读和理解。 概述 在上一篇文章里&#xff0…

huggingface入门玩耍LLM Starter

huggingface入门玩耍LLM Starter huggingface-cli 下载model 下载 本人macos系统,以下可参考 huggingface-cli 下载 brew install huggingface-climodel 下载 以 chatglm-6b 为例 huggingface-cli download --token hf_*** --resume-download THUDM/chatglm-6b-i…

Typora+PicGO+腾讯云COS做图床

文章目录 Typora+PicGO+腾讯云COS做图床一、为什么使用图床二、Typora、PicGO和腾讯云COS介绍三、下载Typora和PicGOTyporaPicGO 四、配置Typora、PicGO和腾讯云COS腾讯云COS配置PicGO配置Typora配置 Typora+PicGO+腾讯云COS做图床…

数据库设计、JDBC、数据库连接池

数据库设计 数据库设计概念 数据库设计就是根据业务 系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。建立数据库中的表结构以及表与表之间的关联关系的过程。有哪些表?表里有哪些字段?表和表之间有什么关系? 数据库设计的步骤…

【C++学习手札】多态:掌握面向对象编程的动态绑定与继承机制(深入)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:世界上的另一个我 1:02━━━━━━️💟──────── 3:58 🔄 ◀️ ⏸ ▶️ ☰ &am…

Java+Swing+Txt实现通讯录管理系统

目录 一、系统介绍 1.开发环境 2.技术选型 3.功能模块 4.系统功能 1.系统登录 2.查看联系人 3.新增联系人 4.修改联系人 5.删除联系人 5.工程结构 二、系统展示 1.登录页面 2.主页面 3.查看联系人 4.新增联系人 5.修改联系人 三、部分代码 Login FileUtils …

2.18 day5/6 作业

作业: 以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园…

Kotlin基本语法 3 类

1.定义类 package classStudyclass Player {var name:String "jack"get() field.capitalize()set(value) {field value.trim()} }fun main() {val player Player()println(player.name)player.name " asdas "println(player.name)} 2.计算属性与防范…

Java 学习和实践笔记(12)

这个就比较有意思了&#xff01;所有的事情&#xff0c;拆分完之后&#xff0c;都有且只有这三种状态流程&#xff01; //TIP To <b>Run</b> code, press <shortcut actionId"Run"/> or // click the <icon src"AllIcons.Actions.Execute&…

正大国际期货:日内交易

日内交易是一种交易模式&#xff0c;英文名字是daytrade,主要是指持仓时间短&#xff0c;不留过夜持仓的交易方式。日内交易捕捉入市后能够马上脱离入市成本的交易机会&#xff0c;入市之后如果不能马上获利&#xff0c;就准备迅速离场

程序员可以做一辈子吗?大龄程序员出路在哪?

前言 随着2023年AI的出现&#xff0c;大家对待程序员工作有了一丝丝危机感&#xff0c;特别是今年整个IT行业进入了前所未有的寒冬期&#xff0c;让程序员不得不思考未来的职业发展。 甚至很多程序员一想到自己接近35岁&#xff0c;焦虑感油然而生&#xff0c;这也是大部分程…

基于YOLOv7算法的高精度实时雾天车辆行人目标检测系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时雾天车辆行人目标检测系统可用于日常生活中检测与定位bicycle、bus、car、motorbike和person&#xff0c;此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别&#xff0c;同时本系统还支持检测结果可视化与导出。…

数据采集新纪元:Linux边缘计算技术在智慧工厂的应用解析

在当今全球智能制造的大潮下&#xff0c;Linux边缘计算网关正扮演着愈发重要的角色。它位于数据产生源头与云计算中心之间&#xff0c;为智慧工厂提供了关键的实时决策能力和高效的预测性维护解决方案。 以一家领先汽车零部件生产商为例&#xff0c;其高度自动化的生产线上的每…

C/C++数据结构——剖析排序算法

1. 排序的概念及其运用 1.1 排序的概念 https://en.wikipedia.org/wiki/Insertion_sorthttps://en.wikipedia.org/wiki/Insertion_sort 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的…