Coursera Machine Learning - Week8-1 Unsupervised Learning
CourseraのMachine Learningについてまとめています。 前回は、Week7 Support Vector Machines(サポートベクターマシン)についてまとめました。
今回は、Week8の前半、Unsupervised Learning(教師なし学習)について学びます。
Unsupervised Learning(教師なし学習)
教師なし学習とは何でしょうか。これまでの講義で扱ってきたのは、教師あり学習で、下記図のようにラベル付き(y=0 or 1とか)のデータが与えられ、それを基に境界線を引いたり、予測を行ったりしてきました。
教師なし学習では、このようなラベルは無く、ラベル付けされていないトレーニングセットから、データの特徴を探し出すことを行います。例えば、下記図のように、各データがどのようにグループ化できそうか、クラスタを探すクラスタリングアルゴリズムが教師なし学習です。
このようなクラスタリングには、下記のような使い道があります。
- マーケティング分析(マーケットのセグメンテーション)
- ソーシャル・ネットワーク分析(同質なグループを見つけ出す)
- コンピュータのクラスタの分析(どのPCがデータセンターにある他のクラスタと一緒に仕事をする傾向にあるか等の分析を行い、リソース配分等に活用する)
- 銀河の形成を理解するための研究
K-means algorithm
クラスタリングアルゴリズムとして人気のアルゴリズムの1つがK-means algorithmです。K-means algorithmでは、下記図のようにクラスタリングを行います。
K-meansアルゴリズムでは、下記の2つの入力を必要とし、下記図のように計算を進めます。
- K(クラスタリングする数)
- トレーニングデータ(x(1), x(2), …, x(m))
また、K-meansアルゴリズムは、下記のようなTシャツのサイズ分け等にも利用可能とのことです。S, M, Lサイズをどのくらいのサイズにするのか検討するのに用います。
Random initialization
Cluster centroidsをランダムに初期化する際に、よく用いられる方法としては、トレーニングデータの中から、ランダムにK個取り出し、それをCluster centroidsに用いるという方法があるそうです。
しかしながら、ランダムに初期化した場合に、うまく全体最適できれば良いのですが、下記図のように局所最適解に陥ってしまう場合もあります。
これを解決するためには、K-meansを複数回初期化し、複数回実行するのが良いとのことです。例えば、100回初期化してそれぞれK-meansを実行すると、100個の異なるクラスタリングの結果が得られます。最後に、この結果から、一番コスト(下記の式。各データから属しているCentroidまでの距離の二乗の平均)の低いものを選べば、良いクラスタリングが得られます。
次回は、Week8の後半、Dimensionality Reductionについてまとめます。
コース全体の目次とそのまとめ記事へのリンクは、下記の記事にまとめていますので、参照ください。
Coursera Machine Learningまとめ本記事を読んでいただきありがとうございます。
機械学習を実際に使うにあたり、Coursera MLと合わせておすすめしたい書籍を紹介します。
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
scikit-learnを用いた機械学習を学ぶのに最適な本です。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
Deep Learningと言えばこれ。TensorFlowやPyTorch等のフレームワークを用いずに、基礎の理論からDeep Learningを実装します。Week4、Week5の記事を読んで、より深く理解したいと思った人におすすめです。
Kaggleで勝つデータ分析の技術
データ分析について学び始めた人におすすめです。