Pythonを学びデータサイエンチストになりたい

データサイエンティストになりたい、と夢想しながら読書記録を書くブログです。

■Python学習で使った参考書と学習履歴(2月25日更新 随時更新)

現在、Pythonを学習中です。使用している書籍と学んだこと、所感を記します。

 

■9月下旬

独習Python入門――1日でプログラミングに強くなる!

独習Python入門――1日でプログラミングに強くなる!

 

Pythonの最低限の使い方について。Pythonそのものをインストールし、Windowsのコマンドプロントで操作しました。テキストエディタAtomを使用。

 

■10月上旬 

Pythonエンジニア ファーストブック

Pythonエンジニア ファーストブック

 

結論からいって、2冊目としては早かった。Ubuntuを使って操作する、というのがハードル高かった気がする。Pythonを使ってスクレイピング、データ分析、Web開発ができるということは学びました。データ分析のJupyter Notebookが使えるようになったのは良かった。またいつか戻って学習したい。

 

Minecraftで楽しく学べる Pythonプログラミング

Minecraftで楽しく学べる Pythonプログラミング

 

Pythonで何かが動くことの楽しさを学びました。絶対やらなくてはいけない、ということはないです。

 

■10月中旬 

横道にそれて、Pythonでチャットボットについて学習。DockerやKitematicを使ってDjangoを利用し、Webアプリの全体像について知ることができた。後にDjangoはAnacondaで使えた方が良い、ということに気付いたけれども、Webアプリのデータ全体を見ることができたのは良かった。 

 

データサイエンス教本 Pythonで学ぶ統計分析・パターン認識・深層学習・信号処理・時系列データ分析

データサイエンス教本 Pythonで学ぶ統計分析・パターン認識・深層学習・信号処理・時系列データ分析

 

これを使ってデータ分析や統計について学習中。Anaconda最高だね。 これによってAnacondaとJupyter Notebookが安定して使えるようになった。

 

■10月下旬 

Python Django 超入門

Python Django 超入門

 

Pythonエンジニアファーストブック等で尻切れになっていたDjangoについて学びたくて入手。超入門、と書いてあるだけあって非常に分かりやすい。AnacondaとSpyder使用。ここでsetting.pyなどの修正についてようやく学ぶ(エンジニアファーストブックで分からなかった)。2冊目に読んでも良かったかも。 

 

この時点で、考えていることは以下のとおり。

・基礎本で定時されているアプリなりデータ分析を、自分で改良する。

・それをブログ等で発信していくとともに、テクニックのストックを溜める。

・やがては自分でオリジナルの作品を作っていく。

 

この流れができれば、データサイエンティストとして働けるのではないだろうか、と考えているのでした。その上で、以下の2点は忘れず進めていきたいと思う。

・オープンデータを自分なりに探索する

・データ分析する手法やスキルについてしっかり磨く

 

 

この調子で、読んだ本を紹介していきます。

 

Python学習を1ヶ月やってみて

分からなかったことが大分わかるようになった、視界がひらけたという感じです。Pythonを使いこなせると、色々と業務の簡素化もできそうという可能性も感じてきました。

 

あとプログラミングは文法といった知識だけでなく、開発環境の設定も結構大変だな、と感じました。これがうまくいかないことも多いです。ですが現在はAnacondaとコンパイラ、エディタはSpyderでシコシコとやっております。

 

■11月上旬

 もともとPythonでデータ分析をしたかった、というのもあり以下の本で練習。

Python実践データ分析100本ノック

Python実践データ分析100本ノック

 

 これはなかなか参考になった。データ加工、基礎的な機械学習最適化問題などについて実践的に学ぶことができた。これをもって自分の身近にあるデータを分析しよう、という気持ちにさせられた。

 

その流れで、Kaggleについて関心を持つ。ネット上でKaggle参戦に関するブログ等をみつつ、基礎的なところを学び、実際に登録する。そして以下の本でKaggleについて体系的に学習。

Kaggleで勝つデータ分析の技術

Kaggleで勝つデータ分析の技術

 

 

この結果、自分自身に機械学習について基礎的な理解が足りていないことを痛感する。Kaggleにて他の人のコードを学びつつ、自分で機械学習についても学んでいかなければならないな、と感じたのでした。

 

12月上旬~中旬

このあたりからスランプ、というかあまり進捗を感じなくなる。Kaggleでデータを修正していくものの、いまいち実力がついている気がしない。

 

 

 

12月下旬~1月上旬 年末年始のお休みで、特に勉強は進まず…。

 

1月上旬

いったん本の学習に戻る。 

Pythonによる機械学習: 予測解析の必須テクニック

Pythonによる機械学習: 予測解析の必須テクニック

 

自分としては中級レベルに感じる本。予測解析に関し、様々な事例をコードとともに紹介。Kaggleにも通じるものがあると感じるので、ちょくちょく見直したい。ただ、これを読んで感じたのは、「やはりKaggleで手を動かして、煮詰まったら読書に戻る」ということである。

 

1月上旬

転職エージェントの人とお話しをする。データ分析やデータサイエンティストの職も紹介してくれるという。現職でもう少しデータ分析の実績を積み、ある程度の下地があれば、紹介をすることができるという。ゴリゴリのエンジニアだけではなく、「エンジニア」と「クライアント」の間をつなげる、「ある程度基礎知識もあり、素人の人にもわかりやすく説明できるスキル」というのはそこそこ求められているという。

 

このあたりでデータ分析のポジションに転職することが、さらに自分の壁を超える上で重要なのだろう、と感じております。転職できるならばするべきなのか…。

 

2月

SignateやKaggleのコンペに参加しはじめる。といってもゼロから作り上げることはまだできないため、基本的には他の人が作り上げたものを真似るだけ。というか英語のリーディングに近い気がする。コードを見て、それぞれ何を意味しているのか探り、改良できそうなところがあれば修正していく。その繰り返しである。

 

このため、自然言語処理や画像識別といったことも触れるようになった。あまりよくないのだろうけれども。このように過去のコンペやコードにも触れ、その結果として自分の知識のストックなんかも増やしていきたい、と考えている。まずはKaggleでブロンズメダルも目指そう。

15Stepで踏破 自然言語処理アプリケーション開発入門 (StepUp!選書)

15Stepで踏破 自然言語処理アプリケーション開発入門 (StepUp!選書)