タグ

ブックマーク / sucrose.hatenablog.com (7)

  • Twitterの投稿時間で類似度を計算してみた - 確率分布の類似度 - 唯物是真 @Scaled_Wurm

    以前集合やベクトルの類似度の記事を書いたんですが、確率分布の類似度には触れていなかったのでついでに書きました ツイート時間分布の類似度を求める 今回はツイート時間ごとの頻度を正規化して、確率分布とみなして類似度を計算してみます 私のアカウント(以下mainと表記)に対して、私のもう一つのアカウント(以下subと表記)+私がリプライを送ってる数が多い(以下friendと表記)上位5人と比較します subがfriendよりも似た結果になることを期待しています 以下にツイート時間の分布(main + sub + friend 5人)を載せました ある程度似ていますが、人によってそこそこ形が違っていて、特に午前中の投稿時間の差は特徴的に見えます またfriend1の一人だけは大きく違った傾向を示しています 以下ではこれらが定量的にどれぐらい異なるのか類似度を計算して比較していきます グラフを描くの

    Twitterの投稿時間で類似度を計算してみた - 確率分布の類似度 - 唯物是真 @Scaled_Wurm
  • Lossy Countingを実装してみた - 省メモリな頻度計測 - 唯物是真 @Scaled_Wurm

    大規模データで頻度を数えると、欲しいのはよく登場するアイテムの情報なのに、ほとんど出現しないアイテムの種類数が非常に多くて、それらがメモリを大量に必要としてしまうという問題がある これに対してアイテムの種類数の最大値に制限を加えたり、頻度に誤差を許すなどの条件のもとで、省メモリに頻度計測を行う方法がいくつも提案されている これらについては以下の記事が詳しい 大規模データで単語の数を数える - ny23の日記 今回はそういった手法の一つであるLossy Countingを実装した 日語では上記の記事と以下の記事が詳しい [を] 誤り許容カウント法(lossy count method)のサンプルプログラム [O] イプシロン劣シノプス性を保持した頻度カウント lossy countingアルゴリズム - 機械学習の「朱鷺の杜Wiki」 元論文はこちら。年を見ると結構前なので、現在ではもっと

    yass
    yass 2013/09/16
    " 大規模データで頻度を数えると、欲しいのはよく登場するアイテムの情報なのに、ほとんど出現しないアイテムの種類数が非常に多くて、それらがメモリを大量に必要としてしまうという問題がある "
  • Lossy Countingの変種を実装してみた - 唯物是真 @Scaled_Wurm

    前に以下の記事でLossy Countingを実装しましたが、より省メモリな変種があるらしいのでそちらも書いてみました Lossy Countingを実装してみた - 省メモリな頻度計測 - 唯物是真 @Scaled_Wurm 以下の論文のAlgorithm 2の擬似コードそのままです。 "Methods for Finding Frequent Items in Data Streams", Graham Cormode and Marios Hadjieleftheriou 元々のLossy Countingではアイテムごとに追加された時のバケツ番号(≒誤差の大きさ)を持っていたのですが、この変種では明示的に持たずに頻度に足しあわせてしまいます(頻度のupper boundを持つ) アイテムの頻度をカウントするための辞書に加えて、処理したデータ数、許容する誤差の大きさ、現在のバケツ番号

    Lossy Countingの変種を実装してみた - 唯物是真 @Scaled_Wurm
    yass
    yass 2013/09/16
    " 元々のLossy Countingではアイテムごとに追加された時のバケツ番号(≒誤差の大きさ)を持っていたのですが、この変種では明示的に持たずに頻度に足しあわせてしまいます(頻度のupper boundを持つ) "
  • pythonの機械学習ライブラリscikit-learnの紹介 - 唯物是真 @Scaled_Wurm

    scikit-learn(sklearn)の日語の入門記事があんまりないなーと思って書きました。 どちらかっていうとよく使う機能の紹介的な感じです。 英語が読める方は公式のチュートリアルがおすすめです。 scikit-learnとは? scikit-learnはオープンソースの機械学習ライブラリで、分類や回帰、クラスタリングなどの機能が実装されています。 また様々な評価尺度やクロスバリデーション、パラメータのグリッドサーチなどの痒いところに手が届く機能もあります。 インストール scikit-learnの他にもnumpyとかscipyとかが必要です。 Windows 64 bit版の人は以下のURLに色々なインストーラーがおいてあるのでおすすめ Python Extension Packages for Windows - Christoph Gohlke その他の人は以下のURLを見て

    pythonの機械学習ライブラリscikit-learnの紹介 - 唯物是真 @Scaled_Wurm
  • 集合とかベクトルの類似度の計算のメモ - 唯物是真 @Scaled_Wurm

    Pythonで実装する類似度計算 - Screaming Loud #1283. 共起性の計算法 ↑この辺りの記事を見て、集合とかベクトルの類似度の計算の記事を下書きのまま放置していたことを思い出したので書き上げた。 類似度の計算のコードを書いたのでそれを載せるだけにしようかと思ったのですが、知っている人にしか伝わりそうにないので自然言語処理でよく使う話の概要だけでも書いときます。 導入 自然言語処理の分野では単語の意味を比較するときに、ある単語の周り(文脈)に出てきた単語のベクトル(文脈ベクトル)の類似度を計算することがある。 これは「ある単語の意味はその周囲に出現する単語によって特徴づけられている」という仮説に基づいていて、文脈ベクトルが似ていれば似たような意味、似たような状況で使われる単語が多いということが言えるからである。 Distributional semantics - Wi

  • 単語の頻度からLDAまでの流れの簡単なイメージのメモ - 唯物是真 @Scaled_Wurm

    トピックモデルのLDA(Latent Dirichlet Allocation)が難しいって話をよく聞きますけど,詳しい理論的な部分はともかくどういう流れに位置するものかってのはわかりやすいので簡単にメモ. 専門でないので,詳しくは参考文献を読んだほうがいいです. トピック 同じ文書内で使われる確率が高いような似た意味を持つ単語の集まり. 例えばスポーツトピックなら「野球」「サッカー」「ボール」が出やすい,など. トピックモデルは文書のトピックと,トピックに属する単語を推定する. 単語頻度からトピックモデルまでの流れのイメージ 文書をモデル化しよう→単語の頻度 同義語や多義語を捉えよう≒次元削減をしよう→LSA=SVD→以下がトピックモデル 確率的にしよう→PLSI ベイズ的にしよう=訓練データに登場しなかったものにも対応できる→LDA トピック数が自動で決まるようにしよう→ノンパラメトリ

    単語の頻度からLDAまでの流れの簡単なイメージのメモ - 唯物是真 @Scaled_Wurm
  • 小説家になろうのランキングをトピックモデルで解析(gensim) - 唯物是真 @Scaled_Wurm

    小説家になろうというWeb小説投稿サイトがあります。 いわゆるライトノベル的な作品が多いのですが、近年書籍化される作品が多く出ていて注目を集めています。 続々と「小説家になろう」から書籍化作品が登場! - フラン☆Skin はてな支店 小説を読もう! || 小説ランキング[累計]の上位100件を解析して、どんな作品が多いのか調べてみました。 解析手法 トピックモデルというものを用います。 これは文書が何のトピックを含むかを推定してくれるモデルで、他にもトピックの代表的な単語などもわかります。 Pythonでトピックモデルを使えるライブラリの一つであるgensim: Topic modelling for humansを使います。 gensim gensimはLDAやLSIなど複数のトピックモデルを実装しています。 今回はLDA(Latent Dirichlet Allocation)という

    小説家になろうのランキングをトピックモデルで解析(gensim) - 唯物是真 @Scaled_Wurm
  • 1