![見出し画像](https://assets.st-note.com/production/uploads/images/10548891/rectangle_large_type_2_17f55019a512849f4ef277eabb06f5a0.png?width=1200)
【第二回目scikit-learn から学ぶ機械学習の手法】
Python機械学習ライブラリscikit-learnのcheat-sheetを解説してみたいと思います。
筆者が機械学習を勉強し始めた際、ニューラルネットワーク・サポートベクターマシン・ランダムフォレストなど…アルゴリズムばかりが先に情報として溢れていて「機械学習」を俯瞰して体系的に見ることが難しい状況でした。
機械学習は大きく回帰・識別・分類・次元削減=主成分分析の4つの目的の達成の為に使用されること、そしてその目的と状況に応じてアルゴリズムが決定されることがわかります。
この4つの目的を組み合わせることで、あらゆることを可能にするのが「機械学習」となります。
第1回では、cheat-sheetの解説と少し実践もしてみたいと思います。最終的には今回紹介する全てのアルゴリズムを実践したいと思っています…汗。
regression(回帰:教師あり学習)
◉ざっくり言うと:
『手掛かり』と『答え』のデータセットを教師学習とし、答えが分からない『手掛かり』データを入力した場合に『答え』を予測(数値から数値を予測)。
◉こんなイメージで使われる:
・今日の風の強さから明日の気温を予測
・身長、体重とシワの数から年齢を予測 – *1
◉アルゴリズムの選び方:
【SGD回帰】
・教師学習用のデータセットが100,000以上ないとき
【Lasso回帰】【ElasticNet回帰】
・教師学習用のデータセットが100,000以上あるとき
・全ての特徴量が重要でない(重要な特徴の考察をしたい)とき
ex)*1の場合、シワの数が重要、身長と体重は重要でないというような考察が可能。
【Ridge回帰】【LinearSVR回帰】
・教師学習用のデータセットが100,000以上あるとき
・全ての特徴量が重要であるとき
【SVR回帰】【Ensemble回帰】
・教師学習用のデータセットが100,000以上あるとき
・全ての特徴量が重要であるとき
・Ridge回帰、LinesarSVR回帰がうまくいかない(非線形での回帰が必要な)とき
clustering(分類:教師なし学習)
◉ざっくり言うと:
漠然とした『特徴』のデータセットをパターン(似ている・近しい特徴)を見つけて分類(塊化)。特に、簡単に分類できなさそうなものについて『グループ』を定義しやすくする為の手段。
◉こんなイメージで使われる:
・公園の砂場の砂(硬度・強度・色 etc)の粒子をいくつかの塊に分類。
・夜空の星(光の強さ・色・距離・温度 etc)をいくつかの塊に分類。
◉アルゴリズムの選び方:
【MeanShift分類】【VBGMM分類】
・分類する塊の数を指定しないとき
・対象のデータセットが100,000以上あるとき
【MiniBatchKMeans分類】
・分類する塊の数を指定するとき
・対象のデータセットが100,000以上ないとき
【KMeans分類】
・分類する塊の数を指定するとき
・対象のデータセットが100,000以上あるとき
【スペクタクル分類】【GMM分類】
・分類する塊の数を指定するとき
・対象のデータセットが100,000以上あるとき
・KMeans分類がうまくいかない(非線形での分類が必要な)とき
dimensionality reduction(次元削減,主成分分析:教師なし学習)
◉ざっくり言うと:
データのばらつきが大きい部分に着目し、逆にばらつきが小さい部分を無視するような視点に変換することで、データ圧縮(次元削減)や主成分分析を実施する手段。3次元を2次元に落とし込み状況を把握しやすくするという点で写真を撮り・写真から判断するという行為に似ている。
◉こんなイメージで使われる:
・画像などの大きいデータの次元を削減。
◉アルゴリズムの選び方:
【ランダマイズPCA】
・先ずこれを試す
【kernel近似PCA】
・ランダマイズPCAがうまくいかない(データセットの構造が非線形である)とき
・対象のデータセットが100,000以上ないとき
【Isomap PCA】【SpectralEmbedding PCA】
・ランダマイズPCAがうまくいかない(データセットの構造が非線形である)とき
・対象のデータセットが100,000以上あるとき
【LLE PCA】
・データセットの構造が非線形である
・対象のデータセットが100,000以上あるとき
・IsomapPCA、SpectralEmbeddingPCAがうまくいかないとき
実践!classification(識別:教師あり学習)をやってみた
それでは、classificationの【SGD識別】アルゴリズムを使った実践していきます。
今回は上記アルゴリズムを使って、アヤメ(花)の「種類」をその「花びらの長さ」と「がくの長さ」から識別してみたいと思います。
続きはこちらで。