@@aikula999 Скажите пожалуйста, при оценки количества кластеров методом "локтя" вы строите 2 кривые. Первая это непосредственно кривая изображающая "локоть", а что показывает вторая?
спасибо огромное в последнем блоке ноутбука который я загрузил по данному уроку небольшая опечатка. В файл для метода K-mean те же номера что и для IER, наверное вместо строки dataK['group_no']=clusters , надо писать dataK['group_no']=km.labels_ +1
спасибо за то, что указали на опечатку. И еще важный момент, что этот репозиторий устарел. Свежие версии файлов есть здесь github.com/aikula/DataDriven/ Я по другом построил чуть и запись в файл и обработку результатов. Самый свежий блокнот github.com/aikula/DataDriven/blob/master/Clustering37-2.ipynb Видео надо тоже думаю актуализировать.
Здравствуйте! Спасибо за полезное видео. Пытаюсь применить к своим данным, но на pdist вызывает died process и kernel перегружается. Не подскажите причину?
Добрый день! Скорее всего, проблема в данных. Есть либо пропуски, либо нечисловые значения. Еще вариант, используете слишком большой массив и просто не хватает памяти. Это так же приводит к описанной Вами ошибке.
Здравствуйте, Андрей! Подскажите, пожалуйста, в строке last = data_linkage[-10:, 3] что означают цифры в скобках? И если можете, напишите более подробно, что значит каждая строчка в этом разделе. Спасибо # Метод локтя. Позволячет оценить оптимальное количество сегментов. # Показывает сумму внутри групповых вариаций last = data_linkage[-10:, 3] last_rev = last[::-1] idxs = np.arange(1, len(last) + 1) plt.plot(idxs, last_rev) acceleration = np.diff(last, 2) acceleration_rev = acceleration[::-1] plt.plot(idxs[:-2] + 1, acceleration_rev) plt.show() k = acceleration_rev.argmax() + 2 print("clusters:", k)
Андрей, спасибо! Ваше видео было очень полезно!
Никита, спасибо!
@@aikula999 Скажите пожалуйста, при оценки количества кластеров методом "локтя" вы строите 2 кривые. Первая это непосредственно кривая изображающая "локоть", а что показывает вторая?
Прошу прощения за задержку с ответом. Вторая показывает, как сократилась дисперсия. Именно только само изменение.
@@aikula999 спасибо большое за ответ!
огромное спасибо
спасибо огромное в последнем блоке ноутбука который я загрузил по данному уроку небольшая опечатка. В файл для метода K-mean те же номера что и для IER, наверное вместо строки dataK['group_no']=clusters
, надо писать dataK['group_no']=km.labels_ +1
спасибо за то, что указали на опечатку. И еще важный момент, что этот репозиторий устарел. Свежие версии файлов есть здесь github.com/aikula/DataDriven/ Я по другом построил чуть и запись в файл и обработку результатов. Самый свежий блокнот github.com/aikula/DataDriven/blob/master/Clustering37-2.ipynb Видео надо тоже думаю актуализировать.
Здравствуйте! Спасибо за полезное видео. Пытаюсь применить к своим данным, но на pdist вызывает died process и kernel перегружается. Не подскажите причину?
Memory error)) complexity is too high)) fixed
Добрый день! Скорее всего, проблема в данных. Есть либо пропуски, либо нечисловые значения. Еще вариант, используете слишком большой массив и просто не хватает памяти. Это так же приводит к описанной Вами ошибке.
Andrey Kulinich спасибо) да было ~3млн записей. Новая ошибка ( ( при запуске scatter ругается
‘tuple’ object is not callable 🤔
@@JuliaLondonChannel надо смотреть на блокнот. Что то с форматом данных на предыдущих этапах.
Andrey Kulinich это на google colab генерировалась ошибка.
На локальном компьютере все хорошо)
Спасибо!
Здравствуйте, Андрей!
Подскажите, пожалуйста, в строке last = data_linkage[-10:, 3] что означают цифры в скобках?
И если можете, напишите более подробно, что значит каждая строчка в этом разделе. Спасибо
# Метод локтя. Позволячет оценить оптимальное количество сегментов.
# Показывает сумму внутри групповых вариаций
last = data_linkage[-10:, 3]
last_rev = last[::-1]
idxs = np.arange(1, len(last) + 1)
plt.plot(idxs, last_rev)
acceleration = np.diff(last, 2)
acceleration_rev = acceleration[::-1]
plt.plot(idxs[:-2] + 1, acceleration_rev)
plt.show()
k = acceleration_rev.argmax() + 2
print("clusters:", k)
Максим, добрый день! Подробно не расписывал, так как это будет стандартный код. data_linkage - это список, который возвращает функция scipy.cluster.hierarchy.linkage() (в коде строчкой выше). И дальше идет подготовка этого списка к отрисовке графика на его основе.
Те, например last = data_linkage[-10:, 2] (обратите внимание, в скопированном Вами коде ошибка) получает значение 2-го столбца из последних 10-ти строк двух мерного списка.
например data_linkage:
array([[ 7. , 9. , 0.3 , 2. ],
[ 4. , 6. , 0.5 , 2. ],
[ 2. , 5. , 0.58309519, 2. ],
[ 1. , 3. , 0.64031242, 2. ],
[12. , 13. , 0.69135679, 4. ],
[10. , 11. , 0.79412176, 3. ],
[14. , 15. , 1.02819074, 6. ],
[ 8. , 16. , 1.54252589, 4. ],
[ 0. , 17. , 2.08910049, 7. ],
[18. , 19. , 2.78034338, 11. ]])
тогда
data_linkage[-10:, 2]
array([0.3 , 0.5 , 0.58309519, 0.64031242, 0.69135679,
0.79412176, 1.02819074, 1.54252589, 2.08910049, 2.78034338])
и тд.