Кластеризация по k-среднему и Консенсус по случайной выборке

В моем предыдущем сообщении в блоге я использовал анализ главных компонентов (PCA) для обнаружения линии разлома вдоль разлома Сан-Андреас около Паркфилда. Хотя известно, что линия разлома в этой области почти вертикальна, подобранная плоскость оказалась довольно горизонтальной (рис. 1). Вероятно, это связано с тем, что PCA очень чувствителен к выбросам, поскольку это метод, основанный на матрице корреляции / ковариации. Можно также предположить, что, поскольку все точки взвешиваются одинаково, некоторые точки данных, удаленные от основной линии разлома, могли смещать плоскость. Чтобы улучшить результат, используется несколько разных подходов, и я собираюсь выполнить шаги в этом блоге.

Кластеризация по K-среднему

Поскольку известно, что структура разломов очень сложна, случайным образом был выбран раздел из всего набора данных, чтобы он соответствовал плоскости, вместо того, чтобы соответствовать плоскости для всего набора данных в последнем блоге. Однако это могло потенциально вызвать проблему, поскольку мы не знаем, принадлежат ли выбранные точки к той же структуре разлома. Следовательно, вместо случайного выбора подмножества, была применена кластеризация k-среднего для разделения точек данных на кластеры более «похожих» точек.

Кластеризация с K-средним значением - это алгоритм кластеризации, который группирует точки данных в n кластеров. Лучший центроид каждого кластера определяется 1) назначением точек данных ближайшему центроиду, 2) обновлением местоположения центроида до центра назначенных точек данных и 3) переназначением точек данных ближайшему центроиду. Этот процесс повторяется до тех пор, пока он не стабилизируется, и как только это будет сделано, точки данных, назначенные центроиду, образуют кластер.

Коэффициент силуэта

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

где a - среднее расстояние от точки данных до всех точек данных в одном кластере, а b - среднее расстояние от этой точки до всех точек данных в ближайшем кластер.

Высокое значение указывает на то, что он назначен собственному кластеру, а более низкие / отрицательные значения показывают, что он назначен плохо. Как показано на рисунке 2, 3 - лучшее количество кластеров для этого исследования. На рисунке слева внизу показаны 3 кластера точек данных, а справа показана подобранная плоскость (PCA использовался для подгонки плоскости, как и в прошлый раз).

Используя k-means, подогнанные плоскости выглядят намного лучше. Но для дальнейшего улучшения результатов был использован метод обнаружения выбросов, чтобы устранить некоторые выбросы, которые могли искажать плоскость.

Согласование по случайной выборке (RANSAC)

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

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

Для RANSAC существует библиотека sklearn с атрибутом inlier_mask_, который сообщает вам, какие точки данных считаются вставленными:

ransac = linear_model.RANSACRegressor()
ransac.fit(X, y)
inlier_mask = ransac.inlier_mask_
outlier_mask = np.logical_not(inlier_mask)

К производным вставкам для 3 кластеров подгоняются плоскости. Прозрачные точки на левом графике на рисунке 4 являются выбросами, а правый график показывает подогнанные плоскости.

Заключение

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