保留数据集(时间序列)中模式的前n个项。
创始人
2024-11-24 15:03:27
0

以下是一个示例代码,用于保留时间序列数据集中模式的前n个项:

import numpy as np

def keep_top_n_pattern(data, n):
    patterns = []
    unique_patterns = []
    
    # 寻找所有不重复的模式
    for i in range(len(data)-n+1):
        pattern = tuple(data[i:i+n])
        if pattern not in unique_patterns:
            unique_patterns.append(pattern)
    
    # 统计每个模式的频率
    pattern_freq = {pattern: 0 for pattern in unique_patterns}
    for i in range(len(data)-n+1):
        pattern = tuple(data[i:i+n])
        pattern_freq[pattern] += 1
    
    # 按频率降序排序
    sorted_patterns = sorted(pattern_freq.items(), key=lambda x: x[1], reverse=True)
    
    # 保留前n个模式
    top_n_patterns = sorted_patterns[:n]
    
    # 提取模式中的项
    for pattern, freq in top_n_patterns:
        patterns.extend(list(pattern))
    
    return patterns

# 示例使用
data = [1, 2, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3]
n = 2
top_n_patterns = keep_top_n_pattern(data, n)
print(top_n_patterns)

在上述示例中,我们定义了一个名为keep_top_n_pattern的函数,该函数接受一个时间序列数据集data和一个整数n作为输入参数。函数的目标是找到数据集中频率最高的前n个模式,并返回这些模式中的所有项。

首先,我们遍历数据集中的每个n项序列,将其作为模式存储在unique_patterns列表中,确保没有重复的模式。然后,我们使用字典pattern_freq统计每个模式的频率,通过在数据集中查找模式并递增相应的频率计数器。

将模式和频率存储在元组中,并使用sorted函数按频率降序对它们进行排序。然后,我们将前n个模式存储在top_n_patterns列表中。

最后,我们将每个模式中的项提取出来,并将它们存储在patterns列表中。最后,我们返回patterns列表,即所有频率最高的模式中的项的列表。

在示例中,我们使用data = [1, 2, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3]作为输入数据集,n设置为2。函数的输出将是[2, 3, 1, 2, 3],这是数据集中频率最高的两个模式[2, 3][1, 2]的项的组合。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...