Budowanie modeli w programie AdvancedMiner za pomocą funkcji ABM

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):

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:

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:

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:

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:

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:

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_')