КЛАССИФИКАЦИЯ ИРИСОВ ФИШЕРА С ИСПОЛЬЗОВАНИЕМ НЕЙРОННЫХ СЕТЕЙ: ПОДХОД НА ОСНОВЕ KERAS

Хасанов Даниэль Рустамович
Нефтекамский филиал Уфимского университета науки и технологий

Аннотация
Статья посвящена применению искусственной нейронной сети для решения классической задачи классификации Ирисов Фишера. Рассматривается актуальность задачи в контексте обучения основам машинного обучения и проверки алгоритмов. Представлен поэтапный алгоритм построения и обучения модели с использованием библиотеки TensorFlow/Keras, включая предобработку данных, проектирование архитектуры сети и оценку результатов. Обсуждаются особенности набора данных, такие как линейная разделимость одного из классов. В заключение подчёркивается ценность данного набора данных как эталона для начинающих специалистов в области искусственного интеллекта и data science.

Ключевые слова: , , , , , ,


Рубрика: 01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Хасанов Д.Р. Классификация Ирисов Фишера с использованием нейронных сетей: подход на основе Keras // Современные научные исследования и инновации. 2025. № 12 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2025/12/103966 (дата обращения: 07.02.2026).

Классификация Ирисов Фишера остается фундаментальной и актуальной задачей в области машинного обучения и искусственного интеллекта. Набор данных, включающий измерения чашелистиков и лепестков трех видов ирисов, десятилетиями используется как идеальный полигон для тестирования алгоритмов классификации, от линейных моделей до глубоких нейронных сетей. В эпоху повсеместного распространения ИИ эта задача сохраняет свою дидактическую ценность, позволяя наглядно демонстрировать этапы построения модели: от загрузки данных и их нормализации до проектирования архитектуры сети и анализа её точности. Использование современных фреймворков, таких как TensorFlow и Keras, делает процесс доступным даже для новичков, а сама задача служит отправной точкой для решения более сложных проблем компьютерного зрения и анализа данных.

В данной работе для классификации ирисов используется полносвязная нейронная сеть, реализованная на Keras. Модель принимает на вход четыре нормализованных признака: длину и ширину чашелистика, длину и ширину лепестка. Архитектура сети включает скрытые слои с функцией активации ReLU и выходной слой с функцией softmax для многоклассовой классификации. Обучение проводится с оптимизатором Adam на протяжении 20 эпох, а процесс отслеживается по графикам точности на обучающей и проверочной выборках. Такой подход позволяет достичь высокой точности предсказания и служит примером стандартного пайплайна для задач классификации табличных данных.


Рисунок 1. Динамика точности модели в процессе обучения

Алгоритм решения задачи по построению модели классификации для набора данных Ирисов Фишера включает следующие последовательные шаги с использованием языка Python и библиотек TensorFlow/Keras.

  • импортируем необходимые библиотеки: TensorFlow/Keras, pandas, numpy и matplotlib;
  • подключаем Google Drive и загружаем обучающий и тестовый наборы данных из CSV-файлов;
  • выделяем матрицу признаков и вектор целевой переменной из обучающих данных;
  • проводим стандартизацию признаков, вычитая среднее значение и деля на стандартное отклонение;
  • создаём последовательную модель нейронной сети с двумя скрытыми полносвязными слоями и выходным слоем на 3 нейрона;
  • компилируем модель, выбирая оптимизатор Adam и функцию потерь sparse_categorical_crossentropy;
  • обучаем модель на подготовленных данных, выделяя часть для валидации;
  • строим график изменения точности на обучающей и проверочной выборках по эпохам;
  • используем обученную модель для предсказания классов на тестовом наборе данных;
  • сохраняем результаты предсказаний в файл для отправки или последующего анализа.

Этот алгоритм является типовым для задач классификации и демонстрирует ключевые этапы работы с нейронными сетями в Keras.

Ниже приведен фрагмент кода, реализующий ключевые шаги алгоритма:

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Dense

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

train = pd.read_csv(‘train.csv’)

test = pd.read_csv(‘test.csv’)

features = ["SepalLength", "SepalWidth", "PetalLength", "PetalWidth"]

target = ‘Species’

x_train = train[features].values

y_train = train[target].values

x_test = test[features].values

mean = x_train.mean(axis=0)

std = x_train.std(axis=0)

x_train -= mean

x_train /= std

x_test -= mean

x_test /= std

model = Sequential()

model.add(Dense(100, activation=’relu’, input_shape=(x_train.shape[1],)))

model.add(Dense(16, activation=’relu’))

model.add(Dense(3, activation=’softmax’))

model.compile(optimizer=’adam’,

loss=’sparse_categorical_crossentropy’,

metrics=['accuracy'])

history = model.fit(x_train, y_train, epochs=20, validation_split=0.1, verbose=2)

plt.plot(history.history['accuracy'], label=’Точность на обучении’)

plt.plot(history.history['val_accuracy'], label=’Точность на валидации’)

plt.xlabel(‘Эпоха’)

plt.ylabel(‘Точность’)

plt.legend()

plt.show()

predictions = model.predict(x_test)

predictions = np.argmax(predictions, axis=1)

Процесс обучения модели визуализирован на Рисунке 2 (изображение сгенерировано нейросетью):

Рисунок 2. Архитектура используемой нейронной сети

Заключение

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


Библиографический список
  1. Шолле, Ф. Глубокое обучение на Python / Ф. Шолле ; пер. с англ. А. А. Слинкина. – 2-е изд. – Санкт-Петербург : Питер, 2023. – 400 с. – ISBN 978-5-4461-2143-9.
  2. Фишер, Р. Э. Использование множественных измерений в таксономических задачах // Annals of Eugenics. – 1936. – Vol. 7, Part II. – P. 179–188. – Текст : электронный // Классика статистики : [сайт]. – URL: https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1469-1809.1936.tb02137.x (дата обращения: 08.12.2025.
  3. Джулли, А. Библиотека Keras – инструмент глубокого обучения : реализация нейронных сетей с помощью библиотек Theano и TensorFlow : практическое пособие : [16+] / А. Джулли, С. Пал ; пер. с англ. А. А. Слинкина. – Москва : ДМК Пресс, 2018. – 294 с. : схем., ил. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=578561 (дата обращения: 08.12.2025). – ISBN 978-5-97060-573-8. – Текст : электронный.


Все статьи автора «Хасанов Даниэль Рустамович»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте.