利用分类器做有监督学习时,需要将手工标定的类别转化为单位向量。下面介绍两个不依赖循环实现的版本。
例如,手头有标记向量,需要转化成类别矩阵M。即当 y(c) = r 时 M(r, c) 为1,否则为0。
numCases = size(labels,1); %样本个数
版本1:利用命令eye:
label = eye(numCases);
groundTruth = label(labels, :);
版本2:利用命令sparse和full:
命令 M = sparse(r, c, v) 创建一个稀疏矩阵,使得对所有i,有M(r(i), c(i)) = v(i)。即,向量r(i)、c(i)给出需要置v(i)值的位置。
接着对此稀疏矩阵使用full命令,会获得对应的完全矩阵版本。
groundTruth = full(sparse(labels, 1:numCases, 1));
例如,手头有标记向量,需要转化成类别矩阵M。即当 y(c) = r 时 M(r, c) 为1,否则为0。
numCases = size(labels,1); %样本个数
版本1:利用命令eye:
label = eye(numCases);
groundTruth = label(labels, :);
版本2:利用命令sparse和full:
命令 M = sparse(r, c, v) 创建一个稀疏矩阵,使得对所有i,有M(r(i), c(i)) = v(i)。即,向量r(i)、c(i)给出需要置v(i)值的位置。
接着对此稀疏矩阵使用full命令,会获得对应的完全矩阵版本。
groundTruth = full(sparse(labels, 1:numCases, 1));