Ćwiczenie 3 : Ocena ważności atrybutów

W ćwiczeniu przedstawiamy metody oceny przydatności poszczególnych atrybutów w procesach eksploracji danych. W trakcie laboratorium zapoznajemy się z podstawowymi metodami identyfikacji atrybutów, które są nieprzydatne w zadaniach eksploracji. Będziemy badać zmienność wewnątrz atrybutów, korelację między atrybutami, a także będziemy wybierać zbiory atrybutów charakteryzujące się najbardziej pożądanymi cechami. A na początku zapoznamy się z zasadą minimalizacji długości opisu (ang. minimum description length) oraz przeprowadzimy jeden z najbardziej niesamowitych eksperymentów naukowych w historii.

literatura

Oracle Data Mining

  • Zaloguj się do bazy danych: iSQLPlus korzystając z konta EDXX, gdzie XX to liczba [01-20]. Identyfikator połączenia do DBLAB01.
  • Czy istnieją atrybuty, które pozwalają z dużym prawdopodobieństwem odróżnić republikanów od demokratów? Spróbuj parę atrybutów wg poniższego wzorca
SELECT v.immigration, v.class, COUNT(*)
FROM votes v
WHERE v.immigration IS NOT NULL
GROUP BY v.immigration, v.class;
  • Jeżeli wcześniej wykonywa(e)łeś to ćwiczenie, to usuń model eksploracji z repozytorium.
BEGIN
  DBMS_DATA_MINING.DROP_MODEL('Attribute_Importance');
END;
  • Zbuduj model pozwalający na ocenę przydatności poszczególnych atrybutów do przewidywania afiliacji partyjnej
BEGIN
  DBMS_DATA_MINING.CREATE_MODEL(
    model_name          => 'Attribute_Importance',
    mining_function     => DBMS_DATA_MINING.ATTRIBUTE_IMPORTANCE,
    data_table_name     => 'votes',
    case_id_column_name => 'id',
    target_column_name  => 'class');
END;
  • Wyświetl zawartość modelu, tzn. uporządkowaną listę rankingową atrybutów posortowaną zgodnie z malejącą wartością współczynnika ważności
SELECT *
FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_AI('Attribute_Importance')) 
ORDER BY RANK;
  • Dodaj do tabeli votes nowy atrybut atrybut losowy a1 oraz atrybut liniowo skorelowany ze zmienną celu a2
ALTER TABLE votes
ADD a1 NUMBER;
 
ALTER TABLE votes
ADD a2 NUMBER;
 
UPDATE attribute_importance_test
SET a1 = ROUND(DBMS_RANDOM.RANDOM()),
    a2 = (CASE class WHEN 'democrat' THEN 1 WHEN 'republican' THEN -1 END);
 
COMMIT;
  • Usuń wcześniejszy model z repozytorium
BEGIN
  DBMS_DATA_MINING.DROP_MODEL('Attribute_Importance');
END;
  • Utwórz model na nowo, tym razem uwzględniając dodane atrybuty
BEGIN
  DBMS_DATA_MINING.CREATE_MODEL(
    model_name          => 'Attribute_Importance',
    mining_function     => DBMS_DATA_MINING.ATTRIBUTE_IMPORTANCE,
    data_table_name     => 'votes',
    case_id_column_name => 'id',
    target_column_name  => 'class');
END;
  • Ponownie wyświetl zawartość modelu
SELECT *
FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_AI('Attribute_Importance')) 
ORDER BY RANK;

Rapid Miner

  • Uruchom narzędzie RapidMiner 5
  • Utwórz nowy przepływ i załaduj przykładowy zbiór danych Sonar. Zapoznaj się z charakterystyką zbioru danych.
  • Dodaj za operatorem Retrieve operator Multiply.
  • Utwórz przepływ usuwający silnie skorelowane atrybuty. W tym celu dodaj operator Remove Correlated Attributes i usuń wszystkie atrybuty które są skorelowane powyżej progu 0.75. Dodaj do przepływu operator Correlation Matrix łącząc go z portem wyjściowym ori operatora Remove Correlated Attributes. Czy operator jest całkowicie deterministyczny?
  • Utwórz przepływ usuwający atrybuty o małej zmienności. Dodaj operator Remove Useless Attributes i usuń te atrybuty, w których zmienność wartości jest poniżej 0.1. Uruchom przepływ, a następnie sprawdź czułość metody na zmianę progu zmienności.
  • Utwórz przepływ dokonujący ważenia atrybutów na podstawie miary Relief. W tym celu dodaj operator Weight by Relief i ustaw liczbę sąsiadów na 10 (pozostaw normalizację wag). Następnie umieść na przepływie operator Select by Weights i wybierz tylko te atrybuty, których waga jest większa niż 0.5. Uruchom przepływ i sprawdź, w jaki sposób zmiana liczby sąsiadów lub zmiana progu akceptacji wag wpłynie na liczbę wybranych atrybutów. Zamień operator Weight by Relief na operator Weight by Rule, uruchom zmodyfikowany przepływ i porównaj uzyskane wyniki.
  • Utwórz przepływ dokonujący ważenia atrybutów na podstawie statystyki Chi-kwadrat. Przypomnij sobie, co wyznacza test Chi-kwadrat. Dodaj operator Weight by Chi Squared Statistic i powiązany z nim operator Select by Weights. Zmień liczbę przedziałów dyskretyzacji w operatorze Weight by Chi Squared Statistic na 5 i na 20, porównaj wyniki.

Twój ostateczny przepływ powinien wyglądać następująco:

 
pisbi-attribute.importance.txt · Last modified: 2015/05/10 08:09 by Mikołaj Morzy
 
Except where otherwise noted, content on this wiki is licensed under the following license:Public Domain
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki