你好,
我是一个新手。我有一个包含5列的数据集。
- timestamp
- signal-1
- signal-2
- signal-3
- 0/1 [如果不是节拍则标记为0,如果是节拍则标记为1]
我想训练一个模型,该模型试图预测节拍和非节拍。这是一个时间序列问题。有很多零数字,所以模型无法学习到一的数量。
模型定义是:model_definition = { 'input_features':[ {'name':'time_motion', 'type':'timeseries'}, {'name':'X_motion', 'type':'timeseries'}, {'name':'Y_motion', 'type':'timeseries'}, {'name':'QoM_motion', 'type':'timeseries'}, ], 'output_features': [ {'name': 'beat_sound', 'type': 'category'} ] }
Samplle.csv
有人能帮助我解决这个问题吗?
Colab链接:Click here
2条答案
按热度按时间rhfm7lfc1#
SutirthaChakraborty,你能给我们更多关于数据的见解吗?如果我理解正确的话,输入是一个长的时间序列,每一行都是特定时间戳的一个样本,附带一个二进制标签(节拍、非节拍)。如果这是正确的,那么用Ludwig解决这个问题有几种方法。你采用的方法看起来是每个值都要确定是否为节拍,即使你称这些列为时间序列,它们实际上只是单个数字,它们也可以是数值特征。但我认为你可能想要做的是预处理数据,使得每个单元格都是数值列表(例如当前时间之前的10个值),然后模型也会查看之前的值来判断当前时间戳是否为节拍。
希望这对你有意义,我建议你查看时间序列示例,它进行了类似的预处理:https://ludwig-ai.github.io/ludwig-docs/examples/#time-series-forecasting-weather-data-example
egdjgwm82#
感谢 @w4nderlust 提供的详细答案。
数据集
当我绘制列时,红色线条是节拍。其他的是输入信号。
预处理
对于
add_sequence_feature_column
,我有多个列。我需要将特征并排放置,用空格隔开,然后变成单个列吗?add_sequence_feature_column(df, [df.X_motion,df.Y_motion,df.QoM_motion,df.time_motion], 20)
配置文件
对于
model_definition = { 'input_features':[ {'name':'input', 'type':'numerical'} ], 'output_features': [ {'name': 'output', 'type': 'category'} ] }
,这样可以吗?我的输出只有非节拍为0,节拍为1。代码 - Colab