替代scikit学习R

时间:2016-01-22 15:55:34

标签: python r date scikit-learn preprocessor

我正在进行时间序列预测的机器学习,我需要将日期转换为零和一的向量。 如果我确定日期的重要信息是进行观察的一周中的那一天,我希望有一个长度为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。

谢谢!

1 个答案:

答案 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