我正在尝试使用LibSVM对高光谱数据集进行分类。
我有两组数据:
此链接中的更多信息:Indain_pines_dataset
我的问题是:如何为16类的训练和测试LibSVM(training_label_vector和测试标签向量)抽取类的特定数量或百分比像素。
我的目标是对此数据进行多类分类。
请帮助..
答案 0 :(得分:0)
我会给你一般的想法:
首先根据实际情况选择样本(16班图像):
Idx = cell(16,1); Sample = zeros(no_samples);
表示k = 1:16
[〜,Idx {k}] = find(HSI == k-1);
[〜,Sample(k)] = datasample(Idx {k},no_samples);
端
Idx是一个包含每个类的像素的所有索引的单元格。样本的第K列包含随机抽样用于训练目的的Idx成员。
现在您想要恢复训练算法的光谱特征。
Hr =重塑(恒生指数,145 * 145,200);从HSI中获取2D阵列。
class = cell(16,1);将包含每个班级的培训样本。
表示k = 1:16
class {k} = Hr(Idx {k}(Sample(:),1),:);
端
现在,类{1}包含no_samples光谱签名。我想在印度松树上有10个样本很多。请记住,此数据集上的某些聚类非常小(无像素)。祝你好运!