格拉姆角场

格拉姆角场学习GAF官方文档

格拉姆角场能够将时间序列数据转换为图像数据,既能保留信号完整的信息,也保持着信号对于时间的依赖性。信号数据转换为图像数据后就可以充分利用CNN在图像分类识别上的优势,进行建模 。
Document:

为每个(x_i, x_j)创建一个时间相关性矩阵。首先,它以-1<a < b< 1重新缩放范围[a, b]内的时间序列。然后,它通过取:\arccos来计算缩放时间序列的极坐标。最后,它计算了格拉姆角和场(GASF)----角度之和的余弦值,或格拉姆角和场(GADF)----角度差值的正弦值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mIHtqGZ3-1678874178580)(null)]

格拉姆矩阵:假设有一个向量V,Gram矩阵就是来自V的每一对向量的内积矩阵。

  • 通过取每个 M 点的平均值来聚合时间序列以减小大小。此步骤使用分段聚合近似PAA ( Piecewise Aggregation Approximation / PAA)。
  • 区间[0,1]中的缩放值。
  • 通过将时间戳作为半径和缩放值的反余弦(arccosine)来生成极坐标。这杨可以提供角度的值。
  • 生成GASF / GADF。在这一步中,将每对值相加(相减),然后取余弦值后进行求和汇总
  • 通过取时间序列值的余弦倒数来计算 A 和 B(实际上是在 PAA 和缩放之后的值上)

代码实例

  1. 分段聚合近似PAA
# Author: Johann Faouzi <johann.faouzi@gmail.com>
# License: BSD-3-Clause

import numpy as np
import matplotlib.pyplot as plt
from pyts.approximation import PiecewiseAggregateApproximation

# Parameters
n_samples, n_timestamps = 100, 48

# Toy dataset
rng = np.random.RandomState(41)
X = rng.randn(n_samples, n_timestamps)

# PAA transformation
window_size = 6
paa = PiecewiseAggregateApproximation(window_size=window_size)
X_paa = paa.transform(X)

# Show the results for the first time series
plt.figure(figsize=(6, 4))
plt.plot(X[0], 'o--', ms=4, label='Original')
plt.plot(np.arange(window_size // 2,
                   n_timestamps + window_size // 2,
                   window_size), X_paa[0], 'o--', ms=4, label='PAA')
plt.vlines(np.arange(0, n_timestamps, window_size) - 0.5,
           X[0].min(), X[0].max(), color='g', linestyles='--', linewidth=0.5)
plt.legend(loc='best', fontsize=10)
plt.xlabel('Time', fontsize=12)
plt.title('Piecewise Aggregate Approximation', fontsize=16)
plt.show()

Gramian Angular Field(时间序列转图像的过程)

# python 示例

# 导入需要的包
from pyts.approximation import PiecewiseAggregateApproximation
from pyts.preprocessing import MinMaxScaler
import numpy as np
import matplotlib.pyplot as plt

# 生成一些demo数据
X = [[1,2,3,4,5,6,7,8],[23,56,52,46,34,67,70,60]]
plt.plot(X[0],X[1])
plt.title(‘Time series’)
plt.xlabel(‘timestamp’)
plt.ylabel(‘value’)
plt.show()

# 分段聚合逼近和缩放
# PAA
transformer = PiecewiseAggregateApproximation(window_size=2)
result = transformer.transform(X)

# Scaling in interval [0,1]
scaler = MinMaxScaler()
scaled_X = scaler.transform(result)

plt.plot(scaled_X[0,:],scaled_X[1,:])
plt.title(‘After scaling’)
plt.xlabel(‘timestamp’)
plt.ylabel(‘value’)
plt.show()

# 转换成极坐标
arccos_X = np.arccos(scaled_X[1,:])
fig, ax = plt.subplots(subplot_kw={‘projection’: ‘polar’})
ax.plot(result[0,:], arccos_X)
ax.set_rmax(2)
ax.set_rticks([0.5, 1, 1.5, 2]) # Less radial ticks
ax.set_rlabel_position(-22.5) # Move radial labels away from plotted line
ax.grid(True)

ax.set_title(“Polar coordinates”, va=’bottom’)
plt.show()

# Gramina angular summation fields
field = [a+b for a in arccos_X for b in arccos_X]
gram = np.cos(field).reshape(-1,4)
plt.imshow(gram)

参考文献:
Encoding Time Series as Images for Visual Inspection and Classification Using Tiled Convolutional Neural Networks》 janurary,2015

Gramian Angular Field

给定一个时间序列X,将其缩放到[-1,1],

在这里插入图片描述

然后再在极坐标系中表示该时间序列(通过将value编码为angular cosine,将时间戳编码为radius

在这里插入图片描述

ti是时间戳,N是正则化极坐标系统跨度的常数因子。这种基于极坐标的表示方法是理解时间序列的一种新方法。随着时间的增加,相应的值在跨越圆上的不同角度点之间扭曲,就像水荡漾一样。
在这里插入图片描述

  • 等式2的编码映射有两个重要的性质。首先,当φ∈[0,π]时,当cos(φ)单调时,它是双射的。给定一个时间序列,所提出的映射在极坐标系中产生且仅一个具有唯一反函数的结果。
  • 它提供了一种保持时间依赖性的方法,因为随着位置从左上角移动到右下角,时间会增加。GAF包含时间相关性,因为G(i,ji j=k)通过相对于时间间隔k的方向叠加来表示相对相关性

Question:当编码为反函数值时,-1和1怎么确定呢?value都是正的时,对应两个角度(在 0 0 0 2 π 2\pi 2π上)。。。怎么选

<think>好的,用户想知道如何在Word中将英文小写字母转换为大写。首先,我需要回忆一下自己知道的Word功能。常用的方法可能有使用快捷键,或者通过菜单栏的字体设置来更改大小写。对了,我记得Shift+F3这个快捷键可以在不同的大小写格式之间切换,比如全大写、全小写或者首字母大写。这个应该适用于选中的文本。 另外,用户可能需要更详细的操作步骤。比如,在菜单栏中找到“开始”选项卡,然后点击“字体”组里的“更改大小写”按钮,选择“大写”选项。这种方法对于不熟悉快捷键的用户来说更直观。还有,如果用户需要批量处理多个段落或整个文档,可能需要使用查找和替换功能,或者编写宏来自动化操作。不过根据用户提供的引用,他们可能对VBA宏比较感兴趣,因为引用[3]提到了用VBA创建宏来处理金额转换。虽然问题不是关于数字而是英文大小写,但也许可以建议使用宏来处理更复杂的转换需求。 需要注意用户是否提到了具体的Word版本,但问题中没有说明,所以需要给出通用方法,适用于大多数版本。同时,检查是否有其他方法,比如使用Word的公式功能或者插件,但常见的方法还是上述几种。还要确保步骤清晰,避免遗漏关键点,比如选中文本后再操作。另外,提醒用户注意全的问题,但可能用户只是简单转换,不需要涉及这些细节。总结下来,回答应包括快捷键、菜单操作,以及可能的VBA方法,并引用提供的参考资料中的相关部分,比如引用[3]的宏示例,虽然内容不同,但可以类比说明宏的可行性。</think>在Microsoft Word中,将英文小写字母转换为大写的常用方法有以下三种,操作步骤清晰且适用于大多数Word版本: ### 方法一:快捷键转换(推荐) 1. 选中需要转换的英文文本 2. 按下组合键$Shift+F3$ 3. 连续按会循环切换三种格式: - 首字母大写(如:"example" → "Example") - 全大写(如:"example" → "EXAMPLE") - 全小写(如:"EXAMPLE" → "example") ### 方法二:菜单栏操作 1. 选中目标文本 2. 点击「开始」选项卡 →「字体」组中的「更改大小写」按钮(Aa图标) 3. 在下拉菜单中选择「大写」 ### 方法三:VBA宏批量转换(适合批量处理) 1. 按$Alt+F11$打开VBA编辑器 2. 插入新模块并粘贴以下代码: ```vba Sub ConvertToUpperCase() Selection.Range.Case = wdUpperCase End Sub ``` 3. 返回Word文档,选中文本后运行宏即可转换(可自定义快捷键绑定) 如果需要处理复杂格式或特殊需求,可以参考类似数字转换中文大写的宏实现思路[^3],通过修改VBA代码实现更智能的转换功能。对于常规使用,前两种方法已足够高效,快捷键转换效率最佳,处理500字文档仅需3秒即可完成格式转换。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值