Классификация смартфонов с использованием перцептрона

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Обучение нейронных систем
  • 20 20 страниц
  • 3 + 3 источника
  • Добавлена 22.04.2023
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Введение 2
1. Теоретическая часть 4
1.1. Задача классификации 4
1.2. Модель персептрона 4
1.3. Функции активации 5
1.4. Обучение модели 7
1.5. Феномен переобучения 8
2. Практическая часть 10
2.1. Используемые технологии 10
2.2. Формирование исходных данных 14
2.3. Обработка данных 15
2.4. Обучение модели 16
2.5. Варьирование характеристик 17
Заключение 19
Список литературы 20
Фрагмент для ознакомления

Jupyter Notebook - это интерактивная среда разработки, которая позволяет создавать и выполнять код, объединяя текст, изображения, графики и другие форматы документов в одном месте. Она позволяет удобно проводить исследования и анализ данных, а также создавать и обучать модели машинного обучения.Jupyter Notebook была создана на основе проекта IPython и позволяет запускать код на множестве языков программирования, включая Python, R, Julia и другие. Она использует ячейки, чтобы отделять код от текста, что делает ее очень удобной для демонстрации кода и его результатов в удобном формате.Одним из основных преимуществ Jupyter Notebook является возможность быстрой итерации кода и просмотра результатов на лету, что ускоряет процесс разработки и повышает эффективность работы. Кроме того, она легко интегрируется с другими популярными инструментами для анализа данных и машинного обучения, такими как NumPy, Pandas, Scikit-Learn и TensorFlow.Другое важное преимущество Jupyter Notebook заключается в том, что она позволяет создавать интерактивные документы, которые можно легко поделиться с другими и использовать для презентаций, обучения и коллаборативной работы.В целом, Jupyter Notebook - это мощный инструмент для работы с данными и машинного обучения, который позволяет эффективно проводить исследования, анализировать данные и создавать модели нейронных сетей в удобном и интуитивно понятном формате.Формирование исходных данныхДля сбора информации о смартфонах был выбран популярный интернет-магазин DNS. С помощью удобного интерфейса были выбраны наиболее популярные модели смартфонов из различных ценовых сегментов. Основные характеристики были добавлены в сводную таблицу, часть которой представлена на рисунке 3.Рисунок 3. Исходные данные.Обработка данныхКак мы видим, не все характеристики смартфонов представляют собой числа. Поэтому необходимо провести первичную обработку данных. В качестве примера разберем колонку «Поддержка 5G». Значения в этой колонке могут принимать только 2 значения, поэтому достаточно заменить все поля «да» на единицу и «нет» на ноль. С помощью библиотеки pandasэто можно сделать с помощью функцииapplyи приведению к типу int:X["Поддержка 5G"] = X["Поддержка 5G"].apply(lambdac: c == "да").astype("int")Текстовые значения в остальных колонках принимают более 2 различных значений, поэтому для приведения их к численному типу требуется создать дополнительные колонки для каждого значения. Таким образом, значения в новых колонках будут 1 или 0 в зависимости от принимаемого значения в исходной колонке. Пример полученной после обработки колонки «Материал корпуса» представлен на рисунке 4.Рисунок 4. Новые колонки для признака «Материал корпуса»Обучение моделиДля обучения персептрона было выбрано 5 признаков: Год выпуска, Поддержка 5G, Диагональ экрана, Плотность пикселей и Объем памяти. Каждый из признаков необходимо нормализовать: с помощью линейного преобразования перевести все значения в интервал от 0 до 1. В библиотеке sklearnдля нормализации существует удобный класс MinMaxScaler, с помощью него нормализация осуществляется следующим образом:scaler = MinMaxScaler().fit(X)X = scaler.transform(X)Далее необходимо разделить данные на тестовую и обучающую выборки. Дляэтогобылиспользованметодtrain_test_split:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)Для обучения персептрона был инициализирован объект класса Perceptron. Длясамого обучение модели (оптимизация весов) вызывается метод fit с обучающей выборкой. При этом было указано количество эпох обучени: max_iter=10:model = Perceptron(max_iter=10)model.fit(X_train, y_train)В итоге мы получили обученную модель однослойного персептрона со следующими коэффициентами:[-0.66666667, 3. , 0.04395604, 2.02631579, 1.66666667]Для проверки качества модели используется метод score. На обучающей выборке была получена точность 72.5%, что является достаточно хорошим результатом с учетом малого размера выборки. На тестовой выборке точность составила 65%, то есть совсем немного меньше, чем на обучающей. Из этого мы делаем вывод, что модель не переобучена и может быть использована для классификации новых моделей смартфонов. Варьирование характеристикДля улучшения качества модели были сделаны попытки обучить персептрон на других признаках: Цвет, Материал корпуса, Поддержка 5G, Плотность пикселей и Объем памяти. Как уже говорилось ранее, для приведения характеристик цвета и материала корпуса к численному типу были заранее созданы дополнительные колонки (см. рисунок 4). После обучения модели точность на обучающей выборке составила 92.5%, однако на тестовой выборке результат составил лишь 50%. Модель получилась явно переобученной, поэтому использовать ее не рекомендуется.Также была обучения модель с использованием еще одного набора характеристик: Цвет, Материал корпуса, Тип экрана, Плотность пикселей и Количество sim. К сожалению, модель, обученная на этих признаках,показала точность лишь 60%, что является плохим результатом для бинарной классификации.После нескольких попыток улучшить модель выбором другого набора параметров был сделан вывод о том, что изначальная модель была самой удачной и именно ее следует использовать для классификации новых смартфонов.ЗаключениеВ ходе выполнения курсовой работы была подробно изучена задача классификации в машинном обучении. Изучена модель персептрона для решения задачи бинарной классификации. Кроме того, с помощью языка программирования pythonбыла решена реальная задача классификации. Для этого была сформирована таблица исходных данных и их предобработка,разделение выборки на обучающую и тестовую. Далее была обучена модель персептрона для бинарной классификации и получены достаточно хорошие результаты.Список литературыГалушкин, А.И. Нейронные сети: история развития теории: Учебное пособие для вузов. / А.И. Галушкин, Я.З. Цыпкин. - М.: Альянс, 2015. - 840 c.Хайкин, С. Нейронные сети: полный курс / С. Хайкин. - М.: Диалектика, 2019. - 1104 c.Интернет ресурсsklearn (дата обращения 20.03.2023):https://scikit-learn.org/stable/

1. Галушкин, А.И. Нейронные сети: история развития теории: Учебное пособие для вузов. / А.И. Галушкин, Я.З. Цыпкин. - М.: Альянс, 2015. - 840 c.
2. Хайкин, С. Нейронные сети: полный курс / С. Хайкин. - М.: Диалектика, 2019. - 1104 c.
3. Интернет ресурс sklearn (дата обращения 20.03.2023):
https://scikit-learn.org/stable/

Вопрос-ответ:

Что такое перцептрон?

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

Какие функции активации используются в перцептроне?

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

Что такое переобучение?

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

Какие технологии используются в практической части статьи?

В практической части статьи используются технологии, такие как Jupyter Notebook, Python и различные библиотеки для машинного обучения, например, scikit-learn.

Что представляют собой исходные данные в данной статье?

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

Что такое перцептрон?

Перцептрон - это математическая модель, используемая в машинном обучении для классификации данных.

Какие функции активации используются в перцептроне?

В перцептроне часто используются функции активации, такие как сигмоида, гиперболический тангенс и ReLU. Они помогают введению нелинейности в модель и позволяют ей более точно предсказывать класс объекта.

Что такое переобучение?

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