Научная статья на тему 'ДЕТЕКЦИЯ АНОМАЛИЙ В ПРОЦЕССЕ ГАРАНТИЙНОГО ОБСЛУЖИВАНИЯ АВТОМОБИЛЕЙ ПО МЕТОДИКЕ MCCP (MODELING, CALIBRATION, CHALLENGE, PRODUCTION)'

ДЕТЕКЦИЯ АНОМАЛИЙ В ПРОЦЕССЕ ГАРАНТИЙНОГО ОБСЛУЖИВАНИЯ АВТОМОБИЛЕЙ ПО МЕТОДИКЕ MCCP (MODELING, CALIBRATION, CHALLENGE, PRODUCTION) Текст научной статьи по специальности «Математика»

CC BY
4
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
управление качеством / автомобилестроение / гарантийное обслуживание / анализ данных / временные ряды / машинное обучение / регрессия / pandas / numpy / skylearn / quality management / automotive / warranty service / data analysis / times series / machine learning / re-gression / pandas / numpy / skylearn

Аннотация научной статьи по математике, автор научной работы — Мосин Владимир Геннадьевич, Козловский Владимир Николаевич, Васин Сергей Александрович, Пантюхин Олег Викторович

Статья посвящена авторской методике MCCP, позволяющей детектировать аномальные состояния процесса гарантийного обслуживания автомобилей с использование технологий искусственного интеллекта и анализа больших данных. Излагаются основные принципы и этапы этой методики. В качестве примера демонстрируется работа по методике MCCP с данными одного из ведущих отечественных автопроизводителей.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Мосин Владимир Геннадьевич, Козловский Владимир Николаевич, Васин Сергей Александрович, Пантюхин Олег Викторович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ANOMALY DETECTION IN THE PROCESS OF CAR WARRANTY SERVICE USING THE MCCP METHOD (MODELING, CALIBRATION, CHALLENGE, PRODUCTION)

The article is devoted to the author's MCCP methodology, which allows detecting abnormal states of the car warranty service process using artificial intelligence technologies and big data analysis. The basic principles and stages of this technique are described. As an example, the work on the MCCP methodology with data from one of the leading domestic automakers is demonstrated.

Текст научной работы на тему «ДЕТЕКЦИЯ АНОМАЛИЙ В ПРОЦЕССЕ ГАРАНТИЙНОГО ОБСЛУЖИВАНИЯ АВТОМОБИЛЕЙ ПО МЕТОДИКЕ MCCP (MODELING, CALIBRATION, CHALLENGE, PRODUCTION)»

10. Козловский В.Н. Проблема стратегического планирования улучшения качества и надежности системы электрооборудования автомобилей / В.Н. Козловский, А.В. Заятров // Электроника и электрооборудование транспорта. 2012. № 1. С. 44-47.

11. Panyukov D. Development and research FMEA expert team model / D. Panyukov, V. Kozlovsky, Y. Klochkov // International Journal of Reliability, Quality and Safety Engineering. 2020. Т. 27. № 5. С. 2040015.

12. Инновационные механизмы управления потенциалом сферы сервиса в регионе / Л.И. Ерохина, О.Н. Наумова, Л.С. Любохинец, В.П. Лещишена, О.В. Любохинец, Г.М. Кулапина, О.В. Маркова, Н.В. Никитина, И.А. Калашникова, В.Н. Дудко, Е.В. Мещерякова, В.Н. Козловский, С.Н. Цветкова, Т.В. Кретинина, Е.А. Бреусова, С.В. Фатеева, С.Н. Новоселов, Н.М. Ульяницкая, М.М. Шаблыкин, Г.А. Буряков и др. // Тольятти, 2013.

13. Дебелов В.В. Моделирование электронной системы регулирования скорости движения легкового автомобиля в режимах поддержания и ограничения скорости / В.В. Дебелов, В.В. Иванов, В.Н. Козловский, В.И. Строганов // Электроника и электрооборудование транспорта. 2013. № 6. С. 2-7.

14. Козловский В.Н. Концепция методологии комплексной программы улучшений / В.Н. Козловский, Д.И. Благовещенский, Д.В. Айдаров, Д.И. Панюков, Р.Д. Фарисов // Стандарты и качество. 2022. № 7. С. 36-42.

15. Строганов В.И. Математическое моделирование основных процессов электромобилей и автомобилей с комбинированной силовой установкой / В.И. Строганов, В.Н. Козловский, А.Г. Сорокин, Л.Х. Мифтахова // Вестник Казанского технологического университета. 2014. Т. 17. № 7. С. 129-132.

16. Панюков Д.И. Новое руководство по FMEA: структурный анализ процессов / Д.И. Панюков, В.Н. Козловский, Д.В. Айдаров // Методы менеджмента качества. 2020. № 10. С. 36-42.

17. Козловский В.Н. Моделирование электронной системы VVT управления двигателем легкового автомобиля / В.Н. Козловский, В.В. Дебелов, М.А. Пьянов // Электроника и электрооборудование транспорта. 2014. № 4. С. 5-12.

18. Козловский В.Н. Стратегическое планирование конкурентоспособности с точки зрения качества / В.Н. Козловский, С.А. Шанин, Д.И. Панюков // Стандарты и качество. 2017. № 3. С. 76-80.

19. Дебелов, В.В. Электронная система управления автомобиля "START-STOP" / В.В. Дебелов, В.Н. Козловский, В.Е. Ютт // Электроника и электрооборудование транспорта. 2014. № 2. С. 6-9.

Мосин Владимир Геннадьевич, канд. физ.-мат. наук, доцент, yanbacha@yandex. ru, Россия, Самара, Самарский государственный технический университет

METHODOLOGY FOR SEARCHING AND EVALUATING THE PREDICTIVE MODEL OF CALLS TO CAR WARRANTY SERVICE POINTS

V.G. Mosin

The methodological foundations of building a machine learning model based on a time series of calls to car warranty service points of one of the largest domestic automakers are considered. Special attention is paid to methods of estimating predictive ability specific to time series.

Key words: mality management, automotive, warranty service, data analysis, times series, machine learning, regression, pandas, numpy, skylearn.

Mosin Vladimir Gennadievich, candidate of physical and mathematical sciences, docent, yanbacha@yandex. ru, Russia, Samara, Samara State Technical University

УДК 004.413

DOI: 10.24412/2071-6168-2024-10-132-133

ДЕТЕКЦИЯ АНОМАЛИЙ В ПРОЦЕССЕ ГАРАНТИЙНОГО ОБСЛУЖИВАНИЯ АВТОМОБИЛЕЙ ПО МЕТОДИКЕ MCCP (MODELING, CALIBRATION, CHALLENGE, PRODUCTION)

В.Г. Мосин, В.Н. Козловский, С.А. Васин, О.В. Пантюхин

Статья посвящена авторской методике MCCP, позволяющей детектировать аномальные состояния процесса гарантийного обслуживания автомобилей с использование технологий искусственного интеллекта и анализа больших данных. Излагаются основные принципы и этапы этой методики. В качестве примера демонстрируется работа по методике MCCP с данными одного из ведущих отечественных автопроизводителей.

Ключевые слова: управление качеством, автомобилестроение, гарантийное обслуживание, анализ данных, временные ряды, машинное обучение, регрессия, pandas, numpy, skylearn.

1. Введение. Своевременная детекция аномалий в процессе постпродажного обслуживания автомобилей является неотъемлемой частью стратегии управления качеством и безопасности, что в конечном итоге влечёт за собой улучшение финансовых показателей и повышения доверия со стороны клиентов [1, 8, 9]. Отметим несколько несколько ключевых аспектов этой темы:

Безопасность. Аномалии указывают на потенциальные проблемы, которые могут угрожать безопасности водителя и пассажиров. Быстрая реакция на такие ситуации может предотвратить аварии и травмы [2, 10, 11].

Качество обслуживания. Детекция аномалий позволяет оперативно выявлять и устранять проблемы в обслуживании, что поднимает уровень сервиса и удовлетворённость клиентов. Это важные факторы для поддержания лояльности клиентов [3, 12].

Снижение затрат. Прогнозирование и выявление аномалий может помочь в предотвращении более серьёзных и дорогостоящих ремонтов. Чем раньше проблема будет обнаружена, тем меньше затрат потребуется на её устранение [4, 13, 14].

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

Поддержание репутации бренда. Качественное и безопасное постпродажное обслуживание способствует укреплению репутации автопроизводителей и дилеров, что в свою очередь влияет на их конкурентоспособность на рынке.

В настоящей работе мы демонстрируем авторскую методику MCCP (Modeling, Calibration, Challenge, Production), которая позволяет автоматизировать и ускорить процесс детекции аномалий в процессе гарантийного обслуживания автомобилей, основываясь на данных одного из ведущих отечественных автопроизводителей.

1.1. Теоретическая часть. Важную роль в работе автопромышленного комплекса играет экспертный корпус. Это хорошо образованные, блестяще знающие свою предметную область специалисты, одна из функций которых состоит в управлении показателями качества того или иного процесса производства или постпродажного обслуживания автомобилей и своевременное выявление опасных (или потенциально опасных) состояний.

Однако, привлечение высококвалифицированных специалистов требует значительных финансовых ресурсов: эксперты хорошо работают, но они работают за большие (а иногда очень большие) деньги и могут быть ограничены в своём количестве. Экспертам необходимо время для анализа данных, выявления аномалий и разработки рекомендаций, и их экспертиза может продолжаться неопределённо долго, особенно если объем данных велик. Наконец, не последнюю роль в работе экспертов играет человеческий фактор, который приводит к субъективности в оценках: разные эксперты могут по-разному интерпретировать одни и те же данные, а это ведёт к нестабильности в выводах.

Мы хотим снизить риски, сопряжённые с работой экспертного корпуса, делегировать часть их полномочий технологиям искусственного интеллекта, в частности — прогнозирующим моделям, которые могли бы выявлять аномалии не хуже людей, при этом быстро, однозначно и, что немаловажно, бесплатно.

1.2. Технологии. Мы работаем с данными в среде Jupyter Notebook, которая предоставляет удобные инструменты для работы с языком программирования Python и его основными библиотеками: numpy, pandas, sklearn и matplotlib (см. [1]-[4]).

2. Описание данных. Данные предоставлены одним из ведущих отечественных автопроизводителей в результате еженедельной фиксации сведений по одному из дефектов в одном из пунктов гарантийного обслуживания. Данные содержат два признака:

date: дата окончания недели в формате yyyy-mm-dd;

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

Применяя метод read_csv библиотеки pandas, читаем данные из файла, получаем датафрейм data:

date target

0 2022-10-01 1.0

1 2022-10-08 1.0

98 2024-08-17 4.4

99 2024-08-24 3.8

В нем 100 записей, даты описаны как string, целевая функция — как float, пропусков нет, визуализация временного ряда представлена ниже (см. рис. 1).

64 • 2: 02022-10-01 2023-03-25 2023-09-16 2024-03-09 2024-0В-24 Рис 1. Зависимость целевой функции от времени

3. Методика MCCP. Методика, которой посвящена настоящая работа, является авторской. Мы разбиваем все наши действия по детекции аномалий какого-либо процесса на четыре базовых этапа:

1. моделирование временного ряда,

2. калибровка отклонений модели от реальности,

3. испытание модели при помощи экспертной разметки,

4. боевое применение детектора в бизнес-процессе.

Соответственно, MCCP — это аббревиатура от названий этапов: modeling, calibration, challenge, production. Процесс формирования детектора является итерационным: детектор допускается к боевому применению только в случае успешно пройденных испытаний, в противном случае он возвращается на доработку, и число возвратов не ограничено.

Ниже мы подробно разберём все этапы, пока же следует отметить, что разбиение действий на последовательные этапы и разбиение данных — это не одно и то же, несмотря даже на то, что данные представляют из себя измерения в последовательные моменты времени. Для того чтобы это пояснить, обратимся к иллюстрации (см. рис. 1 ). Начнём с конца.

Этап боевого применения на нашей иллюстрации — это четвёртая четверть всего временного промежутка, то есть, отрезок с 2024-03-09 по 2024-08-24, этап испытаний — третья четверть с 2023-09-16 по 2024-03-09, этап калибровки — вторая четверть с 2023-03-25 по 2023-09-16, но этап моделирования, несмотря даже на то, что это первый этап методики, не равен первой четверти. Этап моделирования — это первая половина временного промежутка с 2022-10-01 по 2023-09-16.

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

Далее, на этапе калибровки отклонений, мы понимаем, что в самом начале своего обучения (на первых датах первой половины данных) модель была ещё плохо обучена, ошибалась чаще и сильнее, поэтому мы «прощаем» ей её ранние ошибки и для калибровки используем не всю первую половину данных, на которой училась модель, а только вторую половину первой половины, то есть, вторую четверть.

Когда наступает этап испытаний, мы, заинтересованные в точности модели, опять используем для обучения все имеющиеся у нас на этом этапе данные. Таким образом, данные, используемые на этапе испытаний — это не третья четверть, а три четверти: временной промежуток с 2022-10-01 по 2024-03-9.

И наконец, если детектор успешно проходит испытания и допускается к боевому применению, мы используем не четвертую четверть времени, а абсолютно все временные моменты, начиная с «начала времён»: с 202210-01. Так мы добиваемся того, что модель на каждом этапе не начинает учиться заново, а доучивается, постепенно становясь «умнее».

4. Моделирование. Это самый сложный и не поддающийся алгоритмизации этап. Человечество ещё не научилось писать универсальные модели, которые работают всегда, везде и на любых данных. Поэтому моделирование процесса в каждом конкретном случае — это всегда творчество (а не технология), а, значит, это не всегда успех (и даже не всегда отсутствие неудачи). В рамках этой статьи мы не можем продемонстрировать огромное разнообразие идей и приёмов, которые можно было бы использовать для построения модели, у нас другая задача: описать методику MCCP и её приложение к детекции аномалий в процессе гарантийного обслуживания автомобилей. Поэтому мы просто применим авторегрессию и не будем сравнивать её с другими возможными идеями моделирования.

4.1. Ограничения по времени. Как мы уже отмечали выше, на этапах моделирования и калибровки в нашем распоряжении находятся не все данные, мы можем оперировать только с первой половиной датафрейма data. Применяя метод iloc библиотеки pandas, получаем соответствующую локализацию:

n_modeling = round(0.5 *len(data))

data_modeling = data.iloc[:n_modeling]

Датафрейм data_modeling отличается от датафрейма data лишь тем, что в нем записей меньше: не 100, а 50. Далее на этапе моделирования мы будем работать с этим датафреймом.

4.2. Авторегрессия. Для построения авторегрессионной модели воспользуемся автокорреляцией временного ряда. Его коррелограмма представлена ниже (см. рис. 2). Видно, что в зону значимой корреляции попадают три ближайших значения, а более ранние коррелируют незначительно (точки соответствующих лагов попадают в закрашенную область). Поэтому в качестве предикторов модели мы будем использовать значения целевой функции, смещённые в прошлое на один, два и три шага.

1.0 -0.5 : 0.0 ■ -0.5-1.0 :

Для этого воспользуемся методом shift библиотеки pandas: data_modeling['target_prev_1'] = data_modeling['target'].shift(1) data_modeHng['target_prev_2'] = data_modeling['target'].shift(2) data_modeling['target_prev_3'] = data_modeling['target'].shift(3)

В результате получим датафрейм с тремя новыми столбцами, значения в которых повторяются по диагонали слева-вниз-направо:

date target target_prev_1 target_prev_2 target_prev_3

0 2022-10-01 1.0 NaN NaN NaN

1 2022-10-08 1.0 1.0 NaN NaN

2 2022-10-15 0.9 1.0 1.0 NaN

3 2022-10-22 0.8 0.9 1.0 1.0

46 2023-08-19 3.8 2.7 2.2 1.6

47 2023-08-26 5.0 3.8 2.7 2.2

48 2023-09-02 4.3 5.0 3.8 2.7

49 2023-09-09 3.5 4.3 5.0 3.8

Но при этом первые три строки содержат пропуски (что естественно, так как для этих моментов времени не хватает глубины наблюдений: у нулевого момента времени нет предыдущего и т. д.). Строки с пропусками мы удаляем:

data_modeling = data_modeling.dropna()

В результате остаётся датафрейм, содержащий 47 записей с 2022-10-22 по 2023-09-09:

date target target_prev_1 target_prev_2 target_prev_3

3 2022-10-22 0.8 0.9 1.0 1.0

49 2023-09-09 3.5 4.3 5.0 3.8

4 T T T , . .

- • * i i i i i

-1---1-------1---г—

О 5 10 15

Рис. 2. Корреллограмма временного ряда

Это набор данных, доступный нам для обучения модели и настройки её параметров. Здесь в качестве целевой функции выступает признак target, а в качестве предикторов — три признака: target_prev_1, target_prev_2 и target_prev_1, описывающие значение целевой функции в предыдущий, пред-предыдущий и пред-пред-предыдущий моменты времени соответственно. Признак date не сыграет в нашей модели никакой роли, он нужен нам лишь для того, чтобы ориентироваться в диапазонах дат.

4.3. Модели регрессионных задач. Есть множество методов построения регрессионной модели, начиная с классической линейной регрессии и заканчивая градиентным бустнгом на случайных лесах (см. [3], [4]). Мы формируем пул моделей из библиотеки sklearn:

1. LinearRegression: инструмент для построения линейной регрессии, который оценивает

взаимосвязь между независимыми переменными и зависимой переменной, минимизируя среднеквадратичную ошибку;

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

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

4. MLPRegressor: многослойный перцептрон для решения задач регрессии, который обучается с использованием обратного распространения ошибки;

5. RandomForestRegressor: ансамблевый метод машинного обучения, который использует множество де-ревообразных регрессоров, обученных на различных подвыборках данных, чтобы предсказывать непрерывные значения за счёт усреднения результатов отдельных деревьев;

6. GradientBoostingRegressor: ансамблевый метод машинного обучения для решения задач регрессии, который строит предсказательную модель путем обучения последовательности более простых моделей (обычно деревьев решений), каждая из которых корректирует ошибки предыдущих.

Далее в ходе исследования мы в цикле прогоним через них обучающие данные и выберем ту модель, которая покажет лучшую прогнозирующую способность. Для этого ещё до обучения мы заводим список моделей model_list, по которым будем осуществлять цикл: model_list = [LinearRegression(), DecisionTreeRegressor(), SVR(),

MLPRegressor(), RandomF orestRegressor(), GradientBoostingRegressor()]

4.4. Кроссвалидация модели временного ряда. При моделировании временных рядов модель должна делать прогноз, исходя только из тех сведений, которые доступны ей в момент прогноза (см. [5], [6]). Поэтому обучать модель можно только на предыдущих данных, а тестировать — на последующих. Мы применим алгоритм обучения, который постепенно наращивает обучающую выборку, а тестирование проводит на одном, следующем сразу после обучающей выборки значении (см. рис. 3, где схематично изображены третья, четвёртая и пятая итерации этой процедуры; синими точками отмечены моменты, доступные для обучения, а жёлтая точка — момент прогноза).

I * * * -1 I * * * * -1 I * * * * * -1

Рис. 3. Последовательные шаги кроссвалидации временного ряда

Это во многом похоже на обычную схему кроссвалидации временного ряда, которая реализована в библиотеке sklearn, с тою лишь разницей, что наш алгоритм учитывает максимально возможное количество фолдов: их будет ровно столько, сколько моментов времени мы можем спрогнозировать. Напомним (см. п. 4.2), что после пре-процессинга у нас есть 47 записей, соответственно, мы можем сделать 46 прогнозов и провести 46 проверок.

Обычно для оценки прогнозирующей способности регрессионной модели используется коэффициент детерминации (см. [4]), но к нашему алгоритму его применить нельзя, так как на каждой итерации прогнозируется только одно значение, а для вычисления коэффициента детерминации необходимо как минимум два значения. Поэтому в качестве метрики эффективности прогноза мы применим среднее абсолютное отклонение прогнозируемого значения от истинного. Цепочка таких отклонений позволит оценить качество прогноза и выбрать наиболее качественную модель.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4.5. Выбор лучшей модели. Здесь нужно реализовать вложенный цикл: внешний цикл по регрессионным моделям, определенным нами выше (см. п. 4.3), а внутренний — по итерациям корссвалидации (см. п. 4.4). Поскольку нас интересует лучшая с точки зрения отклонений прогноза от реальности модель, на старте мы задаём значения двух переменных, а именно — считаем, что лучшая ошибка равна бесконечности, а лучшая модель отсутствует:

best_error = float('inf) best_model = None

Опишем процедуру построения и оценки моделей. Пусть мы работаем с моделью model, и пусть мы находимся на i-й итерации кроссвалидации.

Чтобы получить обучающую выборку, нам нужно выполнить локализацию датафрейма data_modeling, оставив в нем только i первых строк (это делается при помощи метода iloc библиотеки pandas), а также назначить предикторы X_train и целевую функцию y_train (а это делается при помощи метода drop): X_train = data_modeling.drop(columns = ['target', 'date']).iloc[np.arange(i)] y_train = data_modeling['target'].iloc[np.arange(i)]

Так как прогноз делается на следующий после обучения момент времени, в качестве тестовых данных мы назначаем следующую строку датафрейма data_modeling, используя для этого локализацию по (i + 1)-й стоке: X_test = data_modeling.drop(columns = ['target', 'date']).iloc[[i + 1]] y_test = data_modeling['target'].iloc[[i + 1]]

Затем методом fit мы обучаем модель на обучающей выборке, и методом predict делаем прогноз на тестовой выборке:

model.fit(X_train, y_train) y_pred = model.predict(X_test)

Теперь у нас есть ошибка (это разница между предсказанным значением y_pred и истинным значением y_test) и её абсолютная величина:

error = y_pred - y_test.to_numpy() error_abs = abs(error)

Заносим абсолютное отклонение прогноза от реальности в список error_abs_list при помощи метода append:

error_abs_list.append(error_abs)

Все эти действия мы повторяем во внутреннем цикле, до исчерпания всех строк датафрейма da-ta_modeling. По окончании внутреннего цикла у нас появляется возможность вычислить среднее отклонение и выяснить, превосходит ли очередная модель внешнего цикла ту, которая считается лучшей на внешней итерации, что мы и делаем при помощи условного оператора:

if np.mean(error_abs_list) < best_error: best_error = np.mean(error_abs_list) best_model = model

После завершения внешнего цикла имеем лучшую модель в переменной best_model. В целом результаты всех моделей представлены в следующей таблице:

model_error

LinearRegression 0.4623

DecisionTreeRegressor 0.4811

SVR 0.5830

MLPRegressor 0.5562

RandomForestRegressor 0.5511

GradientBoostingRegressor 0.5457

Лучшей из моделей оказывается модель LmearRegressюn.

5. Калибровка. На этапе калибровки нам нужно определиться с теми допустимыми отклонениями прогноза от реальных значений, которые мы считаем нормальными, но превышение которых является аномалией. Посмотрим, насколько хорошо наша модель (теперь это одна модель, определённая нами на предыдущем этапе, а именно — модель LinearRegression) справляется с временным рядом (см. рис. 4).

б: 4 -2 -О -

2022-10-01 2023-03-25 2023-09-16 2024-03-09 2024-08-24

Рис. 4. Истинные и спрогнозированные значения временного ряда на этапе моделирования

Видно, что на начальном отрезке этапа моделирования, на первых примерно 15-20 датах модель, обладая небольшим количеством данных для обучения, ведёт себя неуверенно, ошибается часто и сильно. Однако постепенно её отклонения от реальности становятся меньше и происходят реже. Поэтому мы не станем использовать весь набор данных для калибровки, а поступим более требовательно по отношению к прогнозирующей способности: возьмём для калибровки только вторую половину модельных данных, то есть, ту её часть, где отклонения меньше, а модель уже обладает определённой стабильностью.

5.1. Данные для калибровки. Сначала мы пополним датафрейм data_modeling дополнительными, полученными на предыдущем этапе сведениями: предсказанным значением, ошибкой и абсолютным значением ошибки. Получим таблицу:

date target predict error abs_error

3 2022-10-22 0.8 NaN NaN NaN

4 2022-10-29 1.0 0.8000 -0.2000 0.2000

5 2022-11-05 1.0 0.9199 -0.0800 0.0800

47 2023-08-26 5.0 4.4260 -0.5739 0.5739

48 2023-09-02 4.3 5.7015 1.4015 1.4015

49 2023-09-09 3.5 3.3783 -0.1216 0.1216

Затем исполним локализацию этого датафрейма на его вторую половину, воспользовавшись срезом по массиву индексов:

data_calibration = data_modeling[round(0.5 * n_modeling):n_modeling]

В итоге в нашем распоряжении окажется датафрейм с данными для калибровки, содержащий 25 записей:

date target predict error abs_error

25 2023-03-25 1.1 1.0422 -0.0577 0.0577

49 2023-09-09 3.5 3.3783 -0.1216 0.1216

5.2. Распределения отклонений. Для корректной работы с порогами отклонений, важно понимать, каковы их распределения (или хотя бы знать, являются ли они нормальными).

5.2.1. Распределение ошибок. Пользуясь методом histplot библиотеки seaborn, визуализируем распределение ошибок error в виде гистограммы с наложенной на неё кривой плотности:

sns.histplot(data_calibration['error'], kde=True, bins=10)

Получим следующую кривую (см. рис. 5), по которой сразу становится ясно, что ошибки распределены по нормальному закону с нулевым средним.

10

о

-1.0 -0.5 0.0 0.5 1.0 1.5

Рис. 5. Гистограмма и кривая распределения ошибок

5.2.2. Распределение абсолютных ошибок. Точно так же поступаем с распределением абсолютных ошибок abs_error. Соответствующая визуализация представлена ниже (см. рис. 6), и она даёт нам понимание того, что распределение абсолютных ошибок не подчиняется нормальному закону.

ю

о

5.3. Калибровочные границы отклонений. Мы знаем, что распределение ошибок подчинено нормальному закону, что не удивительно, так как большинство ошибок распределяются именно по кривой Гаусса. Поэтому к такому типу отклонений мы можем применить правило трёх сигм или его модификации, о чем будет сказано позже, на этапе прохождения испытаний (см. п. 6). Мы знаем также, что распределение абсолютных ошибок не является нормальным, следовательно, к нему нельзя применять ни правило трёх сигм, ни его вариации.

Таким образом, к двум разным типам распределений мы подойдём с разными же критериями того, где кончается норма и начинается аномалия.

5.3.1. Критерий k сигм. Речь идёт о хорошо известном правиле трёх сигм с поправкой на коэффициент. На самом деле, правило трёх сигм является эмпирическим, и ничто не мешает говорить о правиле двух сигм или двух с половиной сигм. Параметр k мы объявляем свободным, оставляя за собой право варьировать его в случае необходимости (а такая необходимость может возникнуть позже, на этапе испытаний).

Мы вычисляем sigma как среднее квадратичное отклонение столбца error (значения этого столбца распределены нормально, и мы имеем право применять критерий k-сигма), а коэффициент выставляем в классическую тройку (варьировать его мы будем позже): k_sigma = 3

sigma = data_calibration['error'].std()

Величина k_sigma*sigma и есть та самая граница, преодоление которой мы признаем аномалией. В силу того, что ошибка error центрирована относительно нуля, её отклонение от нуля (как налево, так и направо) на величину , большую чем k_sigma*sigma, детектируется как аномалия. Выполняя локализацию датафрейма data_calibration, получаем список всех аномальных значений по правилу трёх сигм: out_sigma = data_calibration[abs(data_calibration['error']) > k_sigma * sigma] Оказывается, что этот список содержит единственную аномалию:

date target predict error abs_error

48 2023-09-02 4.3 5.7015 1.4015 1.4015

Визуализация этапа калибровки представлена ниже (см. рис. 7).

64 -2: О -

2022-10-01 2023-03-25 2023-09-16 2024-03-09 2024-08-24

Рис. 7. Калибровка отклонений error но правилу трёх сигм

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

5.3.2. Критерий k интерквартильных размахов. Здесь мы применим интерквартильный размах (который можно применять к любым распределениям, а не только к нормальным), опять-таки с поправкой на коэффициент.

Напомним, что интерквартильный размах — это метод определения выбросов, в котором устанавливаются нижняя граница lower_bound и верхняя граница upper_bound, после чего все, что находится внутри этих границ, считается нормой, а все, что выходит за границы, считается аномалией. Нижняя граница вычисляется как первый квартиль минус полтора интерквартильных размахов, верхняя граница — как третий квартиль плюс полтора интерк-вартильных размахов, а коэффициент 1.5 (так же, как и коэффициент 3 в правиле трёх сигм) является эмпирическим и при необходимости может меняться.

Работая уже со столбцом абсолютных ошибок abs_error (а не со столбцом error как в предыдущем случае), мы вычисляем первый и третий квартили при помощи метода quantile, после чего их разность даёт нам интерквартильный размах:

Q1 = data_calibration['abs_error'].quantile(0.25)

Q3 = data_calibration['abs_error'].quantile(0.75)

IQR = Q3 - Q1

Затем выставляем коэффициент в классическое значение 1.5 (варьировать коэффициент мы будем позже, на этапе испытаний) и вычисляем нижнюю и верхнюю границы отклонений:

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4

Рис. 6. Гистограмма и кривая распределения абсолютных ошибок

k_inter = 1.5

lower_bound = Q1 - k_inter * IQR upper_bound = Q3 + k_inter * IQR

Далее, задаём два условия, выполнение хотя бы одного из которых означает аномалию: lower_condition = data_calibration['abs_error'] < lower_bound upper_condition = data_calibration['abs_error'] > upper_bound

И наконец, выполняем локализацию датафрейма data_calibration по их объединению: out_inter = data_calibration.loc[lower_condition | upper_condition]

Получаем датафрейм с записями, детектированными как аномалии по интерквартильным размахам. В нем фигурируют три даты:

date target predict error abs_error

46 2023-08-19 3.8 2.8831 -0.9168 0.9168

47 2023-08-26 5.0 4.4260 -0.5739 0.5739

48 2023-09-02 4.3 5.7015 1.4015 1.4015

Визуализация калибровки при помощи этого метода представлена ниже (см. рис. 8).

64 -2 -О -

2022-10-01 2023-03-25 2023-09-16 2024-03-09 2024-08-24

Рис. 8. Калибровка отклонений abs error по интерквартнльному размаху

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

При апелляции к ошибке error мы ориентировались на среднее квадратичное отклонение, ключевой величиной при этом являлась величина k_sigma * sigma. Её численное значение таково: k_sigma * sigma = 1.2347.

При апелляции к абсолютной ошибке abs_error мы ориентировались на величины нижней и верхней границ lower_bound и upper_bound, которые получались за счёт интерквартильного размаха. Их численные значения таковы: lower_bound = -0.1741, upper_bound = 0.5224, причём, заметим, что нижняя граница отрицательна и не играет никакой роли для абсолютных ошибок, существенной оказывается только верхняя граница.

Полученные критерии аномальности можно представить в виде следующей таблицы.

error abs error

Норма -1.2347 < error < 1.2347 abs_error < 0.5224

Аномалия error < -1.2347 или error > 1.2347 abs_error > 0.5224

6. Испытания. Напомним (см. п. 3), что методика MCCP — это итерационная процедура, модель и калибровка последовательно корректируются до тех пор, пока детектор не пройдёт испытания. На этапе испытаний детекция выполняется с двух сторон: с одной стороны ей занимается эксперт (или несколько экспертов), с другой стороны — полученный нами выше алгоритм, причём, испытание считается успешно пройденным, если алгоритм справляется в детекцией аномалий не хуже экспертов.

6.1. Алгоритмическая детекция аномалий. Чтобы алгоритмически обнаружить аномалии на этапе испытаний, нам достаточно применить найденную модель и найденные калибровочные границы к новым данным, которых у нас не было на этапах моделирования и калибровки. Для этого мы берём новый датафрейм data_challenge, дополненный по сравнению с датафреймом data_modeling: n_challenge = round(0.75 *len(data)) data_challenge = data[:n_challenge]

Он отличается от датафрейма data_modelign лишь тем, что в нем больше позиций: не 50, а 75. С этим новым дополненным датафреймом data_challenge мы поступаем точно так же, как и с датафреймом data_modeling, а именно — проводим цикл по всем итерациям кроссвалидации (как это делалось в п. 4.5, только без выбора лучшей модели, потому что она нам известна) и сводим все отклонения в единую таблицу (как это делалось в п. 5.1).

В этот момент у нас есть все сведения для детекции аномалий на новом промежутке времени. Во-первых, есть таблица со значениями ошибок и абсолютных ошибок:

date target predict error abs_error

3 2022-10-22 0.8 NaN NaN NaN

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4 2022-10-29 1.0 0.8000 -0.2000 0.2000

5 2022-11-05 1.0 0.9199 -0.0800 0.0800

72 2024-02-17 2.7 2.7662 0.0662 0.0662

73 2024-02-24 2.7 2.6019 -0.0980 0.0980

74 2024-03-02 2.3 2.6212 0.3212 0.3212

А во-вторых, есть величины калибровочных отклонений, полученные нами в п. 5.3, с которыми мы можем сравнивать отклонения.

6.1.1. Критерий k сигм. По этому критерию мы работаем со столбцом error, и даже не со всем столбцом, а с той его частью, которая локализована на этап испытаний. Вводим условие калибровки и выводим датафрейм с аномалиями на нужном интервале:

condition = data_challenge['error']) > k_sigma * sigma out_challenge_sigma = out_challenge[n_modeling:].loc[condition]

В результате обнаруживаем, что датафрейм out_challenge_sigma пуст, в нем нет ни одной записи. Соответствующая тривиальная визуализация представлена ниже (см. рис. 9).

2022-10-01 2023-03-25 2023-09-16 2024-03-09 2024-08-24

Рис. 9. Аномалии ошибок error на этапе испытаний не зафиксированы

6.1.2. Критерий k интерквартильных размахов. Аналогично применяем другой критерий: condition = data_challenge['abs_error']) > upper_bound out_challenge_inter = out_challenge[n_modeling:].loc[condition] Получаем датафрейм с двумя записями:

date target predict error abs_error

65 2023-12-30 3.6 2.9908 -0.6091 0.6091

66 2024-01-06 3.1 4.0271 0.9271 0.9271

Наш детектор обнаружил две позиции, которые счёл аномальными. Их визуализация представлена ниже (см. рис. 10).

2022-10-01 2023-03-25 2023-09-16 2024-03-09 2024-08-24

Рис. 10. Аномалии абсолютных ошибок abs error на этапе испытаний

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

6.2.1. Разметка данных. Ориентируясь на свои опыт и знания в предметной области, эксперт оценивает значение целевой функции target в каждый момент времени на промежутке испытаний как нормальное (в таком случае к моменту времени приписывается метка 0) или аномальное (тогда приписывается 1). Это и называется разметкой данных: разметка норма/аномалия — это последовательность нулей и единиц

6.2.2. Пул разметок. Чтобы получить более объективную картину, экспертиза проводится несколькими экспертами. Каждый из них, независимо от своих коллег, формирует свою последовательность нулей и единиц, и, вообще говоря, это разные последовательности.

6.2.3. Пограничные состояния. В большинстве случаев мнения экспертов совпадают, но иногда расходятся, то есть, какие-то состояния процесса (или, другими словами, значения целевой функции в какие-то моменты времени) часть экспертов может признать нормальными, а другая часть — аномальными. Такие состояния называются пограничными.

6.3. Детекция аномалий как задача бинарной классификации. Разметку производит и наш детектор. Если посмотреть с позиций разметки данных на рис. 10, то красные точки на этапе испытаний с 2023-09-16 по 202403-09 — это единицы, а все остальные позиции этого промежутка времени заполнены нулями. Рис. 9 означает, что всё заполнено нулями, и нет ни одной единицы. По сути, детектор тоже даёт бинарную разметку, а это значит, что для сравнения результатов людей и алгоритма, мы можем сравнивать результаты бинарных классификаций, для оценки которых есть хорошо разработанный инструментарий в виде метрик бинарной классификации (см. [7]).

6.3.1. Метрика accuracy. Это наиболее очевидная из всех метрик классификации. Она вычисляется как доля (или процент) верных определений принадлежности к классу, её возможные значения лежат в пределах от 0 до 1 (или, если в процентах, от 0% до 100%), и чем выше accuracy, тем более качественной является классификация.

Существенный недостаток accuracy состоит в том, что эту метрику можно применять только к сбалансированным классам, когда представители классов распределены примерно поровну, а в случае классификации по принципу норма/аномалия - это, очевидно, не так: аномальных наблюдений всегда гораздо меньше. Если в детекции аномальных состояний ориентироваться на метрику accuracy, то нет ничего проще, чем получить «качественный» классификатор: достаточно каждое значение детектировать как норму. В силу того, что аномалий не может быть много, процент верно распознанных состояний будет необычайно высок, но при этом детектор не будет выполнять свою задачу — детектировать аномалии.

6.3.2. Метрики precision и recall. Метрика precision показывает, сколько среди объектов, детектированных как аномальные, действительно аномальных объектов (русский перевод метрики precision — точность), а метрика recall — сколько объектов среди всех аномальных объектов детектированы как аномальные (русский перевод recall — полнота). Возможные значения обеих метрик лежат в пределах от 0 до 1, и чем выше та или иная из метрик, тем качественнее классификация.

Если ориентироваться на метрику precision, то чтобы получить её высокое значение достаточно предъявить такой детектор, который распознаёт состояние как аномальное лишь в исключительных случаях, когда отклонение модели от реальности приобретает какие-то космические масштабы, и сомневаться в аномальности такого явления не приходится. Подавляющее большинство аномалий будет не замечено этим детектором, но его метрика precision будет необычайно высока.

И наоборот, если ориентироваться на метрику recall, то можно предъявить детектор, который реагирует на любое, самое незначительное отклонение модели от реальности. Такой детектор не пропустит ни одной аномалии, но среди всех состояний, признанных им аномальными, будет слишком много лишних, нормальных состояний.

6.3.3. Метрика F1. Слабое место метрик precision и recall в том, что если повышать одну из них, то тут же падает другая: добиваемся высокой точности — падает полнота, и наоборот, при высокой полноте падает точность. Один из способов учесть одновременно и то, и другое состоит в применении метрики F1, которая определяется как

среднее гармоническое метрик précision и recall. Её значения изменяются от 0 до 1, и чем выше значение метрики F1, тем качественнее классификатор.

Метрика F1 реализована в модуле metrics библиотеки sklearn в виде функции, на вход которой подаются предсказанные и истинные значения классов:

f1_score(y_pred, y_true)

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

6.4. Сравнение алгоритмической и экспертной детекции. В ходе экспертизы у нас возникает некоторое количество экспертных разметок (по числу пригашенных экспертов), а с другой стороны, у нас есть алгоритмическая разметка. Для сравнения результатов людей и алгоритма можно использовать схему перебора экспертов, которая состоит в следующем.

Отбирается один эксперт, его разметка объявляется предсказанным значением классов y_pred_expert, а разметки всех остальных экспертов усредняются, и результат усреднения объявляется истинным значением классов y_true. Вычисляются две метрики F1:

f1_expert = f1_score(y_pred_expert, y_true)

f1_detector = f1_score(y_pred_detector, y_true) где y_pred_detector — результат алгоритмической детекции. Побеждает либо человек, если f1_expert > f1_detector, либо алгоритм, если соотношение метрик обратное.

Затем отбирается следующий эксперт и производится ещё одно сравнение и т. д. Если общее количество побед алгоритма превышает общее количество его поражений, испытание считается успешно пройденным, в противном случае детектор отправляется на доработку.

6.5. Коррекция детектора. Если наш детектор не прошёл испытания (отметим, что в этом нет ничего катастрофичного, это нормальная практика оптимизации алгоритма), работа продолжается, а если быть точным, в этот момент она только начинается, потому что при разработке детектора мы приняли целый ряд совершенно произвольных, ничем не обоснованных решений.

6.5.1. Критерии аномальности. Мы совершенно произвольно применили в качестве критериев аномальности правило трёх сигм и интерквартильный размах. Поправить эти критерии совсем не сложно, достаточно изменить значения коэффициентов k_sigma и k_inter (см. пп. 5.3.1, 5.3.2) и заново прогнать метки классов y_pred_detector через метрику F1. Но можно изменить и сам подход к критериям, и назначать аномалии, исходя из совсем других соображений.

6.5.2. Тюнинг моделей. Мы даже не попытались настроить параметры наших моделей при выборе лучшей из них (см. п. 4.5). Все модели обучались с дефолтными параметрами, но вполне возможно, что после тюнинга лучшей оказалась бы не LinearRegression, а какая-то другая модель, и это могло привести к лучшим результатам на этапе испытаний.

6.5.3. Препроцессинг. Мы использовали идею авторегрессии (см. п. 4.2) для формирования предикторов, но даже не пытались усилить её за счёт дополнительных мер, например, таких как предварительное сглаживание временного ряда, у которого, в свою очередь, тоже есть целый ряд собственных параметров и их тоже можно и нужно настраивать.

6.5.4. Инжиниринг данных. Кроме того, мы не запросили у владельца процесса никаких дополнительных сведений, мы просто обработали доставшийся нам временной ряд (см. п. 2), в котором было всего 100 записей. А это не единственный в своём роде пункт гарантийного обслуживания автомобилей, число таких пунктов измеряется десятками, и, сравнивая подобные процессы в разных локациях, мы могли бы с большей уверенностью судить об аномальных состояниях.

Неудачные испытания — это не провал, а повод для поиска лучшего решения, и способов улучшить или принципиально изменить решение чрезвычайно много.

7. Заключение. Мы рассмотрели лишь один пример применения методики MCCP (Modeling, Calibration, Challenge, Production), а между тем, эта методика является универсальной.

В-первых, она не зависит от природы процесса. Процесс может быть любым, важно лишь, 1) чтобы в нем было достаточное количество наблюдений для построения адекватной модели, и 2) чтобы было экспертное сообщество, способное отличить норму от аномалии.

Во-вторых, методика MCCP не навязывает никаких рамок: можно применять любую модель, использовать любые критерии калибровки отклонений и проводить сравнение экспертной и алгоритмической разметки по любой схеме. С одной стороны, это развязывает руки разработчикам детектора, но с другой стороны, это оставляет вас один на один с проблемой: да, можно применять любую модель, но какую именно, вам никто не подскажет; да, можно использовать любой критерий аномальности, но какой именно, вы узнаете только в случае успешных испытаний и т. д. Эта методика сама по себе не является ни алгоритмом, ни технологией, именно поэтому она универсальна.

Наконец, действуя в парадигме MCCP, можно изучать не только процессы, но и множества, но уже это тема новой работы, которой будет посвящена одна из следующих статей.

Список литературы

1. Хейдт М. Изучаем Pandas. Москва: ДМК Пресс, 2018.

2. Бурков А. Машинное обучение без лишних слов. СПб: Питер, 2020. 192 с.

3. Вьюгин В.В. Математические основы теории машинного обучения и прогнозирования. М.: МЦИМО. 2013. 387 с.

4. Бринк Х., Ричардс Дж., Феверолф М. Машинное обучение. СПб.: Питер, 2017. 336 с.

5. Kurovsky S.V., Mishin D.A., Lezhnin D.S., Burdik V., Kurovskaya M.A. Time series econometrics: Basic terms of time series analysis and forecasting // Innovation & Investment. 2024. № 8. С. 497-502.

6. Яппаров И.И. Анализ временных рядов и прогнозирование // XXVI Туполевские чтения (школа молодых учёных). Материалы Международной молодёжной научной конференции. Сборник докладов. Казань, 2023. С. 2796-2801.

7. Иванов С.В. Метрики классификации задач машинного обучения // В сборнике: Актуальные проблемы и перспективы развития экономики. труды XIX Всероссийской с международным участием научно-практической конференции. Симферополь, 2020. С. 173-174.

8. Козловский В.Н. Мониторинг удовлетворенности потребителей качеством автомобилей / В.Н. Козловский, Д.В. Антипов, Д.И. Панюков // Стандарты и качество. 2016. № 6. С. 100-105.

9. Козловский В.Н. Цифровизация и проблемы трудовых коллективов: роли и ответственность / В.Н. Козловский, Д.И. Благовещенский, Д.И. Панюков, Р.Р. Гафаров // Стандарты и качество. 2022. № 1. С. 94-98.

10. Панюков Д.И. Моделирование процедуры FMEA: анализ рисков / Д.И. Панюков, В.Н. Козловский, Д.В. Айдаров // Методы менеджмента качества. 2019. № 9. С. 34-43.

11. Слукин А.М. Имитационное моделирование электронной системы определения вязкости масла в силовом агрегате автомобиля / А.М. Слукин, В.В. Дебелов, В.Н. Козловский, В.В. Иванов // Электроника и электрооборудование транспорта. 2014. № 5. С. 2-4.

12. Панюков Д.И. Моделирование процедуры FMEA: методология и стратегия / Д.И. Панюков, В.Н. Козловский, Д.В. Айдаров // Методы менеджмента качества. 2019. № 7. С. 30-38.

Панюков Д.И. Программное обеспечение для поддержки метода FMEA / Д.И. Панюков, В.Н. Козловский, Д.В. Айдаров // Методы менеджмента качества. 2019. № 6. С. 42-49.

13. Козловский В.Н. Оценка реакции автопроизводителя на запросы потребителей / В.Н. Козловский, Г.Л. Юнак, Д.В. Айдаров, С.А. Шанин // Стандарты и качество. 2017. № 6. С. 80-85.

14. Козловский В.Н. Имитационная модель зарядного баланса автомобильного электрооборудования / В.Н. Козловский, Д.И. Гурьянов, А.Д. Немцев // Автотракторное электрооборудование. 2002. № 5-6. С. 12.

Мосин Владимир Геннадьевич, канд. физ.-мат. наук, доцент, yanbacha@yandex. ru, Россия, Самара, Самарский государственный технический университет,

Козловский Владимир Николаевич, д-р техн. наук, профессор, заведующий кафедрой, [email protected], Россия, Самара, Самарский государственный технический университет,

Васин Сергей Александрович, д-р техн. наук, профессор, vasin [email protected], Россия, Тула, Тульский государственный университет,

Пантюхин Олег Викторович, д-р техн. наук, доцент, директор Издательства, [email protected], Россия, Тула, Тульский государственный университет

ANOMALY DETECTION IN THE PROCESS OF CAR WARRANTY SERVICE USING THE MCCP METHOD (MODELING, CALIBRATION, CHALLENGE, PRODUCTION)

V.G. Mosin, V.N. Kozlovsky, S.A. Vasin, O.V. Pantyukhin

The article is devoted to the author's MCCP methodology, which allows detecting abnormal states of the car warranty service process using artificial intelligence technologies and big data analysis. The basic principles and stages of this technique are described. As an example, the work on the MCCP methodology with data from one of the leading domestic automakers is demonstrated.

Key words: quality management, automotive, warranty service, data analysis, times series, machine learning, regression, pandas, numpy, skylearn.

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,

Vasin Sergey Alexandrovich, doctor of technical sciences, professor, vasin [email protected], Russia, Tula, Tula state University,

Pantyukhin Oleg Viktorovich, doctor of technical sciences, docent, Director of the Publishing House, [email protected], Russia, Tula, Tula State University

i Надоели баннеры? Вы всегда можете отключить рекламу.