一种onehot编码方式

请教了敖老师

def transform_time(x,min_=28805,max_=70197,delta=5*60):
    num=ceil((max_-min_)/delta)
    x_norm=(x-min_)/(max_-min_)
    idx=min(int(x_norm*num),num-1)
    one_hot_=[0 for _ in range(num)]
    one_hot_[idx]=1
    return one_hot_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在机器学习领域中,文本数据是十分常见的数据类型,然而文本数据不能直接作为输入数据进行机器学习,需要先对其进行数值化处理。在文本数值化的处理方法中,onehot编码是一种常用的方式,可以将文本内容转化为数值化的向量表示。 Python中可以使用sklearn库中的OneHotEncoder类来实现onehot编码。具体实现方法如下: 首先需要将文本内容进行标准化处理,将大写字母转换为小写字母,并去除标点符号和空格等无关字符。 然后可以使用sklearn库中的CountVectorizer类将文本转化为计数向量。该类会将文本中的每个单词都进行计数,生成对应的文本词汇表。对于每个文本,可以根据词汇表中的单词出现情况生成该文本的计数向量。 接下来就可以使用OneHotEncoder类将计数向量转化为onehot编码的向量了。对于每个计数向量,OneHotEncoder类会根据该向量中的每个元素是否为0或非0来生成一个二元向量,该向量的维度与计数向量的维度相同。对于每个非零元素,该向量相应位置标记为1,零元素则标记为0。 在使用完OneHotEncoder类后,可以得到一组数值化的向量,将这些向量作为输入数据进入机器学习模型进行训练。需要注意的是,在进行onehot编码时需要先对训练数据和测试数据分别进行数值化处理,避免测试数据的数值与训练数据不一致导致模型预测结果不准确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值