教師なし学習
入力データから規則性など探しだし知識を抽出する方法。教師あり学習とは違い出力データを入れない。そのためどういった結果がでるかはわからない。
特徴量の表現やデータのスケールは機械学習モデルの性能に大きく関係してくる。今回はそのデータの変換方法についてまず大きく2種類紹介、1つ目がデータセットの教師なし変換、2つ目がクラスタリングアルゴリズムである。
・教師なし変換
もとのデータを変換して、人や他の機械学習アルゴリズムによりわかりやすいデータ表現をつくるアルゴリズムのこと。
1、次元削減
もっとも一般的な利用方法。たくさんの特徴量で構成されるデータを可視化するために二次元に減らす要約方法をみつける。
2、トピック抽出
文書データなど個々のタスクから未知のトピックを見つけ出して学習する。ソーシャルメディアの話題解析などに向いている。
・クラスタリングアルゴリズム
データを似たような要素から構成されるグループに分けるアルゴリズム。例えば写真データより似た顔でグループ分けし、整理できたりする。
便利なアルゴリズム
機械学習においてデータの理解は大変大事な点。その理解を深めるためにデータを可視化できるようにしたり、圧縮したりとデータを変換する際便利なアルゴリズムを4つ紹介。
・主成分分析(PCA)
主成分分析(PCA)とはデータセットの特徴量を統計的に関連しないように回転し次元削除を行う手法。データを変換して散布図を可視化する。分散が小さい成分を落とし主成分を残し、データを説明する際重要な特徴量だけ抜き出す。
・非負値行列因子分解(NMF)
主成分分析(PCA)と同じく有用な特徴量を抽出する目的のアルゴリズム。NMFでは係数と成分が常に0以上であることが求められる。
組み合わされたデータを作り上げているもとの1つ1つの成分を特定することができる。
・多様体学習
主に可視化に用いられる。多様体学習の一つ、tーSNEアルゴリズムはデータの空間の点の近さだけを使い二次元表現を見つけようとする。多様体学習は訓練データの新しい表現を計算するけれど、新しいデータを変換することはできないためテストセットに適用することはできない。
・クラスタリング
データセットを「クラスタ」と呼ばれるグループに分割する。ここのデータポイントにその点が属するクラスタを表す数字を割り当てる。下記の3つの使い分けが大事となる。
1、k-meansクラスタリング
もっとも単純でもっとも広く用いられているクラスタリングアルゴリズム。データの領域を代表するようなクラスタ重心を見つけようとする。
2、凝集型クラスタリング
個々のデータポイントをそれぞれ個別のクラスタとして開始し、もっとも類似したクラスタを併合していく。これを終了条件まで繰り返す。
3、DBSCAN
このアルゴリズムの利点としてはユーザがクラスタ数を先験的に与える必要がないこと、またどのクラスタに属さない点を判別できることである。k-meansクラスタリングや凝集型クラスタリングよりも遅いが、大きなデータセットにも適用できる。
k-means、凝集クラスタリングはクラスタの数が指定できる。DBSCANは近接度を指定し間接的にクラスタサイズを制御できる。3つそれぞれの長所は異なる。k-meansはクラスタの特徴を表すことができ、個々のデータポイントより成分分解としても使える。凝集型クラスタリングはデータの階層的な分割候補をすべて提示できる。DBSCANはどのクラスにも属さないノイズを検出できる。またクラスタの数を自動的に決められる。
データから”意味”を見出すために重要な手法である。
次回は特徴量エンジニアリングにうつります。
参考文献
・Pythonではじめる機械学習ーscikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
(著者 Andreas C.Muller、Sarah Guido 発行所 株式会社オライリー・ジャパン)