次のコードを使用して、感情分析で特徴を選択するための相互情報量とカイ 2 乗値を計算しました。
MI = (N11/N)*math.log((N*N11)/((N11+N10)*(N11+N01)),2) + (N01/N)*math.log((N*N01)/((N01+N00)*(N11+N01)),2) + (N10/N)*math.log((N*N10)/((N10+N11)*(N00+N10)),2) + (N00/N)*math.log((N*N00)/((N10+N00)*(N01+N00)),2)
ここで、N11、N01、N10、および N00 は、データ セット内の 2 つの特徴の観測頻度です。
注:特定の機能とクラス間の相互情報ではなく、2つの機能間の相互情報とカイ二乗値を計算しようとしています。私はこれを行っているので、2 つの機能が何らかの形で関連しているかどうかがわかります。
私が使用したカイ二乗式は次のとおりです。
E00 = N*((N00+N10)/N)*((N00+N01)/N)
E01 = N*((N01+N11)/N)*((N01+N00)/N)
E10 = N*((N10+N11)/N)*((N10+N00)/N)
E11 = N*((N11+N10)/N)*((N11+N01)/N)
chi = ((N11-E11)**2)/E11 + ((N00-E00)**2)/E00 + ((N01-E01)**2)/E01 + ((N10-E10)**2)/E10
E00、E01、E10、E11 は予想される周波数です。
相互情報の定義によると、値が小さいということは、一方の機能が他方の機能に関する情報を提供しないことを意味し、カイ 2 乗の定義により、カイ 2 乗の値が小さいということは、2 つの機能が独立していなければならないことを意味します。
しかし、特定の 2 つの機能については、相互情報スコアが 0.00416 で、カイ 2 乗値が 4373.9 でした。相互情報量スコアは機能が密接に関連していないことを示していますが、カイ二乗値はそれらが独立していないことを示すのに十分高いように見えるため、これは私には意味がありません. 私の解釈が間違っていると思います
観測された周波数について得た値は次のとおりです。
N00 = 312412
N01 = 276116
N10 = 51120
N11 = 68846