Pythonのオープンソース機械学習ライブラリです。
下記のアルゴリズムを備えています。
分類(classification)・回帰regression)・部分集合に分割(clustering)・その他
【分類(classification)】
データを学習してどのクラスかを判定するアルゴリズムです。
(教師あり学習)
データ量・データ形式によって使い分ける下記の手法があります。
「SGD(stochastic gradient descent)/カーネル近似/Linear SVC/k近傍法/その他」
【回帰(regression)】
データをもとに、目的値を予測するアルゴリズムです。
(教師あり学習)
データ量・データ形式によって使い分ける下記の手法があります。
「SGD(stochastic gradient descent)・ASSO、ElasticNet・Ridge、Liner SVR・SVR(ガウスカーネル)、Ensemble」
【部分集合に分割(clustering)】
いデータを学習して法則に則って分けるアルゴリズムです。
(教師なし学習)
データ量・データ形式によって使い分ける下記の手法があります。
「KMeans・スペクトラルクラスタリング、GMM・MeanShift、VBGMM」
***
教師あり学習▼
教師あり学習ではデータと正解ラベルの2つの情報が渡されます。
大量のデータから「このデータの正解はこのラベルであった」というパターンを見つけ出して、正解ラベルのないデータに対してもそれを予測するものになります。
教師なし学習▼
教師なし学習は正解ラベルのないデータに対して、その性質に規則性を発見するような手法になります。
***
と、言った感じに様々なライブラリが用意されており用途によって使い分けるといった感じになります。
プログラムの流れは
以前も紹介したことのある「pandas」や「numpy」を利用してデータ整形を行う。
その整形したデータに対して
scikit-learnのライブラリを使用していくといった流れになると思います。
種類がかなりあるため、プログラムは随時調べて勉強していきたいと思います。
下記のページで色々とサンプルを載せられていたので下記を参照してみてください。
https://qiita.com/ishizakiiii/items/0650723cc2b4eef2c1cf
(記事、古いため書き方等はバージョンよって異なるかもです)
機械学習を少し勉強していましたが、種類が多く何か目的をもって調べないと情報が多すぎるなぁと印象を受けました。
算出方法もデータによって異なってくるので次回調べる機会があれば目的を明確にしてピンポイントで調べていきたいと思いました。
以上、Python「scikit-learn」についてでした。