DMX DMX DMX Data Mining Extensions jest językiem do tworzenia i działania na modelach eksploracji danych w Microsoft SQL Server Analysis Services SSAS. Za pomocą DMX można tworzyć strukturę nowych modeli eksploracji danych, trenować te modele, przeglądać je, zarządzać nimi i używać do predykcji. DMX składa się z wyrażeń języka definiowania danych DDL, wyrażeń języka manipulowania danymi DML, a także z funkcji i operatorów. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski c T. Pankowski, DMX 1 c T. Pankowski, DMX 2 DMX Cechy eksploracji danych w Analysis Services są zgodne ze specyfikacją Microsoft OLE DB for Data Mining, która po raz pierwszy została opracowana dla Microsoft SQL Server 2000. Specyfikacja Microsoft OLE DB for Data Mining definiuje: strukturę przechowującą informacje definiującą model eksploracji danych, język tworzenia i działania z modelem eksploracji danych. Model eksploracji danych zawiera to wszystko co jest wiadome o konkretnym modelu eksploracji danych. Jest strukturyzowany podobnie jak tabele SQL: z kolumnami, typami danych i metadanymi opisującymi model. Struktura ta umożliwia używanie języka DMX, który jest rozszerzeniem języka SQL, do tworzenia modeli i pracy z tymi modelami. DMX: CREATE MINING STRUCTURE Tworzy nową strukturę eksploracji definiuje strukturę zbioru treningowego. Za pomocą ALTER MINING STRUCTURE można dodać do niej modele eksploracji. CREATE [SESSION] MINING STRUCTURE <nazwa strukt> [<lista definicji kolumn>] [<lista parametrów>] c T. Pankowski, DMX 3 c T. Pankowski, DMX 4
Tworzenie struktury dla eksploracji danych CREATE MINING STRUCTURE ZakKompMS [ID] LONG KEY, [Ocena Kredytowa] TEXT DISCRETE, Studia TEXT DISCRETE, Wiek TEXT DISCRETE [Zakup Komp] TEXT DISCRETE DMX: ALTER MINING MODEL Tworzy nowy model eksploracji danych poprzez modyfikację istniejącej struktury eksploracji danych. ALTER MINING STRUCTURE <nazwa strukt> ADD MINING MODEL <nazwa modelu> [<lista definicji kolumn>] USING <algorytmm> [<lista param>] [WITH DRILLTHROUGH] c T. Pankowski, DMX 5 c T. Pankowski, DMX 6 Tworzenie modelu eksploracji metodą drzewa decyzyjnego ALTER MINING STRUCTURE ZakKompMS ADD MINING MODEL ZakKompMMDT [ID],[Ocena Kredytowa], Studia, Wiek, [Zakup Komp] PREDICT USING Microsoft_Decision_Trees WITH DRILLTHROUGH; c T. Pankowski, DMX 7 Tworzenie modelu eksploracji metodą Bayesa Tworzy nowy model eksploracji z jednoczesną domyślą definicją struktury eksploracji. Przykład: Domyślna nazwa struktury eksploracji: ZakKompMMBay_Structure CREATE MINING MODEL ZakKompMMBay [ID] LONG KEY, [Ocena Kredytowa] TEXT DISCRETE, Studia TEXT DISCRETE, Wiek TEXT DISCRETE, [Zakup Komp] TEXT DISCRETE PREDICT Using Microsoft_Naive_Bayes c T. Pankowski, DMX 8
DMX: INSERT INTO Jeśli podano strukturę eksploracji, to wyrażenie powoduje przetworzenie tej struktury i wszystkich związanych z nią modeli eksploracji. Jeśli podany jest model eksploracji, to wyrażenie spowoduje przetworzenie tego modelu eksploracji. INSERT INTO [MINING MODEL] [MINING STRUCTURE] <nazwa modelu> <nazwa struk> <lista kolumn> <zapytanie dostawcy danych> INSERT INTO [MINING MODEL] [MINING STRUCTURE] <nazwa modelu> <nazwa struk>.column_values <lista kolumn> <zapytanie dostawcy danych> c T. Pankowski, DMX 9 c T. Pankowski, DMX 10 DMX: INSERT INTO Przetwarza podaną strukturę i model eksploracji danych. INSERT INTO ZakKompMS [ID],[Ocena Kredytowa], Studia, Wiek,[Zakup Komp] OPENROWSET 'SQLNCLI10.1', 'Data Source=ARES; Integrated Security=SSPI; Initial Catalog=ZakupKomputera', 'SELECT ID,OcenaKredytowa,Studia,Wiek,ZakupKomp FROM ZakupKomputera' ---?? Error Data mining: This server is not configured to support the... -- UWAGA: Zmienilem konfiguracje servera ARES Microsoft Analysis Server -- prawy klawisz Properties -- Show Advanced Properties -- Dwie zmiany: -- DataMining\AllowAdHocOpenRowsetQueries na TRUE -- DataMining\AllowedProvidersInOpenRowset c T. Pankowski, wpisuje SQLNCLI10.1 DMX 11 c T. Pankowski, DMX 12
SELECT FROM <model>.content Zwraca zbiór wierszy dla podanego modelu eksploracji danych SELECT [FLATTENED] [TOP <n>] <expression list> FROM <model>.content [WHERE <condition expression>] [ORDER BY <expression> [DESC ASC]] Przykład: SELECT * FROM ZakKompMMDT.Content c T. Pankowski, DMX 13 c T. Pankowski, DMX 14 SELECT FROM <model> PREDICTION JOIN Korzysta z modelu eksploracji danych do predykcji wartości kolumn w zewnętrznym źródle danych. PREDICTION JOIN dopasowuje każdy przypadek z podanego zapytania do modelu Składnia SELECT [FLATTENED] [TOP <n>] <select expression list> FROM <model> <sub select> [NATURAL] PREDICTION JOIN <source data query> [ON <join mapping list>] [WHERE <condition expression>] [ORDER BY <expression> [DESC ASC]] SELECT FROM <model> PREDICTION JOIN SELECT [Zakup Komp], PredictProbability[Zakup Komp], 'tak' AS Tak, PredictProbability[Zakup Komp], 'nie' AS Nie FROM [ZakKompMMDT] NATURAL PREDICTION JOIN SELECT '>40' AS Wiek, 'dobra' AS [Ocena Kredytowa] AS t; Wynik klasyfikacji obiektu: c T. Pankowski, DMX 15 c T. Pankowski, DMX 16
Zastosowanie modelu eksploracji do klasyfikacji zbioru obiektów c T. Pankowski, DMX 17 c T. Pankowski, DMX 18