
Сегодня мы более подробно обсудим машинное обучение с NoSQL. Первый вопрос, который возникает,
- Зачем это делать?
- Почему мы не можем получить данные из HADOOP, HDFS ИЛИ LARGE CSV?
- Зачем использовать MongoDB или любую другую базу данных NoSQL?
Давайте начнем… В этой статье мы сосредоточимся только на MongoDB как на базе данных NoSQL.
В этой статье мы используем KNN в качестве алгоритма машинного обучения. Также предоставляется код github, который содержит Proof Of Concept (POC). Алгоритм KNN (k-ближайших соседей) — это несложный, простой в реализации алгоритм контролируемого машинного обучения, который можно использовать для решения задач как классификации, так и регрессии.
Алгоритм машинного обучения с учителем — это алгоритм, который опирается на правильно размеченные входные данные для изучения функции, которая выдает соответствующий результат при получении новых неразмеченных данных.
Давайте разберемся, что такое контролируемое обучение, на примере:
Представьте себе ученика в виде компьютера, его учителя в роли супервайзера, и мы хотим, чтобы ученик (компьютер) узнал, как «выглядит собака». Учитель покажет учащемуся несколько разных картинок, некоторые из которых изображают собак, а остальные могут быть изображениями чего угодно, например, кошки, свиньи, коровы. Когда ученик видит собаку, учитель кричит: «Это собака!» Когда это не собака, воспитатель кричит: «Это не собака!» Проделав это несколько раз с учеником, учитель показывает ему случайную картинку и спрашивает: «Это собака?» и ученик правильно скажет «Это собака!» или «Это не собака!» в зависимости от того, что ученик узнал из предыдущих картинок.
То есть контролируемое машинное обучение.
Теперь мы узнаем одну важную вещь, самую важную для данных машинного обучения. Без качественных данных, какой бы точный алгоритм мы ни использовали, результат не будет хорошим.
Теперь возникает вопрос, когда у нас есть большие наборы данных, что тогда?
Люди сказали бы, используйте Hadoop или любую другую распределенную систему. Люди забывают, когда мы работаем с Hadoop или любой распределенной системой, кривая обучения очень крутая, и это дорогая технология с точки зрения таланта и инвестиций, что приводит нас к проблеме нехватки средств. Итак, другое решение, которое мы рассмотрим, — это использование больших CSV-файлов.
Хорошее решение, но давайте подумаем практически, в современном мире многие из нас могут использовать компьютеры с эффективным использованием памяти. Если вы являетесь стартапом и руководствуетесь только идеями и инновациями, очень трудно работать с машинами, которые начнут потреблять память, когда им придется иметь дело с файлом csv размером более 100 МБ.
Теперь, чтобы обойти эти проблемы, мы предлагаем NoSQL (MongoDB). В MongoDB мы можем обрабатывать большие наборы данных без перегрузки памяти, как в больших файлах CSV, а кривая обучения постепенная по сравнению с Hadoop.
AARK Technology Hub как компания всегда гарантирует предоставление инновационных и профессиональных решений.
Это доказательство концепции AARK Technology Hub находится в свободном доступе на нашем GITHUB, и вы можете легко загрузить и использовать его где угодно.