鱼C论坛

 找回密码
 立即注册
查看: 2514|回复: 2

minirocket 数据维度

[复制链接]
发表于 2023-10-11 16:35:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
光谱数据维度有855个样本,890个变量,输入minirocket出现错误。
X.shape=(855,890),Y.shape=(855,1)

发生异常: ValueError
n_timepoints must be >= 9, but found 1; zero pad shorter series so that n_timepoints == 9
  File "D:\0000可见光2\程序\MiniRocket\Test1.py", line 20, in <module>
    model.fit(X_train, y_train)
ValueError: n_timepoints must be >= 9, but found 1; zero pad shorter series so that n_timepoints == 9

  1. from tsai.all import MiniRocket
  2. import numpy as np
  3. import pandas as pd
  4. from sklearn.model_selection import train_test_split
  5. from tsai.basics import *
  6. from tsai.models.MINIROCKET import MiniRocketClassifier

  7. df1 = pd.read_csv("train.csv")
  8. df1 = np.array(df1)
  9. X = df1[:, 1:891]
  10. X = np.expand_dims(df1[:, 1:891].astype(float), axis=2)
  11. Y = df1[:, 0]
  12. print(X.shape, Y.shape)
  13. df2 = pd.read_csv("test.csv")
  14. df2 = np.array(df1)
  15. X_test = df2[:, 1:891]
  16. X_train, X_valid, y_train, y_valid = train_test_split(X, Y, test_size=0.8, random_state=42)
  17. print(X_train.shape, y_train.shape, X_valid.shape, y_valid.shape)
  18. model = MiniRocketClassifier()
  19. model.fit(X_train, y_train)

  20. cls = MiniRocket()
  21. y=model.score(X_valid, y_valid)
  22. print(y)
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-10-11 16:35:24 | 显示全部楼层
这个错误是因为 MiniRocket 要求输入的时间序列长度至少为 9,而您的数据长度只有 1,因此需要使用零填充将其长度增加到 9。您可以使用 tsai 库中的 pad_min_len 函数来实现这一点。以下是修改后的代码:

  1. from tsai.all import MiniRocket, pad_min_len
  2. import numpy as np
  3. import pandas as pd
  4. from sklearn.model_selection import train_test_split
  5. from tsai.basics import *
  6. from tsai.models.MINIROCKET import MiniRocketClassifier

  7. df1 = pd.read_csv("train.csv")
  8. df1 = np.array(df1)
  9. X = df1[:, 1:891]
  10. X = np.expand_dims(df1[:, 1:891].astype(float), axis=2)
  11. Y = df1[:, 0]
  12. print(X.shape, Y.shape)
  13. df2 = pd.read_csv("test.csv")
  14. df2 = np.array(df1)
  15. X_test = df2[:, 1:891]

  16. # 使用 pad_min_len 函数将 X 的长度增加到 9
  17. X = pad_min_len(X, 9)

  18. X_train, X_valid, y_train, y_valid = train_test_split(X, Y, test_size=0.8, random_state=42)
  19. print(X_train.shape, y_train.shape, X_valid.shape, y_valid.shape)
  20. model = MiniRocketClassifier()
  21. model.fit(X_train, y_train)

  22. cls = MiniRocket()
  23. y = model.score(X_valid, y_valid)
  24. print(y)
复制代码


希望能够帮到您!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-11 16:35:48 | 显示全部楼层
您的问题似乎是关于使用MiniRocket模型处理时间序列数据时遇到的问题。MiniRocket是一个高效的时间序列分类模型,它需要输入的数据是一个二维数组,其中每一行是一个时间序列样本,每一列是一个时间点。

在您的代码中,您使用了np.expand_dims(df1[:, 1:891].astype(float), axis=2)来增加一个维度,这可能是问题的原因。这一步将数据从二维转换为三维,可能导致MiniRocket无法正确处理。

另外,错误信息n_timepoints must be >= 9, but found 1; zero pad shorter series so that n_timepoints == 9表明,MiniRocket期望每个时间序列样本至少有9个时间点,但在您的数据中只找到了1个。这可能是因为增加了一个不必要的维度导致的。

您可以尝试以下修改:

  1. from tsai.all import MiniRocket
  2. import numpy as np
  3. import pandas as pd
  4. from sklearn.model_selection import train_test_split
  5. from tsai.basics import *
  6. from tsai.models.MINIROCKET import MiniRocketClassifier

  7. df1 = pd.read_csv("train.csv")
  8. df1 = np.array(df1)
  9. X = df1[:, 1:891].astype(float)  # 不增加额外的维度
  10. Y = df1[:, 0]
  11. print(X.shape, Y.shape)

  12. df2 = pd.read_csv("test.csv")
  13. df2 = np.array(df1)
  14. X_test = df2[:, 1:891]

  15. X_train, X_valid, y_train, y_valid = train_test_split(X, Y, test_size=0.8, random_state=42)
  16. print(X_train.shape, y_train.shape, X_valid.shape, y_valid.shape)

  17. model = MiniRocketClassifier()
  18. model.fit(X_train, y_train)

  19. cls = MiniRocket()
  20. y=model.score(X_valid, y_valid)
  21. print(y)
复制代码


这样,您的数据应该能够正确地被MiniRocket模型处理。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 20:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表