W programie AdvancedMiner można budować modele klasyfikacyjne i aproksymacyjne za pomocą narzędzia ABM, które automatycznie buduje i aktualizuje modele predykcyjne. ABM zapewnia pełną automatyzację niezbędnych, ale czasochłonnych czynności takich jak szybka selekcja zmiennych, modelowanie zależności między zmiennymi i transformacje zmiennych oraz wybieranie najlepszego modelu.
ABM jest dostępny w 4 trybach (3 tryby budowania modelu klasyfikacyjnego i 1 model budowania modelu aproksymacyjnego):
Quick - pozwala na otrzymanie odpowiedniego modelu w krótkim czasie
Advanced - używa bardziej zaawansowanych metod do wyboru funkcji i przygotowania danych
Gold - zapewnia bardziej dogłębne sprawdzenie możliwych sposobów modelowania, jednak modelowanie wymaga więcej czasu
Approximation - buduje model aproksymacji
Funkcja abm.backend.api.abmQuick wywołuje tryb ABM Quick (analogicznie jest dla Advanced i Gold)
Składnia:
abm.backend.api.abmQuick(tableName, target, targetCategory, inactiveVariables[,
qualityMeasureName = s][, cutoff = n][, samplingMode = s][, samplingSize = n][, samplingStratificationMode = s][, samplingPositiveTargetCategoryRatio = n][,
classificationThreshold = n][, prefix = s][, mrName = s][, abAliasName = s])
Objaśnienie parametrów:
tableName - nazwa tabeli
target - nazwa zmiennej target
targetCategory - przewidywana kategoria targetu
inactiveVariables - zmienne, które mają być wyłączone z modelowania (nieaktywne), na przykład:
inactiveVariables = ['age', 'duration']
qualityMeasureName - miara jakości do wyboru najlepszego modelu (LIFT, CAPTURED_RESPONSE, PRECISION, RECALL, ACCURACY), domyślnie LIFT
cutoff - na którym percentylu danych optymalizujemy miarę jakości (w przypadku LIFT i CAPTURED_RESPONSE), domyślnie 0.1
samplingMode - tryb próbkowania, domyślnie MANUAL
samplingSize - rozmiar próby, domyślnie 30000
samplingStratificationMode - tryb próbkowania warstwowego (NONE, CONST_NUM, CONST_RATIO, OVERSAMPLING), domyślnie CONST_NUM
samplingPositiveTargetCategoryRatio - proporcja pozytywnego targetu w zbiorze po próbkowaniu warstwowym, domyślnie 0.5
classificationThreshold - próg klasyfikacji, domyślnie 0.5
prefix - prefiks do nazywania obiektów ABMa w repozytorium
mrName - nazwa repozytorium, w przypadku pominięcia tego parametru zostanie wykorzystane repozytorium domyślne
abAliasName - nazwa aliasu, w przypadku pominięcia tego parametru zostanie wykorzystany domyślny alias
Funkcja abm.backend.api.abmApproximation wywołuje buduje model aproksymacji za pomocą ABMa.
Składnia:
abm.backend.api.abmApproximation(tableName, target, inactiveVariables[,
qualityMeasureName = s][, samplingMode = s][, samplingSize = n][, prefix = s][, mrName = s][, abAliasName = s])
Objaśnienie parametrów:
tableName - nazwa tabeli
target - nazwa zmiennej target
inactiveVariables - zmienne, które mają być wyłączone z modelowania (nieaktywne), na przykład:
inactiveVariables = ['age', 'duration']
qualityMeasureName - miara jakości do wyboru najlepszego modelu (MAE, MAPE, RMSE, R_SQUARED), domyślnie MAE Objaśnienie skrótów: MAE - Mean Aboslute Error, MAPE - Mean Absolute Percentage Error, RMSE - Root Mean Squared Error, R_SQUARED - współczynnik determinacji, nazywany R-kwadrat.
samplingMode - tryb próbkowania, domyślnie MANUAL
samplingSize - rozmiar próby, domyślnie 30000
prefix - prefiks do nazywania obiektów ABMa w repozytorium
mrName - nazwa repozytorium, w przypadku pominięcia tego parametru zostanie wykorzystane repozytorium domyślne
abAliasName - nazwa aliasu, w przypadku pominięcia tego parametru zostanie wykorzystany domyślny alias
Funkcja abm.backend.api.exportAbmStatistics eksportuje statystyki do Excela
Składnia:
abm.backend.api.exportAbmStatistics(abmSettingsName[,
mrName = s][, path = s][, fileName = s])
Objaśnienie parametrów:
abmSettingsName - nazwa obiektu z ustawieniami algorytmu
mrName - nazwa repozytorium, w przypadku pominięcia tego parametru zostanie wykorzystane repozytorium domyślne
path - ścieżka do miejsca, w którym znajduje się plik Excel. W przypadku braku ścieżki pojawi się okno do uzupełnienia tych informacji.
fileName - nazwa pliku Excel
Funkcja abm.backend.api.score scoruje dane wybranym modelem
Składnia:
abm.backend.api.score(mrName,settingsName, inputTableName, outputTableName,
aliasName, copyColumnList[, classificationThreshold = n])
Objaśnienie parametrów:
mrName - nazwa repozytorium
settingsName - nazwa obiektu z ustawieniami algorytmu
inputTableName - nazwa tabeli wejściowej
outputTableName - nazwa tabeli wyjściowej
aliasName - nazwa aliasu
copyColumnList - lista kolumn do skopiowania w tabeli wyjściowej
classificationThreshold - próg klasyfikacji
Funkcja abm.backend.api.calculateTestResults liczy statystyki modelu w Advanced Minerze (tylko dla modeli klasyfikacyjnych)
Składnia:
abm.backend.api.calculateTestResults(abmSettingsName, tableNames[, prefix = s][,
mrName = s][, abAliasName = s)])
Objaśnienie parametrów:
abmSettingsName - nazwa obiektu z ustawieniami algorytmu
tableNames - nowe zbiory danych do liczenia statystyk. Jeśli nie ma podanych żadnych tabel, statystyki liczone są dla tabeli wejściowej.
prefix - prefiks do nazywania obiektów ABMa w MR
mrName - nazwa repozytorium, w przypadku pominięcia tego parametru zostanie wykorzystane repozytorium domyślne
abAliasName - nazwa aliasu, w przypadku pominięcia tego parametru zostanie wykorzystany domyślny alias
Przykład 3.18. Utworzenie modelu, eksport statystyk do Excela, scorowanie danych i policzenie statystyk w Advanced Minerze
# Nazwa tabeli: tableName = 'german_credit' # Nazwa zmiennej target: target = 'Class' # Przewidywana kategoria: targetCategory = 'bad' # Zmienne, które mają być wyłączone z modelowania (nieaktywne): inactiveVariables = ['age', 'duration'] # Miara jakości do wyboru najlepszego modelu (LIFT, CAPTURED_RESPONSE, PRECISION, RECALL, ACCURACY): qualityMeasureName = 'LIFT' # Na którym percentylu danych optymalizujemy miarę jakości (w przypadku LIFT i CAPTURED_RESPONSE): cutoff = 0.1 # Tryb próbkowania: samplingMode = 'MANUAL' # Rozmiar próby: samplingSize = 30000 # Tryb próbkowania wartswowego (NONE, CONST_NUM, CONST_RATIO, OVERSAMPLING): samplingStratificationMode = 'CONST_NUM' # Proporcja pozytywnego targetu w zbiorze po próbkowaniu warstwowym: samplingPositiveTargetCategoryRatio = 0.5 # Próg klasyfikacji: classificationThreshold = 0.5 # Prefiks do nazywania obiektów ABMa w MR (czyli np. będzie quick_abmSettings): prefix = 'quick' # Nazwa repozytorium: mrName = mrRegistry().defaultRepository # Alias: abAliasName = dbAliasRegistry().getDefaultAliasName() # Import potrzebnych funkcji: import abm # Wywołanie trybu ABM Quick (analogicznie jest abmAdvanced i abmGold): abm.backend.api.abmQuick(tableName, target, targetCategory, inactiveVariables, qualityMeasureName, cutoff, samplingMode, samplingSize, samplingStratificationMode, samplingPositiveTargetCategoryRatio, classificationThreshold, prefix, mrName, abAliasName) # Eksport statystyk do Excela: abm.backend.api.exportAbmStatistics(prefix+'abmSettings', path = 'C:\some_data', fileName = 'statystyki') # Scorowanie danych wybranym modelem: abm.backend.api.score(mrName,prefix+'abmSettings', 'german_credit', 'german_credit_score', abAliasName, ['Class']) #Przykladowe wywołanie liczące statystyki dla nowych zbiorów danych: abm.backend.api.calculateTestResults('quickabmSettings', ['german_credit', 'german_credit'], 'statystyki_po_scorowaniu_')