No video
002 Кластеризация средствами Python 3
Рассматривается иерархическая и KMeans кластеризация средствами Python.
Ссылка на блокноты с примерами notebooks.azur...
Ищите на канале более свежее видео по кластеризации. А также более удачные блокноты по кластеризации доступны по ссылке github.com/aik...
Пікірлер: 16
Андрей, спасибо! Ваше видео было очень полезно!
@aikula999
4 жыл бұрын
Никита, спасибо!
@user-rt4js7dz7w
4 жыл бұрын
@@aikula999 Скажите пожалуйста, при оценки количества кластеров методом "локтя" вы строите 2 кривые. Первая это непосредственно кривая изображающая "локоть", а что показывает вторая?
@aikula999
3 жыл бұрын
Прошу прощения за задержку с ответом. Вторая показывает, как сократилась дисперсия. Именно только само изменение.
@user-rt4js7dz7w
2 жыл бұрын
@@aikula999 спасибо большое за ответ!
спасибо огромное в последнем блоке ноутбука который я загрузил по данному уроку небольшая опечатка. В файл для метода K-mean те же номера что и для IER, наверное вместо строки dataK['group_no']=clusters , надо писать dataK['group_no']=km.labels_ +1
@aikula999
4 жыл бұрын
спасибо за то, что указали на опечатку. И еще важный момент, что этот репозиторий устарел. Свежие версии файлов есть здесь github.com/aikula/DataDriven/ Я по другом построил чуть и запись в файл и обработку результатов. Самый свежий блокнот github.com/aikula/DataDriven/blob/master/Clustering37-2.ipynb Видео надо тоже думаю актуализировать.
огромное спасибо
Здравствуйте! Спасибо за полезное видео. Пытаюсь применить к своим данным, но на pdist вызывает died process и kernel перегружается. Не подскажите причину?
@JuliaLondonChannel
5 жыл бұрын
Memory error)) complexity is too high)) fixed
@aikula999
5 жыл бұрын
Добрый день! Скорее всего, проблема в данных. Есть либо пропуски, либо нечисловые значения. Еще вариант, используете слишком большой массив и просто не хватает памяти. Это так же приводит к описанной Вами ошибке.
@JuliaLondonChannel
5 жыл бұрын
Andrey Kulinich спасибо) да было ~3млн записей. Новая ошибка ( ( при запуске scatter ругается ‘tuple’ object is not callable 🤔
@aikula999
5 жыл бұрын
@@JuliaLondonChannel надо смотреть на блокнот. Что то с форматом данных на предыдущих этапах.
@JuliaLondonChannel
5 жыл бұрын
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)
@aikula999
5 жыл бұрын
Максим, добрый день! Подробно не расписывал, так как это будет стандартный код. 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]) и тд.