Sklearn机器学习第十五天|机器学习算法原理

ops/2025/1/24 16:53:47/

第3章 机器学习算法原理

3.1 感知机算法

感知机算法:找到一条直线把二分类问题分开
在这里插入图片描述

3.1.1 决策函数

在这里插入图片描述

3.1.1.1 sign函数

在这里插入图片描述

3.1.2 损失函数

在这里插入图片描述

3.1.3 目标函数

在这里插入图片描述

3.1.4 目标函数优化算法

在这里插入图片描述

3.2 线性回归

在这里插入图片描述

3.2.1 决策函数

在这里插入图片描述

3.2.2 目标函数

在这里插入图片描述

3.2.3 目标函数优化问题

在这里插入图片描述

3.2 逻辑回归简介

逻辑回归是解决分类问题!
在这里插入图片描述

3.2.1 sigmoid函数

在这里插入图片描述

3.3.2 决策函数

把分类问题变成概率问题
在这里插入图片描述

3.3.3 损失函数

在这里插入图片描述

3.3.4 目标函数

在这里插入图片描述

3.3.5 目标函数优化问题

概率越大越好,所以用梯度上升法。
在这里插入图片描述

3.4 朴素贝叶斯法简介

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

3.4.1 贝叶斯公式

在这里插入图片描述

3.4.2 朴素贝叶斯法

在这里插入图片描述

3.5 K近邻算法简介

在这里插入图片描述

3.5.1 距离度量工具

在这里插入图片描述

3.6 决策树简介

在这里插入图片描述

3.7 支持向量机简介

在这里插入图片描述

3.7.1 目标函数优化问题

在这里插入图片描述

3.8 K均值聚类算法简介

一般作为中间算法,处理数据
在这里插入图片描述

3.9 集成学习简介

在这里插入图片描述

3.9.1 个人学习器

上一节我们讲到,构造强学习器的所有个体学习器中,个体学习器可以是相同类型的也可以是不同类型的,对于相同类型的个体学习器,这样的集成是同质(homoganeous)的,例如决策树集成中全是决策树,神经网络集成中全是神经网络;对于不同类型的个体学习器,这样的集成是异质(hetergenous)的,例如某个集成中既含有决策树,又含有神经网络。

目前最流行的是同质集成,在同质集成中,使用最多的模型是CART决策树和神经网络,并且个体学习器在同质集成中也被称为弱学习器(weak learner)。按照同质弱学习器之间是否存在依赖关系可以将同质集成分类两类:第一个是弱学习器之间存在强依赖关系,一系列弱学习器基本都需要串行生成,代表算法是Boosting系列算法;第二个是弱学习器之间没有较强的依赖关系,一系列弱学习器可以并行生成,代表算法是Bagging和随机森林(random forest)系列算法

3.9.2 Boosting系列算法

Boosting是一种可将弱学习器提升为强学习器的算法。它的工作机制为:先从初始训练集中训练出一个弱学习器,再根据弱学习器的表现对训练样本分布进行调整,使得先前弱学习器训练错误的样本权重变高,即让错误样本在之后的弱学习器中受到更多关注,然后基于调整后的样本分布来训练下一个弱学习器。

不断重复上述过程,直到弱学习器数达到事先指定的数目T,最终通过集合策略整合这T个弱学习器,得到最终的强学习器。

Boosting系列算法中最著名的算法有AdaBoost算法和提升树(boosting tree)系列算法,提升树系列算法中应用最广泛的是梯度提升树(gradient boosting tree)。

Boosting由于每一个弱学习器都基于上一个弱学习器,因此它的偏差较小,即模型拟合能力较强,但是模型泛化能力会稍差,即方差偏大,而Boosating则是需要选择一个能减小方差的学习器,一般选择较简单模型,如选择深度很浅的决策树。

3.9.3 Bagging系列算法

Boosting的弱学习器之间是有依赖关系的,而Bagging的弱学习器之间是没有依赖关系的,因此它的弱学习器是并行生成。

Bagging的弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们可以通过自主采样法(bootstrap sampling)得到T个采样集,然后对于这T个采样集独立的训练出T个弱学习器,之后我们通过某种结合策略将这T个弱学习器构造成一个强学习器。

Bagging系列算法中最著名的算法有随机森林,但是随机森林可以说是一个进阶版的Bagging算法,虽然随机森林的弱学习器都是决策树,但是随机森林在Baggin的样本随机采样的基础上,又进行了特征的随机选择。

Bagging由于通过随机采样获得数据,因此它的方差较小,即模型泛化能力较强,但是模型拟合能力较弱,即偏差偏大,而Bagging则是需要选择一个能减小偏差的学习器,一般选择较复杂模型,如选择深度很深的决策树或不剪枝的决策树。

3.10 降维算法简介

3.10.1 维数灾难和降维

对于高维数据,会出现数据样本稀疏、距离计算困难等问题。尤其是在KNN算法中这种问题会被放大,而其他的机器学习算法也会因为高维数据对训练模型造成极大的障碍,这种问题一般被称为维数灾难(curse of dimensionality)。

解决维数灾难最常用的方法是降维(dimension reduction),即通过某种数学变换将原始高维特征空间转变为一个低维子空间,在这个子空间中样本密度大幅提高,距离计算也变得更容易。
在这里插入图片描述
如上图所示,绿点即原始高维空间中的样本点,红点即我们降维后的样本点。由于图中的高维是二维,低维是一维,所以样本在低维空间是一条直线。
接下来我们的目标就是聊一聊如何做到把高维空间样本点映射到低维空间,即各种降维算法

3.10.2 主成分分析

主成分分析(principal component analvsis,PCA)是最常用的一种降维方法,我们已经利用“维数灾难和降维图例”解释了降维的过程,PCA的降维过程则是尽可能的使用数据最主要的特征来代表数据原有的所有特征。但是为什么使用PCA降维是上图的红点组成的线而不是蓝线呢?这里就需要说到我们PCA的两个条件了。

对于“维数灾难和降维图例"中的红线和蓝线我们可以把它看成一个超平面S,理论上红线和蓝线构成的超平面都可以做到对样本特征的降维,但是一般我们希望这种能够做到降维的超平面满足以下两个条件

  1. 最近重构性:样本点到这个超平面的距离都足够近
  2. 最大可分性:样本点到这个超平面上的投影尽可能分开
    基于最近重构性和最大可分性,就可以得到主成分分析的两种等价推导,也可以得出为什么红线是更合理的超平面,

第三部分小结

本章主要是带大家对传统机器学习算法有一个大概的了解,由于神经网络可以理解成多个感知机组成的算法,此处不多介绍。后期进阶课程将会涉及神经网络以及深度学习。


http://www.ppmy.cn/ops/152787.html

相关文章

【C++图论 并集查找】2492. 两个城市间路径的最小分数|1679

本文涉及知识点 C图论 并集查找(并查集) LeetCode2492. 两个城市间路径的最小分数 给你一个正整数 n ,表示总共有 n 个城市,城市从 1 到 n 编号。给你一个二维数组 roads ,其中 roads[i] [ai, bi, distancei] 表示城市 ai 和 …

C++|开源日志库log4cpp和glog

文章目录 log4cpp 和 glog对比1. **功能对比**2. **易用性和配置**3. **性能**4. **线程安全**5. **日志输出**6. **功能扩展**7. **适用场景**8. **总结** 其它开源C日志库1. **spdlog**2. **easylogging**3. **Boost.Log**4. **loguru**5. **Poco Logging**6. **Qt Logging (…

蓝桥杯例题一

不管遇到多大的困难,我们都要坚持下去。每一次挫折都是我们成长的机会,每一次失败都是我们前进的动力。路漫漫其修远兮,吾将上下而求索。只有不断努力奋斗,才能追逐到自己的梦想。不要害怕失败,害怕的是不敢去尝试。只…

一文夯实垃圾收集的理论基础

如何判断一个引用是否存活 引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对象就是不可能再被使用的。 优点:可即刻回收垃圾&a…

【YOLOv11改进[Backbone]】使用LSKNet替换Backbone | 用于遥感目标检测的大型选择性核网络 | 2023

本文将进行在YOLOv11中使用LSKNet替换Backbone魔改v11的实践,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 目录 一 LSKNet 二 魔改v11 1 整体修改 ① 添加python文件 ② 修改ultralytics/nn/tasks.py文件 2 配置文件

Alibaba Spring Cloud 四 Seata 的核心组件:TC

Seata 的 Transaction Coordinator (TC) 是分布式事务架构中的核心组件之一,它负责管理全局事务的生命周期,包括事务的创建、状态维护以及协调各分支事务的提交和回滚。以下是有关 TC 的详细解析及其配置和使用方法: 1. TC 的核心功能 全局事…

【Matlab高端绘图SCI绘图模板】第003期 绘制面积填充图

1.面积图简介 面积图和折线图一样,面积图也用于强调数量随时间而变化的程度,也可用于引起人们对总趋势的注意。他们最常用于表现趋势和关系,而不是传达特定的值。 所有的数据都从相同的零轴开始。每一个数据集的起点不同,都是基…

8.5 Whisper:解锁语音识别新高度的智能助手

Whisper:解锁语音识别新高度的智能助手 引言:从语音到文字的技术飞跃 在当今的人工智能技术中,语音识别 已成为人机交互的重要环节。从语音助手到实时字幕生成,语音识别技术正在改变我们的沟通方式。OpenAI Whisper 是一款功能强大的开源语音识别模型,它结合了高精度、语…