时间序列分类24:numpy unique() 方法实现将分类标签转化为数字编码(非one-hot)


【时间序列预测/分类】 全系列45篇由浅入深的博文汇总:传送门


在处理原始数据过程中,可以将标签列按照顺序对应的方式,保存为单个文件,方便处理。

使用 numpy unique() 方法,实现按找原序列的顺序将真实标签转换为数字编码。代码如下:

def trans_dummy_label(data):
    '''
    函数功能:
    实现将真实标签转换为0,1,2,3;便于绘图显示;
    ------------------------------------------
    参数说明:
    data:DataFrame格式数据
    '''
    y = pd.DataFrame(data[data.columns[-1]].values, columns=['label'])
    map_dict = {} # 键值对对应关系字典
    '''
    np.unique()方法说明:
    返回列表数据中的唯一元素列表;return_index=True参数保留元素顺序,按照第一出现的索引大小排序;
    np.sort(index)方法实现索引。
    '''
    _, index = np.unique(y['label'].values, return_index=True) # 返回标签唯一索引列表
    for key, value in enumerate(y['label'][np.sort(index)], start=0): # data.columns[-1]标签列
        map_dict[value] = key
    
    y['label'] = y.label.map(map_dict) # 映射
    
    return y, map_dict

调用:

trainy, map_dict_train = trans_dummy_label(trainX)

查看结果:
在这里插入图片描述
保存为txt文件:

trainy.to_csv('trainy_diffp.txt', index=False, header=False)

查看结果:
在这里插入图片描述


数据量比较大的时候,建议使用pandas中的unique()方法。

保存的映射字典,在预测的时候或者最终可视化输出结果的时候,可以使用pandas的map方法将数字标签映射为真实标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EAI2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值