当前位置: 首页 > news >正文

机器学习笔记(三)

机器学习笔记(三)

文章目录

    • 机器学习笔记(三)
      • 线性模型简介
      • 线性回归
      • 线性几率回归

线性模型简介

线性模型最简单的案例是最小二乘法:

在这里插入图片描述
在机器学习的术语中,当预测值为连续值时,称为“回归问题”,离散值时为“分类问题”。本篇先从线性回归任务开始,接着讨论分类和多分类问题。

线性回归

线性回归问题就是试图学到一个线性模型尽可能准确地预测新样本的输出值,有时这些输入的属性值并不能直接被我们的学习模型所用,需要进行相应的处理,对于连续值的属性,一般都可以被学习器所用,有时会根据具体的情形作相应的预处理。

当输入属性只有一个的时候,就是最简单的情形,也就是我们高中时最熟悉的“最小二乘法”(Euclidean distance),首先计算出每个样本预测值与真实值之间的误差并求和,通过最小化均方误差MSE,使用求偏导等于零的方法计算出拟合直线y=wx+b的两个参数w和b,计算过程如下图所示:

在这里插入图片描述
当输入属性有多个的时候,例如对于一个样本有d个属性{(x1,x2…xd),y},则y=wx+b需要写成:

在这里插入图片描述
通常对于多元问题,常常使用矩阵的形式来表示数据。在本问题中,将具有m个样本的数据集表示成矩阵X,将系数w与b合并成一个列向量,这样每个样本的预测值以及所有样本的均方误差最小化就可以写成下面的形式:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

同样地,我们使用最小二乘法对w和b进行估计,令均方误差的求导等于0,需要注意的是,当一个矩阵的行列式不等于0时,我们才可能对其求逆,因此对于下式,我们需要考虑矩阵(X的转置*X)的行列式是否为0,若不为0,则可以求出其解,若为0,则需要使用其它的方法进行计算,书中提到了引入正则化,此处不进行深入。

在这里插入图片描述
另一方面,有时像上面这种原始的线性回归可能并不能满足需求,例如:y值并不是线性变化,而是在指数尺度上变化。这时我们可以采用线性模型来逼近y的衍生物,例如lny,这时衍生的线性模型如下所示,实际上就是相当于将指数曲线投影在一条直线上,如下图所示:

在这里插入图片描述

更一般地,考虑所有y的衍生物的情形,就得到了“广义的线性模型”(generalized linear model),其中,g(*)称为联系函数(link function)。

在这里插入图片描述

线性几率回归

回归就是通过输入的属性值得到一个预测值,利用上述广义线性模型的特征,是否可以通过一个联系函数,将预测值转化为离散值从而进行分类呢?线性几率回归正是研究这样的问题。对数几率引入了一个对数几率函数(logistic function),将预测值投影到0-1之间,从而将线性回归问题转化为二分类问题。

在这里插入图片描述
注意这是将输入的数值映射到了0或者1上面了,也就是说实际上是将一个回归问题转换为了一个二元的分类问题:

在这里插入图片描述

在这里插入图片描述

若将y看做样本为正例的概率,(1-y)看做样本为反例的概率,则上式实际上使用线性回归模型的预测结果器逼近真实标记的对数几率。因此这个模型称为“对数几率回归”(logistic regression),也有一些书籍称之为“逻辑回归”。下面使用最大似然估计的方法来计算出w和b两个参数的取值,下面只列出求解的思路,不列出具体的计算过程。

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 【Java 面试题】经典 Java 面试题 200 问(下)
  • 瑞吉外卖之 redis优化缓存
  • [JavaWeb]—前端篇
  • 机器学习感知机原理及python代码实现
  • js 对象
  • 图解Redis 记录
  • 网络安全的行业黑话 ——防守篇之软硬件
  • 使用 CubeMX 配置 RCC 时钟
  • CVPR 2022 Oral 大连理工提出的SCI 快速、超强的低光照图像增强方法 可视化代码
  • CVE-2013-4547 Nginx文件名解析漏洞详解
  • 信息收集之 操作系统识别
  • 程序设计——图书管理系统(附源代码)
  • 纯C实现的贪吃蛇(无EaxyX,详解)
  • 布局管理器案例集锦
  • STL 源码阅读笔记-类型萃取(Traits)
  • Debian下无root权限使用Python访问Oracle
  • Docker 笔记(2):Dockerfile
  • If…else
  • java取消线程实例
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Rancher如何对接Ceph-RBD块存储
  • redis学习笔记(三):列表、集合、有序集合
  • Spring Boot快速入门(一):Hello Spring Boot
  • Vim Clutch | 面向脚踏板编程……
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 初识 webpack
  • 从输入URL到页面加载发生了什么
  • 仿天猫超市收藏抛物线动画工具库
  • 今年的LC3大会没了?
  • 前端之React实战:创建跨平台的项目架构
  • 时间复杂度与空间复杂度分析
  • 数组的操作
  • 我的面试准备过程--容器(更新中)
  • 一个SAP顾问在美国的这些年
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (九)信息融合方式简介
  • (九十四)函数和二维数组
  • (十六)一篇文章学会Java的常用API
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (译)2019年前端性能优化清单 — 下篇
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net 7 上传文件踩坑
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net开发引用程序集提示没有强名称的解决办法
  • .Net中的设计模式——Factory Method模式
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .pop ----remove 删除