关于机器学习的面试题,你又了解多少呢?

article/2025/9/6 6:45:00

        前面已经陆续分享了几篇关于机器学习的博客,相信刚接触这个领域的朋友们肯定是比较感兴趣的,那么本篇博客让博主为大家介绍一些关于机器学习常见的面试题吧~
在这里插入图片描述

文章目录

    • 1、为什么需要对数值类型的特征做归一化?
    • 2、类别型特征如何处理的?
    • 3、距离/相似度如何计算?
    • 4、K-Means算法的缺陷和优点是什么?
    • 5、K-Means算法的应用场景
    • 6、K-Means算法如何确定K值?
    • 7、K-Means算法实现-伪代码
    • 8、还有哪些其他的聚类算法?
    • 9、K近邻法(Knn)与k-Means的区别?
    • 结语


1、为什么需要对数值类型的特征做归一化?

  • 简单理解

        为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响,如果使用米(m)和干克(kg)作为单位,那么身高特征会在1.6-1.8m的数值范围内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。想要得到更为准确的结果,就需要进行特征归一化( normalization)处理,使各指标处于同一数值量级,以便进行分析。

        总结:K-Means计算模型需要相同量纲的数据,但业务上提供的数据量纲不同,所以需要统一量纲(归一化)

  • 有哪些归一化方式

        对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法主要有以下两种。

在这里插入图片描述
        我们也可以根据业务特点,自定义归一化逻辑,就像我们在开发挖掘型标签时,为了执行归一化给RFM打分。

  • 深入理解为什么要归一化
    在这里插入图片描述

2、类别型特征如何处理的?

        类别型特征( Categorical Feature)主要是指性别(男、女)、血型(A、B、AB、O)等只在有限选项內取值的特征。类别型特征原始输入通常是字符串形式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。

        总结:由于算法需要的特征是数值类型(逻辑回归,支持向量机,K-Means),但是原始数据上的特征大部分为字符串,所以不能直接计算,需要将字符串转为数值型。

  • 从字符转到数值类型转换有哪些方法?
    在这里插入图片描述

3、距离/相似度如何计算?

        在数据分析和数据挖掘以及搜索引擎中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。常见的比如数据分析中比如相关分析,数据挖掘中的分类聚类(K-Means等)算法,搜索引擎进行物品推荐时。

        相似度就是比较两个事物的相似性。一般通过计算事物的特征之间的距离,如果距离小,那么相似度大;如果距离大,那么相似度小。比如两种水果,将从颜色,大小,维生素含量等特征进行比较相似性。

        问题定义:有两个对象X,Y,都包含N维特征,X=(x1,x2,x3,………,xn),Y=(y1,y2,y3,………,yn),计算X和Y的相似性。常用的有五种方法,如下。

  • 欧几里得距离(Eucledian Distance)

        欧氏距离是最常用的距离计算公式,衡量的是多维空间中各个点之间的绝对距离,当数据很稠密并且连续时,这是一种很好的计算方式。

        因为计算是基于各维度特征的绝对数值,所以欧氏度量需要保证各维度指标在相同的刻度级别,比如对身高(cm)和体重(kg)两个单位不同的指标使用欧式距离可能使结果失效。
在这里插入图片描述

  • 曼哈顿距离(Manhattan Distance)

        曼哈顿距离也称出租车几何,是由十九世纪的赫尔曼·闵可夫斯基所创词汇,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和

在这里插入图片描述

  • 明可夫斯基距离(Minkowski distance)

        明氏距离是欧氏距离的推广,是对多个距离度量公式的概括性的表述,看看下图
在这里插入图片描述
        公式:
在这里插入图片描述
        从公式我们可以看出,

  • 当p==1,“明可夫斯基距离”变成“曼哈顿距离”

  • 当p==2,“明可夫斯基距离”变成“欧几里得距离”

  • 当p==∞,“明可夫斯基距离”变成“切比雪夫距离”

        

  • 余弦相似度(Cosine Similarity)

        余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。

在这里插入图片描述

  • 杰卡德相似系数Jaccard Similarity

        Jaccard系数主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此无法衡量差异具 体值的大小,只能获得“是否相同”这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。

在这里插入图片描述
        对于上面两个对象A和B,我们用Jaccard计算它的相似性,公式如下

在这里插入图片描述
        首先计算出A和B的交(A ∩ B),以及A和B的并 (A ∪ B):

在这里插入图片描述
        然后利用公式进行计算:
在这里插入图片描述

  • 皮尔森相关系数(Pearson Correlation Coefficient)

        又称相关相似性,通过Peason相关系数来度量两个用户的相似性。计算时,首先找到两个用户共同评分过的项目集,然后计算这两个向量的相关系数。

        公式:

在这里插入图片描述

4、K-Means算法的缺陷和优点是什么?

优点:

  1. 解决聚类问题的经典算法,简单、快速
  2. 当处理大数据集时,该算法保持可伸缩性和高效率
  3. 当簇近似为高斯分布时,它的效果较好
  4. 时间复杂度近于线性,适合挖掘大规模数据集

缺点:

  1. 必须事先给出k(一般刚开始难以估计)
  2. 对初值敏感,即对于不同的初值,可能会导致不同结果
  3. 不适合非凸形状的簇或者大小差别很大的簇
  4. 对噪声和孤立点敏感

5、K-Means算法的应用场景

在这里插入图片描述

  • K-means十大应用案例

        K-means算法通常可以应用于维数、数值都很小且连续的数据集,比如:从随机分布的事物集合中将相同事物进行分组。

1.文档分类器

        根据标签、主题和文档内容将文档分为多个不同的类别。这是一个非常标准且经典的K-means算法分类问题。首先,需要对文档进行初始化处理,将每个文档都用矢量来表示,并使用术语频率来识别常用术语进行文档分类,这一步很有必要。然后对文档向量进行聚类,识别文档组中的相似性。 这里是用于文档分类的K-means算法实现案例。

2.物品传输优化

        使用K-means算法的组合找到无人机最佳发射位置和遗传算法来解决旅行商的行车路线问题,优化无人机物品传输过程。这是该项目的白皮书。

3.识别犯罪地点

        使用城市中特定地区的相关犯罪数据,分析犯罪类别、犯罪地点以及两者之间的关联,可以对城市或区域中容易犯罪的地区做高质量的勘察。这是基于德里飞行情报区犯罪数据的论文。

4.客户分类

        聚类能过帮助营销人员改善他们的客户群(在其目标区域内工作),并根据客户的购买历史、兴趣或活动监控来对客户类别做进一步细分。这是关于电信运营商如何将预付费客户分为充值模式、发送短信和浏览网站几个类别的白皮书。对客户进行分类有助于公司针对特定客户群制定特定的广告。

5.球队状态分析

        分析球员的状态一直都是体育界的一个关键要素。随着竞争越来愈激烈,机器学习在这个领域也扮演着至关重要的角色。如果你想创建一个优秀的队伍并且喜欢根据球员状态来识别类似的球员,那么K-means算法是一个很好的选择。

6.保险欺诈检测

        机器学习在欺诈检测中也扮演着一个至关重要的角色,在汽车、医疗保险和保险欺诈检测领域中广泛应用。利用以往欺诈性索赔的历史数据,根据它和欺诈性模式聚类的相似性来识别新的索赔。由于保险欺诈可能会对公司造成数百万美元的损失,因此欺诈检测对公司来说至关重要。这是汽车保险中使用聚类来检测欺诈的白皮书。

7.乘车数据分析

        面向大众公开的Uber乘车信息的数据集,为我们提供了大量关于交通、运输时间、高峰乘车地点等有价值的数据集。分析这些数据不仅对Uber大有好处,而且有助于我们对城市的交通模式进行深入的了解,来帮助我们做城市未来规划。这是一篇使用单个样本数据集来分析Uber数据过程的文章。

8.网络分析犯罪分子

        网络分析是从个人和团体中收集数据来识别二者之间的重要关系的过程。网络分析源自于犯罪档案,该档案提供了调查部门的信息,以对犯罪现场的罪犯进行分类。这是一篇在学术环境中,如何根据用户数据偏好对网络用户进行 cyber-profile的论文。

9.呼叫记录详细分析

        通话详细记录(CDR)是电信公司在对用户的通话、短信和网络活动信息的收集。将通话详细记录与客户个人资料结合在一起,这能够帮助电信公司对客户需求做更多的预测。在这篇文章中,你将了解如何使用无监督K-Means聚类算法对客户一天24小时的活动进行聚类,来了解客户数小时内的使用情况。

10.IT警报的自动化聚类

        大型企业IT基础架构技术组件(如网络,存储或数据库)会生成大量的警报消息。由于警报消息可以指向具体的操作,因此必须对警报信息进行手动筛选,确保后续过程的优先级。对数据进行聚类可以对警报类别和平均修复时间做深入了解,有助于对未来故障进行预测。

6、K-Means算法如何确定K值?

肘部法则
在这里插入图片描述

  • SSE

手肘法的核心指标是

集合内误差平方和:Within Set Sum of Squared Error, WSSSE

或者叫SSE(sum of the squared errors,误差平方和),公式为

在这里插入图片描述

  • 解释

Ci是第i个簇

p是Ci中的样本点

mi是Ci的质心(Ci中所有样本的均值)

SSE是所有样本的聚类误差,代表了聚类效果的好坏。

  • SSE 变化图

根据 SSE 的变化画图, 找到拐点

在这里插入图片描述
        随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。

        当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系如图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数
在这里插入图片描述
        显然,肘部对于的k值为3(曲率最高),故对于这个数据集的聚类而言,最佳聚类数应该选3。

轮廓系数

在这里插入图片描述
        a表示C1簇中的某一个样本点Xi到自身簇中其他样本点的距离总和的平均值。

        bC2表示样本点Xi 到C2簇中所有样本点的距离总和的平均值。

        bC3表示样本点Xi 到C3簇中所有样本点的距离总和的平均值。

        定义b = min(bC2 ,bC3)

  • 簇内不相似度:样本和簇内其它样本之间的平均距离

        样本i的簇内不相似度a(i)表示C中样本和簇内其它样本之间的平均距离。

        a(i)越小,说明样本i越应该被聚类到该簇

  • 簇外不相似度:样本和簇外其它样本之间的平均距离最小值

        样本i的簇外不相似度:b(i) = min { bi1, bi2, bi3 }

        bi越大,说明样本i越不属于其他簇

  • 计算公式
    在这里插入图片描述
  • 解释

a:样本Xi到同一簇内其他点不相似程度的平均值

b:样本Xi到其他簇的平均不相似程度的最小值

■ S范围在[-1,1]之间。该值越大,越合理
■ S(i) 接近 1, 说明样本 i 聚类合理
■ S(i) 接近 -1, 则说明样本 i 更应该分类到另外的簇
■ 若 s(i) 近似为 0, 则说明样本 i 在两个簇的边界上

  • 轮廓系数

        所有样本的s(i)的均值称为聚类结果的轮廓系数,是该聚类是否合理的有效度量。

        使用轮廓系数(silhouette coefficient)来确定k,即选择使系数较大所对应的k值。

7、K-Means算法实现-伪代码

        出处:https://blog.csdn.net/fox_wayen/article/details/80467233

在这里插入图片描述

8、还有哪些其他的聚类算法?

        除了k-means 算法以外,聚类算法还有很多,其中“层次聚类算法”较为有名。与k-means 算法不同,层次聚类算法不需要事先设定K簇的数量。

        在层次聚类算法中,一开始每个数据都自成一类。也就是说,有n 个数据就会形成n 个簇。然后重复执行“将距离最近的两个簇合并为一个”的操作n -1 次。每执行1 次,簇就会减少1 个。执行n -1 次后,所有数据就都被分到了一个簇中。在这个过程中,每个阶段的簇的数量都不同,对应的聚类结果也不同。只要选择其中最为合理的1 个结果就好。

        合并簇的时候,为了找出“距离最近的两个簇”,需要先对簇之间的距离进行定义。根据定义方法不同,会有“最短距离法”“最长距离法”“中间距离法”等多种算法。

9、K近邻法(Knn)与k-Means的区别?

        初学者会很容易就把K-Means和KNN搞混,其实两者的差别还是很大的。

KNNK-Means
目的是为了确定一个点的分类目的是为了将一系列点集分成k类
KNN是分类算法K-Means是聚类算法
监督学习,分类目标事先已知非监督学习,将相似数据归到一起从而得到分类,没有外部分类
训练数据集有label,已经是完全正确的数据训练数据集无label,是杂乱无章的,经过聚类后才变得有点顺序,先无序,后有序
没有明显的前期训练过程,属于memory-based learning有明显的前期训练过程
K的含义:“k”是用来计算的相邻数据数。来了一个样本x,要给它分类,即求出它的y,就从数据集中,在x附近找离它最近的K个数据点,这K个数据点,类别c占的个数最多,就把x的label设为cK的含义:“k”是类的数目。K是人工固定好的数字,假设数据集合可以分为K个簇,由于是依靠人工定好,需要一点先验知识
K值确定后每次结果固定K值确定后每次结果可能不同,从 n个数据对象任意选择 k 个对象作为初始聚类中心,随机性对结果影响较大
时间复杂度:O(n)时间复杂度:O(n*k*t),t为迭代次数
相似点:都包含这样的过程,给定一个点,在数据集中找离它最近的点。即二者都用到了NN(Nears Neighbor)算法,一般用KD树来实现NN。

        为了让大家对K最近邻算法(KNN)也有一个了解,这里贴张图大家感受下~

在这里插入图片描述


结语

        如果以上过程中出现了任何的纰漏错误,烦请大佬们指正😅

        受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波🙏

        希望我们都能在学习的道路上越走越远😉
在这里插入图片描述


http://chatgpt.dhexx.cn/article/6exSY8hu.shtml

相关文章

40 个机器学习面试问题(文末福利送书)

原创 文章目录 初学者问题 (10)1. 偏差和方差之间的权衡是什么?2.解释有监督和无监督机器学习的区别3. 监督学习和无监督学习最常用的算法是什么?4.解释KNN和k-means聚类的区别5. 什么是贝叶斯定理?我们为什么用它?6. 什么是朴素…

机器学习笔试面试超详细总结(一)

文章目录 1、判别模型和生成模型2、最大概率分词3、中文分词的基本方法4、CRF(条件随机场)的特点5、隐马尔可夫模型(HMM)时间复杂度及可以使用的数据集6、在二分类问题中的评价方案7、决策树特点8、过拟合9、异方差性10、Fisher线…

机器学习常见面试题

特征工程 常用数据类型:结构化数据(类似于表)、非结构化数据(文本 图像 音频 视频…) 1.为什么要对数值类型的特征做归一化? 可以将所有特征都统一到一个相同的特征区间内。 线性函数归一化&#xff08…

机器学习面试知识点总结

文章目录 计算学习理论过拟合与欠拟合过拟合欠拟合 偏差与方差最大似然估计与贝叶斯估计极大似然估计贝叶斯决策论贝叶斯估计 特征工程与特征选择特征工程逐层归一化特征选择 模型融合融合策略 评估方法与评价指标评估方法评价指标 优化算法正则化深度模型中的优化 采样聚类与降…

经典的机器学习200道面试题(附参考答案)

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 来 源: https://blog.csdn.net/sinat_35512245/article/details/78796328 本文总结了往年BAT机器学习面试题,干货满满,值得收藏。 想…

机器学习面试题总结

链接:https://www.jianshu.com/p/d289755e89bb 一 面试题概述 面试的时候,面试官会结合你的回答和你的简历来询问你,所以在写简历的时候,简历上所写的所有内容在写的时候必须自己反问一下自己,这个知识点懂不懂。 面…

机器学习面试

1机器学习面试 一、机器学习基础知识1.1LR线性回归1.1.1线性回归/广义线性回归1.1.2logistics regression对数几率回归1.1.3感知机 1.2 SVM1.2.1SVM 支持向量机1.2.2 SVR 1.3朴素贝叶斯1.4 聚类1.4.1 KNN1.4.2原型聚类 1.5决策树1.5.1原理1.5.2特征选择1.5.3决策树生成1.5.4决策…

springboot的filter 过滤器的使用

一 过滤器的作用和概述 1.1 简述 人--->检票员(filter)---> 电影院。 注意:配置多个filter的时候,要设置编号id,值越小,优先级越高,越先执行。 在3.0之后新增WebFilter注解&#xff0…

(29) JavaWeb中使用filter过滤器拦截请求、权限检查,过滤响应。

Filter 过滤器 一、Filter 什么是过滤器二、Filter 过滤器的使用步骤:三、Filter 的生命周期四、FilterConfig 类五、FilterChain 过滤器链六、Filter 的拦截路径的三种配置方式 一、Filter 什么是过滤器 1、Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分…

多个Filter过滤器如何确定执行先后顺序

1、首先,过滤器是有一个Order()的注解,参数值越低,执行顺序越靠前,但是在我测试之后,发现并没有成功,过滤器依旧是按照名称的顺序先后执行,那么我们就只能通过编写config文件来决定执行顺序 Co…

详谈 Filter 过滤器

详谈 Filter 过滤器 文章首发在CSDN博客,转载请务必注明以下所有链接,否则考虑法律追究责任。 CSDN地址:http://blog.csdn.net/tzs_1041218129/article/details/53345485 个人博客地址:www.54tianzhisheng.cn/Blog/html/filter…

JavaWeb-使用Filter过滤器进行权限检查

文章目录 1. 什么是Filter过滤器2. Filter初体验3. Filter的生命周期4. FilterConfig类5. FilterChain过滤器链6. Filter的拦截路径6.1 精确匹配6.2 目录匹配6.3 后缀名匹配 1. 什么是Filter过滤器 Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servl…

JavaWeb—Filter过滤器

目录 1、过滤器的原理 2、如何创建过滤器 2.1在xml中注册 2.2使用WebFilter注解 让一些合法的请求通过该过滤器,而拦截一些不符合要求的请求路径。当请求到达该过滤器时,可以为请求设置一些参数。 1、过滤器的原理 2、如何创建过滤器 2.1在xml中注册…

Filter过滤器的拦截路径配置

Filter的介绍 拦截路径配置 拦截所有资源:/* 具体资源路径:/myServlet/demo1 拦截目录:/myServlet/* 后缀名被拦截:*.jsp Filter的介绍 拦截路径配置 过滤器的拦截路径一般有这4种方式 拦截所有资源:/*&#xff0…

Filter过滤器(详解)

一、Filter的工作流程分析 二、Filter 过滤器的使用步骤 编写一个类去实现 Filter 接口实现过滤方法 doFilter()到 web.xml 中去配置 Filter 的拦截路径 1) Filter 的代码: public class AdminFilter implements Filter { /** * doFilter 方法&#xff…

Filter过滤器及其作用

1.什么是过滤器? 过滤器,顾名思义就是起到过滤筛选作用的一种事物,只不过相较于现实生活中的过滤器,这里的过滤器过滤的对象是客户端访问的web资源,也可以理解为一种预处理手段,对资源进行拦截后&#xff…

Filter 过滤器的介绍及使用

Filter过滤器 MySql的语法看这篇就够了,传送地址:MySql必知必会 JSP的使用看这篇就够了,传送地址:JSP必知必会 文章目录 Filter过滤器一、Filter过滤器的介绍二、Filter过滤器的使用三、Filter过滤器的生命周期四、FilterConfig类…

Java Servlet中Filter过滤器的原理以及使用方式

详细介绍了Java Web Servlet中的Filter过滤器的原理以及常见用法。 文章目录 1 Filter接口1.1 过滤器的生命周期1.2 doFilter过滤方法 2 Filter的使用3 Filter的执行顺序3.1 多个过滤器 4 Filter的应用4.1 脏话过滤器4.2 编码过滤器4.3 统计IP访问次数4.4 禁止动态资源缓存的过…

python filter过滤器的使用_Python filter过滤器原理及实例应用

filter的语法:filter(函数名字,可迭代的变量) 其实filter就是一个“过滤器”:把【可迭代的变量】中的值,挨个地传给函数进行处理,那些使得函数的返回值为True的变量组成的迭代器对象就是filter表达式的结果 那filter的第一个参数&…

vue filter 过滤器 详解

Vue.js 允许你自定义过滤器filter,可被用于一些常见的文本格式化。 (注意vue版本号不同 用法也稍有不同) 接下来咱们就记录一下最常用的filter过滤器用法。(该示例以多个过滤器为例,当然你也可以删掉第二个过滤器自行…