読者です 読者をやめる 読者になる 読者になる

丸の内で働く技術屋のブログ

丸の内エンジニアというジャンルを流行らせたい

よく使う情報量基準(相互情報量基準編)

2つの変数の相関関係を評価する尺度として相互情報量があります。

以下の式で、2つの変数X,Yの相関関係を評価する尺度になります。

{ \displaystyle I(X;Y) = \sum_{x,y}^{} P(x,y)log_2\frac{P(x,y)}{P(x)P(y)}}

XとYが独立におこる時、xとyが同時に起こる確率P(x,y)=P(x)P(y)で,

{ \displaystyle \frac{P(x,y)}{P(x)P(y)}=1}

となり、I(X;Y)=0になります。

XとYに正の相関関係がある時、I(X;Y) >> 0

XとYに負の相関関係がある時、I(X;Y) << 0

になります。なんとなくわかりますかね。

相関関係と何が違うのか?というと相関係数は直線的な相関関係しか確認できないものの、相互情報量直線的な形に限らず適用できる、というところが特徴的です。

「21世紀の相関係数」として、非常に多く引用されたようです。

こちらの資料がわかりやすくまとまっています。

www.slideshare.net

よく使う情報量基準(エントロピー編)

分析の仕事でよく使う情報量基準について書いていきます。相関係数とかはよく使われることが多いのですが、情報量基準となると丸の内界隈では親しみがない方も多い印象です。今回はエントロピーから。

エントロピー

みんな大好きエントロピー

{ \displaystyle H(x) = \sum_{x∈X}^{} P(x)log_2P(x) }

決定木分析などでもよく使用する情報量基準です。(情報理論におけるエントロピーを論じます)エントロピーとは確率分布の一様性を定量的に評価する基準と言われています。一様分布の時にエントロピーが最大となり、逆に分布がバラける場合エントロピーが小さくなっていきます。

例えば、社内に存在する案件で採算が取りやすい案件を探したいとします。100件の案件のうち、20の案件が高い採算が取れたとします。この場合、高い採算性が取れる可能性は20%、取れない可能性は80%です。

この時のエントロピーを計算すると

{ \displaystyle -0.2log_20.2 - 0.8log_20.8 }=0.7219

となります。

この状態ですと、闇雲に案件をこなしても20%の確率でしか高い採算を得られません。なるべく高採算性案件の条件を絞りたいところです。

ここで、公共案件で受注額が5億円以上という案件という条件の案件が25案件あり、その中に全て高採算案件が含まれていたとします。

その場合のエントロピーを計算すると

{ \displaystyle -0.8log_20.8 - 0log_20 }=0.2575

となります。

エントロピーが減少していますね。一様分布の時ほどエントロピーが高いため、エントロピーは減少するほど不確実性が減少するということになります。情報量即ち目新しさが減るという意味合いでしょうか。

上記の例で言えば、公共案件で受注額が5億円以上の案件を狙って獲得できれば80%の確率で高採算案件となるわけですから、ビジネス的には、エントロピーが減少するような条件を探し求められると嬉しいわけです。

基本的な決定木分析の条件分岐においてはエントロピーの減少量を基準として分割することが多くあります。

私が実際に適用した例としては、上記の例と逆で、赤字になりやすい高リスク案件の条件抽出をしたりしました。

※図は、Survivedを目的変数、Class、Sex、Ageを説明変数としたタイタニックの客室で生き残ったかどうかの決定木モデル 

f:id:nTakamichi:20170425233217p:plain

 

 

MacでRaspberry Pi 3にRaspbian-Jessyをいれて起動するまで

ラズパイマガジンを参考にしながら起動したメモ

【用意したもの】

Raspberry Pi 3 ModelB

HDMIケーブル(モニタ出力用)

・Micro SD 16GB (ラズパイマガジンで推奨されていた容量最低値を用意)

・電源(1.0V 2.4A 2.5A推奨らしいが、2.4Aで動くという報告が多いので一旦これで)

・マウス

・キーボード

・有線LAN

 

やったこと

1.以下公式サイトから「Raspbian」(jessy)をダウンロード。

www.raspberrypi.org

 

2.microSDをフォーマット(なぜかここだけGUIでやりました)

ディスクユーティリティ→対象microSDを選択→消去タブ→消去

3.microSDをアンマウント

$ diskutil list

/dev/disk0

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *500.1 GB   disk0

   1:                        EFI EFI                     209.7 MB   disk0s1

   2:                  Apple_HFS Macintosh HD            369.1 GB   disk0s2

   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

 ......

/dev/disk2

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:     FDisk_partition_scheme                        *15.5 GB    disk2

   1:             Windows_FAT_32 boot                    66.1 MB    disk2s1

 

「/dev/disk2」にmicroSDが存在を確認

対象diskを指定してmicroSDをアンマウント

$sudo diskutil unmountDisk /dev/disk2

 

4.ダウンロードしたraspbianをmicroSDに書き込み

$ sudo dd bs=1m if=hogehoge/2016-05-27-raspbian-jessie.img of=/dev/disk2

 

bs…書き込み・読み込みバイト数

if…読み込み元ファイル

of...書き出し先ファイル

 

 

3833+0 records in

3833+0 records out

4019191808 bytes transferred in 2094.581888 secs (1918852 bytes/sec)

たっぷり40分程度待ったあと完了メッセージ。

 

5.Raspberry Pi3の起動

microSDをMacから安全に取り出す。

microSDをRaspberry Pi3にセット、HDMIケーブル、電源を接続。

f:id:nTakamichi:20160731213450j:plain

起動画面が表示される

f:id:nTakamichi:20160731214146j:plain

6.Raspberry Piの初期設定

ターミナルを開いて

$sudo raspi-config

を打ち込むと以下画面が出る。

実施したのは

1 Expand FileSystem  SDカードをギリギリいっぱいまで使えるよう変更

2 Change User Password パスワード変更

5 Internationalisation Options 日本語、タイムゾーン設定

    Change Locale で「ja_JP.UTF-8 UTF-8」を選択

    Change Timezoneで「Asia」-「Tokyo」を選択

リブートして設定を更新。

f:id:nTakamichi:20160731214246j:plain

 

7.LANケーブルを接続してネットにつながることを確認

デフォルトブラウザで色々ネットを見てみる。

 

 

 

AWSインスタンスの接続初期設定

AWSインスタンスを作成した。AWSの公式サイトから行けば、サインアップ、インスタンス作成は特に問題なくいくと思うが、問題はインスタンスへの接続。

インスタンスへの接続は公式のこのページに書いてあるのだが、さらにここで立ちはだかるのが、AWS CLIのインストール。

 

CLIはこの記事が便利(Mac想定)

qiita.com

CLIのリージョンは以下参照。

docs.aws.amazon.com

 

sshで接続する際はEIPなどでなく、DNS名を設定が注意点。
ssh -i "XXXXXX.pem" ec2-user@[パブリック DNS名]

うまくいけばEC2の文字が見えるよ。(Lunux AMIの場合)

 

       __|  __|_  )

       _|  (     /   Amazon Linux AMI

      ___|\___|___|