微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用机器学习算法识别时间序列数据?

如何解决如何使用机器学习算法识别时间序列数据?

我有许多不同组件的时间序列数据。这些组件最初都带有标签,所以我知道它们是什么。然后,当我得到相同的组件,但是这次标记不同或根本没有标记时,我需要知道哪个是哪个。假设这n个组件之间没有依赖性,那么如何知道哪个是哪个?

示例

+-------------------+-------+-------+-------+
|                 ts|label_1|label_2|label_3|
+-------------------+-------+-------+-------+
|2020-08-17 00:00:00|   19.4|    4.0|   25.0|
|2020-08-17 00:10:00|    3.4|    3.7|   25.0|
|2020-08-17 00:20:00|   -7.2|    3.2|   25.0|
|2020-08-17 00:30:00|   -5.9|    3.1|   25.0|
|2020-08-17 00:40:00|   -7.1|    3.2|   25.0|
|2020-08-17 00:50:00|   -5.8|    2.7|   25.0|
|2020-08-17 01:00:00|   -5.6|    2.0|   25.0|
|2020-08-17 01:10:00|   -4.6|    1.8|   25.0|
|2020-08-17 01:20:00|   -3.9|    1.1|   25.0|
|2020-08-17 01:30:00|   -5.3|    3.5|   24.0|
|2020-08-17 01:40:00|  107.0|    4.8|   24.0|
|2020-08-17 01:50:00|    0.9|    3.9|   25.0|
|2020-08-17 02:00:00|   34.5|    4.0|   24.0|
|2020-08-17 02:10:00|   22.2|    4.0|   24.0|
|2020-08-17 02:20:00|   71.0|    4.6|   23.0|
|2020-08-17 02:30:00|  134.0|    5.0|   23.0|
|2020-08-17 02:40:00|  109.6|    4.8|   23.0|
|2020-08-17 02:50:00|   -6.8|    3.6|   23.0|
|2020-08-17 03:00:00|   35.2|    4.1|   23.0|
|2020-08-17 03:10:00|  141.1|    5.1|   23.0|
+-------------------+-------+-------+-------+

我想到了尝试在每个时间序列数据中识别形状并将这些形状作为特征。还考虑过获取摘要统计信息并进行这些功能

不过,我不确定如何进行模型训练和未知组件的标注。 我正在寻找示例代码

对于摘要统计信息,我尝试过:

# df_y1 is the input dataframe
featCol = ['label_1','label_2','label_3']
va = VectorAssembler(inputCols = featCol,outputCol='features')

dfFeat = va.transform(df_y1)
from pyspark.ml.stat import Summarizer


summarizer = Summarizer.metrics("max","min","variance","mean","norml1","norml2")
df_summary = dfFeat.select(summarizer.summary(dfFeat.features).alias('features'))

df_summary.show(truncate=False)
-------------------------------------------------------------------------------+
|labels                                                                                                                                                                                                                                                                 |
+------------------------------------------------------------------------------+
|[[1435.5,7.2,35.0],[-10.2,0.0,18.0],[72827.72853887171,2.634534574364183,12.829884361448627],[111.13393854748607,2.783379888268156,23.42877094972066],[82404.90000000004,1992.9000000000005,16775.0],[7804.803940522785,86.20145010381208,634.1853041501356]]|

到目前为止已经了解了这一点,并陷入了下一步

因此,我再次询问要知道新的时间序列数据流是label_1,label_2还是label_3(鉴于上述示例)需要采取的步骤。再次注意,列数可能超过1000。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。