Machine Learning: An Algorithmic Perspective

一ヶ月近くかかってやっと到着

ProductName Machine Learning: An Algorithmic Perspective (Chapman & Hall/Crc Machine Learning & Patrtern Recognition)
Stephen Marsland
Chapman & Hall / ¥ 6,707 ()
通常1~3か月以内に発送

機械学習をpythonで的な本だと思っていたが、パラパラめくってみると、プログラムを丁寧に解説している本ではなくて、理論の説明を助けるためにコードを載せている感じ。

  • Introduction.
  • Linear Discriminants.
  • The Multi-Layer Perceptron.
  • Radial Basis Functions and Splines.
  • Support Vector Machines.
  • Learning with Trees.
  • Decision by Committee: Ensemble Learning.
  • Probability and Learning. Unsupervised Learning.
  • Dimensionality Reduction.
  • Optimisation and Search.
  • Evolutionary Learning.
  • Reinforcement Learning.
  • Markov Chain Monte Carlo (MCMC) Methods.
  • Graphical Models.

そのうち読む。

統計のための行列代数

ちょっと欲しいかも

ProductName 統計のための行列代数 上 (1)
D.A.ハーヴィル
シュプリンガー・ジャパン株式会社 / ¥ 3,780 ()
在庫あり。

ProductName 統計のための行列代数 下 (2)
D.A.ハーヴィル
シュプリンガー・ジャパン株式会社 / ¥ 3,990 ()
在庫あり。

METAMORPHOSE 09

メタモいった。久々のツレとの再会でうだうだしたり、昼を食べてたら、出発するのが遅くなってしもうた。4時くらいに到着したら、行列の長さにげんなり。でも、意外にテント持参のヒトが少なくて、あまり困らずにテントを張れた。

あとテントを設営してたら、テントシール張りっぱなしで4枚目になってた。

metamo

そして、いつものようにミラーボールの近くにテント。 今年は、プラネットステージの上のほう。

mirror ball

今回はプラネットのうえのほうに陣取ったので、寝ながら聞いてたのが多いが。

Aoki takamasa

なかなかよかった。

Nujabes

return to dragonで。

Ricihie Hawtin

最初から最後まで。よかった。

Smith&Mighty

しぶすぎ。ラストのReady or Notでやられた。もう少し早い時間がよかったかも。

calm

まったり

ProductName METAMORPHOSE 09
オムニバス,Los Hermanos,rei harakami,Nujabes,Calm,INNERVISIONS presents AME,Q’HEY,TANGERINE DREAM
MYTRIX MUSIC / ¥ 2,000 (2009-08-05)
在庫あり。

開運

こっちに引っ越してきてから開運吞むことが多くなった。

1252113486

すっきり華やか。

ジャガイモの芽が出てきた

今日の家庭菜園

ジャガイモの芽がでた。

1252113039

ピーマンと唐辛子。これは順調に実がなってる

1252113043 1252113047

島オクラも意外に育ちがいい。モロヘイヤは最近の寒さでバテ気味。

1252113050 1252113054

モロヘイヤはもっと早くに植えるべきだった。あまり収穫できずに終わりそう。

ProductName 藤田智の菜園スタートBOOK 秋冬&春準備編 (生活実用シリーズ NHK趣味の園芸/やさいの時間)
藤田 智
日本放送出版協会 / ¥ 1,365 ()
通常5~7日以内に発送

OCamlのファイルアクセス

openfileとかopen_outとかopen_out_genとか色々あるので混乱する。

let file = Sys.argv.(1) in 
let f = try open_out_gen [Open_wronly; Open_creat; Open_trunc; Open_text] 0o600 file
with Sys_error msg -> failwith ("Couldn't write to " ^ msg) in 
output_string f "OCaml\n";close_out f;;

どう書く?org:ACLの制御

ocamlcで吐いたバイトコード

Standalone Executables

実行ファイルの一行目に

#!/usr/local/bin/ocamlrun

って書いてあるで、って書いてあったので確かめた。

ほう。

Developping application with Objective Caml

最近、表記の本(オンライン)を読みはじめた。

Functional core of Objective CAMLより。

fun a b c d e -> expr

function a -> function b -> function c .... -> expr

と一緒らしい。

あーカリー化ってのは結局そういうことなのかと。

多値nをとる関数でなくて引数を一つとってゴニョゴニョする関数を返すから、結局カリー化ってのは自然に導かれんのかと。

って、ふつうのHaskellにも書いてあったな。

パターンベースのフィンガープリント

化学構造の類似度を測るフィンガープリントで部分構造由来のものには2種類あって、ビットにパターンが対応しているものと、そうでないもの。

後者はハッシュ関数とかを使って動的に生成するのでビットの密度の効率が良いが、結局解釈できなくて困ることが多い。

で、前者を解釈しましょうっていうスレッドがあったので書いてみた

ProductName ケモインフォマティックス―予測と設計のための化学情報学
J.Gasteiger,T.Engel
丸善 / ¥ 18,900 ()
在庫あり。

openbabelのフィンガープリントを使ってSVMの予測モデルを作る

久々にケモインフォクックブックを更新した。

で、このフィンガープリント使って予測モデルを作ってみる。

Benchmark Data Set for in Silico Prediction of Ames Mutagenicity のSupporting InformationにAmes試験のデータセットがあるのでこれを使ってcsvを用意する。

babel -ismi ci900161g_si_001/smiles_cas_N6512.smi -ofpt ci900161g.fpt -xh -xfFP2

これでfptファイルを用意してクックブックので変換

f2b.py ci900161g.fpt > fingerprint.txt

さらにフィンガープリントをcsvにするのは下のやっつけスクリプトで。

file = "ci900161g_si_001/smiles_cas_N6512.smi"

dic = {"0":"negative","1":"positive"}
act = {}
for l in open(file,"r"):
   smi,id,num = l.split()
   act[id] = dic[num]


fingerprints_file = "fingerprint.txt"

header = "ID,"

for i in range(1,1025):
   header += "bit" + str(i) + ","

header += "act"
print header

for l in open(fingerprints_file, "r"):
   col = ""
   id, fp = l.split()
   col += "\"" +id + "\","
   for c in fp:
       col += c + ","
   col += "\"" + act[id] + "\""
   print col

実行

python fconv.py > ci900161g.csv

でRで解析してみる。

ames <- read.csv("/Users/kzfm/ci900161g.csv")
set.seed(50)
tr.num <- sample(6512,2500)
ames.train <- ames[tr.num,]
ames.test <- ames[-tr.num,]
ames.svm <- ksvm(act ~.,data=ames.train[,-1])
ames.pre <- predict(ames.svm, ames.test[,c(-1,-1026)])
ames.tab <- table(ames.test[,1026],ames.pre)
sum(diag(ames.tab))/sum(ames.tab)

結果

>     sum(diag(ames.tab))/sum(ames.tab)
[1] 0.7771685
> ames.tab
          ames.pre
           negative positive
  negative     1424      425
  positive      469     1694

まぁまあかなぁ。フィンガープリントとかカーネルを考えればもうちょっと精度が上がる気もするが。

参考

ProductName マシンラーニング (Rで学ぶデータサイエンス 6)
辻谷 将明,竹澤 邦夫
共立出版 / ¥ 3,675 ()
通常1~2か月以内に発送