[英]Date use in linear regression and conversion of date to numbers using 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開始移位,或者重新縮放為更方便的縮放比例。
更高級的建模將包括提取不同的組件,例如month
或dayofweek
。 通常將它們視為分類變量,並進行一次熱編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.