こちらにきて、3か月が経とうとしています。語学学校に6週間、USFのAnaluyticsのBoot Camp5週間、と計11週間授業を受けてきました。Speakingが上達してきたね!と先生からも良いフィードバックをいただいて、ご機嫌な今日この頃です。
Native Speakerの人と話していて、よく What?って聞き返されるときは、イントネーションがおかしなときです。これは先生からもアクセントがストロングだ!と指摘されます。特に、慣れてくると、つい早口になってしまいますが、このときにアクセントがめためただとわかってもらえてないです。
なるべく丁寧に発音することが大事ですね!
昨日は飲みすぎたので、今日は一日本でも読んでゆっくりしよ。
30歳からの留学チャレンジ。San Francisco にあるUniversity of San Franciscoでの日々。
2013年8月12日月曜日
2013年8月3日土曜日
Boot Campもあと1週間!
ついに金曜日!そして、Boot Campも残るは1週間。
Boot Campという名前だけあって、そこそこしんどいものがありましたが、何とかパスできそうです(Boot Campで1つでもFailすると、MSANのプログラムを続けられず、来年再チャレンジということになります。実際に去年は数名いたようですが、今年戻ってくることはなかったそうな)。
気は抜けませんので、最後まで頑張ります。
ここまでで面白いと思ったトピックを備忘で残しておきます。
Inverse Method
乱数発生法で、累積密度関数(CDF)の逆関数を使って、ターゲットの分布関数(pdf)の乱数を発生させる手法です。逆関数には0から1の一様分布を使います。CDFが求められる場合には簡単に乱数を発生させられます。離散分布のpmfも少し工夫すれば求められます。
Acceptance-Rejection Sampling
CDFが求めにくい関数もあるでしょう。たとえば、正規分布とか。そういうときは、Acceptance-Rejection Samplingを使うとターゲットの分布を求められます。これは、一様分布 Uとサポートする密度関数の乱数xを発生させて、U < f(x)/c*g(x) (f(x)がターゲットの密度関数、g(x)がサポートとなる密度関数)を満たしたときのxを、ターゲットの分布関数からの乱数として採用(Accept)するという手法です。
たとえば、標準コーシー分布をサポートの密度関数 g(x)、ターゲットの分布 f(x)を標準正規分布とします。そして、定数cは、y = f(x)/g(x)を最大化させたときのyをc とします。そして、標準コーシー分布からの乱数x と一様分布から乱数のUを以て、U < f(x)/c*g(x) を評価して、この条件を満たしたxを貯めていきます。この試行をたくさん繰り返して、貯まったxのヒストグラムを描くと、あ~ら~不思議、標準正規分布の乱数が得られてしまうのです。面白いです。
Randomization Test
ブートストラップの1種だと思われますが、私が習ったのは相関係数のケースです。2列のペアになっているベクトルのかたっぽを固定、もう一方の並びをランダムに並び替えて、相関係数を計算します。当然ゼロに近い数字になります。この試行をたくさ~ん繰り返して、全試行の相関係数をヒストグラムで描くと0を中心にした正規分布のような分布が出てきます。これって、p = 0 を帰無仮説にしたときの経験分布ですよね。これを使って、帰無仮説をp = 0, 対立仮説をp !=0 で検定する手法です。Empirical p valueを計算できますので、検定できます。
そのほか、ノンパラメトリックの検定手法(Sign Test, Signed rank Test, マン・ホイットニーのU検定など)も面白いですが、乱数については初めて勉強したので、特に興味深いです。残りのBoot Camp、そして8月中旬から始まる秋学期も楽しみです。
2013年8月2日金曜日
俺のPyCharmが止まらない
宿題で簡単なウェブログ解析(解析というほどのもんでもないんですが)をやっております。
100万ユニークユーザーのリクエストページのシークエンスを読み込んで、ユーザー数やページ遷移をPythonで集計するんですが、その処理が1時間経っても終わらず、PyCharmがうなっております・・・。そして、キーボードが暖かい。
今後、それなりの大きさのデータや多次元の最勾降下法など繰り返し計算するものもやっていくと予告されているので、速いコードを書けるようになるのは重要かもしれないです。
ただ、速くて短いコードを書けるって、センスの域も多分にあると思うんです。昔、ゼミの後輩で待ち行列のシミュレーションのコードを自分の3分の1の行で書いてきたやつがいて、「自分にはコードを書く才能はないなぁ」と感じたことを思い出しました。
とはいえ、宿題の締切もあるので、少しでも早いコードを書けるようにしたいものです。
と書いているうちに残り4万行!あと少しで終わりそうです。
100万ユニークユーザーのリクエストページのシークエンスを読み込んで、ユーザー数やページ遷移をPythonで集計するんですが、その処理が1時間経っても終わらず、PyCharmがうなっております・・・。そして、キーボードが暖かい。
今後、それなりの大きさのデータや多次元の最勾降下法など繰り返し計算するものもやっていくと予告されているので、速いコードを書けるようになるのは重要かもしれないです。
ただ、速くて短いコードを書けるって、センスの域も多分にあると思うんです。昔、ゼミの後輩で待ち行列のシミュレーションのコードを自分の3分の1の行で書いてきたやつがいて、「自分にはコードを書く才能はないなぁ」と感じたことを思い出しました。
とはいえ、宿題の締切もあるので、少しでも早いコードを書けるようにしたいものです。
と書いているうちに残り4万行!あと少しで終わりそうです。
登録:
投稿 (Atom)