机器学习-面经(part7、无监督学习)

news/2024/4/13 10:53:24/文章来源:https://blog.csdn.net/qq_40102160/article/details/136519829

 机器学习面经系列的其他部分如下所示:

机器学习-面经(part1)

机器学习-面经(part2)-交叉验证、超参数优化、评价指标等内容

机器学习-面经(part3)-正则化、特征工程面试问题与解答合集
机器学习-面经(part4)-决策树共5000字的面试问题与解答

机器学习-面经(part5)-KNN以及SVM等共二十多个问题及解答

机器学习-面经(part6)-集成学习(万字解答)

11 无监督学习

11.1 聚类

        原理:对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小。

     聚类的应用场景: 求职信息完善(有大约10万份优质简历,其中部分简历包含完整的字段,部分简历在学历,公司规模,薪水,等字段有些置空顶。希望对数据进行学习,编码与测试,挖掘出职位路径的走向与规律,形成算法模型,在对数据中置空的信息进行预测。)

11.1.1 K-means

定义:也叫K均值或K平均。通过迭代的方式,每次迭代都将数据集中的各个点划分到距离它最近的簇内,这里的距离即数据点到簇中心的距离。

K-means步骤

        1.随机初始化K个簇中心坐标

        2.计算数据集内所有点到K个簇中心的距离,并将数据点划分近最近的簇

        3.更新簇中心坐标为当前簇内节点的坐标平均值

        4.重复2、3步骤直到簇中心坐标不再改变(收敛了)     

11.1.1.1 K值的如何选取?

K-means算法要求事先知道数据集能分为几群,主要有两种方法定义K。

elbow method通过绘制K和损失函数的关系图,选拐点处的K值。

经验选取人工据经验先定几个K,多次随机初始化中心选经验上最适合的。

通常都是以经验选取,因为实际操作中拐点不明显,且elbow method效率不高。

11.1.1.2 K-means算法中初始点的选择对最终结果的影响?

        K-means选择的初始点不同获得的最终分类结果也可能不同,随机选择的中心会导致K-means陷入局部最优解。解决方案包括多次运行算法,每次用不同的初始聚类中心,或使用全局优化算法。

11.1.1.3 K-means不适用哪些数据?

1.数据特征极强相关的数据集,因为会很难收敛(损失函数是非凸函数),一般要用Kernal K-means,将数据点映射到更高维度再分群。

2.数据集可分出来的簇密度不一,或有很多离群值(outliers),这时候考虑使用密度聚类。

11.1.1.4 K-means 中常用的距离度量?

K-means中比较常用的距离度量是欧几里得距离和余弦相似度。

n维空间的欧几里得距离:

余弦相似度:余弦相似度是指两个向量夹角的余弦。两个方向完全相同的向量的余弦相似度为1,而两个彼此相对的向量的余弦相似度为-1

K-means是否会一直陷入选择质心的循环停不下来(为什么迭代次数后会收敛)?

        从K-means的第三步我们可以看出,每回迭代都会用簇内点的平均值去更新簇中心,所以最终簇内的平方误差和(SSE, sum of squared error)一定最小。 

11.1.1.5 为什么在计算K-means之前要将数据点在各维度上归一化?

        因为数据点各维度的量级不同,例如:最近正好做完基于RFM模型的会员分群,每个会员分别有R(最近一次购买距今的时长)、F(来店消费的频率)和M(购买金额)。如果这是一家奢侈品商店,你会发现M的量级(可能几万元)远大于F(可能平均10次以下),如果不归一化就算K-means,相当于F这个特征完全无效。如果我希望能把常客与其他顾客区别开来,不归一化就做不到。

11.1.1.6 聚类和分类区别?
  • 目的不同。聚类是一种无监督学习方法,目的是将数据对象自动分成不同的组或簇,这些簇是自然存在的,而不是人为定义的。分类则是一种监督学习方法,目的是根据已知的数据标签将新的数据对象分配到不同的类别中。
  • 监督性不同。聚类不需要人工标注和预先训练分类器,类别在聚类的过程中自动生成。分类事先定义好类别,类别数不变,分类器需要由人工标注的分类训练语料训练得到。
  • 结果性质不同。聚类结果是簇或类,这些簇或类是自然存在的,而不是人为定义的。分类结果是类别标签,这些类别标签是人为定义的。
  • 应用场景不同。聚类适合于类别数不确定或不存在的场合,如市场细分、文本分类等。分类适合于类别或分类体系已经确定的场合,如邮件过滤、信用卡欺诈检测等。
  • 算法复杂性不同。聚类算法通常比分类算法简单,因为聚类不需要预测新的数据点所属的类别。
  • 结果解释不同。聚类分析的结果通常用于描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。分类分析的结果用于预测新的数据点所属的类别。

最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来。

11.1.2 Kmeans Vs KNN

11.2 降维

        定义:把一个多因素问题转化成一个较少因素(降低问题的维数)问题,而且较容易进行合理安排,找到最优点或近似最优点,以期达到满意的试验结果的方法。

11.2.1 主成分分析

        PCA降维的原理: 无监督的降维(无类别信息)-->选择方差大的方向投影,方差越大所含的信息量越大,信息损失越少.可用于特征提取和特征选择。

PCA的计算过程

 

  1. 去平均值,即每一位特征减去各自的平均值
  2. 计算协方差矩阵
  3. 计算协方差矩阵的特征值与特征向量用(SVD,SVD比直接特征值分解计算量小)
  4. 对特征值从大到小排序
  5. 保留最大的个特征向量
  6. 将数据转换到个特征向量构建的新空间中

PCA推导

        中心化后的数据在第一主轴u1方向上分布散的最开,也就是说在u1方向上的投影的绝对值之和最大(即方差最大),计算投影的方法就是将x与u1做内积,由于只需要求u1的方向,所以设u1是单位向量。

11.2.1.1 PCA其优化目标是什么?

        最大化投影后方差 + 最小化到超平面距离

11.2.1.2 PCA 白化是什么?

        通过 pca 投影以后(消除了特征之间的相关性),在各个坐标上除以方差(方差归一化)。

11.2.1.3 SVD奇异值分解

定义:有一个m×n的实数矩阵A,我们想要把它分解成如下的形式

        其中U和V均为单位正交阵,即有,U称为左奇异矩阵,V称为右奇异矩阵,Σ仅在主对角线上有值,称它为奇异值,其它元素均为0。上面矩阵的维度分别为

11.2.1.4 为什么要用SVD进行降维?

1. 内存少:奇异值分解矩阵中奇异值从大到小的顺序减小的特别快,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上。

2.SVD可以获取另一个方向上的主成分,而基于特征值分解的只能获得单个方向上的主成分。

3.数值稳定性:通过SVD可以得到PCA相同的结果,但是SVD通常比直接使用PCA更稳定。PCA需要计算XTX的值,对于某些矩阵,求协方差时很可能会丢失一些精度。

11.2.2 LDA(线性判别式分析)

LDA降维的原理:LDA一种有监督的降维算法,它是将高维数据投影到低维上,并且要求投影后的数据具有较好的分类.(也就是说同一类的数据要去尽量的投影到同一个簇中去),投影后的类别内的方差小,类别间的方差较大.

理解: 数据投影在低维度空间后,投影点尽可能的接近,而不同类别的投影点群集的中心点彼此之间的离得尽可能大。

11.2.3 PCA vs SVD

11.2.4 LDA vs PCA 

11.2.5  降维的作用是什么?

①降维可以缓解维度灾难问题

②降维可以在压缩数据的同时让信息损失最小化

③理解几百个维度的数据结构很困难,两三个维度的数据通过可视化更容易理解

11.2.6 矩阵的特征值和特征向量的物理意义是什么?

        对于一个非方阵的矩阵A,它代表一个多维空间里的多个数据。求这个矩阵A的协方差阵Cov(A,A’),得到一个方阵B,求的特征值,就是求B的特征值,它就是代表矩阵A的那些数据,在那个多维空间中,各个方向上分散的一个度量(即理解为它们在各个方向上的特征是否明显,特征值越大,则越分散,也就是特征越明显),而对应的特征向量:是它们对应的各个方向。

(协方差:用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。)

11.2.7 维度灾难是什么?为什么要关心它?‍

  1. 维度灾难的一个主要后果是使分类器过拟合,其次使得样本在搜索空间(解释:目前本人将搜索空间理解为样本特征空间)的分布变得不均匀。
  2. 在特征数增加到一定数量后,继续添加新的特征会导致分类器的性能下降,这种现象称为“维度灾难”(The Curse of Dimensionality)。

解决方法:

降维算法:将高维数据转换为低维数据,并保留数据的关键信息,如PCA、LDA、MDS

特征选择:从原始数据中选取最具代表性的特征,并保留相对较少的特征,如卡方检验、信息熵

集成学习:将多个学习器进行有效的集成,以提高算法的预测准确度和鲁棒性,如随机森林、Adaboost等。

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

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

相关文章

Rust泛型与trait特性,模仿接口的实现

泛型是一个编程语言不可或缺的机制。 C 语言中用"模板"来实现泛型,而 C 语言中没有泛型的机制,这也导致 C 语言难以构建类型复杂的工程。 泛型机制是编程语言用于表达类型抽象的机制,一般用于功能确定、数据类型待定的类&#xf…

备战蓝桥杯————二分查找(二)

引言 在上一篇博客中,我们深入探讨了二分搜索算法及其在寻找数组左侧边界的应用。二分搜索作为一种高效的查找方法,其核心思想在于通过不断缩小搜索范围来定位目标值。在本文中,我们将继续这一主题,不仅会回顾二分搜索的基本原理&…

基于qt的图书管理系统----05其他优化

参考b站:视频连接 源码github:github 目录 1 优化借阅记录显示2 时间显示为年月日3 注册接口 1 优化借阅记录显示 现在只能显示部分信息,把接的书名和人的信息全部显示 在sql语句里替换为这一句即可实现查询相关联的所有信息 QString str…

【leetcode】相交链表

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 点击查看题目 思路: struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *he…

Conda快速安装的解决方法(Mamba安装)

如果你的Conda安装了,你可能会发现一个问题,就是使用Conda install 安装某个软件时,会特别慢,这时候呢?你会上网去搜,然后大家解决的方法呢。一是告诉你镜像可以下载快一点,二是,Mam…

Vue3.2 + vue/cli-service 打包 chunk-vendors.js 文件过大导致页面加载缓慢解决方案

chunk-vendors.js 是/node_modules 目录下的所有模块打包成的包, 但是这包太大导致页面加载很慢(我的都要3-4秒了), 这个时候就会出现白屏的情况 解决方案 1、compression-webpack-plugin 插件解决方案 1)、安装 npm …

1909_Arm Cortex-M3编程模型

1909_Arm Cortex-M3编程模型 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 编程模型的部分除了单独的核心寄存器描述之外,它还包含有关处理器模式和软件执行和堆栈的特权级别的信息。 处理器有两种模式,分别是线程模式和Handle…

精品中国货出海wordpress外贸独立站建站模板

旗袍唐装wordpress外贸网站模板 旗袍、唐装、华服wordpress外贸网站模板,适合做衣服生意的外贸公司官网使用。 https://www.jianzhanpress.com/?p3695 劳动防护wordpress外贸独立站模板 劳动防护wordpress外贸独立站模板,劳动保护、劳动防护用品外贸…

【自然语言处理】BitNet b1.58:1bit LLM时代

论文地址:https://arxiv.org/pdf/2402.17764.pdf 相关博客 【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM 【自然语言处理】BitNet b1.58:1bit LLM时代 【自然语言处理】【长文本处理】RMT:能处理长度超过一百万t…

如何摆脱水印困扰?三款神器助您清爽无烦恼!

水印常常成为我们图片处理的一大难题,让我们苦恼不已。那么,如何能轻松摆脱这些烦人的水印呢?本文将向您推荐三款强大的去水印工具,让您清爽无烦恼,图片重焕光彩! 1. 水印云 如何快速而准确地去除各类水印…

Java面试篇【并发编程】常见面试题(2024最新)

Java并发编程常见面试题 1.什么是线程和进程? 进程是操作系统分配资源的最小单位,各个进程之间占据独立的寻址空间,运行也是独立运行,进程间通信需要一些机制。进程间切换需要的开销较大。 线程是程序执行的基本单位&#xff0c…

Docker知识点总结二

四、 Docker 架构 Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。 介绍: 1、Docker的客户端client,我们在命令行发送一些信息(命令)给Docker服务端。2、中间这个就是Docker的服务端,在这个服务端里面…

网络安全是什么

网络安全是一种保护计算机、服务器、移动设备、电子系统、网络和数据免受恶意攻击的技术,这种技术也称为信息技术安全或电子信息安全。该术语适用于从业务到移动计算的各种环境,可以分为几个常见类别: 网络安全是一种保护计算机网络免受入侵者&#xff0…

【MySQL篇】 MySQL基础学习

前言 在做项目的过程中,深深感悟到一个扎实的MySQL基础是多么重要,这篇文章就用来记录一下我对于MySQL的复习,下面开始介绍了。 MySQL 是一款开源免费的数据库。后端程序员的工作离不开与数据库打交道,MySQL因其简单易懂、使用方…

一次直播和图像识别技术应用的探索之旅

背景 Think Better 很多行业都在“卷”,作为金融科技行业的信也,也不例外。除了卷云计算、大数据和人工智能这些非常有深度的技术以外,信也向着技术融合创新的方向逐步探索,做得更好一些,为用户提供更好的价值&#xf…

NodeJS实现插入排序算法

NodeJS实现插入排序算法 以下是使用Node.js实现插入排序算法的示例代码&#xff1a; function insertionSort(arr) {const n arr.length;for (let i 1; i < n; i) {let key arr[i];let j i - 1;// 将比key大的元素向右移动一位while (j > 0 && arr[j] >…

如何一键批量采集拼多多商品图片?无压缩高清主图/sku图/详情和视频下载|拼多多商品数据采集接口

大家好&#xff0c;这期我教下大家怎么下载拼多多上面的商品主图、详情页图、SKU图、主图视频、详情页视频的下载教程~~ 运营一个多多电商店铺&#xff0c;上架商品&#xff0c;我们都需要采集大量的商品图片进行分析和参考&#xff0c;一张张下载的话将耗费大量时间和精力&am…

(3)(3.3) MAVLink高延迟协议

文章目录 前言 1 配置 2 说明 3 消息说明 前言 ArduPilot 支持 MAVLink 高延迟协议(MAVLink High Latency)。该协议专为卫星或 LoRA 等低带宽或高成本链路而设计。 在此协议中&#xff0c;每 5s 只发送一次 HIGH_LATENCY2 MAVLink 信息。对 MAVLink 命令或请求&#xff08…

word转PDF的方法 简介快速

在现代办公环境中&#xff0c;文档格式转换已成为一项常见且重要的任务。其中&#xff0c;将Word文档转换为PDF格式的需求尤为突出&#xff0c;将Word文档转换为PDF格式具有多方面的优势和应用场景。无论是为了提高文档的可读性和稳定性、保障文档的安全性和保护机制、还是为了…

【STM32详解FLASH闪存编程原理与步骤】

STM32详解FLASH闪存编程原理与步骤 FLASH编程注意事项FLASH编程过程STM32的FLASH擦除过程FLASH全片擦除FLASH操作总结锁定解锁函数写操作函数擦除函数获取状态函数等待操作完成函数读FLASH特定地址数据函数 FLASH编程注意事项 1.STM32复位后&#xff0c;FPEC模块是被保护的&am…