Hurtownie i eksploracja danych Laboratorium Część 1: OLAP Cel Poznanie metod budowy środowiska OLAP umożliwiającego wielowymiarową analizę faktów w funkcji wymiarów. Opanowanie umiejętności wykorzystania narzędzi MS SQL Server 2012: Integration Services (SSIS) jest to narzędzie za pomocą którego zostanie wykonany proces ETL (Extract-Transform-Load), czyli skrypty pobierające dane z systemów źródłowych oraz integrujące i czyszczące dane. Analysis Services (SSAS) za pomocą tego narzędzia zostanie zaprojektowany i zbudowany wielowymiarowy model danych (kostki wielowymiarowe). Zadanie polega na wykonaniu wielowymiarowej analizy ocen wystawianych studentom na Wydziale Elektroniki, w funkcji wszystkich dostępnych w danych atrybutów (zmiennych) mogących mieć związek (wpływ?) na wystawiane oceny takich jak np. typ kursu, semestr studiów, kierunek, specjalność, atrybuty opisujące studenta itd. Dane do analizy notes.csv students.csv teachers.csv teacher_title.csv course_group.csv Zadania 1. Etap I: ETL (Extract-Tranform-Load) polega na załadowaniu danych do analizy z baz (plików) źródłowych do bazy MS SQL, wykonując integrację i wyczyszczenie danych. Skrypty ETL będą zbudowane za pomocą narzędzia Integration Services pakietu MS SQL Server (dostępne z poziomu SQL Server Data Tools (SSDT) projekt wg szablonu Integration Services Project). Podstawowe zadanie skryptów ETL to integracja i usunięcie niespójności w danych źródłowych (nieprawidłowe wartości danych, niespójne/niejasne sposoby kodowania wartości, niespójne relacje klucz obcy-klucz główny pomiędzy tabelami faktów i wymiaru). Szczegółowe zadania do wykonania za pomocą skryptów ETL: Wczytanie danych źródłowych (patrz dane do analizy), utworzenie docelowych tabel (struktura tabel docelowych patrz pkt. 5). Usunięcie niespójności dotyczących wartości zmiennych i konwencji kodowania (np. oceny = 0 lub 1, puste wpisy (np. w kolumnie exam), niespójne oznaczenia płci). 1
Usunięcie niespójności dotyczących relacji pomiędzy tabelami (niespójności pomiędzy kluczem obcym w tabeli faktów i kluczem głównym w tabeli wymiaru np. pomiędzy teacher_id w tabeli faktów notes i teacher_id w tabeli teachers). Podobna niespójność pomiędzy tabelami notes course_group. Patrz również wskazówka 9. Utworzenie nowych atrybutów wymiarów (dimension attributes). Przykładowe ciekawe atrybuty: Typ semestru (zimowy / letni wg parzystości numeru semestru), Rok studiów Typ kursu wykład, lab itd. wg symbolu kursu. Utworzenie tabeli workload (opisującej obciążenie prowadzącego (albo studenta) w danym semestrze mierzone np. liczbą kursów albo ocen w semestrze). Przeformatowanie tabeli faktów (notes) w taki sposób, żeby zawierała wyłącznie zmienną fakt i klucze obce do tabel wymiarów. Kolumny z oryginalnej tabeli notes, które nie są zmienną fakt lub kluczami do tabel wymiarów, należy przenieść do (nowoutworzonych) tabel wymiaru. Patrz wskazówka 10. Realizacji procesu ETL w narzędziu SSIS: W narzędziu SSDT otworzyć projekt wg szablonu Integration Services Project. Zbudować SSIS Package, w którym będą umieszczone skrypty ETL (najwygodniej zacząć od SSIS Import Export Wizard, dostępnego w Solutions Explorer SSIS Packages). Import Export Wizard: jako Data Source wybrać właściwe dla danych źródłowych (np. MS Access lub płaskie pliki); jako Destination wybrać nową bazę na lokalnym serwerze SQL. Wykonać skrypty zawarte w utworzonym pakiecie SSIS (Execute Package wybrane z menu dla utworzonego package a). Po wykonaniu task ów w pakiecie dane źródłowe powinny być dostępne w docelowej bazie (sprawdź). Dalsze kroki polegają na dopisaniu do utworzonego przez Wizarda pakietu skryptów, które zrealizują właściwą integrację i czyszczenie danych (technicznie poprzez usuwanie błędnych wierszy, zamianę wartości, łączenie tabel itp. ). Tworzenie skryptów ETL: za pomocą Task ów Execute SQL Task i/lub Data Flow Task. Wskazówka: w przypadku posłużenia się Data Flow Task ami użyteczne narzędzia do realizacji procesu ETL (dostępne przez Toolbox edytora Data Flow ) to: Derived Column w celu warunkowej modyfikacji kolumn, Conditional Split w celu wybrania interesujących wierszy, Merge Join w celu łączenia tabel po wspólnej wartości klucza, 2. Etap II: Budowa wielowymiarowego modelu danych. Polega na określeniu relacji pomiędzy tabelami (tabela faktów tabele wymiarów); określeniu zmiennych które będą przedmiotem analizy oraz zmiennych wymiarów. Następnie należy zbudować kostkę wielowymiarową. W naszym zadaniu zmienną analizowaną jest ocena, pozostałe zmienne powinny być wymiarami (uwzględnić wymiary niedostępne wprost w danych, możliwe do wyznaczenia z danych). Zadanie wykonujemy przy pomocy narzędzia Analysis Services pakietu MS SQL Server (dostępne z poziomu SSDT projekt wg szablonu Analysis Services Project). Kolejne kroki w tym etapie: W narzędziu SSDT otworzyć projekt wg szablonu Analysis Services Project. 2
Zdefiniować Data Source wskazujące na dane docelowe utworzone przez proces ETL (Solutions Explorer New Data Source). Zdefiniować Data Source View (dla zdefiniowanego w kroku poprzednim Data Source), określające relacje pomiędzy tabelami faktów i wymiarów. Zdefiniować relację pomiędzy tabelami faktów i wymiarów (relacje definiują klucz obcy w tabeli faktów klucz własny w tabeli wymiarów). Wykonujemy to za pomocą edytora Data Source View (xxx.dsv [Design]). Zdefiniować nową kostkę wielowymiarową (Cube) korzystając z Data Source View utworzonego w poprzednim kroku. Wykonać edycję kostki tak żeby spełniała wymagania dot. analizowanych zmiennych (Measures), wymiarów, po którym można prowadzić analizy (Dimensions), hierarchii wymiarów. Patrz również wskazówki w punkcie 4. Utworzyć kostkę i umieścić ją w serwerze Analysis Services (Build Deploy). Połączyć się z serwerem Analysis Services (za pomocą SQL Server Management Studio) i otworzyć kostkę za pomocą Browsera wykonać kilka wielowymiarowych analiz. Projektując kostkę należy uwzględnić wymiary: Hierarchia wg kursów (typ kursu (typ), forma zajęć (W,P,L,C), forma zaliczenia, indywidualny kurs), Hierarchia wg prowadzących (tytuł prowadzącego, indywidualny prowadzący), Hierarchia wg afiliacji prowadzącego (jednostka, tytuł (skrót), indywidualny prowadzący), Płeć prowadzącego, Płeć studenta, Hierarchia wg czasu (rok studiów, semester Z,L), (*) Miara(-y) obciążenia prowadzącego w semestrze. 3. Wykonać kilka analiz na zbudowanej kostce za pomocą Browsera i zapytań MDX. w celu wykrycia ciekawych zależności w zbiorze oceny (np. kto ocenia surowiej kobiety czy mężczyźni, jak to zależy od tytułu prowadzącego? itd.). (*) Jak można zrealizować przykładową analizę bezpośrednio na danych w systemie transakcyjnym (bez wykorzystania MDX i wielowymiarowych danych, a jedynie z pomocą zapytania SQL)? 4. Wskazówki Nr Zadanie Jak to zrobić 1 Dodać wymiar (cube dimension) na podstawie kolumny zawartej w tabeli faktów Metoda I: za pomocą Data source view designera zbudować Named Query zawierające kolumnę z tabeli faktów, która ma pełnić rolę wymiaru, a następnie zlinkować powstałą w ten sposób tabelę z tabelą faktów. Cube Designer wykorzysta tą tabelę jako podstawę dla nowego wymiaru (cube dimension). Metoda II: alternatywną metodą jest zdefiniowanie wymiaru za pomocą Dimension Designera (Cube Designer Cube Structure Add Cube Dimension). Jako tabelę wymiaru wskazujemy tabelę faktów, w niej zaś odpowiednie kolumny jako klucz i atrybut interesującego nas wymiaru (wymiar taki 3
może mieć w szczególnym przypadku tylko jedną kolumnę klucz). 2 Zbudować hierarchię wymiarów (drill down hierarchy) 3 Dodać miary (measures), które mają być umieszczone w kostce 4 Dodać element wyliczany do kostki (np. w celu uzyskania statystyki AVG w raportach) 5 Zmienić sposób w jaki wartości wymiaru są wizualizowane w raportach (np. w celu zastąpienia wartości pustej przez np.? itd.) 6 Dodać wymiar wyliczony obciążenie prowadzących 7 Usunąć wiersze spełniające pewny warunek (subset data) 8 Wczytanie do bazy wielu plików za pomocą ForEachLoopContainer (użyteczne przy Hierarchie atrybutów wymiarów można zdefiniować za pomocą Dimension Designera okno Hierarchy (Uruchomienie Dimension Designera: Cube Designer wybierz interesujący wymiar z menu kontekstowego wybierz Edit dimension) Cube Designer okno Measure. Statistics przechowywane w kostce są określone przez atrybut AggregateFunction związany z miarą (measure) Za pomocą Cube Designer zakładka Calculations (Add calculated member), dodać formułę definiującą wartość wyliczaną na podstawie miar zawartych w kostce. W ten sposób uzyskamy w raportach możliwość analizowania średniej (oceny) i innym nieaddytywnych (nieagregowalnych) miar, których nie możemy przechowywać w kostce. Za pomocą Named Calculations dodanych do tabeli (Data Source View Named Calculations). Przykładowe wyrażenie (podajemy w polu Expression edytora Named Calculations) CASE WHEN lecture_group IS NULL THEN '?' ELSE CAST(lecture_group AS nvarchar) END Za pomocą SSIS: wykorzystać SQL task w celu wyliczenia liczby ocen (lub liczby różnych kursów) na nauczyciela na semestr. Następnie wykorzystać węzeł Merge Join w celu połączenia tej informacji z tabelą faktów (po kluczu którym jest id nauczyciela i semester)t Uwaga: dołączony wymiar wyliczany może mieć dużą liczbę wartości. Należy wówczas rozważyć pogrupowanie wartości w przedziały wykonujemy to za pomocą atrybutów tego wymiaru DiscretizationMethod i DiscretizationBucketCount. Za pomocą SSIS: wykorzystać SQL task w celu usunięcia wybranych wierszy. Alternatywnie można wykorzystać narzędzie Conditional Split. 1. Utworzyć Data Flow Task, który wczyta pierwszy plik z ocenami (użyć Flat File Source połączony z OLE DB Destination. Flat File Connection Manager powinien wskazywać wybrany (pierwszy) plik z ocenami). Sprawdzić że działa! 4
wczytywaniu plików z ocenami) 9 Naprawienie niespójności klucz obcy-klucz główny pomiędzy tabelami faktów i wymiaru 2. Użyć For Each Loop Container (skonfigurować Collection oraz Variable Mapping wówczas wskazana zmienna przechowa wskazanie na plik do wczytania) 3. Przeciągnąć Data Flow Task jako ciało pętli For Each Loop Container 4. W oknie Properties Flat File Connection Managers wybrać Expression, następnie Property Connection String ustawić na zmienną wpisaną w pkt. 2 Variable Mapping Możliwe są niespójności w danych źródłowych polegające na występowaniu pewnych wartości klucza obcego w tabeli faktów, której brakuje w tabeli wymiaru. Taka relacja klucz obcy klucz główny jest niespójna i wymaga naprawienia. Naprawa nie może polegać na usuwaniu wierszy z tabeli faktów. Sugerowana metoda diagnozy problemu SELECT f.klucz FROM tabela_faktów as f LEFT JOIN tabela_wymiaru AS w ON f.klucz = w.klucz WHERE (w.klucz IS NULL) GROUP BY f.klucz Metoda naprawy spójności relacji: INSERT INTO tabela_wymiaru SELECT f.klucz, domyśle wartości dla pól wymiaru... FROM tabela_faktów as f LEFT JOIN tabela_wymiaru AS w ON f.klucz = w.klucz WHERE (w.klucz IS NULL) GROUP BY f.klucz 10 Utworzenie nowego wymiaru na podstawie kolumn z tabeli faktów nie będących FK do tabeli wymiaru. Metoda 1: Dla każdej kolumny nie będącej FK w tabeli faktów tworzymy nową tabelę wymiaru (kolumna ta stanie się FK do nowoutworzonej tabeli wymiaru). Przykład dla kolumny semestr w tabeli notes: SELECT DISTINCT semester, ew. inne kolumny związane z semestrem INTO semester FROM notes Metoda 2: Tworzymy jedną tabelę wymiaru zawierającą wszystkie kolumny z tabeli faktów nie będące FK. Klucz tej tabeli umieszczamy jako FK w tabeli faktów. Idea tworzymy tabelę tymczasową: SELECT IDENTITY (bigint, 1, 1) AS id, pozostałe kolumny tabeli faktów... INTO notes_tmp 5
FROM notes którą następnie rozbijamy na nową tabelę wymiaru: SELECT id, semester, itd. INTO notes_desc FROM notes_tmp i nową tabelę faktów SELECT note, id AS note_desc_id, pozostałe FKs do innych tabel wymiaru INTO notes_fact_table FROM notes_tmp 11 Nadanie uprawnień do bazy danych utworzonej przez ETL dla Analysis Services (wykonujemy ten krok jeśli operacja kompilacji kostki (deployment) nie udaje się z komunikatem o braku uprawnień) Nadajemy użytkownikowi LOCALHOST\MSSQLServerMSASUser uprawnienie db_datareader w stosunku do bazy utworzonej w ETL-u. W tym celu wykonujemy procedurę: 1. Management Studio connect to SQL Server 2. Select Security Logins New Login 3. Login Name Search 4. Object Types select Groups 5. Advanced Find Now 6. Select SQLServerMSASUser login 7. In Login Properties for this login, select User Mapping 8. Select the ETL database (check the map box) and select the db_datareader role 5. Zmienne typ i znaczenie Tabela notes semester Integer, 1..10 year Integer, 1980.. course Id kursu, tekst, do 10 znaków teacher_id Integer, 0..99999 note ocean, wartości 2, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5 exam wartość E ozn. ocenę z egzaminu, pole puste - zaliczenie student_id Integer, 0..999999 Tabela students spec sub_spec sub_spec2 gender kierunek, tekst, do 3 znaków specjalizacja, tekst, do 3 znaków profil dyplomowania, tekst, do 3 znaków płeć, K / M 6
student_id Integer, 0..999999 Tabela teachers teacher_id Integer, 0..99999 gender płeć, 1 mężczyzna, 2 kobieta faculty wydział, Integer, 1..12 institute instytut, tekst, do 5 znaków title_id id tytułu nauczyciela, Integer, 0..50 Tabela course_group course course_group Id kursu, tekst, do 10 znaków 1 kursy wydziałowe, 2 WF, 3 języki obce, 4 humany Tabela teacher_title title_id id tytułu nauczyciela, Integer, 0..50 title_long pełna tytulatura prowadzącego, tekst, do 30 znaków title tytuł prowadzącego, wer. skrócona, tekst, do 10 znaków 6. Przykładowa postać skryptu ETL w narzędziu SSIS: 7
7. Przykładowa postać modelu wielowymiarowego w narzędziu SSAS: 8
Część 2: Data Mining Cel Poznanie procesu Data Mining i metodologii SEMMA (Sample - Explore - Modify - Model - Assess) oraz opanowanie umiejętności wykorzystania narzędzia SAS Enterprise Miner i podstaw programowania w SAS 4 GL (języka skryptowego do preprocesingu i analizy danych). Zadanie będzie polegało na wykonaniu modelowania predykcyjnego, którego celem jest sklasyfikowanie wiadomości przesyłanych pocztą elektroniczną jako spam lub nie-spam. Dane do analizy spam.dat Zadania Zbudować model klasyfikator wiadomości pocztowych opisanych atrybutami jak w danych wejściowych. Zmienna celu (target) przyjmuje wartość yes dla wiadomości spam lub no dla wiadomości nie będącej spamem. Atrybuty wiadomości pocztowych użyte do klasyfikacji wiadomości są oparte na projekcie SpamAssassin (http://spamassassin.apache.org). Proces DM należy zbudować wg metodologii SEMMA: Input Data, Data Partition (Sample), Insight, Distribution Explorer, Multiplot (Explore), Data Set Attributes (Modify) tu określamy rolę w modelu poszczególnych zmiennych oraz ich typ (measurement level), Tree Regression Neural Net (Model), Assess (Assess), Score. Spodziewane wyniki: - Wynik klasyfikacji wiadomości ze zbioru testowego, - Liczba błedów: o no yes (dobry list sklasyfikowany jako spam) oraz o yes no (spam sklasyfikowany jako nie-spam). - Czułość i specyficzność klasyfikatora. Kryteria: Szczególnie powinniśmy unikać klasyfikowania listów dobrych jako spam. Stąd kryteria akceptowalności klasyfikatora przyjmujemy: - Minimalizacja stopy błędów yes no, - Przy jednoczesnym zapewnieniu stopy błędów no yes < 1%. 9
Zadanie polega na próbie dostrojenia klasyfikatora, tak żeby przy zachowaniu ustalonego marginesu błędów typu no yes minimalizować błąd przeciwny. Ścieżki wg których dostrajamy klasyfikator: Poprzez dobór zmiennych cech (będzie to próba odpowiedzi na pytanie: czy może warto wybrać podzbiór cech najbardziej związanych ze zmienną celu, zamiast uczyć klasyfikator na zbiorze wszystkich cech?) patrz też wskazówka 7. Poprzez zmianę czułości klasyfikatora kosztem jego specyficzności (patrz krzywa ROC uzyskanego klasyfikatora) patrz też wskazówka 6. Wprowadzając do modelu różne koszty dla obu rodzajów błędów (patrz wskazówka 5). Eksperymentując z ustawieniami algorytmów poszczególnych klasyfikatorów (takich jak logistic regresssion, decision tree, neural network). Metody metauczenia składanie modeli, np. za pomocą węzła Ensemble, również metoda Bagging albo Boosting patrz wskazówka 8. Wskazówki (dla Enterprise Minera 12.x) Nr Zadanie Jak to zrobić 1 Jak zbudować model predykcyjny w programie EM 12.x 1. Założyć projekt (File-New-Project), w którym będzie budowany/testowany model predykcyjny. Założyć bibliotekę (File-New-Library) wskazującą na folder z danymi uczącymi. (Uwaga: Jeśli dane uczące nie zostały dostarczone w formacie SAS data set (tj. jako plik z rozszerzeniem.sas7bdat), wówczas dostarczone dane należy wczytać do formatu SAS data set za pomocą programu SAS (SAS Foundation ) np. poprzez File / Import Data). 2. Utworzyć Data Source (File-New-Data Source) wskazujące na dane uczące w założonej wcześniej bibliotece. 3. Kolumny w Data Source opisać za pomocą metadanych podać odpowiednie atrybuty Role (Input, Target, Rejected) i Level (Interval, Ordinal, Nominal, Binary itp.). 3. Utworzyć diagram w projekcie. W diagramie umieścić węzeł Input Data (Sample-Input Data), wskazujący na dane uczące. 4. Wykonać wstępną eksplorację danych przeanalizować rozkłady zmiennych, w celu wykrycia wartości odstających (outliers), zmiennych z dużą liczbą brakujących obserwacji itp. Przykładowe narzędzia: Explore-MultiPlot i StatExplore. 5. Wykonaj transformacje danych wynikające z obserwacji w punkcie poprzednim, takie jak: $ wypełnienie wartości brakujących (missing value imputation) narzędzie Modify-Impute $ usunięcie wartości niepoprawnych / odstających (Modify- Replacement, Modify-Transform Variables, Sample-Filter) $ ew. transformacje zmiennych (np. w celu unormalnienia) 10
Modify-Transform Variables 6. Podzielić dane na część uczącą, walidacyjną i testową (Sample- Data Partition) 7. Wykonać uczenie modelu predykcyjnego (np. Model-Decision Tree) 2 Jak uzyskać nauczony klasyfikator w postaci programu? Połącz węzeł Score do węzła realizującego model predykcyjy (np. Tree) Po wykonaniu procedury Score (Run), w oknie Results dostępne są procedury klasyfikatora w języku SAS 4GL (View-Scoring- SAS Code). Tam również klasyfikatory w C i Javie. Klasyfikatory można zapisać w pliku np..sas: (File-Save As) 3 Jak wykonać klasyfikację nowych danych? Poza środowiskiem SAS Enterprise Minera Kod klasyfikatora zapisany w poprzednim punkcie jest ciałem data step-u, który może zostać wykonany na danych zgodnych formatem z danymi uczącymi (podanymi w Data Source projektu EM). Stąd kod ten należy umieścić wewnątrz data stepu i wykonać w systemie SAS: DATA wynik_klasyfikacji; SET plik_do_klasyfikacji; Tu kod klasyfikatora (SAS code) RUN; Spowoduje to dopisanie do data setu wejściowego (plik_do_klasyfikacji) kolumn z wynikiem klasyfikacji całość zostanie zapisana do data setu wynik_klasyfikacji. Nazwy tych zmiennych patrz okno Results węzła Score View-Scoring- Output Variables. W środowisku SAS Enterprise Minera Podłączyć do węzła Score węzeł Input Data, wskazujący na data set z danymi do klasyfikacji. Ustawić atrybut Role dla tych danych na Score (Properity-Role). Wówczas wykonanie węzła score spowoduje klasyfikację danych. Można również wykonać scoring danych w partycji Test danych uczących poprzez wybranie Property węzła Score Test=YES (nie trzeba wtedy podłączać węzła z danymi do klasyfikacji do węzła Score). 11
4 Jak wyznaczyć czułość i specyficzność klasyfikatora? (stopy błędów 1 0 i 0 1) W węźle SAS Code (Utility-SAS Code) lub bezpośrednio w środowisku SAS wykonać kod podobny do poniższego: proc freq data=dataset_wynik_klasyfikacji; tables target*i_target; run; gdzie i_target oznacza zmienną w zbiorze dataset_wynik_klasyfikacji, w której klasyfikator umieścił wynik klasyfikacji próbki (obserwacji), zaś target oznacza zmienną określającą rzeczywistą klasę próbki. W węźle SAS Code (Code Editor otwiera okna Training Code Code Node) dostępne są zmienne EM_CLASSTARGET oraz EM_CLASSIFICATION. Przy ich pomocy powyższe można zapisać jako: proc freq data=emws4.score_test; tables EM_CLASSTARGET*EM_CLASSIFICATION; run; - co jest wygodne, gdyż działa zawsze, niezależnie od faktycznej nazwy zmiennej target 5 Jak wprowadzić do modelu (niesymetryczne) kary za błędne decyzje? Realizuje się to za pomocą Target Profile, który trzeba związać ze zmienna target (property Decisions w Data Source, który reprezentuje dane uczące). Ustawiamy Prior Probabilities (jeśli prawdopodobieństwa poszczególnych klas są w rzeczywistości inne niż te obserwowane w danych uczących np. z powodu oversampling-u rzadkiej klasy), oraz koszty decyzji i błędów w zakładkach Decisions i Decision Weights. Uwaga: Wynik klasyfikacji uwzględniający koszty umieszczany jest w zmiennej d_target, stąd macierz błędów wyznaczamy wówczas: proc freq data=dataset_wynik_klasyfikacji; tables target*d_target; run; 6 Jak zmienić czułość klasyfikatora kosztem specyficzności (czyli np. poprawić stopę błędów 1 0 pogarszając stopę błędów 0 1 lub W zbiorze dataset_wynik_klasyfikacji (patrz wskazówki 2 i 3) zlokalizuj zmienną, która ma sens cutoff probability (oznaczmy ją jako p_targetyes) Następnie wykonać program podobny do poniższego: DATA dataset_wynik_klasyfikacji_nowy; 12
odwrotnie) SET dataset_wynik_klasyfikacji; IF p_targetyes > thr THEN prediction = yes ; ELSE prediction = no ; RUN; Gdzie wartość thr (threshold) ma wpływ na czułość i specyficzność (spróbuj podać różne wartości thr, obserwuj czułość patrz wskazówka 4) 7 Wybór cech, zmiejszenie wymiarowości danych uczących 1. Z wykorzystaniem węzła Variable Selection [Grupa Explore] -- włączany przed węzłem modelującym. 2. Z wykorzystaniem węzła Principal Components [Grupa Modify]. W tym przypadku dostrajamy liczbę komponentów głównych (tj. stopień redukcji wymiarowości vs stopień utraty informacji). 8 Metauczenie Węzeł modelujący (najczęściej drzewo decyzyjne) umieszczamy pomiędzy węzłami Start Groups i End Groups [Utility], gdzie w Start Groups wybieramy Mode Bagging albo Boosting. Należy dostroić liczbę modeli tworzonych w trybie Baggingu lub Boostingu patrz parametr Index Count węzła Start Groups. Inna metoda polega na wykorzystaniu węzła Ensemble [Model], który pozwala na łączenie różnych modeli tu różne metody uśredniania wyników indywidualnych modeli warto sprawdzić. Narzędzia SAS Enterprise Miner (12.x) SAS Base język SAS 4 GL Wybrane procedury analityczne SAS i SAS/STAT Henryk.Maciejewski@pwr.wroc.pl 13