Многоуровневая классификация - PullRequest
0 голосов
/ 11 февраля 2019

Я работаю с проблемой многослойной классификации, использую Keras, scikit-learn и т. Д. *

Мой массив данных содержит 4000 микроскопических образцов масла, с изображениями и 13 различными метками, для которых проблема находится в этих образцах.

На самом деле я конвертирую все изображения и метки в массив numpy.

Пример одного помеченного изображения:

[0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0,0.0, 0.0, 1.0, 0.0, 0.0, 0.0]

В этой метке, если позиция равна 1, это означает, что у текущего образца есть особая проблема, как у некоторых частиц в масле, и как вы можете видетьвозможно, в примере более одного выхода.

Проблема в том, что мой фрейм данных не сбалансирован, и мне нужно применить метод Class Weight, но прежде, глядя на метки, я думаю, что мне нужно использоватькак: [0, 1, 0, 0, ...], не так, как в примере, который я привел выше.

Подробно, я могу запустить свой код нейронной сети без веса класса, работает хорошо, но я могу 'Тренировать всю модель с этими несбалансированными данными.Уже пробовал работать с использованием списков, безуспешно!

Конечно, у меня проблемы с формой, изображения имеют, например: (1000, 100, 200, 3) и метки (1000, 13);Вот почему я тоже не могу применить Class Weight ...

Есть несколько проблем, которые я пытаюсь исправить.

Я опубликую свой код, потому что я застрял и не знаючто делать.

class_weight_list = compute_class_weight('balanced',np.unique(Y_train), Y_train) class_weight = dict(zip(np.unique(Y_train), class_weight_list)) Y_train = to_categorical(Y_train,num_classes=len(np.unique(Y_train)))

main.py

dataset.py

models.py

Какова наилучшая стратегия работы с метками в этом случае?Я ценю, если кто-то может мне помочь.Заранее спасибо !!

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