2016-01-22 70 views
0

我正在做机器学习的时间序列预测,我需要将日期转换为向量的零和一个。 如果我确定日期的相关信息是进行观察的星期几,我想要有一个长度为7的向量的时间序列,其中第一个只包含一个“1”插槽,如果是星期一,第二如果是星期二等...替代scikit学习labelBinarizer在R

我想,例如输入(如“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 

如果是,它是从sklearn.preprocessing 10时三十分

labelBinarizer()确实是很好的蟒蛇,我已经找了R中的相当,但还没有找到它。你们有没有碰巧知道我在找什么?

这里是labelBinarizer():http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelBinarizer.html

现在我做这在Python:其中一小时是一个时间序列,在其中我的观察结果的确切时间;

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!

+0

你有什么已经尝试过?你卡在哪里?你有没有学习[这个SO讨论](http://stackoverflow.com/q/277660/1305688)? –

+0

我没有卡住,我只想找到一个与python的labelBinarizer()完全相同的r包。我正在寻找一种有效的方式,以避免无休止的无法读取的代码。 Thx为链接。不幸的是,这不是我想的。 –

+1

为我们提供更多可再现的R输入/输出。比如说,为什么你放弃了那个日期的所有事情,但是它周二的事实呢?你真的想要一个日期的编码,或任何多层次的因素(一周中的几天,一年的几个月,一天中的几小时)?你能链接到python的labelBinarizer的文档吗? – Spacedman

回答

0

试试这个:

binarizer <- function(levels){ 
    f = function(v){ 
     m = matrix(0, nrow=length(v), ncol=length(levels)) 
     vf = as.numeric(factor(v, levels=levels)) 
     m[cbind(1:length(v),vf)]=1 
     colnames(m)=levels 
     m 
    } 
    f 
} 

例子:

> ab = binarizer(letters[1:5]) # valid values a to e 
> ab(c("a","e","a")) 
    a b c d e 
[1,] 1 0 0 0 0 
[2,] 0 0 0 0 1 
[3,] 1 0 0 0 0 
+0

这很有帮助,非常感谢! –