scala - 线性回归中的日期使用以及使用 Spark mllib 将日期转换为数字

标签 scala apache-spark machine-learning linear-regression apache-spark-mllib

我想在线性回归中使用日期。 所以我必须将其转换为数字。我必须设置最低日期 0 并根据日期差异不断增加数字。

然后我可以使用 Scala、Spark MLlib 在线性回归中使用日期字段。 我已经准备好数据框,其中包含一些字段,包括日期。 例如,

| date       | id |
| 01-01-2017 | 12 |
| 01-02-2016 | 13 |
| 05-05-2016 | 22 |

对于字符串,我使用一种热编码技术来实现。但是对于日期,如何将第一个日期设置为 0,然后根据差异增加数字? 谢谢。

最佳答案

这完全取决于您想要创建的模型。对于非常基本的趋势建模,您可以将数据转换为 Unix 时间戳:

import org.apache.spark.sql.functions._

val parsed = df.withColumn("date", unix_timestamp($"date", "dd-MM-yyyy"))

不需要进行额外的处理,但您当然可以将其从 0 开始,或者重新缩放到更方便的比例。

更高级的建模将包括提取不同的组件,例如dayofweek。这些通常应被视为分类变量,并进行单热编码。

关于scala - 线性回归中的日期使用以及使用 Spark mllib 将日期转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48481137/

相关文章:

regex - 如何在 Scala Spark 中将空字符串替换为 N/A?

azure - 无法从 Azure Blob 读取 : "org. apache.hadoop.fs.azure.AzureException:找不到 Azure 存储帐户的凭据

tensorflow - 如何修复 KerasTensor 传递给 TF API 时出现的错误?

scala - 对案例类值强制执行约束的正确方法是什么

scala - 是否可以将 TypeTag 转换为 Manifest?

scala - pomOnly() 在 .sbt 文件中做什么?

r - R中的并行预测

scala - 如何将Scala嵌套map操作转换为Scala Spark操作?

r - R 中的多项式朴素贝叶斯分类器

machine-learning - 调查以确定满意度 : how to find the questions that mattered?