算法面试-深度学习面试题整理(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算法,考虑换算法。
  • 无法处理离散特征,缺失特征。
  • 无法保证全局最优。解决方法是跑多次,取不同的局部最优里的最优。

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

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

相关文章

延迟队列的理解与使用

目录 一、场景引入 二、延迟队列的三种场景 1、TTL对队列进行延迟 2、创建通用延时消息对消息延迟 3、使用rabbitmq的延时队列插件 x-delayed-message使用 父pom文件 pom文件 配置文件 config 生产者 消费者 结果 一、场景引入 我们知道可以通过TTL来对队列进行设…

【OpenCV入门】第一部分——图像处理基础

本文结构 图像处理的基本操作读取图像imread() 显示图像imshow()waitKey()destroyAllWindows() 保存图像imwrite() 复制图像copy() 获取图像属性 像素确定像素的位置获取像素的BGR值修改像素的BGR值 色彩空间GRAY色彩空间cvtColor()——从BGR色彩空间转换到GRAY色彩空间 HSV色彩…

Spring boot使用Kafka Java反序列化漏洞 CVE-2023-34040

文章目录 0.前言漏洞spring-kafka 介绍 1.参考文档2.基础介绍3.解决方案3.1. 升级版本3.2. 替代方案 4.Spring kafka 使用教程代码示例 0.前言 背景:公司项目扫描到 Spring-Kafka上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873 漏洞 中等风险 | 2023年8月…

Python框架【模板继承 、继承模板实战、类视图 、类视图的好处 、类视图使用场景、基于调度方法的类视图】(四)

👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误…

C 实现Window/DOS 键盘监听事件

今天是重新复习C语言实现的第一天,今天想编写C 对Windwos/Dos 键盘事件的学习。但是我在安装Visual Studio 2022 没有安装MFC 框架,今天记录下VS追加 MFC框架。 Visual Studio 2022 追加MFC 1、打开vs,点击创建新项目,右侧滑动框…

vue可编辑表格

内容包含:校验。下拉框。输入框。日期控件 效果图 1.代码目录 2.index.js import SjjEditable from ./src/editable.vue // import Vue from vueSjjEditable.install = function (Vue) {Vue.component(SjjEditable.name, SjjEditable) }export default SjjEditable 3.util…

C#基础知识点记录

目录 课程一、C#基础1.C#编译环境、基础语法2.Winform-后续未学完 课程二、Timothy C#底层讲解一、类成员0常量1字段2属性3索引器5方法5.1值参数(创建副本,方法内对值的操作,不会影响原来变量的值)5.2引用参数(传的是地…

Tomcat安装及基本使用

1. 什么是Web服务器 Web服务器是一种应用程序(软件),它封装了对HTTP协议的操作,使得开发人员无需直接操作协议,从而简化了Web开发。其主要功能是提供网上信息浏览服务。 Web服务器安装在服务器端,我们可以…

Microsoft Edge 主页启动diy以及常用的扩展、收藏夹的网站

一、Microsoft Edge 主页启动diy 二、常用的扩展 1、去广告:uBlock Origin 2、翻译: 页面翻译:右键就有了,已经内置了划词翻译 3、超级复制 三、收藏夹的网站

[C/C++]指针详讲-让你不在害怕指针

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

spring cloud、gradle、父子项目、微服务框架搭建---spring secuity oauth2、mysql 授权(九)

文章目录 一、二、授权服务2.1 初始化表结构2.2 引入依赖2.3 自定义 用户详情类 UserDetailsService2.4 授权配置 AuthorizationServerConfiguration2.5 Web安全配置 WebSecurityConfiguration2.6 默认生成接口 三、资源服务3.1 引入依赖3.2 资源服务 ResourceServerConfig 四、…

本地镜像管理

查看 用户可以通过docker images命令查看本地所有镜像&#xff0c;如下&#xff1a; 这里一共有五个参数&#xff0c;含义分别如下&#xff1a; REPOSITORY 仓库名称&#xff0c;仓库一般用来存放同一类型的镜像。仓库的名称由其创建者指定。如果没有指定则为<none>。…

爬虫逆向实战(二十七)--某某招标投标网站招标公告

一、数据接口分析 主页地址&#xff1a;某网站 1、抓包 通过抓包可以发现数据接口是page 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现&#xff0c;请求参数是一整个密文 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 通…

Python之动态规划

序言 最近在学习python语言&#xff0c;语言有通用性&#xff0c;此文记录复习动态规划并练习python语言。 动态规划&#xff08;Dynamic Programming&#xff09; 动态规划是运筹学的一个分支&#xff0c;是求解决策过程最优化的过程。20世纪50年代初&#xff0c;美国数学家…

【DevOps视频笔记】8. Jenkins 配置

一、Jenkins 入门配置 1. 工具 / 插件 介绍 二、插件和工具配置 1. 配置 JDK 和 Maven Stage 1&#xff1a;将服务器中 JDK 和 Maven 映射到 jenkins 容器中 Stage 2&#xff1a;jenkins 全局配置中 -- 指定JAVA_HOME目录 Stage 3&#xff1a;jenkins 全局配置中 -- 指定…

Vue 项目性能优化 — 实践指南

前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术&#xff0c;帮我们处理了前端开发中最脏最累的 DOM 操作部分&#xff0c; 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM&#xff1b;但 Vue 项目中仍然存在项目首屏优化、Webpack 编译配置优化等问题&#xff0c;所…

深度图相关评测网站

文章目录 1 单目/Stereo相关测评网站介绍12 单目/Stereo相关测评网站介绍23 单目/Stereo相关测评网站介绍3 1 单目/Stereo相关测评网站介绍1 https://vision.middlebury.edu/stereo/eval3/ 2 单目/Stereo相关测评网站介绍2 http://www.cvlibs.net/datasets/kitti/eval_stereo…

maven推包The environment variable JAVA_HOME is not correctly set

解决办法&#xff1a; 打开idea查看jdk安装位置 1.在/etc下面创建&#xff08;如果存在就是更新&#xff09;launchd.conf。里面添加一行&#xff1a; setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home #JAVA_HOME后面是我的java安装路径…

vscode GDB 调试linux内核 head.S

遇到的问题 此前参考如下文章 https://zhuanlan.zhihu.com/p/510289859 已经完成了在ubuntu 虚拟机用vscode 调试linux 内核。但是美中不足的是&#xff0c;断点最早只能加在__primary_switched() 函数。无法停在更早的断点上&#xff0c;比如ENTRY(stext) 位置。参考《奔跑吧…

数据库的备份与分类以及日志

目录 1、数据库的概念 1.1、数据备份的重要性 1.2、造成数据丢失的原因 1.3、 数据库备份的分类 1.3.1、从物理与逻辑的角度&#xff0c; 1.3.2、原理图 1.3.3.1 完全备份&#xff1a; 1.3.2.2 差异备份 1.2.3.3、 增量备份 1.3.3、 备份方式比较 1.4、常见的备份方…