ruby 検出のための指标E(s)を求めるスクリプト特特特特特特特))

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 検出のための指标E(s)を求めるスクリプト特特特特特特特))相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

# 特定プロフィールを持つ投稿者の投稿内容に偏って現れる文字列を統計的な指標を用いて検出
# 検出のための指標E(s)を求めるスクリプト
# 参考:
# 著者名	論文名	雑誌名	ISSN	出版者名	出版日付	巻	号	ページ	URL	URL(DOI)
# 池田 和史,服部 元,松本 一則: マーケット分析のためのTwitter投稿者プロフィール推定手法, 情報処理学会論文誌 コンシューマ・デバイス&システム Vol.2 No.1, pp.82-93 (2012).
# Matsumoto, K. and Hashimoto, K.: Schema Design for Causal Law Mining from Incomplete Database, Proc. Discovery Science: 2nd International Conference(DS'99'), pp.92-102 (1999).
                

class AIC
  def initialize(n11, n12, n21, n22)
    @n11 = n11
    @n12 = n12
    @n21 = n21
    @n22 = n22
    
    @np = @n11 + @n12
    @nn = @n21 + @n22
    @ns = @n11 + @n21
    @nns = @n12 + @n22
    @n = @np + @nn
  end

  def calc_aic_im
    mll_im = @np * Math.log(@np) + @ns * Math.log(@ns) + @nn * Math.log(@nn) + @nns * Math.log(@nns) - 2 * @n * Math.log(@n)
    aic_im = -2 * mll_im + 2 * 2
    return aic_im
  end

  def calc_aic_dm
    mll_dm = @n11 * Math.log(@n11) + @n12 * Math.log(@n12) + @n21 * Math.log(@n21) + @n22 * Math.log(@n22) - @n * Math.log(@n)
    aic_dm = -2 * mll_dm + 2 * 3
    return aic_dm
  end
  
  def calc_es
    aic_im = calc_aic_im()
    aic_dm = calc_aic_dm()
    
    if ((@n11.to_f / @ns) > (@n12.to_f / @nns)) then
      es = aic_im - aic_dm
    elsif ((@n11.to_f / @ns) <= (@n12.to_f / @nns)) then
      es = aic_dm - aic_im
    end

    return es
  end

end

if $0 == __FILE__
  # Sample from マーケット分析のためのTwitter投稿者プロフィール推定手法
  n = [
    [261, 61, 639, 2640], # 模試 => 500.3
    [70, 819, 830, 1882], # ビール => -216.6
    [17, 51, 883, 2650] # バケツ => -2.0
  ]
  
  n.each do |n11, n12, n21, n22|
    aic = AIC.new(n11, n12, n21, n22)
    p aic.calc_es().round(1)
  end
  
  # Sample from Schema Design for Causal Law Mining from Incomplete Database
  n = [
    [80, 20, 600, 300], # (a) AIC_DM => 1901.97, AIC_IM => 1907.90
    [70, 30, 600, 300], # (b) AIC_DM => 1924.06, AIC_IM => 1922.52
    [8, 2, 60, 30] # (c) AIC_DM => 195.60, AIC_IM => 194.39
  ]
  
  n.each do |n11, n12, n21, n22|
    aic = AIC.new(n11, n12, n21, n22)
    p aic.calc_aic_dm().round(2)
    p aic.calc_aic_im().round(2)
  end
end

以上是关于ruby 検出のための指标E(s)を求めるスクリプト特特特特特特特))的主要内容,如果未能解决你的问题,请参考以下文章

ruby 调整さん(https://chouseisan.com/)に日付を打ち込むための补助スクリプト。それぞれの日付に「午后」「夕方」を付けています。

sh HomebrewでMacのセットアップをするためのスクリプト

sh 减价でファイルリスト一覧リンクを作るためのシェルスクリプト(到位桶用)

ruby 丸囲み文字が我慢できないときに,红宝石で置换するスクリプト

ruby 维基百科とHatena的のキーワードファイルから仲裁处の辞书フォーマット(CSV)に変换するスクリプト。

sql mysqlでカラムが存在すればDROP COLUMNするスクリプト