РАЗРАБОТКА РЕГРЕССИОННОЙ МОДЕЛИ ДЛЯ ПРОГНОЗИРОВАНИЯ НАБОРА ВЕСА ЦЫПЛЯТ-БРОЙЛЕРОВ
РАЗРАБОТКА РЕГРЕССИОННОЙ МОДЕЛИ ДЛЯ ПРОГНОЗИРОВАНИЯ НАБОРА ВЕСА ЦЫПЛЯТ-БРОЙЛЕРОВ
Глазырин Иван Евгеньевич
магистрант, Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова,
РФ, г. Новочеркасск
DEVELOPMENT OF A REGRESSION MODEL FOR FORECASTING THE WEIGHT GAIN OF BROILER CHICKENS
Ivan Glazyrin
Master's degree student, South-Russian State Polytechnic University (NPI) named after M.I. Platova,
Russia, Novocherkassk
АННОТАЦИЯ
В статье описывается разработка регрессионной модели для прогнозирования набора веса цыплят-бройлеров. Разработка выполнена в рамках проектирования информационной системы управления птицефермы по производству мяса цыплят-бройлеров. Использован один из алгоритмов машинного обучения, а именно нелинейная регрессия с применением метода Ньютона-Гаусса. Основное место в статье уделено описанию функциональной основы метода. Для реализации данной задачи был выбран язык R, показаны его преимущества. Рассмотрены параметры, используемые для прогнозирования веса стаи и технология обучения регрессионной модели.
ABSTRACT
This article describes the development of a regression model to predict weight gain in broiler chickens. The development was carried out as part of the design of an information management system for a poultry farm for the production of broiler chicken meat. One of the machine learning algorithms was used, namely nonlinear regression using the Newton-Gauss method. The main place in the article is devoted to the description of the functional basis of the method. To implement this task, the R language was chosen, its advantages are shown. The parameters used to predict the weight of the flock and the technology of training the regression model are considered.
Ключевые слова: нелинейная регрессионная модель, прогнозирование, метод Ньютона-Гаусса, птицеферма.
Keywords: nonlinear regression model, forecasting, Newton-Gauss method, poultry farm.
Разработка регрессионной модели для прогнозирования набора веса цыплят-бройлеров выполнена в рамках проектирования информационной системы управления птицефермы по производству мяса цыплят-бройлеров. Информационная система, описание разработки которой дано ранее [1, с. 204-212], предназначена для автоматизации процессов, протекающих на птицеферме.
Регрессионная модель — это параметрическое семейство функций, задающее отображение:
,
где — пространство параметров;
— пространство свободных переменных;
Y — пространство зависимых переменных.
Так как регрессионный анализ предполагает поиск зависимости математического ожидания случайной величины от свободных переменных , то в её состав входит аддитивная случайная величина : .
Модель является настроенной (обученной) когда зафиксированы её параметры, то есть модель задаёт отображение для фиксированного значения .
Нелинейная регрессия — частный случай регрессионного анализа, в котором рассматриваемая регрессионная модель есть функция, зависящая от параметров и от одной или нескольких свободных переменных. Зависимость от параметров предполагается нелинейной [2].
В случае нелинейного регрессионного анализа данные состоят из свободных от ошибок независимых переменных x и связанных наблюдаемых зависимых переменных (откликов) y. Каждая переменная y моделируется как случайная величина со средним значением, задаваемым нелинейной функцией f(x,β).
Для реализации данной задачи было решено использовать один из алгоритмов машинного обучения, а именно, нелинейную регрессию с использованием метода Ньютона-Гаусса. Рассмотрим подробнее выбранный метод.
Метод Ньютона-Гаусса — это итерационный численный метод нахождения решения задачи наименьших квадратов. В общих чертах, этот метод использует матрицу Якобиана J производных первого порядка функции F для нахождения вектора x значений параметра, который минимизирует остаточные суммы квадратов (сумму квадратных отклонений предсказанных значений от наблюдаемых).
Алгоритм Ньютона-Гаусса сводится к следующему.
Если задано m функций r=(r1, …, rm) от n переменных β= (β1, …, βn), при m≥n, алгоритм итеративно находит значения переменных, которые минимизируют сумму квадратов:
.
Начав с некоторого начального приближения β(0), метод осуществляет итерации . Здесь, если рассматривать r и β как вектор-столбцы, элементы матрицы Якоби равны , а символ T означает транспонирование матрицы.
При аппроксимации данных, где целью является поиск параметров β, таких, что заданная модель функций y=f(x, β) наилучшим образом приближает точки данных (xi, yi), функции ri являются остаточными ошибками , тогда метод Ньютона-Гаусса можно выразить в терминах якобиана Jf функции [3].
Данный алгоритм очень хорошо подходит для случаев, когда имеется зависимость одной переменной от нескольких, и эта зависимость предполагает нелинейный характер.
Для реализации данной задачи был выбран язык R [4]. К основным преимуществам языка R можно отнести:
- математическая ориентированность, работа с матрицами и производными реализована уже «из коробки», язык имеет множество библиотек и функций для сложных вычислений, в том числе и для работы с регрессионными функциями;
- возможность установки только интерпретатора языка, без GUI, с последующей работой через CLI-интерфейс из терминала;
- чтение данных из файла – данная особенность позволит не привязывать реализуемый алгоритм к базе данных или ее структуре, достаточно будет просто выгружать обработанные данные, полученные из базы данных.
Так как алгоритм нелинейной регрессии подразумевает обучение модели, первым шагом для создания модуля станет реализация скрипта, производящего выборку данных, их преобразование, и выгрузку в файл.
Для обучения регрессионной модели необходимо подготовить набор данных. Проведя анализ структуры базы данных, было решено, что для осуществления предсказания будущего веса стаи можно использовать, как и параметры, предоставленные в базе данных, так и вычисляемые параметры. Рассмотрим каждый из параметров:
- вес стаи (вес стаи в килограммах, который набрала стая на текущую дату);
- вес стаи на завтрашний день (вес стаи в килограммах, который набрала стая на завтрашний день);
- количество особей (текущее количество особей в стае);
- вес потребленного корма (вес потреблённого корма стаи на текущую дату, в килограммах);
- коэффициент конверсии корма (FCR) (представляет собой отношение количества затраченного корма к единице полученной продукции);
- текущая дата (дата, по которой представлены показатели);
Таким образом, получается 5 параметров для обучения регрессионной модели. После обучения модель будет способна предсказывать один из параметров, в нашем случае будущий вес стаи. Схема входных и выходных параметров итоговой модели представлена на рисунке.
Для подготовки данных, необходимых для обучения модели, был реализован вспомогательный класс, содержащий функции для выборки данных из базы данных и их приведения к требуемому виду.
После подготовки данных они помещаются в файл в формате CSV, удобном для дальнейшего использования в скриптах, реализованных на языке R. При выгрузке к данным добавляется строка, содержащая заголовки столбцов.
После формирования данных для обучения модели необходимо провести обучение модели. В ходе работы было обнаружено, что язык R «из коробки» имеет в своем арсенале мощный пакет «nlme» для решения различных задач регрессии [5], который позволяет строить нелинейный регрессионные модели. Данная функция принимает на вход множество параметров, из которых наиболее важны следующие:
- formula – нелинейная формула модели, выражение вида y~model, представленная в виде линейного представления модели, состоит из параметров, разделенных знаком «+». Также в формуле используется операнд «*», означающий пересечение факторов, выражение a*b будет представлено как a+b+a:b, где операнд «:» означает т.н. «взаимодействие», а операнд «+» является разделителем, как описано выше;
- data – набор данных, на которых проходит обучение;
- start – начальные значения для коэффициентов, используемых в формуле;
- algorithm – алгоритм, который должен быть использован при обучении, значение по умолчанию (если параметр не передан в функцию) – метод Ньютона-Гаусса.
Рисунок 1. Схема входных и выходных параметров регрессионной модели
Таким образом, если данные, формула и начальные значения коэффициентов будут подобраны верно, задача поиска значений этих коэффициентов полностью реализуется стандартными средствами языка R, так как остальные параметры, в том числе параметр, определяющий алгоритм, могут быть использованы по умолчанию.
Список литературы:
- Глазырин И.Е. Разработка на основе модели IDEF0 информационной системы управления птицефермы по производству мяса цыплят-бройлеров [Текст] / И.Е. Глазырин // Инновационные научные исследования : сетевой журнал. - 2021. - № 4-3(6). - C. 204-212. URL: https://ip-journal.ru/ (дата обращения: 14.07.2021).
- Нелинейная регрессия // URL: http://www.machinelearning.ru/wiki/ index.php?title=Нелинейная_регрессия (дата обращения: 20.05.2021).
- Метод Ньютона-Гаусса // URL: http://www.machinelearning.ru/wiki/ index.php?title=Метод_Ньютона-Гаусса (дата обращения: 20.05.2021).
- Язык R – документация // URL: https://www.r-project.org/about.html (дата обращения: 20.05.2021).
- Документация по языку R - Нелинейный метод наименьших квадратов // URL: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/nls.html (дата обращения: 20.05.2021).