ED-4.2-m10-lab

From Studia Informatyczne

Laboratorium 10

Odkrywanie cech i algorytm Non-Negative Matrix Factorization.

1. Uruchom narzędzie Oracle Data Miner i połącz się z serwerem bazy danych.

2. Z menu głównego wybierz Activity→Build. Na ekranie powitalnym kliknij przycisk Dalej>.

3. Z listy Function Type wybierz Feature Extraction. Rozwiń listę Algorithm i wybierz z niej algorytm Non-Negative Matrix Factorization. Kliknij przycisk Dalej>.

Image:ED-4_2-m10-labWIKI_01.png

4. Wskaż schemat STUDENT i tabelę MINING_DATA_BUILD_V jako źródło danych do eksploracji. Jako klucz podstawowy wskaż atrybut CUST_ID. Kliknij przycisk Dalej>.

Image:ED-4_2-m10-labWIKI_02.png

5. W kolejnym kroku pozostaw domyślne ustawienia atrybutów. Kliknij przycisk Dalej>.

Image:ED-4_2-m10-labWIKI_03.png

6. W kolejnym kroku podaj nazwę dla procesu eksploracji oraz krótki opis procesu eksploracji. Kliknij przycisk Dalej>.

Image:ED-4_2-m10-labWIKI_04.png

7. Kliknij przycisk Advanced Settings. Upewnij się, że na zakładce Sample opcja próbkowania jest wyłączona (pole wyboru Enable Step jest odznaczone). Przejdź na zakładkę Outlier Treatement. Upewnij się, czy znajdowanie osobliwości jest włączone (możesz pozostawić domyślne kryterium odległości trzech odchyleń standardowych od średniej jako wyznacznika osobliwości). Przejdź na zakładkę Missing Values i upewnij się, że brakujące wartości będą automatycznie zamieniane na średnią (dla atrybutów numerycznych) lub wartość modalną (dla atrybutów kategorycznych). Przejdź na zakładkę Normalize i upewnij się, że atrybuty numeryczne będą automatycznie normalizowane do przedziału 0-1. Przejdź na zakładkę Build i zmień maksymalną liczbę iteracji przy wyliczaniu macierzy na 100.

Image:ED-4_2-m10-labWIKI_05.png

8. Kliknij przycisk OK. Upewnij się, że opcja Run upon finish jest włączona. Kliknij przycisk Zakończ.

Image:ED-4_2-m10-labWIKI_06.png

9. Kliknij na odnośnik Result w bloku Build. Z listy rozwijanej wybierz cechę numer 6. Na każdą cechę składa się liniowa kombinacja wartości oryginalnych atrybutów. Im większa wartość współczynnika przy danej wartości atrybutu, tym bardziej dana wartość atrybutu wpływa na cechę. Przykładowo, cecha numer 6 reprezentuje przede wszystkim mężczyzn mieszkających w Stanach Zjednoczonych posiadających monitor z płaskim ekranem i nie posiadających karty lojalnościowej. Osoby pasujące do tej charakterystyki będą posiadać wysoką wartość liczbową cechy numer 6.

Image:ED-4_2-m10-labWIKI_07.png

10. Kliknij przycisk Filter. Odznacz pole wyboru Check All. Wskaż jako interesujący Cię atrybut CUST_MARITAL_STATUS. Kliknij przycisk OK.

Image:ED-4_2-m10-labWIKI_08.png

11. Znajdź cechę opisującą osoby, które nigdy nie wyszły za mąż/ożeniły się.

Image:ED-4_2-m10-labWIKI_09.png

12. W nawigatorze obiektów rozwiń gałąź Models, następnie gałąź Feature Extraction i sprawdź, jak nazywa się zbudowany przez Ciebie model.

Image:ED-4_2-m10-labWIKI_10.png

13. Uruchom narzędzie iSQLPlus i zaloguj się do bazy danych. Odczytaj podstawowe informacje o modelu z repozytorium ODM.

SELECT setting_name, setting_value
FROM TABLE(DBMS_DATA_MINING.GET_MODEL_SETTINGS(’MINING_DATA_B26645_NF’))
ORDER BY setting_name;


Image:ED-4_2-m10-labWIKI_11.png

14. Do wyświetlenia pełnego modelu (wszystkich cech i wszystkich składowych cech) posłuż się poniższym zapytaniem

SELECT F.feature_id, A.attribute_name, A.attribute_value, A.coefficient
FROM
TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_NMF(’MINING_DATA_B26645_NF’)) F,
TABLE(F.attribute_set) A
ORDER BY feature_id, attribute_name, attribute_value;

15. Wróć do narzędzia Oracle Data Mining. W nawigatorze obiektów rozwiń gałąź Mining Activities, następnie gałąź Feature Extraction. Kliknij odnośnik Output Data w bloku Normalize i sprawdź, jak nazywa się automatycznie skonstruowana perspektywa zawierająca przetransformowane dane.

Image:ED-4_2-m10-labWIKI_12.png

16. Wróć do narzędzia iSQLPlus. Wyświetl liczbę klientów opisanych poszczególnymi cechami. Wykorzystaj poniższe zapytanie SQL. FEATURE_ID() to funkcja zwracająca identyfikator cechy zgodnie z podanym modelem. Klauzula USING umożliwia ograniczenie modelu tylko do podanej listy atrybutów.

SELECT FEATURE_ID(MINING_DATA_B26645_NF USING *) AS feat,
COUNT(*) AS cnt
FROM dm4j$vmining_data_755066777
GROUP BY FEATURE_ID(MINING_DATA_B26645_NF USING *)
ORDER BY cnt DESC;

Image:ED-4_2-m10-labWIKI_13.png

17. Wyświetl dziesięciu klientów którzy są najlepiej dopasowani do cechy numer 3. Wykorzystaj poniższe zapytanie SQL.

SELECT *
FROM (
SELECT dmr$case_id,
FEATURE_VALUE(MINING_DATA_B26645_NF, 3 USING *) AS match_quality
FROM dm4j$vmining_data_755066777
ORDER BY match_quality DESC)
WHERE ROWNUM < 11;


Image:ED-4_2-m10-labWIKI_14.png


Ćwiczenie samodzielne

W Twoim schemacie znajduje się tabela ZOO o następującym schemacie:

SQL> desc zoo

Nazwa Wartość NULL? Typ


-------- ----------------

NAME VARCHAR2(10)

HAIR CHAR(1)

FEATHERS CHAR(1)

EGGS CHAR(1)

MILK CHAR(1)

AIRBORNE CHAR(1)

AQUATIC CHAR(1)

PREDATOR CHAR(1)

TOOTHED CHAR(1)

BACKBONE CHAR(1)

BREATHES CHAR(1)

VENOMOUS CHAR(1)

FINS CHAR(1)

LEGS NUMBER

TAIL CHAR(1)

DOMESTIC CHAR(1)

CATSIZE CHAR(1)

TYPE VARCHAR2(12)

Zbuduj model identyfikujący dominujące cechy w zbiorze zwierząt. Wyświetl uzyskane cechy i spróbuj dokonać ich ręcznej ewaluacji. Następnie zastosuj uzyskany model do zawartości tabeli ZOO. Napisz następujące zapytania SQL:

• wyświetl 3 dominujące cechy opisujące lwa

• wyświetl 10 zwierząt najlepiej opisanych przez cechę reprezentującą zwierzęta jadowite

• wyświetl 10 zwierząt opisywanych przez cechę wyrażającą zdolność do latania

• wyświetl rozkład cech opisujących ptaki

Do wykonania zadania możesz wykorzystać przykładowy skrypt nnmf.plsql