You are on page 1of 64

Tytu oryginau: Data Smart: Using Data Science to Transform Information into Insight

Tumaczenie: Konrad Matuk


ISBN: 978-83-283-3357-4

Copyright 2014 by John Wiley & Sons, Inc., Indianapolis, Indiana

All Rights Reserved.


This translation published under license with the original publisher John Wiley & Sons, Inc.

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by
any means, electronic, mechanical, photocopying, recording, scanning or otherwise, without either the prior
written permission of the Publisher.

Translation copyright 2017 by Helion S.A.

Wiley and the Wiley logo are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its
affiliates, in the United States and other countries, and may not be used without written permission. All
other trademarks are the property of their respective owners. John Wiley & Sons, Inc. is not associated with
any product or vendor mentioned in this book.

Wszelkie prawa zastrzeone. Nieautoryzowane rozpowszechnianie caoci lub fragmentu niniejszej


publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metod kserograficzn,
fotograficzn, a take kopiowanie ksiki na noniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki wystpujce w tekcie s zastrzeonymi znakami firmowymi bd towarowymi ich


wacicieli.

Autor oraz Wydawnictwo HELION dooyli wszelkich stara, by zawarte w tej ksice informacje byy
kompletne i rzetelne. Nie bior jednak adnej odpowiedzialnoci ani za ich wykorzystanie, ani za zwizane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie
ponosz rwnie adnej odpowiedzialnoci za ewentualne szkody wynike z wykorzystania informacji
zawartych w ksice.

Wydawnictwo HELION
ul. Kociuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (ksigarnia internetowa, katalog ksiek)

Pliki z przykadami omawianymi w ksice mona znale pod adresem:


ftp://ftp.helion.pl/przyklady/mianda.zip

Drogi Czytelniku!
Jeeli chcesz oceni t ksik, zajrzyj pod adres
http://helion.pl/user/opinie/mianda
Moesz tam wpisa swoje uwagi, spostrzeenia, recenzj.

Printed in Poland.

Kup ksik Ksigarnia internetowa


Pole ksik Lubi to! Nasza spoeczno
Oce ksik
Spis treci

O autorze 11
O korektorach merytorycznych 11
Podzikowania 12

Wstp 13
Co ja tutaj robi? 13
Praktyczna definicja analizy danych 14
Chwila, chwila. A co z big data? 15
Kim jestem? 16
Kim jeste? 16
Na szczcie bdziesz pracowa tylko w arkuszu kalkulacyjnym 17
Ale arkusze kalkulacyjne s takie staromodne! 18
Korzystaj z programu Excel lub pakietu LibreOffice 18
Konwencje typograficzne przyjte w tej ksice 19
Zaczynamy 20

1. Wszystko, co chciae wiedzie o arkuszu kalkulacyjnym,


ale bae si o to zapyta 21
Przykadowe proste dane 22
Szybkie przegldanie arkusza i klawisz Ctrl 23
Szybkie kopiowanie danych i formu 24
Formatowanie komrek 26
Wklejanie wartoci specjalnych 27
Wstawianie wykresw 28

Kup ksik Pole ksik


6 Spis treci

Menu Znajd i menu Zamie 29


Formuy przeznaczone do wyszukiwania i wycigania wartoci 30
Stosowanie formuy WYSZUKAJ.PIONOWO do czenia danych 32
Filtrowanie i sortowanie 33
Stosowanie tabel przestawnych 36
Korzystanie z formu tablicowych 39
Rozwizywanie problemw za pomoc narzdzia Solver 40
OpenSolver chciabym, abymy go nie potrzebowali, ale 46
Podsumowanie 47

2. Analiza skupie. Cz I zastosowanie algorytmu centroidw


do segmentowania bazy klientw 49
Dziewczyny tacz z dziewczynami, a chopcy drapi si po okciach 51
Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 56
Handel winem 56
Pocztkowy zbir danych 57
Okrelanie tego, co chcemy mierzy 57
Zacznij od czterech grup 61
Odlego euklidesowa pomiar odlegoci w linii prostej 61
Odlego dla wszystkich! 64
Okrelanie pooenia rodkw klastrw 66
Analiza uzyskanych wynikw 68
Ustalanie najlepszej oferty dla danego klastra 69
Sylwetka podziau dobry sposb na okrelenie optymalnej liczby klastrw 74
A moe potrzebujesz piciu klastrw? 81
Dzielenie klientw na pi klastrw za pomoc narzdzia Solver 81
Ustalanie najlepszych ofert dla wszystkich piciu klastrw 82
Okrelanie sylwetki podziau na pi klastrw 85
Podzia na grupy za pomoc algorytmu k-medioidw i asymetryczny pomiar odlegoci 87
Podzia na grupy za pomoc metody k-medioidw 87
Stosowanie lepszego sposobu pomiaru odlegoci 87
Implementacja za pomoc Excela 90
Najlepsze oferty przy podziale na pi klastrw za pomoc median 92
Podsumowanie 95

3. Naiwny klasyfikator bayesowski i niezwyka lekko bycia idiot 97


Jeeli nazwiesz swj produkt Mandrill, to uzyskasz zaszumione informacje zwrotne 97
Najszybsze na wiecie wprowadzenie do rachunku prawdopodobiestwa 100
Obliczanie prawdopodobiestwa warunkowego 100
Prawdopodobiestwo czci wsplnej, regua acuchowa i niezaleno 101
A co, jeeli sytuacje s zalene od siebie? 102
Twierdzenie Bayesa 102

Kup ksik Pole ksik


Spis treci 7

Tworzenie modelu sztucznej inteligencji za pomoc twierdzenia Bayesa 103


Zwykle zakada si, e wysokopoziomowe
prawdopodobiestwa klas s sobie rwne 105
Kilka innych drobnostek 106
Czas rozpocz zabaw z Excelem 107
Usuwanie nieistotnych znakw interpunkcyjnych 108
Dzielenie na znakach spacji 109
Zliczanie leksemw i obliczanie prawdopodobiestw 112
Zbudowalimy model. Skorzystajmy z niego! 114
Podsumowanie 120
4. Modelowanie optymalizacyjne wieo wycinity sok
nie zamiesza si sam 123
Dlaczego analityk danych powinien wiedzie, czym jest optymalizacja? 124
Zacznijmy od prostego kompromisu 125
Przedstawienie problemu w formie wielokomrki 126
Rozwizywanie problemu poprzez przesuwanie poziomicy 128
Metoda simpleks krcenie si wok rogw 129
Praca w Excelu 130
Na kocu tego rozdziau kryje si potwr 140
Szklanka wieego soku pomaraczowego
prosto z drzewa z przystankiem na modelowanie 141
Trzeba skorzysta z modelu mieszania 142
Zacznijmy od specyfikacji sokw 142
Stao produktu wyjciowego 144
Wprowadzanie danych do Excela 145
Okrelanie problemu w dodatku Solver 148
Obnianie standardw 150
Usuwanie cuchncego problemu minimalizacja maksymalnych odchyle 154
Warunki i ograniczenie wielkiego M 156
Mnoenie zmiennych skorzystajmy ze 110% mocy Excela 160
Modelowanie ryzyka 168
Dane pochodzce z rozkadu normalnego 168
Podsumowanie 176
5. Analiza skupie. Cz II grafy i analiza sieci 179
Czym jest graf sieci? 180
Wizualizacja prostego grafu 181
Krtkie wprowadzenie do Gephi 184
Instalacja Gephi i przygotowanie pliku 184
Budowa grafu 185
Stopie rozgazienia 188
Elegancki wydruk 190
Edycja danych grafu 192

Kup ksik Pole ksik


8 Spis treci

Tworzenie grafu na podstawie danych sprzeday wina 193


Tworzenie macierzy podobiestwa kosinusowego 195
Generowanie grafu r-ssiedztwa 197
Jaka jest warto krawdzi? Nagradzanie i karanie krawdzi modularno grafu 202
Czym jest punkt, a czym kara? 202
Tworzenie arkusza punktacji 206
Czas dokona podziau na grupy 208
Podzia 1. 208
Podzia 2. kontratak 214
Podzia 3. zemsta 215
Grupy kodowanie i analiza 216
Tam i z powrotem czas na Gephi 220
Podsumowanie 225

6. Regresja jako przodek nadzorowanego


uczenia maszynowego i sztucznej inteligencji 227
Co? Jeste w ciy? 227
Nie oszukuj siebie 228
Przewidywanie ciy klientw na podstawie regresji liniowej 229
Zbir cech 230
Tworzenie treningowego zbioru danych 231
Tworzenie zmiennych fikcyjnych 233
Pobawmy si regresj liniow 235
Parametry regresji liniowej: wspczynnik determinacji, test F i test t 244
Przewidywanie ciy na nowym zbiorze danych i sprawdzanie jakoci modelu 255
Przewidywanie ciy klientw za pomoc regresji logistycznej 265
Najpierw musisz okreli funkcj wic 265
Tworzenie funkcji logistycznej i ponowna optymalizacja 266
Praca nad prawdziw regresj logistyczn 270
Wybr modelu porwnywanie skutecznoci regresji liniowej
i regresji logistycznej 272
Dalsza lektura 274
Podsumowanie 275

7. Modele zespoowe duo nie najlepszej pizzy 277


Korzystanie z danych z rozdziau 6. 278
Agregacja losuj, trenuj, powtrz 280
Pieniek decyzyjny to niezbyt adne okrelenie gupiego modelu 280
To wcale nie wydaje si takie gupie! 281
Wicej mocy! 283
Czas rozpocz proces trenowania 284
Ocena dziaania modelu zespolonego 293

Kup ksik Pole ksik


Spis treci 9

Wzmacnianie jeeli uzyskae niesatysfakcjonujce wyniki,


to wzmocnij swj model i uruchom go jeszcze raz 298
Trenowanie modelu kada cecha ma swoje pi minut 299
Wydajno modelu wzmacnianych regu decyzyjnych 307
Podsumowanie 311

8. Prognozowanie oddychaj spokojnie, i tak nie wygrasz 313


Hossa na rynku sprzeday mieczy 314
Szeregi czasowe 315
Zacznij od prostego wygadzania wykadniczego 317
Przygotowanie arkusza prognozy prostego wygadzania wykadniczego 319
By moe dane zawieraj trend 325
Podwjne wygadzanie wykadnicze (metoda Holta) 327
Metoda Holta w arkuszu kalkulacyjnym 329
To wszystko? Analiza autokorelacji 335
Wielokrotne wygadzanie wykadnicze model Holta-Wintersa 342
Okrelanie pocztkowych wartoci poziomu, trendu i sezonowoci 345
Tworzenie prognozy 349
Czas na optymalizacj 354
Powiedz mi, e to ju koniec. Prooosz! 356
Interway prognozy 356
Tworzenie wykresu warstwowego wachlarza wartoci 360
Podsumowanie 362

9. Wykrywanie obserwacji odstajcych to, e jaki element


jest inny od pozostaych, nie oznacza, e jest nieistotny 365
Element odstajcy to te czowiek 366
Fascynujca sprawa Hadlumw 367
Metoda Tukeya 368
Implementacja metody Tukeya w arkuszu kalkulacyjnym 368
Ograniczenia tej prostej techniki 371
Nie tragiczny, ale saby we wszystkim 372
Przygotowywanie danych do utworzenia wykresu 373
Tworzenie grafu 376
Okrelanie k najbliszych ssiadw 378
Pierwsza metoda wykrywania elementw odstajcych grafu
skorzystaj ze stopnia wchodzcego 379
Druga metoda wykrywania elementw odstajcych grafu
zgbianie niuansw za pomoc k-odlegoci 383
Trzecia metoda wykrywania elementw odstajcych grafu
lokalny miernik stopnia oddalenia obserwacji 385
Podsumowanie 391

Kup ksik Pole ksik


10 Spis treci

10. Przejcie z arkusza kalkulacyjnego do jzyka R 393


Przygotowanie rodowiska i pocztek pracy w jzyku R 394
Wprowadzanie prostych danych 395
Wczytywanie danych do R 402
Prawdziwa analiza danych 404
Sferyczny algorytm k-rednich wywoany za pomoc zaledwie kilku linii kodu 404
Budowanie modeli sztucznej inteligencji na podstawie danych zakupw
(wykrywanie ciy) 410
Prognozowanie w R 417
Wykrywanie elementw odstajcych 421
Podsumowanie 426

Wnioski 427
Gdzie ja jestem? Co si stao? 427
Zanim odoysz t ksik 428
Poznaj problem 428
Potrzebujemy wicej tumaczy 429
Uwaaj na trjgowe monstrum: narzdzia, wydajno i perfekcjonizm 430
Nie jeste najwaniejsz osob w firmie 432
Bd kreatywny 433

Skorowidz 435

Kup ksik Pole ksik


Analiza skupie
Cz I

2 zastosowanie
algorytmu centroidw
do segmentowania
bazy klientw

Pracuj w brany zajmujcej si marketingiem za pomoc poczty elektronicznej dla serwisu


MailChimp.com. Pomagamy naszym klientom w wysyaniu newsletterw do ich odbiorcw.
Za kadym razem, gdy ktry z klientw uywa okrelenia uderzenie e-mailem,
co we mnie umiera.
Dlaczego? Poniewa adresy e-mail nie s ju czarnymi skrzynkami, do ktrych mona
kierowa zbiorcze uderzenie. W e-mail marketingu (tak jak w przypadku innych form
generowania zainteresowania za pomoc internetu, np. przy uyciu postw publikowanych
w serwisach takich jak Twitter, Facebook czy Pinterest) firmy otrzymuj informacj zwrotn
na temat tego, jak odbiorcy angauj si w ich kampani na poziomie indywidualnym
poprzez ledzenie klikni, zakupw elektronicznych czy udostpnie w serwisach
spoecznociowych. Te dane nie s szumem. One charakteryzuj Twoich odbiorcw,
ale na pocztku mog wydawa si zawie i niezrozumiae.
Jak zebra dane o transakcji od klientw (odbiorcw, uytkownikw, abonentw,
mieszkacw itd.) i zastosowa je w celu ich zrozumienia? Majc do czynienia z du
grup ludzi, trudno jest zrozumie kadego klienta, zwaszcza gdy kady z nich komunikuje
si z Tob w inny sposb. Nawet jeeli by rozumia kadego klienta na poziomie
osobistym, to i tak trudno byoby to zastosowa w praktyce.
Musisz skorzysta z bazy klientw i znale zoty rodek pomidzy uderzaniem
do kadego tak, jakby by bezosobow jednostk, a rozumieniem wszystkiego o kadym
i tworzeniem zindywidualizowanych ofert. Pomoc w znalezieniu tego zotego rodka

Kup ksik Pole ksik


50 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

moe stanowi analiza skupie, umoliwiajca podzia klientw na grupy (segmentacj


rynku), do ktrych mona kierowa wybrane oferty.
Analiza skupie polega na zebraniu pewnej liczby obiektw i podzieleniu ich na grupy
skadajce si z obiektw podobnych do siebie. Przygldajc si rnym grupom analizujc
ich podobiestwa i rnice pomidzy nimi moesz wycign sporo praktycznych
informacji z danych, ktre na pocztku wyglday do bezpostaciowo. Informacje
te mog pomc Ci w podjciu lepszych i bardziej szczegowych decyzji.
Tak analiz skupie okrelamy mianem eksploracyjnej analizy danych ma ona
na celu ustalenie trudnych do zauwaenia zalenoci w duym zbiorze danych. Ustalanie
zalenoci pomidzy klientami przydaje si w rozmaitych przedsiwziciach: umoliwia
polecanie filmw na podstawie zachowa innych osb z grupy o podobnym gucie, pozwala
na identyfikacj miejsc, w ktrych najczciej dochodzi do przestpstw, a take sprawia,
e atwiej jest zaproponowa rodek finansowy gronu osb, ktre mog w niego potencjalnie
zainwestowa.
Jednym z moich ulubionych zastosowa analizy skupie jest tworzenie algorytmw
umoliwiajcych komputerowi rozpoznawanie podobnych do siebie obrazw. Algorytmy
takie mog si okaza przydatne w serwisach przeznaczonych do udostpniania zdj,
takich jak np. Flickr. Ich uytkownicy mog umieszcza tak duo zdj, e standardowe
nawigowanie pomidzy nimi staje si trudne. Techniki analizy skupie pozwalaj na
grupowanie obrazw podobnych do siebie. Dziki nim uytkownicy mog atwiej znale
interesujcy ich obraz.

NADZOROWANE I NIENADZOROWANE UCZENIE MASZYNOWE


Rozpoczynajc eksploracyjn analiz danych, nie wiesz jeszcze, czego szukasz. Jeste od-
krywc, jak Krzysztof Kolumb. Moesz powiedzie, e jakich dwch klientw wyglda
podobnie, ale nie wiesz, jak najlepiej podzieli baz klientw. W zwizku z tym proces,
w ktrym prosisz komputer o posegmentowanie bazy klientw, okrelamy mianem niena-
dzorowanego uczenia maszynowego nie nadzorujesz komputera, informujc go o tym,
jak ma wykona swoj prac.
Przeciwiestwem tego procesu jest nadzorowane uczenie maszynowe, z ktrego korzy-
stamy, gdy chcemy, aby sztuczna inteligencja wygenerowaa pierwsz stron naszego rapor-
tu. Jeeli wiem, e chc podzieli klientw na dwie grupy: tych, ktrzy prawdopodobnie
co kupi, i tych, ktrzy prawdopodobnie nie dokonaj zakupu, i dostarczam komputerowi
przykady takich klientw z przeszoci, a nastpnie prosz go o podzielenie nowych klien-
tw na takie dwie grupy, to praca komputera jest wtedy nadzorowana.
Nadzr polega na podzieleniu si z komputerem dotychczasow wiedz na temat
klientw i przedstawieniu mu sposobu pomiaru rnic i podobiestw zachodzcych po-
midzy klientami.

Kup ksik Pole ksik


Dziewczyny tacz z dziewczynami, a chopcy drapi si po okciach 51

W tym rozdziale chciabym si przyjrze najpopularniejszej technice analizy skupie


algorytmowi centroidw (k-rednich) opracowanemu w latach 50. XX w. Sta si on
najpopularniejszym algorytmem analizy skupie sucym do odkrywania wiedzy z baz
danych (ang. knowledge discovery in databases KDD) stosowanym przez podmioty
prywatne, a take agendy rzdowe.
Z punktu widzenia matematyki algorytm centroidw nie jest najbardziej rygorystyczn
technik. Opiera si on na praktycznoci i logice, ktre mona dostrzec w kuchni soul food.
Nie jest ona tak wyrafinowana jak kuchnia francuska, ale niektre jej dania s przepyszne.
Analiza skupie za pomoc algorytmu centroidw to mieszanina matematyki i opisowoci.
Jej ogromn zalet jest intuicyjna prostota.
Aby zrozumie dziaanie tego algorytmu, przeanalizujmy prosty przykad.

Dziewczyny tacz z dziewczynami,


a chopcy drapi si po okciach
Celem analizy skupie za pomoc algorytmu centroidw jest wyznaczenie pewnych punktw
w przestrzeni i podzielenie ich na k grup (k jest dowolnie wybran liczb). Kada z tych k
grup jest definiowana przez punkt znajdujcy si w jej rodku. Punkt ten mona porwna
do flagi, na ktrej kto wyhaftowa napis: Hej, to rodek mojej grupy, przycz si
do mnie, jeeli jest ci bliej do tej flagi ni do innych flag. Taki rodek grupy (formalnie
okrelany mianem centroidu klasy) jest redni. W zwizku z tym algorytm centroidw
czsto okrelany jest mianem algorytmu k-rednich.
Przyjrzyjmy si przykadowej potacwce szkolnej. Bardzo przepraszam, jeeli
przypomniaem Ci o horrorze licealnych potacwek.
Na rysunku 2.1 przedstawiono uczniw McAcne Middle School uczestniczcych
w szkolnej potacwce typu podmorska gala. Aby mg sobie lepiej wyobrazi t
sytuacj, umieciem te zdjcie parkietu.
Oto przykadowa lista piosenek, przy ktrych bd si bawi ci przyszli liderzy
wolnego wiata (moesz je znale w serwisie Spotify):
Styx Come Sail Away.
Everything But the Girl Missing.
Ace of Base All that She Wants.
Soft Cell Tainted Love.
Montell Jordan This is How We Do It.
Eiffel 65 Blue.

Kup ksik Pole ksik


52 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.1. Uczniowie na parkiecie dyskoteki szkolnej

Algorytm centroidw wymaga okrelenia liczby skupie, na ktre chcemy posegregowa


uczestnikw potacwki. Na pocztek sprbujmy podzieli ich na trzy skupienia (w dalszej
czci tego rozdziau dowiesz si, jak dobra liczb skupie parametr k). Algorytm
umieci na pododze trzy flagi zacznie prac od jakiego pocztkowego, wykonywalnego
rozwizania. Na rysunku 2.2 przedstawiono takie rozwizanie w postaci trzech czarnych kek.

Rysunek 2.2. Pocztkowe uoenie rodkowych punktw skupie

Kup ksik Pole ksik


Dziewczyny tacz z dziewczynami, a chopcy drapi si po okciach 53

Algorytm centroidw przypisuje tancerzy do najbliszego punktu, a wic pomidzy


dowolnie wybranymi skupieniami moliwe jest narysowanie linii oddzielajcych osoby
przypisane do jednego skupienia od osb przyporzdkowanych do innego skupienia
(rysunek 2.3).

Rysunek 2.3. Linie symbolizujce granice skupie

Na podstawie tych trzech linii demarkacyjnych moesz przypisa tancerzy do


poszczeglnych grup i odpowiednio ich pocieniowa (rysunek 2.4). Diagram, na ktrym
przestrze podzielono na obszary przypisane do rodkw skupie, nazywamy diagramem
Woronoja.

Rysunek 2.4. Podzia na obszary skupie mona przedstawi


za pomoc rnych sposobw cieniowania na diagramie Woronoja

Kup ksik Pole ksik


54 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Ten pocztkowy podzia nie jest najlepszy, prawda? Przestrze zostaa podzielona
w dziwny sposb lewa dolna grupa jest pusta i bardzo duo osb znalazo si na granicy
grup rodkowej i grnej.
Algorytm centroidw dokonujcy analizy skupie bdzie dzieli parkiet na trzy czci,
a uzyska najlepszy podzia.
Czym charakteryzuje si najlepszy podzia? Kady z uczestnikw imprezy znajduje
si w jakiej odlegoci od rodka skupienia. Za najlepszy podzia mona uzna taki,
przy ktrym rednia odlego uczestnika od przypisanego do niego rodka skupienia
jest najmniejsza.
Zgodnie z tym, co napisaem w rozdziale 1., sowo minimalizacja oznacza konieczno
zastosowania modelu optymalizacji w celu uzyskania optymalnego rozmieszczenia
rodkw skupie, a wic w tym rozdziale bdziesz korzysta z narzdzia Solver w celu
przesuwania rodkw skupie. Solver znajduje waciwe pozycje rodkw skupie,
przesuwajc je w sposb uporzdkowany i inteligentny dokonujc tych operacji,
rejestruje liczb dobrych przyporzdkowa i znajduje najlepsze pozycje, czc dane
uzyskane w wyniku tych operacji.
Diagram widoczny na rysunku 2.4 wyglda nieszczeglnie, ale Solver mgby przestawi
rodki skupie tak, aby uzyska diagram pokazany na rysunku 2.5. Na tym rysunku
zmniejszono nieco rednie odlegoci rodkw skupie od przyporzdkowanych do nich
tancerzy.

Rysunek 2.5. rodki skupie zostay odrobin przesunite

Kup ksik Pole ksik


Dziewczyny tacz z dziewczynami, a chopcy drapi si po okciach 55

Na koniec Solver zapewne doszedby do wniosku, e rodki skupie powinny znajdowa


si w rodku trzech grup uczestnikw imprezy (rysunek 2.6).

Rysunek 2.6. Optymalny podzia uczestnikw dyskoteki na grupy

Super! Tak wanie powinien wyglda idealny efekt analizy skupie. Poszczeglne rodki
skupie znajduj si w rodku poszczeglnych grup tancerzy, dziki czemu zminimalizowano
redni odlego tancerza od rodka skupienia, do ktrego jest przypisany. Po uzyskaniu
podziau na grupy czas przej do najciekawszego etapu pracy sprbuj zrozumie,
co oznacza kade skupienie.
Gdyby analizowa kolor wosw taczcych, ich pogldy polityczne czy prdko,
z jak potrafi biega, to uzyskane przed chwil skupienia nie miayby sensu, ale gdyby
zwrci uwag na pe i wiek uczestnikw przyporzdkowanych do poszczeglnych grup,
zauwayby pewne prawidowoci. Maa grupa znajdujca si w dolnej czci parkietu
to osoby starsze prawdopodobnie s to opiekunowie osb bawicych si na dyskotece.
Grupa po lewej stronie to sami modzi mczyni, a grupa po prawej to same mode
kobiety. Wszyscy boj si taczy z osobami o przeciwnej pci.
No dobrze. Algorytm centroidw umoliwi podzia osb znajdujcych si na parkiecie
na grupy, a take zrozumienie przyczyn takiego podziau.
By moe mylisz sobie: To gupie, rozwizanie zaprezentowanego problemu znaem
od pocztku. Masz racj. Tak byo w tym przypadku. To tylko przykadowe zagadnienie,
ktre mona zrozumie, patrzc na rysunek. Wszystko jest przedstawione w przestrzeni
dwuwymiarowej, ktr da si z atwoci ogarn wzrokiem.

Kup ksik Pole ksik


56 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

A teraz wyobra sobie, e prowadzisz sklep majcy w ofercie kilka tysicy produktw.
Niektrzy z Twoich klientw kupili w cigu kilku ostatnich lat jedn lub dwie rzeczy,
a inni zakupili w tym czasie kilkadziesit artykuw. Co zrobi w sytuacji, w ktrej klienci
kupowali rne towary?
Jak rozplanowa je na sklepowym parkiecie? Przestrze, w ktrej musiaby dokona
takiej analizy, nie jest dwu- ani trjwymiarowa. Skada si ona z tysicy wymiarw
utworzonych przez produkty, ktre mogy by kupione lub nie przez kadego z klientw.
Zapewne widzisz ju problem zwizany z tym przykadem nie da si go rozwiza na oko.

Prawdziwy problem: implementacja algorytmu


centroidw w e-mail marketingu
Przejdmy do jakiego bardziej praktycznego zastosowania algorytmu k-rednich. Zajmuj
si e-mail marketingiem, a wic przedstawi Ci przykad zadania, z ktrym zmierzyem
si, pracujc w MailChimp.com. Zaprezentowany przeze mnie przykad mona zastosowa
w przypadku pracy z danymi ze sprzeday detalicznej, danymi dotyczcymi akcji reklamowej,
danymi wycignitymi z mediw spoecznociowych itd. Mona z niego skorzysta,
analizujc w zasadzie dowolny typ danych w celu dotarcia do klienta z odpowiednim
materiaem marketingowym.

Handel winem
Wyobra sobie, e mieszkasz w New Jersey i pracujesz w firmie Joey Bag O Donuts
Wholesale Wine Emporium zajmujcej si importem win i dostarczaniem ich do
wybranych sklepw na terytorium USA. Biznes opiera si na tym, e Joey Bag podruje
po wiecie, szukajc niezwykle opacalnych ofert sprzeday duych iloci wina. Joey
dostarcza je do New Jersey, a Ty masz za zadanie sprzeda je sklepom, uzyskujc jak
najwikszy dochd.
Docierasz do klientw na rne sposoby: korzystasz z serwisw Facebook i Twitter,
a nawet wysyasz oferty bezporednio za porednictwem poczty elektronicznej. Z ostatniego
rozwizania korzysta wikszo firm. W ubiegym roku wysyae do swoich klientw
comiesiczny newsletter. Kada taka wiadomo przedstawia dwie lub trzy oferty zwizane
ze sprzeda wina jedna z nich moe dotyczy np. szampana, a druga francuskiego
wina malbec. Niektre z ofert s naprawd korzystne: umoliwiaj osignicie zysku
ze sprzeday na poziomie 80%. W sumie w tym roku zaproponowae 32 oferty.
Wszystkie spotkay si z zainteresowaniem klientw.
To, e interes idzie dobrze, nie oznacza, e nie moe i lepiej. Warto byoby pozna
nieco bliej swoich klientw. Oczywicie analizujc dane dotyczce okrelonej transakcji,
moesz si dowiedzie, e osoba o nazwisku Adams kupia w lipcu pewn ilo wina
espumante ze znik 50%, ale nie wiesz, czy zakup zosta dokonany, poniewa kupujcemu

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 57

spodobao si to, e mg kupi tylko jedno pudeko z szecioma butelkami, czy moe
uzna, e cena jest atrakcyjna, czy te doszed do wniosku, e cena tego produktu ma
tendencj wzrostow.
Warto byoby podzieli klientw na grupy skupiajce podmioty dokonujce podobnych
transakcji. Mgby wtedy wysya do kadej grupy newsletter zoptymalizowany pod
ktem danego segmentu rynku. Taki newsletter mgby prezentowa w pierwszej
kolejnoci te oferty, ktre potencjalnie bardziej interesuj dan grup odbiorcw,
co mogoby zwikszy sprzeda.
Jak podzieli list klientw na segmenty? Od czego zacz?
Podziau listy mona dokona za pomoc komputera. Analiza skupie umoliwia
uzyskanie optymalnego podziau klientw na grupy, a wtedy bdziesz mg odkry
przyczyn takiego podziau i wybra najlepsze grupy docelowe dla przygotowanych ofert.

Pocztkowy zbir danych

UWAGA
W tym rozdziale bd korzysta ze skoroszytu programu Excel o nazwie Wina.xlsx. Moesz
go pobra ze strony: ftp://ftp.helion.pl/przyklady/mianda.zip. Plik zawiera dane, ktre
bd przetwarza w tym rozdziale (moesz na nich pracowa podczas lektury), a take ar-
kusze z przetworzonymi danymi prezentujce wyniki opisanych przeze mnie operacji (mo-
esz je przeglda bez koniecznoci samodzielnego wprowadzania formu).

Zacznijmy od przyjrzenia si dwm interesujcym zbiorom danych:


Metadane kadej oferty zapisane w formie arkusza kalkulacyjnego. Zawieraj one
informacje okrelajce rodzaj wina, minimaln liczb butelek, jak mona kupi,
warto udzielonego rabatu, kraj pochodzenia oraz to, czy cena danego wina
przekroczya swoj warto szczytow. Dane te zapisano w zakadce DaneOfert
(rysunek 2.7).
Jako pracownik wiesz, ktrzy klienci skorzystali z danej oferty, a wic moesz wpisa
te dane do kolejnego arkusza. W zakadce Transakcje umieszczono nazwiska
klientw wraz z informacj o tym, z ktrej oferty skorzystali (rysunek 2.8).

Okrelanie tego, co chcemy mierzy


Teraz musimy zmierzy si z pewnym problemem. W kwestii dyskoteki szkolnej pomiar
odlegoci pomidzy osobami i grupami by prosty wystarczyo rozwin metrwk.
Co moemy zrobi w przypadku sprzeday win?
Wiesz, e w zeszym roku zoono 32 oferty, w zakadce Transakcje znajduj si dane
324 operacji zakupu podzielonych na klientw. W celu dokonania pomiaru odlegoci
pomidzy klientami i wyznaczenia rodkw grup musisz umieci klientw w przestrzeni
32 transakcji. Innymi sowy: musisz okreli transakcje, ktrych nie dokonali, i stworzy

Kup ksik Pole ksik


58 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.7. Szczegy ostatnich 32 ofert

Rysunek 2.8. Lista ofert, z ktrych skorzystali klienci

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 59

tabel zawierajc transakcje przyporzdkowane do danego klienta, w ktrej do kadego


klienta zostan przypisane 32 kolumny wypenione wartociami 1 (dokonano transakcji)
lub 0 (nie dokonano transakcji).
Krtko mwic: musisz przenie dane z zakadki Transakcje do tabeli klientw,
w ktrej kadej transakcji zostanie przydzielony oddzielny rzd komrek, a kademu
klientowi zostanie przydzielona oddzielna komrka. Operacj tak najlepiej wykona
za pomoc tabeli przestawnej.

UWAGA
Podstawowe informacje dotyczce tabel przestawnych znajdziesz w rozdziale 1.

Oto czynnoci, ktre powiniene wykona. Zaznacz kolumny A i B znajdujce si


w zakadce Transakcje, a nastpnie wstaw tabel przestawn. W oknie Lista pl tabeli
przestawnej jako etykiety wierszy wybierz kolumn z ofertami, a jako etykiety kolumn
wybierz kolumn z danymi klientw. Nastpnie przypisz wartoci do transakcji (w polu
Wartoci wybierz opcj Liczba ofert) komrki wypenione wartoci 1 oznaczaj
skorzystanie przez danego klienta z wybranej oferty, a 0 lub (jak w tym przypadku)
pusta komrka oznacza nieskorzystanie z oferty. Na rysunku 2.9 przedstawiono tabel
przestawn utworzon przeze mnie.

Rysunek 2.9. Tabela przypisujca klientw do transakcji

Gdy masz ju dane zakupw przedstawione w formie macierzy, skopiuj zawarto


zakadki DaneOfert do nowej zakadki (nazwij j Macierz). Do nowego arkusza skopiuj
wartoci znajdujce si w tabeli przestawnej (nie musisz kopiowa numeru transakcji,
poniewa znajduje si on w danych ofert). Dane umie w kolejnych kolumnach za danymi
ofert (zacznij od kolumny H). W ten sposb utworzysz tabel zawierajc informacje
o ofertach oraz dane transakcji (rysunek 2.10).

Kup ksik Pole ksik


60 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.10. Tabela, ktra powstaa w wyniku poczenia danych ofert oraz transakcji

STANDARYZACJA DANYCH
W tym rozdziale kady wymiar danych jest typu binarnego, ale nie jest to regua dotyczca
kadego problemu rozwizywanego za pomoc analizy skupie. Wyobra sobie sytuacj,
w ktrej ludzie s dzieleni na grupy na podstawie wzrostu, wagi i zarobkw. Wzrost moe
waha si od 150 do 200 centymetrw, a waga od 45 do 140 kilogramw.
W takim przypadku pomiar odlegoci pomidzy klientami staje si o wiele bardziej
skomplikowany od pomiaru odlegoci pomidzy uczestnikami dyskoteki. W zwizku z tym
dane s bardzo czsto standaryzowane obliczana jest rednia danych znajdujcych si
w kadej kolumnie, a take wykonywana jest operacja dzielenia przez warto charaktery-
zujc rozkad danych, czyli odchylenie standardowe (parametr ten opisz w rozdziale 4.).
Taki zabieg umoliwia przeskalowanie danych znajdujcych si w kadej kolumnie tak, aby
wartoci oscyloway w granicach zera.
Dane, ktre przetwarzamy w rozdziale 2., nie wymagaj standaryzacji. Praktyczne za-
stosowanie standaryzacji do wykrywania elementw odstajcych przedstawi w rozdziale 9.

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 61

Zacznij od czterech grup


Dysponujesz danymi skonsolidowanymi w formacie umoliwiajcym ich dalsze przetwarzanie.
Aby rozpocz proces klastryzacji, musisz okreli parametr k (liczb klastrw algorytmu
centroidw). Czsto, korzystajc z tego algorytmu, testuje si jego dziaanie dla rnych
wartoci tego parametru (w dalszej czci ksiki dowiesz si, jak je dobra), ale na pocztek
przyjmijmy tylko jedn jego warto.
Najpierw musisz okreli liczb grup, na ktre chcesz podzieli swoich klientw,
a to zaley od strategii marketingowej, jak chcesz przyj. Moesz stworzy 50 grup
(klastrw), do ktrych bdziesz wysya 50 spersonalizowanych ofert (przeprowadza
50 kampanii), ale takie rozwizanie sprawi, e to wiczenie stanie si bezsensowne. Lepiej
bdzie podzieli klientw na wzgldnie ma liczb grup. Zacznij od podziau na cztery
klastry by moe uzyskasz list podzielon na grupy skadajce si z 25 klientw, ktrych
preferencje da si atwo zrozumie (w rzeczywistoci bdzie to mao prawdopodobne).
No dobrze, jeeli chcesz podzieli klientw na cztery grupy, to jakie grupy najlepiej
byoby uzyska?
Zamiast zamieca zakadk Macierz, skopiuj znajdujce si w niej dane do nowej
zakadki (nazwij j 4MC). W kolumnach od H do K wstaw cztery puste kolumny. W celu
wstawienia nowej kolumny kliknij prawym przyciskiem myszy kolumn H, a nastpnie
wybierz opcj Wstaw. Spowoduje to wstawienie pustej kolumny po lewej. Po wstawieniu
kolumn nadaj im etykiety od Klaster 1. do Klaster 4. Moesz je sformatowa za pomoc opcji
Formatowanie warunkowe pozwoli Ci to obserwowa zmiany wartoci umieszczonych
w komrkach tych kolumn podczas przesuwania rodkowych punktw klastrw.
Zakadka 4MC powinna teraz wyglda tak, jak pokazano na rysunku 2.11.
Na razie rodki wszystkich klastrw maj warto 0, ale mog przyj dowoln warto.
Twoim celem (podobnie jak w przykadzie dyskoteki szkolnej) bdzie przesunicie ich
w pooenia, przy ktrych rednia odlego klientw przypisanych do danego klastra
od jego rodka bdzie jak najmniejsza.
Oczywicie rodki przyjm dla kadej transakcji wartoci znajdujce si w zakresie
od 0 do 1, poniewa wszystkie wektory klientw s binarne.
Co tak naprawd oznacza pomiar odlegoci pomidzy rodkiem klastra a klientem?

Odlego euklidesowa pomiar odlegoci w linii prostej


Teraz kady klient jest opisany za pomoc jednej kolumny. Jak zmierzy odlego pomidzy
nimi? Trzeba okreli najkrtsz drog, jak trzeba pokona, aby doj z jednego punktu
do drugiego (tzw. odlego euklidesow), a nastpnie j zmierzy.
Aby zrozumie sposb obliczania tej odlegoci, wrmy na chwil do przykadu
potacwki.

Kup ksik Pole ksik


62 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.11. Zakadka 4MC z pustymi kolumnami definiujcymi rodki klastrw

Na rysunku 2.12 przedstawiem parkiet dyskoteki opatrzony osiami ukadu wsprzdnych.


Jak widzisz, osoba taczca znajduje si w punkcie o wsprzdnych (8,2), a rodek klastra
(grupy) ley w punkcie o wsprzdnych (4,4). W celu obliczenia odlegoci euklidesowej
pomidzy tymi punktami naley przypomnie sobie twierdzenie Pitagorasa, z ktrego
czsto korzystae w gimnazjum i szkole redniej.

Rysunek 2.12. Osoba taczca znajduje si w punkcie o wsprzdnych (8,2),


a rodek klastra jest pooony w punkcie o wsprzdnych (4,4)

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 63

Punkty te s od siebie oddalone o 8 4 = 4 metry w paszczynie pionowej i 4 2 = 2


metry w paszczynie poziomej. Zgodnie z twierdzeniem Pitagorasa, w celu obliczenia
odlegoci w linii prostej wyznaczone wczeniej odlegoci naley podnie do kwadratu
i zsumowa: 42 + 22 = 16 + 4 = 20 metrw, a nastpnie obliczy pierwiastek kwadratowy
pierwiastek z 20 to ok. 4,47 (rysunek 2.13).

Rysunek 2.13. Odlego euklidesowa rwna jest pierwiastkowi kwadratowemu z sumy


podniesionych do kwadratu odlegoci mierzonych w poszczeglnych kierunkach

W przypadku osb zamawiajcych Twj newsletter masz do czynienia z wicej ni


dwoma wymiarami, ale zasada pomiaru odlegoci w obu przypadkach jest taka sama:
odlego pomidzy klientem a rodkiem klastra jest okrelana w wyniku zmierzenia
odlegoci pomidzy nimi w kadym wymiarze, podniesienia tych odlegoci do kwadratu,
zsumowania, a nastpnie wycignicia z nich pierwiastka kwadratowego.
Zamy, e chcesz obliczy odlego euklidesow pomidzy rodkiem klastra 1.
(kolumna H) a klientem o nazwisku Adams (kolumna L).
W komrce L34 (pod zakupami wspomnianego klienta) moesz obliczy rnic wektora
wybranego kupujcego i rodka klastra we wszystkich wymiarach, podnie j do kwadratu,
zsumowa, a nastpnie wycign pierwiastek z tej sumy za pomoc poniszej formuy
tablicowej (zauwa, e zastosowano w niej odwoania bezwzgldne, a wic moesz j
przenosi do innych pl, nie zmieniajc zdefiniowanych odwoa):
{=PIERWIASTEK(SUMA((L$2:L$33-$H$2:$H$33)^2))}

Kup ksik Pole ksik


64 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Musisz skorzysta z formuy tablicowej (wprowad kod formuy, a nastpnie wcinij


kombinacj klawiszy Ctrl+Shift+Enter lub Cmd+Return, o czym pisaem w rozdziale 1.),
poniewa cz (L$2:L$33-$H$2:$H$33)^2 tej funkcji musi odczytywa pojedyncze wartoci
z kolejnych komrek i podnosi je do kwadratu. Formua zwrci warto 1,732 (rysunek
2.14) osoba o nazwisku Adams dokonaa trzech transakcji, pocztkowe wsprzdne
rodkw wszystkich klastrw to same zera, a pierwiastek kwadratowy z 3 to 1,732.

Rysunek 2.14. Odlego pomidzy klientem o nazwisku Adams a rodkiem pierwszego klastra

W arkuszu widocznym na rysunku 2.14 zablokowaem pocztkowe kolumny (kolumny


od A do G s stale wywietlane pomimo przewijania przez kolejne kolumny). Ponadto
w komrce G34 umieciem etykiet Odlego od klastra 1. Zabiegi te uatwiaj ledzenie
danych podczas przegldania kolumn znajdujcych si po prawej stronie arkusza.

Odlego dla wszystkich!


Ju wiesz, jak obliczy odlego pomidzy wektorem zakupu a rodkiem klastra.
Czas obliczy odlego pomidzy klientem o nazwisku Adams a pozostaymi rodkami.
W tym celu przecignij zawarto komrki L34 w d a do komrki L37, a nastpnie
rcznie zmie w kolejnych wierszach odwoania z kolumny H na kolumny I, J i K.
W wyniku tych operacji w komrkach L34:L37 znajd si nastpujce formuy:
{=PIERWIASTEK(SUMA((L$2:L$33-$H$2:$H$33)^2))}
{=PIERWIASTEK(SUMA((L$2:L$33-$I$2:$I$33)^2))}
{=PIERWIASTEK(SUMA((L$2:L$33-$J$2:$J$33)^2))}
{=PIERWIASTEK(SUMA((L$2:L$33-$K$2:$K$33)^2))}

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 65

W powyszych formuach zastosowae odwoania bezwzgldne (znak $; wicej


informacji na ten temat znajdziesz w rozdziale 1.) do komrek definiujcych rodki
klastrw, a wic moesz przecign zawarto komrek L34:L37 do wszystkich komrek
a do DG34:DG37, co pozwoli obliczy odlegoci pomidzy kadym klientem a rodkami
wszystkich czterech klastrw. W kolumnie G (w rzdach od 35. do 37.) wprowad etykiety
Odlego od klastra 2. itd. Na rysunku 2.15 przedstawiono arkusz, w ktrym
wprowadzono te etykiety.

Rysunek 2.15. Obliczanie odlegoci kadego klienta od wszystkich klastrw

Znasz odlego pomidzy klientami a czterema klastrami. Kady klient powinien by


przypisany do najbliszego klastra. Operacj t moesz wykona w dwch krokach.
Wr do klienta o nazwisku Adams (kolumna L) i oblicz minimaln odlego pomidzy
nim a rodkiem klastra. W komrce L38 wprowad nastpujc formu:
=MIN(L34:L37)

Teraz trzeba okreli klaster, ktrego rodek odpowiada tej minimalnej wartoci.
Moesz to zrobi za pomoc formuy PODAJ.POZYCJ (opisaem j w rozdziale 1.).
Umieszczajc j w komrce L39, moesz okreli indeks komrki z zakresu od L34 do L37,
ktrej zawarto pokrywa si z wartoci minimalnej odlegoci:
=PODAJ.POZYCJ(L38,L34:L37,0)

W tym przypadku odlego pomidzy klientem a wszystkimi czterema klastrami jest


identyczna, a wic funkcja PODAJ.POZYCJ zwrci indeks pierwszej znalezionej wartoci
(rysunek 2.16).
Przecignij te dwie formuy do komrek znajdujcych si po prawej stronie (a do
kolumny DG). Dodaj etykiety rzdw: Minimalna odlego od klastra i Przypisany klaster.

Kup ksik Pole ksik


66 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.16. Arkusz zawierajcy formuy przypisujce indeks klastra do klientw

Okrelanie pooenia rodkw klastrw


W arkuszu masz ju formuy obliczajce odlegoci i przypisujce najbliszy klaster.
W celu okrelenia najlepszych pooe rodkw klastrw musisz okreli wartoci dla
kolumn od H do K minimalizujce cakowit odlego pomidzy klientami i klastrami,
do ktrych s oni przypisani (39. rzd komrek znajdujcy si pod danymi konsumentw).
Jeeli przeczytae rozdzia 1., to powiniene wiedzie, co naley zrobi, gdy syszysz
sowo zminimalizowa. Musisz przeprowadzi optymalizacj, a to wie si z koniecznoci
uruchomienia narzdzia Solver.
Narzdzie to wymaga komrki celu, a wic w komrce A36 zsumuj wszystkie odlegoci
pomidzy klientami a rodkami:
=SUMA(L38:DG38)

W zaprezentowanym wczeniej przykadzie dyskoteki szkolnej rwnie sumowalimy


odlegoci za pomoc tej funkcji. Jednak odlego euklidesowa (wymagajca podnoszenia
do kwadratu i obliczania pierwiastkw) jest wysoce nieliniowa, dlatego okrelenie pooenia
rodkw klastrw wymaga zastosowania metody ewolucyjnej, a nie prostego algorytmu
LP simpleks.
W rozdziale 1. korzystae z algorytmu LP simpleks. W sytuacjach, w ktrych mona
go stosowa, dziaa on o wiele szybciej od innych metod. Niestety, nie moesz z niego
korzysta podczas podnoszenia do kwadratu i pierwiastkowania wtedy, gdy podjcie
decyzji wymaga rozwizania funkcji nieliniowej. Rwnie zaawansowana wersja tego
algorytmu dostpna w dodatku OpenSolver (opisaem go w rozdziale 1.) nie nadaje si
do rozwizania tego problemu.
W takiej sytuacji bdziemy musieli uy algorytmu ewolucyjnego wbudowanego
w narzdzie Solver, ktry czy wyniki losowego poszukiwania z hodowaniem
dobrych rozwiza (dziaa podobnie do ewolucji biologicznej).

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 67

UWAGA
Zagadnienia zwizane z optymalizacj opisaem szerzej w rozdziale 4.

Zauwa, e masz ju wszystkie elementy niezbdne do rozwizania problemu za pomoc


narzdzia Solver:
Cel zminimalizowanie sumy odlegoci klientw od rodkw klastrw,
do ktrych s przypisani (A36).
Zmienne decyzyjne modyfikowane wartoci definiujce rodki klastrw (H2:K33).
Ograniczenia rodki klastrw powinny przyjmowa wartoci w zakresie od 0 do 1.

Otwrz okno narzdzia Solver i umie w nim powysze parametry. Skonfiguruj Solver
tak, aby zminimalizowa warto zapisan w komrce A36, modyfikujc komrki H2:K33
i biorc pod uwag ograniczenie wartoci wpisywanych do tych komrek (musz by one,
podobnie jak dane, mniejsze lub rwne 1). Zaznacz opcj Ustaw wartoci nieujemne dla
zmiennych bez ogranicze i wybierz metod rozwizania o nazwie Ewolucyjna (rysunek 2.17).

Rysunek 2.17. Konfiguracja Solvera do przeprowadzenia analizy skupie dzielcej klientw


na cztery grupy

Kup ksik Pole ksik


68 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Zadanie to wcale nie jest dla Solvera takie proste, jak by si mogo wydawa, a wic
zajrzyj do opcji metody ewolucyjnej (kliknij przycisk Opcje i przejd do karty Ewolucyjna).
Warto zmodyfikowa parametr Maksymalny czas bez poprawy wybierz czas ok. 30 sekund
(zalenie od tego, ile czasu moesz powici na czekanie na rozwizanie problemu).
Ustawiem czas 600 sekund (10 minut) rysunek 2.18. Dziki temu po uruchomieniu
Solvera bd mg pj na kaw. Jeeli chciaby zatrzyma dziaanie Solvera, to wcinij
klawisz Escape i zamknij go, zachowujc najlepsze znalezione dotychczas rozwizanie.

Rysunek 2.18. Zakadka opcji algorytmu ewolucyjnego

Jeeli ciekawi Ci sposb dziaania algorytmu ewolucyjnego, to opis jego funkcjonowania


znajdziesz w rozdziale 4. i na stronie: http://www.solver.com/.
Kliknij przycisk Rozwi i poczekaj na zakoczenie pracy algorytmu ewolucyjnego.

Analiza uzyskanych wynikw


Zabawa zacznie si dopiero po wygenerowaniu przez Solvera optymalnych klastrw.
Przyjrzyj si danym, ktre uzyskaem (rysunek 2.19). Jak widzisz, Solver obliczy optymaln
odlego cakowit (140,7) i dziki formatowaniu warunkowemu okreli rodki czterech
klastrw.

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 69

Rysunek 2.19. Optymalne rodki czterech klastrw

Twoja wersja Excela moga wygenerowa inne wartoci rodkw klastrw. Mogo tak
si sta, poniewa algorytm ewolucyjny pracuje z wartociami losowymi i nie zawsze
generuje takie same wyniki. Twoje klastry mog by zupenie inne, mog nieco przypomina
moje lub ich rodki mog by uoone w rnej kolejnoci (rodek mojego klastra 1.
moe znajdowa si bardzo blisko rodka Twojego klastra 4. itd.).
W kolumnach B G umiecie informacje o ofertach, a wic teraz moesz z atwoci
z nich korzysta, poniewa dane te mog by bardzo wane z punktu widzenia rodkw
klastrw (rysunek 2.19).
W przypadku klastra 1. znajdujcego si w kolumnie H formatowanie warunkowe
wyrnia oferty 24., 26., 17. i w mniejszym stopniu ofert 2. Jeeli zagbisz si w szczegy
tych ofert, to maj one jedn rzecz wspln wszystkie s zwizane z winem pinot noir.
Jeeli przyjrzysz si kolumnie I, to zauwaysz w niej pola wyrnione na zielono s
to oferty, ktre czy niska minimalna ilo kupowanego wina. W klastrze tym znajduj
si nabywcy, ktrzy nie chc kupowa duych iloci trunku.
Bd szczery: interpretacja dwch ostatnich klastrw jest trudna. Moe zamiast
interpretowa pooenie rodka klastra, lepiej przyjrze si preferencjom przyporzdkowanych
do niego klientw? By moe w ten sposb wysnujesz jakie sensowniejsze wnioski?

Ustalanie najlepszej oferty dla danego klastra


Zamiast szuka wymiarw, ktre przyjmuj dla danego klastra wartoci blisze 1,
sprawdmy, kto jest przypisany do danego klastra i jakie oferty preferuje.
W tym celu skopiujmy zawarto zakadki DaneOfert do nowej zakadki (nazwij j 4MC
NajlepszeOfertyKlastrw). W nowej zakadce przypisz kolumnom H K etykiety 1, 2, 3, i 4
(rysunek 2.20).

Kup ksik Pole ksik


70 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.20. Przygotowywanie tabeli zliczajcej oferty najpopularniejsze w danym klastrze

W 39. wierszu zakadki 4MC uzyskae list klastrw przypisanych do poszczeglnych


klientw. W celu okrelenia liczby transakcji dotyczcych danego klastra potrzebne jest
sprawdzenie tytuu kolumn H K zakadki 4MC NajlepszeOfertyKlastrw, a nastpnie
uycie tej informacji w celu okrelenia, kto zosta przypisany do danego klastra w 39.
wierszu zakadki 4MC. Na koniec wystarczy zsumowa wartoci kadego rzdu transakcji.
W ten sposb okrelisz liczb klientw danego klastra, ktrzy skorzystali z danej oferty.
Zacznij od komrki H2 liczby klientw zaklasyfikowanych do klastra 1., ktrzy
skorzystali z oferty 1. (styczniowa oferta na wino malbec). Chcesz zsumowa wartoci
wpisane w komrkach L2:DG2 zakadki 4MC, ale musisz wzi pod uwag tylko klientw
przypisanych do klastra 1. Jest to klasyczny przykad zastosowania formuy SUMA.JEELI.
W komrce H2 umie nastpujc formu:
=SUMA.JEELI('4MC'!$L$39:$DG$39,'4MC NajlepszeOfertyKlastrw'!H$1,'4MC'!$L2:$DG2)

Formua SUMA.JEELI wymaga zadeklarowania wartoci ('4MC'!$L$39:$DG$39),


ktre bd porwnywane z wartoci 1 zadeklarowan w nagwku kolumny
('4MC NajlepszeOfertyKlastrw'!H$1). W przypadku znalezienia odpowiednich
wartoci dochodzi do sumowania wiersza 2. (zobacz trzeci element deklaracji formuy
'4MC'!$L2:$DG2).
Zauwa, e w formule zastosowaem odwoania bezwzgldne znak $ umieciem
przed wszystkimi elementami sekcji przypisania wiersza klastra, przed numerem wiersza
nagwkw kolumny i przed liter kolumny analizowanych transakcji. Dziki zastosowaniu
odwoa bezwzgldnych formu t moesz przecign do komrek H2:K33 w celu uzyskania
liczby transakcji, do ktrych doszo przy wszystkich kombinacjach transakcji i klastrw
(rysunek 2.21). Aby zwikszy czytelno danych zaprezentowanych w kolumnach H K,
uruchom formatowanie warunkowe.
Dane moesz posegregowa, korzystajc z opcji automatycznego filtrowania kolumn
A K (zob. rozdzia 1.). Sortujc dane znajdujce si w kolumnie H w kolejnoci od najwikszych
do najmniejszych, moesz zobaczy, ktre oferty byy najpopularniejsze wrd klientw
przyporzdkowanych do klastra 1. (rysunek 2.22).

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 71

Rysunek 2.21. Sumy liczby transakcji podzielone na klastry

Rysunek 2.22. Sortowanie klastra 1. pinot, pinot, pinot!

Zgodnie z tym, co zauwayem wczeniej, wszystkie oferty w tym klastrze dotycz wina
pinot. Ci klienci chyba za duo naogldali si filmu Bezdroa. Po posortowaniu kolumny
klastra 2. okazuje si, e znajduj si w nim klienci, ktrzy preferuj zakup maej iloci
wina (rysunek 2.23).
Niestety, w wyniku sortowania klastra 3. nie da si wycign tak oczywistych wnioskw.
W tym klastrze jest wiele bardzo popularnych ofert i nie wida wyranej granicy pomidzy
nimi a ofertami, z ktrych nikt nie skorzysta. Najpopularniejsze oferty w tej grupie
wydaj si mie co wsplnego wszystkie charakteryzuj si du znik. Pi z szeciu

Kup ksik Pole ksik


72 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.23. Sortowanie klastra 2. osoby preferujce mae zakupy

najpopularniejszych ofert to prawdziwe okazje, a wrd czterech najpopularniejszych a


trzy dotycz win z Francji. Niestety, trudno jest tu wysnu jakie jednoznaczne wnioski
(rysunek 2.24).

Rysunek 2.24. Sortowanie klastra 3. nie daje jednoznacznych wnioskw

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 73

Przygldajc si klastrowi 4., mona wysnu wniosek, e wszystkie zakwalifikowane do


niego osoby z jakiego powodu lubi dokonywa zakupw w sierpniu. Ponadto pi z szeciu
najpopularniejszych ofert dotyczy win pochodzcych z Francji, a dziesi najpopularniejszych
zakupu duej iloci win (rysunek 2.25). By moe w tym klastrze znajduj si klienci
preferujcy zakup duej iloci francuskich win? Nakadanie si klastrw 3. i 4. jest do
kopotliwe.

Rysunek 2.25. Sortowanie klastra 4. czy ta grupa klientw po prostu lubi pi szampana w sierpniu?

Dochodzimy do pewnej wtpliwoci: czy cztery to odpowiednia liczba grup, na ktre


dzielimy naszych klientw za pomoc algorytmu centroidw? By moe nie. Jak zatem
okreli waciw liczb grup?

Kup ksik Pole ksik


74 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Sylwetka podziau dobry sposb na okrelenie optymalnej liczby klastrw


Nie ma niczego zego w dokonywaniu podziau na rne liczby grup a do momentu
dojcia do wniosku, e ktry podzia wydaje si sensowny. Oczywicie czasami wynik
podziau okazuje si bezsensowny, poniewa w analizowanych danych brakuje informacji,
ktre umoliwiyby sensowny podzia na klastry.
Czy istnieje jaki sposb na ocenienie doboru liczby grup, na ktre dzielimy nasz zbir
danych, poza dokonywaniem podziau i analizowaniem go goym okiem?
Owszem, istnieje. Moesz obliczy parametr okrelajcy jako klastrw sylwetk
podziau (ang. silhouette). Zalet tego parametru jest to, e na jako otrzymanych wynikw
nie wpywa liczba grup, na ktre dokonujemy podziau.

Sylwetka podziau na wysokim poziomie jak daleko od Ciebie s Twoi ssiedzi?


Moesz porwna redni odlego pomidzy kadym klientem a jego ssiadami
przyporzdkowanymi do tego samego klastra ze redni odlegoci do klientw
w klastrze, ktrego centrum znajduje si najbliej.
Jeeli znajduj si bliej osb nalecych do mojej grupy ni osb nalecych do ssiedniej
grupy, to chyba zostaem przydzielony do waciwej grupy, mam racj? A co, jeeli osoby
z ssiedniej grupy znajduj si praktycznie tak blisko mnie jak osoby z grupy, do ktrej
zostaem przyporzdkowany? Mog wtedy doj do wniosku, e moje przydzielenie
nie jest do koca przemylane.
W sposb formalny mona to obliczy za pomoc wzoru:
(rednia odlego od elementw ssiedniego klastra rednia odlego od elementw
mojego klastra) / maksimum tych dwch rednich

Mianownik tego wzoru sprawia, e umoliwia on otrzymanie wartoci z zakresu


od 1 do 1.
Przeanalizuj ten wzr. Gdy osoby z innej grupy oddalaj si ode mnie (bardziej si ode
mnie rni), to wzr zwraca warto blisz 1. Jeeli obie rednie odlegoci s podobne,
to wzr zwraca warto zblion do 0.
Obliczajc redni warto takich liczb charakteryzujcych kadego klienta, uzyskamy
sylwetk podziau. Gdy sylwetka podziau przyjmuje warto 1, to podzia jest idealny.
Zero oznacza zy podzia klastrw, a warto mniejsza od zera oznacza, e wielu klientw
pasowaoby lepiej do innego klastra.
Obliczajc wartoci sylwetki podziaw dla rnych liczb grup, mona stwierdzi,
czy dodanie grupy poprawia podzia.
Aby wyjani dziaanie tej techniki, wrmy jeszcze raz do przykadu dyskoteki
szkolnej. Na rysunku 2.26 przedstawiono obliczenia odlegoci uyte w celu okrelenia
sylwetki podziau. Porwnano odlego pomidzy jednym z opiekunw a dwoma
pozostaymi opiekunami z odlegoci pomidzy tym opiekunem a osobami
przyporzdkowanymi do najbliszego klastra (grupy chopcw).

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 75

Rysunek 2.26. Odlegoci, ktre naley wzi pod uwag w przypadku okrelania wpywu
przyporzdkowania osoby pilnujcej na warto okrelajc sylwetk podziau

W sytuacji widocznej na rysunku osoba pilnujca znajduje si o wiele bliej pozostaych


opiekunw ni nastolatkw, a wic warto wspczynnika odlegoci bdzie w tym
przypadku wyranie wiksza od zera.

Tworzenie macierzy odlegoci


W celu zaimplementowania metody sylwetki podziau musisz uzyska wane dane
odlego pomidzy klientami. rodki klastrw mog zmienia pooenie, ale odlegoci
pomidzy klientami s stae. W zwizku z tym moesz stworzy jedn tabel z odlegociami
i korzysta z niej przy wszystkich obliczeniach sylwetki podziau (przy podziale na rne
liczby grup i przy rnych wsprzdnych ich rodkw).
Zacznij od utworzenia pustego arkusza o nazwie Odlegoci. Skopiuj do niego nazwiska
klientw w pionie i w poziomie. Kada komrka tej tabeli bdzie definiowaa odlego
pomidzy klientem, ktrego nazwisko jest umieszczone w kolumnie, a klientem, ktrego
nazwisko zapisano w wierszu. W celu wklejenia danych klientw do wierszy tej zakadki
skopiuj komrki H1:DC1 z zakadki Macierz i skorzystaj z polecenia Wklej specjalnie
Pamitaj o wybraniu opcji wklejania Wartoci i zaznaczeniu pola Transpozycja w oknie
Wklejanie specjalne.

Kup ksik Pole ksik


76 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Aby ledzi pooenia klientw w tej duej tabeli, ponumeruj ich (przypisz im numery
od 0 do 99 w obu kierunkach). Numery te umie w kolumnie A i wierszu 1. W tym celu
wstaw pusty wiersz i pust kolumn od gry i na lewo od wiersza i kolumny, do ktrych
wkleie nazwiska (kliknij kolumn A i wiersz 1. prawym przyciskiem myszy, a nastpnie
wybierz opcj wstawiania nowej kolumny i nowego wiersza).

UWAGA
Kolejne liczby z zakresu 0 99 moesz wstawi na wiele rnych sposobw. Na przykad
zacznij od wpisania cyfr 0, 1, 2, 3 w pierwsze komrki. Nastpnie zaznacz je i przecignij
dolny rg zaznaczonego obszaru na pozostae komrki. Excel powinien zrozumie Twj
zamiar i automatycznie dokoczy sekwencj. Na rysunku 2.27 przedstawiono tabel goto-
w do zapenienia danymi.

Rysunek 2.27. Pusta tabela odlegoci

Spjrz na komrk C3 powinna zawiera odlego pomidzy klientem o nazwisku


Adams a klientem o nazwisku Adams, a wic odlego pomidzy t sam osob. Bdzie
ona wynosi 0 nikt nie moe by bliej siebie od siebie samego.
Jak obliczy t odlego? W kolumnie H zakadki Macierz znajduje si wektor transakcji
dokonanych przez klienta o nazwisku Adams. W celu obliczenia odlegoci euklidesowej
pomidzy tym uytkownikiem a nim samym wystarczy od kolumny H odj kolumn H,
uzyskan rnic podnie do kwadratu, zsumowa otrzymane wartoci, a nastpnie
wycign z nich pierwiastek kwadratowy.
Jak przecign te obliczenia do kadej komrki arkusza? Rczne wpisywanie kadej
formuy byoby bardzo czasochonne. W zwizku z tym w komrce C3 musisz skorzysta
z formuy PRZESUNICIE. Wicej informacji na temat tej formuy znajdziesz w rozdziale 1.
Formua PRZESUNICIE przyjmuje okrelony zakres komrek (w tym wypadku wektor
transakcji dokonanych przez klienta o nazwisku Adams Macierz!$H$2:$H$33), a nastpnie
przesuwa cay zakres o okrelon liczb rzdw i kolumn.

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 77

Na przykad formua PRZESUNICIE(Macierz!$H$2:$H$33,0,0) zwraca wektor transakcji


dokonanych przez klienta o nazwisku Adams, poniewa przesuwamy podany zakres o 0
wierszy w d i 0 kolumn w prawo.
Natomiast formua PRZESUNICIE(Macierz!$H$2:$H$33,0,1) zwrci kolumn
z transakcjami klienta o nazwisku Allen, formua PRZESUNICIE(Macierz!$H$2:$H$33,0,2)
zwrci kolumn z transakcjami klienta o nazwisku Anderson itd.
Wanie do tego przydadz si wartoci z zakresu od 0 do 99, ktre wpisalimy do
wiersza 1. i kolumny A. Moemy dziki nim zbudowa np. nastpujc formu:
{=PIERWIASTEK(SUMA((PRZESUNICIE(Macierz!$H$2:$H$33,0,Odlegoci!C$1)-PRZESUNICIE
(Macierz!$H$2:$H$33,0,Odlegoci!$A3))^2))}

W ten sposb okrelimy odlego pomidzy klientem o nazwisku Adams a nim samym.
Zauwa, e Odlegoci!C$1 definiuje przesunicie kolumny w pierwszym wektorze transakcji,
a Odlegoci!$A3 definiuje przesunicie kolumny w drugim wektorze transakcji.
Dziki temu po przecigniciu tej formuy na cay arkusz wszystko bdzie zakotwiczone
na wektorze transakcji klienta o nazwisku Adams, ale formua PRZESUNICIE bdzie
przesuwaa wektor we waciwe miejsca wskazywane przez indeksy umieszczone
w kolumnie A i wierszu 1. W ten sposb bdziemy przetwarza waciwe wektory
transakcji klientw. Na rysunku 2.28 pokazano tabel wypenion wartociami odlegoci.

Rysunek 2.28. Tabela odlegoci wypeniona danymi

Pamitaj, e formuy wpisywane w zakadce Odlegoci musz by formuami


tablicowymi, tak jak w przypadku zakadki 4MC.

Excel i implementacja sylwetki podziau


Przygotowae dane w zakadce Odlegoci, a wic moesz przystpi do wykonywania
oblicze niezbdnych do okrelenia wartoci sylwetki podziau. Utwrz nowy arkusz
i nazwij go 4MC Sylwetka.

Kup ksik Pole ksik


78 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Na pocztek skopiuj z zakadki 4MC nazwiska klientw i numery grup, do ktrych


zostali przypisani skorzystaj z opcji Wklej specjalnie i umie nazwiska w kolumnie A,
a numery grup umie w kolumnie B (nie zapomnij zaznaczy opcji Transponuj w oknie
Wklejanie specjalne).
Teraz bdziesz mg skorzysta z arkusza Odlegoci i obliczy redni odlego
pomidzy kadym klientem a klientami przyporzdkowanymi do tej samej grupy.
W kolumnach od C do F umie etykiety Odlego od czonkw 1. grupy Odlego
od czonkw 4. grupy.
W moim skoroszycie klient o nazwisku Adams zosta przypisany do klastra 2., a wic
w komrce C2 bdziesz musia obliczy odlego pomidzy nim a wszystkimi klientami
przypisanymi do klastra 1. Musisz przeszuka list klientw i wybra tych, ktrzy zostali
przypisani do klastra 1., nastpnie obliczy redni odlego pomidzy nimi a klientem
o nazwisku Adams (moesz skorzysta z wiersza 3. arkusza Odlegoci).
Brzmi to jak typowe zastosowanie formuy REDNIA.JEELI:
=REDNIA.JEELI('4MC'!$L$39:$DG$39,1,Odlegoci!$C3:$CX3)

Formua REDNIA.JEELI sprawdza przypisania do klastrw i dobiera je do klastra 1.


przed okreleniem redniej odpowiednich odlegoci z komrek C3:CX3.
Formuy wpisywane w kolumnach D F s identyczne, ale zamiast do klastra 1.
odwoujemy si do klastrw 2., 3. i 4. Po umieszczeniu formu w odpowiednich
kolumnach kliknij je dwukrotnie w celu skopiowania do pozostaych komrek klientw.
W ten sposb uzyskasz tabel pokazan na rysunku 2.29.

Rysunek 2.29. rednie odlegoci pomidzy poszczeglnymi klientami


a klientami przypisanymi do kadego z klastrw

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 79

W kolumnie G moesz dokona oblicze dla najbliszej grupy klientw skorzystaj


z formuy MIN. W przypadku klienta o nazwisku Adams zastosuj formuy:
=MIN(C2:F2)

W kolumnie H za pomoc formuy MIN.K moesz obliczy wartoci dla drugiej najbliszej
grupy klientw (w podanym przykadzie zastosowalimy parametr 2, poniewa formua
ma okrela drugie najblisze miejsce):
=MIN.K(C2:F2,2)

W podobny sposb moesz obliczy w kolumnie I odlego od klientw


przyporzdkowanych do tej samej grupy (prawdopodobnie bdzie to warto
identyczna z t, ktra znalaza si w kolumnie G, ale nie jest to regua):
=INDEKS(C2:F2,B2)

Formua INDEKS jest uywana w celu okrelenia waciwej odlegoci zapisanej


w kolumnach C F przy uyciu wartoci zapisanej w kolumnie B, ktra to kolumna peni
funkcj indeksu.
W celu obliczenia wartoci sylwetki podziau musisz rwnie okreli odlego od
najbliszej grupy klientw, ktrzy nie nale do klastra, do ktrego przyporzdkowany
zosta analizowany klient (zwykle warto ta bdzie rwna tej, ktr umieszczono
w kolumnie H, ale nie jest to regu). W celu okrelenia tej wartoci w kolumnie J musisz
porwna odlego od wasnego klastra umieszczon w kolumnie I z odlegoci od
najbliszego klastra. Jeeli te wartoci s identyczne, to w kolumnie J wpisujemy warto
odczytan z kolumny H, w przeciwnym wypadku wpisujemy warto odczytan z kolumny G:
=JEELI(I2=G2,H2,G2)

Po skopiowaniu tych formu w d uzyskasz arkusz przedstawiony na rysunku 2.30.

Rysunek 2.30. rednie odlegoci pomidzy klientami przyporzdkowanymi do tej samej grupy
a klientami przyporzdkowanymi do najbliszej grupy, w ktrej dany klient si nie znajduje

Kup ksik Pole ksik


80 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Dysponujc obliczonymi wczeniej wartociami, okrelenie wartoci sylwetki podziau


dla kadego klienta nie stanowi adnego problemu. Wystarczy zastosowa formu:
=(J2-I2)/MAX(J2,I2)

Skopiuj t formu do komrek znajdujcych si poniej, a uzyskasz wspczynniki


wartoci sylwetki podziau kadego klienta.
Przygldajc si uzyskanym wynikom, zauwaysz, e niektre z nich s bliskie 1.
Na przykad warto sylwetki podziau klienta o nazwisku Anderson wynosi w przypadku
mojego podziau na grupy 0,544 (rysunek 2.31). Niele! Niestety, w przypadku klientw
takich jak np. Collins warto ta jest mniejsza od 0, co wiadczy o tym, e charakterystyki
tego klienta s blisze ssiedniemu klastrowi. Biedak.

Rysunek 2.31. Wspczynnik sylwetki podziau przy podziale na cztery klastry

Teraz moesz obliczy redni tych wartoci, ktra bdzie rwna oglnemu
wspczynnikowi sylwetki podziau. W moim przypadku (rysunek 2.31) wynosi on 0,1492.
Warto ta jest wyranie bardziej zbliona do 0 ni 1. To smutne, ale wcale nie zaskakujce.
W kocu dwa z czterech klastrw byy trudne do jednoznacznego zinterpretowania
i opisania za pomoc preferowanych ofert.
No dobrze, co dalej?
Wspczynnik sylwetki podziau wynosi 0,1492. Co to znaczy? Jak mona z tego
skorzysta? Wyprbuj podzia na inn liczb grup. Pniej bdziesz mg porwna
wspczynniki sylwetki tych podziaw i dowiedzie si, czy dzielc klientw na wiksz
liczb klastrw, poprawiasz jako podziau.

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 81

A moe potrzebujesz piciu klastrw?


Sprbuj podzieli klientw na pi grup i zobacz, co si stanie.
Mam dla Ciebie dobr wiadomo: opracowae ju arkusz dla czterech klastrw,
a wic nie musisz zaczyna pracy nad kolejnym arkuszem od podstaw. Ponadto
nie musisz w aden sposb modyfikowa arkusza Odlego. Czas rozpocz prac.
Utwrz kopi arkusza 4MC i nazwij go 5MC. Wystarczy, e dodasz do niego pity
klaster i uwzgldnisz go w obliczeniach.
Kliknij prawym przyciskiem myszy kolumn L i wstaw obok niej now kolumn
o nazwie Klaster 5. Musisz rwnie doda wiersz Odlego od klastra 5. kliknij 38.
rzd komrek i wstaw nad nim pusty wiersz. Moesz skopiowa zawarto wiersza
Odlego od klastra 4. i zmieni w jego formuach odwoania do kolumny K na odwoania
do kolumny L. Ponadto formuy wierszy Minimalna odlego od klastra i Przypisany
klaster musz zawiera odwoania do wiersza 38., a nie 37. (zwiksz zakres formu
o nowy klaster).
Po wykonaniu tych czynnoci uzyskasz arkusz przedstawiony na rysunku 2.32.

Rysunek 2.32. Tworzenie podziau na pi grup

Dzielenie klientw na pi klastrw za pomoc narzdzia Solver


Otwrz narzdzie Solver. W zmiennych decyzyjnych i ograniczeniach musisz zmieni
$H$2:$K$33 na $H$2:$L$33. Teraz bd one uwzgldnia nowy (pity) klaster. Pozostae
opcje narzdzia Solver pozostaj bez zmian.
Kliknij przycisk Rozwi i poczekaj na rozwizanie problemu.

Kup ksik Pole ksik


82 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

W moim przypadku Solver zakoczy prac, uzyskujc cakowit odlego rwn 135,1
(rysunek 2.33).

Rysunek 2.33. Optymalny podzia klientw na pi klastrw

Ustalanie najlepszych ofert dla wszystkich piciu klastrw


Czas sprawdzi sensowno podziau klientw na pi grup. Utwrz kopi arkusza 4MC
NajlepszeOfertyKlastrw i nazwij j 5MC NajlepszeOfertyKlastrw. Dodatkowo
musisz podda j kilku modyfikacjom.
Zacznij od upewnienia si, e arkusz jest posortowany wedug numeru oferty
(kolumna A). Nastpnie nadaj etykiet 5 kolumnie L i przecignij formuy z kolumny K
do kolumny L. Zaznacz kolumny od A do L i zastosuj ponownie automatyczne filtrowanie,
tak aby mc sortowa zakupy dokonane przez klientw z klastra 5.
Obecnie wszystkie formuy tego arkusza odwouj si do arkusza 4MC, a wic czas
skorzysta z dobrze znanego Ci okna Znajdowanie i zamienianie. Dane klastrw w arkuszu
5MC s przesunite o jeden wiersz w d i jedn kolumn w prawo, a wic odwoanie
do komrki '4MC'!$L$39:$DG$39 w formuach SUMA.JEELI powinno zosta zastpione
odwoaniem '5MC'!$M$40:$DH$40. Odwoania te mona zmieni za pomoc okna
Znajdowanie i zamienianie (rysunek 2.34).

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 83

Rysunek 2.34. Zastpowanie odwoa do podziau na cztery klastry odwoaniami


do podziau na pi klastrw

UWAGA
Pamitaj, e wyniki widoczne w Twoim arkuszu mog rni si od tych uzyskanych przeze
mnie z powodu zastosowania algorytmu ewolucyjnego.

W wyniku posortowania klastra 1. ponownie wyranie wida, e przyporzdkowani do


niego kupujcy preferuj wino pinot noir (rysunek 2.35).

Rysunek 2.35. W wyniku posortowania klastra 1. ponownie wida preferencje do zakupu wina
pinot noir

Klaster 2. ponownie zawiera osoby kupujce mae iloci wina (rysunek 2.36).
Klaster 3. przyprawia mnie o bl gowy. Z jakiego powodu znajdujcy si w nim
klienci preferuj wino espumante pochodzce z RPA (rysunek 2.37).

Kup ksik Pole ksik


84 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.36. Sortowanie klastra 2. osoby kupujce tylko mae iloci wina

Rysunek 2.37. Sortowanie klastra 3. czy wino espumante jest naprawd tak wane?

Osoby zakwalifikowane do klastra 4. preferuj zakup duych iloci win, ktre pochodz
gwnie z Francji, a ich ceny charakteryzuj si duym rabatem. Zauwaalna jest rwnie
pewna preferencja win musujcych. Trudno odczyta informacje zawarte w tym klastrze
jest ich tak wiele (rysunek 2.38).

Kup ksik Pole ksik


Prawdziwy problem: implementacja algorytmu centroidw w e-mail marketingu 85

Rysunek 2.38. Sortowanie klastra 4. zrnicowane preferencje kupujcych

Sortowanie klastra 5. daje podobne rezultaty do sortowania klastra 4., ale tym razem
gwne preferencje wydaj si zwizane z du iloci i duymi rabatami (rysunek 2.39).

Okrelanie sylwetki podziau na pi klastrw


Zapewne zastanawiasz si, czy podzia na pi klastrw jest lepszy od podziau na cztery.
Na pierwszy rzut oka nie wida wikszej rnicy. Obliczmy warto sylwetki podziau na
pi klastrw i zobaczmy, co myli o tym podziale komputer.
Zacznij od skopiowania zawartoci arkusza 4MC Sylwetka do nowego arkusza o nazwie
5MC Sylwetka. Kliknij prawym przyciskiem myszy kolumn G i wstaw now kolumn.
Nadaj jej etykiet Odlego od czonkw 5. grupy. Przecignij formu z komrki F2 do
komrki G2, zmie numer sprawdzanego klastra (z 4 na 5), a nastpnie kliknij t komrk
dwukrotnie, aby skopiowa znajdujc si w niej formu do wszystkich komrek tej
kolumny znajdujcych si poniej.
Tak samo jak w poprzednim podrozdziale skorzystaj z funkcji Znajdowanie i zamienianie
i zastp '4MC'!$L$39:$DG$39 nastpujcym fragmentem formuy: '5MC'!$M$40:$DH$40.
W kolumnach H2, I2 i J2 powiniene rwnie wzi pod uwag odlego od osb
przypisanych do klastra 5., a wic zakresy komrek koczce si na F2 powinny by
rozszerzone do G2. Po wykonaniu tych modyfikacji moesz zaznaczy komrki H2:J2
i klikn dwukrotnie ich prawy dolny rg w celu zaktualizowania formu wpisanych
do komrek znajdujcych si niej.
Na koniec skopiuj wartoci przypisania klastra znajdujce si w 40. wierszu arkusza
5MC. Umie je w kolumnie B arkusza 5MC Sylwetka. Skorzystaj z opcji Wklej specjalnie,
zaznaczajc opcj Transponuj.
Po wykonaniu tych modyfikacji Twj arkusz powinien wyglda tak, jak pokazano
na rysunku 2.40.

Kup ksik Pole ksik


86 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Rysunek 2.39. Sortowanie klastra 5. preferowane s iloci hurtowe

Rysunek 2.40. Sylwetka podziau na pi klastrw

Kup ksik Pole ksik


Podzia na grupy za pomoc algorytmu k-medioidw i asymetryczny pomiar odlegoci 87

Czy nie uwaasz, e to smutne? Sylwetka podziau niemal wcale si nie zmienia.
Warto 0,134 wskazuje, e podzia na pi grup jest nawet nieco gorszy! Nie jest to nic
dziwnego. W obu przypadkach uzyskano trzy sensowne klastry, a pozostae byy zaszumione.
Moe obralimy zy kierunek i trzeba sprawdzi podzia na trzy klastry? Jeeli chcesz
wyprbowa ten podzia, potraktuj to jako wiczenie i zrb to samodzielnie.
W kolejnym podrozdziale chciabym zwrci uwag na co, co by moe powoduje
generowanie zaszumionych i kopotliwych klastrw.

Podzia na grupy za pomoc algorytmu k-medioidw


i asymetryczny pomiar odlegoci
W wikszoci przypadkw sprawdza si standardowy algorytm k-rednich i pomiar
odlegoci euklidesowej, ale teraz trafie na problem, ktry trapi osoby analizujce mae
zbiory danych (zbiory takie s generowane przez handel, klasyfikacj tekstu i bioinformatyk).

Podzia na grupy za pomoc metody k-medioidw


Pierwszy problem jest do oczywisty i wynika z tego, e rodki klastrw s wartociami
dziesitnymi, mimo e wektory transakcji dokonanych przez klientw skadaj si z samych
zer i jedynek. Co tak naprawd oznacza 0,113 transakcji? Chciabym, aby rodki klastrw
okrelay dokonanie lub niedokonanie transakcji.
Jeeli zmodyfikujesz algorytm dzielcy klientw na klastry, to moesz korzysta tylko
z wartoci znajdujcych si w wektorach transakcji dokonanych przez klientw. Tak
metod nazywamy algorytmem k-medioidw (wczeniej korzystalimy z algorytmu
k-rednich).
Gdyby chcia w dalszym cigu korzysta z odlegoci euklidesowej, to wystarczyoby,
aby doda w opcjach narzdzia Solver ograniczenie wsprzdnych pooenia rodkw
klastrw do wartoci binarnych (binarna).
Warto zastanowi si nad tym, co uzyskamy, wyraajc odlego euklidesow za
pomoc wartoci binarnych.

Stosowanie lepszego sposobu pomiaru odlegoci


Zwykle po przejciu z algorytmu k-rednich na algorytm k-medioidw nie korzysta si
z metryki euklidesowej i przechodzi si na metryk miejsk, zwan rwnie metryk
Manhattanu.
Wrona moe przelecie z punktu A do punktu B w linii prostej, ale takswka na
Manhattanie musi korzysta z siatki ulic, a wic moe jecha tylko na pnoc, poudnie,
wschd lub zachd. Na przedstawionym wczeniej przykadzie pomiaru odlegoci na
dyskotece szkolnej odlego euklidesowa wynosia 4,47 metra, ale odlego mierzona
zgodnie z metryk miejsk wynosi 6 metrw (4 metry w d plus 2 metry w bok).

Kup ksik Pole ksik


88 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

W przypadku danych binarnych, takich jak np. dane transakcji, odlego mierzona
w metryce miejskiej jest odlegoci pomidzy rodkiem klastra a wektorem zakupw
klienta bdc sum rozbienoci. Jeeli rodek klastra przyj warto 0 i zakupy klienta
rwnie przyjy warto 0, to odlego w danym kierunku jest rwna 0. W przypadku
rozbienych wartoci (0 i 1) odlego w danym kierunku wynosi 1. Po zsumowaniu
odlegoci w poszczeglnych kierunkach otrzymamy odlego cakowit, ktra jest
w zasadzie liczb rozbienoci. Odlego miejsk implementowan podczas pracy
z danymi binarnymi okrela si czsto mianem odlegoci Hamminga.

Czy pomiar odlegoci zgodnie z metryk miejsk rozwizuje problem?


Zanim rozpoczniesz dzielenie klientw za pomoc algorytmu k-medioidw i metryki
miejskiej, spjrz jeszcze raz na dane transakcji.
Co oznacza dokonanie przez klienta transakcji? Oznacza ch nabycia produktu przez
klienta.
Co oznacza niedokonanie transakcji? Czy oznacza niech zakupu produktu tak samo
siln jak ch zakupu produktu wyraona przez wykonanie transakcji? Czy sygna negacji
jest tak samo silny jak wykonanie transakcji? By moe kto lubi szampana, ale ma ju
jego zapas. Moe pewna grupa klientw nie przeczytaa akurat treci newslettera. Istnieje
wiele powodw, dla ktrych kto nie wykona jakiej czynnoci, ale czynnoci zakupu s
wykonywane z pewnych okrelonych powodw.
Innymi sowy: powiniene analizowa zakupy, a nie ich brak.
Mona stwierdzi, e analizowane przez Ciebie dane s asymetryczne jedynki
s warte wicej ni zera. Jeeli jakich dwch klientw jest podobnych z powodu trzech
identycznych zakupw, znaczy to wicej ni podobiestwo innych klientw ustalone
na podstawie identycznego niewykonania trzech zakupw. Dane, w ktrych jedynki s
wane, ale rzadko wystpuj w zgromadzonym zbiorze, okrelamy przymiotnikiem
rzadkie.
Zastanwmy si jeszcze, co oznacza to, e jaki klient jest blisko rodka klastra, z punktu
widzenia metryki euklidesowej. Jeeli mamy klienta z du liczb jedynek dla jakiej
transakcji i du liczb zer dla innej transakcji, to obie te informacje wpywaj tak samo
na odlego od rodka klastra.
W opisywanym przykadzie potrzebujesz metody asymetrycznego obliczania odlegoci.
Istnieje wiele takich metod, ktre mona stosowa w przypadku danych transakcji zapisanych
za pomoc wartoci binarnych.
Chyba najczciej uywan metod obliczania odlegoci asymetrycznej dla danych
binarnych jest metoda odlegoci kosinusowej.

Kup ksik Pole ksik


Podzia na grupy za pomoc algorytmu k-medioidw i asymetryczny pomiar odlegoci 89

Odlego kosinusowa wcale nie jest czym strasznym


Odlego kosinusow najatwiej jest wyjani za pomoc jej przeciwiestwa podobiestwa
kosinusowego.
Zamy, e dysponujesz dwoma binarnymi wektorami transakcji: (1,1) i (1,0).
W pierwszym wektorze dokonano zakupu obu produktw, a w drugim dokonano zakupu
tylko pierwszego produktu. Moesz dokona wizualizacji tych wektorw w przestrzeni.
Zobaczysz wtedy, e pomidzy nimi powstaje kt 45 (rysunek 2.41). miao! We ktomierz
i zmierz go.

Rysunek 2.41. Podobiestwo kosinusowe dwch wektorw binarnych zawierajcych dane transakcji

Moemy wic stwierdzi, e podobiestwo kosinusowe tych wektorw wynosi cos(45)


= 0,707. Dlaczego? Okazuje si, e kosinus kta pomidzy dwoma binarnymi wektorami
transakcji jest rwny:
liczbie identycznych zakupw w obu wektorach podzielonej przez iloczyn pierwiastka
kwadratowego z liczby zakupw pierwszego wektora i pierwiastka kwadratowego
z liczby zakupw drugiego wektora.

W przypadku wektorw (1,1) i (1,0) jeden zakup jest identyczny, a wic warto 1 jest
dzielona przez pierwiastek kwadratowy z 2 (wykonano dwie transakcje) pomnoony przez
pierwiastek kwadratowy z 1 (zrealizowano jedn transakcj). Wykonujc to dziaanie,
uzyskasz wynik 0,707 (rysunek 2.41).
Dlaczego ten wynik jest tak interesujcy?

Kup ksik Pole ksik


90 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

S ku temu trzy powody:


Licznik bierze pod uwag tylko liczb identycznych dokonanych transakcji, a wic
miara ta jest asymetryczna (szukalimy wanie takiego mechanizmu).
Dzielc przez pierwiastek kwadratowy z liczby transakcji dokonanych w kadym
wektorze, bierzesz pod uwag to, e wektor, w ktrym dokonano wszystkich
moliwych zakupw (nazwijmy go wektorem dostatku), jest bardziej oddalony
od innego wektora ni wektor, w ktrym dokonano tych samych transakcji,
ale nie wykonano wielu innych transakcji. Chcesz zgrupowa wektory klientw
o podobnych gustach, a nie znale wektor, ktry zawiera wektor innego klienta.
W przypadku danych binarnych wartoci podobiestw znajduj si w przedziale
od 0 do 1, a dwa wektory nie uzyskuj wartoci 1, o ile opisywane przez te wektory
transakcje nie s identyczne. W zwizku z tym 1 podobiestwo kosinusowe mona
okreli mianem odlegoci kosinusowej, ktra rwnie przyjmuje warto 0 lub 1.

Implementacja za pomoc Excela


Czas zaimplementowa podzia na grupy za pomoc techniki k-medioidw i obsug
odlegoci kosinusowej w Excelu.

UWAGA
Dzielenie na grupy za pomoc odlegoci kosinusowej jest okrelane rwnie mianem
sferycznego algorytmu k-rednich. W rozdziale 10. przyjrzysz si implementacji tego
algorytmu w jzyku R.

Dla zachowania cigoci przyjmijmy podzia na pi klastrw (k = 5).


Skopiuj arkusz 5MC. Utworzon kopi nazwij 5MedK. Moesz skasowa dane wygenerowane
przez narzdzie Solver, poniewa tym razem bdziemy korzysta z binarnych danych
definiujcych rodki klastrw.
Poza dodaniem ograniczenia do wartoci binarnych w oknie narzdzia Solver musisz
tylko zmodyfikowa formuy okrelajce odlego umieszczone w wierszach 34. 38.
Zacznij od komrki M34, w ktrej ma si znale odlego od klienta o nazwisku Adams
i rodka 1. klastra.
Aby policzy liczb wykonanych przez tego klienta transakcji, ktre pokrywaj si
z transakcjami opisujcymi 1. klaster, musisz skorzysta z formuy SUMA.ILOCZYNW i policzy
sum iloczynw dla komrek tych dwch kolumn. Jeeli obie porwnywane komrki
przyjmuj warto 0 lub obie te komrki przyjmuj rne wartoci, oznacza to, e
porwnywane dane transakcji rni si, ale jeeli w obu porwnywanych komrkach
znajdzie si warto 1, to zostanie ona zsumowana przez funkcj SUMA.ILOCZYNW
(w kocu 1 razy 1 to 1).

Kup ksik Pole ksik


Podzia na grupy za pomoc algorytmu k-medioidw i asymetryczny pomiar odlegoci 91

Pierwiastek kwadratowy z liczby transakcji, do ktrych doszo w danym wektorze,


mona obliczy za pomoc funkcji PIERWIASTEK przyjmujcej jako argument sum danego
wektora (SUMA), a wic formua obliczajca odlego ma nastpujc posta:
=1-SUMA.ILOCZYNW(M$2:M$33,$H$2:$H$33)/(PIERWIASTEK (SUMA(M$2:M$33))*PIERWIASTEK (SUMA($H$2:$H$33)))

Zauwa, e na pocztku formuy znajduje si zapis 1-, ktry zamienia podobiestwo


kosinusowe na odlego kosinusow. Obliczenie tej odlegoci, w przeciwiestwie
do odlegoci euklidesowej, nie wymaga zastosowania formu tablicowych.
W komrce M34 powiniene doda jeszcze instrukcj sprawdzania bdu, na wypadek
gdyby rodek klastra by zdefiniowany za pomoc samych zer:
=JEELI.BD(1-SUMA.ILOCZYNW(M$2:M$33,$H$2:$H$33)/(PIERWIASTEK (SUMA(M$2:M$33))*PIERWIASTEK
(SUMA($H$2:$H$33)));1)

Dodanie formuy JEELI.BD zapobiega dzieleniu przez 0. Jeeli z jakiego powodu


Solver dobierze rodki klastrw tak, e jeden z nich bdzie opisywany przez same zera,
to moesz zaoy, e taki rodek jest oddalony od wszystkiego o 1 (1 jest najwiksz
odlegoci, jak moemy zadeklarowa w systemie binarnym).
Teraz moesz skopiowa zawarto komrki M34 a do komrki M38, a nastpnie zmieni
odwoania z kolumny H na odwoania do kolejnych kolumn (I, J, K i L). Podobnie jak
w przypadku obliczania odlegoci euklidesowej moesz zastosowa odwoania bezwzgldne
($), dziki czemu bdziesz mg przecign formuy na pozostae komrki wiersza,
a adresy kolumn klastrw nie bd zmieniane.
W ten sposb uzyskasz arkusz 5MedK (rysunek 2.42), ktry jest bardzo podobny
do utworzonego wczeniej arkusza 5MC.

Rysunek 2.42. Arkusz 5MedK przed optymalizacj

W celu znalezienia rodkw klastrw otwrz narzdzie Solver i zmie ograniczenie


<= 1 komrek H2:L33 na binarna.

Kup ksik Pole ksik


92 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Kliknij przycisk Rozwi. Ustalanie optymalnych klastrw moe komputerowi zaj


nawet p godziny. Wygenerowane klastry bd przyjmoway tylko wartoci binarne,
a wic po sformatowaniu warunkowym komrki bd miay tylko dwa kolory.

Najlepsze oferty przy podziale na pi klastrw za pomoc median


Po zakoczeniu pracy narzdzia Solver uzyskasz parametry rodkw piciu klastrw.
Tym razem jedynki bd oznaczay oferty preferowane przez osoby przyporzdkowane
do danego klastra. Otrzymaem cakowit odlego na poziomie 42,8, ale wyniki
uzyskane przez narzdzie Solver uruchomione na Twoim komputerze mog oczywicie
odbiega od moich (rysunek 2.43).

Rysunek 2.43. Mediany piciu klastrw

Przeanalizujmy te klastry tak jak w przypadku klastrw uzyskanych za pomoc


algorytmu k-rednich. W tym celu skopiuj arkusz 5MC NajlepszeOfertyKlastrw
i nazwij go 5MedK NajlepszeOfertyKlastrw.
W nowej zakadce otwrz okno Znajdowanie i zamienianie i zmie 5MC na 5MedK.
Rozkad wierszy i kolumn jest w obu tych arkuszach identyczny, a wic formuy po
modyfikacji odwoa bd dziaay poprawnie.
Korzystamy z algorytmu ewolucyjnego, zatem uzyskane przez Ciebie klastry mog by
nieco inne od moich, jeeli chodzi o ich kolejno i skad, ale nie bd to z pewnoci
znaczce rnice. Czas przyjrze si klastrom utworzonym przez algorytm.
Po posortowaniu klastra 1. wida, e zawiera on klientw, ktrzy kupuj mae iloci win
(rysunek 2.44).
Do klastra 2. przypisano klientw, ktrzy kupuj wina musujce 11 najpopularniejszych
ofert dotyczyo win takich jak champagne, prosecco i espumante (rysunek 2.45). Warto
zauway, e grupowanie za pomoc algorytmu k-rednich (przy podziale na cztery i pi
grup) nie wygenerowao klastra mionikw wina musujcego.

Kup ksik Pole ksik


Podzia na grupy za pomoc algorytmu k-medioidw i asymetryczny pomiar odlegoci 93

Rysunek 2.44. Sortowanie klastra 1. klienci kupujcy mae iloci wina

Rysunek 2.45. Sortowanie klastra 2. mionicy win musujcych

Kup ksik Pole ksik


94 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

Klaster 3. zrzesza frankofilw. Pi najpopularniejszych ofert dotyczyo win pochodzcych


z Francji (rysunek 2.46). Czy oni naprawd nie wiedz, e najlepsze wina produkuje si
w Kalifornii?

Rysunek 2.46. Sortowanie klastra 3. frankofile

Wszystkie transakcje w klastrze 4. dotycz sprzeday duej iloci wina. Najpopularniejsze


oferty charakteryzuje duy rabat i to, e cena tych win ma tendencj wzrostow (rysunek 2.47).

Rysunek 2.47. Sortowanie klastra 4. 19 najpopularniejszych transakcji dotyczyo duych


iloci wina

Kup ksik Pole ksik


Podsumowanie 95

Klaster 5. ponownie zrzesza osoby kupujce wino pinot noir (rysunek 2.48).

Rysunek 2.48. Sortowanie klastra 5. najpopularniejszym winem jest pinot noir

Tym razem uzyskae bardziej czytelne wyniki. Stao si tak, poniewa zastosowae
algorytm k-medioidw i mierzye odlego w sposb asymetryczny obliczae
odlego kosinusow. Dziki tym rozwizaniom posegregowae klientw na podstawie
ich zainteresowa, a nie tego, co ich nie interesuje, i o to wanie nam chodzio.
Metoda obliczania odlegoci ma duy wpyw na uzyskane klastry.
Teraz moesz dokona importu podziau klientw do serwisu MailChimp.com
i stworzy spersonalizowane wersje newslettera skierowane do klientw przyporzdkowanych
do okrelonych klastrw. Powinno to pomc w lepszym dotarciu do kupujcych
i doprowadzi do zwikszenia sprzeday.

Podsumowanie
W tym rozdziale opisaem wiele praktycznych rzeczy. Przyjrzae si:
odlegoci euklidesowej;
optymalizacji centroidw za pomoc algorytmu k-rednich i narzdzia Solver;
procesowi analizy uzyskanych klastrw;
obliczaniu sylwetki podziau na dan liczb klastrw;
dzieleniu na klastry za pomoc algorytmu k-medioidw;

Kup ksik Pole ksik


96 Rozdzia 2. Analiza skupie. Cz I zastosowanie algorytmu centroidw

odlegoci mierzonej zgodnie z metryk miejsk (metryk Manhattanu)


odlegoci Hamminga;
mierze odlegoci opartej na podobiestwie kosinusowym.

Jeeli przebrne przez ten rozdzia, to powiniene umie dzieli dane na klastry,
a take okrela problemy biznesowe, ktre mona rozwiza za pomoc grupowania.
Dodatkowo nauczye si przygotowywa dane do dzielenia na klastry.
Dzielenie na klastry za pomoc algorytmu centroidw (k-rednich) jest uywane od
kilku dziesicioleci. Analiz danych klientw warto zacz od segmentacji za pomoc tej
metody. Niestety, nie jest to najbardziej wspczesna metoda grupowania. W rozdziale 5.
opisz zastosowanie teorii grafw do znajdowania podobiestw klientw w tym samym
zbiorze danych. Ponadto wyjd na chwil poza Excela i dokonam wizualizacji danych.
Jeeli chcesz rozwija swoj umiejtno korzystania z algorytmu k-rednich, to
pamitaj, e narzdzie Solver dostpne w Excelu moe pracowa tylko z 200 zmiennymi
decyzyjnymi, a wic warto, eby zacz uywa lepszego nieliniowego narzdzia Solver
(np. z wersji Premium Solver oferowanej przez serwis www.solver.com). Moesz rwnie
zacz pracowa w nieliniowej wersji Solvera, dostpnej w pakiecie LibreOffice, ktra
umoliwia dzielenie wielowymiarowych danych na du liczb grup.
Wikszo narzdzi statystycznych umoliwia analiz skupie. W jzyku R jest to
funkcja skmeans(), aczkolwiek moliwoci pakietu fastcluster (zawiera on m.in. algorytm
k-medioidw i zestaw rnych funkcji przeznaczonych do obliczania odlegoci) sprawiaj,
e korzysta si z niego czciej. W rozdziale 10. opisz zastosowanie pakietu skmeans
do wykonania sferycznego algorytmu k-rednich.

Kup ksik Pole ksik


Skorowidz

A simpleks, Patrz: metoda standardowy, 322, 325, 326


simpleks typu I, 257
additive smoothing, Patrz: Simplex LP, 46 typu II, 257
wygadzanie wykadnicze SVM, 274 waony, 300
agregacja, 280, 285, 294, 298, 299 analityk danych, 432 wspczynnika standardowy,
piekw decyzyjnych, 277 analiza 250, 251, 252
prostych regu decyzyjnych, danych, 40, 125, 181, 366 boosting, Patrz: wzmacnianie
Patrz: agregacja piekw eksploracyjna, 50
decyzyjnych
AIMMS, 141
skupie, 50, 51, 57, 60, 180, 366
autokorelacja, 335, 340, 356
C
algorytm cecha, Patrz: zmienna niezalena
centroidw, 51, 180
implementacja, 56 B centroid klasy, 51
CPLEX, 141
klaster, Patrz: klaster backlink, Patrz: link zwrotny
liczba skupie, 51, 52, 61,
74, 81
bag of words, Patrz: model
worka sw
D
najlepszy podzia, 54 bagged decision stumps, Patrz: dane
ewolucyjny, 66, 68, 138, 139, agregacja piekw decyzyjnych analiza, Patrz: analiza danych
154, 241 baza klientw, 49 eksploracja, 366
k-medioidw, 87, 90 biblioteka, 404 ilociowe, 233
k-rednich, Patrz: algorytm forecast, 419 kategoryczne, 233, 279
centroidw randomForest, 298, 299, kodowanie zero-jedynkowe,
sferyczny, 90, 404 411, 412 234
LP simpleks, 44, 66, 134, 137, ROCR, 415 miara
140, 155, 157 skmeans, 404, 405 skali, 374
maksymalizacji bd rodkowoci, 374
modularnoci, 180 autokorelacja, Patrz: nieoczyszczone, 274
Nieliniowa GRG, 138, 241 autokorelacja normalizacja, Patrz:
kwadratowy, 237, 240, 246 normalizacja

Kup ksik Pole ksik


436 Skorowidz

dane kolumny wstawianie, 61 funkcja


oczyszczanie, 366 kopiowanie aggregate, 407
reprezentacja numeryczna, 182 arkusza, 41 boxplot, 422
rozrzut, 374 danych, 24, 27 c, 398
skalowanie, 60 formu, 24 data.frame, 401
standaryzacja, 60 makro, 292, 359 factor, 402
szeregu czasowego, 315, 317 pasek stanu, 24 forecast, 419, 420
zbir rzadki, 247 Solver, Patrz: Solver getwd, 402
decision stump, Patrz: pieniek sortowanie, 35 glm, 410, 411
decyzyjny tabela przestawna, 36, 37 lofactor, 425
decyzja biznesowa, 264 tablica odwracanie, 40 logistyczna, 266
diagram Woronoja, 53 wersja, 22, 134, 161, 213 logitowa, 410
DocGraph, 181 wykres, 28 matrix, 399
dopasowanie, 247 Zablokuj grny wiersz, 23 ncol, 405
przypadkowe, 247 nieliniowa, Patrz:
znaczenie statystyczne, 247
drzewo binarne, 216 F optymalizacja nieliniowa
order, 409
dystrybuanta, 169 Facebook, 49, 180 performance, 415
Flickr, 50 plot, 416
E formua predict, 413, 414
INDEKS, 79, 139 prediction, 415
element
JEELI, 139 randomForest, 410, 411, 412
odlego osigalna, 386
LICZ.JEELI, 139 rbind, 400
odstajcy, 189, 244, 299, 365,
LICZ.WARUNKI, 288 read.csv, 403
366, 371, 372, 422, 423
MACIERZ.ILOCZYN, 249 row.names, 407
lokalnie, 385
MACIERZ.ODW, 249 setwd, 403
wykrywanie, 366, 368, 372,
MAX, 139, 154 skmeans, 405, 410
378, 379, 380, 383, 384, 385,
MAX.K, 139, 199 str, 401, 410
386, 387
MEDIANA, 139 summary, 399, 401, 410
e-mail, 49
MIN, 139 ts, 418
marketing, 56
ODCH.STANDARDOWE, varImpPlot, 413
estymacja maksymalna,
Patrz: MAP 375 which, 398, 407, 422
Excel, 393 PERCENTYL, 359 wica, 265, 267
arkusza kopiowanie, 41 PODAJ.POZYCJ, 65, 139 write.csv, 407
filtrowanie, 33, 35 PRZESUNICIE, 76, 139,
formatowanie komrek, 26 195, 196
REGLINP, 243, 325
G
formua
INDEKS, 30 ROZKAD.DWUM, 139 Gephi, 182, 184, 198, 220
PODAJ.POZYCJ, 30 ROZKAD.NORMALNY, Data Laboratory, 192
PRZESUNICIE, 31 139, 367 instalacja, 184
SUMA.ILOCZYNW, 39, ROZKAD.NORMALNY. okno programu, 185
40, 42 ODW, 172, 357 Google, 189
tablicowa, 39, 40 SUMA.JEELI, 139 graf, 140, 179, 180, 238, 372, 376
TRANSPONUJ, 40 tablicowa, 63 element odstajcy, Patrz:
WYSZUKAJ.PIONOWO, WYSZUKAJ.PIONOWO, 139 element odstajcy
31, 32 WYSZUKAJ.POZIOMO, 139 k najbliszych ssiadw,
WYSZUKAJ.POZIOMO, 31 Patrz: kNN

Kup ksik Pole ksik


Skorowidz 437

krawd, Patrz: krawd katalog roboczy, 402 link


modularno, 202, 205, 206, lista, 400 spam, Patrz: spam
208, 209, 212, 216, 220 macierz, 399 odnonikami
narzdzia, 182 pomoc, 395, 397 zwrotny, 189
nieskierowany, 182, 183 ramka danych, 400, 401, 402 local outliner factor, Patrz: LOF
numeryczna reprezentacja trenowanie modelu, 411 LOF, 385, 386, 387, 389
danych, 182 typ danych, 400, 401 logarytm prawdopodobiestwa,
r-ssiedztwa, 199, 201 wczytywanie danych, 402 270
skierowany, 182, 189 losowanie ze zwracaniem, 298
spoeczny, 180
K
stopie rozgazienia, 188
tworzenie, 187 k nearest neighbours, Patrz:
M
waony, 197 kNN macierz
wze, Patrz: wierzchoek KDD, 51 mnoenie, 249
wierzchoek, Patrz: klasa centroid, Patrz: centroid odwracania, 249
wierzchoek klasy pokrewiestwa, 183, 197
grupowanie, 180, Patrz te: klaster, 61 ssiedztwa, 182, 193
analiza skupie jako, 74 symetryczna, 183
aglomeracyjne, 208 sylwetka podziau, Patrz: waona, Patrz: macierz
podziaowe, 208, 209, 212, sylwetka podziau pokrewiestwa
216, 220 rodek, 66 SSCP, 251, 252
Gurobi, 141 klastryzacja, 61 w jzyku R, 399
klasyfikacja dokumentw, 97, 99 Mandrill, 98, 103
H klasyfikator, 274
bayesowski naiwny, 97, 99,
MAP, 103, 104
maximum a posteriori,
Hamminga odlego, Patrz: 103, 105, 114, 121 Patrz: MAP
odlego Hamminga saby, 280 mediana, 369, 374, 422
hipoteza zerowa, 247 trenowanie, 280 metadane, 57
Holta szereg liniowy, Patrz: kNN, 199, 378, 379, 380, 383 metoda
metoda Holta knowledge discovery in Holta, 327, 328
databases, Patrz: KDD k-odlegoci, 383, 384, 387
I kodowanie zero-jedynkowe, 233
korelogram, 339, 341
Louvain, 208
maksymalnej estymacji,
imputacja, 279 krawd, 192 Patrz: MAP
interquartile range, Patrz: IQR kocwka, 203 ruchomej redniej, 345
interwa, 314, 362 krzywa simpleks, 129
IQR, 368, 374 dzwonowa, 168, 169, 371 symulacji Monte Carlo, 172,
lasw losowych, 416 356
J ROC, 262, 263, 265, 311, 415 Tukeya, 368
ograniczenia, 371
jzyk
naturalny, 108, 112
L wygadzania wykadniczego,
314, 317
R, 299, 393 las losowy, 298, Patrz: model metryka
biblioteka, Patrz: biblioteka losowego lasu euklidesowa, 87
funkcja, Patrz te: funkcja leksem, 103, 108 Manhattanu, Patrz: metryka
wbudowana, 395 zliczanie, 112, 113 miejska
instalowanie, 394 linia trendu, 235, 236, 237, 325 miejska, 87

Kup ksik Pole ksik


438 Skorowidz

miara
O partycjonowanie hierarchiczne,
niespjnoci wza, 281 208, 209, 212, 216, 220
skali, 374 obrazu rozpoznawanie, 50 pieniek decyzyjny, 277, 280
rodkowoci, 374 odchylenie tworzenie, 288
miernik lokalny stopnia bezwzgldne rednie, 374 Pinterest, 49
oddalenia obserwacji, Patrz: LOF wiartkowe, 374 pot Tukeya, 368, 422
minimax, 154 standardowe, 60, 169, 322 podobiestwo kosinusowe, 89, 195
model obliczanie, 171 eliminowanie danych, 198, 199
Holta, Patrz: metoda Holta odkrywanie wiedzy z baz portal randkowy, 279
Holta-Wintersa, 342, 343, 344, danych, Patrz: KDD poziomica, 128, 129
345, 420 odlego prawdopodobiestwo, 100
liczba wspczynnikw, 247 euklidesowa, 61, 66, 87, 376 cakowite, 100
liniowy, 238, 279, 410, 411 obliczanie, 62 czci wsplnej, 101
trenowanie, 240 Hamminga, 88 logarytm, 270
losowego lasu, 277, 298, 412, kosinusowa, 88, 89, 90 mnoenie, Patrz: regua
416 obliczanie asymetryczne, 88 mnoenia
mnonika Holta-Wintersa, 343 odpowied prawdopodobiestwa
naiwnego klasyfikatora negatywna rozkad, Patrz: rozkad
bayesowskiego, Patrz: faszywie, 257 warunkowe, 100
klasyfikator bayesowski prawdziwie, 257 precyzja, 258
naiwny pozytywna prognoza, 356, 362
optymalizacji, 40, 54, 123, 124, faszywie, 232, 257, 261, nieobciona, 322
Patrz te: optymalizacja 262, 264 niepewno, Patrz: interwa
poziomica, 128, 129 prawdziwie, 232, 257, 258, tworzenie, 349
predykcyjny, 257
262, 264 w jzyku R, 417
czuo, 262
OpenSolver, 46, 66, 141, 161, prognozowanie, 313, 314, 417
precyzja, 258
170, 213, 244 program liniowy, 126
specyficzno, 259
OPL, 141 programowanie liniowe, 124, 127
warto progowa, 257
optymalizacja, 40, 66, 125 narzdzia, 141
regresji, 114, 229
liniowa, 44, 161 przetwarzanie jzyka
logistycznej, 265, 267, 272
matematyczna, 124 naturalnego, Patrz: NLP
sztucznej inteligencji, Patrz:
modularnoci grafu, 202, 205,
sztuczna inteligencja
worka sw, 99, 103, 108, 121
206, 208, 209, 212, 216, 220
nieliniowa, 44, 66, 137, 154,
R
zbir testowy, 255
zespoowy, 277, 312 161, 241 rachunek prawdopodobiestwa,
modelowanie zespolone, 277, 299 odchyleniamaksymalnego, 154 99, Patrz te:
ograniczenia wielkiego M, 179 prawdopodobiestwo
random forest, Patrz: model
N
P losowego lasu
nadprbkowanie, 232 Receiver Operating
neuro-linguistic programming, parametr Characteristic, Patrz: krzywa
Patrz: NLP alfa, 304, 318, 319, 320, 321, ROC
niedomiar 328, 343 regresja, 229
zmiennoprzecinkowy, 106 delta, 343 dopasowanie, Patrz:
NLP, 108, 112 gamma, 328, 343 dopasowanie
NodeXL, 182 k-odlego, 383 liniowa, 236, 272, 274, 325
normalizacja, 373 wygadzajcy, 354 element odstajcy, 244

Kup ksik Pole ksik


Skorowidz 439

obliczanie, 240 sowo o prawdopodobiestwie


REGLINP, 243 rzadkie, 106, 118 cakowitym, 100
wielokrotna, 249 zawarto leksykalna, 112 Twitter, 49
wspczynnik, 237, 238, 325 Solver, 41, 46, 54, 66, 132, 141, 240
wspczynnik determinacji,
245, 246, 247
argument, 43
ograniczenie, 134, 151
U
wyraz wolny, 237, 238 mikkie, 153 uczenie maszynowe
logistyczna, 265, 267, 270, spam odnonikami, 189 nadzorowane, 50, 97, 228,
272, 274 specyficzno, 259, 262 229, 313
median, 244 staa wygadzajca, 317, 318, 328 nienadzorowane, 50, 180, 366
regua statystyka
decyzyjna, 277, 280, 281, 289,
292, 410
F, 247, 248
t, 253, 254
W
wzmacnianie, 299, 300, 304, Walda, 272 warto
308 stopie swobody, 234, 247 alfa, Patrz: parametr alfa
zestaw, 284 suma brakujca, 279
acuchowa, 101 kwadratw, 238, 240 ekstremalna, 365, 370, 371
mnoenia wyjaniona, 246 progowa, 257
prawdopodobiestwa, 101 reszt kwadratw, 245 rednia, Patrz: rednia
r-neighborhood, Patrz: sylwetka podziau, 74 rodkowa, Patrz: mediana
graf r-ssiedztwa obliczanie, 75, 77, 79, 80, 85 weak learner, Patrz: klasyfikator
rozkad, 168 szereg saby
F, 247 czasowy, 315, 317, 328 wze, 192
Gaussa, Patrz: rozkad liniowy Holta, Patrz: metoda miara niespjnoci, Patrz:
normalny Holta miara niespjnoci wza
normalny, 168, 371 sztuczna inteligencja, 123, 125, stopie, 188
odwrotno, 172 227, 228, 229, 233, 237, 274 wchodzcy, 189, 380
znormalizowany, 374 wychodzcy, 189
prawdopodobiestwa, 168
rodek, Patrz: rednia
wielkie M, 158, 159, 163, 213
optymalizacja ograniczenia,
t, 254 rednia, 169, 369 Patrz:
wielomodalny, 372 ucinana, 374 optymalizacja:ograniczenia
rozpoznawanie obrazw winsorowska, 374 wielkiego M
podobnych, 50 wielokomrka, 127
rozstp wiartkowy, Patrz: IQR
T rg, 129
wielotyp, Patrz: wielokomrka
rynek segmentacja, 50
tabela przestawna, 59 worek sw, Patrz: model worka
S test
F, 247, 249
sw
Woronoja diagram, Patrz:
segmentacja rynku, 50 t, 250, 253, 254, 325 diagram Woronoja
SES, 317, 319 trend, 325 wygadzanie
sezonowo, 343, 344, 347 trjrednia prby, 374 wykadnicze, 106, 314
sie spoecznociowa, 180, 189 Tukey fences, Patrz: pot Tukeya podwjne, Patrz: metoda
silhouette, Patrz: sylwetka twierdzenie Holta
podziau Bayesa, 102, 103 potrjne, Patrz: model
Single Exponential Smoothing, centralne graniczne, 168 Holta-Wintersa
Patrz: SES proste, Patrz: SES

Kup ksik Pole ksik


440 Skorowidz

wykres
Z binarna, 157, 161, 284
wachlarza, 360, 420 ograniczenia, 96, 141
warstwowy, 361 zmienna kategoryczna, Patrz: dane
wzmacnianie, 277, 299, 312 decyzyjna, 67, 81, 126, 130, kategoryczne
132, 139, 146, 147, 148, 151, liczba stopni swobody, 234
167, 209, 210, 212, 214 niezalena, 230, 237, 284, 325
zalena, 230, 251, 325

Kup ksik Pole ksik

You might also like