5.1 クラスタリングと樹状図 .1 階層的クラスタリング hclust()
5.1.9 樹状図のインタラクティブな操作 identify.hclust()
learning , . . 1 raises . , . , 1
critical . 1
advance . . . 1
attr(,"legend")
[1] 0 0.3 . 0.6 , 0.8 + 0.9 * 0.95 B 1
> heatmap(Ca, symm = TRUE, margins=c(6,6)) # reorder()使用
> heatmap(Ca, Rowv=FALSE, symm = TRUE, margins=c(6,6)) # reorder()不使用
# 距離を定義する関数を自前で与える例(以下の図を参照)
# 米国最高裁判事の法律家による評価データUSJudgeRatings使用
> symnum( cU <- cor(USJudgeRatings) ) CO I DM DI CF DE PR F O W PH R CONT 1
INTG 1 DMNR B 1 DILG + + 1 CFMG + + B 1 DECI + + B B 1
PREP + + B B B 1
FAMI + + B * * B 1
ORAL * * B B * B B 1 WRIT * + B * * B B B 1 PHYS , , + + + + + + + 1 RTEN * * * * * B * B B * 1 attr(,"legend")
[1] 0 0.3 . 0.6 , 0.8 + 0.9 * 0.95 B 1
> hU <- heatmap(cU, Rowv = FALSE, symm = TRUE, col = topo.colors(16), distfun = function(c) as.dist(1 - c), keep.dendro = TRUE)
# 同じ再並べ替えを持つ相関行列
> round(100 * cU[hU[[1]], hU[[2]]])
CONT INTG DMNR PHYS DILG CFMG DECI RTEN ORAL WRIT PREP FAMI
CONT 100 -13 -15 5 1 14 9 -3 -1 -4 1 -3
INTG -13 100 96 74 87 81 80 94 91 91 88 87
DMNR -15 96 100 79 84 81 80 94 91 89 86 84
PHYS 5 74 79 100 81 88 87 91 89 86 85 84
(以下省略)
> str(hU$Colv) # 列デンドログラム
--[dendrogram w/ 2 branches and 12 members at h = 1.15]
|--leaf "CONT"
‘--[dendrogram w/ 2 branches and 11 members at h = 0.258]
|--[dendrogram w/ 2 branches and 2 members at h = 0.0354]
| |--leaf "INTG"
| ‘--leaf "DMNR"
‘--[dendrogram w/ 2 branches and 9 members at h = 0.187]
(以下省略)
FUN
クラスタ中のデータ点の添字数に適用される(
オプションの)
関数.下の詳細を 見よN
照合されるべきクラスタの最大数MAXCLUSTER
切断により作り出すことのできるクラスタの最大数(
ポインタの有効な垂直範囲を制限する
DEV.FUN
オプションの整数値.もし指定されると,対応するグラフィックスデバイスが
FUN
の適用前にアクティブになる... FUN
への追加引き数返り値: データ点の添字のベクトルのリストか,関数
FUN
の返り値のリスト既定では,クラスタはマウス用いて特定され,該当データ点の「コンソールには表示
されない
(invisible)
」添字のリストが返される.もし,FUN
がNULL
で無ければ,データ点の添字ベクトルは,この関数の第一引き数として引き渡される.以下の例を参照せよ.
FUN
に対するアクティブなグラフィックスデバイスはDEV.FUN
を用いて指定できる.特 定の過程はマウスの第一ボタン以外を押すと停止する.identify()
関数を参照せよ.cyl am vs carb wt drat gear qsec mpg hp disp specification variables
Maserati Bora Chrysler Imperial Lincoln Continental Cadillac Fleetwood Hornet Sportabout Pontiac Firebird Ford Pantera L Camaro Z28 Duster 360 Valiant Hornet 4 Drive AMC Javelin Dodge Challenger Merc 450SLC Merc 450SE Merc 450SL Honda Civic Toyota Corolla Fiat X1−9 Fiat 128 Ferrari Dino Merc 240D Mazda RX4 Mazda RX4 Wag Merc 280C Merc 280 Lotus Europa Merc 230 Volvo 142E Datsun 710 Porsche 914−2 Toyota Corona
Car Models
heatmap(<Mtcars data>, ..., scale = "column")
mpg cyl disp hp drat wt qsec vs am gear carb
specification variables
Maserati Bora Chrysler Imperial Lincoln Continental Cadillac Fleetwood Hornet Sportabout Pontiac Firebird Ford Pantera L Camaro Z28 Duster 360 Valiant Hornet 4 Drive AMC Javelin Dodge Challenger Merc 450SLC Merc 450SE Merc 450SL Honda Civic Toyota Corolla Fiat X1−9 Fiat 128 Ferrari Dino Merc 240D Mazda RX4 Mazda RX4 Wag Merc 280C Merc 280 Lotus Europa Merc 230 Volvo 142E Datsun 710 Porsche 914−2 Toyota Corona
Car Models
heatmap(<Mtcars data>, ..., scale = "column")
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout Valiant Duster 360 Merc 240D Merc 230 Merc 280 Merc 280C Merc 450SE Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla Toyota Corona Dodge Challenger AMC Javelin Camaro Z28 Pontiac Firebird Fiat X1−9 Porsche 914−2 Lotus Europa Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
heatmap(*, NA, NA) ~= image(t(x))
critical advance privileges rating complaints learning raises
raises learning complaints rating privileges advance critical
privileges rating complaints learning raises critical advance
advance critical raises learning complaints rating privileges
CONT INTG DMNR PHYS DILG CFMG DECI RTEN ORAL WRIT PREP FAMI
FAMI PREP WRIT ORAL RTEN DECI CFMG DILG PHYS DMNR INTG CONT
樹状図に対するヒートマップ
# 米国犯罪検挙率データUSArrests使用(次の図を参照)
> hca <- hclust(dist(USArrests)) # 階層的クラスタリング
> plot(hca) # そのプロット
# マウス第一ボタンでで樹状図の特定クラスタ選択すると該当副木が枠で囲まれ,
# その部分の情報が返される.同時に複数の選択ができる
> (x <- identify(hca)) # 選択中止はマウスの第2ボタンを押す
[[1]]
Arkansas Colorado Georgia Massachusetts Missouri
4 6 10 21 25
New Jersey Oklahoma Oregon Rhode Island Tennessee
30 36 37 39 42
Texas Virginia Washington Wyoming
43 46 47 50
# アヤメデータirisを使用
> hci <- hclust(dist(iris[,1:4])) # 階層的クラスタリング
# 新しいデバイスを開く(樹状図と棒グラフ用に二つ)
> get(getOption("device"))() # 元のデバイスの脇に
> nD <- dev.cur() # 棒グラフ用
> dev.set(dev.prev()) # 樹状図用の元のデバイス
> plot(hci) # 樹状図を描く
# マウスでクラスタを選択すると,クラスタ中のアヤメの種類の棒グラフが描かれる
> identify(hci, function(k) barplot(table(iris[k,5]),col=2:4), DEV.FUN=nD)
Florida
North Carolina Delaware Alabama Louisiana
AlaskaMississippiSouth CarolinaMarylandArizonaNew MexicoCaliforniaIllinoisNew YorkMichiganNevadaMissouriArkansasTennesseeGeorgiaColoradoTexasRhode IslandWyomingOregonOklahomaVirginia Washington
MassachusettsNew Jersey
Ohio Utah
ConnecticutPennsylvaniaNebraska
Kentucky Montana
Idaho
Indiana Kansas
HawaiiMinnesotaWisconsinIowaNew HampshireWest VirginiaMaineSouth DakotaNorth DakotaVermont
050100150200250300
Cluster Dendrogram
hclust (*, "complete") dist(USArrests)
Height Florida
North Carolina Delaware Alabama Louisiana
AlaskaMississippiSouth CarolinaMarylandArizonaNew MexicoCaliforniaIllinoisNew YorkMichiganNevadaMissouriArkansasTennesseeGeorgiaColoradoTexasRhode IslandWyomingOregonOklahomaVirginia Washington
MassachusettsNew Jersey
Ohio Utah
ConnecticutPennsylvaniaNebraska
Kentucky Montana
Idaho
Indiana Kansas
HawaiiMinnesotaWisconsinIowaNew HampshireWest VirginiaMaineSouth DakotaNorth DakotaVermont
050100150200250300
Cluster Dendrogram
hclust (*, "complete") dist(USArrests)
Height
樹状図中の副木のマウスによる操作(米国犯罪検挙率データ).元の樹状図(左).クラスタ を選択した様子(右)