Bag of ML Words

ML = Machine Learning, Music Love, and Miscellaneous things in daily Livings

Python

Python: dictionaryデータ構造でキーバリュー

初めてdictionaryデータ構造を使います。 キー:バリュー形式で、キーを手がかりにして値を探す場合には速度面でもっとも有利な構造と「初めてのPython」には書いてあります。 遭遇したユースケース あるデータに対して、それぞれ別の処理を施した結果が いく…

Python: Bayesian Methods for Hackers 1章

それでは第1章を読みましょう! http://nbviewer.ipython.org/github/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter1_Introduction/Chapter1_Introduction.ipynb iPython Notebookの読み込み まずはGi…

Python: scikit-learnでK-fold cross validation

Scikit-learn http://scikit-learn.org/stable/ はクロスバリデーションまでできてしまいます。 というか、グリッドサーチとかも。 使ってみたので、コード例を貼っておきます。 ポイントとして、単なるKFoldをそのまま使うと 順番にサンプルを分割して行く…

Python: Bayesian Methods for Hackers、読み始めます

研究上の知り合いである@payashimさん( http://web.keio.jp/~masakihayashi/ )に 勧められて、PythonのモジュールであるPyMCベースのベイズ推論本、 Bayesian Methods for Hackers の序章と、あと第1章をブラウズしました。 理論的な部分はちゃんと検証して…

Python: シリアライズって、偉大だったんだ・・・

今までずっと*1学習したモデルとかは パラメータをテキストに書き出して再度読み込ませていました。 が、それってダメだったんですね。 いや、ダメじゃないんだけど。 シリアライズ、覚えました。 経緯 今、scikit-learnのSVMパッケージ http://scikit-learn…

Python: ファイルとかディレクトリとか(随時更新)

Pythonの一ついいところはファイルの取り扱いも簡単ってとこですよね。 このエントリでは、いままでに遭遇したファイルの読み書きとかを まとめていきます(随時更新!) ファイルを開いて閉じる(読み取り、書出し、追記など) 基本のopen(), close() これは…

Python: 文字列処理もいい加減覚えたい!?遅いよねぇ?(随時更新)

文字列の色々をどんどん書いていくエントリにしようと思います。新しいこと覚えたら書き足していく方向で。 Findなど。あとインデックスの注意。 あるかどうかの確認だけなら、 XXX in YYYYで、XXXがYYYYの中にあるかどうか真偽値を返してくれます。 findは…

Python: matplotlibで行列の可視化

簡単にはplot.imshow(X)でいいんだけど、 これだとどうも上書きとかが難しいので、 別のやり方を探してみました。 http://d.hatena.ne.jp/y_n_c/20091122/1258904025 で紹介されているやり方もいいのでしょうか?

Python: hstackとvstack

横長(縦長)のarrayを、一つのarrayにくっつけるメソッド。 つまり、list of array --> a long arrayにしてくれる。 この意義がわからなかったんだけど、こういう状態で使えるらしい。 例えばclassification問題とかで、データの識別結果を出して、クラスご…

Python: splitによる区切りの挙動

ちょっとだけハマったのでメモ。 split(sep)は区切り文字sepを指定してそれでStringなどを分割する。 一方、split()は任意空白文字(タブ、改行)で区切っていく。 split(" ")と具体的にspaceを指定すると、という実験。 結論からいうと、split()にしておくと…

Python: 疎行列

Pythonの疎行列はScipy.sparseに入っているようです。 ただし、幾つか疎行列にはいくつか種類があるようで、目的に応じて 使い分けたりconvertするのが良いようです。 疎行列の作成 これにはRow-based Linked List形式のsparse.lil_matrixが良いようです。 …

Python: matplotlibで"任意の線"を引く

標題通り。Matploblibでどうやればいいのかなぁって。 http://stackoverflow.com/questions/12864294/adding-an-arbitrary-line-to-a-matplotlib-plot-in-ipython-notebook にありました! これで某モデルの絵がpythonで書けるようになりますね・・・。

Python: 実行時間計測とプロファイル的な何か

Matlabだと時間計測はticとtocにお任せで楽ちんだし、 計算時間のかかったところの解析はprofile on/off, profile viewerで終わり。 Pythonだとどうなんだろう? 時間を測る(お手軽) timeモジュールを使うとカレント秒をとれるようだ。 time.clock()がシス…

Python: min, max, random, find

matlabでいうところのmin, max, rand, randn, findのやり方メモ on numpy. 最小(大)値を返す min, maxです。方向はaxisで指定します。 これはmatlabと一致。 axis引数がないと単に一番小さい(大きい)エレメントを取ってくる。これはmatlabより優れている…

Python: SymPyことはじめ

都合によりSymbolic Mathが必要になったため、まずはPythonで触り始める。 そのメモ。 http://d.hatena.ne.jp/torilon/20100314/1268573285 がいい感じですね。以下はこれの写経です。 from sympy import * 良くない書き方だけど、とりあえず全部インポート…

matplotlib, なかなか覚えられないよね

今週末の国際会議論文*1締切に向けて今月は完全に死んでおります。 matplotlibの使い方。pylabを使うのもあるけど。 Matplotlib 利用ノート これを見れば大体はOK. まずはインポート import matplotlib matploblib.use('Agg') import matplotlib.pyplot as p…

Python: Bo(V)Wで遭遇した二つの例。距離比較と数え上げ

たとえば、Bag-of-Visual Words形式を考えましょう。 元の画像特徴量を、適当なベクトル量子化かけて、 1画像(単位)内のword数を数えるという話。 このとき、 既にcodebook(量子化コード、代表点。D-dim特徴ベクトル)は既に K個持っていたとして、 新規…

Python: リストとglobとフィルターと

python、苦手ですぅ・・・>< なんというか、matlabほど直観的じゃなくて、javaほどIDE発達してないから 沢山覚えないといけないし。 今日はリストとかglobの仕方を教えてもらいました! リストのiteration リストalistの中身を順番に見ていく行動をすると…