002 Кластеризация средствами Python 3

Поділитися
Вставка
  • Опубліковано 3 гру 2024

КОМЕНТАРІ • 16

  • @ИоновНикита-ц1с
    @ИоновНикита-ц1с 5 років тому +1

    Андрей, спасибо! Ваше видео было очень полезно!

    • @aikula999
      @aikula999  5 років тому

      Никита, спасибо!

    • @ИоновНикита-ц1с
      @ИоновНикита-ц1с 5 років тому

      @@aikula999 Скажите пожалуйста, при оценки количества кластеров методом "локтя" вы строите 2 кривые. Первая это непосредственно кривая изображающая "локоть", а что показывает вторая?

    • @aikula999
      @aikula999  4 роки тому

      Прошу прощения за задержку с ответом. Вторая показывает, как сократилась дисперсия. Именно только само изменение.

    • @ИоновНикита-ц1с
      @ИоновНикита-ц1с 2 роки тому

      @@aikula999 спасибо большое за ответ!

  • @ivan_inanych
    @ivan_inanych 4 роки тому

    огромное спасибо

  • @ТаинственныйНезнакомец-п8й

    спасибо огромное в последнем блоке ноутбука который я загрузил по данному уроку небольшая опечатка. В файл для метода K-mean те же номера что и для IER, наверное вместо строки dataK['group_no']=clusters
    , надо писать dataK['group_no']=km.labels_ +1

    • @aikula999
      @aikula999  4 роки тому

      спасибо за то, что указали на опечатку. И еще важный момент, что этот репозиторий устарел. Свежие версии файлов есть здесь github.com/aikula/DataDriven/ Я по другом построил чуть и запись в файл и обработку результатов. Самый свежий блокнот github.com/aikula/DataDriven/blob/master/Clustering37-2.ipynb Видео надо тоже думаю актуализировать.

  • @JuliaLondonChannel
    @JuliaLondonChannel 5 років тому +1

    Здравствуйте! Спасибо за полезное видео. Пытаюсь применить к своим данным, но на pdist вызывает died process и kernel перегружается. Не подскажите причину?

    • @JuliaLondonChannel
      @JuliaLondonChannel 5 років тому

      Memory error)) complexity is too high)) fixed

    • @aikula999
      @aikula999  5 років тому

      Добрый день! Скорее всего, проблема в данных. Есть либо пропуски, либо нечисловые значения. Еще вариант, используете слишком большой массив и просто не хватает памяти. Это так же приводит к описанной Вами ошибке.

    • @JuliaLondonChannel
      @JuliaLondonChannel 5 років тому

      Andrey Kulinich спасибо) да было ~3млн записей. Новая ошибка ( ( при запуске scatter ругается
      ‘tuple’ object is not callable 🤔

    • @aikula999
      @aikula999  5 років тому

      @@JuliaLondonChannel надо смотреть на блокнот. Что то с форматом данных на предыдущих этапах.

    • @JuliaLondonChannel
      @JuliaLondonChannel 5 років тому

      Andrey Kulinich это на google colab генерировалась ошибка.
      На локальном компьютере все хорошо)
      Спасибо!

  • @DressedAsGoblin
    @DressedAsGoblin 5 років тому

    Здравствуйте, Андрей!
    Подскажите, пожалуйста, в строке 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
      @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])
      и тд.