Прежде всего, если можно так выразиться:
Так как я начинающий в машинном обучении и не знаю, как> работает нейронная сеть. Я хотел попробовать с алгоритмами scikit-learn.
Это не очень хороший способ приблизиться к ML в целом, я настоятельно рекомендую вам начать изучать основы по крайней мере, иначе вы не сможетерассказать, что происходит вообще (это не то, что вы можете выяснить, попробовав это).
Возвращаясь к вашей проблеме, применение наивных байесовских методов к необработанным изображениям - это не очень хорошая стратегия: проблема в том, что каждый пиксельваше изображение является функцией , а с изображениями вы можете легко получить очень большое количество измерений (также при условии, что каждый пиксель не зависит от своих соседей, это не то, что вам нужно). NB обычно используется с документами, и рассмотрение этого примера в wikipedia может помочь вам немного лучше понять алгоритм.
Короче говоря, NB сводится к вычислению совместных условных вероятностей, которое сводится кк подсчету совпадений функций ( слов в примере из Википедии), являющихся сопутствующими явлениями пикселей в вашем случае, что, в свою очередь, сводится к вычислению огромныхМатрица вхождений, необходимая для формулирования модели NB.
Теперь, если ваша матрица состоит из всех слов в наборе документов, это может стать довольно дорогостоящим как по времени, так и по времени. пробел (O (n ^ 2) / 2), где n равно числу признаков ;вместо этого, представьте, что матрица состоит из ВСЕХ пикселей в вашем тренировочном наборе, как вы делаете в своем примере ... это очень быстро взрывается.
Вот почему сокращение вашего набора данных до 1000 изображений позволяет вашему ПКне хватает памяти. Надеюсь, это поможет.