K平均アルゴリズムは、クラスタリングアルゴリズムです。
分類:事前にデータのタイプを把握し、既知のデータを使用して分類器をトレーニングし、未分類のデータを分類することは教師あり学習に属します。
クラスタリング:データのタイプは事前に不明であり、教師なし学習に属する特徴の類似性に従ってデータがクラスタリングされます。
K平均アルゴリズムの基本的な考え方:
- 重心としてK個の初期点をランダムに選択(カテゴリ)
- 各データをトラバースし、Kセントロイドからの距離を計算します
- データが属するカテゴリとして、それに最も近い重心を選択します
- 各クラスターの重心は、クラスター内のすべてのポイントの平均に更新されます
- コスト関数が最小値に収束するまで、手順2、3、4を繰り返します
上記のプロセスの擬似コードは次のように表されます。
创建k个点作为起始质心(经常是随机选择)
当任意一个点的簇分配结果发生改变时:
对数据集中的每个数据点:
对每个质心:
计算质心与数据点之间的距离
将数据点分配到距其最近的簇
对每一个簇,计算簇中所有点的均值并将均值作为质心
K平均のコスト関数(歪み関数とも呼ばれます)は次のとおりです。
SSE(二乗誤差の合計)
对误差取了平方,因此更加重视那些远离中心的点。
これμ_c(i)
はx^(i)
最も近いクラスターの中心点を表します。私たちの最適化目標は、コスト関数を最小化するものを見つけることです
迭代的过程一定会是每一次迭代都在减小代价函数,不然便是出现了错误。
K-Meansの主な利点は次のとおりです。
- 簡単に実現できます。
- 原理は簡単で、収束速度は速いです。
- 大きなデータセットを処理する方が効率的です。
スペースの複雑さはO(N)、時間の複雑さはO(IKN)-N为样本点个数,K为中心点个数,I为迭代次数
- クラスター番号Kのみを調整する必要があります。
K-Meansの主な欠点は次のとおりです。
-
初期値の影響を受けやすいため、初期値が異なると、結果が異なる場合があります。
-
クラスターの平均値が定義されている場合にのみ使用できます。これは、シンボル属性のデータの処理には適していません。
-
凸状ではないデータセットに収束するのが難しい
-
不均衡なデータの場合、クラスタリングの効果は良くありません。
-
ノイズや異常箇所に敏感です。
参考資料:ウーエンダ機械学習チュートリアル「機械学習戦闘」