アセットマネージャーのためのファイナンス機械学習:測度 KLダイバージェンスとクロスエントロピー

scipy.statのentropy関数は、2変数を受け取った場合は、KLダイバージェンスを返す。

 これを使えば、KLダイバージェンスとクロスエントロピーは以下の様に実装される。

x = np.random.normal(0, 1, 1000)
y = np.random.normal(0, 1, 1000)
bins=10 
hX=ss.entropy(np.histogram(x,bins)[0])
dKL=ss.entropy(np.histogram(x,bins)[0],np.histogram(y,bins)[0])
hc_XY=hX+dKL

Hacine-Gharbi et al Hacine-Gharbi and Ravierの離散化関数を使う時は以下の通りである。

bXY=numBins(x.shape[0],corr=corr)
cXY=np.histogram2d(x,y,bXY)[0]
hX=ss.entropy(np.histogram(x,bXY)[0])
dKL=ss.entropy(np.histogram(x,bXY)[0],np.histogram(y,bXY)[0])
hc_XY=hX+dKL


この記事が気に入ったらサポートをしてみませんか?