如何规范化复值数据?
数据挖掘
机器学习
深度学习
scikit-学习
2022-02-19 16:42:08
1个回答
首先,从几何角度思考什么是复数以及算术运算可以实现什么总是有帮助的。
在您的函数中,您使用的是这些复数绝对值的平均值和标准差。这意味着如果您对数据的绝对值执行操作:
(tmp - tmp.mean()) / tmp.std()
您最终将得到均值为 0 和标准差为 1 的归一化数据。
回到几何思维,当您执行原始操作时:
(x_source - tmp.mean()) / tmp.std()
您实际上是将数据的平均tmp.mean()单位向左移动,然后水平缩放1/tmp.std().
请注意,这些都不是垂直移动或缩放,所以有些东西闻起来很有趣。
我会做什么:我会独立地标准化每个坐标。
找到平均值很好 - 复杂数据点的平均值与组件的平均值相同:
所以你可以减去平均值每个输入值的值-协调。同上.
然后将实部除以实部的标准差,虚部也是如此。
除以(新)规范的标准偏差也可能是合适的。这将确保涉及您的数据的良好属性位于某个半径的圆内。
代码:
real_data = real(x_source)
imag_data = imaginary(x_source)
real_data = ( real_data - real_data.mean() ) / real_data.std()
imag_data = ( imag_data - imag_data.mean() ) / imag_data.std()
x_source_norm = real_data + i * imag_data
其它你可能感兴趣的问题
