2014-01-01から1年間の記事一覧

Witten-Bell smoothingのおぼえ書き

NLP

witten-bell smoothingを実装することがあったのだが、「えっ、何するんだっけ?」となってしまったので、忘れないうちに書いておく。 そもそもスムージングとは? 確率的言語モデルを使うときに役に立つ便利道具。 もっともベーシックな言語モデルは学習コ…

movable typeのmarkdownでコード表記する

やりたいこと movable typeで記事を書くときにmarkdownを使うが、コードを表記したい。 でも、毎行4つのスペース挿入はかったるいし、複数行コードを記載する表記(バッククオート3つ)は機能しない。 解決策 <pre><code>タグを使用する。 こんな感じ。 `` print('hoge'</code></pre>…

メソッドパラメータの型指定でHigher Kinded Typesを使う

やりたいこと メソッドのパラメタで、Mapを使いたい。 で、Mapのキー(または値)の型を明示的にしておきたくない。 いくつかの種類の型をキー(または値に持てるようにしておきたい) 解決法 Higher Kinded Typesを使う。 日本語にすると、「高階型変数」と…

男のための機械学習〜RBMでA◯女優さんの共通特徴量を得よう〜

いま、巷で話題(3年くらい前からだいぶ話題だけど)のDeep learningをア◯でも使えるpylearn2を使って見る。 Deep learningとは? 一言で言うと「教師なしのニューラルネットをいっぱいつなげて多層ネットワーク化したもの。」 いままでは 前処理職人の丹精…

theanoライブラリを使えるようになるまでにがんばったこと

やろうとしたこと theanoライブラリを使って、deep learningの勉強してみようとした。 しかし、theanoのインストールがなかなかうまくいかず、いろいろ作業をしたので、その時のログを残しておく。 theanoのインストールがうまくいかなかった原因 pip instal…

グループ化集計して、上位N件の取得

やりたいこと データフレームをグループ化して集計(平均)し、その上で、各グループについて上位N件を取得したい。 つまり、やることを分解すると、 1 グループ化して数値集計(今回は平均) 2 集計した数値で、各グループごとに上位N件取得 1 グループ…

PCAをもうちょっと理解した上で使ってみる

恥ずかしながら、パッケージユーザーなもので、PCAがきちっとwかっていない状態で使おうとしてハマっていた感があった。 そこで、「何をしているか?」を明確にして、扱ってみることにする。 ちなみに、この記事で扱ってるscikit-learnはバージョンが0.15で…

管理者権限がない環境でのpython環境構築のまとめ

管理者権限がない環境(共用サーバーなど)でpythonの便利環境を構築するためのまとめをしてみた pip関係 pipを使ったライブラリのインストール ここで、以前も紹介したが、 pip install ライブラリ名 --user pipを使った場合のライブラリが保存されるディレ…

numpy memmapを利用する

やりたいこと numpy arrayを使った行列計算をしたい。 が、マシンスペックから行列をメモリ上に保持しておくことができない。 どうするか? 解決策 arrayをディスクに保存しておき、一気にすべてのarrayをメモリに載せなくてもいいようにする。 こんな解決策…

pythonで最大ヒープサイズを設定する

やりたいこと pythonのコード中で、メモリの最大ヒープサイズを設定する。 と、いうのも、メモリサイズが大きかったせいで、サーバーからプロセスがkillされてしまったらしいのだ。 これはマズイ。ということで、きちんとメモリ量を制御する。 どう解決する…

Scikit-learnのPCAの正しい使い方

先日、PCAとkmeansを使った分析の話を書いたが、ハマったところがあったので、書いておく。 ハマったところ やりたいことは、実数空間を、別の軸ではられる空間に射影することだった。 従って、射影ベクトルは入力次元と同じだけ必要となる。 が、なんどやっ…

Arulesを使う上で、つまったところ

R

やりたいこと データに対して、連関規則を見つけたい。 いわゆる、「バスケット分析」や「アソシエーション分析」を行ないたい。 RではArulesパッケージが用意されているので、簡単に活用できる(はずなんだけどなあ) arulesの使い方はここやここなど、とっ…

PCAとkmeansを組み合わせた分析

いままで知らなかったのだが、常套手段らしい。 どういう時に役にたつか? 大目的 あるデータがあって、そのデータをクラスタリングしたい。(つまり、データをkmeasnで分離したい。) 問題どころ データの状況によっては、実数空間のままではうまく分離がで…

numpyの行列をpandasのdataframeに変換したい

やりたいこと numpyの行列をpandasのdataframeに変換したい。 以前、pandasのdataframeをnumpyの行列にしたいということを書いたが、今度は逆のことをしたい。 どう解決するか? ここに書いてあった。 pd.DataFrame(numpy_array) とすればいい。 引数にいろ…

numpy型の行列の要素を型変換

やりたいこと numpy型のarrayの中身をぜんぶ型変換したい intからfloatみたいな感じで どうするか? array_obj.astype() とかく 64ビットのfloatなら numpyMatrix = numpyMatrix.astype(np.float64) で変換できる

pandasのdataframe型をnumpyのarray型に変換する

やりたいこと dataframeを行列として扱いたい。 なので、numpyのarray型(np.arrayかnp.adarrayにしたい) どう解決するか? ここに書いてあった。 なんだか、いろいろな人が回答しているが、一番シンプルでわかりやすかったのがこれ。 df.as_matrix() すで…

try exceptをしっかり使う

やりたいこと try exceptによる例外処理を行うときに、組み込みの例外クラス以外も扱いたい。 ちなみにtry exceptの基本的な使い方はここにまとめられている。 具体的にどんな状況か? twitter APIから情報取得をしている時にこんなエラーが発生してしまった…

AWSのバックアップツールが動作しない

やりたいこと AWSのインスタンスバックアップを取りたい。 簡単に使えるという、AWSのバックアップツール群を使いたい。 ちなみにS3へのバックアップの手順はこんなサイトにありがたく説明されている 問題 Amazon AWSのインスタンスのバックアップをとるため…

ヘッダを維持したまんまファイルをunixコマンドで結合したい

やりたいこと headerがあるファイルを連結したい。 イメージ的には、ヘッダ付きのcsvとかtsvをcatコマンドで結合する感じ。 でも、catコマンドだと、結合したファイルのあっちこっちに ヘッダ行が出現してしまう。 これは困った。 どう解決するか? awkコマ…

固有値分解と特異値分解の違いってなんだっけ?

ある日、行列を前にして、「さて、これを固有値分解。。。あれ、特異値分解。。???ん、そもそも固有値分解と特異値分解って何が違うんだっけ」と混乱に陥った。 そこで、もう一度、「何がどうちがうのか?」をおさらいしてみた。 勉強したのはここのサイ…

htmlのスクレイピングをする

やりたいこと webページのスクレイピング これを全部pythonから実行したい。 解決方法 うまいことライブラリを組み合わせてスクレイピングをする htmlページの取得: urllib2ライブラリを使う。(wgetで代用してもおk) htmlの解析: lxml.htmlライブラリを使…

pythonスクリプト中でログを出しておく

やりたいこと pythonで作成したスクリプト中で、実行ログをきちんと出力しておきたい。 どう解決するか? loggingライブラリを使う。 ありがたいことに、loggingライブラリの使い方を説明してくれたページがあったので、リンクを貼っておく。

2次元のdictから隣接行列を生成する

やりたいこと 隣接行列を作りたい。 で、隣接行列の元データは2次元のdict型で保存されている。 例えば、ノードAとノードCからノードBへと接続されていおり、そのエッジの重みが1という状態を作りたい。 {ノードA: {ノードB: エッジの重み}, ノードC: {ノ…

pythonで作成しているプロジェクトディレクトリを綺麗に保つ

やりたいこと pythonで作成しているプロジェクトがあって、ディレクトリ構造をきれいにしておきたい。 まちがっても、プロジェクト直下のディレクトリに~py ~pyc ~datが大量に並んでいる状態は避けたい。 そこで、慣習的なディレクトリ構造の作り方はあるの…

Rmdでhtmlを作成するときに、表を罫線で囲む

R

やりたいこと Rmdで生成しているhtml内にテーブルがあって、xtableを使用して表を表示している。 で、この表を罫線で囲みたい。 解決法 xtableを使うチャンク内で下の記述を入れる。コピペでおk。 しかも、最初にxtableをprintしてるチャンク内に記述すれば…

他のファイルに定義された関数を「明示的に」読み込む

R

やりたいこと 自分で他ファイルに定義した関数を読み込む時に、きちんと読み込み元を明示する。 Rでは他のファイルに定義された関数を呼ぶときは、source(ファイル名)と記述するが、多くのファイルを読み込み始めると、どの関数がどこで定義されたのか?わか…

gzで圧縮されたファイルから欲しい文字列の行数を数える

やりたいこと gzで圧縮されたファイルから特定の文字列を探し出して、行数を数えたい 条件がいくつかあり ファイルは当該ディレクトリの中に複数存在する ディレクトリの中には見たいファイルの他にもいろんなファイルが存在する ファイルはgzで圧縮されてい…

twitterの情報拡散(retweet数予測モデル)に関する研究

twitterでの情報拡散系を知りたくて、関連する研究を漁っていたら、"A stochastic model of the tweet diffusion on the Twitter network"というのを見つけた。(いきなりこの論文を見つけたわけでなく、著者本人よる簡単な日本語要旨があったので、そっから…

その関数、本当に意図してる関数ですか?

R

Rはオブジェクト指向の言語ではない。従って、呼び出している関数が、どのクラスのメソッドなのか?を意識してなくともコードが書ける。 しかし、それがために、思わぬ事態を招くことがある。 今回はそんなバッドな事例を紹介しようと思う。 現象 crontabに…

dplyrはsummariseの中で同じ変数を指定してはいけない

R

ハマりポイント dplyrのsummarise関数を使って、集計処理をしたい。 具体的には、グループ化して、条件に合うベクトルの長さを取得したい。 input_df %.% dplyr::group_by(グループ化変数) %.% dplyr::summarise(length(集計したい変数)) しかし、実行してみ…