Pythonで機械学習プログラミングをする、ということはわかるんだけど、いろいろなライブラリがあって、どれを使うのが良いかわからないよ。
scikit-learnがいいんじゃないかな
Pythonでまったり機械学習の勉強をしています。ディープラーニングかっこいいみたいな動機でディープラーニングを理解しようといくつかの動画を購入したりしたのですが、やはり機械学習という全体を見ていなかったので、挫折してきました 笑
今回、私が勉強を進めるにあたり、一つ決めたことがあります。
「scikit-learnを使おう」
と思いました。ということで、いくつかあるPythonの機械学習ライブラリでscikit-learnを使うメリットなどをつづります。
こんな人の役に立つかも
・これからPythonで機械学習を勉強したい人
・Pythonの機械学習ライブラリ、何を使ってよいか迷う人
・Pythonにはどんな機械学習ライブラリがあるのか知りたい人
機械学習プログラミングは、scikit-learnで始めよう
機械学習をするためには、Pythonライブラリがいくつかあります。その中でどれを使っていったらよいかという点が初めての時には迷いどころになるかと思います。
私は、scikit-learnというライブラリをまず利用して勉強を進めようと考えています。
scikit-learnで始めようと考えた理由としては、次の通りです。
機械学習という分野全般のアルゴリズムが利用できる
機械学習には目的に応じて様々なアルゴリズムがあります。
機械学習は、大きく、「教師あり学習」、「教師なし学習」、「強化学習」というカテゴリに分かれており、それぞれの目的に応じて使うアルゴリズムが異なってきます。
アルゴリズムには、シンプルな理解しやすいものから、ディープラーニングのように複雑なアルゴリズムまで様々です。
scikit-learnは、様々な機械学習のアルゴリズムを利用することができます。
シンプルなアルゴリズムで機械学習の概要をつかみたい
私が、機械学習というプログラミング分野があることを知ったのは、ニューラルネットワークやディープラーニングといった有名なアルゴリズムを聞いた時です。
しかし、このニューラルネットワークやディープラーニングというアルゴリズムはいくつかある機械学習プログラミングのアルゴリズムの中でも複雑なもので、最先端の技術よりなので、アルゴリズムの理解をするだけでも結構な学習となってしまいます。
機械学習プログラミングの学習はニューラルネットワークやディープラーニングといったアルゴリズムの勉強だけではない、ということです。
機械学習プログラミングをするためには、アルゴリズムの理解以外にも勉強するべきことがあったのです。たとえば、データの収集方法や、事前にデータの解析するなどです。
まずはシンプルなアルゴリズムから初めて、大枠を理解してからより詳細に複雑なニューラルネットワークなどのアルゴリズムを勉強していくという流れが良いと思いました。
私もいくつかディープラーニング入門の動画を購入したのですが、機械学習という分野全般を理解できていなかったので、なんとなく概要はわかっても、より詳細な学習は進みませんでした。
scikit-learn以外の他のライブラリ
「TensorFlow」というライブラリは、Googleが作成したニューラルネットワークのライブラリです。私は最初、このTensorFlowという名前でかっこいいと思い、これをどうやって使うんだ、という流れで機械学習プログラミングを知りました。もちろん、TensoeFlow入門みたいな動画などを購入していました。
また、「Chainer」というライブラリもあります。これは、ディープラーニング用のライブラリです。
このように、scikit-learn以外のライブラリは、特定の機械学習のアルゴリズムに特化したライブラリになっています。
機械学習の勉強を始めたばかりでは、さっそくディープラーニングなどの複雑なものを始めることには少しハードルがあるように感じます。
まずは、機械学習にどのようなアルゴリズムがあって、それぞれのアルゴリズムにどのようなメリットがあるのかなどを学んでいくことが重要だと感じました。
まとめ:機械学習はscikit-learnで始めよう
機械学習プログラミングの勉強を始めるには、言語をPython、また、Pythonのライブラリとしてscikit-learnを使うことがもっとも入門しやすいです。
また、scikit-learnがデフォルトで組み込まれているPythonの開発環境、Anacondaをインストールすることが、最も機械学習プログラミングを学んでいくハードルを下げることになると思います。
※追記:機械学習プログラミングのみを楽しみたい方はクラウドの「Google Colabo」が気軽にできてよいと思います。
Anaconda環境のインストールなどについては以下の記事で書かせていただきました。
まずは、機械学習プログラミングの入門として、一般的な「教師あり学習、アヤメの分類」を題材にてプログラミングを行いました。以下の記事が、アヤメの分類の最初の記事となります。