导航:首页 > 源码编译 > 最佳选择算法改进

最佳选择算法改进

发布时间:2023-03-09 20:32:39

❶ 如何正确选择聚类算法

作者 | Josh Thompson

来源 | 数据派THU

Choosing the Right Clustering Algorithm for your Dataset - KDnuggets

聚类算法十分容易上手,但是选择恰当的聚类算法并不是一件容易的事。

数据聚类是搭建一个正确数据模型的重要步骤。数据分析应当根据数据的共同点整理信息。然而主要问题是,什么通用性参数可以给出最佳结果,以及什么才能称为“最佳”。

本文适用于菜鸟数据科学家或想提升聚类算法能力的专家。下文包括最广泛使用的聚类算法及其概况。根据每种方法的特殊性,本文针对其应用提出了建议。

四种基本算法以及如何选择

聚类模型可以分为四种常见的算法类别。尽管零零散散的聚类算法不少于100种,但是其中大部分的流行程度以及应用领域相对有限。

基于整个数据集对象间距离计算的聚类方法,称为基于连通性的聚类(connectivity-based)或层次聚类。根据算法的“方向”,它可以组合或反过来分解信息——聚集和分解的名称正是源于这种方向的区别。最流行和合理的类型是聚集型,你可以从输入所有数据开始,然后将这些数据点组合成越来越大的簇,直到达到极限。

层次聚类的一个典型案例是植物的分类。数据集的“树”从具体物种开始,以一些植物王国结束,每个植物王国都由更小的簇组成(门、类、阶等)。

层次聚类算法将返回树状图数据,该树状图展示了信息的结构,而不是集群上的具体分类。这样的特点既有好处,也有一些问题:算法会变得很复杂,且不适用于几乎没有层次的数据集。这种算法的性能也较差:由于存在大量的迭代,因此整个处理过程浪费了很多不必要的时间。最重要的是,这种分层算法并不能得到精确的结构。

同时,从预设的类别一直分解到所有的数据点,类别的个数不会对最终结果产生实质性影响,也不会影响预设的距离度量,该距离度量粗略测量和近似估计得到的。

根据我的经验,由于简单易操作,基于质心的聚类(Centroid-based)是最常出现的模型。 该模型旨在将数据集的每个对象划分为特定的类别。 簇数(k)是随机选择的,这可能是该方法的最大问题。 由于与k最近邻居(kNN)相似,该k均值算法在机器学习中特别受欢迎。

计算过程包括多个步骤。首先,输入数据集的目标类别数。聚类的中心应当尽可能分散,这有助于提高结果的准确性。

其次,该算法找到数据集的每个对象与每个聚类中心之间的距离。最小坐标距离(若使用图形表示)确定了将对象移动到哪个群集。

之后,将根据类别中所有点的坐标平均值重新计算聚类的中心。重复算法的上一步,但是计算中要使用簇的新中心点。除非达到某些条件,否则此类迭代将继续。例如,当簇的中心距上次迭代没有移动或移动不明显时,聚类将结束。

尽管数学和代码都很简单,但k均值仍有一些缺点,因此我们无法在所有情景中使用它。缺点包括:

因为优先级设置在集群的中心,而不是边界,所以每个集群的边界容易被疏忽。 无法创建数据集结构,其对象可以按等量的方式分类到多个群集中。 需要猜测最佳类别数(k),或者需要进行初步计算以指定此量规。

相比之下,期望最大化算法可以避免那些复杂情况,同时提供更高的准确性。简而言之,它计算每个数据集点与我们指定的所有聚类的关联概率。用于该聚类模型的主要工具是高斯混合模型(GMM)–假设数据集的点服从高斯分布。

k-means算法可以算是EM原理的简化版本。它们都需要手动输入簇数,这是此类方法要面对的主要问题。除此之外,计算原理(对于GMM或k均值)很简单:簇的近似范围是在每次新迭代中逐渐更新的。

与基于质心的模型不同,EM算法允许对两个或多个聚类的点进行分类-它仅展示每个事件的可能性,你可以使用该事件进行进一步的分析。更重要的是,每个聚类的边界组成了不同度量的椭球体。这与k均值聚类不同,k均值聚类方法用圆形表示。但是,该算法对于不服从高斯分布的数据集根本不起作用。这也是该方法的主要缺点:它更适用于理论问题,而不是实际的测量或观察。

最后,基于数据密度的聚类成为数据科学家心中的最爱。

这个名字已经包括了模型的要点——将数据集划分为聚类,计数器会输入ε参数,即“邻居”距离。因此,如果目标点位于半径为ε的圆(球)内,则它属于该集群。

具有噪声的基于密度的聚类方法(DBSCAN)将逐步检查每个对象,将其状态更改为“已查看”,将其划分到具体的类别或噪声中,直到最终处理整个数据集。用DBSCAN确定的簇可以具有任意形状,因此非常精确。此外,该算法无需人为地设定簇数 —— 算法可以自动决定。

尽管如此,DBSCAN也有一些缺点。如果数据集由可变密度簇组成,则该方法的结果较差;如果对象的位置太近,并且无法轻易估算出ε参数,那么这也不是一个很好的选择。

总而言之,我们并不能说选择了错误的算法,只能说其中有些算法会更适合特定的数据集结构。为了采用最佳的(看起来更恰当的)算法,你需要全面了解它们的优缺点。

例如,如果某些算法不符合数据集规范,则可以从一开始就将其排除在外。为避免繁琐的工作,你可以花一些时间来记住这些信息,而无需反复试验并从自己的错误中学习。

我们希望本文能帮助你在初始阶段选择最好的算法。继续这了不起的工作吧!

❷ knn算法如何选择一个最佳k值

K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。 该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。
该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

❸ BGP协议最佳路径的选择算法有哪些

每个BGP路由器通过邻居声名与周边的一个或多个路由器连接。一旦建立了邻居关系,这些BGP路由器之间就会相互交换路由信息。据我最近一次统计,整个互联网上有大约12.5万个路由信息,因此要配备一个强大的路由器才能将所有BGP路由信息接收下来。
由于整个互联网的BGP路由表有超过20万个路由,同时一个BGP路由器可能从多个来源收到多份的路由表,因此肯定会有一种方法可以比较不同的BGP路由表,并从中选择最佳的路由方案。这种方法就是BGP最佳路径选择算法。
可能你会注意到,CiscoBGP路由器会将应用权重(weight)作为路由表的第一标准,而其它品牌的路由器则不是这样。Cisco的官方BGP最佳路径选择算法文档中详细列明了所参考的各项标准。接下来我会列出每种标准并给出解释和范例。
默认情况下,BGP最佳路径都是基于最短自治系统(AS)的原理得出的。不过很多时候,诸如weight,localpreference以及MED这样的标准都是网络管理员自行设定的。
接下来我们就按照BGP选择最佳路径的参考顺序将这几项标准介绍一下:
#1 Weight —权重是Cisco为本地路由器设定的自定义参数,并不随路由器更新而变化。如果指向某一IP地址的路径有多条(这很常见),那么BGP会寻找权重最高的路径。设定权重的参考因素很多,包括邻居命令,as-path访问列表,或者路由镜像等。
#2 Local Preference — 本地出口优先级参数会告知AS哪条路径具有本地优先,数值越高优先级越高。默认为100。比如:
bgp default local-preference 150
#3 Network or Aggregate—这个参数会选择本地发起的网络或聚合作为路径。将特定的路径加入路由中,会让路由更有效率,同时也节省了网络空间。更多有关聚合的信息,可以参考Cisco的文章“UnderstandingRouteAggregation in BGP.”
#4 Shortest AS_PATH — BGP 只有在weight, localpreference和locallyoriginated相当接近的时候才使用这个参数。
#5 Lowest origin type — 这个参数处理Interior Gateway Protocol(IGP)协议的优先级低于 Exterior Gateway Protocol (EGP)协议。
#6 Lowest multi-exit discriminator (MED) — 较低的MED值要优于较高的MED值。
#7 eBGP over iBGP — 类似于#5, BGP AS Path 更倾向 eBGP 而不是 iBGP。
#8 Lowest IGP metric — 这个参数倾向于采用最低IGP作为BGP下一跳。
#9 Multiple paths — 这个参数决定是否要在路由表中装入多个路径。可以参考 BGPMultipath获取更多信息。
#10 External paths — 当所有路径都为外部路径时,选择首先接收到的路径(较老的路径)。
#11 Lowest router ID — 选择来自具有最低路由器ID的BGP路由器的路径。
#12 Minimum cluster list — 如果多个路径的originator或路由器ID相同,选择cluster列表长度最短的路径。

❹ 最佳置换算法最后一个怎么办

最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。于所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。 最佳置换算法可以用来评价其他算法。

阅读全文

与最佳选择算法改进相关的资料

热点内容
为什么小米app启动广告关不了 浏览:877
空调压缩机一直不停 浏览:511
养殖系统开发源码 浏览:82
pdf的目录 浏览:406
光遇安卓如何一个人拍视频 浏览:277
怨女pdf 浏览:708
扭曲服务器什么时候开 浏览:23
加密货币换平台 浏览:609
手机内存压缩软件 浏览:33
生成树是否与遍历算法有关 浏览:728
python强化学习迷宫 浏览:450
老包子解压视频 浏览:885
服务器注册是什么意思 浏览:418
程序员群体焦虑如何破局 浏览:585
程序员在广州上班 浏览:803
androidlinuxadt 浏览:512
广联达软件加密锁原装芯片 浏览:338
如何打开数据库服务器 浏览:310
kppm是什么app 浏览:538
python多个数组命名 浏览:192