Как справиться с отсутствующими значениями

Вопрос или проблема

Я знаю, что эта тема была обсуждена extensively, но я не нашел ответа, который удовлетворял бы мои потребности.

В настоящее время я стажируюсь и работаю с электронными платами.

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

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

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

Однако отсутствующие значения – это настоящая проблема для меня, плюс мои данные сильно несбалансированы (m <<<< n), что не облегчает мою задачу.

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

Первое, что нужно спросить себя, это о источнике отсутствующих данных. Они совершенно случайны? В вашем случае это определенно не так. Отсутствие данных для одной переменной подразумевает, что данные отсутствуют для других переменных, которые измеряются позже. Отсутствующие данные на самом деле указывают, какой тест не удался. Если вы посмотрите на данные и поймете, что большинство ложных отрицательных связано с тестом №10, может быть разумно просто требовать, чтобы тест №10 проваливался X раз, где X вы устанавливаете в зависимости от вашего соотношения риска и доходности для приложения. Возможно, лучше начать с простого анализа, такого как этот, прежде чем строить сложную модель.

Но если вы хотите перейти к сложной модели… вы не описали тип переменных в вашем наборе данных. Если переменные категориальные (факторы), то простое решение – рассматривать отсутствующие значения как уровень для этого фактора. Это распространено, когда отсутствие данных не случайно. Если ваши переменные непрерывные, вы можете добавить индикаторные переменные, которые указывают, отсутствует ли значение, а затем заполнить отсутствующие значения. Часто пропускают индикаторные переменные, если данные отсутствуют полностью случайно (это не подходит здесь). Очень распространенный способ заполнения отсутствующих значений – использовать среднее значение (или ноль, если ваш этап предварительной обработки включает центрирование). Существует большое количество литературы по техникам заполнения, но я предполагаю, что для первого прохода проще, тем лучше.

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

Ответ или решение

Как справиться с пропущенными значениями в данных?

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

1. Понимание источников пропущенных данных

Первый шаг в обработке пропущенных значений — это понимание их источников. Пропущенные данные могут быть:

  • Совершенно случайными (MCAR): Пропуски не зависят от наблюдаемых или ненаблюдаемых данных.
  • Случайными (MAR): Пропуски зависят от наблюдаемых данных, но не от пропущенных значений.
  • Неслучайными (MNAR): Пропуски зависят от собственных пропущенных значений.

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

2. Первичный анализ данных

Перед тем как применять сложные методы обработки, проведите первичный анализ данных. Посмотрите на распределение ложных отрицаний по тестам. Если, например, большинство ложных отрицаний связано только с несколькими конкретными тестами, это может стать "дымовым сигналом" для дальнейшего анализа. Рассмотрите возможность введения правил, при которых тест должен завершиться только после определенного числа сбоев.

3. Импутация пропущенных значений

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

  • Создание индикаторных переменных: Для категориальных переменных добавьте уровень, обозначающий отсутствие данных. Это позволяет сохранить информацию о пропущенных значениях.
  • Импутация значений: Для непрерывных переменных можно использовать среднее значение или медиану (в зависимости от распределения). Учтите, что простая импутация может не всегда быть адекватной. Рассмотрите более сложные методы, такие как KNN или регрессионная импутация, особенно если данные имеют много пропусков.

4. Обработка несбалансированных данных

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

  • Случайная выборка: Или увеличьте количество положительных классов, или уменьшите количество отрицательных.
  • Методы генерации данных: Используйте SMOTE (Synthetic Minority Over-sampling Technique) для синтетического увеличения выборки целевого класса.
  • Изменение метрики: При измерении производительности модели используйте метрики, такие как F1-мера или ROC AUC, чтобы правильно оценить качество вашей модели.

5. Моделирование и оценка результатов

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

Заключение

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

Оптимизация SEO

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

Оцените материал
Добавить комментарий

Капча загружается...