自己紹介
前職はSIerにて、13年ほどWebアプリケーションの開発に携わっていた @mizai と申します。
サーバサイドにて、Javaをメインに使っておりました。(入社当時は、COBOLエンジニアへの可能性もあったなぁ、、、(しみじみ))
業務系のシステム作りがほとんどで、製薬会社、住宅メーカー、食品メーカー、銀行など色んな業種の色んな現場に行ってました。
銀行のシステム作りの現場では、オフショア(中国)開発をやっていて、実際に中国へ技術指導に行ったことも。(中国出張が決まったらすぐに、「地球の歩き方」を買いに行ったのは内緒です。<- 何しに行くと思ってんだ!w)
そんなJavaエンジニアの私が、Pythonで機械学習をやってみた結果を書き記したいと思います。
(もちろん、業務でPython使ったことは一度もございませんし、Pythonの知識もほとんどないです。)
経緯
今は、他社様のシステム開発を担当するチームに所属しているのですが、弊社には、大量のデータがあるので、データを扱っているチームから、いつお声がかかってもいいように準備しておこうと、基礎的な学習を始めました。
使っている本はこれ。
実際にコード書きながらできそう、ということで選びました。
環境構築
最初に戸惑ったのは、Pythonの開発環境の構築でした。
まず、色んなツールやライブラリをインストールするところで、本ではバージョンを指定する方法が示されていました。
Anacondaって何??
まぁ、ええとしよ。
※参考:Anacondaのこと書いてくれている記事
(機械学習やるために便利なものなのかなー)
本では、Python3.6って書いてあるけど、3.7って出てきたよ??
まぁ、ええとしよ。最新が好きやし、3.7で進めよっと。
で、ライブラリインストールするところで、
conda
やpip
というコマンドでバージョン指定しながら色々インストール。
なんやろ、このコマンドの違いは。
まぁ、ええとしよ。
ほんなら、なんかのライブラリで(なんだったかは、わすれた。)
インストールできません! みたいなエラーが。。。
えええええ!!!って思って、調べたら、Python3.7だとダメって見つけました。
だから、あえてPython3.6にダウングレード(?)したら、無事成功。
おお、、バージョンに結構シビアそうやな。。。ってのが、最初の感想。
開発
環境整って、いざプログラミング!!
となると、「Jupyter Notebook」(以下、Jupyter)というものを使います。
本の指示に従いながら 、AnacondaからJupyter起動すると、
どうやら、Inって書いてある欄にコード書いて実行するってスタイル。
コード書いて、「Shift+Enter」押すと実行される。
JupyterでPythonの基礎を進めているときには、
なにこれ?なんでこんなんが開発環境なん??これ使う必要あるん??
って思ってました。
そう、機械学習の話が始まるまでは、、、
データの可視化
Pythonの基礎が終わって、機械学習の話が始まったときに、
おおお!これは便利かも!!
と思ったのです。
こんな感じで、スクリプト書いて実行したら、データの可視化できるんですよ!!
なるほど、こういう感じでサクッと、データを可視化するのは、
Javaでやろうとしたらめんどくさそうやな。
Python便利やな、おもろいな!
と思いました。
ただ、Pythonで大規模開発やるのは、ちょっとしんどいんじゃなかろうか、、と。
(ここで言う大規模開発:色んな会社、色んなレベルの人が協同する業務系のでっかいシステム作り)
だから、
1. Pythonで、データ処理を色々試して
2. いざ、プロダクトにするときはJava(みたいな固い言語)で書く
みたいに、使い分ければいいんじゃないかなぁ、と。
今まで経験してない分野でも、少しでも触ってみると、イメージできる幅や深さが一気に増える気がしました。
JavaエンジニアがPythonで機械学習を学習した結果
- 初めての言語でも、なんとかなる!
- やっぱりサンプルコードは自分で書いて、体感するべき!
- 言語は、適材適所!必要ならば学習するべき!
- AI、楽しそう~☆
と思いました。(小並感
AI/IoT的なサービスのアイデアが何かひらめいたら造れるように準備しておくぞー!!!
この本を一通り終わらせたら、ブロックチェーンの学習もやろうと思っています。
(あ!まだ、機械学習の本が終わってないってことを、自白してしまった。。。ORZ)
最後に
JavaとPythonの比較をまとめようと思っていたら、すでにこちらでまとめられてましたね。
https://www.sejuku.net/blog/36782
おわり