Python

キモオタがやってみるデータサイエンス〜その3:ミスコン支援アプリを作ってしまった話〜

きょうはこんなこと書くよ ミスコン出場者の相関関係がわかるアプリつくったよ ついでだから、Mr用にも作ってやったよ。 みんな投票してね♡ テクニカルにはこんな内容だよ 文書データを次元圧縮して、相関図にした話 python/bokehを使って、簡単にインタラク…

キモオタがやってみるデータサイエンス〜その2:RBMでミスコンっぽい顔を知る〜

この記事ではこんなこと書くお RBMで特徴量の学習をしてみる pylearn2を本格的に使ってみる 記事の本文だお どうも、キモヲタです。 さて、前回はDeepLearningで共通顔画像の抽出と題してやってみましたが、あまりうまくいきませんでした。*1 さて、前回はCh…

キモオタがやってみるデータサイエンス〜その1:DeepLearningでミスコンっぽい顔を知る〜

注:この記事はキモヲタがキモヲタ同業者のために書いたとぉってもきも〜い記事です。それ以外の方は吐血するかもしれないので気をつけてくださいね♩ こんばんは。キモオタです。ブヒブヒ さて、10月になりましたね。10月といえば、そろそろ学園祭のシー…

クラスの内部で並列処理を利用したメソッドを利用する

やりたいこと pythonクラスで、並列処理を利用したメソッドを実装したい。 つまり、classの中で、multiprocessing.Pool を利用したい。 しかし、普通のやり方ではできない。そこで、ちょっとした工夫が必要になる。 ※ ただし、multiprocessing.Process なら…

プリキュアとセーラームーンはどちらの方がサザエさんに近いのか?

この記事ではこんなことを書くよ テキストマイニング的に次元削減とプロットする話 t-SNEとかいうイケてる名前のアルゴリズム プリキュアとセーラームーンはどっちの方がいいか はじめに 計算機分野に所属する人たちは時々、本当に間抜けなことを真面目に取…

Dockerで処理をまとめておく

やりたいこと 処理をまとめて簡単に動かせるようにしておきたい。 環境設定とか毎回するの面倒なので、コマンド一発で動かせるくらいにしておきたい。 解決策 Docker使う。 ソースコードを動かせる状態にしておいて、Dockerの仮想環境の中で稼働させる。 そ…

早く、簡単に共起語ペアの頻度を数える

やりたいこと 共起語ペアのカウントを取りたい。 単に基礎集計をやりたいだけなので、matrixを作る必要はない。 解決策 タプルで共起語ペアを作って、カウントする 手順は 共起語のタプルを作って、リストに放り込んでいく collection::Counter.most_common(…

MeCabの制約付き解析モードを利用する

MeCabの制約付き解析モードを利用する やりたいこと 標準の辞書だけだと、どうしても不要な単語まで分割してしまう。 かといって、辞書ファイルの内容をいじるのは割と手間がかかる作業だ。 そこで、「制約つき解析モード」を利用することにした。工藤さんに…

nltkでタプルのbigramカウントをする

やりたいこと (word, POS)のタプルの状態でbi-gramのカウントを取りたい 解決法 nltkで普通にできた。 import nltk list_input = [('I', 'Noun'), ('feel', 'Verb'), ('happy', 'Adj'), ('You', 'Noun'), ('feel', 'Verb'), ('happy', 'Adj')] corpus = nltk…

nltkでbigramを共起語カウントする

やり方を忘れてたので、復習にやってみた。 入力はリスト In [49]: tokens = ['I', 'am', 'a', 'stupid', '.', 'You', 'are', 'a', 'stupid', '.', 'he', 'is', 'a', 'stupid', '.'] In [50]: corpus = nltk.Text(tokens) bigramクラスのインスタンスができ…

男のための機械学習〜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を使った分析の話を書いたが、ハマったところがあったので、書いておく。 ハマったところ やりたいことは、実数空間を、別の軸ではられる空間に射影することだった。 従って、射影ベクトルは入力次元と同じだけ必要となる。 が、なんどやっ…

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から情報取得をしている時にこんなエラーが発生してしまった…

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が大量に並んでいる状態は避けたい。 そこで、慣習的なディレクトリ構造の作り方はあるの…

管理者権限のない環境でpip installを行う

やりたいこと pip installコマンドを使って、pythonライブラリを簡単にインストールしたい。 ただし、管理者権限はもっておらず、「試すための目的でいちいちインストールを管理者に頼む。」なんてことはできない状況。 解決方法 --userのオプションを利用す…

twitter APIにアクセスして情報取得

やりたいこと Twitterのユーザー情報を取得してきたい。Pythonで! PythonのTwitter APIライブラリを使う python-twitterを使えば、非常にお手軽にapiを利用できる。 なので、以前からちょいちょい利用していたのだが、最近、試してみたら、あれ!?ユーザー…

アダルトビデオコミュニティで人気のビデオは?

前回は、「blackでblowjobな内容なビデオが人気である」であると仮定して、視聴数とコメント数で人気度を表現しようとした。 視聴数とコメント数の分布を確認すると、べき乗分布になっており、べき乗分布の最大セグメントは同じビデオだろうと考えた。 そこ…