非線型の関係性抽出
MICやHSICを忘れたのでまとめ直しておく.
当たり前だがいずれもそれなりのサンプルサイズがないとワークしなさそう.
MICとは?
Maximal information coefficient
データx, yを離散化するgridを作成し, 最も大きいx, yの相互情報量を理論的な最大値で割り込んだもの
2変数間の関係性を評価する際に以下を狙っている:
1. 関係性のタイプが異なっても関係性に入るノイズの状態の程度が同じであれば類似のスコアを返したい
2. シンプルな状況では相関係数などの他の関係性と同じスコアを返したい
MICの値域は[0,1]なので扱いやすい.
MICを中心に著者らはmaximal information-based nonparametric exploration (MINE)という統計量の族を提唱している.
■ 使い方
インストール
pip install minepy
サンプル
from minepy import MINE
mine = MINE()
x = {何らかのアレイ}
y = {xと同じlenのアレイ}
mine.compute_score(x, y)
res = mine.mic()
■ 数式周り
MIC
■ 工夫
x-y gridの探索範囲
x-y gridの探索範囲をサンプルサイズに基づいて限定している.
, where
gridを細かくし過ぎると各点が意味を持ち始めるし荒くし過ぎるとシンプルなパターンしか拾えなくなるため.
0.6はハイパラ, 原著では経験的にこれくらいとしている.
gridの理論的最大値
x-y gridの理論的最大値は
T. Cover and J. Thomas, Elements of Information Theory. New York: Wiley, 2006.が出典.
■ 原著論文
- Reshef et al. (2011), DOI: 10.1126/science.1205438
HSICとは?
Hilbert-Schmidt Independence Criteria, 2変数間の依存関係を評価する手法の一つ.
再生核ヒルベルト空間にデータを飛ばし, そこでcorss-covariance operatorのノルム(HS norm)をとった値を用い, permutation testで独立性を評価する.
HSICの定義とempirical estimatorを与えたことがGretton et al. (2005)の功績か.
■ 使い方
著者らのリポジトリを見るのが早い.
検定なので統計量と指定した有意水準の閾値を返す.
インストール
git clone https://github.com/amber0309/HSIC.git
サンプル
from HSIC.HSIC import hsic_gam
x = {(dim,1)のアレイ}
y = {(dim,1)のアレイ}
res, thresh = hsic_gam(x, y, alph = 0.05)
■ 数式周り
Hilbert-Schmidt norm
, where
cross-covariance operator
HSIC
HSICのempirical estimator
, where
■ 原著論文
HSICの損失関数としての活用
Greenfeld et al. (2019)ではHSICを損失関数として定義し, 広く機械学習タスクに使用可能なものとして整備した.
modelの予測と残差とが独立になるように学習する, この独立性の際にHSICを用いている.
著者らのリポジトリでpytorchで使えるコードも提供している.
■ Mooji et al. (2009)の功績は?
HSICを使い, ノイズの分布に仮定を置かずとも可能な回帰モデルを提唱したこと.
regressor (説明変数)とresiduals (残差)のdependence minimizationによる回帰と, その測定にHSICを導入した点.
ただしMoojiらの前にHoyer et al. (2009)がガウス過程回帰に際し, HSICを用いたdependence minimizationのアイデアを導入している.
Hoyerとの違いは, ガウスに限らないでしょって点で, 一般化にあたると考えてよいか.
ノイズの分布がわからないとき, ノイズの分布に関してnon-parametricなこの手法の意義は大きいと考える.
■ 原著論文
- Greenfeld et al. (2019), arXiv:1910.00270
- Mooji et al. (2009)
Discussion