前置き
機械学習といっても何を入れて何をしたらいいやらなので、試行錯誤したログを残しておく
参考にしたリンクとかも貼っておく
後から見直したときに、どこまで調べたか思い出せるようなメモになることでしょう(願望)
Python使おうと思い至った理由
「機械学習 チュートリアル」でググった結果の上位に機械学習初心者が、素早く学べるコンテンツとライブラリ20選(Python編)があったのでね
Python編だしね
あと機械学習用のライブラリで「scikit-learn」って名称を聞いた覚えがあったのでね
Windows用のPython環境ってどれがいいの…?
一から環境構築するのは辛いので(時間さえあれば楽しいのだけど)、いい感じになっているパッケージを使いたいところ
この辺がいいらしい?のかな?
3年位前にPython勉強しよかと思って落とすだけ落としてみたPortablePythonは開発止まっちゃったみたい
Python(x,y)は06/30/2015で更新止まってるし、いまさら2.x系は...と言うことで除外
anacondaだとLinuxに移った後もつかえていいかな、と思ったがレジストリいじらないポータブルスキーなのでWinPythonにしました
Linuxで入れるのに苦労したNumPy,SciPyはもちろん、お目当てのscikit-learnもパッケージングされてるみたいだし、いいんじゃないですかね
そのものずばりな比較ページがあったので参考にしたよ
"Pythonパッケージ集の比較",minus9d's diary
WinPython、君に決めた!
VC++2015再頒布パッケージがいるよって書いてあるので落としてきて入れる
WinPythonは2世代メンテされているのかな?
今(2016/7/12)の最新は以下2世代っぽい
- WinPython 3.4.4.2
- WinPython 3.5.1.3
深く考えずにバージョン大きいほうを使ってみることにした
マイナーバージョンが奇数だと開発版、みたいな言語があった気がするけどPythonはどんな法則でつけてるのかな?
インストールと言うか単なる展開と言うか、とりあえずCドライブ直下にpyディレクトリ作って入れてやった
インストールディレクトリ変えたくなったら切り取りで移動できるから、ポータブル系は楽でいいよね
やっとこさ機械学習的なチュートリアル
scikit-learnのページでチュートリアル進めればいいのだけど、英語は…という自分のために日本語でチュートリアル進めてるページを探して一ステップずつ
"scikit-learnによる機械学習入門",たけぞう瀕死ブログ
WinPython入れたディレクトリにexeいっぱいあってどれ起動すればいいのかアレなんですが、Jupyter Notebookってやつが対話シェルより便利みたいなのでそいつを動かしてそれっぽくコードを打ち込んでいく
最後、判定結果8が返ってきたのはいいんですが、なんか警告出たんですけど
C:\py\python-3.5.1.amd64\lib\site-packages\sklearn\utils\validation.py:386: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
DeprecationWarning)
dataを1次元配列として渡すのはscikit-learnのバージョン0.17から廃止?とか、0.19になったらエラーになるよ、とかって書いてる気がするけど、scikit-learn本家のチュートリアルページ見ても同じコードのままなんで謎
下のコードに変えると警告は止まるんだけど、どういう原理なんだろう…
一応2次元配列に変わってるからその辺が関係してるのかな?
clf.predict(digits.data[-1].reshape(1,-1))
fitに渡す配列を短くすると精度が落ちるのも確認できたし、ひとまず学習したっぽい?のでこの辺まで
続きはまた今度