机器学习知识总结(百面机器学习)

文章目录

  • 特征工程
    • 特征归一化
    • 类别型特征
    • 高维组合特征
    • 文本表示模型
    • Word2Vec
    • 图像数据不足的处理方法
  • 模型评估
    • 准确率
    • 精准率与召回率
    • 平方根误差
    • ROC曲线
    • 距离评估
    • A/B测试
    • 模型评估方法
    • 超参数调优
    • 过拟合和欠拟合
  • 经典算法
    • 支持向量机
    • 逻辑回归
    • 决策树
  • 降维
    • PCA
    • 线性判别分析LDA
  • 非监督学习
    • K均值聚类
    • 高斯混合模型
    • 自组织映射神经网络
  • 优化算法
    • 有监督学习的损失函数

特征工程

对原始数据进行处理,将其提炼为特征

特征归一化

  • “为什么需要对数值类型的特征做归一化?”
    对数值进行归一化可以将所有特征都统一到一个大致相同的数值区间内。最常用的方法有线性函数归一化和零均值归一化
  1. 线性函数归一化
    在这里插入图片描述
  2. 零均值归一化
    “将原始数据映射到均值为0、标准差为1的分布上。具体来说,假设原始特征的均值为μ、标准差为σ,那么归一化公式定义为”
    在这里插入图片描述
    机器学习知识总结(百面机器学习)_第1张图片
    “在学习速率相同的情况下,x1的更新速度会大于x2,需要较多的迭代才能找到最优解。如果将x1和x2归一化到相同的数值区间后,优化目标的等值图会变成图1.1(b)中的圆形,x1和x2的更新速度变得更为一致,容易更快地通过梯度下降找到最优解。”

决策树模型无需归一化

类别型特征

  • 在对数据进行预处理时,应该怎样处理类别型特征?
  1. 序号编码
    处理类别间具有大小关系的数据,比如成绩A>B>C,可以编码为3,2,1
  2. 独热编码
    用于处理无大小关系的数据,例如血型A,B,AB,O,可以编码为(1,0,0,0),(0,1,0,0),(0,0,1,0),(0,0,0,1)
  3. 二进制编码
    利用二进制对id进行哈希,“A型血的ID为1,二进制表示为001;B型血的ID为2,二进制表示为010”
    机器学习知识总结(百面机器学习)_第2张图片
  • 独热编码的注意事项有什么?
  1. 使用稀疏向量节省空间
  2. 配合特征选择来降低维度
    高维度特征会带来几方面的问题。一是在K近邻算法中,高维空间下两点之间的距离很难得到有效的衡量;二是在逻辑回归模型中,参数的数量会随着维度的增高而增加,容易引起过拟合问题;三是通常只有部分维度是对分类、预测有帮助,因此可以考虑配合特征选择来降低维度

高维组合特征

  • 什么是组合特征?如何处理高维组合特征?
    非组合
    机器学习知识总结(百面机器学习)_第3张图片
    组合特征
    机器学习知识总结(百面机器学习)_第4张图片
    若用户的数量为m、物品的数量为n,那么需要学习的参数的规模为m×n。在互联网环境下,用户数量和物品数量都可以达到千万量级,几乎无法学习m×n规模的参数。在这种情况下,一种行之有效的方法是将用户和物品分别用k维的低维向量表示(k< 需要学习的参数的规模变为m×k+n×k(等价于矩阵分解)

  • 组合特征:高维特征下,简单两两组合还是参数过多/过拟合,如何知道应对哪些特征进行组合呢?
    基于决策树的特征组合寻找方法:
    机器学习知识总结(百面机器学习)_第5张图片
    从根节点到叶节点就是特征组合的方式:
    (1)“年龄<=35”且“性别=女”。

(2)“年龄<=35”且“物品类别=护肤”。

(3)“用户类型=付费”且“物品类型=食品”。

(4)“用户类型=付费”且“年龄<=40”
机器学习知识总结(百面机器学习)_第6张图片
这样的两个样本就很好的编码为了(1,1,0,0)和(0,0,1,1)

文本表示模型

  • 有哪些文本表示模型?各有什么优缺点?
  1. 词袋模型和N-gram模型
    将文章分成一个个词,整篇文章是一个长向量,向量中每一维对应一个单词,维的权重则表示词的重要程度,常用TF-IDF来计算
    在这里插入图片描述
    其中TF(t,d)为单词t在文档d中出现的频率,IDF(t)是逆文档频率,用来衡量单词t对表达语义所起的重要性,表示为
    在这里插入图片描述
    将文章划分为单个单词并不一定好,比如北京大学!=北京 + 大学
    将n个单词组成词组就是N—gram模型
  • 主题模型
    主题模型用于从文本库中发现有代表性的主题(得到每个主题上面词的分布特性),并且能够计算出每篇文章的主题分布
  • 词嵌入与深度学习模型
    词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射成低维空间(通常K=50~300维)上的一个稠密向量(Dense Vector)。K维空间的每一维也可以看作一个隐含的主题,只不过不像主题模型中的主题那样直观。
    如果一篇文档有N个词,就可以用一个N×K维的矩阵来表示这篇文档
    不过这样很底层,把这个矩阵输入到模型就晾凉了,所以还需要进一步提取特征。(特征工程非常重要)
    深度学习就可以自动提特征——很多特征人都不理解,但网络就是可以提取出来
    与全连接的网络结构相比,卷积神经网络和循环神经网络一方面很好地抓住了文本的特性,另一方面又减少了网络中待学习的参数,提高了训练速度,并且降低了过拟合的风险。

Word2Vec

  • Word2Vec是如何工作的?
    “CBOW的目标是根据上下文出现的词语来预测当前词的生成概率,如图1.3(a)所示;而Skip-gram是根据当前词来预测上下文中各词的生成概率,如图1.3(b)所示”
    机器学习知识总结(百面机器学习)_第7张图片
    如果两个单词所对应的Word2Vec向量相似度较高,那么它们很可能经常在同样的上下文中出现

图像数据不足的处理方法

  • 在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?

模型信息来源:训练数据信息;模型形成过程中的先验信息
数据不够就多一些先验信息,即根据特定的先验假设去调整、变换或扩展训练数据,让其展现出更多的、更有用的信息,以利于后续模型的训练和学习
训练不足的问题:过拟合
处理方法:模型方面——简化模型,添加约束项,集成学习,Dropout超参数;数据方面——图像扩充

  • 图像扩充的方法有哪些?
  1. 旋转,平移,缩放,裁剪,填充,左右翻转等
  2. 椒盐噪声,高斯噪声
  3. 颜色变换
  4. 改变图像亮度、对比度、清晰度等
  5. 先对图像进行特征提取,利用一些通用的数据扩充或上采样技术,例如SMOTE算法。
  6. 对抗生成模型gan

模型评估

离线评估+在线评估

准确率

  • 准确率的局限性。“Hulu的奢侈品广告主们希望把广告定向投放给奢侈品用户。Hulu通过第三方的数据管理平台(Data Management Platform,DMP)拿到了一部分奢侈品用户的数据,并以此为训练集和测试集,训练和测试奢侈品用户的分类模型。该模型的分类准确率超过了95%,但在实际广告投放过程中,该模型还是把大部分广告投给了非奢侈品用户,这可能是什么原因造成的?”

缺陷:Hulu的奢侈品广告主们希望把广告定向投放给奢侈品用户。Hulu通过第三方的数据管理平台(Data Management Platform,DMP)拿到了一部分奢侈品用户的数据,并以此为训练集和测试集,训练和测试奢侈品用户的分类模型。该模型的分类准确率超过了95%,但在实际广告投放过程中,该模型还是把大部分广告投给了非奢侈品用户,这可能是什么原因造成的?

奢侈品用户只占Hulu全体用户的一小部分,虽然模型的整体分类准确率高,但是不代表对奢侈品用户的分类准确率也很高。在线上投放过程中,我们只会对模型判定的“奢侈品用户”进行投放,因此,对“奢侈品用户”判定的准确率不够高的问题就被放大了。为了解决这个问题,可以使用更为有效的**平均准确率(每个类别下的样本准确率的算术平均)**作为模型评估的指标。

精准率与召回率

  • Hulu提供视频的模糊搜索功能,搜索排序模型返回的Top 5的精确率非常高,但在实际使用过程中,用户还是经常找不到想要的视频,特别是一些比较冷门的剧集,这可能是哪个环节出了问题呢?

机器学习知识总结(百面机器学习)_第8张图片
在这里插入图片描述

平方根误差

  • Hulu作为一家流媒体公司,拥有众多的美剧资源,预测每部美剧的流量趋势对于广告投放、用户增长都非常重要。我们希望构建一个回归模型来预测某部美剧的流量趋势,但无论采用哪种回归模型,得到的RMSE指标都非常高。然而事实是,模型在95%的时间区间内的预测误差都小于1%,取得了相当不错的预测结果。那么,造成RMSE指标居高不下的最可能的原因是什么?”
    机器学习知识总结(百面机器学习)_第9张图片
    “一般情况下,RMSE能够很好地反映回归模型预测值与真实值的偏离程度。但在实际问题中,如果存在个别偏离程度非常大的离群点(Outlier)时,即使离群点数量非常少,也会让RMSE指标变得很差”

  • 离群点的rmse解决方案

  1. 认定是噪声,预处理过滤掉
  2. 不认为是噪声,将离群点产生的机制建模进去
  3. 寻找更合适的指标(非rmse)评估模型,比如平均绝对百分比误差(“Mean Absolute Percent Error,MAPE),可以认为是归一化了。
    在这里插入图片描述

ROC曲线

横坐标是FPR,纵坐标是TPR
在这里插入图片描述在这里插入图片描述
P是真实的正样本的数量,N是真实的负样本的数量,TP是P个正样本中被分类器预测为正样本的个数,FP是N个负样本中被分类器预测为正样本的个数
机器学习知识总结(百面机器学习)_第10张图片

  • ROC曲线和PR曲线相比有什么特点?
    ROC曲线有一个特点,当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化,这个特点让ROC曲线能够尽量降低不同测试集带来的干扰

摘录来自: 诸葛越. “百面机器学习 算法工程师带你去面试。” Apple Books.
机器学习知识总结(百面机器学习)_第11张图片
在很多实际问题中,正负样本数量往往很不均衡。比如,计算广告领域经常涉及转化率模型,正样本的数量往往是负样本数量的1/1000甚至1/10000。若选择不同的测试集,P-R曲线的变化就会非常大,而ROC曲线则能够更加稳定地反映模型本身的好坏。所以,ROC曲线的适用场景更多,被广泛用于排序、推荐、广告等领域。但需要注意的是,选择P-R曲线还是ROC曲线是因实际问题而异的,如果研究者希望更多地看到模型在特定数据集上的表现,P-R曲线则能够更直观地反映其性能。

距离评估

  • 结合你的学习和研究经历,探讨为什么在一些场景中要使用余弦相似度而不是欧氏距离?
    余弦相似度如下,范围是[-1,1],余弦距离是1-余弦相似度,范围是[0,2]
    在这里插入图片描述
    欧式距离体现数值上的差异,余弦距离体现方向上的差异。
    例如,统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);此时二者的余弦距离很大,而欧氏距离很小;我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当使用余弦距离。而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单位:分钟)作为特征时,余弦距离会认为(1,10)、(10,100)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。

A/B测试

在互联网公司中,A/B 测试是验证新模块、新功能、新产品是否有效,新算法、新模型的效果是否有提升,新设计是否受到用户欢迎,新更改是否影响用户体验的主要测试方法。在机器学习领域中,A/B 测试是验证模型最终效果的主要手段

  • “在对模型进行过充分的离线评估之后,为什么还要进行在线A/B测试?”
  1. 离线评估无法完全消除模型过拟合的影响
  2. 离线评估无法完全还原线上的工程环境。一般来讲,离线评估往往不会考虑线上环境的延迟、数据丢失、标签数据缺失等情况。因此,离线评估的结果是理想工程环境下的结果
  3. 线上系统的某些商业指标在离线评估中无法计算。离线评估一般是针对模型本身进行评估,而与模型相关的其他指标,特别是商业指标,往往无法直接获得。比如,上线了新的推荐算法,离线评估往往关注的是ROC曲线、P-R曲线等的改进,而线上评估可以全面了解该推荐算法带来的用户点击率、留存时长、PV访问量等的变化。这些都要由A/B测试来进行全面的评估
  • 如何进行线上A/B测试?
    进行A/B测试的主要手段是进行用户分桶,即将用户分成实验组和对照组,对实验组的用户施以新模型,对对照组的用户施以旧模型。在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到同一个桶中,在分桶过程中所选取的user_id需要是一个随机数,这样才能保证桶中的样本是无偏的

  • 如何划分实验组和对照组?
    问题:H公司的算法工程师们最近针对系统中的“美国用户”研发了一套全新的视频推荐模型A,而目前正在使用的针对全体用户的推荐模型是B。在正式上线之前,工程师们希望通过A/B测试来验证新推荐模型的效果。下面有三种实验组和对照组的划分方法,请指出哪种划分方法是正确的?

(1)根据user_id(user_id完全随机生成)个位数的奇偶性将用户划分为实验组和对照组,对实验组施以推荐模型A,对照组施以推荐模型B;

(2)将user_id个位数为奇数且为美国用户的作为实验组,其余用户为对照组;

(3)将user_id个位数为奇数且为美国用户的作为实验组,user_id个位数为偶数的用户作为对照组

答:“上述3种A/B测试的划分方法都不正确。我们用包含关系图来说明三种划分方法,如图2.4所示。方法1(见图2.4(a))没有区分是否为美国用户,实验组和对照组的实验结果均有稀释;“方法2(见图2.4(b))的实验组选取无误,并将其余所有用户划分为对照组,导致对照组的结果被稀释;方法3(见图2.4(c))的对照组存在偏差。正确的做法是将所有美国用户根据user_id个位数划分为试验组合对照组(见图2.4(d)),分别施以模型A和B,才能够验证模型A的效果。
机器学习知识总结(百面机器学习)_第12张图片机器学习知识总结(百面机器学习)_第13张图片

模型评估方法

“在机器学习中,我们通常把样本分为训练集和测试集,训练集用于训练模型,测试集用于评估模型。在样本划分和模型验证的过程中,存在着不同的抽样方法和验证方法”

  • 在模型评估过程中,有哪些主要的验证方法,它们的优缺点是什么?
  1. Holdout检验
    随机划分,比如70%是训练集,剩下30%是测试集
    优点:方便简单
    缺点:效果和原始分组关系很大
  2. 交叉检验
    k-fold交叉验证:分成k份,训练测试共进行k次,取评估的平均值
    留一法:每次留一份训练,剩余的测试。组合太多,开销太大,基本不用。
    优点:消除了随机性
  3. 自助法
    不分训练集和测试集了(避免训练可用的数据更少了)
    对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集,进行模型验证,这就是自助法的验证过程
  • n趋于无穷大时,最终有多少数据没被选择过?
    机器学习知识总结(百面机器学习)_第14张图片
    这个重要的极限是基础(对于上图的左边部分)
    在这里插入图片描述

超参数调优

需要明确超参数搜索算法一般包括哪几个要素。一是目标函数,即算法需要最大化/最小化的目标;二是搜索范围,一般通过上限和下限来确定;三是算法的其他参数,如搜索步长

  • 有哪些超参数调优方法?
  1. 网格搜索
  2. 随机搜索
  3. 贝叶斯优化算法
    和“网格搜索、随机搜索完全不同的方法。网格搜索和随机搜索在测试一个新点时,会忽略前一个点的信息;而贝叶斯优化算法则充分利用了之前的信息。贝叶斯优化算法通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的参数。具体来说,它学习目标函数形状的方法是,首先根据先验分布,假设一个搜集函数;然后,每一次使用新的采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。对于贝叶斯优化算法,有一个需要注意的地方,一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。为了弥补这个缺陷,贝叶斯优化算法会在探索和利用之间找到一个平衡点,“探索”就是在还未取样的区域获取采样点;而“利用”“则是根据后验分布在最可能出现全局最值的区域进行采样。”

过拟合和欠拟合

机器学习知识总结(百面机器学习)_第15张图片

  • 降低过拟合的方法?
  1. 获取更多数据
  2. 降低模型复杂度
  3. 正则化
  4. 集成学习
  • 降低欠拟合的方法?
  1. 添加新特征
    在深度学习潮流中,有很多模型可以帮助完成特征工程,如因子分解机、梯度提升决策树、Deep-crossing等都可以成为丰富特征的方法
  2. 增加模型复杂度
  3. 减小正则化系数

经典算法

支持向量机

  • 在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的投影仍然是线性可分的吗?
    答:no!“对于任意线性可分的两组点,它们在SVM分类的超平面上的投影都是线性不可分的”

  • 是否存在一组参数使SVM训练误差为0?
    答:一个使用高斯核训练的SVM中,试证明若给定训练集中不存在两个点在同一位置,则存在一组参数 α 1 , . . . , α m , b {α1,...,αm,b} α1,...,αm,b以及参数 γ γ γ使得该SVM的训练误差为0。

  • 训练误差为0的SVM分类器一定存在么?
    答:存在

  • 加入松弛变量的SVM的训练误差可以为0吗?
    使用SMO算法训练的线性分类器并不一定能得到训练误差为0的模型

逻辑回归

  • 逻辑回归和线性回归相比有何异同?
    答:
  1. 逻辑回归是分类问题,线性回归是回归问题
  2. 逻辑回归的因变量是离散的,线性回归是连续的
  • 逻辑回归处理多标签的分类问题时,有哪些做法,分别应用于哪些场景?
  1. 一个样本只对应一个标签。
    看成是多个独立二元回归的集合。对于K个可能的分类结果,选择结果K作为主类别,运行K-1个独立二元逻辑回归模型
  2. 样本可能属于多个标签
    训练k个二分类的逻辑分类器,把标签重新整理为“第i类标签”与“非第i类标签”两类

决策树

  • 决策树有哪些常用的启发函数?
  1. ID3-最大信息增益
  2. C4.5-最大信息增益比
  3. CART-最大基尼系数

比较:
(1)ID3倾向于选择取值较多的特征。因为,信息增益反映的是给定条件以后不确定性减少的程度,特征取值越多就意味着确定性更高,也就是条件熵越小,信息增益越大。这是有问题的,比如学号,DNA,ID的增益一定是最优的,但是泛化很弱。
C4.5是优化后的,通过引入信息增益比,一定程度上对取值比较多的特征进行惩罚,避免ID3出现过拟合的特性,提升决策树的泛化能力
(2) ID3只能处理离散变量,其他两个可以处理连续的。
C4.5处理连续型变量时,通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续型变量转换多个取值区间的离散型变量。而对于CART,由于其构建时每次都会对特征进行二值划分,因此可以很好地适用于连续性变量。
(3)从应用角度,ID3和C4.5只能用于分类任务,而CTRA既可以分类也可以回归
(4)从实现细节和优化角度。“C4.5处理连续型变量时,通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续型变量转换多个取值区间的离散型变量。而对于CART,由于其构建时每次都会对特征进行二值划分,因此可以很好地适用于连续性变量。”

  • 如何对决策树进行剪枝
  1. 预剪枝
    (1)当树到达一定深度的时候,停止树的生长。
    (2)当到达当前结点的样本数量小于某个阈值的时候,停止树的生长。
    (3)计算每次分裂对测试集的准确度提升,当小于某个阈值的时候,不再继续扩展
  2. 后剪枝
    先生成树,然后利用测试集来剪枝

降维

PCA

  • 如何定义主成分?从这种定义出发,如何设计目标函数使得降维达到提取主成分的目的?针对这个目标函数,如何对PCA问题进行求解?
    答:
    (1)对样本数据进行中心化处理。

    (2)求样本协方差矩阵。

    (3)对协方差矩阵进行特征值分解,将特征值从大到小排列。

    (4)取特征值前d大对应的特征向量ω1,ω2,…,ωd,通过以下映射将n维样本映射到d

线性判别分析LDA

相比于PCA,LDA可以作为一种有监督的降维算法。在PCA中,算法没有考虑数据的标签(类别),只是把原数据映射到一些方差比较大的方向上而已
机器学习知识总结(百面机器学习)_第16张图片
根据PCA算法,数据应该映射到方差最大的那个方向,亦即y轴方向。但是,C1,C2两个不同类别的数据就会完全混合在一起,很难区分开。所以,使用PCA算法进行降维后再进行分类的效果会非常差。但是,如果使用LDA算法,数据会映射到x轴方向
最大化的目标对应了一个矩阵的特征值,于是LDA降维变成了一个求矩阵特征向量的问题,投影方向就是特征值对应的特征向量
Fisher LDA相比PCA更善于对有类别信息的数据进行降维处理,但它对数据的分布做了一些很强的假设,例如,每个类数据都是高斯分布、各个类的协方差相等。尽管这些假设在实际中并不一定完全满足,但LDA已被证明是非常有效的一种降维方法。主要是因为线性模型对于噪声的鲁棒性比较好,但由于模型简单,表达能力有一定局限性,我们可以通过引入核函数扩展LDA方法以处理分布较为复杂的数据

  • 如何判断使用PCA还是LDA?
    “对无监督的任务使用PCA进行降维,对有监督的则应用LDA”

非监督学习

数据聚类 and 特征变量关联

K均值聚类

  • 简述k-means步骤
选择K个点作为初始质心(随机产生或者从D中选取)  
repeat  
    将每个点分配到最近的质心,形成K个簇  
    重新计算每个簇的质心  
until 簇不发生变化或达到最大迭代次数  
  • k均值算法的收敛分析
    在这里插入图片描述
    与其他机器学习算法一样,我们要最小化这个代价函数,但这个函数没有解析解,所以只能通过迭代求解的方法来逼近最优解(这一点也和众多机器学习算法一样吧)。所以你再看看算法步骤,其实就是一个迭代过程。

由于代价函数(SSE)是非凸函数,所以在运用Kmeans算法时,不能保证收敛到一个全局的最优解,我们得到的一般是一个局部的最优解。

因此,为了取得比较好的效果,我们一般会多跑几次算法(用不同的初始质心),得到多个局部最优解,比较它们的SSE,选取SSE最小的那个。

  • k均值算法的优缺点是什么?
    缺点:
    (1)受初值和离群点的影响每次的结果不稳定
    (2)结果通常不是全局最优而是局部最优解
    (3)无法很好地解决数据簇分布差别比较大的情况(比如一类是另一类样本数量的100倍)
    (4)不太适用于离散分类
    优点:
    对于大数据集,K均值聚类算法相对是可伸缩和高效的,它的计算复杂度是O(NKt)接近于线性,其中N是数据对象的数目,K是聚类的簇数,t是迭代的轮数。尽管算法经常以局部最优结束,但一般情况下达到的局部最优已经可以满足聚类的需求

  • k均值算法如何调优
    (1)数据归一化和离群点处理
    (2)合理选择K值
    可以尝试不同的K值,并将不同K值所对应的损失函数画成折线,横轴为K的取值,纵轴为误差平方和所定义的损失函数。找这个拐点(K=3)
    机器学习知识总结(百面机器学习)_第17张图片
    (3)采用核函数
    传统的欧式距离度量方式,使得K均值算法本质上假设了各个数据簇的数据具有一样的先验概率,并呈现球形或者高维球形分布,这种分布在实际生活中并不常见。面对非凸的数据分布形状时,可能需要引入核函数来优化,这时算法又称为核K均值算法,是核聚类方法的一种[6]。核聚类方法的主要思想是通过一个非线性映射,将输入空间中的数据点映射到高位的特征空间中,并在新的特征空间中进行聚类。非线性映射增加了数据点线性可分的概率,从而在经典的聚类算法失效的情况下,通过引入核函数可以达到更为准确的聚类结果

  • 针对k均值算法的缺点,有哪些改进的模型?

  1. k-means++算法
    原始K均值算法最开始随机选取数据集中K个点作为聚类中心,而K-means++按照如下的思想选取K个聚类中心。假设已经选取了n个初始聚类中心(0
  2. ISODATA算法
    当K值的大小不确定时,可以使用ISODATA算法。ISODATA的全称是迭代自组织数据分析法。在K均值算法中,聚类个数K的值需要预先人为地确定,并且在整个算法过程中无法更改。而当遇到高维度、海量的数据集时,人们往往很难准确地估计出K的大小。ISODATA算法就是针对这个问题进行了改进,它的思想也很直观。当属于某个类别的样本数过少时,把该类别去除;当属于某个类别的样本数过多、分散程度较大时,把该类别分为两个子类别

-ISODATA算法参数有哪些?
ISODATA算法是一个比较常见的算法,其缺点是需要指定的参数比较多,不仅仅需要一个参考的聚类数量Ko,还需要制定3个阈值。下面介绍ISODATA算法的各个输入参数

(1)预期的聚类中心数目Ko。在ISODATA运行过程中聚类中心数可以变化,Ko是一个用户指定的参考值,该算法的聚类中心数目变动范围也由其决定。具体地,最终输出的聚类中心数目常见范围是从Ko的一半,到两倍Ko。

(2)每个类所要求的最少样本数目Nmin。如果分裂后会导致某个子类别所包含样本数目小于该阈值,就不会对该类别进行分裂操作。

(3)最大方差Sigma。用于控制某个类别中样本的分散程度。当样本的分散程度超过这个阈值时,且分裂后满足(1),进行分裂操作。

(4)两个聚类中心之间所允许最小距离Dmin。如果两个类靠得非常近(即这两“个类别对应聚类中心之间的距离非常小),小于该阈值时,则对这两个类进行合并操作。

高斯混合模型

也是一种常见的聚类算法,与K均值算法类似,同样使用了EM算法进行迭代计算”,高斯混合模型假设每个簇的数据都是符合高斯分布(又叫正态分布)的,当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。
用多个高斯分布函数的线形组合来对数据分布进行拟合。理论上,高斯混合模型可以拟合出任意类型的分布
机器学习知识总结(百面机器学习)_第18张图片

  • 高斯混合模型的思想是什么?如何迭代计算的?
    高斯混合模型的核心思想是,假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值 μ i μ_i μi和方差 Σ i Σ_i Σi是待估计的参数。此外,每个分模型都还有一个参数 π i π_i πi,可以理解为权重或生成数据的概率。高斯混合模型的公式为

摘录来自: 诸葛越. “百面机器学习 算法工程师带你去面试。” Apple Books.
通常我们并不能直接得到高斯混合模型的参数,而是观察到了一系列数据点,给出一个类别的数量K后,希望求得最佳的K个高斯分模型。因此,高斯混合模型的计算,便成了最佳的均值 μ μ μ,方差 Σ Σ Σ、权重 π π π的寻找,这类问题通常通过最大似然估计来求解,得到非常复杂的凸函数,目标函数是和的对数,难以展开和求偏导
在这种情况下,可以用上一节已经介绍过的EM算法框架来求解该优化问题。EM算法是在最大化目标函数时,先固定一个变量使整体函数变为凸优化函数,求导得到最值,然后利用最优参数更新被固定的变量,进入下一个循环
高斯混合模型与K均值算法的相同点是,它们都是可用于聚类的算法;都需要指定K值;都是使用EM算法来求解;都往往只能收敛于局部最优。而它相比于K均值算法的优点是,可以给出一个样本属于某类的概率是多少;不仅仅可以用于聚类,还可以用于概率密度的估计;并且可以用于生成新的样本点

自组织映射神经网络

SOM是无监督学习方法中一类重要方法,可以用作聚类、高维可视化、数据压缩、特征提取等多种用途

  • 自组织神经网络是如何工作的?和k均值算法有何区别?
    答:本质上是一个两层的神经网络,输入层和输出层,输出层神经元的个数通常是聚类的个数。
    自组织映射神经网络与K均值算法的区别如下。
    (1)K均值算法需要事先定下类的个数,也就是K的值。而自组织映射神经网络则不用,隐藏层中的某些节点可以没有任何输入数据属于它,因此聚类结果的实际簇数可能会小于神经元的个数。而K均值算法受K值设定的影响要更大一些。
    (2)K均值算法为每个输入数据找到一个最相似的类后,只更新这个类的参数;自组织映射神经网络则会更新临近的节点。所以,K均值算法受noise data的影响比较大,而自组织映射神经网络的准确性可能会比K均值算法低(因为也更新了临近节点)。
    (3)相比较而言,自组织映射神经网络的可视化比较好,而且具有优雅的拓扑关系图

优化算法

有监督学习的损失函数

  • 有监督学习的损失函数有哪些

你可能感兴趣的:(机器学习实战,机器学习,算法面试)