【时间序列预测/分类】 全系列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方法将数字标签映射为真实标签。