有人知道如何在python中实现tanh-estimator吗?我有一个不遵循高斯分布的数字列表。我想使用tanh-estimator作为预处理步骤,但我不知道如何在python中实现它,因为没有像MinMaxScaler()那样的定义函数。
提前致谢
答案 0 :(得分:3)
我遵循了L.Latha和S.Thangasamy撰写的“多模式生物特征评分标准化的有效方法”(2011)。您可以查看here。
他们提出了一个修改版本,通过使用分数的均值和标准偏差来避免Hampel估计的复杂性。
公式是: tanh s'= 0.5 [tanh(0.01(s-μ)/σ+ 1]
使用numpy你可以使用:
答案 1 :(得分:2)
有一个 @UrbanoFonseca 的answer的示例:
import numpy as np
unnormalizedData = np.array([[15, 60], [5, 15], [45, 0], [0, 30]], dtype=np.float64)
m = np.mean(unnormalizedData, axis=0) # array([16.25, 26.25])
std = np.std(unnormalizedData, axis=0) # array([17.45530005, 22.18529919])
data = 0.5 * (np.tanh(0.01 * ((unnormalizedData - m) / std)) + 1)
#array([[0.49712291, 0.5076058 ],
# [0.49711136, 0.49746456],
# [0.50865938, 0.4940842 ],
# [0.49710558, 0.50084515]])
请注意,此代码实现了有效的多模态生物特征分数归一化方法,2011
中提出的修改后的tanh估计量在原始版本中,均值和标准差由Hampel估算器估算(稳健统计:基于影响函数的方法,1986年)