将label矩阵转变为0-1矩阵

机器学习中,经常需要将label matrix (0-1)与 label 向量(为类别标签)进行相互转换。前者是在机器学习的模型中广泛使用,后者在分类(聚类)结果的评价中使用。下面提供python和matlab的两个平台上面的函数代码。

1、python code

import numpy as np
# label vector converted to label matrix
def label2matrix(label):
    label = np.array(label)
    uq_la = np.unique(label)
    c = uq_la.shape[0]
    n = label.shape[0]
    label_mat = np.zeros((n,c))
    for i in range(c):
        index = (label == i+1)
        label_mat[index,i]=1
    return label_mat

# label matrix converted to label vector
def matrix2label(label_mat):
    label_mat = np.array(label_mat)
    n,c = label_mat.shape
    label = np.zeros((n,))
    for i in range(c):
        label[label_mat[:,i]==1] = i+1
    return label

2、matlab

function label_mat = label2matrix(label)
uq_label = unique(label);
n = length(label);
c = length(uq_label);
label_mat = zeros(n,c);
for i = 1:c
    index = label == i;
    label_mat(index,i) = 1;
end
end

function label_vec = matrix2label(matrix)
   [n,c] = size(matrix);
   label_vec = zeros(1,n)
   for i = 1:c
       label_vec(matrix(:,i)==1) = i
   end
end

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值