Кластеризация столбцов

Часто бывает необходимо выполнить кластеризацию одновременно по строкам и столбцам. В маркетинговых исследованиях интересно сгруппировать людей с целью выявления общих демографических признаков или предпочитаемых товаров, а быть может, для того чтобы выяснить, на каких полках размещены товары, которые обычно покупают вместе. В наборе данных о блогах столбцы представляют слова, и можно поинтересоваться, какие слова часто употребляют вместе. Простейший способ решить эту задачу с помощью уже написанных функций – повернуть весь набор данных, так чтобы столбцы (слова) стали строками. Тогда списки чисел в каждой строке покажут, сколько раз данное слово встречалось в каждом блоге.

Добавьте в файл clusters.py следующую функцию:

def rotatematrix(data): newdata=[]

for i in range(len(data[0])): newrow=[data[j][i] for j in range(len(data))] newdata.append(newrow) return newdata

Теперь можно повернуть матрицу и выполнить те же операции кластеризации и рисования дендрограммы, что и выше. Поскольку слов гораздо больше, чем блогов, то и времени потребуется больше, чем на кластеризацию блогов. Напомним, что коль скоро матрица повернута, метками теперь будут слова, а не названия блогов.

>> reload(clusters) >> rdata=clusters.rotatematrix(data) >> wordclust=clusters.hcluster(rdata)

>> clusters.drawdendrogram(wordclust,labels=words,jpeg=’wordclust.jpg’) Важно понимать, что если элементов гораздо больше, чем переменных, то возрастает вероятность появления бессмысленных кластеров. Поскольку слов значительно больше, чем блогов, то кластеризация блогов позволяет выявить больше осмысленных паттернов, чем кластеризация слов. Однако, как видно из рис. 3.4, некоторые интересные кластеры все же имеются.

Рис. 3.4. Кластеры слов, связанных с онлайновыми службами

Этот кластер наглядно показывает, какие слова часто употребляются в блогах при обсуждении тем, касающихся онлайновых служб и Интернета. Можно найти и другие кластеры, отражающие характерное употребление слов. Например, кластер из слов fact, us, say, very и think выдает, что автор блога – человек самоуверенный.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100