2016-11-16 1 views
1

Используя Accord.NET, я создал классификатор NaiveBayes. Он будет классифицировать пиксель на основе 6 или около того наборов результатов обработки изображений. Мои изображения - 5 Мп, поэтому набор из 50 образов создает очень большой набор данных обучения.Как я могу поэтапно обучать классификатор naivebayes?

6 int array per pixel * 5 миллионов пикселей * 50 изображений.

Вместо того, чтобы хранить все эти данные в памяти, существует ли способ постепенного обучения классификатору NaiveBayes? Вызов Learn() несколько раз перезаписывает старые данные каждый раз, а не добавляет к нему.

ответ

0

Непосредственно сейчас можно тренировать модель Наивного Байеса, используя Accord.NET.

Однако, поскольку все, что Наивный Байес собирается сделать, это попытаться подогнать некоторые дистрибутивы к вашим данным, и поскольку ваши данные имеют очень мало измерений, возможно, вы могли бы попытаться изучить свою модель на подвыборке своих данных, чем все это сразу.

Когда вы загружаете изображения, чтобы создать свой тренировочный набор, вы можете попытаться случайным образом отбросить x% пикселей на каждом изображении. Вы также можете построить точность классификатора для разных значений x, чтобы найти лучший баланс между памятью и точностью для вашей модели (подсказка: для такой маленькой модели и этого большого количества данных обучения я ожидаю, что она не сделает такую ​​большую часть даже если вы потеряли 50% ваших данных).

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