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

目录

前言

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.mfbz.cn/a/393920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HQChart实战教程69-分时图主图如何设置指标

HQChart实战教程69-分时图主图如何设置指标 效果图插件地址uniapp插件地址HQChart插件源码地址实现步骤1. 分时图主图指标2. 主图指标标题3. 切换指标示例源码效果图 在主图窗口,显示指标,并显示指标标题。效果入下图 H5,小程序, uniapp 都支持。插件最新版本才支持此功能。…

线程安全性的原理分析学习

初步认识Volatile 一段代码引发的思考 下面这段代码,演示了一个使用volatile以及没使用volatile这个关键字,对于变量更新的影响 package com.sp.demo;/*** author : lssffy* Description :* date : 2024/2/16 18:42*/ public class VolatileDemo {publi…

Linux第52步_移植ST公司的linux内核第4步_关闭内核模块验证和log信息时间戳_编译_并通过tftp下载测试

1、采用程序配置关闭“内核模块验证” 默认配置文件“stm32mp1_atk_defconfig”路径为“arch/arm/configs”; 使用VSCode打开默认配置文件“stm32mp1_atk_defconfg”,然后将下面的4条语句屏蔽掉,如下: CONFIG_MODULE_SIGy CONFIG_MODULE_…

2024/2/18:IO进程线程

作业1&#xff1a;使用fgets统计给定文件的行数 代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) {//定义FILE *类型的句柄FILE *fpNULL;//判断是否进行了外部传参if(argc ! 2){pri…

Javaweb之SpringBootWeb案例之AOP通知顺序的详细解析

3.2 通知顺序 讲解完了Spring中AOP所支持的5种通知类型之后&#xff0c;接下来我们再来研究通知的执行顺序。 当在项目开发当中&#xff0c;我们定义了多个切面类&#xff0c;而多个切面类中多个切入点都匹配到了同一个目标方法。此时当目标方法在运行的时候&#xff0c;这多…

防御第五次作业

拓扑图及要求 1 创建安全区域 创建nat策略 测试 2 创建目标nat 测试 3 配置双向nat 配置IP 测试 查看会话表 4 FW1 FW3 结果 5 办公区限流 销售部限流 6 7

【每天学习一点点 day04】工程化 npm create 脚手架 create-vue, vue-cli 执行原理① - npm cli

希望我们每个人都能找到属于自己的花期&#xff0c;不急不躁&#xff0c;静等风来。 今天打算用 Docusaurus 开始搭建自己的知识库&#xff0c;之前早已有此想法&#xff0c;遗憾的是没有坚持下来。 这次借助这个机会&#xff0c;也计划将自己【每天学习一点点】系列整理在自己…

Windows编程环境配置!

喜欢的话麻烦大家多点点关注&#xff0c;谢谢&#xff01; 原文地址&#xff1a;Windows编程环境配置&#xff01; - Pleasure的博客 下面是正文内容&#xff1a; 前言 近期闲来无事&#xff0c;就想着把Windows系统中的环境给完善整理一下。方便后续码字时的不时之需。 正文…

keep-alive 的简单使用

vue-router 的嵌套与模块化 router 实例中增加 children 属性&#xff0c;形成层级效果。App.vue 中的 router-view 承载的是 router 实例最外层的路由对象&#xff0c;如 /login、/404 等PageHome.vue 中的 router-view 承载的是 children 中的路由对象&#xff0c;如 /home、…

GIS分析和摄影测量进行屋顶太阳能潜力评估

目前,不可再生的能源资源有限,而减少全球变暖的想法使可再生能源的利用成为当务之急。其中,太阳能作为最清洁、最丰富的可再生能源备受关注。此外,成本的日益降低也使太阳能成为一种极具吸引力的能源。然而,为了从太阳能中获得最大利益,必须考虑各种标准,并选择合适的区…

单片机学习笔记---AD/DA工作原理(含运算放大器的工作原理)

目录 AD/DA介绍 硬件电路模型 硬件电路 运算放大器 DA原理 T型电阻网络DA转换器 PWM型DA转换器 AD原理 逐次逼近型AD转换器 AD/DA性能指标 XPT2046 XPT2046时序 AD/DA介绍 AD&#xff08;Analog to Digital&#xff09;&#xff1a;模拟-数字转换&#xff0c;将模拟…

【maya 入门笔记】基本视图和拓扑

1. 界面布局 先看基本窗口布局&#xff0c;基本窗口情况如下&#xff1a; 就基本窗口布局的情况来看&#xff0c;某种意义上跟blender更像一点&#xff08;与3ds max相比&#xff09;。 那么有朋友就说了&#xff0c;玛格基&#xff0c;那blender最下面的时间轴哪里去了&…

使用 cgroup 时踩过的坑

1 cgroup 介绍 1.1 cgroup 介绍 cgroup 全称 control group&#xff0c;控制组。通过 cgroup 可以限制应用使用的资源&#xff0c;资源包括 cpu、内存、磁盘 io、网络等。 工作中经常使用的 docker 容器就使用了 cgroup 进行资源限制和隔离&#xff0c;cgroup 是 docker 的基…

最长子串和回文子串相关的算法题解

这里写目录标题 一、3. 无重复字符的最长子串二、5. 最长回文子串三、647. 回文子串四、516. 最长回文子序列 一、3. 无重复字符的最长子串 中等 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释:…

代码检测规范和git提交规范

摘要&#xff1a;之前开发的项目&#xff0c;代码检测和提交规范都是已经配置好的&#xff0c;最近自己新建的项目就记录下相关配置过程。 1. ESlint配置 2013年6月创建开源项目&#xff0c;提供一个插件化的JavaScript代码检测工具&#xff0c;创建项目是生成的eslintrc.js文…

Python之:如何使用双重for循环输出九九乘法表?

文章目录 前言源代码 前言 如何用for双重循环输出九九乘法表&#xff1f;教程来咯&#xff01; 源代码 代码如下&#xff1a; for i in range(1, 10):for j in range(1, i1):print(f{j}{i}{i*j}\t, end)print()你学会了吗&#xff1f;效果如下&#xff1a; 想看详解&#…

全志平台R329 智能音响编译烧录方法

全志R329编译烧录方法 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)&#xff1f;可加我微信hezkz17, 本群提供音频技术答疑服务&#xff0c;群赠送语音信号处理降噪算法&#xff0c;蓝牙耳机/音响音频&#xff0c;DSP音频项目核心开发资料, 一烧录 二 编译方法 …

STM32-开发板介绍

市面的开发板有很多&#xff0c;博主有幸了解到一款集成度较高的开发板&#xff0c;朗峰STM32F103RCT6&#xff0c;知名度不高&#xff0c;性价比很高&#xff0c;这是目前唯一一款集成了大量传感器和功能模块的高集成度开发板。 巨大的优势在于&#xff0c;传感器和功能模块的…

2024.2.18

使用fgets统计给定文件的行数 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) {FILE *fpNULL;if((fpfopen("./test.txt","w"))NULL){perror("open err");return -1;}fputc(h,fp);fputc(\n,fp);fput…

浅析Linux设备驱动:IO端口和IO内存

文章目录 概述IO端口和IO内存的区别 IO资源管理IO资源类型IO端口资源IO内存资源 IO资源分配 IO端口访问IO端口操作函数 IO内存访问IO内存操作函数 相关参考 概述 在计算机系统中&#xff0c;外部设备通常会提供一组寄存器或内存用于处理器配置和访问设备功能。这些寄存器或内存…