なぜscikit-learnを使うのか?
おそらくscikit-learnを使うことを考える人は何かしらのデータを持っていて、そこから何かしらの知識を得たいという人がほとんどであると思います。データから何かしらの知識や知見を得ることをデータマイニングと呼びます。
データを生かして知見を得るためには、そのデータの統計的な情報を出力したり、データを利用するための数学的な解析を行わなければなりません。これを簡易的に行うことのできるライブラリを網羅的に備えてくれているのが、scikit-learnです。
一応僕も理系大学院を卒業して、開発職についているわけなんですが、数式をコードに起こすのってとっても大変ですよね。そんな人でも簡単に効率的な分析ができるよう作られています。
ということで、こんな人におすすめです。
- アルゴリズムとか理論とかよくわからないけど、データをもって何かしたい人
- AIについて少し勉強したけど、具体的な手法を使いたい人
scikit-learnの基本情報
英語が読める人→ここ
英語が読めない人→このまま
2010年にGoogleによって開発され、機械学習のデファクトスタンダードとして、広く利用されています。データを持つ人はチートシートと呼ばれる以下の画像にしたがって分析を行うことが推奨されています。
(出典)https://scikit-learn.org/stable/tutorial/machine_learning_map/
自分の持っているデータとにらめっこして、たどりつく緑の四角のアルゴリズムをググってみましょう。使い方はすぐに見つけることができると思います。
以下ではscikit-learnが得意とする問題についてご紹介していきます。
回帰
持っているいくつかのデータを使って、目標のデータを予想する問題。株価の予測とか、連続的な値を予想する。
分類
回帰とは違い、離散的な値を予測する問題。どのグループへ分類するかはこちらで決める。最近ネットで車が写っている写真を選ばされたことはないだろうか?それはこの問題の正解例として利用されている。
クラスタリング
上の分類と似ているが、どのグループへ分類するかが指定されない分類問題。よくわからないデータがあるけど近いもの同士まとめるときに使用する。
次元削減
データの中で主なるものを見つけ、データの種類を減らす。主成分分析が代表的。
終わりに
これからそれぞれのアルゴリズムについても整理していければと思います。よろしくお願いします。