替代scikit学习R中的labelBinarizer

2024-09-30 22:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做时间序列预测的机器学习,我需要把日期转换成0和1的向量。 如果我确定日期的相关信息是在一周中进行观察的那一天,我希望有一个长度为7的向量的时间序列,它只包含一个“1”,如果是星期一,则放在第一个槽中,如果是星期二,则放在第二个槽中,等等。。。在

例如,我希望将输入(如“2015-12-22 22:48:00”)转换为

0 1 0 0 0 0 0

如果相关信息是星期二。或者

^{pr2}$

如果是晚上10点

来自sklearn.preprocessinglabelBinarizer()在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

谢谢你!在


Tags: 机器信息时间序列sklearn向量labelpp
1条回答
网友
1楼 · 发布于 2024-09-30 22:23:15

试试这个:

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
}

示例:

^{pr2}$

相关问题 更多 >