Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00316 007380 11258704 na godz. na dobę w sumie
Mistrz analizy danych. Od danych do wiedzy - ebook/pdf
Mistrz analizy danych. Od danych do wiedzy - ebook/pdf
Autor: Liczba stron: 440
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-3358-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> inne
Porównaj ceny (książka, ebook (-20%), audiobook).

Nauka o danych, znana również pod nazwą data science, jest stosunkowo nową, interdyscyplinarną dziedziną, zajmującą się różnymi technikami analizy danych, ich implementacją i wykorzystywaniem do różnych celów. Zalety nauki o danych doceniają specjaliści z wielu branż: analitycy biznesowi, statystycy, architekci oprogramowania i osoby zajmujące się sztuczną inteligencją. Tak naprawdę ta dziedzina nie koncentruje się na kodowaniu i bazach danych, ale raczej na metodach wyłuskiwania z danych najróżniejszych cennych informacji. Wartość tej wiedzy niejednokrotnie okazuje się ogromna.

Niniejsza książka jest przystępnym wprowadzeniem do nauki o danych. Jest przeznaczona dla osób, które chcą stosować techniki analizy danych w biznesie. Te techniki, opisane na podstawie praktycznych przypadków, to m.in. optymalizacja, prognozowanie i symulacja, a także sztuczna inteligencja, teoria grafów, analiza skupień i wykrywanie anomalii. Dzięki tej książce nie tylko zrozumiesz zasady analizowania danych, ale także nauczysz się wybierać technikę właściwą do rozwiązania danego problemu. Poznasz też techniki pracy z prototypami. Co ciekawe, niemal wszystkie opisane tu metody zostały zaprezentowane w arkuszu kalkulacyjnym.

W książce opisano m.in.

Wyciśnij z danych każdą kroplę wiedzy!


John W. Foreman — jest głównym analitykiem danych w MailChimp.com. Udziela również porad dotyczących analizy danych takim podmiotom jak Coca-Cola czy Intercontinental Hotels, a także oraz amerykańskim agendom rządowym, włączając w to DoD, IRS, DHS i FBI. Często wygłasza prelekcje o rozwiązaniach analitycznych w biznesie.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Data Smart: Using Data Science to Transform Information into Insight Tłumaczenie: 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 zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/mianda.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/mianda Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści O autorze O korektorach merytorycznych Podziękowania Wstęp Co ja tutaj robię? Praktyczna definicja analizy danych Chwila, chwila. A co z big data? Kim jestem? Kim jesteś? Na szczęście będziesz pracować tylko w arkuszu kalkulacyjnym Ale arkusze kalkulacyjne są takie staromodne! Korzystaj z programu Excel lub pakietu LibreOffice Konwencje typograficzne przyjęte w tej książce Zaczynamy 1. Wszystko, co chciałeś wiedzieć o arkuszu kalkulacyjnym, ale bałeś się o to zapytać Przykładowe proste dane Szybkie przeglądanie arkusza i klawisz Ctrl Szybkie kopiowanie danych i formuł Formatowanie komórek Wklejanie wartości specjalnych Wstawianie wykresów 11 11 12 13 13 14 15 16 16 17 18 18 19 20 21 22 23 24 26 27 28 Poleć książkęKup książkę 6 Spis treści Menu Znajdź i menu Zamień Formuły przeznaczone do wyszukiwania i wyciągania wartości Stosowanie formuły WYSZUKAJ.PIONOWO do łączenia danych Filtrowanie i sortowanie Stosowanie tabel przestawnych Korzystanie z formuł tablicowych Rozwiązywanie problemów za pomocą narzędzia Solver OpenSolver — chciałbym, abyśmy go nie potrzebowali, ale… Podsumowanie 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów do segmentowania bazy klientów Dziewczyny tańczą z dziewczynami, a chłopcy drapią się po łokciach Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu Handel winem Początkowy zbiór danych Określanie tego, co chcemy mierzyć Zacznij od czterech grup Odległość euklidesowa — pomiar odległości w linii prostej Odległość dla wszystkich! Określanie położenia środków klastrów Analiza uzyskanych wyników Ustalanie najlepszej oferty dla danego klastra Sylwetka podziału — dobry sposób na określenie optymalnej liczby klastrów A może potrzebujesz pięciu klastrów? Dzielenie klientów na pięć klastrów za pomocą narzędzia Solver Ustalanie najlepszych ofert dla wszystkich pięciu klastrów Określanie sylwetki podziału na pięć klastrów Podział na grupy za pomocą algorytmu k-medioidów i asymetryczny pomiar odległości Podział na grupy za pomocą metody k-medioidów Stosowanie lepszego sposobu pomiaru odległości Implementacja za pomocą Excela Najlepsze oferty przy podziale na pięć klastrów za pomocą median Podsumowanie 3. Naiwny klasyfikator bayesowski i niezwykła lekkość bycia idiotą Jeżeli nazwiesz swój produkt Mandrill, to uzyskasz zaszumione informacje zwrotne Najszybsze na świecie wprowadzenie do rachunku prawdopodobieństwa Obliczanie prawdopodobieństwa warunkowego Prawdopodobieństwo części wspólnej, reguła łańcuchowa i niezależność A co, jeżeli sytuacje są zależne od siebie? Twierdzenie Bayesa 29 30 32 33 36 39 40 46 47 49 51 56 56 57 57 61 61 64 66 68 69 74 81 81 82 85 87 87 87 90 92 95 97 97 100 100 101 102 102 Poleć książkęKup książkę Spis treści 7 Tworzenie modelu sztucznej inteligencji za pomocą twierdzenia Bayesa Zwykle zakłada się, że wysokopoziomowe prawdopodobieństwa klas są sobie równe Kilka innych drobnostek Czas rozpocząć zabawę z Excelem Usuwanie nieistotnych znaków interpunkcyjnych Dzielenie na znakach spacji Zliczanie leksemów i obliczanie prawdopodobieństw Zbudowaliśmy model. Skorzystajmy z niego! Podsumowanie 4. Modelowanie optymalizacyjne — „świeżo wyciśnięty” sok nie zamiesza się sam Dlaczego analityk danych powinien wiedzieć, czym jest optymalizacja? Zacznijmy od prostego kompromisu Przedstawienie problemu w formie wielokomórki Rozwiązywanie problemu poprzez przesuwanie poziomicy Metoda simpleks — kręcenie się wokół rogów Praca w Excelu Na końcu tego rozdziału kryje się potwór Szklanka świeżego soku pomarańczowego prosto z drzewa… z przystankiem na modelowanie Trzeba skorzystać z modelu mieszania Zacznijmy od specyfikacji soków Stałość produktu wyjściowego Wprowadzanie danych do Excela Określanie problemu w dodatku Solver Obniżanie standardów Usuwanie cuchnącego problemu — minimalizacja maksymalnych odchyleń Warunki i ograniczenie „wielkiego M” Mnożenie zmiennych — skorzystajmy ze 110 mocy Excela Modelowanie ryzyka Dane pochodzące z rozkładu normalnego Podsumowanie 5. Analiza skupień. Część II — grafy i analiza sieci Czym jest graf sieci? Wizualizacja prostego grafu Krótkie wprowadzenie do Gephi Instalacja Gephi i przygotowanie pliku Budowa grafu Stopień rozgałęzienia Elegancki wydruk Edycja danych grafu 103 105 106 107 108 109 112 114 120 123 124 125 126 128 129 130 140 141 142 142 144 145 148 150 154 156 160 168 168 176 179 180 181 184 184 185 188 190 192 Poleć książkęKup książkę 8 Spis treści Tworzenie grafu na podstawie danych sprzedaży wina Tworzenie macierzy podobieństwa kosinusowego Generowanie grafu r-sąsiedztwa Jaka jest wartość krawędzi? Nagradzanie i karanie krawędzi — modularność grafu Czym jest punkt, a czym kara? Tworzenie arkusza punktacji Czas dokonać podziału na grupy Podział 1. Podział 2. — kontratak Podział 3. — zemsta Grupy — kodowanie i analiza Tam i z powrotem — czas na Gephi Podsumowanie 6. Regresja jako przodek nadzorowanego uczenia maszynowego i sztucznej inteligencji Co? Jesteś w ciąży? Nie oszukuj siebie Przewidywanie ciąży klientów na podstawie regresji liniowej Zbiór cech Tworzenie treningowego zbioru danych Tworzenie zmiennych fikcyjnych Pobawmy się regresją liniową Parametry regresji liniowej: współczynnik determinacji, test F i test t Przewidywanie ciąży na nowym zbiorze danych i sprawdzanie jakości modelu Przewidywanie ciąży klientów za pomocą regresji logistycznej Najpierw musisz określić funkcję wiążącą Tworzenie funkcji logistycznej i ponowna optymalizacja Praca nad prawdziwą regresją logistyczną Wybór modelu — porównywanie skuteczności regresji liniowej i regresji logistycznej Dalsza lektura Podsumowanie 7. Modele zespołowe — dużo nie najlepszej pizzy Korzystanie z danych z rozdziału 6. Agregacja — losuj, trenuj, powtórz Pieniek decyzyjny to niezbyt ładne określenie głupiego modelu To wcale nie wydaje się takie głupie! Więcej mocy! Czas rozpocząć proces trenowania Ocena działania modelu zespolonego 193 195 197 202 202 206 208 208 214 215 216 220 225 227 227 228 229 230 231 233 235 244 255 265 265 266 270 272 274 275 277 278 280 280 281 283 284 293 Poleć książkęKup książkę Spis treści 9 Wzmacnianie — jeżeli uzyskałeś niesatysfakcjonujące wyniki, to wzmocnij swój model i uruchom go jeszcze raz Trenowanie modelu — każda cecha ma swoje pięć minut Wydajność modelu wzmacnianych reguł decyzyjnych Podsumowanie 8. Prognozowanie — oddychaj spokojnie, i tak nie wygrasz Hossa na rynku sprzedaży mieczy Szeregi czasowe Zacznij od prostego wygładzania wykładniczego Przygotowanie arkusza prognozy prostego wygładzania wykładniczego Być może dane zawierają trend Podwójne wygładzanie wykładnicze (metoda Holta) Metoda Holta w arkuszu kalkulacyjnym To wszystko? Analiza autokorelacji Wielokrotne wygładzanie wykładnicze — model Holta-Wintersa Określanie początkowych wartości poziomu, trendu i sezonowości Tworzenie prognozy Czas na optymalizację Powiedz mi, że to już koniec. Proooszę! Interwały prognozy Tworzenie wykresu warstwowego wachlarza wartości Podsumowanie 9. Wykrywanie obserwacji odstających — to, że jakiś element jest inny od pozostałych, nie oznacza, że jest nieistotny Element odstający to też człowiek Fascynująca sprawa Hadlumów Metoda Tukeya Implementacja metody Tukeya w arkuszu kalkulacyjnym Ograniczenia tej prostej techniki Nie tragiczny, ale słaby we wszystkim Przygotowywanie danych do utworzenia wykresu Tworzenie grafu Określanie k najbliższych sąsiadów Pierwsza metoda wykrywania elementów odstających grafu — skorzystaj ze stopnia wchodzącego Druga metoda wykrywania elementów odstających grafu — zgłębianie niuansów za pomocą k-odległości Trzecia metoda wykrywania elementów odstających grafu — lokalny miernik stopnia oddalenia obserwacji Podsumowanie 298 299 307 311 313 314 315 317 319 325 327 329 335 342 345 349 354 356 356 360 362 365 366 367 368 368 371 372 373 376 378 379 383 385 391 Poleć książkęKup książkę 10 Spis treści 10. Przejście z arkusza kalkulacyjnego do języka R Przygotowanie środowiska i początek pracy w języku R Wprowadzanie prostych danych Wczytywanie danych do R Prawdziwa analiza danych Sferyczny algorytm k-średnich wywołany za pomocą zaledwie kilku linii kodu Budowanie modeli sztucznej inteligencji na podstawie danych zakupów (wykrywanie ciąży) Prognozowanie w R Wykrywanie elementów odstających Podsumowanie Wnioski Gdzie ja jestem? Co się stało? Zanim odłożysz tę książkę Poznaj problem Potrzebujemy więcej tłumaczy Uważaj na trójgłowe monstrum: narzędzia, wydajność i perfekcjonizm Nie jesteś najważniejszą osobą w firmie Bądź kreatywny Skorowidz 393 394 395 402 404 404 410 417 421 426 427 427 428 428 429 430 432 433 435 Poleć książkęKup książkę 2 Analiza skupień Część I — zastosowanie algorytmu centroidów do segmentowania bazy klientów Pracuję w branży zajmującej się marketingiem za pomocą poczty elektronicznej dla serwisu MailChimp.com. Pomagamy naszym klientom w wysyłaniu newsletterów do ich odbiorców. Za każdym razem, gdy któryś z klientów używa określenia „uderzenie e-mailem”, coś we mnie umiera. Dlaczego? Ponieważ adresy e-mail nie są już czarnymi skrzynkami, do których można kierować zbiorcze „uderzenie”. W e-mail marketingu (tak jak w przypadku innych form generowania zainteresowania za pomocą internetu, np. przy użyciu postów publikowanych w serwisach takich jak Twitter, Facebook czy Pinterest) firmy otrzymują informację zwrotną na temat tego, jak odbiorcy angażują się w ich kampanię na poziomie indywidualnym poprzez śledzenie kliknięć, zakupów elektronicznych czy udostępnień w serwisach społecznościowych. Te dane nie są szumem. One charakteryzują Twoich odbiorców, ale na początku mogą wydawać się zawiłe i niezrozumiałe. Jak zebrać dane o transakcji od klientów (odbiorców, użytkowników, abonentów, mieszkańców itd.) i zastosować je w celu ich zrozumienia? Mając do czynienia z dużą grupą ludzi, trudno jest zrozumieć każdego klienta, zwłaszcza gdy każdy z nich komunikuje się z Tobą w inny sposób. Nawet jeżeli byś rozumiał każdego klienta na poziomie osobistym, to i tak trudno byłoby to zastosować w praktyce. Musisz skorzystać z bazy klientów i znaleźć złoty środek pomiędzy „uderzaniem” do każdego tak, jakby był bezosobową jednostką, a rozumieniem wszystkiego o każdym i tworzeniem zindywidualizowanych ofert. Pomoc w znalezieniu tego złotego środka Poleć książkęKup książkę 50 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów może stanowić analiza skupień, umożliwiająca podział klientów na grupy (segmentację rynku), do których można kierować wybrane oferty. Analiza skupień polega na zebraniu pewnej liczby obiektów i podzieleniu ich na grupy składające się z obiektów podobnych do siebie. Przyglądając się różnym grupom — analizując ich podobieństwa i różnice pomiędzy nimi — możesz wyciągnąć sporo praktycznych informacji z danych, które na początku wyglądały dość bezpostaciowo. Informacje te mogą pomóc Ci w podjęciu lepszych i bardziej szczegółowych decyzji. Taką analizę skupień określamy mianem eksploracyjnej analizy danych — ma ona na celu ustalenie trudnych do zauważenia zależności w dużym zbiorze danych. Ustalanie zależności pomiędzy klientami przydaje się w rozmaitych przedsięwzięciach: umożliwia polecanie filmów na podstawie zachowań innych osób z grupy o podobnym guście, pozwala na identyfikację miejsc, w których najczęściej dochodzi do przestępstw, a także sprawia, że łatwiej jest zaproponować środek finansowy gronu osób, które mogą w niego potencjalnie zainwestować. Jednym z moich ulubionych zastosowań analizy skupień jest tworzenie algorytmów umożliwiających komputerowi rozpoznawanie podobnych do siebie obrazów. Algorytmy takie mogą się okazać przydatne w serwisach przeznaczonych do udostępniania zdjęć, takich jak np. Flickr. Ich użytkownicy mogą umieszczać tak dużo zdjęć, że standardowe nawigowanie pomiędzy nimi staje się trudne. Techniki analizy skupień pozwalają na grupowanie obrazów podobnych do siebie. Dzięki nim użytkownicy mogą łatwiej znaleźć interesujący ich obraz. NADZOROWANE I NIENADZOROWANE UCZENIE MASZYNOWE Rozpoczynając eksploracyjną analizę danych, nie wiesz jeszcze, czego szukasz. Jesteś od- krywcą, jak Krzysztof Kolumb. Możesz powiedzieć, że jakichś dwóch klientów wygląda podobnie, ale nie wiesz, jak najlepiej podzielić bazę klientów. W związku z tym proces, w którym prosisz komputer o posegmentowanie bazy klientów, określamy mianem niena- dzorowanego uczenia maszynowego — nie „nadzorujesz” komputera, informując go o tym, jak ma wykonać swoją pracę. Przeciwieństwem tego procesu jest nadzorowane uczenie maszynowe, z którego korzy- stamy, gdy chcemy, aby sztuczna inteligencja wygenerowała pierwszą stronę naszego rapor- tu. Jeżeli wiem, że chcę podzielić klientów na dwie grupy: tych, którzy prawdopodobnie coś kupią, i tych, którzy prawdopodobnie nie dokonają zakupu, i dostarczam komputerowi przykłady takich klientów z przeszłości, a następnie proszę go o podzielenie nowych klien- tów na takie dwie grupy, to praca komputera jest wtedy nadzorowana. Nadzór polega na podzieleniu się z komputerem dotychczasową wiedzą na temat klientów i przedstawieniu mu sposobu pomiaru różnic i podobieństw zachodzących po- między klientami. Poleć książkęKup książkę Dziewczyny tańczą z dziewczynami, a chłopcy drapią się po łokciach 51 W tym rozdziale chciałbym się przyjrzeć najpopularniejszej technice analizy skupień — algorytmowi centroidów (k-średnich) opracowanemu w latach 50. XX w. Stał się on najpopularniejszym algorytmem analizy skupień służącym do odkrywania wiedzy z baz danych (ang. knowledge discovery in databases — KDD) stosowanym przez podmioty prywatne, a także agendy rządowe. Z punktu widzenia matematyki algorytm centroidów nie jest najbardziej rygorystyczną techniką. Opiera się on na praktyczności i logice, które można dostrzec w kuchni soul food. Nie jest ona tak wyrafinowana jak kuchnia francuska, ale niektóre jej dania są przepyszne. Analiza skupień za pomocą algorytmu centroidów to mieszanina matematyki i opisowości. Jej ogromną zaletą jest intuicyjna prostota. Aby zrozumieć działanie tego algorytmu, przeanalizujmy prosty przykład. Dziewczyny tańczą z dziewczynami, a chłopcy drapią się po łokciach Celem analizy skupień za pomocą algorytmu centroidów jest wyznaczenie pewnych punktów w przestrzeni i podzielenie ich na k grup (k jest dowolnie wybraną liczbą). Każda z tych k grup jest definiowana przez punkt znajdujący się w jej środku. Punkt ten można porównać do flagi, na której ktoś wyhaftował napis: „Hej, to środek mojej grupy, przyłącz się do mnie, jeżeli jest ci bliżej do tej flagi niż do innych flag”. Taki środek grupy (formalnie określany mianem centroidu klasy) jest średnią. W związku z tym algorytm centroidów często określany jest mianem algorytmu k-średnich. Przyjrzyjmy się przykładowej potańcówce szkolnej. Bardzo przepraszam, jeżeli przypomniałem Ci o horrorze licealnych potańcówek. Na rysunku 2.1 przedstawiono uczniów McAcne Middle School uczestniczących w szkolnej potańcówce typu „podmorska gala”. Abyś mógł sobie lepiej wyobrazić tę sytuację, umieściłem też zdjęcie parkietu. Oto przykładowa lista piosenek, przy których będą się bawić ci przyszli liderzy wolnego świata (możesz 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. Poleć książkęKup książkę 52 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Rysunek 2.1. Uczniowie na parkiecie dyskoteki szkolnej Algorytm centroidów wymaga określenia liczby skupień, na które chcemy posegregować uczestników potańcówki. Na początek spróbujmy podzielić ich na trzy skupienia (w dalszej części tego rozdziału dowiesz się, jak dobrać liczbę skupień — parametr k). Algorytm umieści na podłodze trzy flagi — zacznie pracę od jakiegoś początkowego, wykonywalnego rozwiązania. Na rysunku 2.2 przedstawiono takie rozwiązanie w postaci trzech czarnych kółek. Rysunek 2.2. Początkowe ułożenie środkowych punktów skupień Poleć książkęKup książkę Dziewczyny tańczą z dziewczynami, a chłopcy drapią się po łokciach 53 Algorytm centroidów przypisuje tancerzy do najbliższego punktu, a więc pomiędzy dowolnie wybranymi skupieniami możliwe jest narysowanie linii oddzielających osoby przypisane do jednego skupienia od osób przyporządkowanych do innego skupienia (rysunek 2.3). Rysunek 2.3. Linie symbolizujące granice skupień Na podstawie tych trzech linii demarkacyjnych możesz przypisać tancerzy do poszczególnych grup i odpowiednio ich pocieniować (rysunek 2.4). Diagram, na którym przestrzeń podzielono na obszary przypisane do środków skupień, nazywamy diagramem Woronoja. Rysunek 2.4. Podział na obszary skupień można przedstawić za pomocą różnych sposobów cieniowania na diagramie Woronoja Poleć książkęKup książkę 54 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Ten początkowy podział nie jest najlepszy, prawda? Przestrzeń została podzielona w dziwny sposób — lewa dolna grupa jest pusta i bardzo dużo osób znalazło się na granicy grup środkowej i górnej. Algorytm centroidów dokonujący analizy skupień będzie dzielił parkiet na trzy części, aż uzyska najlepszy podział. Czym charakteryzuje się „najlepszy podział”? Każdy z uczestników imprezy znajduje się w jakiejś odległości od środka skupienia. Za najlepszy podział można uznać taki, przy którym średnia odległość uczestnika od przypisanego do niego środka skupienia jest najmniejsza. Zgodnie z tym, co napisałem w rozdziale 1., słowo „minimalizacja” oznacza konieczność zastosowania modelu optymalizacji w celu uzyskania optymalnego rozmieszczenia środków skupień, a więc w tym rozdziale będziesz korzystać z narzędzia Solver w celu przesuwania środków skupień. Solver znajduje właściwe pozycje środków skupień, przesuwając je w sposób uporządkowany i inteligentny — dokonując tych operacji, rejestruje liczbę dobrych przyporządkowań i znajduje najlepsze pozycje, łącząc dane uzyskane w wyniku tych operacji. Diagram widoczny na rysunku 2.4 wygląda nieszczególnie, ale Solver mógłby przestawić środki skupień tak, aby uzyskać diagram pokazany na rysunku 2.5. Na tym rysunku zmniejszono nieco średnie odległości środków skupień od przyporządkowanych do nich tancerzy. Rysunek 2.5. Środki skupień zostały odrobinę przesunięte Poleć książkęKup książkę Dziewczyny tańczą z dziewczynami, a chłopcy drapią się po łokciach 55 Na koniec Solver zapewne doszedłby do wniosku, że środki skupień powinny znajdować się w środku trzech grup uczestników imprezy (rysunek 2.6). Rysunek 2.6. Optymalny podział uczestników dyskoteki na grupy Super! Tak właśnie powinien wyglądać idealny efekt analizy skupień. Poszczególne środki skupień znajdują się w środku poszczególnych grup tancerzy, dzięki czemu zminimalizowano średnią odległość tancerza od środka skupienia, do którego jest przypisany. Po uzyskaniu podziału na grupy czas przejść do najciekawszego etapu pracy — spróbuj zrozumieć, co oznacza każde skupienie. Gdybyś analizował kolor włosów tańczących, ich poglądy polityczne czy prędkość, z jaką potrafią biegać, to uzyskane przed chwilą skupienia nie miałyby sensu, ale gdybyś zwrócił uwagę na płeć i wiek uczestników przyporządkowanych do poszczególnych grup, zauważyłbyś pewne prawidłowości. Mała grupa znajdująca się w dolnej części parkietu to osoby starsze — prawdopodobnie są to opiekunowie osób bawiących się na dyskotece. Grupa po lewej stronie to sami młodzi mężczyźni, a grupa po prawej to same młode kobiety. Wszyscy boją się tańczyć z osobami o przeciwnej płci. No dobrze. Algorytm centroidów umożliwił podział osób znajdujących się na parkiecie na grupy, a także zrozumienie przyczyn takiego podziału. Być może myślisz sobie: „To głupie, rozwiązanie zaprezentowanego problemu znałem od początku”. Masz rację. Tak było w tym przypadku. To tylko przykładowe zagadnienie, które można zrozumieć, patrząc na rysunek. Wszystko jest przedstawione w przestrzeni dwuwymiarowej, którą da się z łatwością ogarnąć wzrokiem. Poleć książkęKup książkę 56 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów A teraz wyobraź sobie, że prowadzisz sklep mający w ofercie kilka tysięcy produktów. Niektórzy z Twoich klientów kupili w ciągu kilku ostatnich lat jedną lub dwie rzeczy, a inni zakupili w tym czasie kilkadziesiąt artykułów. Co zrobić w sytuacji, w której klienci kupowali różne towary? Jak rozplanować je na „sklepowym parkiecie”? Przestrzeń, w której musiałbyś dokonać takiej analizy, nie jest dwu- ani trójwymiarowa. Składa się ona z tysięcy wymiarów utworzonych przez produkty, które mogły być kupione lub nie przez każdego z klientów. Zapewne widzisz już problem związany z tym przykładem — nie da się go rozwiązać „na oko”. Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu Przejdźmy do jakiegoś bardziej praktycznego zastosowania algorytmu k-średnich. Zajmuję się e-mail marketingiem, a więc przedstawię Ci przykład zadania, z którym zmierzyłem się, pracując w MailChimp.com. Zaprezentowany przeze mnie przykład można zastosować w przypadku pracy z danymi ze sprzedaży detalicznej, danymi dotyczącymi akcji reklamowej, danymi wyciągniętymi z mediów społecznościowych itd. Można z niego skorzystać, analizując w zasadzie dowolny typ danych w celu dotarcia do klienta z odpowiednim materiałem marketingowym. Handel winem Wyobraź sobie, że mieszkasz w New Jersey i pracujesz w firmie Joey Bag O’ Donuts Wholesale Wine Emporium zajmującej się importem win i dostarczaniem ich do wybranych sklepów na terytorium USA. Biznes opiera się na tym, że Joey Bag podróżuje po świecie, szukając niezwykle opłacalnych ofert sprzedaży dużych ilości wina. Joey dostarcza je do New Jersey, a Ty masz za zadanie sprzedać je sklepom, uzyskując jak największy dochód. Docierasz do klientów na różne sposoby: korzystasz z serwisów Facebook i Twitter, a nawet wysyłasz oferty bezpośrednio za pośrednictwem poczty elektronicznej. Z ostatniego rozwiązania korzysta większość firm. W ubiegłym roku wysyłałeś do swoich klientów comiesięczny newsletter. Każda taka wiadomość przedstawia dwie lub trzy oferty związane ze sprzedażą wina — jedna z nich może dotyczyć np. szampana, a druga francuskiego wina malbec. Niektóre z ofert są naprawdę korzystne: umożliwiają osiągnięcie zysku ze sprzedaży na poziomie 80 . W sumie w tym roku zaproponowałeś 32 oferty. Wszystkie spotkały się z zainteresowaniem klientów. To, że interes idzie dobrze, nie oznacza, że nie może iść lepiej. Warto byłoby poznać nieco bliżej swoich klientów. Oczywiście analizując dane dotyczące określonej transakcji, możesz się dowiedzieć, że osoba o nazwisku Adams kupiła w lipcu pewną ilość wina espumante ze zniżką 50 , ale nie wiesz, czy zakup został dokonany, ponieważ kupującemu Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 57 spodobało się to, że mógł kupić tylko jedno pudełko z sześcioma butelkami, czy może uznał, że cena jest atrakcyjna, czy też doszedł do wniosku, że cena tego produktu ma tendencję wzrostową. Warto byłoby podzielić klientów na grupy skupiające podmioty dokonujące podobnych transakcji. Mógłbyś wtedy wysyłać do każdej grupy newsletter zoptymalizowany pod kątem danego segmentu rynku. Taki newsletter mógłby prezentować w pierwszej kolejności te oferty, które potencjalnie bardziej interesują daną grupę odbiorców, co mogłoby zwiększyć sprzedaż. Jak podzielić listę klientów na segmenty? Od czego zacząć? Podziału listy można dokonać za pomocą komputera. Analiza skupień umożliwia uzyskanie optymalnego podziału klientów na grupy, a wtedy będziesz mógł odkryć przyczynę takiego podziału i wybrać najlepsze grupy docelowe dla przygotowanych ofert. Początkowy zbiór danych UWAGA W tym rozdziale będę korzystał ze skoroszytu programu Excel o nazwie Wina.xlsx. Możesz go pobrać ze strony: ftp://ftp.helion.pl/przyklady/mianda.zip. Plik zawiera dane, które będę przetwarzał w tym rozdziale (możesz na nich pracować podczas lektury), a także ar- kusze z przetworzonymi danymi prezentujące wyniki opisanych przeze mnie operacji (mo- żesz je przeglądać bez konieczności samodzielnego wprowadzania formuł). Zacznijmy od przyjrzenia się dwóm interesującym zbiorom danych:  Metadane każdej oferty zapisane w formie arkusza kalkulacyjnego. Zawierają one informacje określające rodzaj wina, minimalną liczbę butelek, jaką można kupić, wartość udzielonego rabatu, kraj pochodzenia oraz to, czy cena danego wina przekroczyła swoją wartość szczytową. Dane te zapisano w zakładce DaneOfert (rysunek 2.7). Jako pracownik wiesz, którzy klienci skorzystali z danej oferty, a więc możesz wpisać te dane do kolejnego arkusza. W zakładce Transakcje umieszczono nazwiska klientów wraz z informacją o tym, z której oferty skorzystali (rysunek 2.8).  Określanie tego, co chcemy mierzyć Teraz musimy zmierzyć się z pewnym problemem. W kwestii dyskoteki szkolnej pomiar odległości pomiędzy osobami i grupami był prosty — wystarczyło rozwinąć metrówkę. Co możemy zrobić w przypadku sprzedaży win? Wiesz, że w zeszłym roku złożono 32 oferty, w zakładce Transakcje znajdują się dane 324 operacji zakupu podzielonych na klientów. W celu dokonania pomiaru odległości pomiędzy klientami i wyznaczenia środków grup musisz umieścić klientów w przestrzeni 32 transakcji. Innymi słowy: musisz określić transakcje, których nie dokonali, i stworzyć Poleć książkęKup książkę 58 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Rysunek 2.7. Szczegóły ostatnich 32 ofert Rysunek 2.8. Lista ofert, z których skorzystali klienci Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 59 tabelę zawierającą transakcje przyporządkowane do danego klienta, w której do każdego klienta zostaną przypisane 32 kolumny wypełnione wartościami 1 (dokonano transakcji) lub 0 (nie dokonano transakcji). Krótko mówiąc: musisz przenieść dane z zakładki Transakcje do tabeli klientów, w której każdej transakcji zostanie przydzielony oddzielny rząd komórek, a każdemu klientowi zostanie przydzielona oddzielna komórka. Operację taką najlepiej wykonać za pomocą tabeli przestawnej. UWAGA Podstawowe informacje dotyczące tabel przestawnych znajdziesz w rozdziale 1. Oto czynności, które powinieneś wykonać. Zaznacz kolumny A i B znajdujące się w zakładce Transakcje, a następnie wstaw tabelę przestawną. W oknie Lista pól tabeli przestawnej jako etykiety wierszy wybierz kolumnę z ofertami, a jako etykiety kolumn wybierz kolumnę z danymi klientów. Następnie przypisz wartości do transakcji (w polu Wartości wybierz opcję Liczba ofert) — komórki wypełnione wartością 1 oznaczają skorzystanie przez danego klienta z wybranej oferty, a 0 lub (jak w tym przypadku) pusta komórka oznacza nieskorzystanie z oferty. Na rysunku 2.9 przedstawiono tabelę przestawną utworzoną przeze mnie. Rysunek 2.9. Tabela przypisująca klientów do transakcji Gdy masz już dane zakupów przedstawione w formie macierzy, skopiuj zawartość zakładki DaneOfert do nowej zakładki (nazwij ją Macierz). Do nowego arkusza skopiuj wartości znajdujące 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 sposób utworzysz tabelę zawierającą informacje o ofertach oraz dane transakcji (rysunek 2.10). Poleć książkęKup książkę 60 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Rysunek 2.10. Tabela, która powstała w wyniku połączenia danych ofert oraz transakcji STANDARYZACJA DANYCH W tym rozdziale każdy wymiar danych jest typu binarnego, ale nie jest to reguła dotycząca każdego problemu rozwiązywanego za pomocą analizy skupień. Wyobraź sobie sytuację, w której ludzie są dzieleni na grupy na podstawie wzrostu, wagi i zarobków. Wzrost może wahać się od 150 do 200 centymetrów, a waga od 45 do 140 kilogramów. W takim przypadku pomiar odległości pomiędzy klientami staje się o wiele bardziej skomplikowany od pomiaru odległości pomiędzy uczestnikami dyskoteki. W związku z tym dane są bardzo często standaryzowane — obliczana jest średnia danych znajdujących się w każdej kolumnie, a także wykonywana jest operacja dzielenia przez wartość charaktery- zującą rozkład danych, czyli odchylenie standardowe (parametr ten opiszę w rozdziale 4.). Taki zabieg umożliwia przeskalowanie danych znajdujących się w każdej kolumnie tak, aby wartości oscylowały w granicach zera. Dane, które przetwarzamy w rozdziale 2., nie wymagają standaryzacji. Praktyczne za- stosowanie standaryzacji do wykrywania elementów odstających przedstawię w rozdziale 9. Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 61 Zacznij od czterech grup Dysponujesz danymi skonsolidowanymi w formacie umożliwiającym ich dalsze przetwarzanie. Aby rozpocząć proces klastryzacji, musisz określić parametr k (liczbę klastrów algorytmu centroidów). Często, korzystając z tego algorytmu, testuje się jego działanie dla różnych wartości tego parametru (w dalszej części książki dowiesz się, jak je dobrać), ale na początek przyjmijmy tylko jedną jego wartość. Najpierw musisz określić liczbę grup, na które chcesz podzielić swoich klientów, a to zależy od strategii marketingowej, jaką chcesz przyjąć. Możesz stworzyć 50 grup (klastrów), do których będziesz wysyłał 50 spersonalizowanych ofert (przeprowadzał 50 kampanii), ale takie rozwiązanie sprawi, że to ćwiczenie stanie się bezsensowne. Lepiej będzie podzielić klientów na względnie małą liczbę grup. Zacznij od podziału na cztery klastry — być może uzyskasz listę podzieloną na grupy składające się z 25 klientów, których preferencje da się łatwo zrozumieć (w rzeczywistości będzie to mało prawdopodobne). No dobrze, jeżeli chcesz podzielić klientów na cztery grupy, to jakie grupy najlepiej byłoby uzyskać? Zamiast zaśmiecać zakładkę Macierz, skopiuj znajdujące się w niej dane do nowej zakładki (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 następnie wybierz opcję Wstaw. Spowoduje to wstawienie pustej kolumny po lewej. Po wstawieniu kolumn nadaj im etykiety od Klaster 1. do Klaster 4. Możesz je sformatować za pomocą opcji Formatowanie warunkowe — pozwoli Ci to obserwować zmiany wartości umieszczonych w komórkach tych kolumn podczas przesuwania środkowych punktów klastrów. Zakładka 4MC powinna teraz wyglądać tak, jak pokazano na rysunku 2.11. Na razie środki wszystkich klastrów mają wartość 0, ale mogą przyjąć dowolną wartość. Twoim celem (podobnie jak w przykładzie dyskoteki szkolnej) będzie przesunięcie ich w położenia, przy których średnia odległość klientów przypisanych do danego klastra od jego środka będzie jak najmniejsza. Oczywiście środki przyjmą dla każdej transakcji wartości znajdujące się w zakresie od 0 do 1, ponieważ wszystkie wektory klientów są binarne. Co tak naprawdę oznacza pomiar odległości pomiędzy środkiem klastra a klientem? Odległość euklidesowa — pomiar odległości w linii prostej Teraz każdy klient jest opisany za pomocą jednej kolumny. Jak zmierzyć odległość pomiędzy nimi? Trzeba określić najkrótszą drogę, jaką trzeba pokonać, aby dojść z jednego punktu do drugiego (tzw. odległość euklidesową), a następnie ją zmierzyć. Aby zrozumieć sposób obliczania tej odległości, wróćmy na chwilę do przykładu potańcówki. Poleć książkęKup książkę 62 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Rysunek 2.11. Zakładka 4MC z pustymi kolumnami definiującymi środki klastrów Na rysunku 2.12 przedstawiłem parkiet dyskoteki opatrzony osiami układu współrzędnych. Jak widzisz, osoba tańcząca znajduje się w punkcie o współrzędnych (8,2), a środek klastra (grupy) leży w punkcie o współrzędnych (4,4). W celu obliczenia odległości euklidesowej pomiędzy tymi punktami należy przypomnieć sobie twierdzenie Pitagorasa, z którego często korzystałeś w gimnazjum i szkole średniej. Rysunek 2.12. Osoba tańcząca znajduje się w punkcie o współrzędnych (8,2), a środek klastra jest położony w punkcie o współrzędnych (4,4) Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 63 Punkty te są od siebie oddalone o 8 – 4 = 4 metry w płaszczyźnie pionowej i 4 – 2 = 2 metry w płaszczyźnie poziomej. Zgodnie z twierdzeniem Pitagorasa, w celu obliczenia odległości w linii prostej wyznaczone wcześniej odległości należy podnieść do kwadratu i zsumować: 42 + 22 = 16 + 4 = 20 metrów, a następnie obliczyć pierwiastek kwadratowy — pierwiastek z 20 to ok. 4,47 (rysunek 2.13). Rysunek 2.13. Odległość euklidesowa równa jest pierwiastkowi kwadratowemu z sumy podniesionych do kwadratu odległości mierzonych w poszczególnych kierunkach W przypadku osób zamawiających Twój newsletter masz do czynienia z więcej niż dwoma wymiarami, ale zasada pomiaru odległości w obu przypadkach jest taka sama: odległość pomiędzy klientem a środkiem klastra jest określana w wyniku zmierzenia odległości pomiędzy nimi w każdym wymiarze, podniesienia tych odległości do kwadratu, zsumowania, a następnie wyciągnięcia z nich pierwiastka kwadratowego. Załóżmy, że chcesz obliczyć odległość euklidesową pomiędzy środkiem klastra 1. (kolumna H) a klientem o nazwisku Adams (kolumna L). W komórce L34 (pod zakupami wspomnianego klienta) możesz obliczyć różnicę wektora wybranego kupującego i środka klastra we wszystkich wymiarach, podnieść ją do kwadratu, zsumować, a następnie wyciągnąć pierwiastek z tej sumy za pomocą poniższej formuły tablicowej (zauważ, że zastosowano w niej odwołania bezwzględne, a więc możesz ją przenosić do innych pól, nie zmieniając zdefiniowanych odwołań): {=PIERWIASTEK(SUMA((L$2:L$33-$H$2:$H$33)^2))} Poleć książkęKup książkę 64 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Musisz skorzystać z formuły tablicowej (wprowadź kod formuły, a następnie wciśnij kombinację klawiszy Ctrl+Shift+Enter lub Cmd+Return, o czym pisałem w rozdziale 1.), ponieważ część (L$2:L$33-$H$2:$H$33)^2 tej funkcji musi odczytywać pojedyncze wartości z kolejnych komórek i podnosić je do kwadratu. Formuła zwróci wartość 1,732 (rysunek 2.14) — osoba o nazwisku Adams dokonała trzech transakcji, początkowe współrzędne środków wszystkich klastrów to same zera, a pierwiastek kwadratowy z 3 to 1,732. Rysunek 2.14. Odległość pomiędzy klientem o nazwisku Adams a środkiem pierwszego klastra W arkuszu widocznym na rysunku 2.14 zablokowałem początkowe kolumny (kolumny od A do G są stale wyświetlane pomimo przewijania przez kolejne kolumny). Ponadto w komórce G34 umieściłem etykietę Odległość od klastra 1. Zabiegi te ułatwiają śledzenie danych podczas przeglądania kolumn znajdujących się po prawej stronie arkusza. Odległość dla wszystkich! Już wiesz, jak obliczyć odległość pomiędzy wektorem zakupu a środkiem klastra. Czas obliczyć odległość pomiędzy klientem o nazwisku Adams a pozostałymi środkami. W tym celu przeciągnij zawartość komórki L34 w dół aż do komórki L37, a następnie ręcznie zmień w kolejnych wierszach odwołania z kolumny H na kolumny I, J i K. W wyniku tych operacji w komórkach L34:L37 znajdą się następujące formuły: {=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))} Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 65 W powyższych formułach zastosowałeś odwołania bezwzględne (znak $; więcej informacji na ten temat znajdziesz w rozdziale 1.) do komórek definiujących środki klastrów, a więc możesz przeciągnąć zawartość komórek L34:L37 do wszystkich komórek aż do DG34:DG37, co pozwoli obliczyć odległości pomiędzy każdym klientem a środkami wszystkich czterech klastrów. W kolumnie G (w rzędach od 35. do 37.) wprowadź etykiety Odległość od klastra 2. itd. Na rysunku 2.15 przedstawiono arkusz, w którym wprowadzono te etykiety. Rysunek 2.15. Obliczanie odległości każdego klienta od wszystkich klastrów Znasz odległość pomiędzy klientami a czterema klastrami. Każdy klient powinien być przypisany do najbliższego klastra. Operację tę możesz wykonać w dwóch krokach. Wróć do klienta o nazwisku Adams (kolumna L) i oblicz minimalną odległość pomiędzy nim a środkiem klastra. W komórce L38 wprowadź następującą formułę: =MIN(L34:L37) Teraz trzeba określić klaster, którego środek odpowiada tej minimalnej wartości. Możesz to zrobić za pomocą formuły PODAJ.POZYCJĘ (opisałem ją w rozdziale 1.). Umieszczając ją w komórce L39, możesz określić indeks komórki z zakresu od L34 do L37, której zawartość pokrywa się z wartością minimalnej odległości: =PODAJ.POZYCJĘ(L38,L34:L37,0) W tym przypadku odległość pomiędzy klientem a wszystkimi czterema klastrami jest identyczna, a więc funkcja PODAJ.POZYCJĘ zwróci indeks pierwszej znalezionej wartości (rysunek 2.16). Przeciągnij te dwie formuły do komórek znajdujących się po prawej stronie (aż do kolumny DG). Dodaj etykiety rzędów: Minimalna odległość od klastra i Przypisany klaster. Poleć książkęKup książkę 66 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Rysunek 2.16. Arkusz zawierający formuły przypisujące indeks klastra do klientów Określanie położenia środków klastrów W arkuszu masz już formuły obliczające odległości i przypisujące najbliższy klaster. W celu określenia najlepszych położeń środków klastrów musisz określić wartości dla kolumn od H do K minimalizujące całkowitą odległość pomiędzy klientami i klastrami, do których są oni przypisani (39. rząd komórek znajdujący się pod danymi konsumentów). Jeżeli przeczytałeś rozdział 1., to powinieneś wiedzieć, co należy zrobić, gdy słyszysz słowo „zminimalizować”. Musisz przeprowadzić optymalizację, a to wiąże się z koniecznością uruchomienia narzędzia Solver. Narzędzie to wymaga komórki celu, a więc w komórce A36 zsumuj wszystkie odległości pomiędzy klientami a środkami: =SUMA(L38:DG38) W zaprezentowanym wcześniej przykładzie dyskoteki szkolnej również sumowaliśmy odległości za pomocą tej funkcji. Jednak odległość euklidesowa (wymagająca podnoszenia do kwadratu i obliczania pierwiastków) jest wysoce nieliniowa, dlatego określenie położenia środków klastrów wymaga zastosowania metody ewolucyjnej, a nie prostego algorytmu LP simpleks. W rozdziale 1. korzystałeś z algorytmu LP simpleks. W sytuacjach, w których można go stosować, działa on o wiele szybciej od innych metod. Niestety, nie możesz z niego korzystać podczas podnoszenia do kwadratu i pierwiastkowania — wtedy, gdy podjęcie decyzji wymaga rozwiązania funkcji nieliniowej. Również zaawansowana wersja tego algorytmu dostępna w dodatku OpenSolver (opisałem go w rozdziale 1.) nie nadaje się do rozwiązania tego problemu. W takiej sytuacji będziemy musieli użyć algorytmu ewolucyjnego wbudowanego w narzędzie Solver, który łączy wyniki losowego poszukiwania z „hodowaniem” dobrych rozwiązań (działa podobnie do ewolucji biologicznej). Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 67 UWAGA Zagadnienia związane z optymalizacją opisałem szerzej w rozdziale 4. Zauważ, że masz już wszystkie elementy niezbędne do rozwiązania problemu za pomocą narzędzia Solver:  Cel — zminimalizowanie sumy odległości klientów od środków klastrów, do których są przypisani (A36).  Zmienne decyzyjne — modyfikowane wartości definiujące środki klastrów (H2:K33).  Ograniczenia — środki klastrów powinny przyjmować wartości w zakresie od 0 do 1. Otwórz okno narzędzia Solver i umieść w nim powyższe parametry. Skonfiguruj Solver tak, aby zminimalizował wartość zapisaną w komórce A36, modyfikując komórki H2:K33 i biorąc pod uwagę ograniczenie wartości wpisywanych do tych komórek (muszą być one, podobnie jak dane, mniejsze lub równe 1). Zaznacz opcję Ustaw wartości nieujemne dla zmiennych bez ograniczeń i wybierz metodę rozwiązania o nazwie Ewolucyjna (rysunek 2.17). Rysunek 2.17. Konfiguracja Solvera do przeprowadzenia analizy skupień dzielącej klientów na cztery grupy Poleć książkęKup książkę 68 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Zadanie to wcale nie jest dla Solvera takie proste, jak by się mogło wydawać, a więc 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 (zależnie od tego, ile czasu możesz poświęcić na czekanie na rozwiązanie problemu). Ustawiłem czas 600 sekund (10 minut) — rysunek 2.18. Dzięki temu po uruchomieniu Solvera będę mógł pójść na kawę. Jeżeli chciałbyś zatrzymać działanie Solvera, to wciśnij klawisz Escape i zamknij go, zachowując najlepsze znalezione dotychczas rozwiązanie. Rysunek 2.18. Zakładka opcji algorytmu ewolucyjnego Jeżeli ciekawi Cię sposób działania algorytmu ewolucyjnego, to opis jego funkcjonowania znajdziesz w rozdziale 4. i na stronie: http://www.solver.com/. Kliknij przycisk Rozwiąż i poczekaj na zakończenie pracy algorytmu ewolucyjnego. Analiza uzyskanych wyników Zabawa zacznie się dopiero po wygenerowaniu przez Solvera optymalnych klastrów. Przyjrzyj się danym, które uzyskałem (rysunek 2.19). Jak widzisz, Solver obliczył optymalną odległość całkowitą (140,7) i dzięki formatowaniu warunkowemu określił środki czterech klastrów. Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 69 Rysunek 2.19. Optymalne środki czterech klastrów Twoja wersja Excela mogła wygenerować inne wartości środków klastrów. Mogło tak się stać, ponieważ algorytm ewolucyjny pracuje z wartościami losowymi i nie zawsze generuje takie same wyniki. Twoje klastry mogą być zupełnie inne, mogą nieco przypominać moje lub ich środki mogą być ułożone w różnej kolejności (środek mojego klastra 1. może znajdować się bardzo blisko środka Twojego klastra 4. itd.). W kolumnach B – G umieściłeś informacje o ofertach, a więc teraz możesz z łatwością z nich korzystać, ponieważ dane te mogą być bardzo ważne z punktu widzenia środków klastrów (rysunek 2.19). W przypadku klastra 1. znajdującego się w kolumnie H formatowanie warunkowe wyróżnia oferty 24., 26., 17. i w mniejszym stopniu ofertę 2. Jeżeli zagłębisz się w szczegóły tych ofert, to mają one jedną rzecz wspólną — wszystkie są związane z winem pinot noir. Jeżeli przyjrzysz się kolumnie I, to zauważysz w niej pola wyróżnione na zielono — są to oferty, które łączy niska minimalna ilość kupowanego wina. W klastrze tym znajdują się nabywcy, którzy nie chcą kupować dużych ilości trunku. Będę szczery: interpretacja dwóch ostatnich klastrów jest trudna. Może zamiast interpretować położenie środka klastra, lepiej przyjrzeć się preferencjom przyporządkowanych do niego klientów? Być może w ten sposób wysnujesz jakieś sensowniejsze wnioski? Ustalanie najlepszej oferty dla danego klastra Zamiast szukać wymiarów, które przyjmują dla danego klastra wartości bliższe 1, sprawdźmy, kto jest przypisany do danego klastra i jakie oferty preferuje. W tym celu skopiujmy zawartość zakładki DaneOfert do nowej zakładki (nazwij ją 4MC — NajlepszeOfertyKlastrów). W nowej zakładce przypisz kolumnom H – K etykiety 1, 2, 3, i 4 (rysunek 2.20). Poleć książkęKup książkę 70 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Rysunek 2.20. Przygotowywanie tabeli zliczającej oferty najpopularniejsze w danym klastrze W 39. wierszu zakładki 4MC uzyskałeś listę klastrów przypisanych do poszczególnych klientów. W celu określenia liczby transakcji dotyczących danego klastra potrzebne jest sprawdzenie tytułu kolumn H – K zakładki 4MC — NajlepszeOfertyKlastrów, a następnie użycie tej informacji w celu określenia, kto został przypisany do danego klastra w 39. wierszu zakładki 4MC. Na koniec wystarczy zsumować wartości każdego rzędu transakcji. W ten sposób określisz liczbę klientów danego klastra, którzy skorzystali z danej oferty. Zacznij od komórki H2 — liczby klientów zaklasyfikowanych do klastra 1., którzy skorzystali z oferty 1. (styczniowa oferta na wino malbec). Chcesz zsumować wartości wpisane w komórkach L2:DG2 zakładki 4MC, ale musisz wziąć pod uwagę tylko klientów przypisanych do klastra 1. Jest to klasyczny przykład zastosowania formuły SUMA.JEŻELI. W komórce H2 umieść następującą formułę: =SUMA.JEŻELI( 4MC !$L$39:$DG$39, 4MC — NajlepszeOfertyKlastrów !H$1, 4MC !$L2:$DG2) Formuła SUMA.JEŻELI wymaga zadeklarowania wartości ( 4MC !$L$39:$DG$39), które będą porównywane z wartością 1 zadeklarowaną w nagłówku kolumny ( 4MC — NajlepszeOfertyKlastrów !H$1). W przypadku znalezienia odpowiednich wartości dochodzi do sumowania wiersza 2. (zobacz trzeci element deklaracji formuły — 4MC !$L2:$DG2). Zauważ, że w formule zastosowałem odwołania bezwzględne — znak $ umieściłem przed wszystkimi elementami sekcji przypisania wiersza klastra, przed numerem wiersza nagłówków kolumny i przed literą kolumny analizowanych transakcji. Dzięki zastosowaniu odwołań bezwzględnych formułę tę możesz przeciągnąć do komórek H2:K33 w celu uzyskania liczby transakcji, do których doszło przy wszystkich kombinacjach transakcji i klastrów (rysunek 2.21). Aby zwiększyć czytelność danych zaprezentowanych w kolumnach H – K, uruchom formatowanie warunkowe. Dane możesz posegregować, korzystając z opcji automatycznego filtrowania kolumn A – K (zob. rozdział 1.). Sortując dane znajdujące się w kolumnie H w kolejności od największych do najmniejszych, możesz zobaczyć, które oferty były najpopularniejsze wśród klientów przyporządkowanych do klastra 1. (rysunek 2.22). Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów 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 zauważyłem wcześniej, wszystkie oferty w tym klastrze dotyczą wina pinot. Ci klienci chyba za dużo naoglądali się filmu Bezdroża. Po posortowaniu kolumny klastra 2. okazuje się, że znajdują się w nim klienci, którzy preferują zakup małej ilości wina (rysunek 2.23). Niestety, w wyniku sortowania klastra 3. nie da się wyciągnąć tak oczywistych wniosków. W tym klastrze jest wiele bardzo popularnych ofert i nie widać wyraźnej granicy pomiędzy nimi a ofertami, z których nikt nie skorzystał. Najpopularniejsze oferty w tej grupie wydają się mieć coś wspólnego — wszystkie charakteryzują się dużą zniżką. Pięć z sześciu Poleć książkęKup książkę 72 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Rysunek 2.23. Sortowanie klastra 2. — osoby preferujące małe zakupy najpopularniejszych ofert to prawdziwe okazje, a wśród 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 wniosków Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 73 Przyglądając się klastrowi 4., można wysnuć wniosek, że wszystkie zakwalifikowane do niego osoby z jakiegoś powodu lubią dokonywać zakupów w sierpniu. Ponadto pięć z sześciu najpopularniejszych ofert dotyczy win pochodzących z Francji, a dziesięć najpopularniejszych — zakupu dużej ilości win (rysunek 2.25). Być może w tym klastrze znajdują się klienci preferujący zakup dużej ilości francuskich win? Nakładanie się klastrów 3. i 4. jest dość kłopotliwe. Rysunek 2.25. Sortowanie klastra 4. — czy ta grupa klientów po prostu lubi pić szampana w sierpniu? Dochodzimy do pewnej wątpliwości: czy cztery to odpowiednia liczba grup, na które dzielimy naszych klientów za pomocą algorytmu centroidów? Być może nie. Jak zatem określić właściwą liczbę grup? Poleć książkęKup książkę 74 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Sylwetka podziału — dobry sposób na określenie optymalnej liczby klastrów Nie ma niczego złego w dokonywaniu podziału na różne liczby grup aż do momentu dojścia do wniosku, że któryś podział wydaje się sensowny. Oczywiście czasami wynik podziału okazuje się bezsensowny, ponieważ w analizowanych danych brakuje informacji, które umożliwiłyby sensowny podział na klastry. Czy istnieje jakiś sposób na ocenienie doboru liczby grup, na które dzielimy nasz zbiór danych, poza dokonywaniem podziału i analizowaniem go „gołym okiem”? Owszem, istnieje. Możesz obliczyć parametr określający jakość klastrów — sylwetkę podziału (ang. silhouette). Zaletą tego parametru jest to, że na jakość otrzymanych wyników nie wpływa liczba grup, na które dokonujemy podziału. Sylwetka podziału na wysokim poziomie — jak daleko od Ciebie są Twoi sąsiedzi? Możesz porównać średnią odległość pomiędzy każdym klientem a jego sąsiadami przyporządkowanymi do tego samego klastra ze średnią odległością do klientów w klastrze, którego centrum znajduje się najbliżej. Jeżeli znajduję się bliżej osób należących do mojej grupy niż osób należących do sąsiedniej grupy, to chyba zostałem przydzielony do właściwej grupy, mam rację? A co, jeżeli osoby z sąsiedniej grupy znajdują się praktycznie tak blisko mnie jak osoby z grupy, do której zostałem przyporządkowany? Mogę wtedy dojść do wniosku, że moje przydzielenie nie jest do końca przemyślane. W sposób formalny można to obliczyć za pomocą wzoru: (średnia odległość od elementów sąsiedniego klastra – średnia odległość od elementów mojego klastra) / maksimum tych dwóch średnich Mianownik tego wzoru sprawia, że umożliwia on otrzymanie wartości z zakresu od –1 do 1. Przeanalizuj ten wzór. Gdy osoby z innej grupy oddalają się ode mnie (bardziej się ode mnie różnią), to wzór zwraca wartość bliższą 1. Jeżeli obie średnie odległości są podobne, to wzór zwraca wartość zbliżoną do 0. Obliczając średnią wartość takich liczb charakteryzujących każdego klienta, uzyskamy sylwetkę podziału. Gdy sylwetka podziału przyjmuje wartość 1, to podział jest idealny. Zero oznacza zły podział klastrów, a wartość mniejsza od zera oznacza, że wielu klientów pasowałoby lepiej do innego klastra. Obliczając wartości sylwetki podziałów dla różnych liczb grup, można stwierdzić, czy dodanie grupy poprawia podział. Aby wyjaśnić działanie tej techniki, wróćmy jeszcze raz do przykładu dyskoteki szkolnej. Na rysunku 2.26 przedstawiono obliczenia odległości użyte w celu określenia sylwetki podziału. Porównano odległość pomiędzy jednym z opiekunów a dwoma pozostałymi opiekunami z odległością pomiędzy tym opiekunem a osobami przyporządkowanymi do najbliższego klastra (grupy chłopców). Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 75 Rysunek 2.26. Odległości, które należy wziąć pod uwagę w przypadku określania wpływu przyporządkowania osoby pilnującej na wartość określającą sylwetkę podziału W sytuacji widocznej na rysunku osoba pilnująca znajduje się o wiele bliżej pozostałych opiekunów niż nastolatków, a więc wartość współczynnika odległości będzie w tym przypadku wyraźnie większa od zera. Tworzenie macierzy odległości W celu zaimplementowania metody sylwetki podziału musisz uzyskać ważne dane — odległość pomiędzy klientami. Środki klastrów mogą zmieniać położenie, ale odległości pomiędzy klientami są stałe. W związku z tym możesz stworzyć jedną tabelę z odległościami i korzystać z niej przy wszystkich obliczeniach sylwetki podziału (przy podziale na różne liczby grup i przy różnych współrzędnych ich środków). Zacznij od utworzenia pustego arkusza o nazwie Odległości. Skopiuj do niego nazwiska klientów w pionie i w poziomie. Każda komórka tej tabeli będzie definiowała odległość pomiędzy klientem, którego nazwisko jest umieszczone w kolumnie, a klientem, którego nazwisko zapisano w wierszu. W celu wklejenia danych klientów do wierszy tej zakładki skopiuj komórki H1:DC1 z zakładki Macierz i skorzystaj z polecenia Wklej specjalnie… Pamiętaj o wybraniu opcji wklejania Wartości i zaznaczeniu pola Transpozycja w oknie Wklejanie specjalne. Poleć książkęKup książkę 76 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Aby śledzić położenia klientów w tej dużej 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 góry i na lewo od wiersza i kolumny, do których wkleiłeś nazwiska (kliknij kolumnę A i wiersz 1. prawym przyciskiem myszy, a następnie wybierz opcję wstawiania nowej kolumny i nowego wiersza). UWAGA Kolejne liczby z zakresu 0 – 99 możesz wstawić na wiele różnych sposobów. Na przykład zacznij od wpisania cyfr 0, 1, 2, 3 w pierwsze komórki. Następnie zaznacz je i przeciągnij dolny róg zaznaczonego obszaru na pozostałe komórki. Excel powinien zrozumieć Twój zamiar i automatycznie dokończyć sekwencję. Na rysunku 2.27 przedstawiono tabelę goto- wą do zapełnienia danymi. Rysunek 2.27. Pusta tabela odległości Spójrz na komórkę C3 — powinna zawierać odległość pomiędzy klientem o nazwisku Adams a klientem o nazwisku Adams, a więc odległość pomiędzy tą samą osobą. Będzie ona wynosić 0 — nikt nie może być bliżej siebie od siebie samego. Jak obliczyć tę odległość? W kolumnie H zakładki Macierz znajduje się wektor transakcji dokonanych przez klienta o nazwisku Adams. W celu obliczenia odległości euklidesowej pomiędzy tym użytkownikiem a nim samym wystarczy od kolumny H odjąć kolumnę H, uzyskaną różnicę podnieść do kwadratu, zsumować otrzymane wartości, a następnie wyciągnąć z nich pierwiastek kwadratowy. Jak przeciągnąć te obliczenia do każdej komórki arkusza? Ręczne wpisywanie każdej formuły byłoby bardzo czasochłonne. W związku z tym w komórce C3 musisz skorzystać z formuły PRZESUNIĘCIE. Więcej informacji na temat tej formuły znajdziesz w rozdziale 1. Formuła PRZESUNIĘCIE przyjmuje określony zakres komórek (w tym wypadku wektor transakcji dokonanych przez klienta o nazwisku Adams — Macierz!$H$2:$H$33), a następnie przesuwa cały zakres o określoną liczbę rzędów i kolumn. Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 77 Na przykład formuła PRZESUNIĘCIE(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 formuła PRZESUNIĘCIE(Macierz!$H$2:$H$33,0,1) zwróci kolumnę z transakcjami klienta o nazwisku Allen, formuła PRZESUNIĘCIE(Macierz!$H$2:$H$33,0,2) zwróci kolumnę z transakcjami klienta o nazwisku Anderson itd. Właśnie do tego przydadzą się wartości z zakresu od 0 do 99, które wpisaliśmy do wiersza 1. i kolumny A. Możemy dzięki nim zbudować np. następującą formułę: {=PIERWIASTEK(SUMA((PRZESUNIĘCIE(Macierz!$H$2:$H$33,0,Odległości!C$1)-PRZESUNIĘCIE (Macierz!$H$2:$H$33,0,Odległości!$A3))^2))} W ten sposób określimy odległość pomiędzy klientem o nazwisku Adams a nim samym. Zauważ, że Odległości!C$1 definiuje przesunięcie kolumny w pierwszym wektorze transakcji, a Odległości!$A3 definiuje przesunięcie kolumny w drugim wektorze transakcji. Dzięki temu po przeciągnięciu tej formuły na cały arkusz wszystko będzie zakotwiczone na wektorze transakcji klienta o nazwisku Adams, ale formuła PRZESUNIĘCIE będzie przesuwała wektor we właściwe miejsca wskazywane przez indeksy umieszczone w kolumnie A i wierszu 1. W ten sposób będziemy przetwarzać właściwe wektory transakcji klientów. Na rysunku 2.28 pokazano tabelę wypełnioną wartościami odległości. Rysunek 2.28. Tabela odległości wypełniona danymi Pamiętaj, że formuły wpisywane w zakładce Odległości muszą być formułami tablicowymi, tak jak w przypadku zakładki 4MC. Excel i implementacja sylwetki podziału Przygotowałeś dane w zakładce Odległości, a więc możesz przystąpić do wykonywania obliczeń niezbędnych do określenia wartości sylwetki podziału. Utwórz nowy arkusz i nazwij go 4MC Sylwetka. Poleć książkęKup książkę 78 Rozdział 2. Analiza skupień. Część I — zastosowanie algorytmu centroidów Na początek skopiuj z zakładki 4MC nazwiska klientów i numery grup, do których 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 będziesz mógł skorzystać z arkusza Odległości i obliczyć średnią odległość pomiędzy każdym klientem a klientami przyporządkowanymi do tej samej grupy. W kolumnach od C do F umieść etykiety Odległość od członków 1. grupy – Odległość od członków 4. grupy. W moim skoroszycie klient o nazwisku Adams został przypisany do klastra 2., a więc w komórce C2 będziesz musiał obliczyć odległość pomiędzy nim a wszystkimi klientami przypisanymi do klastra 1. Musisz przeszukać listę klientów i wybrać tych, którzy zostali przypisani do klastra 1., następnie obliczyć średnią odległość pomiędzy nimi a klientem o nazwisku Adams (możesz skorzystać z wiersza 3. arkusza Odległości). Brzmi to jak typowe zastosowanie formuły ŚREDNIA.JEŻELI: =ŚREDNIA.JEŻELI( 4MC !$L$39:$DG$39,1,Odległości!$C3:$CX3) Formuła ŚREDNIA.JEŻELI sprawdza przypisania do klastrów i dobiera je do klastra 1. przed określeniem średniej odpowiednich odległości z komórek C3:CX3. Formuły wpisywane w kolumnach D – F są identyczne, ale zamiast do klastra 1. odwołujemy się do klastrów 2., 3. i 4. Po umieszczeniu formuł w odpowiednich kolumnach kliknij je dwukrotnie w celu skopiowania do pozostałych komórek klientów. W ten sposób uzyskasz tabelę pokazaną na rysunku 2.29. Rysunek 2.29. Średnie odległości pomiędzy poszczególnymi klientami a klientami przypisanymi do każdego z klastrów Poleć książkęKup książkę Prawdziwy problem: implementacja algorytmu centroidów w e-mail marketingu 79 W kolumnie G możesz dokonać obliczeń dla najbliższej grupy klientów — skorzystaj z formuły MIN. W przypadku klienta o nazwisku Adams zastosuj formuły: =MIN(C2:F2) W kolumnie H za pomocą formuły MIN.K możesz obliczyć wartości dla drugiej najbliższej grupy klientów (w podanym przykładzie zastosowaliśmy parametr 2, ponieważ formuła ma określać drugie najbliższe miejsce): =MIN.K(C2:F2,2) W podobny sposób możesz obliczyć w kolumnie I odległość od klientów przyporządkowanych do tej samej grupy (prawdopodobnie będzie to wartość identyczna z tą, która znalazła się w kolumnie G, ale nie jest to reguła): =INDEKS(C2:F2,B2) Formuła INDEKS jest używana w celu określenia właściwej odległości zapisanej w kolumnach C – F przy użyciu wartości zapisanej w kolumnie B, która to kolumna pełni funkcję indeksu. W celu obliczenia wartości sylwetki podziału musisz również określić odległość od najbliższej grupy klientów, którzy nie należą do klastra, do którego przyporządkowany został analizowany klient (zwykle wartość ta będzie równa tej, którą umieszczono w kolumnie H, ale nie jest to regułą). W ce
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Mistrz analizy danych. Od danych do wiedzy
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: