分12入力データを用意するサンプルデータを確認する前回はセグメンテーション分析の理論編として,セグメンテーション分析と代表的なクラスタリングアルゴリズムであるK-MeansとCanopyクラスタリングについて解説しました。今回は,実践編として,K-MeansとCanopyクラスタリングによるセグメンテーション分析をMahoutを用いて実際に行います。本連載の3回目同様,Mahoutのバージョンは現時点の最新版である0.7を対象とします。今回利用するサンプルデータは,ARFF形式(※1)で顧客のRFMが記載されています。@DATA以降が,実際のデータです。サンプルデータ※1)ARFF形式は,おもにWEKAで利用されるファイルフォーマットで,CSV形式にカラム名やデータ型などの情報を付加することができます。くわしい情報はワイカオ大学のページに記載されています。今回のデータは,以下のような構造になっています。顧客3の購買金額(省略)今回のデータはR,F,Mの3つとも,本来の値を1から100の範囲に収まるように正規化しています。ARFF形式をVector形式へ変換するMahoutでK-Meansを実行する場合,入力ファイルはMahoutのVector形式である必要があります。サンプルデータはARFF形式なので,下記のようにMahoutのarff.vectorコマンドでVector形式に変換します。gihyo-mahout-kmeans-sample.dictarff.vectorコマンドの各パラメータは,それぞれ以下を意味します。生成されたVectorファイルは,以下のように,mahoutのseqdumperコマンドや,vectordumpコマンドで,中身を確認することができます。gihyo-mahout-kmeans-sample.vectorなお,CSVファイルを入力ファイルに用いたい場合は,いったんCSVファイルをARFF形式に変換して,上記手順を踏んでください。Mahout自体には,CSV形式をVector形式に変換する機能は用意されていないためです。K-Meansをコマンドラインから実行するkmeansコマンドを実行するそれでは,サンプルデータを用いて実際にK-Meansを実行してみましょう。MahoutのK-Means実装は,以下のようにkmeansコマンドで実行します。kmeanskmeansコマンドのおもなパラメータとして以下があります。