Использование «KNN» и «Визуализации» для классификации.

Думаю. Накручивание. Реагируя.

Разве это не знакомый цикл? Я считаю, что для большинства из нас «определенно ДА». Как и большинство других вещей, этот цикл - палка о двух концах: в некоторых сценариях результат может быть положительным и полезным, но в других он может быть разрушительным и даже обернуться против вас. Последнее - то, чего мы все хотим избежать. Я хотел иметь четкое представление о разделении эмоций, и это привело меня к созданию программы машинного обучения (ML).

Карантин дал мне много возможностей исследовать себя, и проверка своих мыслей - одна из них. Я не глубокий мыслитель, но время от времени я вижу себя запутанным в мыслях, и всякий раз, когда это происходит, мне нужен способ направить их. Именно это я и сделал. Целью было создать модель машинного обучения, которая могла бы анализировать мой образ мышления. Я сделал это с помощью алгоритма KNN, который помог мне предсказать эмоции, которых мне следует избегать, и методов визуализации, которые позволили мне графически проецировать свои чувства, что значительно упростило задачу. чтобы я сразу понял всю картину. Итак, вот как я это сделал:

1. Чтобы начать работу, я создал набор данных с разными мыслями.
2. Используется алгоритм KNN.
3. Использованные приемы визуализации.
4. В конце концов, я научился разделять свои мыслительные процессы.

(если вам не хочется идти по шагам, сразу переходите к результатам.)

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

Создание набора данных

Набор данных создан на основе девяти различных мыслей (характеристик): обескураживающего, грустного, бесполезного, плачущего, тревожного, сбивающего с толку, счастливого, воодушевляющего и решительного. Я разделил все эти мысли на три категории (ярлыки): положительные, отрицательные и нейтральные. Кроме того, я оценил каждую из этих девяти мыслей или особенностей по шкале от 1 до 10 на основе ярлыков. Таким образом я создал 150 кейсов. Ниже показано, как выглядят первые несколько строк набора данных:

Использование алгоритма KNN

Прежде чем мы продолжим, было бы полезно сначала узнать о некоторых основных терминологиях машинного обучения для обучения с учителем:

  • Чтобы обучить, проверить и оценить модель, мы используем набор кейсов.
  • Эти случаи включают функции, связанные с моделью, и значение метки.
  • Характеристики - это значения, которые используются в качестве основы для обучения любого алгоритма.
  • По окончании обучающей части алгоритм сможет предсказать правильные значения меток для тестовых функций.
  • Цель состоит в том, чтобы правильно предсказать этикетку. Чтобы это проверить, точность обученного алгоритма должна быть высокой. В противном случае необходимо минимизировать ошибку между прогнозируемым значением метки и исходной меткой.

Обладая этими базовыми знаниями, давайте разберемся с алгоритмом KNN (K-ближайших соседей). KNN находится под наблюдением ML. «K» - это значение количества точек, ближайших к конкретной точке, которую необходимо классифицировать (например, K = 1,2,3 и т. Д.). Посмотрите на эту диаграмму ниже, чтобы лучше понять.

В первом случае KNN классифицирует случай «?» Как зеленую звезду, поскольку он является ближайшим к нему. Точно так же во втором случае KNN классифицирует случай «?» Как желтый треугольник, так как эти треугольники являются наиболее близкими вариантами большинства. Для вычисления этой близости между новым случаем и известными случаями может использоваться любая функция расстояния, например Евклидова, Минковского и др. Поэтому его называют ближайшими соседями. Таким образом, алгоритм KNN классифицирует новый случай.

В этом конкретном модальном окне KNN выполняет задачу правильно предсказывать класс различных мыслей. После выполнения всех шагов предварительной обработки данных я применил алгоритм KNN к данным, а затем вычислил точность, которая составила 98,6%. Ниже приведен фрагмент кода, который показывает то же самое:

Использование методов визуализации

Я использовал визуализацию данных для классификации, чтобы ее было легче понять с помощью графиков, чтобы создать решение, которое предсказывает мысли, которых мне следует избегать в будущем, чтобы иметь позитивный настрой. Этот метод поможет мне разделить категории ярлыков (положительные, отрицательные и нейтральные).
Для этого я использовал «коробчатые диаграммы».

Полученные результаты :

Графики, созданные KNN, показывают следующее:

- Обескураживает. Алгоритм классифицировал эту функцию как отрицательную, что является правильным и очевидным. Но примечательно то, что негативные и нейтральные мысли частично пересекаются. Кроме того, разница между положительным и отрицательным результатом очень мала. Это означает тот факт, что разочаровывающие мысли в некоторой степени могут мотивировать себя к положительному результату. Но учитывая все обстоятельства, он классифицируется под негативным лейблом.

Неясно: этот результат меня позабавил. Алгоритм пометил это как положительное. До этого анализа я избегал сбивающих с толку идей. Может быть, тот факт, что эти мысли возникают, должен иметь положительный результат. Возможно, они дают нам время оценить как положительную, так и отрицательную сторону ситуации, чтобы быть проницательными.

-Грустно: несомненно, эта мысль обязательно приведет к отрицательному результату.

- Бесполезно: бывают случаи, когда у людей в голове вертятся случайные мысли. У них нет рифмы или причины для них. Для меня этот алгоритм классифицировал эти мысли как нейтральные.

-Плач. Подобно грустному признаку, эта особенность тоже классифицируется как негативная. Хотя я думал, что это может иметь нейтральный эффект, потому что плач помогает уравновесить эмоции. Но если мы будем рассматривать только нейтральную и положительную метку, то, исходя из графика, она, скорее всего, будет классифицирована как положительная, чем нейтральная. В целом это вызывает плохое настроение.

-Тык: согласно прогнозам модели, это основная характеристика, которая является причиной плохого настроения. Следовательно, крайне отрицательно.

-Улучшающий: KNN предсказал, что эта функция будет полезной для меня. Однако график показывает небольшое совпадение между нейтральным и негативным настроением. Кроме того, если рассматривать только эти два ярлыка, то, как ни удивительно, отрицательный ярлык оказывает более значительное влияние, чем нейтральный.

-Determined: у этой функции есть захватывающий сюжет. Результаты практически не отличаются между собой. Трудно сразу интерпретировать это. Но это легко понять, используя коробчатую диаграмму.

Эти коробчатые диаграммы обеспечивают подробное графическое представление, и их также легко читать, поскольку они дают четкое различие трех разных настроений или ярлыков на основе функций или мыслей. Более или менее, он показывает те же результаты, что и графики KNN. Однако он дает лучшее объяснение:

-Определено: хотя может показаться, что эта функция определенно будет классифицирована как положительная, но на основе данных график KNN показывает сходство между всеми тремя ярлыками, что в некотором смысле может вводить в заблуждение. Итак, если вы посмотрите на его коробчатую диаграмму, вы заметите, что положительный результат немного выше, чем у двух других. Следовательно, эта функция классифицируется как положительный ярлык.

- Счастливо: бесспорно, эта функция классифицируется как положительный. Однако его квартиль для нейтрального намного больше, чем для положительного, и если мы будем рассматривать только нейтральный и отрицательный, то нейтральный будет выше, чем два.

Заключение

Это был захватывающий проект. Сначала я думал, что просто получу простой результат классификации, который будет довольно очевиден, но после завершения этого проекта я понял, что в этой классификации есть еще кое-что. Он научил меня тому, что программа машинного обучения не только способна предсказывать конкретные задачи, которые может легко выполнить человек, но также может проводить углубленный анализ набора данных. Возможно, это просто нулевой шаг к воспроизведению интеллекта, но все же не так ли интересно. Возможно, поэтому его называют «машинным обучением».