【人工智能 | 机器学习 | 理论篇】线性模型

文章目录

  • 1. 基本形式
  • 2. 线性回归
  • 3. 对数几率回归
  • 4. 线性判别分析
  • 5. 多分类学习
  • 6. 类别不平衡问题


1. 基本形式

设有 d 个属性描述的示例
x = ( x 1 , x 2 , x 3 , . . . , x d ) x = ({x_1, x_2, x_3, ..., x_d}) x=(x1,x2,x3,...,xd)
线性模型(linear model):学得通过属性的线性组合进行预测的函数
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b f(x) = w_1x_1 + w_2x_2 + ... + w_dx_d + b f(x)=w1x1+w2x2+...+wdxd+b
向量形式:
f ( x ) = w T x + b f(x) = w^Tx + b f(x)=wTx+b
其中, w = ( w 1 , w 2 , . . . , w d ) w=(w_1, w_2, ..., w_d) w=(w1,w2,...,wd)
学得 w w w b b b 后,模型得以确定

  1. 许多功能强大的 非线性模型(nonlinear model) 可在线性模型基础上引入 层级结构 或 高维映射 而得
  2. w w w 直观表达各属性在预测中的重要性,因此 线性模型有很好的 可解释性(comporehensibility)

对 2,例如:
f 好瓜 ( x ) = 0.2 x 色泽 + 0.5 x 根蒂 + 0.3 x 敲声 + 1 f_{好瓜}(x) = 0.2x_{色泽} + 0.5x_{根蒂} + 0.3x_{敲声} + 1 f好瓜(x)=0.2x色泽+0.5x根蒂+0.3x敲声+1
则:好瓜可由 色泽、根蒂、敲声 判断。根蒂 > 敲声 > 色泽

2. 线性回归

令 数据集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } ;其中: x i = ( x i 1 , x i 2 , . . . , x i d ) , y i ∈ R D = \{(x_1, y_1), (x_2, y_2), ..., (x_m, y_m)\} ;其中:x_i = (x_{i1}, x_{i2}, ..., x_{id}), y_i\in R D={(x1,y1),(x2,y2),...,(xm,ym)};其中:xi=(xi1,xi2,...,xid),yiR
对于离散属性,若属性值之间存在 “序” 的关系,则可将取值通过连续化转为连续值。例如:将高度的高、矮转为{1.0, 0.5, 0.0};
若不存在 “序” 的关系,假定有 k 个属性值,则通常将取值转化为 k 维向量。例如:瓜类的取值 西瓜、南瓜、黄瓜 可转化为 (0,0,1),(0,1,0),(1,0,0)

线性回归试图学得
f ( x i ) = w x i + b , ↦ f ( x i ) ≈ y i f(x_i) = wx_i + b,\mapsto f(x_i) \approx y_i f(xi)=wxi+bf(xi)yi

要确定 w w w b b b,关键在于衡量 f ( x ) f(x) f(x) y y y 之间的差别。通常用 均方误差(Mean Squared Error, MSE) 作为 回归任务 的性能度量,让均方误差最小化,即
在这里插入图片描述
w ∗ , b ∗ w^*,b^* wb 表示 w w w b b b 的解

最小二乘法(Least Squares Method):基于 均方误差 最小化进行模型求解的方法。在线性回归中,试图找到一条直线,使所有样本到直线上的 欧氏距离 之和最小。
欧氏距离(Euclidean distance) d ( x , y ) = Σ j = 1 n ( x j − y j ) 2 d(x, y) = \sqrt{\Sigma ^{n} _{j=1}(x_j-y_j)^2} d(x,y)=Σj=1n(xjyj)2 。(x, y) 表示 n 维坐标中的两个向量

求解 w w w b b b 使
E ( w , b ) = Σ i = 1 m ( y i − w x i − b ) 2 E_{(w, b)} = \Sigma ^m _{i=1}(y_i - wx_i - b)^2 E(w,b)=Σi=1m(yiwxib)2
的过程称为 线性回归模型的最小二乘“参数估计”(parameter estimation)

E E E 表示 误差平方和(Sum of Squared Errors, SSE),即:每一组数据与真实数据之间差的平方和

对上式求偏导,得
在这里插入图片描述
令以上两个偏导数为 0,得到 w w w b b b 的闭式解
在这里插入图片描述
上面式子是基于单个属性求得的 一元线性回归模型,针对 一元数据集 的误差平方和。通常样本由多个属性描述(涉及多个自变量)即 多元线性回归模型,此时我们要学得的是(向量形式):
f ( x i ) = w T x i + b , ↦ f ( x i ) ≈ y i f(x_i) = w^Tx_i + b, \mapsto f(x_i) \approx y_i f(xi)=wTxi+b,f(xi)yi

多元线性模型的误差平方和可由一元的得出为:
E ( w , b ) = Σ i = 1 m ( y i − ( Σ j = 1 n w j x i j + b ) ) 2 E_{(w,b)} = \Sigma^m_{i=1}(y_i - (\Sigma^n_{j=1}w_jx_{ij}+b))^2 E(w,b)=Σi=1m(yi(Σj=1nwjxij+b))2

用最小二乘法对 w w w b b b 进行估计:
首先把 w w w b b b 写成向量形式
w ^ = ( w , b ) \hat w = (w, b) w^=(w,b)

此处的 w w w 也是一个向量,有 d 个属性,d 表示数据集的属性描述个数,即 每个样本 d 个属性值对应的系数

把数据集(m 个样本,每个样本由 d 个属性描述)表示为 m ∗ ( d + 1 ) m * (d+1) m(d+1) 大小的矩阵 X X X。显然由公式可知最后一个元素恒为 1
即:
在这里插入图片描述
此时,模型公式由向量形式表示为:
f ( x ^ ) = X w ^ f(\hat x) = X\hat w f(x^)=Xw^
类比一元线性模型,我们要求解使误差平方和最小,可得
在这里插入图片描述
在这里插入图片描述

令偏层数为0求出 w w w b b b,但多元求解比一元求解复杂。

在这里插入图片描述
此处假设 X T X X^TX XTX是可逆的,是为了让回归系数 w ^ \hat w w^可以被惟一确定。实际应用中当发现 X T X X^TX XTX 不可逆时,需要用其他方法处理(例如特征值分解、岭回归、主成分回归等)
在这里插入图片描述
在这里插入图片描述

线性模型让预测值逼近真实值 y。但示例对应的预测值不一定是线性尺度上的变化。比如可能是对数尺度上的变化,即
l n y = w T + b y = e w T x + b ln\ y = w^T + b \newline y = e^{w^Tx}+b ln y=wT+by=ewTx+b
在这里插入图片描述
第一个式子 ln y 形式上是线性的,但实质上已经是输入空间到输出空间的非线性函数映射。大胆一点,考虑单调可微函数 g g g,可以得到 广义线性模型(generalized linear model)
g ( y ) = w T x + b y = g − 1 ( w T x + b ) g(y) = w^Tx + b \newline y = g^{-1}(w^Tx+b) g(y)=wTx+by=g1(wTx+b)
对数线性回归是广义线性模型在 g = l n g = ln g=ln 时的特例

3. 对数几率回归

上述分类得到的结果是一个数值,将结果与分类联系起来,可以找一个单调可微的函数 g g g

在这里插入图片描述

通常用 对数几率函数(logistic function) 当作 g g g
在这里插入图片描述
这里的 z 和 y 都是预测值。z 表示线性模型的 w T x + b w^Tx + b wTx+b,y 表示广义线性模型的预测值 y。
代入可得
在这里插入图片描述
该式也可以写为
在这里插入图片描述
在这里插入图片描述
对数几率回归:用 线性回归模型的预测结果逼近 真实标记的对数几率

比如求得某样例的 y 为0.8,而 1 表示正例,0表示反倒,那 样例为正的概率为 0.8,为反例概率为 1 - y = 1 - 0.8 = 0.2

我们要求解上式的 w w w b b b,将上式可写为
在这里插入图片描述
在这里插入图片描述
p ( y = 0 ∣ x ) 为 1 − y p(y=0|x) 为 1 - y p(y=0∣x)1y

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 线性判别分析

线性判别分析(Linear Discriminant Analysis,LDA):给定训练样例集,高潮将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别
在这里插入图片描述
在这里插入图片描述

以下是求解 w w w 的一些计算过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结论:
在这里插入图片描述
将 LDA 推广到多分类任务:
在这里插入图片描述
在这里插入图片描述

5. 多分类学习

多分类学习的基本思路:拆解为若干个二分类任务,对每个二分类任务训练一个分类器,将所有预测结果集成,获得多分类结果
拆分策略:一对一(OvO),一对其余(OvR),多对多(MvM)

OvO
在这里插入图片描述OvR
在这里插入图片描述
在这里插入图片描述
OvO 与 OvR 示意图
在这里插入图片描述
OvO 与 OvR 成本对比
在这里插入图片描述
MvM
在这里插入图片描述
在这里插入图片描述

将测试示例用 4 个分类器预测,对于 分类器 f1,f1训练时将 C2 作为正例,测试示例在 f1 下被判定为反例,依次进行 5 个分类器判定


海明距离:计算正例集合与反例集合类别的中心样本与测试样例的海明距离。会计算出两个值,选最小的一个作为类别判定

假设有两个二进制字符串:
样本1: 11001
样本2: 10110
有 4 个值不同,所以海明距离 = 4

叫纠错输出码,是因为分类器有一定的容错纠正能力
在这里插入图片描述
在这里插入图片描述

6. 类别不平衡问题

正反例样本数目判别过大时,会对训练结果产生很大影响。例如正例999个,反例1个,只需要永远返回正例,精度就能达到 99.9%。但这没有意义

OvR、MvM 策略可能出现类别不平衡现象
正反例相同时,判定依据可为:
y 1 − y > 1 \frac{y}{1-y} > 1 1yy>1
正反例不同,正例判定:
y 1 − y > m + m − \frac{y}{1-y} > \frac{m^+}{m^-} 1yy>mm+
所以,决策时,可以:
在这里插入图片描述
称为 阈值移动
欠采样:主动移除多的一部分正例或反例
过采样:主动增加少的那方数量

在这里插入图片描述

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

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

相关文章

每天一个设计模式之命令模式(第二天)

交互模式中的命令模式,在开始记录之前,要讲些自己的感受,真真切切的感受到了悟性的瓶颈!一共十页书,需要自己细细琢磨品味,至少三四遍才大概了解了他们间的逻辑,我需要调整下自己的学习思路&…

使用 Vue 2.x + Element UI 搭建后台管理系统详解

引言 Vue.js 是一个非常流行的前端框架,而 Element UI 是基于 Vue 2.x 的一套完整的 UI 组件库,非常适合用来构建企业级的后台管理系统。本文将详细介绍如何使用 Vue 2.x 和 Element UI 来搭建一个后台管理系统,包括项目初始化、路由配置、状…

高级java每日一道面试题-2024年7月29日-并发篇-什么时候用乐观锁,什么时候用悲观锁?

面试官: 什么时候用乐观锁,什么时候用悲观锁? 我回答: 乐观锁和悲观锁是两种常用的并发控制策略,它们在多线程环境下用于保护共享资源免受并发修改的问题。下面我们将详细讨论这两种锁的使用场景和优缺点,以便你在实际开发中能够根据具体情况做出合适…

快速写一个Makefile

本文主要展示Makefile的基本要素和示例&#xff0c;让读者可以快速写出一个实用的Makefile。 简要说明 Makefile&#xff0c;GNU make命令工具。 书写格式 <target> : <prerequisites> [tab] <commands> <target> 文件名或某操作的名字&#xff0…

uniapp开发精选短视频视频小程序实战笔记20240725,实现顶部轮播图和热门短剧

创建项目 创建项目,叫video_app。 在pages.json里面修改一下标题: 新建search搜索页面和me我的页面。 此时界面预览效果如下: 引入静态资源 主要是static里面的内容,全部复制过来。 配置底部导航栏 pages.json,放到顶层,和全部样式同级: "tabBar&quo…

详细分析 Sql Server查询卡顿的排查方向

目录 前言1. 问题所示2. 原理分析2.1 缺乏索引2.2 表碎片2.3 查询计划缓存2.4 锁和阻塞 3. 总结 前言 本篇为理论知识的分析以及对症下药&#xff0c;前阵子发生过Bug&#xff0c;后通过迁移服务器以及数据库最终才解决问题&#xff0c;但是细想当时可能是因为碎片或者缓存的概…

WEBKIT 通过JavaScript 调用本地,硬件未来之窗OS硬件APP

以酒店为例我们需要调用shen份证读取&#xff0c;采集人脸&#xff0c;门锁写房卡&#xff0c;如何通过浏览器调用 1.通过本地http服务 2.通过webkit模式 这里说政务单位模式的集成 由于篇幅问题&#xff0c;怎么集成webkit就不说了 一、webkkit加载交互本地代码 browser.…

百日筑基第三十四天-JAVA中的强/软/弱/虚引用

百日筑基第三十四天-JAVA中的强/软/弱/虚引用 Java对象的引用被划分为4种级别&#xff0c;分别为强引用、软引用、弱引用以及虚引用。帮助程序更加灵活地控制对象的生命周期和JVM进行垃圾回收。 强引用 强引用是最普遍的引用&#xff0c;一般把一个对象赋给一个引用变量&…

23、Python之面向对象:实例属性、类属性,傻傻分不清楚

引言 在上一篇文章中&#xff0c;我们初步介绍了Python面向对象中类定义的语法&#xff0c;顺带介绍了关于面向对象的系统工程中&#xff0c;所涉及的OOA与OOD。 其实&#xff0c;简单来说&#xff0c;类的定义其实就是面向对象的“封装”特性的体现。我们将分析、设计得到的…

BLE自适应跳频算法详解

前言 &#xff08;1&#xff09;自适应跳频算法是相当的简单&#xff0c;小学生都能够看懂&#xff0c;而且网上已经有相当多的关于自适应跳频算法的介绍。既然如此&#xff0c;为什么我还要写这样一篇博客呢&#xff1f; &#xff08;2&#xff09;原因很简单&#xff0c;我发…

内网横向——利用WMI进行内网横向

文章目录 一、WMI介绍二、常规利用方法三、常见利用工具3.1 wmiexec3.2 Invoke-WmiCommand 四、WMI事件订阅的利用4.1 手动实现4.2 Sharp-WMIEvent 网络拓扑&#xff1a; 攻击机kali IP&#xff1a;192.168.111.0 跳板机win7 IP&#xff1a;192.168.111.128&#xff0c;192.168…

业务记录:处理动态表头的CSV/EXCEL文件

业务描述&#xff1a;传入一个动态表头的CSV文件&#xff0c;解析CSV&#xff0c;并保存入库。 CSV文件的表头是不确定的&#xff0c;即顺序和字段个数不确定&#xff0c;以及表头是中文字段。 例如&#xff1a; 为了顺利解析CSV文件&#xff0c;前端需要传入对应的字段名和顺…

.NET Core 命令大全

目录 1. 基本命令 2. 项目管理命令 3. 测试和调试命令 4. 包管理命令 5. 工具和扩展命令 结语 .NET Core 是一个跨平台、开源的开发平台&#xff0c;用于构建各种应用程序。为了方便开发者进行操作&#xff0c;.NET Core 提供了一系列的命令行工具。这篇文章将详细介绍这…

如何将anaconda的根环境复制到新环境

anaconda将根环境复制到新环境 在Anaconda中&#xff0c;您可以使用conda create命令来复制根环境到一个新的环境。以下是一个命令示例&#xff1a; conda create --name new_env --clone root 这里new_env是新环境的名字&#xff0c;您可以根据需要将其更改为您想要的名字。…

前端数据处理

数据处理 多字段&#xff08;数字类型&#xff09;排序 let arr [{name: jim, math: 85, english: 66, chinese: 36},{name: tom, math: 78, english: 70, chinese: 87},{name: lilei, math: 78, english: 89, chinese: 36},{name: alice, math: 90, english: 20, chinese: …

docker安装mysql遇到的问题

1、3306端口被占用 Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already https://blog.csdn.net/qq_42680327/article/details/136851627 2、mysql已经被占用 docker: Error response from daemon: Conflict. The container name “/mysql“ is…

使用SpringBoot集成Shardingjdbc介绍、应用场景和示例代码

概述 Spring Boot集成Sharding JDBC可以帮助实现MySQL数据库的分库分表操作&#xff0c;使得应用能够轻松处理大规模数据和高并发场景。Sharding JDBC通过透明的分库分表策略&#xff0c;将数据分布到多个数据库实例和数据表中&#xff0c;从而提高数据库的扩展性和性能。 应…

axure制作切换栏--动态面板的应用

先看下效果&#xff1a;点击上面的切换栏 切换到西游记栏目&#xff1a; 切换到水浒传栏目&#xff1a; 上述两个图片比对可以发现&#xff0c;在点击切换栏的时候&#xff0c;里面的内容以及切换栏的下面蓝色横线也会发生对应的变化。这里涉及到两个地方的变化&#xff0c;就…

Golang 知识结构图

总结Go的入门知识结构&#xff0c;如下图所示&#xff1a;

关于map的内存和时间复杂度内存占用

关于map的内存和时间复杂度&#xff08;map尽量别碰暴力遍历&#xff09; 内存占用&#xff1a; map中每个元素包含一个键和一个值。键和值的类型可以是任意可比较的数据类型。 内存占用取决于键和值的大小以及map中元素的数量。 对于固定大小的键和值类型&#xff0c;map的内…