K平均法は、データ・クラスタリングに使用される教師なし学習アルゴリズムで、ラベルなしデータ点をグループまたはクラスターにグループ化します。
機械学習で最もよく使われるクラスタリング手法のひとつです。教師あり学習とは異なり、このアルゴリズムが使用するトレーニング・データにはラベル付けされていません。つまり、データ点には定義された分類構造がありません。
排他的クラスタリング、重複的クラスタリング、階層的クラスタリング、確率的クラスタリングなど、さまざまな種類のクラスタリング・アルゴリズムが存在しますが、K平均法は、排他的クラスタリングまたは「ハード」クラスタリング手法の一例です。この種のグループ化では、データ点は1つのクラスターにのみ存在できると規定します。このタイプのクラスター分析は、市場セグメンテーション、ドキュメントのクラスタリング、画像セグメンテーション、および画像圧縮を行うデータサイエンスによく使用されます。K平均法アルゴリズムは、効率的で効果的かつシンプルなため、クラスター分析で広く使用されている方法です。
K平均法は、データセットを重心間の距離に基づいて類似のグループに分割する、反復的な重心ベースのクラスタリング・アルゴリズムです。重心(クラスターの中心)は、データの特性に基づいた、クラスター内のすべての点の平均または中央値です。
K平均法は、データ点とそのクラスターの重心の間の距離の合計を最小化する反復的なプロセスです。
K平均法アルゴリズムは、クラスターの中心からの数学的距離尺度(通常はユークリッド距離)を使用してデータ点をクラスターに分類する操作を行います。データ点間に割り当てられたクラスター間の距離の合計を最小化することを目的としています。重心に最も近いデータ点は、同じカテゴリ内にグループ化されます。k値(つまりクラスターの数)が大きいほど、より詳細度の高い小さなクラスターであることを意味し、k値が小さいほど、より詳細度の低い大きなクラスターであることを意味します。
従来のK平均法アルゴリズムではいくつかの手順を行う必要があります。まず k重心の初期化を行います。 kは特定のデータセットに対して選択されたクラスターの数に等しくなります。ここではランダム選択法または初期重心のサンプリングによる方法のいずれかを使用します。
次に、期待値最大化法に基づく2ステップの反復プロセスを行います。1 予測ステップでは、距離(くり返しとなりますが、通常はユークリッド距離)に基づいて最も近い重心に各データ点を割り当てます。最大化ステップでは、各クラスターのすべての点の平均が計算され、クラスターの中心、つまり重心が再度割り当てられます。重心の位置が収束するか、反復の最大数に到達するまでこのプロセスは繰り返されます。
K平均法はシンプルですが、初期条件や外れ値の影響を受けやすいです。最も意味のあるクラスターを実現するには、重心の初期化とクラスター数kを最適化することが重要です。評価指標と初期重心のサンプリング法を使用して、アルゴリズムのクラスタリング構成要素を評価し最適化する方法がいくつかあります。
高品質のクラスターには少なくとも2つの特性があります。
これらの特性は、クラスター内の距離を最小化し、データセット内のすべてのデータ点のクラスター間の距離を最大化することで実現されます。言い換えれば、クラスターがよりコンパクトで他のクラスターから分離されているほど、より良いクラスターということです。K平均法アルゴリズムの目標は、残差平方和(SSE)を最小化することです。2 各点から最も近い重心までのユークリッド距離の二乗のSSEを計算するおとで、各クラスター内の全変動を測定し、クラスター割り当ての品質を評価します。
クラスター評価指標は品質をチェックすると共に、クラスタリングの結果を分析するためのさまざまな視点を提供します。最適なクラスター数の選択と重心の初期化を行う際に有用です。以下の評価指標は、クラスタリングにおけるクラスター内距離とクラスター間距離を測定する一般的な方法です。
K平均法アルゴリズムは、慣性を最小化する重心(クラスターの中心)を選択することを目的としています。慣性とは、距離指標に基づいてデータセットがどの程度うまくクラスタ化されたかを測定する評価指標です。慣性は、データ点とその重心との距離を測定し、距離を2乗し、クラスター内の各データ点についてその2乗を合計することで計算されます。その和または慣性値がクラスター内距離です。合計が低いほどクラスター内のデータ点が小さいか、より類似していることを意味するため、より良いクラスターとなります。3
2番目のプロパティはDunn指数を使用して測定されます。Dunn指数は、最小クラスター間距離と最大クラスター内距離の関係を表します。クラスター間距離が長いクラスターは、品質がより良いことを示します。クラスター同士が可能な限り異なっていることを意味するためです。4
K平均法を使用して最良のクラスタリング結果を得るには、最適化を行うことが重要です。
K平均法は、初期化のステップにおいてランダム選択法を使用するため、確定的でない結果をもたらします。この方法では、同一のデータに対して2回アルゴリズムを実行すると、異なるクラスターが割り当てられる可能性があることを意味します。初期の重心と最適なクラスタ数を適切に選択することでK平均法アルゴリズムの精度と速度が向上し、最適なクラスタリング結果が得られます。
各クラスターは、クラスターの中心を表すデータ点である重心によって表現されます。K平均法は、クラスター内のデータ点と重心(K平均値)との距離を最小化することにより、類似したデータ点をクラスターにグループ化します。K平均法アルゴリズムの主な目標は、各点と点が割り当てられているクラスターの重心間の合計距離を最小化することです。このアルゴリズムは反復的に動作し、最初のパーティション選択が最終的に得られるクラスターに大きな影響を与えることがあります。
初期化がランダムに行われるため、一貫性のない結果が生じるリスクがあります。このリスクを軽減する、重心の初期化方法があります。NUS Computingによる研究では、一般的なk-means++などのメソッドとランダムな初期化について説明し、それらを比較しています。5
k-means++は、初期クラスターの重心選択を最適化するK平均法アルゴリズムです。研究者のArthurとVassilvitskiiによって開発されたk-means++は、最終的なクラスター割り当ての品質を向上させます。6
k-means++を使用した初期化の最初のステップは、データセットから1つの重心を選択することです。次の各重心について、最も近いクラスターの中心から各データ点までの距離を計算します。次の重心は、ある点が既に選ばれた最も近い重心からの距離に比例する確率を考慮して選択されます。このプロセスでは、選択した数のクラスター・センターが初期化されるまで繰り返し実行されます。
以下は、k-means++法を使用して初期化を行うIBM Developerのチュートリアルです。
K平均法アルゴリズムでは、最適なクラスター数に達するまで反復処理を行うのが理想的です。重心が収束に達すると、最大反復回数に達したものとされます。
最適なクラスター数を実現する方法の1つにエルボー法があります。エルボー法は、グラフを用いてK平均法アルゴリズム内で最適なクラスター数を見つける手法です。エルボー法は各データ点とそのクラスター中心の間のユークリッド距離を測定し、「クラスター内の二乗和(WCSS)」のレベルの変化が緩やかになる点に基づいてクラスター数を選択します。この値は、クラスター数に対してプロットされた各クラスター内の総分散を表します。7
エルボー法の最初のステップは、各クラスター(k)のWCSSを計算することです。次に、WCSS値がy軸に沿ってプロットされ、クラスター数がX軸にプロットされます。クラスター数が増加するにつれて、プロットされた点は一貫したパターンを形成するようになります。このパターンから、最適なクラスター数の範囲が導き出されます。8 クラスター数を決定するときは、計算にかかるコストを考慮してください。クラスター数が増えるほど、特に大規模なデータセットにおいて、より多くの処理能力が必要になります。
この方法は、特に高次元や不規則な形状のデータセットに対して、最適とは限りません。最適なクラスター数を選択するもう1つの方法は、シルエット解析です。9
K平均法アルゴリズムは、ほぼすべての領域や業界で使用されています。通常、次元が少なく、数値的で、簡単に分割できる機械学習データに使用されます。
研究者は、K平均法をCNNやRNNなどのディープラーニング手法と統合し、コンピューター・ビジョンやNLPのほか、多くの分野のさまざまな機械学習タスクの性能を向上させています。よくあるK平均法の活用例は次のとおりです。
顧客セグメンテーション: 企業の顧客を、共通の特徴に基づいて類似性を反映したグループに分割する手法。この戦略により、企業は特定のクラスターまたは顧客グループをターゲットとして、個別の広告キャンペーンが展開できるようになります。
ドキュメントの分類: ドキュメントにさまざまなカテゴリーや分類を割り当てる手順この方法は、多くの組織でコンテンツの管理に使用されています。ドキュメント分類器を構築するには、このWatson Discoverドキュメントを確認してください。
画像セグメンテーション:デジタル画像を個別の画素群に分割するコンピュータービジョン技法。この研究では、K平均法モデルを使用して医療画像における境界を判別する方法について詳しく説明します。10
推薦エンジン:Web上のあらゆるアプリケーションで推薦エンジンが使用されています。主成分分析とK平均法は、eコマースビジネスを対象とした商品おすすめ機能の構築に使用されます。11
ハンズオンで学習されたい場合は、watsonx.aiのIBM Watson Studioを使用してPythonでK平均法を実行するための基礎を説明しているチュートリアルをご覧ください。
このチュートリアルでは、K平均法を実行するscikit-learn(sklearn)ライブラリーのモジュールを使用します。このモジュールには、クラス・パラメーターで調整を行う組み込み最適化手法が含まれています。モジュールのクラスは次のようになります。
class sklearn.cluster.KMeans(n_clusters=8, *, init='k-means++', n_init='auto', max_iter=300, tol=0.0001, verbose=0, random_state=None, copy_x=True, algorithm='lloyd')12
パラメーターには、形成するクラスタの数と生成する重心の数(n_clusters)が含まれます。初期化の方法はk-means++とrandom選択の2つが用意されています。また、最大反復回数を設定する属性も含まれています。各反復は、データセットをn_clustersparameterの値に分割することから始まります。
これらのライブラリーは、テスト・データセットを生成し、クラスタリングを実行するために使用されます。
PandasをPDとしてインポート sklearnをインポート matplotlib.pyplotをpltとしてインポート seabornをsnsとしてインポート numpyをインポート sklearn.clusterからKMeansをインポート sklearn.datasetsからmake_blobsをインポート sklearn.decompositionからPCAをインポート sklearn.preprocessingからStandardScalerをインポート
機械学習にK平均法を活用する一般的なメリットとして、次のようなものがあります。
シンプル:K平均法はわかりやすく、実践も簡単です。K平均法は最も一般的な教師なし機械学習の手法です。
高速:K平均法は、計算的に単純な反復アプローチで設計されています。K平均法アルゴリズムは、クラスターの樹形図を構築し、すべてのデータ点間のペアワイズ距離を計算する必要がある階層的クラスタリングよりも高速です。
スケーラブル:K平均法は大規模なデータセットにも容易に拡張でき、さまざまな形や大きさのクラスタに一般化されるため、クラスタ分析に理想的である。このアルゴリズムは計算効率が非常に高いため、他の方法と比較してスケーラブルで、大規模なデータセットに適しています。
K平均法クラスタリングに関連する一般的な課題には、次のようなものがあります。
入力パラメーターへの依存:K平均クラスタリングは適切に設定された入力パラメーターに依存します。適切な重心とクラスター数を初期化することは、意味のあるクラスターの結果を得るうえで非の打ちどころがありません。重心の初期化がうまくいかないと、実行時間が長くなったり、クラスターの割り当てが低品質になったりする可能性があります。より良いクラスタリング結果と収束時間の短縮のために、重心の初期化手順の改良に多くの研究がなされてきました。
データセットによっては性能不足の可能性:K平均法は、データセットに同程度の大きさのクラスタが含まれ、顕著な外れ値や密度のばらつきがない場合に効果的に機能する。K平均法は、データセットに多くのバリエーションが含まれている場合や高次元である場合に能力が低下します。特定のデータセットの仮定と一致しないデータにより、K平均法が低品質のクラスターを生成する可能性があります。13 たとえば、サイズが不均衡なクラスターの場合、大きなクラスターに向かって重心を歪め、小さなクラスター間で偏りや誤分類が生じる可能性があります。この問題を解決するには、ガウス混合ノードなどの確率モデルを使用してK平均法を一般化できます。外れ値の影響が大きい: 外れ値はK平均法クラスタリングの結果に大きな影響を与えます。異なるクラスターは大きく離れている必要がありますが、データ点が歪むほど離れていてはなりません。K平均法を適用する前に、データの仮定を考慮することが重要です。K平均法は、クラスターで値を平均化することで重心を決定することを目的としているため、外れ値に特に影響を受けやすくなります。この影響を受けやすいため、過剰に適合し、外れ値を含める傾向があります。
2,000の組織を対象に、AIへの取り組みについて調査を行い、何が機能し、何が機能していないのか、どうすれば前進できるのかを明らかにしました。
IBM Graniteは、ビジネス向けにカスタマイズされ、AIアプリケーションの拡張に合わせて最適化された、オープンで高性能、かつ信頼性の高いAIモデル・ファミリーです。言語、コード、時系列、ガードレールのオプションをご覧ください。
今すぐ個人またはマルチ・ユーザーのサブスクリプションを購入すると、100を超えるオンライン・コースの完全なカタログにアクセスして、低価格でさまざまな製品のスキルを向上させることができます。
IBMのエキスパートが主催するこのカリキュラムは、ビジネス・リーダーが成長を促進するAI投資に優先順位を付けるために必要な知識を習得できます。
1 Todd K. Moon『The Expectation Maximization Algorithm』IEE Signal Processing Magazine、https://ieeexplore.ieee.org/document/543975(ibm.com外部のリンク)
2 Kevin Arvai『K-Means Clustering in Python: A Practical Guide』、https://realpython.com/k-means-clustering-python/#:~:text=Understanding%20the%20K%2DMeans%20Algorithm,-Conventional%20k%2Dmeans&text=The%20quality%20of%20the%20cluster,point%20to%20its%20closest%20centroid(ibm.com外部のリンク)
3 『Clustering: K-Means』、https://www.codecademy.com/learn/dspath-unsupervised/modules/dspath-clustering/cheatsheet(ibm.com外部のリンク)
4 『Dunn Index』、https://ruivieira.dev/dunn-index.html(ibm.com外部のリンク)
5 Xiangyuan、Siyuan、Hao『A survey on k-means initialization methods』、https://www.comp.nus.edu.sg/~arnab/randalg20/HLW.pdf(ibm.com外部のリンク)
6 Arthur, Vassilvitskii『k-means++: The Advantages of Careful Seeding』Standford、https://theory.stanford.edu/~sergei/papers/kMeansPP-soda.pdf(ibm.com外部のリンク)
7 Gutierrez『Unsupervised Learning: Evaluating Clusters』、https://opendatascience.com/unsupervised-learning-evaluating-clusters/(ibm.com外部のリンク)
8 『K-means clustering using Python on IBM watsonx.ai』、https://developer.ibm.com/tutorials/awb-k-means-clustering-in-python/ , step 4(ibm.com外部のリンク)
9 Shutaywi、Kachouie『Silhouette Analysis for Performance Evaluation in Machine Learning with Applications in Clustering』2021年6月、https://www.mdpi.com/1099-4300/23/6/759(ibm.com外部のリンク)
10 Dhanachandra、Manglem、Chanu『Image Segmentation Using K-means Clustering Algorithm and Subtractive Clustering Algorithm』ScienceDirect Vol 54, pgs 764-771、https://www.sciencedirect.com/science/article/pii/S1877050915014143(ibm.com外部のリンク)
11 Bagus Mulyawan他『Recommendation Product Based on Customer Categorization with K-Means Clustering Method』2019 IOP Conf. Ser.: Mater. Sci. Eng. 508 012123 https://iopscience.iop.org/article/10.1088/1757-899X/508/1/012123/pdf#:~:text=The%20K%2DMeans%20algorithm%20is,group%20customer%20based%20on%20attributes(ibm.com外部のリンク)
12 scikit-learn、https://github.com/scikit-learn/scikit-learn/blob/5491dc695/sklearn/cluster/_kmeans.py#L1193(ibm.com外部のリンク)
13 『Demonstration of k-means assumptions』、https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_assumptions.html(ibm.com外部のリンク)
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com