クラスタリングアルゴリズム
記事のディレクトリ
学習目標
- マスタークラスタリングアルゴリズムの実装プロセス
- 私たちは、理論、アルゴリズムK-手段を知っています
- 私たちは、評価モデルのクラスタリングアルゴリズムを知っています
- K-手段の長所と短所
- 道クラスタリングアルゴリズムの最適化を理解します
- アプリケーション関数kmeansクラスタリングタスクを達成
6.5アルゴリズムの最適化
k平均アルゴリズムの概要
利点:
1.原則は、(中心点に近い)シンプル、かつ実装が容易です
2.クラスタへの影響(K依存性選択)
前記空間複雑度はO(N)時間の複雑さはO(IあるK N)
N为样本点个数,K为中心点个数,I为迭代次数
短所:
1.異常値、ノイズに敏感な(オフセット中心点イル)
2.サイズに大きな違いを見つけるのは難しいと増分計算クラスタ
3.結果は必ずしもグローバル最適ではない、我々は局所最適を保証(初期値の数をKとの関連を選択)することができます
初期クラスタリングアルゴリズムで1キャノピー
初期の実装プロセスと1.1キャノピーのクラスタリングアルゴリズム
1.2キャノピーの長所とアルゴリズムの欠点
利点:
ノイズ耐性の1.Kmeansが弱い、キャノピーは対照的に、クラスターの小さいNumPointは直接干渉に有利で除去しました。
Kがより正確であるように2.Canopyは、中心点の各キャノピーのために選択しました。
各キャノピーは、同様の計算の数を減らすため3.ジャスト関数kmeansクラスタリングを行います。
短所:
1.アルゴリズムは問題T1、T2を識別、依然として局所最適に落ちることができます
2 K-手段++
k-means ++法の目的なので、可能な分散液として質量の中心を選択してください
次の図では、重心、この領域内の次の点P(A)に最良の可能な選択の中心における最初の選択は、(色に応じて分割された)場合
3 k平均二部
実装プロセス:
- クラスタとして1.すべてのポイント
- 2へ2.クラスタ
- クラスタは、2つのクラスタにクラスタのコスト関数(すなわち、二乗誤差)を最小にすることができる選択します。
- 4.以此进行下去,直到簇的数目等于用户给定的数目k为止。
隐含的一个原则
因为聚类的误差平方和能够衡量聚类性能,该值越小表示数据点越接近于他们的质心,聚类效果就越好。所以需要对误差平方和最大的簇进行再一次划分,因为误差平方和越大,表示该簇聚类效果越不好,越有可能是多个簇被当成了一个簇,所以我们首先需要对这个簇进行划分。
二分K均值算法可以加速K-means算法的执行速度,因为它的相似度计算少了并且不受初始化问题的影响,因为这里不存在随机点的选取,且每一步都保证了误差最小
4 k-medoids(k-中心聚类算法)
K-medoids和K-means是有区别的,不一样的地方在于中心点的选取
-
K-means中,将中心点取为当前cluster中所有数据点的平均值,对异常点很敏感!
-
K-medoids中,将从当前cluster 中选取到其他所有(当前cluster中的)点的距离之和最小的点作为中心点。
算法流程:
( 1 )总体n个样本点中任意选取k个点作为medoids
( 2 )按照与medoids最近的原则,将剩余的n-k个点分配到当前最佳的medoids代表的类中
( 3 )对于第i个类中除对应medoids点外的所有其他点,按顺序计算当其为新的medoids时,代价函数的值,遍历所有可能,选取代价函数最小时对应的点作为新的medoids
( 4 )重复2-3的过程,直到所有的medoids点不再发生变化或已达到设定的最大迭代次数
( 5 )产出最终确定的k个类
k-medoids对噪声鲁棒性好。
例:当一个cluster样本点只有少数几个,如(1,1)(1,2)(2,1)(1000,1000)。其中(1000,1000)是噪声。如果按照k-means质心大致会处在(1,1)(1000,1000)中间,这显然不是我们想要的。这时k-medoids就可以避免这种情况,他会在(1,1)(1,2)(2,1)(1000,1000)中选出一个样本点使cluster的绝对误差最小,计算可知一定会在前三个点中选取。
k-medoids只能对小样本起作用,样本大,速度就太慢了,当样本多的时候,少数几个噪音对k-means的质心影响也没有想象中的那么重,所以k-means的应用明显比k-medoids多。
5 Kernel k-means(了解)
kernel k-means实际上,就是将每个样本进行一个投射到高维空间的处理,然后再将处理后的数据使用普通的k-means算法思想进行聚类。
6 ISODATA(了解)
类别数目随着聚类过程而变化;
对类别数会进行合并,分裂,
“合并”:(当聚类结果某一类中样本数太少,或两个类间的距离太近时)
“分裂”(当聚类结果中某一类的类内方差太大,将该类进行分裂)
7 Mini Batch K-Means(了解)
适合大数据的聚类算法
大数据量是什么量级?通常当样本量大于1万做聚类时,就需要考虑选用Mini Batch K-Means算法。
Mini Batch KMeans使用了Mini Batch(分批处理)的方法对数据点之间的距离进行计算。
Mini Batch计算过程中不必使用所有的数据样本,而是从不同类别的样本中抽取一部分样本来代表各自类型进行计算。由于计算样本量少,所以会相应的减少运行时间,但另一方面抽样也必然会带来准确度的下降。
该算法的迭代步骤有两步:
(1)从数据集中随机抽取一些数据形成小批量,把他们分配给最近的质心
(2)更新质心
更新関数kmeans、各小サンプルセット上のデータと比較。各少量のため、反復の数が増加するように、重心のデータの平均更新重心、及び割り当て少量を算出することにより、重心安定化されるまで、徐々に低減され、これらの重心が変化または指定到達反復回数、カウント停止。
8概要
最適化 | 思考 |
---|---|
キャノピー+関数kmeans | 関数kmeansとキャノピー厚いクラスタ |
k-means ++法 | 長い距離質量の新しい中心地になる可能性が高いです |
K-手段二部 | SSEは、最大のクラスタを解体します |
medoids | そして、別の方法の関数kmeansの中心点を選択します |
カーネル関数kmeans | 高次元空間にマッピングされ |
ISODATA | 動的クラスタリング |
ミニバッチK-手段 | バッチで大規模なデータセットのクラスタリング |