限りなく院生に近いパリピ@エストニア

エストニアという国で一人ダラダラしてます。

A/B test with python

This is just going to make our generated datas as well as is able to emulate a real data collection surface.

class DataGenerator:
    def __init__(self, p1, p2):
        self.p1 = p1
        self.p2 = p2
        
    def next(self):
        if np.random.random() < self.p1:
            click1 = 1
        else:
            click1 = 0
        
        if np.random.random() < self.p2:
            click2 = 1
        else:
            click2 = 0
        return click1, click2

p1 and p2 are probability of click for group 1 and group 2.


Next, I will write a function for obtaining the p-value.

def get_p_value(T):
        det = T[0,0]*T[1,1] - T[0,1]*T[1,0]
        c2 = float(det) / T[0].sum() * det / T[1].sum() * T.sum() / T[:,0].sum() / T[:,1].sum()
        p = 1 - chi2.cdf(x=c2, df=1)
        return p

I am going to explain p-value later in the other article.

Next, I will write a function for running a experiment.
That is going to include the probability of click for group1 and group2 and the number of samples.
In this case, I am going to take 2500 samples.

def run_experiment(p1, p2, N):
    data = DataGenerator(p1, p2)
    p_values = np.empty(N)
    T = np.zeros((2,2)).astype(np.float32)
    for i in range(N):
        c1, c2 = data.next()
        T[0,c1] += 1
        T[1,c2] += 1
        if i < 10:
            p_values[i] = None
        else:
            p_values[i] = get_p_value(T)
    plt.plot(p_values)
    plt.plot(np.ones(N)*0.05)
    plt.show()
    
run_experiment(0.1, 0.11, 2500)
    data = DataGenerator(p1, p2)

The data written above is to create an instance of data generator.

     if i < 10:
            p_values[i] = None
        else:
            p_values[i] = get_p_value(T)

We have to ignore the first a few datas in terms of taking into account p-value.
Because if we try to calculate the p-value too early, the formula might be broken.

      c2 = float(det) / T[0].sum() * det / T[1].sum() * T.sum() / T[:,0].sum() / T[:,1].sum()

I divided by row sums and column sums, so if any of those are 0, I cannot calculate it.

はてなブログにソースコードを貼る方法(メモ)

適当に実装したものもメモとしてこのブログに残しておきたいと思ったのだが、

そもそもはてなブログへのソースコードの貼り方、埋め方を知らなかったので、とても簡単に調べて、簡単にまとめておこう。

 

 

まず、前提として

はてなブログソースコードをそれっぽく表示するには、

htmlで<pre><code>と</pre></code>の間に表示させたいソースコードを入れるのが一番簡単な方法だと思う。

 

 

もっと見やすい出し方とかもあるが、僕はそこまでエナジーを注ぎたくはないので、

<pre><code>ソースコード</pre></code>

の一強でしばらくいきたい。

 

 

f:id:T_I_SHOW:20170915031633p:plain

画像の赤丸で囲んである部分からHTML編集に飛んで、

f:id:T_I_SHOW:20170915031831p:plain

と打ち込めば、例えばCSSなら下のように簡易的な表示が可能。なるほど。

.entry-content h3{ 
padding: 5px 10px; 
border-left: 10px solid #fc0;
}

色をつけたりする場合は、別の方法の方が良いかも?!

趣味は仕事にしない方がいい

大学3年生の終わり頃くらいからかな。

僕が人生を真剣に考えることをやめたのは。

 

 

人生をゲームとして。

もっと言えばやることなすこと全てを趣味と思って取り組み始めてから、

人生が楽しくなった気がする。

 

 

だからエストニアに来てるのも趣味みたいなものだし、

物理やったり、データ解析したり、またはその大会に自ら参加してるのも全部趣味であって、わざわざ仕事にしたいと思わない。

 

 

夏の日本でのインターン中やエストニアに来てからも、いくつか会社から声をかけられたので、面接に行ったりすると、決まって

「数年後はどうなっていたい?」という、いかにも繁華街のアホなOLが好きそうな高級料理店で出されるスイーツ、みたいなことを聞かれる。

そんなことは僕にはどうでもいい話なので、

「特にないです」と答えた。もちろん特にない理由を相手に納得してもらうように説明する努力はしてきた。

まぁそんな感じでも面接はインターンも、こっちの会社も通ったし、だから「夢なんか持つ必要がない」ということも、あながち理解されないことでもないのかもしれない。

 

 

ある会社ではこんなことも聞かれた。

 

「やりがいを持って仕事ができる人じゃないと、うちでは残れないと思う。仕事はお金をもらうための作業ではなくて、やりがいを見出しで自ら動くものと思うけれど、君はどういう考えを持っている?」

 

似た話は、面接でなくてもいろんなところで聞いてきた。

 

 

僕が「仕事はお金をもらうためにするもので、それ以上でもそれ以下でもない」

と答えると、面接官の眉毛が釣り上る。

 

 

趣味を仕事にすると絶対にそれが嫌いになってしまう。

テニスは大好きだったが、テニスコーチの仕事は大嫌いだった。

大学時代、時給3000円ももらっていたというのに、バイトのある日はいつもより重力が強く感じだ。

それでいて、サークルの仲間などにテニスを教えるのは楽しかった。もちろん無給だ。

 

 

「仕事にやりがいを」みたいなことを言っている人に問いたい。

あなたのやっているその仕事、お金が払われなくても続けますか?

 

本当に仕事にやりがいを感じてるという人は、それを仕事と思っていない。

趣味同然だ。自分で会社を始めたり、安月給でもアニメを作り続けるクリエーターなんかはその類である。

一方で、雇われてそれなりの安定した給料をもらっている場合は、給料が払わられなくなった時、本当に続けるのだろうか?

ほとんどの人はやめてしまうのではないか?

 

 

とある心理学の実験。

一方のクラスにはテストを受けたら500円あげると言う。

もう一方には無給。

 

テストが終わり、最初に500円あげたクラスの方に、次のテスト(無給)受けたい人受けていいよと言う。

もう一方には相変わらず無給。

 

この場合、最初から無給だったクラスの子の方が、次のテストも受ける数が多い。

 

 

報酬があると結局それが行動の理由になってしまいがちなのだ。

趣味というのは基本、無給でも好きだからやってしまうもの。

この論理でいくと、趣味を仕事にしても続かないのは明白ではないのではなかろうか。

 

 ちなみに面接で、このような話をもっと整頓して話したら、面接官も大満足してくれたので、もし聞かれたら使える回答かもしれない。