Предлагаю Вам разбавить все серьезные, обсуждаемые здесь темы, небольшой отдушиной для многих из нас!
Собаки – настоящие маленькие спутники жизни каждого хозяина, поэтому многих обрадовала бы возможность подобрать питомца, который будет вписываться в привычный образ жизни, и, например, сможет смирно сидеть на коленях, пока Вы пишете код, или безостановочно носиться по дому, требуя все Ваше внимание и любовь.
Все это станет реальным, благодаря машинному обучению! :) Теперь Вы можете почти так же просто определить тип личности своего питомца, как и свой собственный (излюбленный MBTI тест – такая же разработка ML)
В данной статье описывается успешная попытка применить методы искусственного интеллекта и ML для классификации и прогнозирования личностных качеств собак с использованием поведенческих данных, полученных из базы данных C-BARQ. Я в подробностях расскажу об основных теоретических и практических аспектах проделанной работы!
Приятного прочтения! :)
Введение
В этом исследовании методы машинного обучения были применены к классификации типов личности собак с использованием поведенческих данных, полученных в рамках проекта C-BARQ.
C-BARQ (Canine Behavioral Assessment and Research Questionnaire) — это инструмент для стандартизированной оценки темперамента и поведения собак. Он был разработан исследователями из Центра взаимодействия животных и общества Университета Пенсильвании и является единственным в своем роде инструментом поведенческой оценки, который был тщательно проверен на надежность и валидность на больших выборках собак разных пород.
Опросник содержит 100 вопросов. Вопросы сгруппированы в 7 разделов: 1) дрессируемость; 2) агрессия; 3) страх и тревожность; 4) поведение собаки, когда она остаëтся одна; 5) возбудимость; 6) привязанность и поиск внимания; 7) разное.
Поскольку набор данных не был размечен, в первом этапе был выбран метод обучения без учителя, и для кластеризации и маркировки данных был использован алгоритм K-Means.
K-Means – это алгоритм машинного обучения, который помогает разделить набор данных на кластеры на основе их признаков и сходства.
Из анализа кластеризации K-Means по данным о поведении выявилось пять отдельных категорий собак, соответствующих пяти различным типам личности:
«Возбудимый/Гиперактивный»;
«Тревожный/Боязливый»;
«Недружелюбный/Хищный»;
«Реактивный/Напористый»;
«Спокойный/Покладистый».
Четыре модели машинного обучения, включая Метод Опорных Векторов (SVM), Метод k-ближайших соседей (KNN), Наивный Байесовский классификатор и Дерево Принятия Решений были применены для прогнозирования черт характера собак на основе имеющихся данных.
Метод Опорных Векторов (SVM, support vector machine) работает путем построения гиперплоскости в пространстве данных, наилучшим образом разделяющей различные классы данных. SVM стремится найти оптимальную разделяющую гиперплоскость, максимизируя расстояние от этой гиперплоскости до ближайших обучающих точек, которые называются опорными векторами.
Метод k-ближайших соседей (KNN, k-nearest neighbors algorithm) – это простой алгоритм классификации, который основан на том, что объекты одного класса склонны скапливаться в пространстве признаков ⇒ KNN определяет класс нового объекта на основе классов его ближайших соседей (k ближайших точек данных), если большинство из ближайших соседей принадлежит к определенному классу, то новый объект также относится к этому классу.
Наивный Байесовский классификатор использует статистические методы для прогнозирования вероятности принадлежности объекта к определенному классу на основе его признаков.
Дерево принятия решений – это графическое представление алгоритма машинного обучения, используемого для принятия решений в условиях неопределенности. Оно представляет собой древовидную структуру, где каждый узел представляет собой признак или атрибут, каждое ребро - возможное значение этого признака, а листовые узлы - ответы или прогнозы.
Производительность моделей была оценена с использованием метода пятикратной перекрестной проверки, и результаты показали, что модель Дерева принятия решений показала лучшую производительность с высокой точностью в 99%.
Теперь приступим к практической части!
Методология
Набор данных C-BARQ не является размеченным, поскольку в нем отсутствует целевая переменная. Следовательно, для выполнения кластерного анализа был использован алгоритм машинного обучения без учителя, применяющий только входные векторы без ссылки на известные или размеченные результаты. Каждый кластер будет относиться к группе данных (собак), объединенных вместе из-за определенных сходств.
Предварительная обработка и очистка данных:
Перед применением моделей машинного обучения была проведена очистка данных для предотвращения значительных ошибок и неправильной кластеризации. Все образцы с отсутствующими значениями для одного или нескольких атрибутов были удалены из набора данных. По завершении процесса очистки данных в наборе осталось 7807 полных образцов.
Кодирование данных:
Из 157 атрибутов 133 были определены как числовые атрибуты, так как они содержали значения с целочисленным типом. Другие 24 атрибута были определены как нечисловые, поскольку они содержали значения со строковым типом. В результате процесс кодирования данных должен был быть проведен для преобразования этих значений в числовые, которые можно использовать для обучения моделей ML. Для выполнения процесса кодирования использовалась функция 'LabelEncoder' из библиотеки Scikit-Learn в Python.
Отбор признаков для кластеризации:
Главной целью текущего исследования являлось создание набора характеристик личности для собак на основе их поведенческих шаблонов, а также разработка инструмента прогнозирования личности с использованием искусственного интеллекта. Были выбраны только 100 оцененных поведенческих элементов из набора данных C-BARQ для кластеризации.
Кластерный подход:
Поскольку набор данных не был размеченным, в данном исследовании был использован подход кластеризации. В нем был применен алгоритм K-Means. Этот алгоритм группирует неразмеченный набор данных в разные кластеры. Он начинает с первой группы случайно выбранных центроидов, которые используются в качестве отправной точки для каждого кластера (некоторое среднее значение), и затем выполняет итеративные расчеты для оптимизации положений центроидов.
Основная цель – определить k центроидов, по одному для каждого кластера. Расположение этих центроидов может быть сложным, потому что разные местоположения дадут разные результаты. Поэтому центроиды должны быть размещены как можно дальше друг от друга.
В следующем шаге алгоритм берет каждую точку данных и ассоциирует ее с ближайшим центроидом. Когда не остается ни одной оставшейся точки, этот шаг завершается, и определяется ранняя группа.
После этого необходимо повторно вычислить k новых центроидов, полученных на предыдущем шаге. После принятия решения относительно этих k новых центроидов, нужно снова выполнить ассоциацию с данными между теми же точками и ближайшим новым центроидом. Этот процесс будет повторяться в цикле, пока изменения не прекратятся (центроиды перестанут двигаться).
Наконец, алгоритм нацеливается на минимизацию целевой функции, в данном случае квадратичной функции ошибки.
Допустим, есть набор наблюдений (x1,x2x3...xm ). В результате целевая функция будет:
На самом деле, алгоритм пытается математически решить задачу минимизации, состоящую из двух частей. Сначала алгоритм минимизирует C относительно ik с Ck фиксированным значением. Затем он минимизирует C относительно Ck с ik фиксированным значением. Это показано в следующих уравнениях:
Первый шаг:
Второй шаг:
Для того чтобы дойти до момента, когда центроиды перестают изменяться, алгоритм должен обратить внимание на выбор значения K. Однако определение начального значения K представляет определенные трудности. Для решения этой проблемы производительность алгоритма должна быть рассчитана для различных чисел центроидов. Расстояние между точкой данных и центроидом каждого кластера может быть рассчитано до тех пор, пока не произойдет сходимость. Затем все рассчитанные расстояния должны быть сложены как показатель производительности.
Размер целевой функции будет уменьшаться при увеличении числа центроидов кластеров. Метод "Локтя" может быть использован для выбора наилучшего значения K в этом алгоритме.
Метод “Локтя”:
Метод "Локтя" - это визуальный подход к выбору оптимального количества кластеров путем подгонки модели с диапазоном значений для K. Создается линейная диаграмма, напоминающая руку, и "локоть", который является как точкой перегиба на кривой, так и хорошим признаком того, что базовая модель лучше всего подходит для этой точки.
В этом исследовании использовался KElbowVisualizer из библиотеки Python yellowbrick для подгонки модели K-Means для диапазона значений K от 2 до 30 на наборе данных.
Процесс начинается с K = 2 и увеличивается на 1 на каждом шаге. Параметр метрики оценки был установлен на искажение, которое вычисляет сумму квадратов расстояний от каждой точки до ее назначенного центра. Среднее расстояние резко падает, а затем достигает плато при дальнейшем увеличении значения K.
На рисунке показано, что при подгонке модели с 5 кластерами на графике можно увидеть линию, обозначающую "локоть", который представляет собой оптимальное количество кластеров. Другими словами, имеется крутое снижение среднего расстояния, когда K находится в диапазоне от 1 до 5. После K = 5 наклон относительно плавный. В результате было выбрано значение K равное 5.
Классификаторы машинного обучения для предсказания типа личности собаки:
Для прогнозирования типов личности собак были реализованы четыре различных типа машинного обучения, описанные во введении.
Функция train_test_split() из библиотеки sklearn использовалась для разделения нового размеченного набора данных на наборы для обучения (70%) и тестирования (30%).
Была выполнена настройка гиперпараметров для оптимизации производительности реализованных классификаторов машинного обучения. В таблице ниже показаны параметры для каждого классификатора и установленные для них значения.
Classifier | Parameters | Value |
SVM | C | 1 |
kernel | rbf | |
degree | 3 | |
gamma | scale | |
shrinking | TRUE | |
tol | 0.001 | |
cache_size | 200 | |
max_iter | 1 | |
decision_function_shape | ovr | |
random_state | 42 | |
KNN | n_neighbors | 5 |
weights | uniform | |
algorithm | auto | |
leaf_size | 30 | |
p | 2 | |
metric | minkowski | |
Decision Tree | criterion | ‘gini’ |
splitter | ‘best’ | |
min_samples_split | 2 | |
min_samples_leaf | 1 | |
Naïve Bayes | var_smoothing | 1.00E−09 |
priors | None |
Модели были оценены с использованием метода пятикратной перекрестной проверки, и их производительность была сравнена для определения наиболее эффективного классификатора.
Анализ важности признаков:
Этот анализ позволил определить значимость каждой поведенческой переменной C-BARQ в различных кластерах. Были выделены 20 ключевых поведенческих атрибутов, определяющих каждый кластер, и использованы для создания описательной метки для каждого типа личности (можете ознакомиться с ними в таблицах ниже).
Порог был установлен на уровне 20, так как диаграммы "важности" обычно имеют более плавный наклон после первых 20 наиболее значимых признаков, в то время как оставшиеся признаки не вносят существенный вклад в модель (см. диаграммы ниже).
Для выявления направления поведенческих эффектов в каждом кластере были проанализированы средние значения 20 наиболее важных переменных C-BARQ и сравнены с средними значениями этих переменных в других 4 кластерах. Эти сравнения позволили определить соответствующие поведенческие характеристики для каждого типа личности в группировке.
Кластер 0: “Возбудимый/Гиперактивный”:
Пункт C-BARQ | Описание пункта | Важность признака | Среднее для кластера 0 | Среднее для других кластеров |
mis90 | Гиперактивность, беспокойство, трудности с успокоением | 0.042943 | 1.30 + | 0.58 |
sep61 | Потеря аппетита при одиночестве | 0.034686 | 0.42 + | 0.32 |
att72 | Ревность, когда владелец уделяет внимание другим людям | 0.031540 | 1.41 + | 0.68 |
exc66 | Возбужденность при поездках на машине | 0.030422 | 2.47 + | 1.6 |
mis91 | Игривость, щенячье поведение, буйство | 0.027968 | 2.68 + | 1.69 |
exc64 | Возбужденность при звонке в дверь | 0.026235 | 2.68 + | 2.01 |
mis89 | Дефекация при одиночестве | 0.025326 | 0.28 + | 0.21 |
att71 | Толкание, лапание владельца в поисках внимания | 0.024457 | 2.66 + | 1.88 |
exc62 | Возбужденность при возвращении владельца домой | 0.024042 | 2.93 + | 2.1 |
mis84 | Нервозность или страх на лестнице | 0.023624 | 0.26− | 0.3 |
sep56 | Беспокойство, волнение при одиночестве | 0.022145 | 1.12 + | 0.63 |
exc65 | Возбужденность перед прогулками | 0.022010 | 2.72 + | 1.84 |
agg35 | Агрессия при попытке другой (знакомой) собаки подойти, когда играет/жует любимую игрушку, кость, предмет и т. д. | 0.019635 | 0.68− | 0.7 |
fear39 | Страх при визите незнакомых людей в ваш дом | 0.019525 | 0.25− | 0.65 |
att70 | Сидит близко к владельцу или в постоянном контакте с ним | 0.019257 | 3.17 + | 2.54 |
fear38 | Страх в ответ на внезапные или громкие звуки (например, пылесос, хлопок машины, дорожные дрели, падение предметов и т. д.) | 0.016524 | 1.14− | 1.18 |
fear36 | Страх при прямом приближении незнакомого взрослого вдали от дома | 0.016307 | 0.32− | 0.79 |
mis81 | "Взбирается" на предметы, людей и т. д. | 0.015368 | 0.49 + | 0.27 |
exc63 | Возбужденность при игре с членами семьи | 0.014788 | 2.65 + | 1.88 |
sep57 | Скуление при одиночестве | 0.014559 | 1.54 + | 0.84 |
Кластер 1: “Тревожный/Боязливый”:
Пункт C-BARQ | Описание пункта | Важность признака | Среднее для кластера 1 | Среднее для других кластеров |
agg35 | Агрессия при приближении другой (знакомой) собаки во время игры/жевания любимой игрушки, кости, предмета и т. д. | 0.086189 | 0.60− | 0.71 |
fear39 | Страх при визите незнакомых людей в ваш дом | 0.072337 | 1.82 + | 0.39 |
fear38 | Страх в ответ на внезапные или громкие звуки (например, пылесос, дорожные дрели, падение предметов и т. д.) | 0.059492 | 2.30 + | 1.02 |
fear36 | Страх при прямом приближении незнакомого взрослого вдали от дома | 0.049489 | 2.17 + | 0.48 |
fear46 | Страх при прямом приближении незнакомой собаки меньшего размера | 0.033463 | 0.85 + | 0.44 |
fear37 | Страх при прямом приближении незнакомого ребенка вдали от дома | 0.030953 | 1.98 + | 0.46 |
fear42 | Страх в ответ на странные или незнакомые объекты на тротуаре или рядом с ним (например, пластиковые мусорные пакеты, листья, мусор, развевающиеся флаги и т. д.) | 0.029978 | 1.23 + | 0.43 |
fear40 | Страх, когда незнакомый человек пытается погладить или коснуться собаки | 0.017972 | 2.23 + | 0.48 |
fear47 | Страх при первом столкновении с незнакомыми ситуациями (например, первая поездка на машине, первый раз в лифте, первый визит к ветеринару и т. д.) | 0.017718 | 2.01 + | 0.76 |
agg28 | Агрессия к незнакомым людям, приходящим в ваш дом | 0.017328 | 0.82 + | 0.47 |
fear41 | Страх в плотном трафике | 0.017177 | 1.25 + | 0.41 |
agg22 | Агрессия, когда мимо вашего дома пробегают, проезжают на велосипеде, роликах или скейте, в то время как ваша собака находится снаружи или во дворе | 0.015789 | 0.85 + | 0.75 |
agg26 | Агрессия к незнакомым собакам, приходящим в ваш дом | 0.013937 | 0.72− | 0.83 |
fear43 | Страх при осмотре/лечении ветеринаром | 0.013842 | 2.07 + | 0.86 |
att73 | "Ревность", когда владелец уделяет внимание другой собаке или другому животному | 0.013215 | 1.43 + | 1.41 |
agg23 | Агрессия при прямом приближении незнакомого кобеля во время прогулки/упражнений на поводке | 0.013151 | 0.75− | 0.89 |
mis75 | Преследует или преследовал бы птиц, если бы была такая возможность | 0.012632 | 1.73− | 1.98 |
agg25 | Агрессия при прямом взгляде члена семьи | 0.010707 | 0.06− | 0.05 |
mis90 | Гиперактивность, беспокойство, трудности с успокоением | 0.010570 | 0.70− | 0.74 |
exc66 | Возбужденность непосредственно перед поездкой на машине | 0.010514 | 1.81 + | 1.79 |
Кластер 2: “Недружелюбный/хищный”:
Пункт C-BARQ | Описание пункта | Важность признака | Среднее для кластера 2 | Среднее для других кластеров |
agg28 | Агрессия к незнакомым людям, приходящим в ваш дом | 0.046446 | 0.44− | 0.53 |
agg26 | Агрессия к незнакомым собакам, приходящим в ваш дом | 0.040469 | 1.33 + | 0.69 |
att73 | Возбуждение (скуление, прыжки, попытки вмешаться), когда вы (или другие) проявляете нежность к другой собаке или животному | 0.037789 | 1.07− | 1.5 |
agg22 | Агрессия, когда мимо вашего дома пробегают, проезжают на велосипеде, роликах или скейте, в то время как ваша собака находится снаружи или во дворе | 0.029619 | 0.89 + | 0.73 |
att68 | Проявление сильной привязанности к одному конкретному члену семьи | 0.029430 | 2.31− | 2.77 |
agg25 | Агрессия при прямом взгляде члена семьи | 0.028940 | 0.03− | 0.06 |
mis75 | Преследует или преследовал бы птиц, если бы была такая возможность | 0.027460 | 2.46 + | 1.82 |
agg23 | Агрессия при прямом подходе незнакомого кобеля во время прогулки/упражнений на поводке | 0.026174 | 1.42 + | 0.73 |
sep61 | Потеря аппетита при одиночестве | 0.019876 | 0.22− | 0.38 |
att69 | Склонность следовать за вами (или другими членами семьи) по дому, из комнаты в комнату | 0.019444 | 2.13− | 2.84 |
mis89 | Мочеиспускание при одиночестве ночью или днем | 0.019294 | 0.18− | 0.23 |
sep56 | Проявление беспокойства/возбуждения/ходьбы туда-сюда при одиночестве | 0.018138 | 0.38− | 0.83 |
mis74 | Преследует или преследовал бы кошек, если бы была такая возможность | 0.017561 | 2.95 + | 1.97 |
att72 | Возбуждение (скуление, прыжки, попытки вмешаться), когда вы (или другие) проявляете нежность к другому человеку | 0.016981 | 0.47− | 0.93 |
att70 | Склонность сидеть рядом или в контакте с вами (или другими), когда вы сидите | 0.016138 | 2.22− | 2.79 |
mis90 | Гиперактивность, беспокойство, трудности с успокоением | 0.015776 | 0.41− | 0.82 |
fear39 | Страх при визите незнакомых людей в ваш дом | 0.015195 | 0.28− | 0.64 |
agg35 | Агрессия при подходе другой (знакомой) собаки во время игры/жевания любимой игрушки, кости, предмета и т. д. | 0.014958 | 0.95 + | 0.63 |
att71 | Склонность толкать, обнюхивать или лапать вас (или других) в поисках внимания, когда вы сидите | 0.014278 | 1.67− | 2.15 |
exc62 | Возбудимость, когда вы или другие члены семьи возвращаются домой после кратковременного отсутствия | 0.013771 | 1.95− | 2.36 |
Кластер 3: “Реактивный/напористый”:
Пункт C-BARQ | Описание пункта | Важность признака | Среднее для кластера 3 | Среднее для других кластеров |
agg9 | Агрессия при устном замечании или порицании (наказании, крике и т. д.) вами или членом семьи | 0.053578 | 0.54 + | 0.09 |
agg20 | Агрессия, когда незнакомцы проходят мимо вашего дома, в то время как ваша собака находится снаружи или во дворе | 0.050147 | 2.11 + | 0.75 |
agg15 | Агрессия, когда незнакомый человек подходит к вам или другому члену вашей семьи дома | 0.036353 | 1.81 + | 0.39 |
agg27 | Агрессия к кошкам, белкам или другим мелким животным, находящимся в вашем дворе | 0.035104 | 2.29 + | 1.03 |
agg25 | Агрессия при прямом взгляде члена семьи | 0.030881 | 0.24 + | 0.03 |
agg11 | Агрессия при прямом приближении незнакомого ребенка во время прогулки/упражнений на поводке | 0.029025 | 1.42 + | 0.20 |
agg22 | Агрессия, когда мимо вашего дома пробегают, проезжают на велосипеде, роликах или скейте, в то время как ваша собака находится снаружи или во дворе | 0.028445 | 2.04 + | 0.60 |
agg19 | Агрессия, когда его/ее еду забирает член семьи | 0.027754 | 0.46 + | 0.08 |
agg17 | Агрессия при прямом приближении члена семьи, когда собака (он/она) ест | 0.027611 | 0.38 + | 0.07 |
agg10 | Агрессия при прямом приближении незнакомого взрослого во время прогулки/упражнений на поводке | 0.026578 | 1.64 + | 0.26 |
agg28 | Агрессия к незнакомым людям, приходящим в ваш дом | 0.026567 | 1.74 + | 0.36 |
agg14 | Агрессия при купании или уходе за собой членом семьи | 0.026246 | 0.44 + | 0.08 |
agg21 | Агрессия, когда незнакомый человек пытается погладить или коснуться собаки | 0.025054 | 1.64 + | 0.21 |
exc63 | Возбудимость при игре с вами или другими членами семьи | 0.022577 | 2.60 + | 1.97 |
agg23 | Агрессия при прямом приближении незнакомого кобеля во время прогулки/упражнений на поводке | 0.020306 | 2.39 + | 0.69 |
att71 | Склонность толкать, обнюхивать или лапать вас (или других) в поисках внимания, когда вы сидите | 0.017842 | 2.68 + | 1.97 |
fear51 | Страх при вытирании его/ее лап членом семьи | 0.017742 | 0.78 + | 0.26 |
mis96 | Преследование/следование за тенями, световыми пятнами и т. п. | 0.017425 | 0.72 + | 0.33 |
fear44 | Страх во время гроз, фейерверков или подобных событий | 0.017130 | 1.56 + | 1.00 |
fear38 | Страх в ответ на внезапные или громкие звуки (например, пылесос, выстрел из машины, дорожные дрели, падение предметов и т. д.) | 0.015425 | 2.02 + | 1.06 |
Кластер 4: “Спокойный/Покладистый”:
Пункт C−BARQ | Описание пункта | Важность признака | Среднее для кластера 4 | Среднее для других кластеров |
att73 | Возбуждение (скуление, прыжки, попытки вмешаться), когда вы проявляете нежность к другой собаке или животному | 0.046477 | 0.26− | 1.72 |
agg28 | Агрессия к незнакомым людям, приходящим в ваш дом | 0.045940 | 0.17− | 0.69 |
agg26 | Агрессия к незнакомым собакам, приходящим в ваш дом | 0.045085 | 0.27− | 1.11 |
exc63 | Возбудимость при игре с вами или другими членами семьи | 0.044342 | 1.68− | 2.23 |
mis75 | Преследование или потенциальное преследование птиц, если была бы такая возможность | 0.036373 | 1.15− | 2.38 |
tra6 | Быстрое обучение новым трюкам или заданиям | 0.033636 | 3.10 + | 2.74 |
mis84 | Нервозность или страх на лестнице | 0.033216 | 0.16− | 0.35 |
agg22 | Агрессия, когда мимо вашего дома пробегают, проезжают на велосипеде, роликах или скейте, в то время как ваша собака находится снаружи или во дворе | 0.028883 | 0.30− | 1.01 |
mis74 | Преследование или потенциальное преследование кошек, если была бы такая возможность | 0.028717 | 1.34− | 2.62 |
mis76 | Преследование или потенциальное преследование белок, кроликов и других мелких животных, если была бы такая возможность | 0.027501 | 1.83− | 3.06 |
exc66 | Возбудимость непосредственно перед поездкой на автомобиле | 0.024193 | 1.20− | 2.11 |
agg25 | Агрессия при прямом взгляде члена семьи | 0.023929 | 0.01− | 0.08 |
exc64 | Возбудимость при звонке в дверь | 0.023186 | 1.39− | 2.56 |
agg23 | Агрессия при прямом приближении незнакомого кобеля во время прогулки/упражнений на поводке | 0.021218 | 0.27− | 1.2 |
mis96 | Преследование/следование за тенями, световыми пятнами и т. п. | 0.019714 | 0.22− | 0.46 |
fear46 | Страх при прямом приближении незнакомой собаки меньшего размера | 0.018595 | 0.16− | 0.66 |
agg19 | Агрессия, когда его/ее еду забирает член семьи | 0.018146 | 0.04− | 0.17 |
agg35 | Агрессия при приближении другой (знакомой) собаки во время игры/жевания любимой игрушки, кости, предмета и т. д. | 0.017738 | 0.33− | 0.89 |
exc65 | Возбудимость непосредственно перед прогулкой | 0.017680 | 1.42− | 2.36 |
fear37 | Страх при прямом приближении незнакомого ребенка вдали от дома | 0.017085 | 0.26− | 0.84 |
Диаграммы важности поведенческих атрибутов:
Результаты
Модель кластеризации для идентификации типа личности собаки:
На рисунке показан график TSNE, созданный после выполнения кластеризации методом K-Means. График TSNE – это статистический метод визуализации многомерных данных, присваивающий каждой точке данных местоположение на двумерной карте.
Этот рисунок демонстрирует распределение выборок (собак) и как они разделены друг от друга на разные кластеры. В набор данных был добавлен новый столбец в качестве целевой переменной, содержащий соответствующий номер кластера (метку) для каждой выборки. В Таблице ниже показано количество выборок в каждом кластере.
Cluster ID | Number of samples |
0 | 1676 |
1 | 934 |
2 | 1626 |
3 | 864 |
4 | 2707 |
Описание типов личности собак:
Из анализа кластеризации K-средних поведенческих данных выделились пять различных групп или категорий собак, соответствующих пяти различным типам личности.
Все описания и характеристики полностью основываются на данных подробных таблиц по кластерам, представленных выше.
Собаки в кластере 0 характеризовались относительно высоким уровнем возбудимости, привязанности/потребности внимания и тревожностью при отдалении, а также сниженным уровнем страха по сравнению с теми, кто был в других кластерах. Этот тип личности был назван "Возбудимый/Гиперактивный".
Собаки в кластере 1, напротив, проявляли относительно высокие уровни страха как перед социальными (незнакомыми людьми, другими собаками и т. д.), так и перед нон-социальными (новыми или неожиданными ситуациями или событиями) стимулами, и были названы "Тревожные/Боязливые".
Собаки в кластере 2 были обозначены как "Недружелюбные/Хищные" в связи с их низкими уровнями привязанности/потребности внимания и более высокими уровнями хищного поведения и агрессии по отношению к другим собакам, в то время как собаки в кластере 3 были обозначены как "Реактивные/Напористые" из-за их повышенного агрессивного поведения в различных областях, включая агрессию по отношению к членам “семьи”.
Наконец, собаки в кластере 4 проявляли последовательно низкие уровни агрессии, страха, возбудимости и хищного поведения, и были обозначены как "Спокойные/Покладистые". Способность быстро учиться новым трюкам или заданиям также была характерной для собак в этом кластере.
Оценка производительности классификаторов машинного обучения:
Четыре матрицы ошибок, представленные на следующем рисунке, визуализируют производительность обученных моделей при разделении набора данных на 70% для обучения и 30% для тестирования. Матрица ошибок для этих моделей подчеркивает многоклассовую классификацию данной работы, где целевая переменная имеет пять значений в диапазоне от 0 до 4, представляющих разные типы личностей. Столбцы представляют предсказанные значения целевой переменной, а строки представляют фактические значения целевой переменной.
В матрице ошибок для задачи многоклассовой классификации термины "True Positive" (TP), "True Negative" (TN), "False Positive" (FP) и "False Negative" (FN) определяются следующим образом:
True Positive (TP): Количество экземпляров класса i, которые были правильно предсказаны как класс i.
True Negative (TN): Количество экземпляров, не принадлежащих классу i, которые были правильно предсказаны как не принадлежащие классу i.
False Positive (FP): Количество экземпляров, не принадлежащих классу i, которые были ошибочно предсказаны как принадлежащие классу i.
False Negative (FN): Количество экземпляров класса i, которые были ошибочно предсказаны как не принадлежащие классу i.
Согласно рисунку, модель дерева принятия решений имеет наивысшее значение TP для классов «0», «1» и «4». И модель дерева принятия решений, и модель опорных векторов имеют наивысшее количество правильных предсказаний для класса «2». Модель опорных векторов имеет наивысшее значение TP для класса «3».
Были вычислены значения точности (precision), полноты (recall) и F1-меры для каждого класса для каждой использованной модели. После этого был рассчитан процент точности для каждой модели, и результаты представлены в следующей таблице:
Classifier | Accuracy percentage (%) |
SVM | 98 |
KNN | 98 |
Decision tree | 99 |
Naïve bayes | 79 |
В области машинного обучения точность (precision) – это отношение истинно положительных случаев к сумме истинно положительных и ложных положительных случаев. Она измеряет точность положительных предсказаний:
Кроме того, полнота (Recall) – это отношение истинно положительных случаев к сумме истинно положительных случаев и ложных отрицательных случаев. Она количественно оценивает способность классификатора захватить все положительные примеры:
Оценка F1 – это метрика, которая объединяет точность и полноту в одно значение, обеспечивая сбалансированную оценку производительности модели классификации:
Наконец, точность модели служит важным показателем, определяющим ее общую производительность. Она рассчитывается путем выявления отношения правильных прогнозов, представленных суммой истинных положительных (TP) и истинных отрицательных (TN), к общему количеству прогнозов. Математически точность выражается как:
Для получения общей точности для задачи с множеством классов можно усреднить точности по всем классам.
По итогу, модель дерева принятия решений продемонстрировала лучшую производительность из четырех исследованных моделей. SVM и KNN показали одинаковые результаты, в то время как модель Наивного Байеса показала наименьшую производительность. Для более детальной оценки модели была проведена пятикратная перекрестная проверка, в которой модели запускались 5 раз на различных случайных выборках данных для оценки их производительности.
Следующая таблица показывает рассчитанные оценки точности для каждого разбиения и среднюю точность классификации как окончательную оценку точности для каждой модели по результатам проверки:
Classifier | Fold number | Accuracy scores calculated for each fold | Mean accuracy score |
SVM | 1 2 3 4 5 | 0.98507463 0.98290598 0.98504274 0.98290598 0.99145299 | 0.98 |
KNN | 1 2 3 4 5 | 0.97654584 0.97649573 0.98076923 0.98290598 0.97435897 | 0.97 |
Decision tree | 1 2 3 4 5 | 0.98933902 0.9957265 0.98076923 0.99786325 0.99786325 | 0.99 |
Naïve bayes | 1 2 3 4 5 | 0.76332623 0.76282051 0.78205128 0.77350427 0.79487179 | 0.77 |
Согласно таблице, общая производительность моделей SVM и дерева принятия решений осталась неизменной. Производительность модели KNN снизилась на 1%, а производительность модели наивного Байеса снизилась на 2%.
При этом, наибольшая производительность все равно остается за деревом принятия решений.
Вывод
Как я и описывала в начале статьи, способ определения типов личности собак, имеет ряд сходств со способами определения типов личности людей.
Важное различие между этими методами ML и методами, используемыми для разработки более традиционных оценок личности, таких как опросник "Большой пятерки" или “MBTI”, заключается в том, что, в то время как первые объединяют или группируют отдельных собак в соответствии со сходством в их поведении, о котором сообщается по результатам сбора данных из анкетирования (баллы C-BARQ), последний обычно включает группировку пунктов анкеты с соответствующими баллами для создания личностных ‘черт’, которые могут быть использованы для описания или профилирования индивидов.
Если проводить сравнение результатов этих тестов, то можно заметить, что кластеры 1 и 4, например, в настоящем анализе сопоставимы с человеческими личностными факторами ”Большой пятерки“ – ”нейротизмом“ и "покладистостью" соответственно, но существует меньше очевидных параллелей между нашими “возбудимыми/гиперактивными“, ”недружелюбными/хищными" и “реактивными/напористыми” собачьими личностями и любым из типов личности "Большой пятерки", что позволяет предположить, что эти кластеры могут быть специфичны для собак.
Для меня это исследование действительно нашло отклик в душе, потому что я сама связана с волонтерством и работой с брошенными домашними животными. К массовому бродяжничеству собак приводит неоправдание человеческих ожиданий (многие по-своему представляют “идеального” любимца), эта проблема действительно могла бы быть сведена к минимуму в результате такой оценки личности собак. Я рада, что методы искусственного интеллекта и машинного обучения применяются в таких сферах :)
На этом все!
Будем ждать Вас в комментариях! Спасибо за прочтение :)