Spis treści
W tym rozdziale pokazane jest, jak można zbudować prosty model drzew klasyfikacyjnych. Inne rodzaje modeli buduje się w podobny sposób.
Na początku należy określić, jakich danych chcemy użyć do zbudowania modelu. Należy się upewnić, czy domyślny alias do bazy danych jest prawidłowo ustawiony. Alias można zdefiniować za pomocą komponentu Services i okna dialogowego Alias, zob. IDE - Zintegrowane środowisko programistyczne, Aliasy.
W tym przykładzie wykorzystywany jest zbiór danych o nazwie 'iris'. Na początku należy zbudować obiekt PhysicalData:
pd = PhysicalData('iris')
Teraz można określićLogicalData:
ld = LogicalData(pd)
Powyższe czynności można także wykonać, korzystając z interfejsu graficznego:
Kliknij prawym przyciskiem myszy na Repository w oknie Projects, wybierz New ->Physical Data:
Pojawi się okno z listą wszystkich tabel. Wybierz właściwą ('iris') i kliknij
.Wyświetlone zostanie okno, w którym należy wprowadzić nazwę nowego obiektu PhysicalData. Wprowadź nazwę 'pd' i kliknij Projects. Obiekt LogicalData można utworzyć w ten sam sposób, wybierając -> z menu kontekstowego. Wyświetlone zostanie okno ze wszystkimi dostępnymi obiektami LogicalData. Wybierz właściwy i kliknij .
. Nowy obiekt PhysicalData o nazwie 'pd' pojawi się w oknie
Następnie należy zdecydować, jaki rodzaj modelu chcemy zbudować i utworzyć odpowiedni obiekt FunctionSettings.
cfs = ClassificationFunctionSettings()
Obiektowi FunctionSettings należy przypisać zbiór danych:
cfs.logicalData = ld
wybrać atrybut, który ma pełnić rolę target:
cfs.getAttributeUsageSet().getAttribute('Class').setUsage(UsageOption.target)
i wybrać algorytm uczący, którego chcemy użyć:
cfs.algorithmSettings = TreeSettings()
Obiekt FunctionSettings można także utworzyć, korzystając z interfejsu graficznego: kliknij prawym przyciskiem myszy na repozytorium w komponencie Projects i z menu kontekstowego wybierz -> . Wybierz rodzaj ustawień z listy i wprowadź nazwę dla nowo utworzonego obiektu FunctionSettings.
Nowy obiekt, zawierający atrybut attributeUsageSet, pojawi się w oknie Projects. Obiekt ten należy za pomocą menu kontekstowego dodać do odpowiednich obiektów LogicalData i AlgorithmSettings:
Po wybraniu AlgorithmSettings wyświetlone zostanie okno z listą wszystkich dostępnych ustawień, z których należy wybrać te, które nas interesuje (TreeSettings):
Aby zakończyć tworzenie obiektu FunctionSettings należy otworzyć attributeUsageSet (za pomocą podwójnego kliknięcia lub polecenia target:
w menu kontekstowym) i wybrać jedną zmienną, która będzie pełnić rolęW przypadku pozostałych zmiennych, ich role można określić jako obligatory (obligatoryjne), active (aktywne), inactive (nieaktywne), itp. Zmienne aktywne mogą być potraktowane jako zmienne niezależne w procesie budowy modelu, zmienne nieaktywne zostaną pominięte przy budowie modelu. W przypadku niektórych modeli, można wymusić wykorzystanie danej zmiennej, określając ją jako obligatoryjną.
Teraz trzeba utworzyć obiekt MiningBuildTask. Wpierw należy jednak zapisać wcześniej utworzone obiekty PhysicalData i FunctionSettings w repozytorium (Metadata Repository). Do tego momentu wszystkie utworzone obiekty istniały tylko lokalnie. Aby były one widoczne dla serwera systemu AdvancedMiner, muszą one zostać zapisane w repozytorium. Tworząc obiekt MiningBuildTask należy zadeklarować obiekty PhysicalData i FunctionSettings podając ich nazwy:
save('physical_data', pd) save('cfs_Tree', cfs)
Teraz możemy utworzyć:
mbt = MiningBuildTask('physical_data', 'cfs_Tree', 'model_name' )
Przed wywołaniem obiektu MiningBuildTask, musimy go zapisać:
save('mbt_Tree', mbt)
i ostatecznie możemy wywołać utworzony obiekt:
execute('mbt_Tree')
Jako wynik otrzymamy model o nazwie model_name. Rysunek poniżej pokazuje, jakie obiekty pojawią się w repozytorium po wykonaniu kodu powyżej.
Procedurę budowania modelu można także przeprowadzać za pomocą interfejsu graficznego. Z menu kontekstowego wybierz
-> i wybierz rodzaj zadania z listy:Kliknij
, wprowadź nazwę utworzonego zadania i kliknij .W następnym kroku do nowo utworzonego obiektu MiningBuildTask należy dodać wszystkie wymagane elementy (functionSettings, buildData, model):
Aby podać referencję do modelu, w oknie kreatora wprowadzamy nazwę modelu i klikamy
.Po wykonaniu kroków opisanych powyżej utworzone obiekty można przetestować, aby wykryć ewentualne problemy. Zapisz je za pomocą przycisku
na pasku narzędzi lub wybierając polecenie -> z menu programu.Aby wywołać utworzony obiekt MiningBuildTask wciśnij F6 lub wybierz z menu kontekstowego.
Nazwa nowego modelu jest taka sama, jak nazwa w ustawieniach obiektu MiningBuildTask, nawet w przypadku, gdy model o tej nazwie już istnieje w repozytorium. W takiej sytuacji nazwa już istniejącego modelu zostanie zmieniona na nazwa_modelu_1, kolejnego utworzonego modelu na nazwa_modelu_2, itd. Dzięki temu nie zmienią się nazwy istniejących modeli.
Pierwszym krokiem przy budowaniu modelu aproksymacyjnego jest wczytanie danych. Niektóre metody aproksymacji wymagają danych określonego rodzaju, czasami trzeba też przeprowadzić wstępną obróbkę danych. Wszystkie niezbędne informacje o tym, jak należy przygotować dane dla poszczególnych metod można znaleźć w dokumentacji do modułów (Modules).
W przypadku modeli aproksymacyjnych zmienna o funkcji target musi być numeryczna.
W drugim kroku wybierana jest metoda aproksymacji. Obiekt FunctionSettings można utworzyć w następujący sposób:
cfs = ApproximationFunctionSettings()
Jeśli przetestujemy utworzony obiekt, zobaczymy następującą informację:
Logical data not provided
Należy podać obiek LogicalData. Można to zrobić za pomocą instrukcji:
afs.logicalData = ld
gdzie ld oznacza obiekt typu LogicalData, który został utworzony wcześniej.
Algorithm settings not provided
Wybór metody jest równoważny wyborowi odpowiednich ustawień algorytmu. Dostępne są następujące metody aproksymacji: Regresja liniowa, Regresja ważona, IRLS, Sieci neuronowe.
Target attribute not specified
Należy podać nazwę atrybutu, które będzie pełnił rolę target. Można to zrobić za pomocą instrukcji:
cfs.targetAttributeName = 'Target_Attribute_Name'
W ostatnim kroku należy utworzyć i wywołać MiningBuidTask. Jest to opisane w podrozdziale Budowanie modelu.
Pierwszym krokiem przy budowaniu modelu klasyfikacyjnego jest wczytanie danych. Niektóre metody klasyfikacji wymagają danych określonego rodzaju, czasami trzeba też przeprowadzić wstępną obróbkę danych. Wszystkie niezbędne informacje o tym, jak należy przygotować dane dla poszczególnych metod można znaleźć w dokumentacji do modułów (Modules).
Dla każdej metody klasyfikacji zmienna określona jako target musi być kategorialna.
W drugim kroku wybierana jest metoda klasyfikacji. Niezbędny do tego obiekt ClassificationFunctionSettings można utworzyć w następujący sposób:
cfs = ClassificationFunctionSettings()
Jeśli przetestujemy utworzony obiekt, zobaczymy następującą informację:
Logical data not provided
Należy podać obiekt LogicalData. Można to zrobić za pomocą instrukcji:
cfs.logicalData = ld
gdzie ld oznacza obiekt typu LogicalData, który został utworzony wcześniej.
Algorithm settings not provided
Wybór metody jest równoważny wyborowi odpowiednich ustawień algorytmu. Dostępne są następujące metody klasyfikacji: Sieci Kohonena, Sieci Neuronowe, Drzewa Klasyfikacyjne, Regresja Logistyczna, Bivariate Probit, Analiza dyskriminacyjna.
Tabela 3.2. Metody klasyfikacyjne - ustawienia algorytmu
Metoda | Nazwa obiektu AlgporithmSettings Name |
---|---|
Bivariate Probit | BivariateProbitSettings |
Analiza Dyskryminacyjna | DiscriminantSettings |
Sieci Neuronowe | FeedforwardNeuralNetSettings |
Sieci Kohonena | KohonenClassificationSettings |
Regresja Logistyczna | LogisticRegressionSettings |
Drzewa Klasyfikacyjne | TreeSettings |
Target attribute not specified
Należy podać nazwę atrybutu, które będzie pełnił rolę target. Można to zrobić za pomocą instrukcji:
cfs.targetAttributeName = 'Target_Attribute_Name'
W ostatnim kroku należy utworzyć i wywołać MiningBuidTask. Jest to opisane w podrozdziale Budowanie modelu.
Pierwszym krokiem przy budowaniu modelu skupieniowego jest wczytanie danych. Wszystkie niezbędne informacje dotyczące wstępnej obróbki danych można znaleźć w podrozdziale Sieci Kohonena.
W kolejnym kroku należy wybrać konkretną metodę analizy skupień. Niezbędny do tego obiekt ClusteringFunctionSettings można utworzyć w następujący sposób:
cfs = ClusteringFunctionSettings()
Testując tak utworzony obiekt, zobaczymy następujący komunikat:
Logical data not provided
Powinien zostać przypisany obiekt LogicalData. Można to zrobić za pomocą instrukcji:
cfs.logicalData = ld
gdzie ld oznacza obiekt LogicalData utworzony wcześniej.
Algorithm settings not provided
Wybór metody jest równoważny wyborowi odpowiednich ustawień algorytmu. Dostępne są następujące algorytmy tworzenia skupisk: Sieci Kohonena i KMeans. Ustawienia algorytmu można dodać za pomocą polecenia:
cfs.algorithmSettings = KohonenClusteringSettings()
W ostatnim kroku należy utworzyć i wywołać obiekt MiningBuidTask. Jest to opisane w podrozdziale Budowanie modelu.
Aby zbudować model przeżycia Cox'a należy utworzyć obiekt MiningBuildTask z odpowiednimi danymi i ustawieniami dla tego modelu. Należy pamiętać, że model Cox'a wymaga dodatkowych ustawień Censor i Censored category:
Zmienna censor jest ustawiana poprzez functionSettings->attributeUsageSet a Censored category jest ustawiana w functionSettings.
Stosując zbudowany model otrzymamy dane wynikowe, które można zapisać w bazie danych lub pliku. Dane te zawierają przewidywany czas przetrwania i dane, które zostały wykorzystane do jego wyznaczenia.