算法面试-深度学习面试题整理(2024.8.29开始,每天下午持续更新....)
一、无监督相关(聚类、异常检测)
1、常见的距离度量方法有哪些?写一下距离计算公式。
1)连续数据的距离计算:
闵可夫斯基距离家族:

当p = 1时,为曼哈顿距离;p= 2时,为欧式距离;p ->∞时,就是切比雪夫距离。
余弦距离:
![]()
其中,A 和B是要比较的两个向量,⋅ 表示向量的点积(内积),∥A∥ 和 ∥B∥ 分别表示向量 A 和 B的欧几里德范数(也称为 L2 范数)。余弦距离的值范围在[0,2],取值越小表示两个向量越相似,取值越大表示两个向量越不相似。如果两个向量方向相同,则余弦距离为 0,表示完全相似;如果两个向量方向相反,则余弦距离为 2,表示完全不相似。请注意,有时也可以用余弦相似性(Cosine Similarity)来衡量向量的相似性,它是余弦距离的补数,即1−Cosine Distance。余弦相似性的取值范围在 [-1, 1],取值越大表示两个向量越相似,取值越小表示越不相似。
2)离散数据的距离计算
杰卡尔德(Jaccard)距离:A,B集合的交集/A,B集合的并集
汉明距离:表示两个等长字符串在对应位置上不同字符的数目

2、常见的聚类算法有哪些?
主要有基于划分、基于密度、基于网络、层次聚类等,除此之外聚类和其他领域也有很多结合形成的交叉领域比如半监督聚类、深度聚类、集成聚类等。
3、Kmeans的原理是什么?
Kmeans是一种基于划分的聚类,中心思想是类内距离尽量小,类间距离尽量大,主要算法过程如下:
- 初始K个质心,作为初始的K个簇的中心点,K为人工设定的超参数;
- 所有样本点n分别计算和K个质心的距离,这里的距离是人工定义的可以是不同距离计算方法,每个样本点和k个质心中最近的质心划分为1类簇;
- 重新计算质心,方法是针对簇进行聚合计算,kmeans中使用简单平均的方法进行聚合计算,也可以使用中位数等方式进行计算;
- 重复上述过程直到达到预定的迭代次数或质心不再发生明显变化。
- kmeans的损失函数是:

其中,||xi - cj|| 表示数据点 xi 到簇中心 cj 的欧氏距离,I(condition) 是一个指示函数,当 condition 成立时为 1,否则为 0。J越小,说明样本聚合程度越高。
4、Kmeans的初始点怎么选择,不同的初始点选择有哪些缺陷?该怎么解决?
- 随机初始化:随机选取K个样本点作为初始质心,缺陷在于如果选择到的质心距离很接近落在同个簇内,则迭代的结果可能比较差,因为最终迭代出来的质心点会落在簇内。最理想的状态是K个质心正好是K个簇,由于随机初始化的随机性,可以考虑多次进行随机初始化,选择聚合结果最优的一次。
- 随机分取初始化:即将所有样本点随机赋予1个簇的编号,则所有样本点最后会有K个编号,然后进行组平均,即对于同一个簇的样本进行平均得到初始化质心。相对于随机初始化,初始化质心会更鲁棒一些,但是仍旧存在随机初始化的缺陷,仅仅是缓解。
5、Kmeans聚的是特征还是样本?特征的距离如何计算?
一般情况下是对样本聚类,如果对特征聚类则处理方式也简单,对原始的输出进行转置。其目的和做相关系数类似,如果两个特征高度相关,例如收入和资产水平,则两个特征的距离相对较小,但是一般不可行,因为转置后维度很高,例如有100万个样本则有100万的维度,计算上不现实,高维数据的距离度量也是无效的,不如直接计算相关系数。
6、Kmeans如何调优?
- 初始化策略调参
- k的大小调参,手工方法,手肘法为代表
- 数据归一化和异常样本的处理
7、介绍一下手肘法。
手肘法纵轴是聚类效果的评估指标,根据具体的问题而定,如果聚类是作为单独的任务存在则使用SSE(损失函数)或轮廓系数这类的metric作为纵坐标,然后找到metric最好且k最小的结果,对应的k为最终的选择。手肘法自动化时,只需计算k = n 和 k = n+1之间的斜率,当斜率n和n-1,斜率n+1和斜率n,斜率n+2和斜率n+1的差值均小于固定阈值时即可停止。

8、kmeans的缺点如何解决?
- 对异常样本很敏感,簇心会因为异常样本被拉得很远。异常样本是指在某些维度上取值特别大或者特别小的样本,欧式距离中默认所有特征是相互独立的,异常样本会产生影响。解决方法是做好预处理,将异常样本剔除或者修正。
- K值很难确定。解决方法是针对k调参。
- 只能拟合球形簇,对于流形簇等不规则簇可能存在簇重叠的问题,效果差。这种情况可能不再适用于Kmeans算法,考虑换算法。
- 无法处理离散特征,缺失特征。
- 无法保证全局最优。解决方法是跑多次,取不同的局部最优里的最优。
相关文章:
算法面试-深度学习面试题整理(2024.8.29开始,每天下午持续更新....)
一、无监督相关(聚类、异常检测) 1、常见的距离度量方法有哪些?写一下距离计算公式。 1)连续数据的距离计算: 闵可夫斯基距离家族: 当p 1时,为曼哈顿距离;p 2时,为欧…...
Maven之高版本的 lombok 和 tomcat 7 插件冲突问题
高版本的 lombok 和 tomcat 7 插件冲突问题 在开发期间,当我们使用 tomcat7-maven-plugin 来作为运行环境运行我们项目使,如果我们项目中使用了 1.16.20 及以上版本的 lombok 包,项目启动时会报错: for annotations org.apache.…...
微信小程序申请
方案说明: 微信小程序申请步骤有两个过程,目前采用的是第二种方案 第一种方案:直接向微信申请微信小程序 第二种方案:先申请公众号后再通过公众号快速注册并申请小程序 无论申请公众号还是小程序都需要微信认证,微…...
ffmpeg 配合Fiddler抓包操作
首先需要安装和配置ffmpeg 1.扩大音频2倍 ffmpeg -i 2.mp3 -filter:a "volume2.0" 3.mp32.扩大音频4倍 ffmpeg -i 2.mp3 -filter:a "volume4.0" 3.mp33.音视频合成(m4s视频和mp3音频合成) ffmpeg -i 1.m4s -i 3.mp3 -vcodec cop…...
美团面试拷打:ConcurrentHashMap 为何不能插入 null?HashMap 为何可以?
周末的时候,有一位小伙伴提了一些关于 ConcurrentHashMap 的问题,都是他最近面试遇到的。原提问如下(星球原贴地址:https://t.zsxq.com/11jcuezQs ): 整个提问看着非常复杂,其实归纳来说就是两个问题: ConcurrentHashMap 为什么 key 和 value 不能为 null?ConcurrentH…...
【力扣每日一题】2023.8.29 带因子的二叉树
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一些元素,让我们用这些元素连接形成特定的二叉树,每种元素可以使用任意次数,形成的二叉树要…...
origin导出pdf曲线超出边框
软件版本 软件版本Word2021Origin2021Adobe Acrobat Pro2023 问题描述 Origin导出的emf格式矢量图片,插入到Word中,显示正常,但是在使用Word导出→创建Adobe PDF→创建Adobe PDF导出PDF文件后,图片曲线就会超出边框,…...
由Android10适配到Android12时遇到相关编译失败问题
最近Android系统各大应用商店联合发出公告,处于个人隐私安全考虑,强制APP适配到Android 11及以上版本。下面是其中应用市场的公告(顺带提醒没适配的同学): 适配前的开发环境 名称版本Android studioGiraffe | 2022.3…...
高职教育应对ChatGPT应用的策略
一、完善顶层设计,提升技术水平 在推广ChatGPT平台的过程中,高职院校需要关注技术本身的问题。这就需要在国家和地方政府的引导下,引入更完善的技术顶层设计,提高人工智能在高职教育中的运用水平。具体来说,一方面需要…...
Linux 内核编译参数
文章目录 前言1 -Wall2 -Wundef3 -Wstrict-prototypes4 -Wno-trigraphs5 -fno-strict-aliasing6 -fno-common7 -Werror-implicit-function-declaration8 -Wno-format-security9 -fno-delete-null-pointer-checks10 -stdgnu89 前言 # cat /etc/os-release NAME"CentOS Lin…...
vscode使用anaconda自带的python环境在终端运行时报错
目录 具体报错内容官方翻译报错讲人话解决方法 具体报错内容 CommandNotFoundError: Your shell has not been properly configured to use conda activate. If your shell is Bash or a Bourne variant, enable conda for the current user with$ echo ". E:\Anaconda/e…...
葡萄叶病害识别(图像连续识别和视频识别,Python代码,pyTorch框架)
葡萄叶病害识别(图像连续识别和视频识别,Python代码,pyTorch框架)_哔哩哔哩_bilibili 葡萄数据集 第一个文件夹为 Grape Black Measles(葡萄黑麻疹)病害(3783张) Grape Black rot葡…...
Oracle drop删除表如何恢复
摘要: 在 Oracle 数据库管理中,DROP 命令的误操作可能导致数据不可挽回的丢失。然而,Oracle 提供了回收站(recycle bin)功能,允许用户在删除对象后的一段时间内恢复它们。本文将介绍如何查询、启用和管理回…...
5、监测数据采集物联网应用开发步骤(5.1)
监测数据采集物联网应用开发步骤(4) Sqlite3数据库读写操作开发、异常信息统一处理类开发 本章节需要调用sqlite3及mysql-connector 安装sqlite3 Pip3 install sqlite3 安装mysql-connector pip3 install mysql-connector 验证是否安装成功,python中运行下列…...
ZZULIOJ 1148: 组合三位数之一,Java
ZZULIOJ 1148: 组合三位数之一,Java 题目描述 把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。 输入 无 输出 按从小到大的顺序输出这三个三位数&a…...
ROS功能包目录下CMakeLists.txt
1. add_execuble CMake基础教程(24)add_executable生成目标可执行文件 CMake中add_executable的使用 CMake中的add_executable命令用于使用指定的源文件向项目(project)添加可执行文件,其格式如下: add_executable(<name>…...
Python爬虫追踪新闻事件发展进程及舆论反映
目录 实现方案 1. 确定目标新闻源: 2. 确定关键词: 3. 使用网络爬虫获取新闻内容: 4. 提取和分析新闻文章: 5. 追踪新闻事件的发展进程: 6. 监测舆论反映: 7. 数据可视化: 完整代码示例…...
block层:7. 请求下发
blk_dispatch 源码基于5.10 1. blk_mq_sched_dispatch_requests void blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx) {// 队列struct request_queue *q hctx->queue;// 队列已停止或者被暂停if (unlikely(blk_mq_hctx_stopped(hctx) || blk_queue_quiesc…...
Matlab图像处理-平移运算
几何运算 几何运算又称为几何变换,是将一幅图像中的坐标映射到另外一幅图像中的新坐标位置,它不改变图像的像素值,只是改变像素所在的几何位置,使原始图像按照需要产生位置、形状和大小的变化。 图像几何运算的一般定义为&#…...
美创科技一体化智能化公共数据平台数据安全建设实践
公共数据是当今政府数字化转型的关键要素和未来价值释放的核心锚点,也是“网络强国”、“数字中国”的战略性资源。 作为数字化改革先行省份,近年来,浙江省以一体化智能化公共数据平台作为数字化改革的支撑总平台,实现了全省公共数…...
开源字体破局者:思源宋体TTF的免费商用解决方案
开源字体破局者:思源宋体TTF的免费商用解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在数字设计领域,寻找兼具专业品质与商业授权的中文字体一直是设…...
复盘与导出工具V9.0新功能实测:竞价选股与Excel导出最强风口全攻略
复盘与导出工具V9.0深度实战:解锁竞价选股与Excel导出的高阶玩法 对于股票分析爱好者来说,工具的每一次重大更新都意味着效率的跃升。V9.0版本带来的竞价选股条件设置和最强风口Excel导出两大功能,正在重新定义短线交易的数据处理方式。本文将…...
RocketMQ Topic队列配置实战指南:从原理到最佳实践
1. RocketMQ Topic队列配置的核心原理 第一次接触RocketMQ的Topic配置时,我也曾被那些专业术语搞得一头雾水。直到有一次线上系统因为队列配置不当导致消息积压,我才真正理解这些参数的重要性。现在回想起来,其实Topic队列配置就像高速公路的…...
手把手教你用Llama-3.2V-11B-cot:像聊天一样轻松实现图片智能分析
手把手教你用Llama-3.2V-11B-cot:像聊天一样轻松实现图片智能分析 1. 引言:当视觉大模型遇上聊天式交互 想象一下,你正面对一张复杂的医学影像或工程图纸,需要快速理解其中的关键信息。传统方法可能需要专业培训或反复查阅资料&…...
Bidili Generator效果展示:宠物肖像生成——毛发细节+神态捕捉实测
Bidili Generator效果展示:宠物肖像生成——毛发细节神态捕捉实测 1. 引言:当AI遇见宠物肖像 你有没有想过,给自家宠物拍一张专业级的肖像照?不是那种随手一拍的生活照,而是能捕捉到它们独特神态、展现每一根毛发细节…...
告别玄学调参:在ADS里用Yield Analysis给你的射频滤波器设计上个‘保险’
射频滤波器设计的工程化验证:用ADS Yield Analysis实现稳健性设计 在Wi-Fi 6E和5G毫米波频段快速普及的今天,射频前端模块的性能直接决定了通信质量的上限。作为信号链路上的"守门人",滤波器设计不仅要满足理想仿真环境下的指标要求…...
国产AI 调用量反超美国,22个免费大模型API集结,DMXAPI 成开发者首选
据 OpenRouter 最新数据,2026 年 3 月中国 AI 大模型周调用量达 4.69 万亿 Token,连续两周超越美国,全球调用量前三席位被小米 MiMo-V2-Pro、阶跃星辰 Step 3.5 Flash、MiniMax M2.5 包揽,国产模型凭性能与性价比获全球开发者认可…...
高效解决Magpie插件更新难题:完全掌握图像增强功能升级指南
高效解决Magpie插件更新难题:完全掌握图像增强功能升级指南 【免费下载链接】Magpie An all-purpose window upscaler for Windows 10/11. 项目地址: https://gitcode.com/gh_mirrors/mag/Magpie 识别插件更新需求:为何及时升级至关重要 在使用M…...
华硕梅林固件下,让HP1020打印机在Linux网络环境中重获新生
1. 为什么HP1020打印机在Linux网络环境中会"罢工"? 每次看到那台尘封已久的HP LaserJet 1020打印机,我都觉得特别可惜。这台老伙计在Windows系统下表现一直很稳定,但当我尝试把它接入刷了梅林固件的华硕路由器时,却遇到…...
CMake vs. MsBuild vs. Ninja:C++编译工具链全解析(附Windows平台实战示例)
CMake vs. MsBuild vs. Ninja:C编译工具链全解析(附Windows平台实战示例) 在C开发的世界里,构建工具的选择往往决定了项目的可维护性和跨平台能力。当你在Windows平台上打开Visual Studio时,背后默默工作的可能是MsBui…...
