ПРЕДСКАЗАНИЕ ВИДА ИРИСА С ИСПОЛЬЗОВАНИЕМ НЕЙРОННОЙ СЕТИ: КЛАССИЧЕСКИЙ ПРИМЕР КЛАССИФИКАЦИИ НА PYTHON

Талипов Дамир Зинфирович
Нефтекамский филиал Уфимского университета науки и технологий

Аннотация
Статья посвящена задаче классификации цветков ириса по морфологическим признакам с использованием полносвязной нейронной сети, реализованной на Python с библиотеками TensorFlow/Keras и Scikit-learn. Рассматривается актуальность применения глубокого обучения для решения классических задач машинного обучения с небольшими наборами данных. Предлагается пошаговый алгоритм, включающий загрузку данных, их предобработку, построение и обучение модели с регуляризацией. Обсуждаются технические аспекты, такие как стандартизация признаков, использование BatchNormalization и Dropout для борьбы с переобучением, а также применение коллбэков EarlyStopping и ReduceLROnPlateau для оптимизации процесса обучения. В заключение подчеркивается эффективность предложенного подхода и его значение как базового примера для задач многоклассовой классификации.

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


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Талипов Д.З. Предсказание вида ириса с использованием нейронной сети: классический пример классификации на Python // Современные научные исследования и инновации. 2026. № 2 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2026/02/104205 (дата обращения: 09.04.2026).

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

Алгоритм решения задачи по классификации цветков ириса на три вида включает следующие последовательные шаги реализации на Python с использованием нейронной сети.

1. импортируем необходимые библиотеки: pandas, numpy, tensorflow/keras, scikit-learn, matplotlib;

2.  подключаем Google Drive и загружаем файлы с данными (train.csv, test.csv) и шаблоном для ответов (sample_submission.csv);

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

4.  выделяем из данных признаки (sepal length, sepal width, petal length, petal width) и целевую переменную (species);

5.  преобразуем данные в массивы NumPy для дальнейшей обработки;

6.  выполняем стандартизацию признаков с помощью StandardScaler, вычитая среднее и деля на стандартное отклонение;

7.  разделяем обучающие данные на тренировочную и валидационную выборки;

8.  создаем архитектуру последовательной нейронной сети с использованием Dense-слоев, BatchNormalization и Dropout для регуляризации;

9.  компилируем модель, задавая оптимизатор Adam, функцию потерь sparse_categorical_crossentropy и метрику accuracy;

10. определяем коллбэки для управления процессом обучения: EarlyStopping для остановки при переобучении и ReduceLROnPlateau для динамического снижения скорости обучения;

11. обучаем модель на тренировочных данных, используя валидационную выборку для контроля;

12. визуализируем историю обучения, строя графики точности на тренировочном и проверочном наборах;

13. выполняем предсказание на тестовых данных, преобразованных с помощью того же scaler;

14. преобразуем выходные вероятности модели в предсказанные классы с помощью argmax;

15. сохраняем результаты предсказаний в файл формата CSV для последующей отправки или анализа.

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

Код реализации ключевых этапов:

import pandas as pd

import numpy as np

import tensorflow as tf

from sklearn.preprocessing import StandardScaler

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Dense, Dropout, BatchNormalization

# … загрузка данных train и test …

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

target = ‘Species’

x_train = train[features].values

y_train = train[target].values

x_test = test[features].values

scaler = StandardScaler()

x_train = scaler.fit_transform(x_train)

x_test = scaler.transform(x_test)

model = Sequential([

Dense(128, activation='relu', input_shape=(4,)),

BatchNormalization(),

Dropout(0.4),

Dense(64, activation='relu'),

BatchNormalization(),

Dropout(0.3),

Dense(32, activation='relu'),

Dropout(0.2),

Dense(3, activation='softmax')

])

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.0005),

loss=’sparse_categorical_crossentropy’,

metrics=['accuracy'])

# … определение callbacks и обучение модели …

predictions = model.predict(x_test)

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

Заключение

Предложенный подход к классификации ирисов с использованием нейронной сети на Python демонстрирует высокую эффективность и точность. Применение методов регуляризации, таких как BatchNormalization и Dropout, позволило избежать переобучения модели, несмотря на относительно небольшой объем обучающих данных. Использование коллбэков EarlyStopping и ReduceLROnPlateau оптимизировало процесс обучения, автоматически подбирая количество эпох и скорость обучения. Стандартизация данных стала важным этапом, обеспечившим стабильную работу оптимизатора и улучшившим сходимость модели. В целом, данная работа служит наглядным и практическим примером применения современного стека технологий глубокого обучения для решения классической задачи машинного обучения, а полученный конвейер может быть адаптирован для других схожих задач классификации.


Библиографический список
  1. Митчелл, Р. Скрапинг веб-сайтов с помощью Python. Сбор данных из современного интернета : практическое руководство / Р. Митчелл ; пер. с англ. А. В. Груздева. - 2-е изд. - Москва : ДМК Пресс, 2023. - 282 с. - ISBN 978-5-89818-305-9.
  2. Сергеева, О. А. Программирование на Python : учебно-методическое пособие / О. А. Сергеева. – Кемерово : КемГУ, 2024. – 157 с. – ISBN 978-5-8353-3123-9. – Текст : электронный // Лань : электронно-библиотечная система. – URL: https://e.lanbook.com/book/420758 (дата обращения: 05.12.2025). – Режим доступа: для авториз. пользователей.


Все статьи автора «Талипов Дамир Зинфирович»


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