做分类任务的时候,对类别进行编码

2021/6/12 10:51:34

本文主要是介绍做分类任务的时候,对类别进行编码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

示例,假定给定的 15 数据集类别是这样

1 1 2 5 3 5 3 1 4 1 2 2 4 3 1

想要编码为

1    1    0    0    0    0    0    1    0    1    0    0    0    0    1
0    0    1    0    0    0    0    0    0    0    1    1    0    0    0
0    0    0    0    1    0    1    0    0    0    0    0    0    1    0
0    0    0    0    0    0    0    0    1    0    0    0    1    0    0
0    0    0    1    0    1    0    0    0    0    0    0    0    0    0

便于后续处理,

matlab代码如下

    T = [1 1 2 5 3 5 3 1 4 1 2 2 4 3 ];
    NumberofTrainingData = length(T):
    label = unique(T);
    number_class = length(label);  %类别数
    temp_T=zeros(number_class, NumberofTrainingData);  %每一列代表训练集的一个数据
    for i = 1:NumberofTrainingData
        j = int32(T(1,i));       % T(1,i)就是第i个示例的类别(它默认为double,所以加了强制转换)
        % j = int32(T(1,i))+1;   % T(1,i)就是第i个示例的类别(它默认为double,所以加了强制转换),加一是因为matlab从1开始索引,如果我们的类别是0开始的
        temp_T(j,i)=1;     %第i个示例的类别是第j个类别,赋值为1
    end 


这篇关于做分类任务的时候,对类别进行编码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程