Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu...

26
Agrupamento Espectral e Hier´ arquico Fabr´ ıcio Olivetti de Fran¸ ca Universidade Federal do ABC

Transcript of Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu...

Page 1: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral e Hierarquico

Fabrıcio Olivetti de Franca

Universidade Federal do ABC

Page 2: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Topicos

1. Agrupamento Espectral

2. Agrupamento Hierarquico

1

Page 3: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Page 4: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Nem sempre nossos dados apresentam um agrupamento obvio mensurado

por uma medida de similaridade:

−1.0 −0.5 0.0 0.5 1.0x

−1.0

−0.5

0.0

0.5

1.0

y

2

Page 5: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

O uso do algoritmo k-Means e insuficiente para encontrar os dois grupos

existentes:

−1.0 −0.5 0.0 0.5 1.0x

−1.0

−0.5

0.0

0.5

1.0y

3

Page 6: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Mesmo utilizando um numero maior de clusters o algoritmo apresenta

dificuldades para entender a estrutura da base de dados.

−1.0 −0.5 0.0 0.5 1.0x

−1.0

−0.5

0.0

0.5

1.0

y

4

Page 7: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Uma forma alternativa de representar esses objetos e imaginar que eles

formam um grafo em que os k pontos mais proximos de um certo ponto,

forma uma aresta com este.

−1.0 −0.5 0.0 0.5 1.0

−1.0

−0.5

0.0

0.5

1.0

0

1

2

3

4

5

6

7

8

9

10

11

12 13

14

15

16

17

18 19

20

21

22

23

24

25

26

2728

29

30

31

32

33

3435

36

3738

3940

41

42

4344

45

46

47

48

4950

51

52

53

54

55

56

57

58

59

60

61

62

63

6465

66

67

68

69

70

71

72

73

74

75

76

77

7879

80

81 82

8384

85

86

8788

89

90

91

92

93

94

9596

97

98

99

100

101

102

103

104

105

106

107

108

109110

111

112

113

114

115

116

117

118

119

120

121122123

124

125

126

127

128

129

130

131

132

133

134135

136137138

139

140

141

142

143

144

145 146

147

148

149

150

151

152

153

154

155

156

157

158159

160

161

162

163

164

165

166167

168

169

170

171172

173

174175

176

177

178179

180

181

182

183

184185

186

187188

189

190

191 192

193

194195

196

197

198

199

200

201202203

204205

206

207

208209

210 211

212

213

214

215

216

217

218

219

220221

222

223

224

225

226

227

228

229

230

231

232233234

235

236

237

238

239240

241

242

243

244

245246

247248249

250251

252

253254

255

256

257

258

259

260

261

262

263

264

265266

267

268

269

270

271272273274

275

276 277

278

279280

281

282

283284

285

286

287

288

289290

291

292

293

294

295

296

297

298

299300

301

302

303

304

305

306

307

308

309

310

311

312

313

314315

316

317318

319

320

321

322

323

324

325

326

327

328 329

330331

332

333

334

335

336

337

338

339

340341

342

343

344

345

346

347

348

349

350

351352

353354

355

356

357

358

359

360

361

362

363

364

365

366

367 368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388389

390391

392393

394

395

396397

398

399

Uma forma alternativa e definir que dois pontos formam uma aresta se

estao a uma distancia menor que um ε.

5

Page 8: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Dessa forma passamos a representar nossos dados atraves da matriz

Laplaciana, que e dada por:

L = G − A,

com A sendo a matriz de adjacencia e G uma matriz diagonal com os

elementos da diagonal igual ao grau do no correspondente.

6

Page 9: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Essa matriz Laplaciana tem algumas propriedades interessantes:

• O numero de autovalores iguais a 0 e igual ao numero de

componentes conexos.

• Os autovetores correspondentes aos autovalores iguais a 0

representam um grupo, sendo os nos pertencentes a esse grupo com

valores positivos e todo o restante igual a 0.

• Os autovetores consequentes representam diversas formacoes de

possıveis agrupamentos.

7

Page 10: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Com isso podemos calcular a Laplaciana de uma base de dados e utilizar

os k primeiros autovetores dessa matriz (com autovalores diferentes de 0)

e gerar (similar ao PCA) uma matriz n × k contendo a informacao dos

grupos.

8

Page 11: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Nesse ponto, temos a projecao dos nossos dados em um espaco de

dimensao reduzida.

Podemos agora aplicar a tecnica k-Means utilizando essa representacao

para obtermos os grupos.

9

Page 12: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral

Com isso e possıvel encontrar os grupos corretos de nosso exemplo:

−1.0 −0.5 0.0 0.5 1.0x

−1.0

−0.5

0.0

0.5

1.0y

10

Page 13: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral - Algoritmo

import numpy as np

A = adjacencia(X, k)

G = grau(A)

L = G - A

w, v = np.linalg.eig(L)

idx = np.argsort(w)

X_espec = L[:, idx]

clusters = kMeans(X_espec, n_clusters)

11

Page 14: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Espectral - Scikit-Learn

from sklearn.cluster import SpectralClustering

model = SpectralClustering(n_clusters=n,

affinity=’euclidean’,

n_neighbors=k

)

model.fit(X)

clusters = model.labels_

12

Page 15: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Hierarquico

Page 16: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Aglomerativo

Dada uma base de dados X a ser agrupada, vamos definir o seguinte

procedimento:

1. Defina cada ponto como um cluster.

2. Encontre os dois clusters com a menor distancia entre si.

3. Crie um novo cluster com a uniao desses dois.

4. Repita o passo 2 ate encontrar um numero n de clusters.

13

Page 17: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Aglomerativo

Para determinar a distancia entre dois clusters podemos calcular:

• A media das distancias entre os pares de pontos (i , j), sendo i

pertencente ao primeiro cluster, e j ao segundo (Average).

• A maior das distancias entre os pares de pontos (i , j), sendo i

pertencente ao primeiro cluster, e j ao segundo (Complete).

• A menor variancia das distancias entre os pares de pontos (i , j),

sendo i pertencente ao primeiro cluster, e j ao segundo (Ward).

14

Page 18: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Exemplo

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

19 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

18 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

17 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

16 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

15 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

14 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

13 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

12 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

11 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

10 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

9 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

8 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

7 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

6 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

5 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

4 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

3 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

2 clusters

−1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00x

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

y

1 clusters

15

Page 19: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Hierarquico

Esse tipo de agrupamento e conhecido como agrupamento Hierarquico,

pois ele induz uma hierarquia dos clusters.

1 10 13 7 15 6 12 19 0 16 2 4 5 14 3 11 8 18 9 17sample index or (cluster size)

0.0

2.5

5.0

7.5

10.0

12.5

15.0

17.5distance

12

10

15

16

11

1

3

6

4

2

5

7

8

9

13

14

17

18

Hierarchical Clustering Dendrogram (truncated)

Esse tipo de representacao e interessante pois permite uma vizualicao da

qualidade dos clusters encontrados.

16

Page 20: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Hierarquico

Isso torna possıvel tomarmos uma decisao mais acertada do verdadeiro

numero de clusters que sao de interesse no projeto:

1 10 13 7 15 6 12 19 0 16 2 4 5 14 3 11 8 18 9 17sample index or (cluster size)

0.0

2.5

5.0

7.5

10.0

12.5

15.0

17.5distance

12

10

15

16

11

1

3

6

4

2

5

7

8

9

13

14

17

18

12

10

15

16

11

1

3

6

4

2

5

7

8

9

13

14

17

18

Hierarchical Clustering Dendrogram (truncated)

17

Page 21: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Hierarquico

Criterios de parada:

• Numero de clusters.

• Distancia maxima.

20

Page 22: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Hierarquico - Algoritmo

n = X.shape[0]

clusters = [[i] for i in range(n)]

n_clusters = len(clusters)

while n_clusters < k:

clusters = merge(clusters)

n_clusters = len(clusters)

21

Page 23: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Hierarquico - Algoritmo

def merge(clusters):

minlink = linkage(clusters[0], clusters[1])

merge_tuple = (0,1)

n_clusters = len(clusters)

for i in range(n_clusters-1):

for j in range(i+1, n_clusters):

if linkage(clusters[i], clusters[j]) < minlink:

merge_tuple = (i,j)

clusters[i] += clusters[j]

del clusters[j]

return clusters

22

Page 24: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Agrupamento Hierarquico - Scikit-Learn

from sklearn.cluster import AgglomerativeClustering

model = AgglomerativeClustering(n_clusters=n,

affinity=’euclidean’,

linkage=’ward’

)

model.fit(X)

clusters = model.labels_

23

Page 25: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Proxima Aula

Na proxima aula aprenderemos sobre reducao de dimensionalidade e

extracao de atributos, mais especificamente os algoritmos:

• PCA

• DCDistance

• CARFRE

24

Page 26: Agrupamento Espectral e Hierárquico · Agrupamento Espectral O uso do algoritmo k-Means e insu ciente para encontrar os dois grupos existentes: 3

Atividade 07

Complete os Laboratorios:

Clustering Methods Exercises.ipynb

25