Формування формули інерції в науці


9

Я хотів би кодувати kmeans, що кластеруються в python, використовуючи панди та scikit learn. Для того, щоб вибрати хороший k, я хотів би зашифрувати статистику прогалини від Tibshirani та ін 2001 ( pdf ).

Мені хотілося б знати, чи можу я використати результат inertia_ від scikit і адаптувати статистичну формулу розриву без необхідності перекодувати всі розрахунки відстаней.

Хтось знає формулу інерції, яка використовується в scikit / знає простий спосіб перекодувати статистику розриву за допомогою функцій дистанції на високому рівні?


Я думаю, що це питання має достатній статистичний зміст, щоб бути тематичним для резюме, але зауважте, що воно вимагає досить складного програмування та знань Python. Отримати хорошу відповідь може бути важко. Ви можете попросити / бути готовим погодитися і на псевдокоді , і / або вам може знадобитися розділити це питання на 2 частини, 1 тут про статистичні аспекти та 1 частина на стеку Overflow про аспекти програмування Python. (А може, ні, я точно не знаю, але я просто хочу попередити вас; ми побачимо, як воно пройде.)
gung - Відновіть Моніку

1
Це питання потребує визначення терміну "інерція". Це схоже на його вигадане всередині python.
ttnphns

Відповіді:


6

Я думаю, що я знайшов свою відповідь на кластеризацію kmeans:

Переглянувши вихідний код git, я виявив, що для scikit learn інерція обчислюється як сума квадратичної відстані для кожної точки до її найближчого центру, тобто присвоєного кластеру. ТомуЯ=i(г(i,cr)) де cr є центроїдом призначеного кластера і г - відстань у квадраті.

Тепер формула статистики розриву передбачає

Wк=r=1к1(2нr)Dr
де Dr - сума квадратних відстаней між усіма точками кластера r.

Вводячи +c, -c у формулі відстані у квадраті (c будучи центроїдом кластера r координати), у мене є термін, який відповідає Інерції (як у scikit) + термін, який зникає, якщо кожен cє барицентром кожного кластеру (який, як передбачається, є в кмеанах). Так я здогадуюсьWк насправді є науковою інерцією.

У мене ще два питання:

  1. Ви вважаєте, чи моє обчислення правильне? (Наприклад, я не знаю, чи це стосується ієрархічної кластеризації.)
  2. Якщо я правдивий вище, я зашифрував статистику розриву (як різницю інерцій журналу між оцінкою та кластеризацією), і вона погано спрацьовує, особливо на наборі даних райдужної оболонки, хто-небудь пробував це?

2
Найкраще не ставити питань у своїх відповідях. Якщо це насправді не відповідь на ваше запитання, а лише часткове рішення для уточнення реального питання, було б краще відредагувати своє запитання та вставити цю інформацію.
gung - Відновіть Моніку

1
@Scratch Ви коли-небудь отримували пітонську реалізацію статистики розриву для роботи над набором даних про Iris? Я борюся з тим же питанням.
Zelazny7

Так, я зашифрував один кілька місяців тому. Як я можу вам надіслати це?
Скретч

1
Не повинно бути такої формули
Wк=r=1кDr(2нr)
?
Бісванат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.