Вопрос или проблема
У меня есть некоторые данные телеметрии от автомобилей, которые записывают около 500 переменных (например, температура двигателя, температура выхлопа и т. д.). Я хотел бы иметь возможность классифицировать данные в соответствии с действиями автомобиля, будь то холостой ход, подъем на холм и т. д.
Целевых меток нет, поэтому я думал о том, чтобы провести кластеризацию для изучения данных и потенциальных кластеров. Поскольку данные имеют высокую размерность, мне нужно что-то гибкое.
Мне было интересно, какие модели будут хороши для этой задачи?
Прежде всего, добро пожаловать в сообщество, а во-вторых, БОЛЬШОЙ СИГНАЛ ТРЕВОГИ!
Неконтролируемое и классификация — это два принципиально разных ключевых слова в машинном обучении. Поскольку вы спрашивали о неконтролируемой классификации, я настоятельно рекомендую ознакомиться с этими концепциями, чтобы избежать выполнения действий без понимания их фона, что может привести к не таким значимым результатам.
В-третьих, я предполагаю два сценария ниже и отвечу на ваш вопрос:
- У вас есть эти метки, т.е. подъем, холостой ход и т. д. Тогда у вас есть проблема классификации, и сама классификация не имеет ничего общего с неконтролируемым обучением. Вы можете использовать неконтролируемые алгоритмы для инжиниринга признаков, но сама классификация является контролируемой. В этом случае у вас есть варианты, которые подходят для работы с высокоразмерными данными, например SVM, случайные леса и нейронные сети. Напишите базовую архитектуру (на Python, Sci-kit Learn предоставляет вам подходящие инструменты для начала) и выполните кросс-валидацию и мониторинг вашей модели. На этом этапе слишком сложно это обсуждать.
- У вас нет этих меток и вы хотите кластеризовать данные по разным группам схожих действий в зависимости от ваших переменных. Это неконтролируемое, и да, вы можете это сделать, но вы не знаете с самого начала, какая из групп является подъемом, а какая холостым ходом.
- В случае 2 вы можете кластеризовать ваши данные и проверить несколько образцов из каждого кластера, и если вы можете вручную создать метки, пометьте их в соответствии с разными действиями и предположите, что остальная часть кластера представляет собой те же действия. Тем не менее, ваша проблема остается неконтролируемой, поэтому рано или поздно вы столкнетесь с вопросом сколько кластеров мне предположить в моих данных?, что является другой проблемой.
ОБНОВЛЕНИЕ
Таким образом, проблема – это второй случай. Вот решение:
- Во-первых, попробуйте EDA, чтобы понять ваши данные. Метод уменьшения размерности — хороший способ уменьшить количество признаков до меньшего, но более информативного. Я предлагаю начать с визуализации с помощью UMAP или t-SNE и посмотреть, как выглядят ваши данные (интуитивно).
- Попробуйте алгоритмы уменьшения размерности и интуитивно изучите данные. Это даст вам общее представление о том, какой алгоритм использовать. Я предлагаю простой PCA, kernel PCA, LLE и UMAP, как уже упоминалось ранее.
- В зависимости от распределения данных и кластеров выберите подходящий алгоритм. В случае хорошо разделенных гауссовских кластеров простая k-средняя выполнит свою работу. DBSCAN используется, когда плотность кластеров различается. Спектральная кластеризация — это вычислительно затратный, но довольно нелинейный подход к проблеме кластеризации.
- Кластеризация не имеет оценки. Вам нужно вручную проверить ваши кластеры и увидеть, имеют ли они смысл. Это не повод избегать ответов! Это факт, который я вижу, часто бывает неверно истолкован. Оценки кластеризации не существует, кроме создания ручных меток для некоторых данных и проверки, находятся ли они в правильном кластере!
PS: KNN — это контролируемый алгоритм и требует метки. Вы упомянули это в комментариях, поэтому я подумал, что будет уместно исправить это здесь тоже.
Удачи!
Ответ или решение
Учитывая ваши задачи по анализу телеметрических данных автомобилей и необходимость классификации на основе высокой размерности данных без наличия целевых меток, рассмотрим несколько подходов, которые могут оказаться полезными для выполнения данной задачи.
1. Проведение Предварительного Анализа Данных (EDA)
Прежде всего, важно провести предварительный анализ ваших данных. Это поможет понять структуру данных и выявить естественные паттерны. Визуализация данных с помощью методов, таких как UMAP или t-SNE, может быть особенно полезной для получения интуитивного представления о распределении данных в высоких измерениях. Эти техники хорошо подходят для выявления возможных кластеров.
2. Снижение Размерности
Для обработки высокоразмерных данных полезно использовать алгоритмы снижения размерности. Вот несколько рекомендованных подходов:
- PCA (Метод главных компонент): Позволяет уменьшить количество переменных, сохраняя максимальную дисперсию в данных. Это один из наиболее простых и популярных методов.
- t-SNE: Эффективен для визуализации данных в низкоразмерных пространствах, особенно когда данные имеют сложную структуру.
- UMAP (Сжимающий алгоритм масштабов): Более современный метод, который часто показывает лучшие результаты, чем t-SNE, особенно при работе с большими наборами данных.
- LLE (Локально-линеарное встраивание): Полезно для изучения многообразий в данных.
Снижение размерности поможет упростить задачу кластеризации и сделать ее более управляемой.
3. Выбор Алгоритмов Кластеризации
После снижения размерности можно приступать к кластеризации данных. Вот несколько моделей, которые могут подойти для вашей задачи:
- K-средних (K-Means): Подходит для группировки дискретных, четко отделенных кластеров. Работает хорошо при условии, что кластеры имеют одинаковую дисперсию.
- DBSCAN: Особенно эффективен для обнаружения кластеров различной плотности. Полезен в случаях, когда данные содержат шум или выбросы.
- Скоростная кластеризация (Spectral Clustering): Комбинирует концепции графов и линейной алгебры для поиска кластеров в сложной структуре данных. Однако требует больших вычислительных ресурсов.
- Agglomerative Clustering: Иерархический подход, который может помочь выявить структуру деревьев в данных.
4. Оценка Кластеров
Отметим, что кластеризация — это нерегулярный процесс. Прямых метрик для оценки качества кластеров не существует. следовательно, важно вручную проверять полученные кластеры и оценивать, соответствует ли состав кластеров ожидаемым видам деятельности. Для этого может потребоваться ручная аннотация части данных.
5. Итоги и Рекомендации по Применению
Несмотря на отсутствие целевых меток, использование вышеуказанных методов поможет выяснить, какие группы активности могут существовать в ваших данных о телеметрии автомобилей. Важно помнить, что задача кластеризации требует итеративного подхода: не бойтесь экспериментировать с различными методами и процессами, чтобы найти оптимальные решения для анализа вашей специфической задачи.
В заключение, исследуйте данные, применяйте алгоритмы, проводите визуализации и учитывайте результаты практического анализа. Это поможет вам лучше понять свое дело и выдвинуть рабочие гипотезы о поведении автомобилей на основе анализа ваших данных. Удачи в вашем проекте!