Возможно, вы можете использовать Expectation-maximization algorithm. Ваши очки будут (value, position)
. В вашем примере, это будет что-то вроде:
С алгоритма EM, то результат будет что-то вроде (вручную):
Это желаемый результат, поэтому вы можете рассмотреть возможность использования этого, и если он действительно работает во всех ваших сценариях. Аннотации, вы должны назначить ранее количество кластеров, которые вы хотите, но я думаю, что это не проблема для вас, поскольку вы задали свой вопрос.
Позвольте мне знать, если это работает;)
Edit:
Смотреть эту картину, то, что вы говорили. С помощью k-средств вы должны управлять delta value
, это так, как позиция приращение, чтобы его значение имело тот же масштаб, что и значение. Но с E-M это не имеет значения.
Edit 2:
Хорошо, я не был прав, вы должны контролировать delta value
. Это не то же самое, если вы увеличивать позиции на 1 или 3: (две группы)
Таким образом, как вы сказали, этот алгоритм может решить кластер точек, которые не являются соседними, если их положение далеко, но их ценность близка. Вы должны гарантировать, что этого не произойдет, с высоким приращением delta
. Я думаю, что с приращением 2 * (max - min) значений вашей последовательности этого не произойдет.
Теперь ваши баллы будут иметь форму (value, delta * position)
.
Спасибо за предложение. K-означает вид работ (именно с этого я и начинался), но вы должны убедиться, что значения (от 0 до 3 в моем примере) малы по сравнению с позицией (которая равна 1). Действительно, k-средства могут решить кластерные точки, которые не являются соседями, если их положение далеко, но их значение близко. – VeilleData
Значения ввода и результата имеют разные значения. В третьей части –
решил, спасибо Санти Гил – VeilleData