Должен ли я рассматривать коды отраслевой классификации как двойной тип данных в кластеризации K-средних? - PullRequest
0 голосов
/ 20 апреля 2019

Поскольку K-means не может обрабатывать категориальные переменные напрямую, я хочу знать, правильно ли преобразовывать Международную стандартную отраслевую классификацию всех видов экономической деятельности или ISIC в двойные типы данных для кластеризации с использованием K-средних вместе с другими финансовыми и транзакционнымиданные?Или я попробую другие методы, например одно горячее кодирование?

Самое большое предположение состоит в том, что коды ISIC являются категориальными, а не числовыми переменными, поскольку код «2930» относится к «Изготовлению деталей и принадлежностей для автомобилей», а не к деньгам., килограммы, футы и т. д., но в таких кодах есть своего рода схема, поскольку они не назначаются случайным образом и имеют иерархию, например 2930 принадлежит разделу C «Производство» и разделу 29 «Производство автомобилей, прицепов и полуфабрикатов».-trailers».

Ответы [ 3 ]

1 голос
/ 20 апреля 2019

Поскольку вы хотите использовать стандартные K-средства, вам нужно, чтобы ваши данные имели геометрический смысл. Следовательно, если ваше отображение кодов в геометрическое пространство является линейным, вы не получите должного результата кластеризации. Поскольку расстояние кода не проецируется на их значение. Например, код 2930 так же близок к коду 2931, как и код 2929. Следовательно, необходимо использовать нелинейное отображение для категориального пространства в геометрическое пространство с использованием стандартной кластеризации среднего значения.

Одним из решений является использование методов машинного обучения, аналогичных word-to-vec (для векторизации слов), если у вас достаточно данных для совместного использования этих кодов.

0 голосов
/ 20 апреля 2019

K-means предназначен для минимизации суммы квадратов .

Имеет ли смысл минимизацию суммы квадратов для вашей проблемы?Вероятно, нет!

Хотя 29, 2903 и 2930, предположительно, связаны между собой, все 2899, вероятно, не очень связаны с 2900. Следовательно, метод наименьших квадратов даст нежелательные результаты.

Метод действительно предназначен для непрерывных переменных одного типа и масштаба.Переменные в горячем виде вызывают больше проблем, чем решают - это наивный хак, чтобы заставить функцию «работать», но результаты статистически сомнительны.

Попробуйте выяснить, что он вправо что нужно сделать, это.Здесь, наверное, не наименьшие квадраты.

0 голосов
/ 20 апреля 2019

Кластеризация - это все измерение расстояния .

Дискретизация числовой переменной до категориальной является частичным решением. Как отмечалось ранее, основной вопрос: как измерить расстояние для дискретизированной переменной с другой дискретизированной переменной и числовой переменной?

В литературе существует несколько неконтролируемых алгоритмов обработки смешанных данных . Взгляните на алгоритм k-прототипов и расстояние Гауэра.

k-прототипы в R приведены в пакете clustMixType . Расстояние Gower в R указано в функции daisy в пакете cluster. Если вы используете Python, вы можете посмотреть этот post

  1. Huang, Z. (1997). Кластеризация больших наборов данных со смешанными числовыми и категориальными значениями. Документ, представленный на Слушаниях 1-й Тихоокеанской Азиатской Конференции по Обнаружению Знаний и Добыче Данных (PAKDD).

  2. Gower, J.C. (1971). Общий коэффициент подобия и некоторые его свойства. Биометрия, 857-871.

...