我正在进行时间序列预测的机器学习,我需要将日期转换为零和一的向量。 如果我确定日期的重要信息是进行观察的一周中的那一天,我希望有一个长度为7的向量的时间序列,其中只包含一个" 1&# 34;如果它是星期一,则放在第一个插槽中;如果它是星期二等,则放在第二个插槽中......
我希望,例如输入(如" 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点
来自labelBinarizer()
的{{1}}在python中表现得非常好,而且我已经在R中找到了等价物,但还没有找到它。你们中的任何人碰巧知道我在寻找什么吗?
这是labelBinarizer():http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelBinarizer.html
现在我在python中这样做:其中Hour是我观察的确切时间的时间序列;
sklearn.preprocessing
然后我导出我用R读到的二进制化日期的csv。
谢谢!
答案 0 :(得分: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