【发布时间】:2016-04-29 07:01:54
【问题描述】:
我正在为时间序列预测进行机器学习,我需要将日期转换为零和一的向量。 如果我决定日期的相关信息是进行观察的星期几,我希望有一个长度为 7 的向量时间序列,其中仅包含一个“1”放置在第一个插槽中如果是星期一,第二个如果是星期二等等......
例如,我想将输入(如“2015-12-22 22:48:00”)转换为
0 1 0 0 0 0 0
如果相关信息是星期二。或者一个
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
如果是晚上 10 点
来自sklearn.preprocessing 的labelBinarizer() 在python 中做得很好,我在R 中寻找了等价物,但没有找到。你们有谁碰巧知道我在找什么吗?
这是 labelBinarizer() :http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelBinarizer.html
现在我正在 python 中执行此操作:其中 Hour 是我进行观察的确切时间的时间序列;
import sklearn.preprocessing as pp
lbday = pp.LabelBinarizer()
lbday.fit(list(range(24)))
pp.LabelBinarizer(neg_label=0, pos_label=1)
Hour = lbday.transform(Hour)
然后我导出我用 R 读取的二值化日期的 csv。
谢谢!
【问题讨论】:
-
你已经尝试过什么?你在哪里卡住了?你学习this SO discussion了吗?
-
我没有卡住,我只是想找到一个与 python 的 labelBinarizer() 做同样事情的 r 包。我正在寻找一种有效的方法,以避免无穷无尽的不可读代码。谢谢链接。不幸的是,这不是我想的。
-
为我们提供更多可重现的 R 输入/输出。例如,为什么你会放弃关于那个日期的所有内容,但事实上是星期二?您真的想要日期编码,还是任何多级因素(星期几、一年中的几个月、一天中的几个小时)?你能链接到 python 的 labelBinarizer 的文档吗?
-
当您的代码所做的所有事情都是二进制化小时时,为什么还要提到“二进制化日期”?
-
Spacedman,我希望能够根据一天中的小时、一天中的分钟或一周中的分钟来选择二值化(通过枚举一周中的所有 10080 分钟并构建一个 0 和一个 1) 的 10080 长向量,或者我选择的任何内容。
标签: python r date scikit-learn preprocessor