機械学習始めようとしなきゃ、Pythonとか始めなくない??
と最近思い始めてるコンです。
windowsアプリ作るとかならC#だったりVisualBasicですし。
webサービスとかwebアプリとかだったらJavaですし。
(完全に偏見です笑)
今日は私がPythonを始めたきっかけである機械学習 に必要なライブラリについてお話したいと思います!!
本当に機械学習始めるよ〜みたいな人にも
このブログだけで、実際私が仕事で使っているライブラリ一式がある程度分かるように書いていきます。
まとめ
さっそくですが
独断と偏見で機械学習に使うライブラリを下にまとめました。
この8個のライブラリを使うようになると機械学習は終わります。(終わる?ってなんだ(笑))
どちらかというと、勉強段階は終わるかなって思います!!
こいつらが使えるようになれば、もう実践あるのみ!!
趣味なり仕事なり、ガンガンいこうぜ!!みたいな状態です(^_^)
それぞれインストール方法は
pip install 欲しいライブラリ
で調べてみてください。
(さぼってごめんなさい)
このあたりは、情報が時々変わるので調べてみるのが◎です。
数値計算
Numpy
NumPyは、多次元配列(色々なデータが入った表みたいなもの)を扱う数値演算ライブラリです。
例えばワインの値段をAIで予測させるのに、味・産地・年代などのデータを使う。。。みたいに
機械学習には多次元配列を扱います。
使いどきとしては
・CSVファイルの読み込み
・多次元配列のデータの取り扱い
・データ分け(訓練データとテストデータを分けたり、読み込ませるデータを指定したり)
などなど
です!
機械学習に限った話ではないですが、、、
Pythonをマスターするには、このNumpyを使いこなすのが必須です!!
テスト画像の予測の正答率はなん%??
データの標準化のやり方は??
機械学習の定番の手順を行う過程でどんどんNumpyを使います。
(他のツールを使うことも時々ある)
Pandas
Pandasは、CSVファイルやエクセルデータに入ったデータの解析を支援する機能を提供するライブラリです。
例えば、Pandasには、CSV・Excelのデータを読み取る機能もあるのはもちろん、そのファイルに欠損データがある場合や数字と日本語が混ざったデータでも読み込むことができます。(Numpyでこれを行うと少しややこしい)
使いどきとしては
・CSVファイルの読み込み
・データ分け(訓練データとテストデータを分けたり、読み込ませるデータを指定したり)
などなど
・文字や欠損を数値に変換
などなど
numpyと1番の大きな違いがcsvファイルに文字列や欠損値がある場合でもpandasなら取り扱える点だと思います。
機械学習では欠損値の多いデータや数字じゃないデータを扱うこともあるのでありがたいです。
グラフ描画
Matplotlib、Seaborn
MatplotlibとSeanbornはどちらもデータ可視化ライブラリです。
どちらもグラフを書くライブラリなのですが、だいたい両方ともインストールして使います。
使いどきとしては
・どんなデータが含まれているのかグラフで可視化
・機械学習で予測した結果と本当の結果のグラフによる比較
などなど
個人的にはseabornを使うとカッコいいと思うので、seabornを使っております。
機械学習
ここで紹介するライブラリは、データから何かを予測する数式や、画像や音を分類したりする数式を
計算で導きだすために使うものになります。
scikit-learn
教師なし学習・教師あり学習・半教師あり学習、いろんな機械学習あるけれど(あと強化学習くらい?)
だいたいのアルゴリズムを比較的簡単に実装可能!!
それがscikit-learnです。読み方は「サイキット・ラーン」。
ちなみに私が機械学習の勉強を最初に始めたのもこのscikit-learnでした。
最初は簡単な線形回帰をやっていきました。
そこから非線形化回帰だったり、SVM(サボーとベクターマシン)とか
どんどん機械学習を覚えていったと思います。
TensorFlow
多分世界で1番使われているPythonのディープラーニングのライブラリ
それがTensorFlowだと思います。
TensorFlowは「テンソルフロー」と多くのかたが呼んでます。
Googleが開発したオープンソースのライブラリで、私がまだ学生だった2015年にベータ版が発表され
爆発的に広まっていきました。
私もこのTensorFlowなるAIがすごいらしい、というなんともあやふやな状態でPythonとTensorflowを始めました(笑)
当時は公式ページを読んでいても、
という状態でした。
もちろん私も知識が全然なのが一因なのですが、
このTensorFlowのページも全然わかりにくかったと思います!!(そうであってくれ!!)
今はかなりわかりやすくなっていて、
公式ホームページから勉強するのがおすすめになっております。
公式ページ:https://www.tensorflow.org/
PyTorch
PyTorchで「パイトーチ」と読み、Facebook発のディープラーニングのライブラリです。
ちまたでは、Numpyと操作方法がにてるから、直感的にわかりやすい〜など
TensorFlowなどとの比較が色々ありますが
個人的にTensorFlowとの違いは
PCの環境構築、つまり機械学習を実装できるように設定することが
とても楽(ラク)なところだと思ってます。
個人的にディープラーニングの環境構築は結構大変で。。。
CUDAのバージョンとかcuDNNのバージョンとか色々あるんです。
とくにTensorFlowとかこれが顕著で環境構築だけで時間を大量消化してしまいます。
ただ PyTorchだと、公式ページがインストールするコマンドを下のように紹介してくれます。
こんな感じで自分の環境にあうCUDAを一緒にダウンロードしてくれるので非常に始めやすい。
実は会社で使っているディープラーニングのライブラリはだいたい上が理由でPyTorch使ってます。
おわりに
ここまで読んでいただき、ありがとうございます。
個人の主観がふんだんに入った機械学習ライブラリの紹介です。
自分はscikit-leanから始めて色々覚えていったので、
これからはそれを思い出しながらsickit-leanについて書いていきたいと思います。
また読んでくださったら嬉しいです。