窗口化最小-最大变换

Posted

技术标签:

【中文标题】窗口化最小-最大变换【英文标题】:Windowed Min-max transformation 【发布时间】:2021-10-29 21:37:47 【问题描述】:

是否有任何简单的方法可以在假设为 2000 个样本点而不是整个数据的窗口中执行 min-max 转换?

np.shape(X)
(10278, 4)

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_norm = scaler.fit_transform(X) 

【问题讨论】:

【参考方案1】:

我很好奇使用滚动窗口进行最小/最大缩放的相关性。我相信这应该会引入噪音和/或伪影,因为每个窗口都容易受到边界的影响。

不过,如果我理解正确,以下是实现它的方法:

输入测试数据:

df = pd.DataFrame(np.sin(np.arange(2000)/100+np.arange(4)[:, None])+np.random.normal(scale=0.2, size=(4,2000))).T
df.plot.line()

最小/最大缩放数据:

df_scaled = df.rolling(window=40, min_periods=1).apply(lambda a: ((a.iloc[0]-a.min())/(a.max()-a.min())))
df_scaled.plot.line()

在非噪声数据上也是如此

输入:

输出:

【讨论】:

观察到由于化学和激光源缺陷、系统配置和检测器灵敏度的变化,DNA/RNA 测序中电泳图的峰值幅度会随时间衰减。因此,最好将其标准化为一些适当的窗口大小ampliconexpress.com/wp-content/uploads/2014/04/… 感谢您的反馈,希望它对您的真实数据有用;) 不幸的是,这个解决方案不能正常工作,如果将窗口大小更改为更大,则会出现奇怪的行为 好吧,正如我告诉你的,带窗口的最小值/最大值非常容易受到边界的影响。例如你有 [9, 6, 7, 6, 1],这给你 [1, 0, 1, 1, 1] (window=3),它完全扭曲了原始信号。您是否尝试过对滚动均值进行标准化?能否提供色谱数据? ''由于迹线信号动态范围的变化,观察到色谱图迹线的幅度随时间衰减。色谱图迹线的每个通道最初被分割成宽度为 2000 个采样点的非重叠连续窗口。然后将每个窗口中的数据按其最大幅度标准化为 [0-1] 范围。图 4 显示了应用归一化之前的跟踪信号,而图 5 显示了归一化后的跟踪信号。''ieeexplore.ieee.org/document/5596983

以上是关于窗口化最小-最大变换的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5编程(10):窗口的最小化与最大化

delphi中窗口最大最小化问题

如何给无标题栏窗口加上标题栏(例如给某些无标题栏游戏加上 包括最小化 最大化 关闭按钮)

MFC SDI中,如何删除窗口的最大化和最小化功能(窗口右上角的2个图标)

mac笔记本,如果我想最小化或者最大化一个窗口,快捷键是啥

QT中怎样实现窗口的最大化和最小化: