<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">procyber</journal-id><journal-title-group><journal-title xml:lang="ru">Вестник кибернетики</journal-title><trans-title-group xml:lang="en"><trans-title>Proceedings in Cybernetics</trans-title></trans-title-group></journal-title-group><issn pub-type="epub">1999-7604</issn><publisher><publisher-name>Бюджетное учреждение высшего образования Ханты-Мансийского автономного округа – Югры «Сургутский государственный университет»</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.35266/1999-7604-2024-1-3</article-id><article-id custom-type="elpub" pub-id-type="custom">procyber-571</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>ТЕХНИЧЕСКИЕ НАУКИ</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Engeneering</subject></subj-group></article-categories><title-group><article-title>КЛАССИФИКАЦИЯ СОСТОЯНИЯ РАСТЕНИЙ СРЕДСТВАМИ ТЕКСТУРНОГО ВЕЙВЛЕТ-АНАЛИЗА И МАШИННОГО ОБУЧЕНИЯ</article-title><trans-title-group xml:lang="en"><trans-title>CLASSIFICATION OF PLANTS HEALTH VIA TEXTURE WAVELET ANALYSIS AND MACHINE LEARNING</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-6143-8992</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Брыкин</surname><given-names>В. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Brykin</surname><given-names>V. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>аспирант</p></bio><bio xml:lang="en"><p>Postgraduate</p></bio><email xlink:type="simple">valentin.brykin@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-1332-463X</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Брагинский</surname><given-names>М. Я.</given-names></name><name name-style="western" xml:lang="en"><surname>Braginsky</surname><given-names>M. Ya.</given-names></name></name-alternatives><bio xml:lang="ru"><p>кандидат технических наук, доцент</p></bio><bio xml:lang="en"><p>Candidate of Sciences (Engineering), Docent</p></bio><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-1851-1039</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Тараканов</surname><given-names>Д. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Tarakanov</surname><given-names>D. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>кандидат технических наук, доцент</p></bio><bio xml:lang="en"><p>Candidate of Sciences (Engineering), Docent</p></bio><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-7707-5890</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Тараканова</surname><given-names>И. О.</given-names></name><name name-style="western" xml:lang="en"><surname>Tarakanova</surname><given-names>I. O.</given-names></name></name-alternatives><bio xml:lang="ru"><p>аспирант, ассистент</p></bio><bio xml:lang="en"><p>Postgraduate, Assistant Professor</p></bio><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Сургутский государственный университет, Сургут</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Surgut State University, Surgut</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2024</year></pub-date><pub-date pub-type="epub"><day>20</day><month>03</month><year>2024</year></pub-date><volume>23</volume><issue>1</issue><fpage>23</fpage><lpage>30</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Брыкин В.В., Брагинский М.Я., Тараканов Д.В., Тараканова И.О., 2024</copyright-statement><copyright-year>2024</copyright-year><copyright-holder xml:lang="ru">Брыкин В.В., Брагинский М.Я., Тараканов Д.В., Тараканова И.О.</copyright-holder><copyright-holder xml:lang="en">Brykin V.V., Braginsky M.Y., Tarakanov D.V., Tarakanova I.O.</copyright-holder><license license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.vestcyber.ru/jour/article/view/571">https://www.vestcyber.ru/jour/article/view/571</self-uri><abstract><p>В данной работе предложен метод, комбинирующий вейвлет-преобразования и методы машинного обучения, для классификации состояния растительных культур по цветным цифровым изображениям. Входными данными для классификации являлся сформированный вектор текстурных признаков Харалика. Реализована программа на высокоуровневом языке программирования Python для классификации цифровых изображений с использованием многоуровневого дискретного вейвлет-преобразования Добеши и классификационных методов машинного обучения – классической логистической регрессии и персептрона. Показана эффективность предложенного метода в решении задачи многоклассовой классификации изображений, сделаны соответствующие выводы, оценены перспективы метода.</p></abstract><trans-abstract xml:lang="en"><p>The article demonstrates a method that combines the wavelet transform and machine learning methods to classify plants health using colored digital images. The input data for classifi cation is comprised of a built vector of Haralick texture features. The software was developed via the Python programming language to classify digital images with the multilevel discrete Daubechies wavelet transform and methods of classifi cation for machine learning, particularly classic logistic regression and perceptron. The effi ciency of this method for solving the problem of multiclass image classifi cation is demonstrated. The study concludes and assesses the prospects of the method.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>вейвлет-преобразование Добеши</kwd><kwd>текстурные признаки Харалика</kwd><kwd>нейронная сеть</kwd><kwd>логистическая регрессия</kwd><kwd>классификация цифровых изображений</kwd></kwd-group><kwd-group xml:lang="en"><kwd>Daubechies wavelet transform</kwd><kwd>Haralick texture features</kwd><kwd>neural network</kwd><kwd>logistical regression</kwd><kwd>digital images classifi cation</kwd></kwd-group></article-meta></front><body><sec><title>ВВЕДЕНИЕ</title><p>Сегодня цифровизация сельского хозяйства, где полевые условия контролируются с помощью автономных систем, набирает все большие обороты. При создании систем подобного рода необходимо решать задачи идентификации болезни растений, анализировать динамику их роста.</p><p>Выявление болезней растений на ранней стадии и их своевременное предотвращение позволяет избежать больших потерь с точки зрения качества, количества и финансов. Таким образом, для укрепления экономики и сельского хозяйства государство нуждается в системах, способных выявлять болезни растений с высокой точностью и скоростью.</p><p>Имеется большая потребность в новых технологиях, отслеживающих рост растений и прогнозирующих воздействие на него различных факторов. В большинстве случаев болезни можно проследить по состоянию побегов растения (стебля, листьев). Значит, идентификация растений, выявление болезней, анализ роста играют существенную роль в успешном выращивании агрономических культур.</p><p>Все операции, связанные с обработкой изображений, выполняются в цветовом пространстве RGB, являющемся одним из основных способов представления изображений.</p></sec><sec><title>МАТЕРИАЛЫ И МЕТОДЫ</title></sec><sec><title>Вейвлет-преобразование</title><p>Вейвлет-преобразование представляет со­бой многомасштабное и многоразрешающее преобразование, позволяющее извлекать из изображения высокочастотные и низкочастотные компоненты. В данной работе используется дискретное двумерное вейвлет-преобразование Добеши (DWT2, вейвлет ‘db2’). Это означает, что квадратное изображение будет передано в качестве входных данных для вейвлет-функции, которая разделит все изображение на 4 компоненты (рис. 1).</p><fig id="fig-1"><caption><p>Рис. 1. Принцип одноуровневого двумерного вейвлет-разложения исходного изображения</p><p>Примечание: составлено по [1].</p></caption><graphic xlink:href="procyber-23-1-g001.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2024/1/qoKd8CqVivNsFAbix27TQ1c6FHMTXXzQzPKp1iaG.jpeg</uri></graphic></fig><p>Компоненты на рис. 1 – квадранты поддиапазонов частот, где L – низкая частота, H – высокая частота. Разложение может быть многоуровневым, где n – число уровней разложения. LL-квадрант представляет собой аппроксимацию исходного изображения (cAn), HL – его вертикальные детали (cVn), LH – горизонтальные детали (cHn), HH – диагональные составляющие (сDn) [1–4].</p><p>Текстура наряду с цветом является самой важной особенностью, если необходимо обнаружить какой-либо объект. Это относится и к классификации состояния растений – любое заболевание отличается характерным распространением по организму и цветом. На основе расположения пикселей на изображении появляется возможность идентифицировать любой объект.</p><p>Существует множество способов текстурного анализа. Здесь используется метод текстурных признаков Харалика. Эти признаки рассчитываются на основе матрицы совпадения уровней серого (gray-level co-occurrence matrix, GLCM), являющейся оценкой плотности распределения вероятностей второго порядка p2 (P, Q, Z, Y), полученной по одному изображению в предположении, что плотность вероятности p2 зависит лишь от взаимного расположения P и Q. При этом Z является числом, обозначающим учет соседних пикселей, в том числе их расстояния от пикселя интереса. Y – значение ориентации пикселя интереса и соседних пикселей (в градусах) в интервале [0; 2π) с шагом π/4.</p><p>Проще говоря, GLCM-матрица строится на основе вычислений частоты встречаемости пикселя с интенсивностью i с пикселем интенсивности j. Каждый элемент (i, j) в матрице смежности описывает число случаев, когда пиксель со значением i встречается с пикселем со значением j [<xref ref-type="bibr" rid="cit5">5</xref>].</p><p>Хотя GLCM-матрица и представляет собой текстурные свойства, но она неудобна при непосредственном анализе изображения. Признаки Харалика, вычисляемые на ее основе, зарекомендовали себя куда лучше. В данной работе использовались 4 информативных признака, дающих наибольшую итоговую точность, из 14 возможных:</p><p> (1)</p><p> (2)</p><p> (3)</p><p> (4)</p></sec><sec><title>Алгоритм классификации</title><p>Целью данной работы является классификация большого числа цифровых изображений растений на основе информации об их текстуре и цвете. Алгоритм классификации основан на совместном применении текстурных признаков Харалика, вейвлет-преобразования Добеши и многослойной нейронной сети.</p><p>Общий порядок действий алгоритма представлен в схеме на рис. 2.</p><fig id="fig-2"><caption><p>Рис. 2. Схема предлагаемого алгоритма классификации</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-23-1-g002.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2024/1/qVwTqDZhn0kKnWZu9HpnIzFXKVnwmU2aRqfEOjcw.jpeg</uri></graphic></fig><p>Как можно увидеть из рис. 2, после инициализации набора данных и его предварительной обработки к каждому изображению применяется дискретное двумерное вейвлет-преобразование Добеши. Полученные коэффициенты затем группируются по квадрантам поддиапазонов частот, помогая извлекать текстурные признаки, которые передаются в качестве входных данных для классификационных методов.</p></sec><sec><title>Загрузка и подготовка данных</title><p>Исходные данные приведены на рис. 3 и представляют собой набор цветных цифровых изображений, распределенных по директориям, имена которых соответствуют названиям классов. Изображения были предварительно подготовлены – приведены к единому размеру 256×256 пикселей и распределены поровну на каждый класс (сбалансированы по 2 200 единиц в каждом классе, суммарно 17 600 фотографий). Таким образом, количество директорий совпадает с числом классов, т. е. 8.</p><fig id="fig-3"><caption><p>Рис. 3. Классы исходных данных</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-23-1-g003.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2024/1/0Rpru0Q1rRAm3ajpveNC6IYaG8HQ3XqLlWRSuGfM.jpeg</uri></graphic></fig><p>Датасет на рис. 3 был загружен с общедоступного ресурса по исследованию данных Kaggle.</p></sec><sec><title>Получение значений признаков</title><p>Результат вейвлет-преобразования, описанного выше, приведен на рис. 4 на примере исходных данных.</p><fig id="fig-4"><caption><p>Рис. 4. Пример одноуровневого двумерного вейвлет-разложения исходного изображения</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-23-1-g004.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2024/1/ZU5TsTeZrq2ldYh0tsjg6nS87wrMYELl3crpSWar.jpeg</uri></graphic></fig><p>Так как каждый из 4-х квадрантов представляет собой RGB-область размером 128×128 пикселей исходного изображения, для каждого из 3-х его каналов (красная, зеленая и синяя компонента) строится симметричная нормированная GLCM-матрица в 256 оттенках серого. Значит, для целого изображения будет вычислено 12 GLCM-матриц оттенков серого. В свою очередь, каждая такая матрица порождает 4 значения признаков Харалика, описанных ранее. Таким образом, при одноуровневом вейвлет-преобразовании одно цветное изображение будет описано вектором-строкой из 48 коэффициентов-признаков Харалика. Вообще длина вектора может быть рассчитана по следующей формуле:</p><p> (5)</p><p>где Q = 4 – количество областей (квадрантов), на которые разбивается изображение;</p><p>C = 3 – количество каналов цветного изображения (в данном случае RGB);</p><p>H – количество признаков Харалика, порождаемых GLCM-матрицей (здесь H = 4);</p><p>n – число уровней вейвлет-преобразования.</p><p>Формула (5) представляет расчет итогового числа текстурных признаков на единицу исходных данных.</p><p>Логично, что с увеличением количества n уровней вейвлет-разложения будет пропорционально расти и размерность F вектора признаков. В текущей работе число уровней разложения n было определено эмпирически. Для восьми классов оптимально значение n = 3. Отсюда итоговое число признаков F = = 4 • 3 • 4 • 3 = 144. Для удобства восприятия и дальнейших расчетов все коэффициенты – это массив размером m × k (где m = 17 600 – общее число изображений в наборе данных, k = F + 1 = 145 – итоговое количество признаков Харалика и метка класса, закодированная способом «label encoding») – были записаны в CSV-файл средствами библиотеки Pandas языка Python (рис. 5).</p><fig id="fig-5"><caption><p>Рис. 5. Текстурные признаки Харалика для исходного датасета</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-23-1-g005.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2024/1/Bs4dDkVhCDRxetBmkczjveW1Zhk06QvmBbEEjNLk.jpeg</uri></graphic></fig><p>Стоит также упомянуть другие модули и библиотеки Python, задействованные в данной работе:</p><p>Os – для работы с операционной и файловой системами (загрузка и инициализация набора данных);</p><p>OpenCV – для анализа изображений;</p><p>NumPy – для работы с многомерными массивами;</p><p>Matplotlib – для визуализации данных и вычислений;</p><p>PyWt – для вейвлет-вычислений;</p><p>Scikit-learn – для операций машинного обучения.</p></sec><sec><title>РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ</title><p>Фактически датафрейм из рис. 5 представляет собой готовую для дальнейших вычислений и решения основной задачи базу данных признаков изображений. Входными данными для обучения нейронной сети будут являться значения признаков Харалика (все столбцы датафрейма, кроме последнего), выходными – последний столбец датафрейма с закодированными метками классов.</p><p>Следующим шагом является предварительная обработка данных.</p><p>Во-первых, это разделение на обучающую и тестовую выборки в оптимальном соотношении 70 к 30.</p><p>Во-вторых, стандартизация: некоторые характеристики имеют широкий диапазон значений и в процессе классификации могут создать систематическую ошибку. Вспомогательный класс StandartScaler масштабирует данные так, чтобы они имели нулевое среднее значение и единичную дисперсию (μ = 0, σ = 1). Важно то, что здесь выполняется стандартизация лишь входных данных, поскольку выходные содержат только закодированные метки [<xref ref-type="bibr" rid="cit6">6</xref>][<xref ref-type="bibr" rid="cit7">7</xref>].</p><p>В-третьих, уменьшение размерности, являющееся самым важным шагом предобработки. Оно улучшает скорость работы методов машинного обучения, снижает требования к памяти при минимальных информационных потерях. Одним из распространенных методов уменьшения размерности данных является метод главных компонент (principal component analysis, PCA). В библиотеку Scikit-learn этот метод уже встроен, поэтому главной задачей становится правильный выбор количества главных компонент набора данных. Чтобы ее решить, нужно построить график зависимости параметра «Variance explained» от количества главных компонент (рис. 6).</p><fig id="fig-6"><caption><p>Рис. 6. График зависимости параметра «Variance explained» от числа главных компонент</p><p>Примечание: составлено авторами.</p></caption><graphic xlink:href="procyber-23-1-g006.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2024/1/OIJZkcSlUdo30FjoE9cIqPo55oEZEEnX2hmvi0kG.jpeg</uri></graphic></fig><p>Параметр «Variance explained» характеризует степень потери полезной информации о данных. Чем ближе он к 1, тем больше информации сохраняется для анализа [<xref ref-type="bibr" rid="cit8">8</xref>].</p><p>Как можно заметить из рис. 6, уже при числе N = 40 компонент значение вариативности практически достигает единицы, так что именно этот показатель будет взят для дальнейших расчетов. Таким образом, с минимальными потерями удалось снизить размерность данных более чем в три раза (со 144 до 40 признаков).</p><p>Непосредственно классификация выполнялась двумя способами:</p><p>Результаты приведены в сравнительной таблице.</p><table-wrap id="table-1"><caption><p>Таблица</p><p>Результаты нейросетевой классификации</p><p>Примечание: составлено авторами.</p></caption><table><tbody><tr><td>Метод классификации</td><td>Метрика</td></tr><tr><td>accuracy</td><td>precision</td><td>recall</td><td>f-score</td></tr><tr><td>Логистическая регрессия</td><td>88 %</td><td>0.88</td><td>0.87</td><td>0.87</td></tr><tr><td>Персептрон</td><td>84 %</td><td>0.84</td><td>0.83</td><td>0.84</td></tr></tbody></table></table-wrap><p>Как можно видеть из таблицы, благодаря комбинированию методов текстурного анализа и машинного обучения удалось достичь высоких показателей точности – до 88 %.</p></sec><sec><title>ЗАКЛЮЧЕНИЕ</title><p>В статье предложен алгоритм многоклассовой классификации состояния растений с использованием текстуры изображений, отличающийся совокупным применением методов вейвлет-анализа и машинного обучения, что позволило достичь хороших результатов (до 88 % точности).</p><p>Перспективы совершенствования предложенного метода могут включать выбор наиболее оптимального типа вейвлет-преобразования и классификационного метода машинного обучения.</p></sec></body><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Vyas A., Paik J. Review of the application of wavelet theory to image processing. IEIE Transactions on Smart Processing &amp; Computing. 2016;5(6):403‒417.</mixed-citation><mixed-citation xml:lang="en">Vyas A., Paik J. Review of the application of wavelet theory to image processing. IEIE Transactions on Smart Processing &amp; Computing. 2016;5(6):403‒417.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Балаганский А. Ю., Гребеньков А. А. Вейвлет-преобразование для обработки изображений системы управления отоплением с применением методов машинного обучения // Информация и образование: границы коммуникаций. 2022. № 14. С. 147–150.</mixed-citation><mixed-citation xml:lang="en">Балаганский А. Ю., Гребеньков А. А. Вейвлет-преобразование для обработки изображений системы управления отоплением с применением методов машинного обучения // Информация и образование: границы коммуникаций. 2022. № 14. С. 147–150.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Мельникова Ю. С. Анализ и обработка медицинских изображений с помощью метода вейвлетана лиза в ветеринарии // Фундаментальные и прикладные исследования в информатике и цифровизации : материалы симпозиума XVIII (L) Междунар. науч. конф. студентов, аспирантов и молодых ученых, приуроченной к 50-летию КемГУ, 26 апреля 2023 г., г. Кемерово. Кемерово : Кемеровский государственный университет, 2023. С. 138–141.</mixed-citation><mixed-citation xml:lang="en">Мельникова Ю. С. Анализ и обработка медицинских изображений с помощью метода вейвлетана лиза в ветеринарии // Фундаментальные и прикладные исследования в информатике и цифровизации : материалы симпозиума XVIII (L) Междунар. науч. конф. студентов, аспирантов и молодых ученых, приуроченной к 50-летию КемГУ, 26 апреля 2023 г., г. Кемерово. Кемерово : Кемеровский государственный университет, 2023. С. 138–141.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Alekseev V. V., Kaliakin I. V. The role of sampling rate in wavelet transform decomposition. In: Proceedings of the XIX IEEE International Conference on Soft Computing and Measurements SCM 2016, May 25‒27, 2016, Saint Petersburg. St. Petersburg; 2016. p. 392–394.</mixed-citation><mixed-citation xml:lang="en">Alekseev V. V., Kaliakin I. V. The role of sampling rate in wavelet transform decomposition. In: Proceedings of the XIX IEEE International Conference on Soft Computing and Measurements SCM 2016, May 25‒27, 2016, Saint Petersburg. St. Petersburg; 2016. p. 392–394.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Ковалева И. Л. Текстурные признаки изображений. Минск : Белорусский национальный технический университет, 2010. 26 с.</mixed-citation><mixed-citation xml:lang="en">Ковалева И. Л. Текстурные признаки изображений. Минск : Белорусский национальный технический университет, 2010. 26 с.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Предварительная обработка данных. URL: https://scikit-learn.ru/6-3-preprocessing-data/ (дата обращения: 25.12.2023).</mixed-citation><mixed-citation xml:lang="en">Предварительная обработка данных. URL: https://scikit-learn.ru/6-3-preprocessing-data/ (дата обращения: 25.12.2023).</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Как писать преобразователи данных в Sklearn. URL: https://habr.com/ru/companies/skillfactory/articles/675876/ (дата обращения: 25.12.2023).</mixed-citation><mixed-citation xml:lang="en">Как писать преобразователи данных в Sklearn. URL: https://habr.com/ru/companies/skillfactory/articles/675876/ (дата обращения: 25.12.2023).</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Kumar A. PCA Explained Variance Concepts with Python Example. 2023. URL: https://vitalfl ux.com/pca-explained-variance-concept-python-example/ (дата обращения: 27.12.2023).</mixed-citation><mixed-citation xml:lang="en">Kumar A. PCA Explained Variance Concepts with Python Example. 2023. URL: https://vitalfl ux.com/pca-explained-variance-concept-python-example/ (дата обращения: 27.12.2023).</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
