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

Предыстория и постановка проблемы для фиктивной ситуации

Меня пригласили представить себя в качестве специалиста по данным студентам центра карьеры средней школы. Моя цель — привлечь больше студентов к выбору своей карьеры в области науки о данных. Чтобы достичь своей цели, я построил модель, чтобы показать, как обработка естественного языка (NLP) помогает мне классифицировать сообщения из двух разных субреддитов на веб-сайте Reddit. Я выбрал кошек и собак в качестве своих сабреддитов, чтобы продемонстрировать, насколько интересной может быть работа исследователя данных.

Процесс

  • Сбор данных:
    извлечено около 9700 сообщений из разделов «Кошки» и «Собаки» Reddit.
  • Очистка данных:
    (1) Установите список «стоп-слов», избегайте общих слов, таких как «есть», «есть», «для» и т. д. появляется в результате.
    (2) Используйте Count Vectorizer для расчета частоты появления каждого слова в заголовке. Почему выбрали заголовок вместо содержания? Это потому, что большинство людей в сабреддите «Кошки» размещают изображения вместо текста в качестве контента, а НЛП имеет дело с текстовыми сообщениями.
  • Исследовательский анализ данных.
    Воспользуйтесь столбчатыми диаграммами, чтобы увидеть 10 наиболее часто встречающихся слов.
  • Модель построения:
    я использую векторизатор счета и векторизатор TF-IDF, чтобы очистить и разделить каждое слово в заголовке. Затем векторизатор подсчитает частоту каждого слова, например, слово «породы» встречается 764 раза в заголовке сабреддита «Собаки». После этого я использовал классификатор дерева решений, классификатор случайного леса, логистическую регрессию и мультиномиальный наивный байесовский классификатор в качестве классификаторов для построения моделей, которые предсказывали, откуда были посты из субреддита «Кошки» или «Собаки».
  • Оценка модели:
    определите функцию для запуска матрицы путаницы и демонстрации точности, чувствительности, специфичности и воспроизводимости каждой модели.

Исследовательский анализ данных

Собака

Следующие слова входят в топ-10 наиболее часто встречающихся слов в сабреддите «Собаки». Интересно, но не удивительно видеть людей, заботящихся о породах, возрасте и потребностях собак.

Кроме того, я хочу знать 10 наиболее часто встречающихся двух слов. Таким образом, из полученных результатов я понял, что у собак есть боязнь разлуки, а ежедневный лай является проблемой для некоторых людей. Людей, конечно, тоже волнует, как размножаются и стареют их собаки, чтобы у них были более точные советы. Одним из результатов, который привлек мое внимание, была немецкая овчарка. Я не знал, что он так популярен. Я думал, что люди могут предпочесть золотистого ретривера, пуделя или таксу.

Кот

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

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

Оценка модели

Я комбинирую 2 векторизатора с 4 моделью классификатора. В таблице ниже показана половина комбинаций. Лучше всего использовать Count Vectorizer с классификацией случайного леса.

Заключение

Существует множество векторизаторов и классификаторов, которые мы можем использовать для комбинирования и использования в качестве модели. Я использую векторизатор подсчета и векторизатор TF-IDF в качестве своего векторизатора для очистки и разделения строки на количество слов. Используйте классификатор дерева решений, классификатор случайного леса, логистическую регрессию и мультиномиальный наивный байесовский алгоритм в качестве моих классификаторов. Я также объединил GridsearchCV, чтобы получить наилучшие параметры для оптимизации каждой модели. Все модели работали с предсказанной точностью выше 98% правильно. Все модели с DecisionTreeClassifier, RandomForestClassifier и Logistic Regression были предсказаны на 99,93% правильно, и все они имеют одинаковую оценку в оценке поезда, оценке теста, матрице точности и путаницы. Поэтому я не мог определить, какая модель была лучшей.

Используя Nature Language Process, я успешно предсказываю источник этих сообщений. Мы также можем знать различное мышление людей, у которых есть кошки и собаки. Самая обсуждаемая тема в сабреддите «Кошки» и «Собаки» — возраст их питомцев. Судя по постам «Собаки», можно сказать, что самой популярной породой была немецкая овчарка. С другой стороны, люди-кошки считаются более чувствительными, потому что они говорили о «умерших» и «прощались» больше, чем люди, у которых есть собаки.

Это конец блога, и я надеюсь, что он вам нравится. Если можно, расскажите, как вы относитесь к своим питомцам и какие у вас питомцы.