Введение

Морское ушко - это общее название для любой группы морских улиток от маленьких до очень крупных, морских брюхоногих моллюсков в семействе Haliotidae.

Другие распространенные названия - это ушные раковины, морские уши и, реже, баранина или баранина в некоторых частях Австралии, ormer в Великобритании, perlemoen в Южной Африке, и название маори для трех видов в Новой Зеландии - pāua.

Морские улитки - морские улитки. Согласно их таксономии, они принадлежат к семейству Haliotidae, которое включает только один род, Haliotis, который когда-то содержал шесть подродов. Эти подроды стали альтернативными представлениями Haliotis. Количество видов, признанных во всем мире, колеблется от 30 до 130 с более чем 230 описанными таксонами на уровне видов. Наиболее полное рассмотрение семейства считает действительными 56 видов с 18 дополнительными подвидами.

Раковины морских ушек имеют низкую открытую спиралевидную структуру и характеризуются несколькими открытыми дыхательными порами, расположенными в ряд у внешнего края раковины. Толстый внутренний слой раковины состоит из перламутра (перламутра), который у многих видов сильно переливается, что приводит к появлению ряда ярких, изменчивых цветов, которые делают раковины привлекательными для людей в качестве декоративных предметов, украшений. , и как источник красочного перламутра.

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

В этой статье мы попытаемся предсказать кольца морского ушка, используя метод классификации.

Методология

Набор данных взят из http://archive.ics.uci.edu/ml/datasets/Abalone. Затем мы проверяем данные, чтобы убедиться, что в них нет пропущенных значений.

Затем мы предварительно обрабатываем данные, а затем выполняем процесс классификации с несколькими классификаторами.

Мы будем использовать такие классификаторы, как логистическая регрессия, случайный лес и SVM.

Импортировать важные библиотеки

Прежде чем мы пройдем через все процессы, сначала мы импортируем все библиотеки, которые нам понадобятся.

Получение набора данных

Набор данных взят из http://archive.ics.uci.edu/ml/datasets/Abalone. Приведены имя атрибута, тип атрибута, единица измерения и краткое описание. Количество колец - это величина, которую нужно предсказать.

Теперь мы получаем набор данных

Теперь посмотрим на условия данных.

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

Затем взгляните на цель в этом случае в столбце «Кольца».

Мы видим, что цель - от 1 до 29 (но нет 28), поэтому классификация, которую мы собираемся сделать, - это мультиклассовая классификация.

Предварительная обработка данных

Работа с отсутствующими значениями

Сначала мы проверяем, сколько пропущенных значений находится в элементе «Высота» и в каком классе он находится.

Число пропущенных значений равно 2 и относится к полу младенца. Затем мы меняем значение 0 на ноль. Мы заполним отсутствующее значение средним значением высоты для пола младенца.

Таким образом, мы заполним недостающее значение 0,107996.

Кодирование категориальных функций

Как мы видели, функция пола является категориальной функцией, поэтому нам необходимо кодировать эту функцию. Мы сделаем для этого горячее кодирование.

После кодирования столбец увеличивается до 11.

Разделение данных

Мы разделим данные на 3 части, а именно набор поездов, набор тестов и набор проверки. Мы делаем это, потому что у нас нет возможности перекрестной проверки данных, потому что есть несколько целей, которые имеют только 1.

Чтобы ускорить изучение классификации, мы сначала стандартизируем данные.

Стандартизация данных

Чтобы ускорить изучение классификации, мы сначала стандартизируем данные.

Классификация

Мы будем классифицировать набор данных с помощью четырех классификаторов, а именно логистической регрессии, случайного леса и SVM.

Мы также определим лучшие параметры для каждого классификатора. Для определения лучшего параметра мы не используем перекрестную проверку, потому что есть несколько целей, которые в сумме имеют 1. Чтобы определить лучший параметр для каждого классификатора, мы используем простой метод поиска по сетке.

Логистическая регрессия

Параметры, которые мы установим для классификации с использованием логистической регрессии, - это C и решатель. Поскольку это мультиклассовая классификация, мы определяем решатель между newton-cg, sag, saga, lbfgs. Мультикласс мы устанавливаем мультиномиальным, а штраф - l2.

При лучших параметрах мы получаем оценку 0,29 для обучающей выборки и 0,25 для набора для тестирования.

Случайный лес

Параметры, которые мы установим для классификации с использованием случайного леса, - это критерий, max_depth, dan max_features.

При лучших параметрах мы получаем оценку 0,29 для обучающей выборки и 0,27 для набора для тестирования.

Машина опорных векторов

Параметры, которые мы установим для классификации с помощью SVM, - это ядро, C и гамма.

При лучших параметрах мы получаем оценку обучающего набора 0,31 и оценку тестового набора 0,26.

Мы можем суммировать баллы по каждому классификатору следующим образом

Мы можем наблюдать, что точность каждой модели ниже 0,3, что является относительно низким и трудным для прогнозирования. Это может быть связано с большим количеством уровней и сильным дисбалансом нашей цели.

Резюме

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

использованная литература

1. https://en.wikipedia.org/wiki/Abalone
2. Хань, Ичжэнь. 2019. Проект машинного обучения - Прогнозирование возраста морского ушка. Университет RMIT
3. Андреас К. Мюллер и Сара Гвидо, 2017. Введение в машинное обучение с помощью Python