2013年7月26日金曜日

Boot Campも折り返しだ!

明日で3週目が終わります。Boot Camp折り返しです。結構、早いなぁという印象です。毎日図書館で宿題をこなして寝るという毎日を土日関係なく繰り返しているような感じです。

備忘のため、ここまでの様子をまとめておこうと思います。


Boot Campでは、
① Computation (主にPython)
② Linear Algebra
③ Probability& Stats
④ Data Driven Business Strategy

の4科目から3科目受講します。実際は、Data Driven Business Strategyは全員必修なので、選べるのは3科目中2科目です。私は、ComputationとProbability&Statsを履修していますが、Linear Algebraも聴講しています。ほとんどの人は、履修していない科目も聴講しているので、結局ずーっと一緒にいます。


授業は結構ハード(スピード早い&宿題多い)です。毎週クイズがあるので、準備も必要です。聴講している科目でもクイズを受けるので(あんまり悪いと恥ずかしい)、結局全部宿題をやることになります。他のクラスメートも同じような感じです。

Linear Algebra
私は、聴講しているLinear Algebraが意外に苦戦中です。おそらく日本の教養科目でやる線形代数は、連立一次方程式を解く、行列式を計算できる、逆行列が求められる、固有値・固有ベクトルが求められるというのがスタンダードだと思います。各内容のコンセプトよりかは計算できることに
重きが置かれている印象です。

しかし、ここでの授業はコンセプトとそれを使いこなすことが求められているように感じます。クイズや宿題も幾何と行列の間の関係をクリアにできていて、各理論の内容を理解していることが求められています。ここが苦戦のポイントです。計算はできるけども、幾何の世界で考えていなかったので、「いったいなんのこっちゃ??」みたいなものがあります(ただの勉強不足?)。

Probability&Stats
Probability&Statsは、大学で指導教官に鍛えてもらっていたので、そんなに辛くないです(英語の教科書を使っていたこともあって、英語の問題も少ないです)。これは感謝です。内容は、基本的な期待値、分散の計算から、最尤推定、信頼区間、仮説検定といったいわゆる統計学概論でやるようなことをざーっと流していきます。しいて言えば、もう少し微積の復習をしておくべきだったかと思っています。クイズ中に、arctanがわからず、先生に「what is arc?] と質問してしまいました(恥)。

Computation
主にPythonでプログラムを書いていきます。内容は結構幅広く、乱数の発生(Libraryや関数を使わずに)やツリー構造のサーチ(Breadth-first, depth-first)といったコンピュータサイエンスチックなものから、最近はNumpy, Scipy,を使って、Central Limite Theoremのシミュレーションやbootstrapといった統計っぽいものまで幅広いです。プログラミングは好きなので、純粋に楽しいです。もはや趣味です。

Data Driven Business Strategy
Business Strategyとなっていますが、主にはAnalyticsコースに関わる数学以外のことすべてについての概論です。Analyticsのプロセスと各テクニック(Hadoopとは?Machine Learningとは?など)をざーっとみていきます。先生がコンサルティングもやっている方なので、実務上どうしているのかなどは聞きやすいですし、今予定されているゲストスピーカーも豪華です。


日本人は私以外いないので、もし興味持たれている方がいたら、質問などあったら、できる限りお答えしたいと思います。

2013年7月13日土曜日

1週間おわったー!

今日はHappy Friday! 最初の1週間が終わりました!

そして、一応、夏学期のBoot Campの授業すべて出そろいました。

どの授業も先生の教え方はうまいと思います。特に、Linear AlgebraとProbabilityは、あくまでデータを扱うことを前提に授業が進みますので、基礎的な内容ではあるものの、新鮮です。

たとえば、

行列A, B, C があったときに、 (AB)C = A(BC) (掛け算の順番を変えても答えは同じとなる)

というのがあります。線形代数の初歩の初歩です。

しかし、授業では、

もし、Aがすかすかの超でかい行列(0ばっかり), BとCが超でかい浮動小数点いっぱいの行列だったときに、どうかけたらメモリを節約できるか、早いかみたいな話をします。

BとCを最初にかけると、すごい大変ですが、ABを先に計算すれば、ABの計算結果もすかすかの行列になるので、こっちのほうが低コストだ!みたいな感じの説明がされます。

来週も楽しみです。

そして、これから、Shindigです!ビール買ってこなきゃ。

ではでは。

2013年7月11日木曜日

PyCharm、結構いいな~

USFのAnalyticsで使うのは、RとPythonです。Pythonも、Rと同様、データ加工や統計の計算に使われる模様です(すみません、まだ授業が始まったばかりで今後のことはわからないのですが、シラバスみるとそんな感じ)。

Rはよく使っていたので、なじみがあったのですが、Pythonは初心者です。しかし、クラスメートに教えてもらったPyCharmというIDEを使ってみたら、「あら、賢い!!」と感動してしまいました。

これなら、初心者でもできる!

PyCharm、とってもお勧めです。

ちなみに、JetBrain社が作っているようで、ここからダウンロードできます。


有償ですが、30日間は無料で使えますので、試してみてはいかがでしょうか?

Rをすでに使用されている方なら、Pythonのインタラクティブシェルは魅力的だと思います。私も、Rでインタラクティブシェルに慣れていたので、ipythonを最初使っていました。しかし、デバッグやナビゲーション機能などを考えると、PyCharmは非常に良いです。

とはいえ、インタラクティブシェルのほうが慣れていて、ちょっと手を動かしたいときにはipythonを使って、ちゃんとプロジェクトで書くときに、PyCharmを使うというような感じで使い分けています。

Python、楽しいな~

いよいよAnalyticsコース始まりました!

今週より、待ちに待ったAnalyticsコースが始まりました。7月から8月中旬は通常の大学であれば、夏休みですが、USFのAnalyticsでは、Boot Campと呼ばれる、線形代数、確率・統計、ビジネス・経済、プログラミングの基本を総復習するモジュールに充てられています。

これらは、大学で勉強した、もしくは実務で使っていたということが出願条件になっていますので、ここでつまずくということは、「おいおい、お前ちゃんと出願条件満たしてないじゃないか!!」ということになり、非常に厳しい状況に追い込まれます・・・。

なので、基本と言っても、気は抜けません。私の場合は、大学卒業したのもかなり前ですし・・・。

ということで、気合入れて頑張っていきたいと思います。