Имеется набор точек на декартовой плоскости, которые являются координатами сторон некоторой фигуры (какой именно - неизвестно). Среди точек есть выбросы и точкам присущи случайные отклонения.

На рисунке видно, что фигура состоит из четырех прямых.
Задача: кластеризовать точки по принадлежности к наиболее подходящей прямой, и по возможности - получить параметры этих прямых.
ВАЖНО! Данных слишком мало (например - 100 точек), поэтому преобразование Хафа плохо работает. Нужен какой-то другой метод.
Спасибо заранее за любую помощь или возможные подсказки.