データ分析の勉強方法

データ分析の勉強方法

データ分析に慣れるために日々色々と情報収集しています。
そんな中で、見つけた記事を紹介します。


自分が最近データ分析に関する情報収集のためによく見ているサイトanalyticsvidhya
Analytics Community | Analytics Discussions | Big Data Discussion


ここで、Pythonを使ったデータ分析の勉強方法がまとめられていました。
Python Training | Python For Data Science | Learn Python

このほか、Python以外でもRやTableuなどを使ったデータ分析についての記事もあります。

Pythonを使ったデータ分析の勉強

自分は、とりあえず上記のPythonのデータ分析Pathで紹介されている、CodecademyHackerrankを進めてます。
記事の中では、Step2(Pythonの基礎)にあたります。
今は、Codecademyの無料でできるPythonの課題は全て終わり、Hackerrankも1/3位くらいまで終わったところ。

進め方

Codecademyの方が親切なので、手をつける順番はCodecademy→Hackerrankの方がオススメです。
Hackerrankは、求められている内容がわかりにくい問題もよくあり、ちょっと慣れが必要かも。わからなくなったら、大体Discussionに答えが書いてあるので、それを見ながら、コードの意味を調べて提出してます。
あと、Hackerrankは、問題によりますが英文を読むのが結構疲れます^^;

初心者がコーディングの勉強をするのに最適

結局、コーディングの勉強は他人の書いたコードを見ながら、それを自分でも扱えるように取り込んでいく作業が大半になっていく気がします。多分勉強するフェーズによってその割合は変わってくるのだと思いますが。
初心者にとって、そのような学び方が出来る環境は少なく(コーディングの目的(課題)、お手本(ヒントや他ユーザーの回答)、扱う問題やコードの量が限られていることなどの条件が必要)、そういう意味で上記のようなサービスは画期的かつ、貴重だと思います。

続けて勉強できる仕組み

Codecademyは進捗が%表示され、Hackerrankは解いた問題に応じて点数が貰え、その点数の累積で全ユーザーの中でのHackerRankがわかるようになっていて、どちらも問題を解いただけ進捗し、日々の進捗が数値化されてわかるようになっています。ユーザーにとってこれが以外と嬉しく、継続して学べる仕組みの一つになっているようです。
あと、自分のペースで空き時間にサクッと出来る事もこれらのサービスの良いところです。ネットとキーボードされあればどこでも勉強出来ます。


自分の勉強状況

自分は元々Pythonは独自で勉強していましたが、その時は必要なところだけ場当たり的に調べて書くというのを繰り返していました。初心者や通常の業務でコーディングする機会があまりなかったりする人は、とにかく最初は慣れが必要なので、こういうサービスを使ってみるのも良いかと思います。


これらの基礎が一通り終わったら、次はstep3,4ですが、ここではデータ加工や、Numpyを始めとする統計処理に使うライブラリを学び、step5でデータの可視化、step6で機械学習を学ぶ感じみたいです。


Pythonコーディングは一旦基本的にはこれの通りに進めてみようと思います。


理論の勉強

あとは、ベイジアン確率モデルの勉強はまた別で、色々本とかを読みながら勉強してます。最近は、

1.課題やアイデアを考える
(Webログから行動予測したい、購買データからユーザーをクラスタリングしてLTV上げるための施策の材料にしたい、ビットコイン価格の予測をしたい等)
2.最近の論文読む
3.出てくるモデルについて調べる
4.webのpdfや本で勉強

というような流れで進めてます。
ここら辺の話はまた今度書こうと思います。

ソーシャル物理学:「良いアイデアはいかに広がるか」の新しい科学

読書メモ

ソーシャル物理学を読んだ。


ソーシャル物理学:「良いアイデアはいかに広がるか」の新しい科学

ソーシャル物理学:「良いアイデアはいかに広がるか」の新しい科学




タイトルになっている「ソーシャル物理学(社会物理学)」を調べてみると、1800年代のアドルフ・ケトレーという数学者が確率論を社会研究に応用しようとしたのが始まりらしいが、現在そういう学問が広く一般的に確立している訳ではなさそう。


この本で扱っている分野は計量経済学とか複雑系とかに近く、それでいてかなり現実社会への応用を前提とした研究の話が書かれていて非常に興味深かった。
著者はMITメディアラボの教授として社会物理学を研究しており、ビッグデータ研究の世界的な第一人者で、フォーブス誌が選ぶ「世界で最も有名な7人のデータサイエンティスト」に選ばれている。


現在の社会は、ついにビッグデータ(スマホをハブとしたセンサーデータ、SNSデータ等)を用いて、人間社会を定量的に可視化できるようになってきており、そこから統計的に人間行動を計測分析し、人間社会を予測できるようにし、"改善"するというのが著者のやりたいことである。これを実現するための、人間社会を表現するモデルに、"物理学"が出てくる。
人間社会を表現する側面として、人や組織の間の情報の流れに着目し、これを物理の粒子、エネルギーの流れのアナロジーとして数式を当てはめるようなイメージで物理学を人間社会(人間の組織)の改善に適用しようとしている。

社会物理学とは、情報やアイデアの流れと人々の行動の間にある、確かな数理的関係性を記述する定量的な社会科学である。

このようにアイデアの流れに注目するのが、社会物理学という名前をつけた理由だ。通常の物理学の目標が「エネルギーの流れがどのように運動の変化をもたらすか」を理解することであるように、社会物理学は「アイデアや情報の流れがどのように行動の変化をもたらすか」を考察する。


この人たちの論文をちょっと調べてみようと思う。

codecademyのpythonコースをやってみた その2

前回の投稿に引き続き、codecademyのpythonコースを進めています。
再度、明らかなバグを見つけましたので、解決方法をメモ。

[Reading Between the Lines]のエラー解決方法

95%程度まで進んだら遭遇しました。

"text.txt"というテキストファイルをopenして、readlineで読み込む課題なのですが、そもそも"text.txt"というファイルが存在しないとの下記エラーが。

No such file or directory: 'text.txt'

フォーラムを検索したら、やはりみんなひっかかっているようで、解決方法もみつかりました。

"text.txt"ファイルがないのなら、作ってしまえばいいということで、最初にファイルを自分で作成してから、課題のコードを記述することで解決しました(^^;)

■課題をクリア出来るコード
with open("text.txt", "w") as f:
f.write("hello")

myfile = open("text.txt", "r")
print myfile.readline()
print myfile.readline()
print myfile.readline()

my_file.close()