测试环境:
python3.13
minepy==1.2.6
代码:
from minepy import MINE
import numpy as np
def print_stats(mine):
print("MIC", mine.mic())
print("MAS", mine.mas())
print("MEV", mine.mev())
print("MCN (eps=0)", mine.mcn(0))
print("MCN (eps=1-MIC)", mine.mcn_general())
print("GMIC", mine.gmic())
print("TIC", mine.tic())
x = np.linspace(0, 1, 1000)
y = np.sin(10 * np.pi * x) + x
mine = MINE(alpha=0.6, c=15, est="mic_approx")
mine.compute_score(x, y)
print("Without noise:")
print_stats(mine)
np.random.seed(0)
y +=np.random.uniform(-1, 1, x.shape[0]) # add some noise
mine.compute_score(x, y)
print("With noise:")
print_stats(mine)
运行结果:
Without noise:
MIC 1.0000000000000002
MAS 0.7260715743736172
MEV 1.0000000000000002
MCN (eps=0) 4.584962500721157
MCN (eps=1-MIC) 4.584962500721157
GMIC 0.7793602519010566
TIC 67.66122955319294
With noise:
MIC 0.5057166934173714
MAS 0.3653999042616394
MEV 0.5057166934173714
MCN (eps=0) 5.954196310386876
MCN (eps=1-MIC) 3.8073549220576037
GMIC 0.3594755013532375
TIC 28.749832695303994
上述代码参考官方例子:github.com/minepy/minepy/blob/master/examples/python_example.py