Procesy eksploracji danych RafalLukawiecki StrategicConsultant, Project Botticelli Ltd rafal@projectbotticelli.co.uk
Cele Poznanie procesu eksploracji danych Dobre zrozumienie kluczowej terminologii To seminarium bazuje na książce „Data Mining” autorstwa ZhaoHui Tang i Jamie MacLennan, oraz na prezentacjach Jamiego. Dziękuję Jamiemu i Donaldowi Farmerowi za pomoc podczas przygotowywania tej sesji. Dziękuję Roni Karassik za slajd. Dziękuję Mike'owi Tsalidisowi, Oldze Londer i Marinowi Bezicowi za wszelką pomoc. Dziziękuję Maciejowi Pileckiemu za pomoc przy pokazach. Podane tu informacje mają wyłącznie cel ilustracyjny i stanowią opinie i poglądy firmy Botticelli i/lub Rafała Lukawieckiego. Zaprezentowane materiały nie są pewne i mogą się zmieniać w zależności od kilku czynników. sFirma Microsoft nie udziela żadnych gwarancji, wyrażonych wprost, dorozumianych ani ustawowych odnośnie do informacji zawartych w tej prezentacji. © 2007 Project Botticelli Ltd & Microsoft Corp. Niektóre slajdy zawierają cytaty z chronionych prawem autorskim materiałów innych autorów wskazanych za każdym razem. Wszelkie prawa zastrzeżone. Microsoft, Windows, Windows Vista i inne nazwy produktów są lub mogą być zarejestrowanymi znakami handlowymi i/lub znakami handlowymi w Stanach Zjednoczonych i innych krajach. Podane tu informacje mają wyłącznie cel ilustracyjny i stanowią aktualne poglądy firmy Project Botticelli Ltd w dniu tej prezentacji. Ponieważ firmy Project Botticelli i Microsoft muszą reagować na zmiany sytuacji rynkowej, nie można interpretować tych poglądów jako zobowiązanie składane w imieniu firmy Microsoft, a firmy Microsoft i Project Botticelli nie mogą zagwarantować dokładności jakichkolwiek informacji po dacie tej prezentacji. Firma Project Botticelli nie udziela żadnych gwarancji, wyrażonych wprost, dorozumianych ani ustawowych odnośnie do informacji zawartych w tej prezentacji. Możliwe, że prezentacja zawiera błędy i pominięcia.
Program Rozważania dotyczące serwerów Proces eksploracji danych Kluczowe pojęcia i terminologia Eksploracja danych za pomocą DMX
Rozważania dotyczące serwerów
DM – część Microsoft SQL Server
Protokoły SQL Server Analysis Services Excel OLEDB ADOMD TCP 3/28/2017 9:45 AM Protokoły Excel OLEDB ADOMD TCP Aplikacje klienckie SQL Server Analysis Services XMLA AMO IIS BIDS SSMS HTTP Profiler ADOMD .NET
Rozważania na temat usług Analysis Services Składniki DM zawarte wydaniach Standard, Enterprise i Developer programu SQL Server 2005 Usługi SSAS 2008 i 2005 mogą działać równolegle Usługi SSAS nie muszą działać na tym samym serwerze co aparat BD SQL Potrzeby dotyczące wydajności Względy bezpieczeństwa Usługi SSAS umożliwiają analizę danych ze źródeł innych niż SQL Server
Bezpieczeństwo usług SSAS Wskazówki dotyczące zabezpieczania usług SSAS można znaleźć w „SQL Books Online” Potrzeby dotyczące uprawnień (nadmierne upraszczanie): Standardowy użytkownik BD SQL może: Wyświetlać modele i korzystać z nich Wdrażać tymczasowe modele sesyjne (jeśli opcja jest włączona) Administratorzy BD mogą też: Wdrażać i zmieniać modele trwałe, używając SSMS (Management Studio) lub trybu online BIDS Administratorzy serwera mogą też: Używać trybu offline BIDS i modeli wdrażania wsadowego
Zalecenia dotyczące bezpieczeństwa usług SSAS W mocno obciążonych środowiskach programowania w wielkiej korporacji: Dwa serwery usług SSAS: produkcyjny i projektowy/testowy Programiści administrują serwerami projektowymi, ale nie produkcyjnymi Dzięki temu jest możliwy pełny tryb offline BIDS Ręczna lub automatyczna replikacja między serwerej projektowym i produkcyjnym Użytkownicy końcowi to użytkownicy BD wdrożonych modeli (używający ich w programach Excel, Visio itp.)
Omówienie procesu eksploracji danych
Proceseksploracji DM Engine Model eksploracji Model eksploracji Dane do przewidzenia Dane treningowe Model eksploracji Aparat DM DM Engine Model eksploracji Model eksploracji Model eksploracji Z przewidywaniem
Etapy procesu życia modelu DM Definicja modelu Definiowanie kolumn dla przypadków: wizualnie (BIDS), przy użyciu DMX lub z języka PMML Trening modelu Wprowadzenie wielkich ilości danych z rzeczywistej BD lub z dziennika systemu Testowanie modelu Dane testowe muszą być inne niż treningowe Używanie modelu (eksploracja i przewidywanie) Używanie modelu na nowych danych w celu przewidywania wyników Aktualizacja modelu Co miesiąc, co tydzień, co noc lub częściej – ponowne testowanie
Wiele podejść Praca według własnego uznania: Eksperci BD i weterani języka SQL: DMX (jak T-SQL) Import/eksport za pomocą języka PMML Wszyscy: Business Intelligence Development Studio (BIDS) Obsługiwany w Visual Studio (dołączony!) Nie ma potrzeby pisania kodu – praca przy użyciu myszy Excel/Visio 2007 z dodatkami Data Mining Add-Ins Karta „Data Mining” – wszystko Karta „Table Analysis” – łatwiej za to prościej
Uwaga Łatwiej wyjaśnić kluczową terminologię na slajdach programu PowerPoint, pokazując rozszerzenia DMX Łatwiej wyjaśnić kluczową terminologię na pokazach, przedstawiając środowisko BIDS i umożliwiając klikanie Zastosujemy obie metody! Najpierw DMX i slajdy Potem (zwłaszcza po południu), głównie pokazy
Kluczowe pojęcia i terminologia
Struktura eksploracji (Mining Structure) Opisuje dane, którymi trzeba się zająć Kolumny ze źródeł danych i ich: Typy danych Typy zawartości Zawiera modele eksploracji Często buduje się kilka różnych modeli w jednej strukturze Przechowuje dane treningowe, zwane przypadkami (cases) (jeśli to konieczne) Przechowuje dane testowe, określane jako wydzielone (holdout) (w programie SQL 2008)
Model eksploracji danych (Data Mining Model) Kontener układów odkrywanych za pomocą algorytmu eksploracji danych w przypadkach treningowych Tabela zawierająca układy Wyrażone przez wizualizatory Określa użyciekolumn już zdefiniowanych w strukturze eksploracji
Przypadki: to, co badamy (Cases) Przypadek – zbiór kolumn (atrybutów), które mają być analizowane Wiek, płeć, region, roczne wydatki Klucz przypadku – unikatowy identyfikator przypadku Kolumna ma: Typ danych Typ zawartości I opcjonalnie: Dystrybucję Dyskretyzację Pokrewne kolumny Flagi (np. NOT NULL)
Typy danych kolumny (Column Data Types) Nie zajmujemy się typami niskiego poziomu Typy używane w eksploracji danych : Text Long Boolean Double Date i niektóre algorytmy innych firm: Time i Sequence
Typy zawartości kolumny (Content Types) Sterują algorytmami Typowe: DISCRETE Czerwony, Niebieski, Zielony CONTINOUS 6511,49 € DISCRETIZED 1-5, 6-20, 21+ Oznacza klucz: KEY Do celów specjalnych: KEY SEQUENCE KEY TIME ORDERED CYCLICAL
Użycie kolumn (Column Usage) W niektórych algorytmach interpretacja tego nieznacznie się różni, ale na ogół kolumny służą do: Wejście W celu przewidywania innej kolumny PREDICT Te kolumny są zarówno przewidywane, jak i działają jako wejściowe do przewidywania innych PREDICT_ONLY Nieużywane jako dane wejściowe Wszystkie kolumny mogą być wejściowymi i przewidywanymi
Dyskretyzacja Bardzo ważna technika Gdy nie ma potrzeby analizowania pełnego ciągłego zakresu Eksploracja danych może automatycznie konwertować dane na przedziały Domyślnie na 5 Techniki: AUTOMATIC CLUSTERS EQUAL_AREAS THRESHOLDS
Dystrybucje kolumn Jeśli jest znana dystrybucja danych (należy znać), trzeba ją podać: NORMAL Typowa krzywa Gaussa (dzwonowa) LOG NORMAL Większość wartości na „początku” skali UNIFORM Linia płaska – jednakowo prawdopodobna lub idealnie losowa Mogą istnieć inne dystrybucje, ale nie można ich podać – algorytm będzie działać prawidłowo
I wreszcie Przypadek zagnieżdżony (Nested Case) – przypadek zawierający tabelę kolumn Zakupy klienta Używany do analizy układów w relacji Ma zagnieżdżony klucz (Nested Key) Nie „relacyjny” klucz obcy! Na ogół klucz zagnieżdżony to kolumna, która ma być analizowana Np.: Nazwa produktu lub model
Szczegóły procesu eksploracji danych przy użyciu DMX
Rozszerzania eksploracji danych DMX „T-SQL” do eksploracji danych Proste! Jak skrypty dla specjalistów IT Dwa typy instrukcji: Definicja danych CREATE, ALTER, EXPORT, IMPORT, DROP Manipulowanie danymi INSERT INTO, SELECT, DELETE
DMX – jak T-SQL CREATE MINING MODEL RyzykoKred (KlientIDLONG KEY, Płeć TEXT DISCRETE, Przychód LONG CONTINUOUS, Zawód TEXT DISCRETE, Ryzyko TEXT DISCRETE PREDICT) USING Drzewa_Decyzyjne_Microsoft INSERT INTO RyzykoKred (KlientID, Płeć, Przychód, Zawód, Ryzyko) Select IDklienta, Płeć, Przychód, Zawód,Ryzyko From Klienci Select NowiKlienci. IDklienta, RyzykoKred. Ryzyko, PrzewidPrawdop (RyzykoKred. Ryzyko) FROM RyzykoKred PREDICTION JOIN NowiKlienci ONRyzykoKred.Płeć=NowyKlient.Płeć AND RyzykoKred. Przychód=NowyKlient.Przychód AND RyzykoKred. Zawód=NowyKlient.Zawód
CREATE MINING MODEL CREATE MINING MODEL <nazwa> ( <definicje kolumn> ) USING <algorytm>[(<parametry>)] [WITH DRILLTHROUGH]
CREATE MINING MODEL CREATE MINING MODEL MójModel ( <definicjekolumn> ) USINGMicrosoft_Decision_Trees
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, ) USINGMicrosoft_Decision_Trees Nazwa Typ danych Text Long Double Boolean Date
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, ) USINGMicrosoft_Decision_Trees Nazwa Typ danych Typ zawartości Key Key Time Discrete Continuous Discretized
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, ) USINGMicrosoft_Decision_Trees
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, [Płeć] TEXT DISCRETE, ) USINGMicrosoft_Decision_Trees
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, [Płeć] TEXT DISCRETE, [Stan cywilny] TEXT DISCRETE, ) USINGMicrosoft_Decision_Trees
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, [Płeć] TEXT DISCRETE, [Stan cywilny] TEXT DISCRETE, [Wykształcenie] TEXT DISCRETE, ) USINGMicrosoft_Decision_Trees
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, [Płeć] TEXT DISCRETE, [Stan cywilny] TEXT DISCRETE, [Wykształcenie] TEXT DISCRETE, [Własnośćdomu] TEXT DISCRETE PREDICT, ) USINGMicrosoft_Decision_Trees Użycie Predict Predict Only
CREATE MINING MODEL CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, [Płeć] TEXT DISCRETE, [Stan cywilny] TEXT DISCRETE, [Wykształcenie] TEXT DISCRETE, [Własnośćdomu] TEXT DISCRETE PREDICT, [Wiek] LONG CONTINUOUS, [Przychód] DOUBLE CONTINUOUS ) USINGMicrosoft_Decision_Trees
Tabele zagnieżdżone Mebel KlientID Płeć Stan cywilny Wykształcenie Własność domu 980001 M ZamŻon Licencjaci Wynajem Mebel Sofa Telewizor Drabina Boiler Leżanka Odtwarzacz DVD Stelaż Regał na książki Mata do jogi Waza 980002 M ZamŻon Licencjaci Własność 980003 K Wolny Magistrowie Własność 980004 M Wolny Średnie Własność 980005 K ZamŻon Licencjaci Wynajem 980006 K ZamŻon Magistrowie Wynajem
CREATE MINING MODEL Zagnieżdżenie CREATE MINING MODEL MójModel ( [KlientID] LONG KEY, [Płeć] TEXT DISCRETE, [Stan cywilny] TEXT DISCRETE, [Wykształcenie] TEXT DISCRETE, [Własnośćdomu] TEXT DISCRETE PREDICT, [Wiek] LONG CONTINUOUS, [Przychód] DOUBLE CONTINUOUS, [Produkty] TABLE [Nazwaproduktu] TEXT KEY ) ) USINGMicrosoft_Decision_Trees
Trening Użycie instrukcji INSERT INTO To wprowadza przypadki do aparatu Użycie składni SHAPE do tworzenia zagnieżdżonych zestawów wierszy wejściowych Ważne: Używać jedynie danych treningowych (na ogół ok. 70%) Pozostawić z boku trochę danych testowych
Ile treningu? Brak sztywnych reguł odnośnie do liczby przypadków Niemożliwe przetrenowanie przez podanie zbyt wielu przypadków Możliwe przetrenowanie w źle sparametryzowanych modelach Zbyt szczegółowe modele o za małym stopniu ogólności Czy są używane reprezentatywne próbki? Nie jest potrzebna duża ilość danych treningowych Trening jest wystarczający, gdy walidacja modelu jest poprawna (patrz później)
Podział danych do testowania Wydzielanie (Holdout) Za pomocą programu SQL Server 2005 Łatwo realizowane za pomocą zadania SSIS (Integration Services) Percentage Sampling Kilka sposobów wykonania w języku T-SQL Za pomocą programu SQL Server 2008 Program robi to za użytkownika! Określić WITH HOLDOUT w CREATE MINING STRUCTURE Lub wybrać ilość w oknie kreatora/właściwości GUI w środowisku BIDS
Pokaz Używanie usług SQL Server Integration Services do podziału danych na zestawy treningowe i testowe Używanie języka T-SQL w powyższym celu 43
INSERT INTO Możliwe dane źródłowe: Kwerenda danych Kwerenda DMX [MINING MODEL | MINING STRUCTURE] <nazwa modelu lub struktury> [(<lista kolumn> )] <dane źródłowe> Możliwe dane źródłowe: Kwerenda danych Kwerenda DMX Kwerenda MDX Wywołanie procedury przechowywanej Parametr zestawu danych
Testowanie i walidacja Sprawdzenie poprawności modelu Dokładność Czy zapewnia poprawne korelacje i przewidywania? Wiarygodność Czy działa podobnie w odniesieniu do innych danych testowych? Przydatność Czy zapewnia wgląd w dane czy tylko oczywistości?
Walidacja modelu Typowe podejścia: Dokładność Wiarygodność Przydatność Wykresy wzrostu i zysku Wykresy punktowe Macierz klasyfikacji Wiarygodność Walidacja krzyżowa Przewidywania danych zewnętrznych Przydatność Wymaga przejrzenia przez eksperta z konkretnej dziedziny Może wystarczyć proste sprawdzenie korelacji atrybutów
Zautomatyzowane testowanie Znakomita funkcja DM programu SQL Server Klikniecie karty „Mining Accuracy” automatycznie i szybko wykonuje test: Do przewidywania wartości są używane dane testowe Wyniki tego przewidywania są porównywane ze znaną wartością (w wydzieleniu) Wyniki to: Wykres wzrostu, wykres zysku, wykres punktowy, macierz klasyfikacji, statystyki walidacji krzyżowej
Przewidywanie! Zastosowanie modelu do przewidywania nieznanych danych Użycie instrukcji SELECT Nowa instrukcja PREDICTION JOIN Zwrócone wartości mogą zawierać tabele Na zagnieżdżonych tabelach można wykonywać dalsze instrukcje SELECT
PREDICTION JOIN SELECT [TOP <licznik> ] <lista-wyrażeń> FROM <model> [ [NATURAL] PREDICTION JOIN <dane źródłowe> AS <alias> [ ON <mapowanie-kolumn> ] [ WHERE <wyrażenie filtrujące> ] [ ORDER BY <wyrażenie> ] ]
Nie zapominać o eksploracji i analizie Kilka znakomitych wizualizatorów firmy Microsoft Dostępne w: BIDS, SSMS, SSRS, Excel, Visio oraz w wersji dla aplikacji użytkownika Wiele z nich będzie można obejrzeć dziś po południu! Wyszukując układy, można też wykonywać kwerendy bezpośrednio na modelu eksploracji Wiele przykładów można znaleźć w witrynie SQL Books Online. Można też postarać się o książkę „Data Mining with SQL Server 2005” (autorzy Jamie McLennan i ZhaoHui Tang)
Podsumowanie Tworzenie modelu eksploracji rozpoczyna się od zrozumienia danych: przypadki Należy dobrze zdefiniować typy danych i zawartości w kolumnach oraz ich użycie Zbudować model i trenować go przy użyciu osobnego zestawu danych Przetestować i przeprowadzić walidację przed podjęciem dalszych kroków Przeprowadzić wizualną eksplorację, przewidzieć i ucieszyć się
2008 Microsoft Corporation & Project Botticelli Ltd 2008 Microsoft Corporation & Project Botticelli Ltd. Wszelkie prawa zastrzeżone. Podane tu informacje mają wyłącznie cel ilustracyjny i stanowią opinie i poglądy firmy Botticelli i/lub Rafała Lukawieckiego. Zaprezentowane materiały nie są pewne i mogą się zmieniać w zależności od kilku czynników. Firma Microsoft nie udziela żadnych gwarancji, wyrażonych wprost, dorozumianych ani ustawowych odnośnie do informacji zawartych w tej prezentacji. © 2007 Project Botticelli Ltd & Microsoft Corp. Niektóre slajdy zawierają cytaty z chronionych prawem autorskim materiałów innych autorów wskazanych za każdym razem. Wszelkie prawa zastrzeżone. Microsoft, Windows, Windows Vista i inne nazwy produktów są lub mogą być zarejestrowanymi znakami handlowymi i/lub znakami handlowymi w Stanach Zjednoczonych i innych krajach. Podane tu informacje mają wyłącznie cel ilustracyjny i stanowią aktualne poglądy firmy Project Botticelli Ltd w dniu tej prezentacji. Ponieważ firmy Project Botticelli & Microsoft muszą reagować na zmiany sytuacji rynkowej, nie można interpretować tych poglądów jako zobowiązanie składane w imieniu firmy Microsoft, a firmy Microsoft i Project Botticelli nie mogą zagwarantować dokładności jakichkolwiek informacji po dacie tej prezentacji. Firma Project Botticelli nie udziela żadnych gwarancji, wyrażonych wprost, dorozumianych ani ustawowych odnośnie do informacji zawartych w tej prezentacji. Możliwe, że prezentacja zawiera błędy i pominięcia.