ятиями не позволяет выстроить рациональное энергопотребление в ВИОК, построенное на использовании избыточных ресурсов. Представленная модель позволит выстроить эффективное ресурсное взаимодействие, реорганизовать существующие и создать новые связи для затрат и выполнение заданных производственных программ.
Список литературы
1. Бикулова М. А. Нефтеперерабатывающие предприятия как элемент нефтегазовой отрасли // Молодой ученый. 2019. №49. С. 163-168.
2. Бушуев В.В., Куричев Н.К., Громов А.И. Энергетическая стратегия - 2050: методология, вызовы, возможности // ЭСКО. Энергетика и промышленность. 2013. № 6. С. 14-19.
3. ГОСТ Р 52106-2003 Ресурсосбережение. Общие положения.
4. Кислицын Е.В., Панова М.В., Шишков Е.И. Проблемы предприятий нефтегазового комплекса России: тенденции и пути решения // Интернет-журнал «НАУКОВЕДЕНИЕ» Том 9, №3 (2017) http://naukovedenie.ru/PDF/15EVN317.pdf (доступ свободный)
5. Лагоша Б.А. Оптимальное управление в экономике: Учеб. пособие. М.: Финансы и статистика, 2003.
192 с.
6. Омельченко И.Н., Александров А.А., Бром А.Е., Белова О.В. Основные направления развития логистики ХХ! века: ресурсосбережение, энергетика и экология // Гуманитарный вестник. 2013. № 10(12). С.10.
7. Остроухова Н.Г. Особенности реинжиниринга бизнес-процессов предприятиях энергетики // Науковедение. 2013. № 6 (19). С. 79.
8. Бром А.Е., Сидельников И.Д. Функциональное предназначение возвратных потоков в машиностроении // В сборнике: Устойчивое развитие и новая индустриализация: наука, экономика, образование. Материалы конференции. Москва, 2021. С. 18-22.
9. Сидельников И.Д. Бром А.Е. Определение времени восстановительного ремонта при организации возвратных потоков и рециклинга в машиностроении // Наука и бизнес: пути развития. 2020. №4 (106). С. 47-50.
Сидельников Иван Дмитриевич, канд. техн. наук, доцент, [email protected]. Россия, Москва, Московский государственный технический университет им. Н.Э. Баумана
RESOURCE SA VING MODEL FOR OIL AND GAS COMPANIES TAKING INTO ACCOUNT THE USE OF EXCESS
ENERGY RESOURCES.
I.D. Sidelnikov
The article is devoted to the problem of optimization of the structure of the energy economy in vertically integrated industry companies (VIOC) of the Russian oil and gas complex. The authors emphasize rational energy saving and use of excess energy resources of enterprises. The article presents the setting of the optimization task, describes the model developed by the authors, which allows to determine the parameters of resource interaction of VIOC enterprises taking into account the use of excess energy resources.
Key words: oil and gas complex, excess energy resources, optimization, company structure, energy.
Sidelnikov Ivan Dmitrievich, candidate of technical sciences, docent, [email protected], Russia, Moscow, Bauman Moscow State Technical University
УДК 005.6
DOI: 10.24412/2071-6168-2024-2-593-594
ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ РЕГРЕССИОННЫХ МОДЕЛЕЙ ПРИ ОЦЕНКЕ КАЧЕСТВА ПОТРЕБЛЕНИЯ ЭЛЕКТРОННОГО КОНТЕНТА
В. Г. Мосин, В.Н. Козловский
В работе исследуется метод, определяющий влияние выбросов на производительность регрессионных моделей. На примере данных о потреблении контента показано, что исключение аномальных объектов способно существенно повысить их прогнозирующую способность. Даны рекомендации по применению метода исключения аномальных данных.
Ключевые слова: контент, оценка качества, анализ данных, сингулярные разложения, детекция аномалий, удаление выбросов, регрессионные модели, scikit-learn, pandas, numpy, SVD.
1. Введение. Выбросы представляют собой наблюдения, которые значительно отклоняются от остальных значений в наборе данных. Хорошо известно, что выбросы оказывают существенное влияние на прогнозирующую способность моделей машинного обучения, поэтому важно учитывать их в анализе данных и принимать меры для их предварительной обработки с целью нивелировать влияние аномальных значений на производительность и эффективность моделей машинного обучения [6, 7].
Одним из основных негативных факторов наличия выбросов и их влияния на модели машинного обучения является искажение статистических показателей данных, таких как среднее значение, медиана и стандартное отклонение. Это приводит к неправильному определению зависимостей между признаками и целевой переменной, ведь выбросы могут внести существенное искажение в статистику данных [10]. Кроме того, выбросы могут сильно влиять на основные алгоритмы машинного обучения, такие как линейная регрессия или метод ближайших соседей, так как эти модели основываются на расстоянии между наблюдениями, и выбросы могут занимать отдельные области пространства наблюдений. Это может приводить к искажению предсказаний или повышению ошибки модели.
593
В целом, выбросы в данных могут серьезно повлиять на прогнозирующую способность моделей машинного обучения, поэтому важно учитывать их при анализе данных и выборе подходящих методов обработки выбросов.
1.1. Теоретическая часть. Итак, если в данных есть существенные выбросы, то модель, обучаясь на таких данных, после обучения дает некорректные прогнозы даже на нормальных, не являющихся аномальными, объектах. И наоборот: обучившись на нормальных объектах, модель, получая для прогноза аномальный объект, может дать некорректный прогноз.
Это замечание позволяет нам сформулировать два вполне очевидных принципа работы с нетипичными
данными:
1. Обучать модели следует только на типичных объектах.
2.Применять модели следует только к типичным объектам.
Другой вопрос, какие объекты считать типичными, другими словами, что есть норма и что есть аномалия в имеющихся для обучения и во вновь поступающих для прогноза данных. Если обучающие данные размечены по принципу «норма/аномалия», то определение выбросов — это просто задача бинарной классификации. Если же такой разметки нет, то ситуация существенно усложняется.
Один и способов детекции аномалий на неразмеченных данных состоит в применении сингулярных разложений: методом SVD определяются главные направлении в облаке обучающих данных, вычисляются проекции объектов подпространства, порожденные одним, двумя или несколькими главными направлениями и вычисляется так называемая реконструкционная ошибка, то есть расстояние от объекта до его проекции. Объекты с наибольшей реконструкционной ошибкой признаются выбросами.
1. 2. Постановки задачи
1.2.1. Предмет исследования. Исследуется прогнозирующая способность нескольких регрессионных моделей до и после удаления выбросов.
1.2.2. Методика исследования. Применяя метод сингулярных разложений, мы вычисляем реконструкци-онные ошибки объектов обучающих данных и устанавливаем порог отсечения на уровне определенного перцентиля (99%, 98%, 97% и так далее, до 90%). Объекты, превысившие порог отсечения, признаются выбросами и удаляются, после чего на очищенных данных обучается регрессионная модель. В качестве ее метрики эффективности мы используем коэффициент детерминации, который вычисляем на тестовых данных, после того, как к ним применяется тот же метод очистки от выбросов.
1.2.3. Цель исследования. Наша цель — выяснить, приводит ли удаление выбросов к существенному повышению коэффициента детерминации.
1. 3. Технологии. В настоящей работе мы используем среду jupyter notebook для анализа и обработки данных. Она предоставляет удобные инструменты для работы с python и его основными библиотеками: numpy, pandas, scikit-learn и matplotlib [1, 2].
Библиотека numpy играет важную роль в научных вычислениях и обработке массивов данных в python. Она предлагает эффективные структуры данных, алгоритмы и функции для работы с числовыми массивами разных размерностей. В данной работе мы активно применяем сингулярные разложения, которые реализованы в numpy в модуле linalg, в качестве ключевого приема для обработки данных [4].
Лучшей библиотекой для работы с данными в python является pandas. Она тесно интегрируется с другими инструментами для анализа и обработки данных на платформе python, такими как numpy, scikit-learn и matplotlib. Обеспечивая эффективные средства для обработки информации, pandas также предлагает множество алгоритмов и функций для анализа и визуализации данных [1].
Для решения регрессионных задач мы применяем библиотеку Scikit-learn, также известную как sklearn. Scikit-learn представляет собой мощный и гибкий инструмент машинного обучения с широким спектром возможностей и удобным интерфейсом.
2. Описание данных. Мы используем данные о потреблении контента одного из ведущих хостингов за период 500 дней, с 2021-08-20 по 2023-01-01. В качестве показателя востребованности контента мы берем общее количество просмотров за сутки, в качестве показателя удовлетворенности — количество лайков. Кроме того, мы используем еще один вспомогательный признак: количество показов значков канала в течение суток для того, чтобы иметь избыточную размерность в пространстве объектов и возможность редукции данных к первому главному направлению.
3. Алгоритм
3.1. Чтение данных. Используя функцию read_csv из библиотеки pandas, загружаем набор данных о потреблении контента и создаем дата-фрейм в текущей среде исполнения программы.
Дата Просмотры Показы Лайки
2023-01-01 475.0 5176.0 16.0
2022-12-31 174.0 2222.0 4.0
2022-12-30 490.0 5584.0 3.0
2021-08-22 275.0 4176.0 2.0
2021-08-21 222.0 2976.0 4.0
2021-08-20 209.0 2880.0 1.0
3.2. Разведочный анализ. Далее, мы применяем метод info из библиотеки pandas, чтобы получить инфор-
мацию о признаках:
# Column Non-Null Count Dtype
0 Просмотры 500 non-null float64
1 Показы 500 non-null float64
2 Лайки 500 non-null float64
594
Видим, что имеется набор из 500 объектов. Признаком для их индексации служит дата, то есть, сами даты и являются объектами. Все признаки относятся к типу с плавающей запятой и не содержат пропущенных значений.
3.3. Установка начальных значений. В данном алгоритме мы реализуем вложенный цикл по трем уровням:
1.На верхнем уровне мы будем варьировать признаки, используя их поочередно в качестве целевой функции для регрессионной задачи, а оставшиеся два признака — в качестве предикторов модели.
2.На втором уровне мы будем варьировать объем данных, которые мы признаем выбросами, постепенно увеличивая их число.
3. Наконец, на третьем, самом глубоком уровне вложенности мы будем несколько раз воспроизводить случайные разбиения данных на обучающую и тестовую выборки для того, чтобы после усреднения результатов нивелировать эффект случайности.
3.3.1. Начальная целевая функция. Присваиваем значение переменной, под именем которой будет выступать целевая функция: target-Просмотры'.
3.3.2 Начальный процент выбросов. Мы будем отсеивать выбросы, используя (100 - К)-й перцентиль от общего объема данных (подробнее об этом см. ниже). На старте цикла устанавливаем К=0.
3.4. Разбиение данных на train и test
Пользуемся модулем model_selection из библиотеки skleam и применяем метод tram_test_split с параметром test_size=0.2. В результате получаем два датафрейма: dfjrain с 400 объектами и df_test с 100 объектами.
3.5. Приведение обучающих данных к стандартной нормализации
Применяя метод describe из библиотеки pandas к обучающей выборке, получаем информацию о статисти-
ческих показателях всех признаков:
min mean max std
Просмотры 159.00 936.51 2200.00 418.144
Показы 1938.00 8093.78 39479.00 3816.08
Лайки -6.00 15.80 70.00 9.13
Диапазоны значений для признаков 'Показы' и 'Лайки' сильно отличаются друг от друга, отличие составляет несколько порядков. Чтобы избежать неравномерности в масштабах, применяем процесс нормализации к данным и приводим их к стандартному виду:
(!1Мгат_погт = ((ИМгат - df_train.mean())/df_train.std() После преобразования, все признаки получаются центрированными с нулевыми средними значениями, а их дисперсии становятся единичными. Таким образом, дисбаланс в размерностях исчезает:
min mean max std
Просмотры Показы -1.85 -1.61 0.00 0.00 3.02 8.22 1.00 1.00
Лайки -2.38 0.00 5.93 1.00
3.6. Приведение тестовых данных к стандартной нормализации. Применяя метод describe из библиотеки pandas к тестовой выборке, мы получаем сведения о статистиках по всем признакам на тесте:
min mean max std
Просмотры Показы 126.00 1701.00 916.10 8418.39 1805.00 69432.00 422.82 6887.19
Лайки 0.00 17.86 63.00 12.48
Для приведения облака тестовой выборки к облаку обучающей выборки, требуется преобразовать данные тестовой выборки с использованием средних и дисперсий обучающей выборки:
df_test_norm = (df_test - df_train.mean())/df_train.std() Важно отметить, что после этой процедуры средние значения признаков тестовой выборки отличаются от нуля, а их дисперсии не являются единичными:
min mean max std
Просмотры -1.93 -0.04 2.07 1.01
Показы -1.67 0.08 16.07 1.80
Лайки -1.73 0.22 5.16 1.36
Это происходит потому, что центр и рассеяние облака были настроены на обучающей выборке заранее (см. шаг 3.5).
3.7. Регрессионная задача до удаления выбросов
3.7.1. Удаление целевой функции. Пользуясь методом drop библиотеки pandas, удаляем столбец с именем target как в обучающем, так и в тестовом датафреймах.
3.7.2. Вывод массивов для регрессионной задачи. Пользуясь методом to_numpy библиотеки pandas, преобразуем датафреймы к парам массивов: X_train, y_train и X_test, y_test. Здесь X представляют собой двумерные массивы со значениями предикторов, а y — одномерные массивы со значениями целевой функции.
3.7.3. Построение и обучение регрессионной модели. Пользуясь методом LinearRegression библиотеки sklearn, формируем объект model. Затем применяем к нему метод fit на обучающих данных X_train, y_train.
3.7.4. Вывод метрики эффективности. Эффективность модели вычисляем на тестовых данных X_test, y_test, используя метод score библиотеки sklearn. Результат записываем в переменную score_before.
На этом решение регрессионной задачи без выполнения каких-либо действия по очистке данных закончено. Далее мы будем избавляться от выбросов за счет сингулярных разложений матрицы обучающих данных и решать ту же регрессионную задачу на очищенных данных для того, чтобы сравнить результаты и выяснить, приводит ли удаление выбросов к повышению прогнозирующей способности регрессионной модели.
3.8. Разложение матрицы обучающих данных методом SVD. Сингулярное разложение [3, 8, 9] матрицы X — это способ представления матрицы X в виде произведения двух ортогональных матриц U и V и диагональной матрицы S следующим образом:
X = USV-1
При этом столбцы матриц U и V являются левым и правым сингулярными базисами соответственно, а диагональные элементы матрицы S являются сингулярными значениями матрицы X. Теорема о сингулярном разложении утверждает, что такое разложение существует для любой матрицы X (а значит, и для нашей матрицы обучающих данных).
3.8.1. Перевод обучающих данных из датафрейма в массив. Данные были разбиты на train и test выше (см. шаг 3.4) и нормализованы по средним и дисперсиям обучающей части выборки (см. шаг 3.6).
Для осуществления сингулярного разложения данных обучающей выборки мы будем использовать методы библиотеки numpy, поэтому перед тем, как приступить к разложению, мы преобразовываем датафрейм df_tram_noim в массив numpy, используя метод to_numpy из библиотеки pandas. Таким образом, мы получаем двумерный массив X_train нужного нам формата.
3.8.2.Разложение SVD. Получение сингулярных базисов U, V и сингулярных значений S осуществляется с помощью метода svd из модуля linalg библиотеки numpy. Применение этого метода к матрице X_train возвращает три объекта:
1. двумерный массив U, столбцы которого представляют собой левый сингулярный базис,
2. одномерный массив Sigma, содержащий значения сингулярных значений и служащий диагональю матрицы S.
3. двумерный массив V, представляющий собой обращенную матрицу V из теоремы о сингулярном разложении, его строки образуют правый сингулярный базис.
3.8.3. Координаты обучающих объектов в сингулярном базисе. Если мы умножим матричное равенство из теоремы о сингулярном разложении на матрицу V справа, то оно изменится следующим образом:
XV = US
Отметим, что после нормализации данных они становятся центрированными. Поэтому левая часть этого равенства представляет собой теорему о замене базиса [3]. Другими словами, строки матрицы, которые находятся в левой части, представляют собой координаты точек облака обучающих данных в правом сингулярном базисе.
Для того чтобы получить координаты облака обучающих данных в правом сингулярном базисе, мы создаем массив S_train и, с применением метода dot из библиотеки numpy, присваиваем ему результат матричного произведения массивов X_train и V.T. Здесь важно отметить, что мы транспонировали правый множитель из-за особенностей реализации алгоритма сингулярного разложения в библиотеке numpy (см. сноску выше).
3.9. Редукция обучающих данных к первому главному направлению. Для получения координат редуцированных данных в сингулярном базисе, мы применяем следующий подход. Возьмем массив S_train, который был получен ранее, и заменим все столбцы, кроме первого, нулями. Полученному массиву присваиваем имя S_trian_reduce. В этом массиве строки представляют собой координаты редуцированных данных в сингулярном базисе, но нас интересуют их координаты в исходном базисе. Для этого нам нужно снова воспользоваться теоремой о замене базиса и выполнить обратный переход. Однако на этот раз мы применяем его не к полной матрице S_trian, а к редуцированной матрице S_trian_reduce.
Результат матричного произведения массивов S_train_reduce и V присваиваем массиву X_train_reduce, который получается с использованием метода dot из библиотеки numpy. Координаты проекций исходных данных на первое главное направление теперь содержатся в строках массива X_train_reduce.
3.10. Отклонение объектов, обучающих данных от первого главного направления. Выбросами мы будем считать объекты с высокой реконструкционной ошибкой, которая представляет собой норму разности между редуцированными данными и исходными данными. Другими словами, это расстояние от проекции точки облака данных на первое главное направление до самой точки.
Для вычисления реконструкционной ошибки мы используем модуль linalg из библиотеки numpy и его метод norm. Мы применяем этот метод к разности двумерных массивов X_train_reduce - X_train, указывая значение атрибута axis=1, чтобы норма разности вычислялась именно для строк. Результат сохраняем в одномерном массиве reconstruction_error_train, после чего в нем содержатся реконструкционные ошибки всех объектов обучающей выборки.
3.11. Критический порог отклонения. Мы будем определять выбросы в данных путем установления порога для реконструкционной ошибки, причем, этот порог будет зависеть от объема обучающей выборки. Если мы готовы пожертвовать K% данных при обучении модели, чтобы получить более устойчивую модель, то порог отсечения будет выбран как (100 - К)-й перцентиль массива реконструкционных ошибок.
Для этого мы используем метод pecentil из библиотеки numpy для массива reconstruction_error_train и результат применения этого метода записываем в переменную threshold_train.
3.12. Аномальные объекты в обучающей выборке. Для получения аномальных объектов обучающей выборки пользуемся методом where из библиотеки numpy. В данном случае условие метода будет следующим:
reconstruction_error_train > threshold_train.
Результат работы этого метода записываем в массив anomaly_indices_train, содрежащий индексы объектов, которые мы посчитали выбросами, то есть некий набор номеров.
3.13. Реконструкционная ошибка на тесте. Получение точек тестовой выборки в сингулярном базисе происходит аналогичным тому, как это было сделано на шаге 3.8, где мы проводили эту процедуру по отношению к точкам обучающей выборки. Отметим, что на этом шаге мы не выполняем новое сингулярное разложение для тестовых данных, мы используем правый сингулярный базис из разложения, полученного для обучающей выборки (см. шаг 3.8.2, пункт 3). Умножаем массив X_test на массив V.T (как на шаге 3.8.3), в результате получаем двумерный массив S_test.
Затем, аналогично шагу 3.9, мы сокращаем этот массив до первого столбца, получая массив S_test_reduce, и возвращаемся к исходному базису, умножая сокращенные сингулярные координаты на матрицу V. В итоге получается массив X_test_reduce, в котором строки представляют собой проекции точек тестовой выборки на первое главное направление обучающей выборки.
После этого массив реконструкционных ошибок тестовых данных reconstruction_error_test получается за счет метода norm из модуля linalg библиотеки numpy, так же как и на шаге 3.10.
3.14. Выбросы на тесте. На шаге 3.11 мы получили порог отсечения реконструкционной ошибки, используя (100 - К)-й перцентиль на обучающей выборке. Здесь мы не вычисляем новый перцентиль на тестовой выборке. Наоборот: тот же порог применяется к тестовой выборке:
reconstruction_error_test > threshold_train
По этому условию индексы нетипичных объектов возвращаются методом where из библиотеки numpy и записываются в массив anomaly_indices_test.
3.15. Удаление выбросов
3.15.1. Удаление выбросов в обучающей выборке. Итак, на шаге 3.4 мы получили обучающую выборку df_train, на шаге 3.5 привели ее к стандартному виду df_train_norm, а на шаге 3.12 получили индексы аномальных объектов в виде массива anomaly_indices_train. Теперь, используя метод drop библиотеки pandas, мы удаляем из нормализованных обучающих данных df_train_norm строки с найденными номерами выбросов.
3.15.2. Удаление выбросов в тестовой выборке. Точно также на шаге 3.4. мы получили тестовую выборку df_test, на шаге 3.6 нормализовали ее к стандартному виду df_test_norm, а на шаге 3.14 получили массив с индексами аномалий на тесте anomaly_indices_test. Теперь, так же как и на шаге 3.15.1 мы удаляем аномальные объекты из тестовой выборки.
3.16. Регрессионная задача после удаления выбросов. Действуя так же, как и на шаге 3.7, обучаем модель на X_train, y_train и вычисляем ее метрику эффективности на X_test, y_test. Результат записываем в переменную score_after.
3.17. Усреднение результатов случайных разбиений. Повторяем шаги 3.4-3.16 достаточное число раз и усредняем значения переменных score_before и score_after для того, чтобы сгладить случайные артефакты и получить устойчивые результаты. На иллюстрациях в разделе 4 приведены результаты с повторением 25 раз.
3.18. Увеличение процента выбросов. Увеличиваем значений переменной К на 1 и повторяем шаги 3.43.17. Этот шаг повторяем 10 раз, значения переменных score_before и score_after записываем в массивы score_before_list и score_after_list.
3.19. Перебор целевых функций. Изменяем значение переменной target дважды: сначала полагаем target-Показы', а затем target-Лайки' и еще дважды воспроизводим шаги с 3.4 по 3.18.
4. Результаты. Мы исследовали поведение всех трех признаков, используя их поочередно в качестве целевой функции регрессионной задачи с оставшимися двумя признаками в качестве предикторов. Нас интересовал вопрос: что будет, если при решении регрессионной задачи удалять из данных некоторое количество нетипичных объектов, постепенно увеличивая их число, и не приведет ли это к повышению прогнозирующей способности регрессионной модели. Результаты исследования таковы.
4.1. Целевая функция 'Просмотры'. Процент объектов, которые мы готовы признать аномальными, изменяется от 0% до 10%. Коэффициент детерминации на неочищенных данных приблизительно постоянен (что и неудивительно, так как мы использовали множественный прогон случайных разбиений, и это нивелировало возможные случайные отклонения) и находится в районе 0.6.
После удаления выбросов коэффициент детерминации составил более 0.8, что говорит об огромной разнице в прогнозирующей способности моделей до и после удаления выбросов.
1.0
0.8 0.6 0.4 0.2 0.0
Поведение кривой коэффициента детерминации таково, что достаточно пожертвовать 1% обучающих данных для качественного повышения производительности регрессионной модели. Дальнейшее увеличения числа отбракованных объектов не приводит к росту прогнозирующей способности.
4.2. Целевая функция 'Показы'. В целом, на этой целевой функции ситуация очень похожая. Процент объектов, которые мы готовы признать аномальными, изменяется от 0% до 10%. Коэффициент детерминации на неочищенных данных приблизительно постоянен и находится в районе 0.5.
После удаления выбросов коэффициент детерминации находится в районе 0.7, и это тоже огромная разница в прогнозирующей способности моделей до и после удаления выбросов.
Пик коэффициента детерминации в районе 3%, скорее всего, случаен. Не случайно то, что качественный сдвиг в сторону улучшения прогнозирующей способности регрессионной модели происходит сразу же: уже при удалении 1% объектов обучающей выборки коэффициент детерминации увеличивается приблизительно на 0.2.
4.3. Целевая функция 'Лайки'. Здесь ситуация принципиально иная. Мы видим, что кривые коэффициентов детерминации практически совпадают (и видимо, при бесконечном увеличении числа прогонов совпадут до неразличимости), а это значит, что удаление выбросов никак не влияет на повышение прогнозирующей способности регрессионной модели.
Рис. 1. Целевая функция 'Просмотры'
Рис. 2. Целевая функция 'Показы'
- До удаления выбросов
- После удаления выбросов
О 2 4 6 8 10
Рис. 3. Целевая функция 'Лайки'
5. Выводы. Напомним принципы, сформулированные нами в самом начале, во введении к этой работе:
1. Обучать модели следует только на типичных объектах.
2. Применять модели следует только к типичным объектам.
Соотнесем их с полученными результатами. С одной стороны, наши принципы не нашли своего подтверждения, так как мы выяснили, что они не универсальны, и возможны ситуации, когда удаление выбросов не приводит к повышению производительности (см. пункт 4.3). С другой стороны, возможны и оптимистичные сценарии (см. пункты 4.1 и 4.2). Поэтому будет верным скорректировать формулировку наших принципов, добавив к ним условие их справедливости:
1.Если исключение выбросов приводит к повышению производительности, то обучать модели следует только на типичных объектах.
2. Если исключение выбросов приводит к повышению производительности, то применять модели следует только к типичным объектам.
Условие, при котором принципы очистки данных оказываются рабочими и эффективными методами моделирования, требуют предварительного анализа данных и не всегда проявляются. Но то, что есть ситуации, в которых удаление аномальных объектов приводит к существенному эффекту — несомненно.
Список литературы
1. Хейдт М. Изучаем Pandas. Москва: ДМК Пресс, 2018. 438 с.
2. Бурков А. Машинное обучение без лишних слов. СПб: Питер, 2020. 192 с.
3. Вьюгин В.В. Математические основы теории машинного обучения и прогнозирования. М.: МЦИМО. 2013. 387 с.
4. Бринк Х. Машинное обучение / Х. Бринк, Дж. Ричардс, М. Феверолф. СПб.: Питер, 2017. 336 с.
5. Дрейпер Н.Р. Прикладной регрессионный анализ / Дрейпер Н. Р., Смит Г. ; ред. пер. Саит-Аметова М.; Пер. с англ. и ред. пер. Власенко М., Имамутдинова Р. Г., Орехова Н. А., Саит-Аметова М. 3-е изд. М.: Диалектика: Вильямс, 2007. 911 с.
6. Безменов И.В. Метод очистки измерительных данных от выбросов: поиск оптимального решения с минимальным количеством отбракованных результатов измерений // Измерительная техника. 2023. № 1. С. 16-23.
7. Безменов И.В., Дроздов А.Э., Пасынок С.Л. Стратегия поиска выбросов в рядах зашумлённых данных с неизвестным трендом // Измерительная техника. 2022. № 5. С. 29-34.
8. Ахметшина Л.Г. Адаптивная фильтрация шумов методом сингулярного разложения автоморфного отображения // Вестник компьютерных и информационных технологий. 2006. № 8 (26). С. 12-21.
9. Бурнашев Д.С., Залыгаева М.Е. Реализация рекомендательной системы пользовательских предпочтений на основе сингулярного разложения матриц на языке Python // Труды молодых учёных факультета компьютерных наук ВГУ. Сборник статей. Воронеж, 2023. С. 11-18.
10. Козловский В.Н. Потребительская ценность качества автомобилей / В.Н. Козловский, Г.Л. Юнак, Д.В. Айдаров, С.А. Шанин // Стандарты и качество. 2017. № 12. С. 76-80.
Мосин Владимир Геннадьевич, канд. физ.-мат. наук, [email protected], Россия, Самара, Самарский государственный технический университет,
Козловский Владимир Николаевич, д-р техн. наук, профессор, заведующий кафедрой, [email protected], Россия, Самара, Самарский государственный технический университет
IMPROVING THE EFFECTIVENESS OF REGRESSION MODELS OF CONTENT CONSUMPTION BY ELIMINATING
ABNORMAL DATA
V.G. Mosin, V.N. Kozlovsky 598
The paper investigates a method that determines the effect of outliers on the performance of regression models. Using the example of data on content consumption, it is shown that the exclusion of abnormal objects can significantly increase their predictive ability. Recommendations on the application of the method of exclusion of abnormal data are given.
Key words: content, quality assessment, data science, singular value decomposition, anomaly detection, outlier removal, regression models, scikit-learn, pandas, numpy, SVD.
Mosin Vladimir Gennadievich, candidate of physical and mathematical sciences, docent, yanbacha@yandex. ru, Russia, Samara, Samara State Technical University,
Kozlovsky Vladimir Nikolaevich, doctor of technical sciences, professor, head of the department, [email protected], Russia, Samara, Samara State Technical University
УДК 005.6
DOI: 10.24412/2071-6168-2024-2-599-600
ПОНИЖЕНИЕ РАЗМЕРНОСТИ ДАННЫХ МЕТОДОМ SVD НА ПРИМЕРЕ ДАННЫХ
О ПОТРЕБЛЕНИИ КОНТЕНТА
В.Г. Мосин, В.Н. Козловский
Статья посвящена проблеме понижения размерности при помощи метода, основанного на сингулярном разложении матрицы данных. Рассмотрен алгоритм преобразования данных к сингулярному базису и последовательного исключения базисных векторов, начиная с самого младшего. На примере данных о потреблении контента пользователями одного из ведущих хостингов проиллюстрированы различные ситуации, возникающие в ходе решения задач машинного обучения с применением алгоритма понижения размерности.
Ключевые слова: контент, оценка качества, анализ данных, сингулярные разложения, понижение размерности, регрессионные модели, scikit-learn, pandas, numpy, SVD.
1. Введение. Современным алгоритмам машинного обучения приходится работать с различными объемами данных, в зависимости от конкретной задачи и доступных ресурсов. В некоторых случаях объем данных может быть относительно маленьким, например, набор данных для классификации может содержать несколько сотен или тысяч объектов. Однако в других случаях, особенно при работе с изображениями, видео, текстом и другими типами данных, объемы могут быть огромными. Например, набор данных ImageNet, который часто используется для обучения моделей распознавания изображений, содержит более 1,2 миллиона изображений [2, 4].
Обработка больших объемов данных требует мощных вычислительных ресурсов и оптимизации алгоритмов для эффективной работы с ними. Один из методов оптимизации состоит в понижении размерности данных, которое является неотъемлемой и важной составляющей в задачах машинного обучения.
В современном мире данные растут в геометрической прогрессии, и каждый день мы сталкиваемся с все большим объемом информации. Несмотря на это, имеются ограничения по ресурсам, времени и эффективности обработки данных [7]. Одна из основных целей машинного обучения — обнаружение скрытых закономерностей и шаблонов в данных. Однако часто они затеряны в обилии и разрозненности информации, и именно здесь понижение размерности данных оказывается важным и необходимым.
Понижение размерности данных заключается в преобразовании высокоразмерного пространства данных в пространство меньшей размерности. Это позволяет сохранить наиболее важные характеристики и структуру данных, устраняя при этом лишнюю информацию.
Преимущества алгоритмов понижения размерности данных в задачах машинного обучения, прежде всего, проявляется в улучшение производительности, так как обработка больших объемов данных занимает значительное время и требует больших вычислительных ресурсов, а понижение размерности позволяет уменьшить количество признаков, сокращая время обработки и улучшая производительность алгоритмов обучения.
Отметим, что при понижении размерности данных важно сохранить наиболее значимую информацию. Существуют различные методы понижения размерности, такие как метод главных компонент (PCA) и метод многомерного шкалирования (MDS), которые сохраняют наиболее важные характеристики данных, при этом снижая их размерность.
В настоящей работе мы будем использовать алгоритм понижения размерности, основанный на сингулярном разложении матрицы данных [6].
1.1. Теоретическая часть. Метод понижения размерности данных с использованием сингулярного разложения матрицы данных (SVD) заключается в том, чтобы представить матрицу данных в виде произведения трех матриц: U, Z и V-1. В этом разложении U — матрица левых сингулярных векторов, содержащая информацию о взаимосвязи между признаками; Z — диагональная матрица, содержащая сингулярные значения, отражающие значение каждого признака; и, наконец, V-1 — матрица правых сингулярных векторов, содержащая информацию о взаимосвязи между объектами данных [3, 6].
Для понижения размерности данных, выполняется переход к сингулярному базису (см. ниже, п. 3.4), после чего можно избавляться от последних координат такого представления данных, так как они наименее информативны. Метод SVD позволяет уменьшить размерность данных, сохраняя при этом основную структуру и взаимосвязи между признаками и объектами. В результате получается компактное представление данных, которое может быть использовано для анализа, визуализации и различных вычислительных задач. Одно из основных преимуществ использования SVD для понижения размерности данных состоит в том, что SVD позволяет сохранить наибольшую часть вариации исходных данных при переходе к матрице меньшего размера. Это помогает сохранить важные свойства данных и уменьшить размерность без значительной потери информации.