6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オークファンAdvent Calendar 2018

Day 14

JavaエンジニアがPythonで機械学習を学習した結果www

Last updated at Posted at 2018-12-13

自己紹介

前職はSIerにて、13年ほどWebアプリケーションの開発に携わっていた @mizai と申します。
サーバサイドにて、Javaをメインに使っておりました。(入社当時は、COBOLエンジニアへの可能性もあったなぁ、、、(しみじみ))

業務系のシステム作りがほとんどで、製薬会社、住宅メーカー、食品メーカー、銀行など色んな業種の色んな現場に行ってました。

銀行のシステム作りの現場では、オフショア(中国)開発をやっていて、実際に中国へ技術指導に行ったことも。(中国出張が決まったらすぐに、「地球の歩き方」を買いに行ったのは内緒です。<- 何しに行くと思ってんだ!w)

そんなJavaエンジニアの私が、Pythonで機械学習をやってみた結果を書き記したいと思います。
(もちろん、業務でPython使ったことは一度もございませんし、Pythonの知識もほとんどないです。)

経緯

今は、他社様のシステム開発を担当するチームに所属しているのですが、弊社には、大量のデータがあるので、データを扱っているチームから、いつお声がかかってもいいように準備しておこうと、基礎的な学習を始めました。

使っている本はこれ。
blog.jpg
実際にコード書きながらできそう、ということで選びました。

環境構築

最初に戸惑ったのは、Pythonの開発環境の構築でした。
まず、色んなツールやライブラリをインストールするところで、本ではバージョンを指定する方法が示されていました。

Anacondaって何??
まぁ、ええとしよ。
※参考:Anacondaのこと書いてくれている記事
(機械学習やるために便利なものなのかなー)

本では、Python3.6って書いてあるけど、3.7って出てきたよ??
まぁ、ええとしよ。最新が好きやし、3.7で進めよっと。

で、ライブラリインストールするところで、
condapipというコマンドでバージョン指定しながら色々インストール。

なんやろ、このコマンドの違いは。
まぁ、ええとしよ。

ほんなら、なんかのライブラリで(なんだったかは、わすれた。)

インストールできません! みたいなエラーが。。。

えええええ!!!って思って、調べたら、Python3.7だとダメって見つけました。
だから、あえてPython3.6にダウングレード(?)したら、無事成功。

おお、、バージョンに結構シビアそうやな。。。ってのが、最初の感想。

【参考】これがAnacondaの画面
anakonda.PNG

開発

環境整って、いざプログラミング!!
となると、「Jupyter Notebook」(以下、Jupyter)というものを使います。

本の指示に従いながら 、AnacondaからJupyter起動すると、

こんな感じ。
jupyter.png

え?なんかブラウザが起動したんやけど??
jupyter.PNG

どうやら、Inって書いてある欄にコード書いて実行するってスタイル。
コード書いて、「Shift+Enter」押すと実行される。

JupyterでPythonの基礎を進めているときには、
なにこれ?なんでこんなんが開発環境なん??これ使う必要あるん??
って思ってました。

そう、機械学習の話が始まるまでは、、、

データの可視化

Pythonの基礎が終わって、機械学習の話が始まったときに、
おおお!これは便利かも!!

と思ったのです。

なぜか!?
sanpuzu.PNG

こんな感じで、スクリプト書いて実行したら、データの可視化できるんですよ!!

なるほど、こういう感じでサクッと、データを可視化するのは、
Javaでやろうとしたらめんどくさそうやな。
Python便利やな、おもろいな!
と思いました。

ただ、Pythonで大規模開発やるのは、ちょっとしんどいんじゃなかろうか、、と。
(ここで言う大規模開発:色んな会社、色んなレベルの人が協同する業務系のでっかいシステム作り)

だから、

1. Pythonで、データ処理を色々試して
2. いざ、プロダクトにするときはJava(みたいな固い言語)で書く

みたいに、使い分ければいいんじゃないかなぁ、と。

今まで経験してない分野でも、少しでも触ってみると、イメージできる幅や深さが一気に増える気がしました。

JavaエンジニアがPythonで機械学習を学習した結果

  1. 初めての言語でも、なんとかなる!
  2. やっぱりサンプルコードは自分で書いて、体感するべき!
  3. 言語は、適材適所!必要ならば学習するべき!
  4. AI、楽しそう~☆

と思いました。(小並感

AI/IoT的なサービスのアイデアが何かひらめいたら造れるように準備しておくぞー!!!

この本を一通り終わらせたら、ブロックチェーンの学習もやろうと思っています。
(あ!まだ、機械学習の本が終わってないってことを、自白してしまった。。。ORZ)

最後に

JavaとPythonの比較をまとめようと思っていたら、すでにこちらでまとめられてましたね。
https://www.sejuku.net/blog/36782

おわり

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?