2012-04-01 3 views
2

Привет Я использую алгоритм разбиения по методу медоидов для кластеризации с использованием функции pam в пакете кластеризации. У меня есть 4 атрибуты в наборе данных, которые я кластерным, и они, кажется, дают мне около 6 кластеров, и я хочу, чтобы генерировать аа график этих кластеров через эти 4 атрибутов, как этот 1: http://www.flickr.com/photos/[email protected]/7036003411/in/photostream/lightbox/ «центроидом сюжет»Как сгенерировать графы medoid

Но единственный способ Я могу нарисовать результат кластеризации либо с помощью дендрограммы, либо с помощью команды plot (data, col = result$clustering), которая, похоже, генерирует график, подобный этому [2]: http://www.flickr.com/photos/[email protected]/7036003777/in/photostream «Результаты пэра».

Хотя первое изображение представляет собой график центроида, мне интересно, есть ли какие-либо инструменты, доступные в R, чтобы сделать то же самое со срединным графиком. Обратите внимание, что он также печатает размер каждого кластера на графике. Было бы здорово, чтобы узнать, есть ли какие-либо пакеты/решение, доступное в R, которые способствуют, чтобы сделать это, или если не то, что должна быть хорошей отправной точкой для того, чтобы достичь участков, аналогичных в Image 1.

Благодарности

Привет всем, Я пытался решить проблему так, как сказал Джоран, но я думаю, что я не понял ее правильно и не сделал ее правильно, как это должно быть сделано. Во всяком случае, это то, что я сделал до сих пор. Ниже, как файл выглядит, что я пытался группироваться

geneID   RPKM-base  RPKM-1cm  RPKM+4cm  RPKMtip 
GRMZM2G181227 3.412444267  3.16437442  1.287909035  0.037320722 
GRMZM2G146885 14.17287135  11.3577013  2.778514642  2.226818648 
GRMZM2G139463 6.866752401  5.373925806  1.388843962  1.062745344 
GRMZM2G015295 1349.446347  447.4635291  29.43627879  29.2643755 
GRMZM2G111909 47.95903081  27.5256729  1.656555758  0.949824883 
GRMZM2G078097 4.433627458  0.928492841  0.063329249  0.034255945 
GRMZM2G450498 36.15941083  9.45235616  0.700105077  0.194759794 
GRMZM2G413652 25.06985426  15.91342458  5.372151214  3.618914949  
GRMZM2G090087 21.00891969  18.02318412  17.49531186  10.74302155 

Ниже выхода Pam кластерного

GRMZM2G181227 
1 
GRMZM2G146885 
2 
GRMZM2G139463 
2 
GRMZM2G015295 
2 
GRMZM2G111909 
2 
GRMZM2G078097 
3 
GRMZM2G450498 
3 
GRMZM2G413652 
2 
GRMZM2G090087 
2 
AC217811.3_FG003 
2 

Используя вышеуказанные два файл я сгенерированный третий файл, который несколько похож на это и имеет кластер информация в виде типа кластера K1, K2 и т.д.

geneID RPKM-base  RPKM-1cm  RPKM+4cm  RPKMtip Cluster_type 
GRMZM2G181227 3.412444267  3.16437442  1.287909035  0.037320722  K1 
GRMZM2G146885 14.17287135  11.3577013  2.778514642  2.226818648  K2 
GRMZM2G139463 6.866752401  5.373925806  1.388843962  1.062745344  K2 
GRMZM2G015295 1349.446347  447.4635291  29.43627879  29.2643755  K2 
GRMZM2G111909 47.95903081  27.5256729  1.656555758  0.949824883  K2 
GRMZM2G078097 4.433627458  0.928492841  0.063329249  0.034255945  K3 
GRMZM2G450498 36.15941083  9.45235616  0.700105077  0.194759794  K3 
GRMZM2G413652 25.06985426  15.91342458  5.372151214  3.618914949  K2 
GRMZM2G090087 21.00891969  18.02318412  17.49531186  10.74302155  K2 

Я, конечно, не думаю, что это файл, который Joran бы хотел создать, но я не мог думать чего-либо другого, таким образом, я запустил решетку в указанном выше файле, используя следующий код.

clusres<- read.table("clusinput.txt",header=TRUE,sep="\t"); 
jpeg(filename = "clusplot.jpeg", width = 800, height = 1078, 
    pointsize = 12, quality = 100, bg = "white",res=100); 
    parallel(~clusres[2:5]|Cluster_type,clusres,horizontal.axis=FALSE); 
dev.off(); 

и я получаю картину, как этот parallel plot of the cluster

Поскольку я хочу одну единственную строку в качестве представителя всего кластера в четырех разных точках этот вывод является неправильным, кроме того, я пытался играть с решеткой, но я могу не выясните, как заставить его принимать значения Rpkm в качестве координаты X. Кажется, что так много строк связано с максимальным или минимальным значением в координате Y, которое я не понимаю, что это такое.

Будет здорово, если кто-нибудь может мне помочь. Извините Если мой вопрос по-прежнему кажется вам абсурдным.

+0

Привет, я действительно застрял с этой проблемой, я пытался советы по Joran, но я не ясно понимал это так может быть то, что я сделал, может быть неправильным, чем то, что я должен был делать. Вот что я сделал. –

ответ

4

Я не знаю каких-либо заранее построенных функций, которые генерируют сюжет, который вы указываете, который выглядит мне как своего рода параллельный график координат.

Но создание такого участка было бы довольно тривиальным упражнением.

  1. Добавьте столбец кластера меток (K1, K2 и т.д.) к исходному набору данных, основанный на выходе вашего кластеризация алгоритма.

  2. Используйте один из многих, многих инструментов в R для агрегирования данных (plyr, aggregate и т.д.), чтобы вычислить соответствующие сводные статистические данные по группам на каждом из четырех переменных. (Вы не сказали, что на самом деле изображает первый график. Среднее значение и sd? Медиан и MAD?)

  3. Поскольку вы хотите, чтобы графики разбивались на шесть отдельных панелей или граней, вы, вероятно, захотите построить данные используя либо ggplot, либо решетка, обе из которых обеспечивают отличную поддержку для создания одного и того же участка, разбитого на один вектор группировки (т.е. кластеры в вашем случае).

Но это примерно так же конкретны, как любой человек может получить, учитывая, что вы предоставили так мало информации (то есть не минимальный работоспособный пример, как это было рекомендовано here).

1

Как насчет использования clusplot из упаковки cluster с partitioning around medoids? Вот простой пример (из примера секции):

require(cluster) 
#generate 25 objects, divided into 2 clusters. 
x <- rbind(cbind(rnorm(10,0,0.5), rnorm(10,0,0.5)), 
    cbind(rnorm(15,5,0.5), rnorm(15,5,0.5))) 
clusplot(pam(x, 2)) #`pam` does you partitioning 

enter image description here

Смежные вопросы