深度学习入门(六):无监督学习

news2024/9/19 17:56:29

一、K-means算法

K-means算法是一种常用的聚类算法,旨在将数据集划分成 k 个簇,使得每个簇中的数据点尽可能相似,而不同簇之间的数据点差异尽可能大。该算法是基于迭代的方法来寻找最优的簇中心,并通过不断调整簇的划分来最小化簇内的平方误差。

K-means算法步骤

  1. 初始化

    • 选择一个整数 k 作为簇的数量。
    • 随机选择 k 个点作为初始簇中心,或使用其他启发式方法选择初始中心点。
  2. 分配数据点到簇

    • 对于每个数据点,计算它到每个簇中心的距离。
    • 将每个数据点分配到距离它最近的簇。
  3. 更新簇中心:重新计算每个簇的中心点。新的簇中心是该簇中所有数据点的平均值。

  4. 迭代:重复步骤2和3,直到簇中心不再发生变化,或达到预设的迭代次数。

示例

假设我们有如下数据点,并希望将它们分成 k=3 个簇:

数据点x坐标y坐标
112
221
343
454
587

步骤1:初始化

随机选择三个点作为初始簇中心,例如(1,2)、(4,3)和(8,7)。

步骤2:分配数据点到簇

计算每个数据点到三个中心点的距离,并将数据点分配到最近的中心点。例如,点(1,2)最接近(1,2),点(5,4)最接近(4,3),点(8,7)最接近(8,7)。

步骤3:更新簇中心

计算每个簇的新中心点。例如,新的簇中心可能变为(1.5,1.5)、(4.5,3.5)和(8,7)。【簇中所有数据点的平均值:(1,2)和(2,1),(4,3)和(5,4),(8,7)】

步骤4:迭代

重复步骤2和3,直到簇中心不再发生变化。


K-means改进算法

为了克服K-means算法的缺点,研究者提出了多种改进方法,例如:

  • K-means++:改进初始簇中心的选择方法,增加中心点之间的距离,减少陷入局部最优解的可能性。
  • Mini-batch K-means:使用小批量的数据点进行簇中心的更新,提高算法的计算效率,适用于大规模数据集。
  • DBSCAN:一种基于密度的聚类算法,可以发现任意形状的簇,对噪声和异常值有更好的处理能力。

二、PCA(主成分分析)

PCA(Principal Component Analysis)是一种用于降维的统计技术。它的目标是通过减少变量的维度来去除数据中的冗余部分,同时保留尽可能多的原始数据变异信息。这在数据可视化、特征提取、降噪等方面非常有用。

PCA的基本思想

PCA通过找到数据中方差最大的方向,将数据投影到这些方向上,形成新的坐标系,这些方向被称为“主成分”。每个主成分都是原始变量的线性组合,并且各主成分之间是相互正交的(即相互独立)。

  • 第一主成分:反映数据中最大方差的方向,即在这个方向上的数据分布最广。
  • 第二主成分:反映数据中剩余方差最大的方向,并且与第一主成分正交。
  • 第三主成分:反映数据中剩余方差次大的方向,并且与前两个主成分正交。
  • 依此类推...

通过这种方式,PCA可以将高维数据映射到低维空间中,同时尽可能地保留原始数据的主要特征。

PCA的步骤

  1. 数据标准化:首先,将数据进行标准化处理,使得每个变量具有相同的尺度。通常采用均值为0、方差为1的标准化方法。

  2. 计算协方差矩阵:计算标准化数据的协方差矩阵,以衡量变量之间的相关性。

  3. 计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和特征向量。特征值表示主成分所解释的方差,特征向量表示主成分的方向。

  4. 选择主成分:根据特征值的大小,选择前k个最大的特征值对应的特征向量,作为主要的主成分。

  5. 转换数据:将原始数据投影到选定的主成分上,得到降维后的数据。


三、Bagging(Bootstrap Aggregating)

概念: Bagging是一种通过减少模型的方差来提升模型稳定性和准确性的集成学习方法。它的基本思想是通过多次随机采样生成多个数据子集(Bootstrap是有放回采样),并在每个子集上训练一个模型,然后将这些模型的预测结果进行平均(回归问题)或投票(分类问题)来得到最终结果。【随机森林!】

主要步骤

  1. 数据子集生成:从原始训练集通过自助采样(Bootstrap Sampling)生成多个子集。每个子集的大小与原始训练集相同,但可能包含重复的样本。
  2. 模型训练:在每个子集上训练一个模型(如决策树)。这些模型通常是相同的基学习器,但由于训练数据不同,训练出的模型也会有所不同。
  3. 结果整合
    • 对于回归问题,将所有模型的预测结果进行平均。
    • 对于分类问题,通过投票机制确定最终分类结果,选择得票最多的类别作为最终预测结果。

优势

  • 减少模型的方差,从而提高模型的稳定性和泛化能力。
  • 适合用于高方差的基学习器(如决策树)。
  • 对噪声的敏感性弱于Boosting,因为它经过双重随机采样,同时并行训练模型,对噪声不太容易过度捕捉造成过拟合。

缺点

  • 每个模型是独立训练的,或者说,Bagging是并行集成训练的模型,将多个弱分类器转变为唯一强分类器,没有关注到之前模型的错误它允许众多模型“百花齐放”地表达,无论结果是否优秀都不会继续迭代改变,可能对某些难分类的样本效果不佳。

四、Boosting

概念: Boosting是一种通过减少模型的偏差来提升模型性能的集成学习方法。它的基本思想是通过逐步调整样本权重,使后续模型更关注前一轮中错误分类的样本,从而逐步提升整体模型的准确性。

主要步骤

  1. 初始化权重:为每个样本分配相等的初始权重。

  2. 模型训练

    • 训练第一个基学习器,然后根据其分类结果调整样本的权重。错误分类的样本权重增加,正确分类的样本权重减少。
    • 使用调整后的样本权重训练下一个基学习器,使其更关注前一个基学习器错误分类的样本。
    • 重复上述步骤,逐步训练多个基学习器,每个基学习器都在前一个基学习器的基础上进行改进。
  3. 结果整合

    • 每个基学习器在最终预测中都有一定的权重,通常错误率越低的基学习器权重越大。
    • 对于回归问题,通过加权平均得到最终预测结果。
    • 对于分类问题,通过加权投票机制确定最终分类结果。

优势

  • 逐步减少模型的偏差,提高模型的预测准确性。
  • 对于某些难分类的样本,Boosting能够更有效地进行处理和改进。

缺点

  • 由于关注于难分类的样本,Boosting可能对噪声敏感,导致过拟合。
  • 训练过程是串行的,因此相比于Bagging,Boosting训练时间更长。可想而知。Bagging对于算力的要求要强于Boosting才能支持多决策树并行训练。

Bagging与Boosting比较

  • Bagging:关注于减少方差,通过并行训练多个模型并整合其结果,适合高方差基学习器。
  • Boosting:关注于减少偏差,通过逐步调整样本权重和串行训练模型,适合高偏差基学习器。

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

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

相关文章

【web安全】权限漏洞之未授权访问

一.Jenkins未授权访问漏洞 步骤一:使用以下fofa语法进行搜索 port"8080" && app"JENKINS" && title"Dashboard [Jenkins]" 步骤二:进入执行页面http://xxx.xxx.xxx.xxx:xxxx/manage/script/index.php 执…

预训练大语言模型综述来了!中国人民大学教授发表包含了416个参考文献的大语言模型综述

尽管大语言模型在最近今年发展十分迅速,但是相关的综述却相对比较落后。本文是由中国人民大学教授Wayne Xin Zhao等人前几天刚公开的关于大语言模型的综述,论文正文部分共32页,包含了416个参考文献。内容十分详实。 这份大模型综述我已经打包…

【iOS多线程(三)】优先级反转问题

优先级反转 实时操作系统的一个基本要求就是基于优先级的抢占系统。保证优先级高的线程在“第一时间”抢到执行权,是实时系统的第一黄金准则。 但是这种基于优先级抢占的系统,有一个著名的问题需要关注,就是“优先级反转”(Prio…

优思学院:标准化作业在精益管理之屋中的位置

除了两大支柱,我们必须要对整个精益之屋进行理解,才可以知道精益生产的全貌。精益之屋由4部分组成:地基、2个支柱和屋顶。 首先,地基就是5S活动、目视化管理、标准化作业来建立稳定性。 而标准化作业正正是大家都忽略&#xff0…

计算机网络408考研 2020

2020 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔哩视频 计算机网络408考研 历年真题解析(有字幕无背景音乐版)_哔哩哔哩_bilibili 计算机网络408考研2020年真题解析_哔哩哔哩_bilibili 1 2 3 41 11 1

cmake 编译教程

一、只有一个源文件的程序编译 首先在当前目录下创建两个文件 hello.cpp CMakeLists.txt (注意CMakeLists大小写,不要写错了) cmake_minimum_required (VERSION 2.8)project (learn_cmake)add_executable(hello hello.cpp) 第一行意思是…

基于R语言绘制GGE双标图4

参考资料: https://cran.r-project.org/web/packages/GGEBiplots/GGEBiplots.pdf 1、数据整理 使用GGEBiplots包绘制双标图,分析用数据是二维数据表(行表示品种或基因型,列表示试验点或环境)。当我们的数据表是一维数…

ip地址是公网还是内网?内网电脑ip地址在哪看

在数字化时代,IP地址作为网络设备的唯一标识符,扮演着至关重要的角色。然而,你是否知道IP地址是内网还是外网?对于内网电脑,我们又该如何快速准确地找到其IP地址呢?下面带着这些疑问跟着虎观代理小二一起深…

《python语言程序设计》2018版第6章第37题,随机生成字符,使用RandomCharacter生成100个小写字母,每行15个

一、正常输出方法设计的代码结构 老规矩用正常输出法设计代码结构 def getRandomCharacter(ch1, ch2):return chr(random.randint(ord(ch1), ord(ch2)))def getRandomLowerCaseLetter():return getRandomCharacter(a, z)count 0 for i in range(100):count 1a getRandomLowe…

深度学习实战(1):树叶分类pytorch

Classify Leaves | Kaggle 上面是数据集 数据导入与数据处理 %matplotlib inline import torch from torch.utils import data as Data import torchvision from torch import nn import torchvision.models as models from IPython import display import os import pandas…

leetcode69. x 的平方根,二分法

leetcode69. x 的平方根 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0…

培训第二十三天(mysql主从脚本与mysql详细语句介绍)

上午 在同步时,对删除和修改都比较慎重(监控同步时) mysql主从搭建 前提软件libaio,rsync 1、主2、从3、同步4、测试 注意:先执行从服务器的脚本,再执行主服务器脚本 master-mysql配置脚本 先要在主服务…

企元数智小程序合规分销系统赠送:迎接数字化时代商机

当今时代,随着科技的高速发展和数字化的普及,企业如何抓住数字化时代带来的商机,成为了业界关注的焦点。在这样一个竞争激烈的市场环境下,企业需要不断提高自身的竞争力和应变能力,以应对激烈的市场竞争,开…

Phpstorm实现本地SSH开发远程机器(或虚拟机)项目

适用场景: 1、windows系统想要运行仅支持linux、mac系统的项目,可将项目运行在本地虚拟机,但是在虚拟机里使用vim编辑很麻烦,如何实现在本地用Phpstorm来编辑虚拟机中的代码? 下面的说明都是以本地虚拟机为例&#xff…

java之拼图小游戏(开源)

public class LoginJFrame extends JFrame {//表示登录界面,以后所有跟登录相关的都写在这里public LoginJFrame() {//设置界面的长和宽this.setSize(603,680);//设置界面的标题this.setTitle("拼图登陆界面");//设置界面置顶this.setAlwaysOnTop(true);/…

科研绘图系列:R语言圆形条形图(circular barplot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 介绍 圆形条形图(circular barplot)是一种条形图,其中的条形沿着圆形而不是线性排列展示。这种图表的输入数据集与普通条形图相同:每个组(一个组即一个条形)需要一个数值。(更多解释请参…

linux文件查找--locate和find命令详解

在文件系统上查找符合条件的文件 文件查找:1.非实时查找(数据库查找):locate2.实时查找: find应用:生产环境中查找到系统中占用磁盘空间较大且时间比较久的大日志文件,对这个较大的日志文件做处理(删除移走等),防止它占用更多的磁…

gps 轨迹点如何绘制路径

作为用户,我们进行户外运动后,有的人喜欢分享自己的运动记录。这个时候就比较关注自己的运动轨迹路线了。 一.将经纬度转化为轨迹方法1 1.将gps 打点文件导出。 2.将经纬度点转换成如下格式。 3.将转换后的经纬度填入如下地址: https://ww…

必了解的 20 个 AI 术语解析(下)

AI 领域的基础概念和相关技术有很多,这篇文章里,作者就深入浅出地介绍了相应的内容,感兴趣的同学们,不妨来看一下。 必了解的 20 个 AI 术语解析(下)© 由 ZAKER科技 提供 本文专为非技术背景的 AI 爱…

如何修改360免费wifi热点的频带为2.4G或者5G

有的时候使用电脑广播出热点给嵌入式设备用进而进行抓包,但是他默认广播的是5G Hz的,嵌入式设备扫不到热点。那么如何让他广播2.4G H在呢? CMD控制台使用命令netsh wlan show drivers查看设备驱动: 802.11g 和 802.11n 意味着你的…