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

wf82jlnq  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(226)

我有不同数量的不同成分的时间序列数据。这些组件最初是有标签的,所以我知道它们是什么。然后,当我得到相同的组件,但这次标记不同或根本没有标记,我需要知道哪个是哪个。假设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。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题