【Day000】 「Python言語を習得する」->「Kaggleで戦う人になる」への変化
こんにちはツヨシです。
最近プログラミングをやっていないと思いPythonをきちんと学び習得しようと思いました。 それが前回のPythonを習得しようと思い書いた記事です。
気がつけばあれから8ヶ月経っています。 年初は、やる気に満ちていますがやる気だけじゃ何も進みません。必要なのは行動です。
Pythonをマスターするための学習の戦略を考えてみました。
- 環境を整える
- Pythonの基礎を固めるため文法を学ぶ
- やりたいことを決める
- 必要な知識があれば基礎的な部分を学ぶ
- 実際やってみる
- 足りない部分があれば追加で学習する
こんな感じで進めればいいのかなとおもったのですが、やりたいことを見つけないといけません。
実際に手を動かしていくのが最短ルートだと思い、なにがいいかなと考えてみたところ、Kaggleをやってみようとなりました。 というのもKaggleはデータサイエンスを使って問題を解いていくといったコミュニティでPython言語などを使うことになります。
「Python言語を習得する」ではつまらないですものね。実際に使える場所が欲しいので「Kaggleで戦う人になる」という目標をもとに「データサイエンティスト」を目指したいと思います。
Kaggleは日本でもかなり認知されてきまして、多くのソフトウェア開発者が参加しています。 また、Kaggleではデータサイエンスに関するコンペが開催されており、これの上位に入賞することが一種のデータサイエンティストのステータスだったりします。
つまり、流行には乗っちゃえということですね。
またKaggleをやるにあたってプログラミングに関する知識だけでなく、データサイエンスつまり数学や機械学習に関する知識が必要になります。
データサイエンス、数学、機械学習に関して全く下地がないので「数学の基礎」「統計学」「微分」などを勉強しつつプログラミングにより演習問題をやっていきます。
環境の構築
とりあえずは環境の構築からですね。
色々と調べてみると「Jupyter Notebook」が開発環境として良いことがわかりました。
また、Pythonの数値計算のライブラリがいくつかありこれらをまとめてインストールできる「Anaconda」が良いようです。
AnacondaはPythonとそこで使うライブラリをパッケージ化したものになります。Python本体やライブラリにはバージョンが存在しているため、バージョン間の依存があります。
このためあるライブラリを使うライブラリが、特定のライブラリでしか動かない状況が存在します。こういった依存関係を解消してパッケージ化したものがAnacondaになります。
「Anaconda」はJupyter Notebookも入っているのでこれで十分ですね。
ということで、下記から「Anaconda」をダウンロードしてインストールを行います。
Pythonの基礎を固めるために文法を学ぶ
Anacondaのインストールも終わったらまずはPythonの基礎を学ぶの段階になります。
Pythonを学ぶ方法として定番の書籍の「入門Python3」を使っていこうと思ったのですが、なんせ600ページもあるのでこれを全部やるのは時間がもったいないです。「入門Python3」は辞書的に使って薄っぺらい参考書をやってみます。
「独学プログラマー」がソフトウェア開発をする上での心得や、Pythonの基礎的なことを解説してるので、とりあえずこれをやってみたいと思います。
Githubでコード管理をする
あとはやったこと、コードを管理するためにGithubを使用していきます。Gitは少し使っていますが、add、commitくらいしか使っていません。。。
Gitの知識も本格的に必要になります。
Githubについても使ったことがないので、この使い方も習得しないといけないんですね。
数学的な素養
Kaggleをやるためにはデータサイエンティストとして数学の知識も必要になります。「統計学」「微分積分」ですかね。まずは高校レベルの復習から始めたいです。
かれこれ高校を卒業して数十年。数学についてまったく覚えていません。大丈夫かな。。。
高校数学レベルでは足りないので大学レベルの数学までは復習したいです。
まとめ
ということでKaggle実施のため、基礎の習得の手順としてはこんな感じになります。
こんな感じでしょうか。
先が長いなー。
「Pythonを習得してみよう」と当初は考えていましたが、いまいちな目標なので「Kaggleで戦う人になる」にかわりました。
まあ、すこし具体的でいいですね。
まずはやるしかないので、学習を進めていきたいと思います!!!