2015-07-28 6 views
0

Я пытаюсь сделать классификацию Гиперспектральный набор данных с помощью LibSVM.Как классифицировать Гиперспектральный набор данных с LibSVM и обучение SVM с .mat-файлом?

У меня есть два набора данных:

  1. один .mat файл, содержащий 145 * 145 пикселей в 200 полос.
  2. один .mat файл, содержащий 145 * 145 пикселей для 16 классов этикетки (значение от 1 до 16) (фоновое значение равно 0)

больше информации в этой ссылке:. Indain_pines_dataset

Мой вопрос : выборка определенного количества или процентного пикселя классов для обучения и тестирования LibSVM (training_label_vector и тестирования вектора меток) для 16 классов.

Моя цель состоит в многоклассовой классификации этих данных.

Пожалуйста, помогите ..

+0

Фрагмент исправленный и улучшенный – MarmiK

ответ

0

Я дам вам общую идею:

Сначала выберите образцы на первый истине (16 классов изображений):

Idx = клетки (16,1); Образец = нули (no_samples);

при к = 1: 16

[~, IDX {к}] = найти (HSI == к-1);

[~, Образец (k)] = datasample (Idx {k}, no_samples);

конца

Idx является клеткой со всеми индексами пикселей каждого класса. В столбце Kth Образца содержатся члены Idx, которые были случайным образом отобраны для целей обучения.

Теперь вы хотите восстановить спектральные сигнатуры для алгоритма обучения.

Hr = reshape (HSI, 145 * 145,200); чтобы получить 2D-массив из HSI.

класс = ячейка (16,1); будут содержать образцы обучения для каждого класса.

при к = 1: 16

класс {к} = Hr (IDX {K} (образец (:), 1), :);

конец

Теперь класс {1} содержит no_samples спектральные сигнатуры. Я думаю, что на индийских соснах достаточно 10 проб. Имейте в виду, что некоторые кластеры очень маленькие (в пикселях) в этом наборе данных. Удачи !

+0

спасибо большое. Вы когда-нибудь пытались решить эту проблему до сих пор? Я написал код для использования этого инструмента, но несколько раз я столкнулся с этой проблемой, что Predicted Label точно так же, как на лейбле для обучения? !!!! и точность составляет около 50%. однако я использовал только один параметр svmtrain и svmpred и set для '-s 0', означает C-SVM (multiclass). Это неправильно?пожалуйста, помогите мне больше об использовании LibSVM для классификации. Гиперспектральный набор данных, например, сосны Индайна. спасибо за оценку –

+0

Я не работал с SVM, хотя я знаю теорию, есть много способов решить проблему классификации. Какова ваша конечная цель? К сожалению, довольно сложно классифицировать индийские сосны. Вы можете получить лучшую точность, если вы уменьшите количество кластеров до 13. Также вы можете сократить изображение пополам, использовать первую половину для обучения и вторую для тестирования. Или вы можете удалить выбранные пиксели из изображения перед тренировкой. К сожалению, трудно помочь, не видя больше вашего кода, я уверен, что есть документация онлайн. –

Смежные вопросы