实在降维算法没那么繁芜,是无监督学习的一种运用,大略来说便是:抓重点。
欢迎一起探索AI的天下。
无监督学习中比较常见的有两类算法,一个是聚类算法,还有一个是降维算法。
关于聚类算法,我在上一篇《8000字详解“聚类算法”,从理论实现到案例解释》中有重点说到,先容了聚类算法中的K均值聚类算法和层次聚类算法。从基本观点提及,聊到算法实现的步骤,通过假设案例带入实际场景。
比如,K均值聚类算法可以将客户分为不同的群体,能帮助企业更好地理解客户,制订更有效的营销策略。
层次聚类算法中的AGNES算法可以将相似的文档归为一类,帮助企业更好地管理和剖析文档。DIANA算法可以完成学情剖析,帮助学校或教诲机构更好地理解学生的学习情形,制订更有效的传授教化策略。
本篇,我们一起来学习理解降维算法,先从观点处入手,逐步理解其技能事理和特点,末了再结合场景案例,加深我们对降维算法的运用和理解。
全文8000字旁边,估量阅读韶光15分钟,若是碎片韶光不足,建议先收藏后看,便于找回。
照例,开篇供应本篇文章的目录大纲,方便大家在阅读前统辖全局,对内容框架有预先理解。
一、降维算法的基本观点
降维算法是机器学习中用于减少数据集维度的一种技能,其目的是在尽可能保留数据中有用信息的条件下,降落数据的繁芜性。
减少数据集维度是指通过数学变换或特色选择等方法,降落数据集中特色的数量或降落数据点在某个空间中的表示的维度。这一过程常日被称为降维(Dimensionality Reduction)。
减少数据集维度的紧张目的是为了简化数据模型,提高数据处理的效率,并可能改进模型的性能。
在实际运用中,数据集每每包含大量的特色,这些特色中有的可能彼此干系,有的可能是噪声或冗余的。如果直接在这些特色上构建模型,可能会导致模型繁芜度高,演习韶光长,且随意马虎过拟合。
正由于如此,我们须要降维算法出马,来减少数据集维度,办理各种实际问题。
1. 降维的三大上风
在说降维算法之前,我们先单独聊聊降维,降维有三大上风:去除冗余特色、降落打算繁芜度、利于数据可视化。
上风一:【去除冗余特色】
在数据中,一些特色可能是其他特色的线性组合,或者与某些特色高度干系。冗余特色不仅会增加模型的繁芜性,还可能导致过拟合,降落模型的泛化能力。通过降维,我们可以去除这些冗余特色,从而简化模型。
假设我们有一个关于房价的数据集,个中包含了房屋的大小(Feature A)、房屋的年事(Feature B)、房屋的寝室数量(Feature C)和房屋的卫生间数量(Feature D)。
如果我们创造Feature A和Feature B之间存在高度干系性(例如,房屋年事越大,常日房屋面积也越大),那么Feature A就可以被Feature B所线性表示。
在这种情形下,我们可以考虑去除Feature A,由于它供应了与Feature B相似的信息。
又例如,如果我们创造Feature C和Feature D之间也存在高度干系性,这可能意味着寝室数量和卫生间数量在某种程度上是干系的(例如,在一些地区,随着房屋面积的增加,寝室和卫生间数量也会增加)。
在这种情形下,我们可以考虑去除个中一个特色,由于它们可能包含冗余信息。
从例子中,我们通过去除一些冗余特色,就可以简化模型,降落模型的繁芜性,并可能提高模型的性能。
不过在实际运用中,选择得当的特色去除方法须要根据数据的特点和业务需求来决定,切不可无脑照搬。
上风二:【降落打算繁芜度】
降落打算繁芜度是降维可以办理的另一大问题,尤其是在处理大规模数据集时。通过减少数据集的维度,可以显著减少模型所需的打算资源,从而加快演习和预测的速率。
假设我们有一个关于用户行为的数据集,个中包含了成千上万个特色,如用户的人口统计信息、浏览历史、购买记录等。
如果直接在这些特色上构建一个线性回归模型,模型可能会非常繁芜,演习和预测的速率会很慢。
但是通过利用主身分剖析(PCA)进行降维,我们可以将原始特色的数量减少到几百个最主要的特色,这些特色能够阐明大部分的方差。
在这种情形下,降维后的模型将具有更少的参数,演习和预测的速率将显著提高。个中,主身分剖析(PCA)是降维算法中比较常见的算法之一,我们后续会讲解到。
上风三:【利于数据可视化】
降维还可以帮助我们更好地理解和可视化数据,通过将高维数据投影到二维或三维空间,我们可以更随意马虎地不雅观察数据的构造和模式。
高维数据投影到二维或三维空间后,我们可以利用各种可视化工具来赞助剖析,如散点图、柱状图、热力争等,来展示数据之间的关系和模式。
假设我们有一个关于社交网络用户的数据集,个中包含了用户的基本信息(如年事、性别、地理位置等)以及他们的社交行为(如发帖频率、互动数量、内容类型等)。这个数据集可能是高维的,包含了成百上千个特色。
为了更好地理解这个社交网络的数据构造和用户群体的行为模式,我们可以利用降维技能来简化数据。
例如,我们可以利用主身分剖析(PCA)将数据投影到二维空间,然后利用t-SNE进一步细化到低维空间。
t-SNE是一种基于概率的降维技能,它能够在低维空间中保持高维空间中数据点之间的相似性。t-SNE常日用于天生数据点之间的繁芜关系图,从而更好地理解数据的构造。
通过以上的降维处理,我们可以天生一张二维的散点图,每个点代表一个用户,点的坐标由PCA或t-SNE算法确定。
在这个散点图中,我们可以不雅观察到不同年事、性别和地理位置的用户的社交行为模式。
例如,我们可以看到哪些类型的用户更生动,哪些类型的用户更方向于与特定类型的内容互动。
通过这样的数据可视化,我们可以直不雅观地看到用户群体的分布和行为模式,它可以帮助我们识别目标用户群体,理解他们的行为习气,并据此优化用户体验,提高用户参与度和满意度。
2. 降维的两大方法
既然降维有那么多好处,那么它又是如何在人工智能领域发挥其上风的呢?这源于降维的两大方法:特色选择和特色提取。
方法一:【特色选择】
特色选择是从原始特色凑集中选择出一组对目标变量有较强阐明能力的特色子集的过程。这一过程的目标是去除冗余特色和不干系的特色,以简化模型并提高模型的性能。特色选择不改变数据本身的维度,只是简化特色空间。
比如,基于干系性剖析来实现特色选择,通过打算特色与目标变量之间的干系系数或干系性矩阵,可以找出与目标变量干系性较高的特色。
常日选择干系性较高的特色,去除干系性较低的特色。由于干系性较高的特色常日被认为对目标变量有较强的阐明能力,而干系性较低的特色可能与目标变量关系不大或包含冗余信息。
就拿我们刚举例过的房价数据集来连续假设一下吧。
房价的数据集中包含了房屋的大小(Feature A)、房屋的年事(Feature B)、房屋的寝室数量(Feature C)和房屋的卫生间数量(Feature D),我们的目标是预测房价。
通过干系性剖析,我们打算了每个特色与房价之间的干系系数。假设我们创造Feature A(房屋的大小)与房价之间的干系系数为0.8,而Feature B(房屋的年事)与房价之间的干系系数为0.5。
在这种情形下,我们可以认为Feature A与房价之间的关联程度更高,因此选择Feature A作为主要的特色。而Feature B与房价之间的关联程度较低,可能包含冗余信息或其他不主要的成分。
因此,我们可能会考虑去除Feature B,或者在模型中给予较低的权重。这便是降维中的特色选择方法在实际问题中可以利用的地方。
方法二:【特色提取】
特色提取是通过数学变换将高维数据映射到低维空间的过程,同时尽可能保留原始数据中的信息,这种方法会改变数据的维度。特色提取的目标是减少数据的繁芜性,同时保持数据的紧张构造和特色。
由理论代入实践,我们来连续假设一些案例。
假设我们有一个关于社交媒体平台用户天生内容的数据集,个中包含了用户的帖子、评论、点赞、分享等互动行为,以及用户的人口统计信息、地理位置、兴趣偏好等特色。
我们期望通过数据集剖析用户行为模式,识别有影响力的内容创作者,以及创造热门话题。
为了简化这个高维数据集并识别出关键的用户行为和内容特色,我们可以利用主身分剖析(PCA)进行特色提取。
通过PCA,我们可以将原始数据投影到二维空间,天生一张散点图。在这个散点图中,我们可以不雅观察到不同用户或内容的互动模式,以及它们如何与特定的人口统计特色或兴趣偏好干系联。
又或者,在文本数据剖析中,每条帖子或评论都可以被表示为一个高维的特色向量,包括词汇频率、情绪剖析得分、主题模型等。
通过利用PCA或t-SNE进行特色提取,我们可以将文本的特色向量降落到二维或三维,天生一张关系图。
在这个关系图中,我们可以不雅观察到内容之间的相似性和差异性,从而更好地理解内容的主题分布和用户互动模式。
通过这样的特色提取,我们可以识别出对用户行为和内容趋势最主要的特色,如情绪方向、话题干系性、互动热度等,从而简化数据并保持数据的紧张构造和特色。
这对付新媒体平台的内容策略制订、用户参与度提升和市场趋势剖析非常主要,由于它可以帮助他们优化推举算法,提升用户体验,并制订更有效的内容营销策略。
通过特色提取,通过数学变换将高维数据映射到低维空间,简化数据并保持数据的紧张构造和特色,可以在很多业务场景中发挥算法的魅力。
二、常见的降维算法
如果说,降维是一个目标,那么降维算法便是达到目标的详细技能或方法。降维是通过减少数据集的维度来简化数据的过程,而降维算法则是通过数学变换或特色选择,将这过程得以实现。
在人工智能领域,我们常用的降维算法有主身分剖析(PCA)、线性判别剖析(LDA)、因子剖析(Factor Analysis)、局部线性嵌入(LLE)、等距映射(Isomap)、t-SNE、自编码器(Autoencoder)等。
主身分剖析(PCA)
事理:PCA通过正交变换将数据投影到新的坐标系上,使得新坐标系的前几个主身分能够阐明大部分的方差。
运用:PCA常用于数据可视化、特色提取和噪声过滤。
线性判别剖析(LDA)
事理:LDA旨在找到投影方向,使得不同类别的样本尽可能分开,而同类的样本尽可能聚拢。
运用:LDA常用于特色选择和分类任务,特殊是在须要考虑不同种别间差异的情形下。
因子剖析(Factor Analysis)
事理:因子剖析类似于PCA,但它试图找到数据的潜在因子构造,并许可因子之间存在干系性。
运用:因子剖析常用于生理学、市场研究等领域,用于创造数据中的潜在维度。
局部线性嵌入(LLE)
事理:LLE是一种非线性降维方法,它试图保持数据在低维空间中的临近性关系。
运用:LLE适用于创造非线性数据中的构造,常用于图像和文本数据的降维。
等距映射(Isomap)
事理:Isomap是一种基于流形的降维技能,它通过保持数据点之间的局部间隔关系来降落数据的维度。
运用:Isomap适用于高维空间中的数据,特殊是在数据点之间存在繁芜非线性关系时。
t-SNE
事理:t-SNE是一种基于概率的降维技能,它试图在低维空间中保持高维空间中数据点之间的相似性。
运用:t-SNE常用于天生数据点之间的繁芜关系图,从而更好地理解数据的构造,特殊是在图像和文本数据中。
自编码器(Autoencoder)
事理:自编码器是一种神经网络,它试图通过编码器将数据编码到一个低维空间,然后通过解码看重建原始数据。
运用:自编码器可以用于无监督的降维,特殊是在数据量较大时,也常用于特色学习和数据去噪
降维算法各有优缺陷,适用于不同的运用处景。在实际运用中,选择得当的降维算法须要根据数据的特点和降维的目的来决定。
为了能更清晰透彻地理解降维算法,接下来我们就取最常见的主身分剖析(PCA),环绕这一算法展开进一步地深入解读。
1. 主身分剖析(PCA)是什么?
我们从降维的观点中已知降维可以减少数据集的维度,同时保留数据集中的主要信息。
主身分剖析(PCA)作为降维技能之一 ,它通过线性变换将原始数据映射到一个新的坐标系中,在新的坐标系中,数据的方差被最大化。
这样做的目的是为了找到数据中最主要的特色或者主身分,简化数据的剖析和可视化过程。
PCA可以去除数据中的冗余特色,减少数据的存储和处理本钱,也可以用于图像识别、语音识别等模式识别任务。
2. PCA的事情事理和步骤
主身分剖析(PCA)的实现步骤紧张分5步完成,我们可以从其事情事理和步骤中,进一步理解PCA的特点。
【1.数据标准化】
数据标准化是数据预处理的一个主要步骤,它涉及到将数据集中的每个特色转换为具有零均值和单位方差的分布。紧张的便是对原始数据进行标准化处理,让每个特色的均值为0,标准差为1。
其目的是将原始数据转换为具有相同尺度的标准化数据,以肃清不同特色之间的量纲差异,确保各个特色对主身分剖析的影响权重相同,避免某些特色的方差过大对主身分剖析结果产生影响。
数据标准化的打算过程大致分三步:均值移除、标准差打算、数据标准化。
数据标准化后,每个特色的均值为0,标准差为1,从而担保了数据的相对同等性,有利于主身分剖析的准确性和稳定性。
【2.打算协方差矩阵】
PCA通过打算数据集的协方差矩阵来确定数据之间的干系性。协方差矩阵表示了数据中各个特色之间的干系性程度,可通过对角线元素和非对角线元素进行进一步剖析,得出结论。
在直言协方差矩阵前,我们要重温一些数学根本知识,相信大家上学时,都打仗过方差和协方差。
方差是描述随机变量分布的一种统计量,它衡量了随机变量的取值偏离其均值的程度。在数学上,方差表示了每个样本与均值之间的差异的平方的均匀值。方差越大,意味着样本的取值越分散;方差越小,意味着样本的取值越集中。
方差的打算公式如下:
而协方差,是衡量两个随机变量(或特色)变异程度的一种办法,它描述了两个变量如何一起变革。协方差可以是正的、负的或零,正协方差表示两个变量正干系,负协方差表示它们负干系,零协方差表示它们不干系。
协方差打算中,对付两个随机变量X和Y,它们的协方差可以通过以下公式来表示:
再便是打算协方差矩阵,对付数据集中的所有特色,我们须要打算每对特色之间的协方差,这将形成一个协方差矩阵。这个矩阵的对角线元素是每个特色的方差,表示该特色的分散程度。非对角线元素表示了不同特色之间的协方差,表示了不同特色之间的干系性。
协方差矩阵在PCA中的运用是为了找到能够最大程度地保留数据变异性的主身分。通过剖析协方差矩阵,我们可以确定哪些特色之间存在较强的干系性,并据此进行降维。
【3.打算特色值和特色向量】
对协方差矩阵进行特色值分解,得到特色值和对应的特色向量。特色值表示了数据集中各个主身分的主要程度,而特色向量则表示了每个主身分的方向。
在特色值分解后,我们可以按照特色值的大小顺序来确定主身分的主要性,由于特色值越大,对应的主身分在数据中所阐明的方差就越大。换句话说,特色值越大的主身分所包含的信息量越丰富,对数据集的整体变革越具有代表性。
特色向量指示了数据集在每个主身分方向上的变革趋势。换句话说,每个特色向量对应于一个特色值,它定义了一个主身分在数据空间中的方向。因此,特色向量是我们理解主身分在数据中如何分布和变革的关键。
特色值和特色向量的结果对付理解数据的内在构造、进行数据降维以及构建高效的机器学习模型至关主要。
它们可以帮助我们识别出最主要的数据特色,进行特色选择。或者通过保留最大的几个特色值对应的特色向量,实现数据的降维,简化模型。
它们还可以理解不同特色之间的关系,进行数据可视化和探索性数据剖析。在某些情形下,特色值和特色向量还可以用于数据洗濯,识别和去除噪声或非常值。
在Python中,可以利用NumPy库来打算矩阵的特色值和特色向量。以下是一个大略的示例代码:
在这个示例中,我们导入NumPy库,并创建了一个示例矩阵 A。然后,利用 np.linalg.eig 函数来打算矩阵 A 的特色值和特色向量。这只是一个大略的示例,实际运用中,还须要根据实际情形做出灵巧调度。
【4.选择主身分】
根据特色值的大小,选择前k个最大的特色值对应的特色向量作为新的主身分。这些主身分捕获了数据中最显著的变革方向,并且能够保留大部分数据的信息。
常日,选择的k值是降维后的维度,即终极保留的主身分个数。k 代表了降维后数据的新维度数。选择 k 个主身分意味着我们将原始数据从高维空间投影到由 k 个主身分定义的低维空间。
比如说,我们有一个包含1000个样本和50个特色的数据集。通过PCA剖析,我们打算出了协方差矩阵的特色值和特色向量。我们创造前5个特色值远大于其他特色值,因此我们选择这5个特色值对应的特色向量作为主身分。这意味着我们将数据从50维降维到5维,同时保留了数据中的大部分信息。
【5.投影数据】
投影数据便是将原始数据投影到选定的主身分上,得到降维后的数据集。
这一步实现了数据的降维,也是主身分剖析(PCA)中的末了一个步骤:将数据从原始的特色空间转换到新的特色空间。
我们先理解一下,什么是投影。在数学上,投影是一种将数据从一个空间转换到另一个空间的过程。在PCA中,我们将原始数据从原始特色空间(高维空间)投影到由主身分定义的新特色空间(低维空间)。
对付原始数据集中的每个样本,我们须要打算它在每个主身分上的投影。这个过程可以利用以下公式表示:
通过将每个样本在所有主身分上的投影相加,我们可以得到降维后的数据集。这个数学过程可以表示为:
完成打算后,接下来便是数据转换,通过上述投影过程,每个样本都被转换到了新的特色空间,这个空间由选定的主身分定义。在新的特色空间中,每个样本都由主身分的线性组合表示,从而实现了数据的降维。
通过投影,我们可以得到降维后的数据集,从而简化数据并保留数据中的关键信息。这一步可以让数据集更加简洁、易于理解,也适宜用于后续的数据剖析和建模任务。
通过以上五步,从数据标准化直到投影数据,我们详细讲解了主身分剖析(PCA)的实现过程。PCA的运用非常广泛,包括但不限于数据可视化、特色提取、数据压缩、过滤噪声等。
知其然也知其以是然,知其事理后方可结合运用处景办理问题。接下来,我们不妨看看降维算法在实际场景中的案例运用。
三、场景案例-人脸识别
别鄙视降维算法,其貌不扬的一堆数学公式和逻辑关系可以办理很多业务问题。
就拿我们身边再熟习不过的人脸识别场景为例,降维算法可以用于特色提取,帮助区分不同人的面部特色,提高识别的准确性。
众所周知,人脸识别已经利用在了各行各业,刷脸支付,门禁系统,银行转账,检票系统等等。
同时,科技也是把双刃剑,人工智能(AI)带来便利和高效,也引发了越来越多的问题,比如“AI换脸”问题。有新闻宣布,泰勒·斯威夫特(Taylor Swift)便是受害者之一。由AI合成的霉霉“不雅观观照”在国外社交疯传,带来了相称恶劣的影响。
科技是中性的,我们作为AI的利用者,要致力于将AI利用在有助于社会发展,为人类谋福祉的领域中去,少动一些蝇营狗苟的歪心思。
降维算法在人脸识别的落地运用中,我们最熟习的场景之一便是高铁检票了。我们在检票环节,须要你刷身份证进站的同时还需通过人脸识别。
高铁站的人脸识别检票系统,不仅须要承载大量的人脸数据,还须要担保高质量的准确性。旅游高峰期,高铁站的客流量当日便可冲破千万,而每一张脸在初入系统时都具有高维特色。
以是,人脸识别中的降维算法不仅须要处理和剖析海量的图像数据,还须要在非常短的韶光内提取出人脸的关键特色,在降维之后依旧担保准确度。
我们不妨就来拆解一下,高铁检票系统中的人脸识别,是如何通过降维算法,准确地识别乘客的身份,大大提高检票效率和检票体验的。
就在我们站在检票口的那一瞬间,高铁检票系统会利用高清摄像头捕捉乘客的面部图像。这些图像常日包括乘客的正面脸部,以便进行准确的识别。
为了提高识别的准确性和鲁棒性,须要对采集到的图像进行预处理。这包括灰度化、归一化、去噪和边缘增强等步骤,以改进图像质量并标准化数据。
图像数据预处理后,就可以通过降维算法进行特色提取。这里补充一下,在实际运用中,特色提取每每不会依赖单一算法实现,特殊是像高铁检票这类大量又繁芜且还需高准确度的系统,只不过我们本篇重点说的是降维算法,以是会以降维算法为重点来讲述。
如果待识别的面部数据繁芜成分过多,就会影响识别系统的特色提取准确度,比如有时候你戴上眼镜或者戴着帽子时,系统就随意马虎识别缺点。
特性提取后,提取出的特色须要被编码成一个紧凑的向量,以便于后续的识别和匹配操作。
接下来便是系统识别决策环节,如果图像的特色编码与某个已注册乘客的特色编码足够相似,系统将认为该乘客是已注册的乘客,并许可其通过检票口。
此时,检票窗口会反馈识别成功,检票门闸会自动打开,你就可以顺利通畅啦。
没想到吧,就在你进入检票口到通过检票口的短短几秒间,人脸识别系统就借助降维算法,完成了图像采集、预处理、特色提取、特色编码、编码比较、识别决策等一长串自动化流程。
不仅如此,人脸识别技能涉及到乘客的生物识别信息,因此安全性至关主要。高铁检票系统常日会采取加密技能和安全协议来保护乘客的数据,并确保系统的安全性。
四、末了总结
写在末了,我们来总结一下,本篇紧张环绕降维算法展开先容。
降维算法属于无监督学习中的方法。无监督学习不须要标签数据来进行演习,而是通过数据本身的特性来创造数据中的模式和构造。想理解无监督学习的朋友,可以看看这篇《现在入门“AI无监督学习”还来得及(9000字干货)》
降维算法便是无监督学习的一种运用,其核心目的是通过减少数据集的维度来简化数据,同时尽可能保留原始数据中的关键信息。
降维有三大上风和两大方法。三大上风指的是去除冗余特色、降落打算繁芜度、利于数据可视化。两大方法则是特色选择和特色提取。
在常见的降维算法中,主身分剖析(PCA)的运用非常广泛,本篇阐发了PCA的事情事理和实现步骤。在场景案例中,以人脸识别为例,先容了降维算法在检票系统的人脸识别环节是如何发挥又快又好的代价的。
由此可见,未来已来,AI就在我们身边,算法也并没有我们以为的那么高不可攀,只要我们保持开放原谅的心态,去学习,去收受接管,就可以让AI帮助我们办理很多问题。
作者:果酿,"大众号:果酿产品说
本文由 @果酿 原创发布于大家都是产品经理,未经作者容许,禁止转载。
题图来自 Unsplash,基于CC0协议。
该文不雅观点仅代表作者本人,大家都是产品经理平台仅供应信息存储空间做事。