Как передать метки в алгоритмы машинного обучения на MATLAB - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть много цветных картинок, сохраненных в файле, и я могу перебирать изображения и разделять их на 80% обучающего набора и 20% испытательного набора. В данный момент я использую только 10 изображений, 8 из которых являются тренировочными, а 2 - для тестирования. Мне удалось разделить эти изображения на два набора. Я попытался пометить изображения, используя данные, которые я хочу передать в алгоритм машинного обучения kNN, используя fitcknn в MATLAB.

Я пытался передавать данные параметров различными способами, такими как uint8, ячейки, хранилища данных, но продолжаю получать ошибки. Я проверил документацию MATLAB (https://uk.mathworks.com/help/stats/fitcknn.html) и до сих пор не до конца понимаю, через что пройти.

folder = 'C:\Users\jack\OneDrive\Desktop\images\*png';

datastore = imageDatastore(folder);
k = 5;

partStores{k} = [];
for i = 1:k
    temp = partition(datastore, k, i);
    partStores{i} = temp.Files;
end

idx = crossvalind('Kfold', k, k);

for i = 1:k
    test_idx = (idx == i);
    train_idx = ~test_idx;

    test_Store = imageDatastore(partStores{test_idx});
    train_Store = imageDatastore(cat(1, partStores{train_idx}));
end


x_train = read(train_Store);   
training = imresize(x_train, [120 120]);

label = read(datastore);
full_set = imresize(label, [120 120]);

% converting data to cell to pass to knn
newset = num2cell(training);

knn = fitcknn(train_Store, gTruth);

В приведенном выше коде kNN совершенно неверен, так как я не уверен, что передать.

Я думаю, что главная проблема, с которой я сталкиваюсь, - это передача ярлыков в kNN, поскольку я не уверен, как именно это сделать, и врезался в кирпичную стену в минуту. Был бы очень признателен, если бы кто-нибудь мог пролить свет на это. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...