以前集合やベクトルの類似度の記事を書いたんですが、確率分布の類似度には触れていなかったのでついでに書きました ツイート時間分布の類似度を求める 今回はツイート時間ごとの頻度を正規化して、確率分布とみなして類似度を計算してみます 私のアカウント(以下mainと表記)に対して、私のもう一つのアカウント(以下subと表記)+私がリプライを送ってる数が多い(以下friendと表記)上位5人と比較します subがfriendよりも似た結果になることを期待しています 以下にツイート時間の分布(main + sub + friend 5人)を載せました ある程度似ていますが、人によってそこそこ形が違っていて、特に午前中の投稿時間の差は特徴的に見えます またfriend1の一人だけは大きく違った傾向を示しています 以下ではこれらが定量的にどれぐらい異なるのか類似度を計算して比較していきます グラフを描くの
scipyには距離を測るための手続きが用意されています(scipy.spatial.distance)。ユークリッド距離やcosine距離(cosine類似度)などもあるのですが、確率分布間の距離とも言うべきKLダイバージェンスやJensen-Shannonダイバージェンスなどは実装されていません。ということで、実装してみました。 実装コードだけ見たいという場合は、最後まで読み飛ばしてください。 KLダイバージェンスとJensen-Shannonダイバージェンスについて KLダイバージェンス(カルバック・ライブラー情報量; Kullback–Leibler divergence; 相対エントロピー)とは、分布と分布の差異の大きさ(≠距離)を測るものです。分布と分布があったとき、のに対するKLダイバージェンスは で定義されます。また、クロスエントロピーを使って と定義することもできます。クロ
2015年3月に行われたPyData.Tokyoでのチュートリアル&ハッカソンの説明スライドです。 A deck used in the introductory session of PyData.Tokyo tutorial and hackathonRead less
環境構築するだけしてnumpyすらまともに扱えないのは恥ずかしいので、はじパタのRによる実行例をPythonに移植しながらPythonの科学計算ライブラリに慣れつつ、機械学習にも慣れようという魂胆。 とりあえず第4章から。 irisのデータを用意 scikit-learnには様々な学習データが用意されていて、お決まりのようにその中にアヤメの学習データも含まれている。 from sklearn import datasets iris = datasets.load_iris() print iris.data iris.dataが学習データの本体。 iris.feature_namesがそれぞれの列のラベル。 In [28]: iris.feature_names Out[28]: ['sepal length (cm)', 'sepal width (cm)', 'petal lengt
Matplotlibで線を複数書くとき, 色がかぶってしまったりして面倒なことがある. そんなときはカラーマップを使うことで色を連続的に変化させていくことができる. import matplotlib.pylab as pylab import matplotlib.cm as cm x = numpy.arange(0.0, 1.01, 0.01) for _ in range(10): pylab.plot(x, _ * x, color=cm.hot(float(_) / 10)) という感じ. http://stackoverflow.com/questions/4389179/matplotlib-color-palette カラーマップはhot以外にもいくつかあるのでお好みのものをどうぞ. autumn, bone, cool, copper, flag, gray, hot,
pythonには(当たり前だけど)リストをまとめるためのzip()関数が存在する。 >>> A = [1,2,3] >>> B = [4,5,6] >>> zip(A, B) [(1, 4), (2, 5), (3, 6)]これだけじゃちょっとありがたみが分かんないけど、配列っていうのは『オブジェクトjの状態』などを格納してある場合が結構あるので、jに関してループを回したいとかのような場合に便利だったりする。 for (state1, state2) in zip(A, B): # do somethingで、これはいいんだけど、なぜかpythonにはzip関数でまとめられた配列を展開する"unzip()"関数が存在しない。なんでだろーとか思って調べたら、どーやらこれでできるらしい。 >>> C = zip(A, B) >>> zip(*C) [(1, 2, 3), (4, 5, 6)]な
統計的声質変換 (1) ロードマップ(2015/2/11)の続き。 統計的声質変換の第二回ということでまずは統計的じゃない声質変換の枠組みで簡単なボイスチェンジャーを作ってみたい。いきなり本題とずれているけれどここをしっかり理解できていないと統計的な方はまったく歯が立たないため整理しておきたい。 ソース・フィルタモデル 人間の音声は、ノドの声帯を振動させたブザー音が声道、口、唇を通過することで出てくる仕組みになっている。これを数学的にモデル化したのがソース・フィルタモデル。 http://www.kumikomi.net/archives/2010/08/ep30gose.php から引用 このモデルでは、音源にあたるブザー音を作り出し、ブザー音をディジタルフィルタに通すことで音声を作る。音源のパラメータとして声の高さを表すピッチ、声道のパラメータとしてメルケプストラムというのがよく使われ
続・わかりやすいパターン認識―教師なし学習入門― 作者: 石井健一郎,上田修功出版社/メーカー: オーム社発売日: 2014/08/26メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る 「続・わかりやすいパターン認識」12章のディリクレ過程ガウス混合モデル(DPGMM)を Python で実装してみました。 コードはこちら。 http://nbviewer.ipython.org/github/breakbee/PyNote/blob/master/Implementation_of_DPGMM.ipynb 参考 wishart and inverse wishart sampler ウィシャート分布 - MATLAB & Simulink - MathWorks 日本 掲載されているアルゴリズムでは、 中華料理店過程(CRP)で潜在変数(クラスタ)のサンプリング
Kohonenの自己組織化マップ(Self Organizing Map, SOM)をpythonで実装してみた。 SOMの元論文はKohonen1982*1、 以下の説明と実装はAI Junkieの平易な解説を参考にしている。 http://www.ai-junkie.com/ann/som/som1.html 実装したpythonのコードはgithubにあります。 https://github.com/latboy/som-in-python SOMとは? 一般の大きな次元のデータ群を、それらの特徴に基いて、低次元(典型的には1〜2次元)空間に配置する方法。似ているもの(データベクトルがベクトル空間上で近いもの)同士が、低次元空間でも互いに近い位置にマップされるようになる。 ここで、アルゴリズム自身にはデータ量の特徴を与える必要がない。以下に述べる単純で再帰的なアルゴリズムで、データの
このエントリについて PyStan とは、MCMC サンプリング等を高速に実行するために C++ で実装されたプログラミング言語 Stan の Python インターフェースです。 このエントリでは PyStan を Mac のインストールしたときの手順を残します。 事前準備 ドキュメントによると PyStan は Python: 2.7 or 3.3 Cython: 0.19 or greater NumPy: 1.7 or greater に依存しているため、まずこれらをインストールします。 購入間もない Mac なので諸々一からインストールしていきました…。 Python3 をインストール Mac に元々入っているのは 2.7 ですが、3系を使いたかったので homebrew でインストールしました。 Homebrewを使ってMacにPython3とかNumpyとかScipyとかをイ
以前Pythonのライブラリのsubprocessを使って、パイプでつないで複数のコマンドを実行するという内容の記事を書きました Pythonでsubprocessを使って複数のコマンドをパイプでつなぐ - 唯物是真 @Scaled_Wurm しかしsubprocessのドキュメントなどに書かれている方法はめんどくさいので、どうしてもPythonでやる場合には以下の簡単な方法がおすすめです subprocessでshを呼んで、shに引数として渡して実行させる コマンドをパイプでつなげてその出力を得るにはこの方法が楽だと思います import subprocess print subprocess.check_output('sh -c "echo {} | mecab"'.format('パイプでつなげる'), shell=True) IPythonを使う 以前も紹介した高機能な対話的シェ
class gensim.models.doc2vec.Doc2Vec(documents=None, corpus_file=None, vector_size=100, dm_mean=None, dm=1, dbow_words=0, dm_concat=0, dm_tag_count=1, dv=None, dv_mapfile=None, comment=None, trim_rule=None, callbacks=(), window=5, epochs=10, shrink_windows=True, **kwargs)¶ Bases: Word2Vec Class for training, using and evaluating neural networks described in Distributed Representations of Sentences
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く