Rozdział 1. Ręczna budowa karty skoringowej

Niniejszy rozdział przedstawia prosty przykład procesu ręcznej budowy karty skoringowej za pomocą modułu Scoring Card.

Przed przystąpieniem do ręcznej budowy karty skoringowej niezbędne jest posiadanie danych w postaci tabelki w bazie danych. Ponadto zakłada się, że użytkownik zapoznał się z QuickStart.

Poniższy przykład wykorzystuje dane 'german_credit'. Wszystkie nazwy wymienione w cudzysłowie są przykładowymi nazwami obiektów.

W procesie budowy modelu karty skoringowej wykorzystywane są następujące obiekty MR:

Rysunek 1.1. Schemat procesu ręcznej budowy karty skoringowej

Schemat procesu ręcznej budowy karty skoringowej

Zadanie ręcznej budowy karty skoringowej składa się z etapu budowy struktury karty oraz przydzielenia liczby punktów.

Jeżeli wszystko poprawnie udało się zdefiniować, w wyniku działania 'ScoringCardBuildTask' w repozytorium pojawi się karta skoringowa. Wymaga ona jednak doprecyzowania parametrów dotyczących targetu oraz ręcznego zdefiniowania punktów (znakiem, że karta nie jest w pełni gotowa, jest zółta ikonka przyczepiona do ikonki modelu ). Aby proces budowy karty można było uznać za skończony należy wykonać dodatkowo kroki:

Po ustawieniu dodatkowych parametrów karta staje się prawidłowym modelem, który można obejrzeć, klikając dwukrotnie na ikonkę modelu (zobacz film). Poniższa ilustracja pokazuje postać repozytorium oraz kartę po wykonaniu wyżej opisanych kroków.

Rysunek 1.2. Wynik działania ScoringCardBuildTask

Wynik działania ScoringCardBuildTask

Ostatnią czynnością, którą należy wykonać jest przydzielenie punktów i ewentualna edycja atrybutów (zobacz film).

Wyżej przedstawione czynności można również wykonać w języku skryptowym.

Notatka

Poniższy skrypt obejmuje jedynie tworzenie struktury karty - edycja punktów jest znacznie wygodniejsza przy użyciu widoku karty.

Przykład 1.1. Proces ręcznej budowy karty skoringowej


#                               PROCES RĘCZNEJ BUDOWY KARTY SKORINGOWEJ  

# krok 1 -- tworzymy i zapisujemy PhysicalData w repozytorium 
#        -- wskazujemy zbiór do modelowania: 'german_credit'
PD = PhysicalData('german_credit')
save('german_credit_pd',PD)

# krok 2 -- tworzymy MiningFunctionSettings -->> ScoringCardSettings()
#        -- wybieramy ustawienia do budowy karty skoringowej
MFS = ScoringCardSettings()

# krok 2a -- MiningFunctionSettings: dodajemy logicalData
#         -- definiujemy logiczną strukturę danych wejściowych na podstawie PhysicalData
MFS.setLogicalData(LogicalData(PD))

# krok 2b -- MiningFunctionSettings -> attributeUsageSet: ustawiamy target
#         -- ustawiamy zmienną 'Class' jako target
MFS.getAttributeUsageSet().getAttribute('Class').usage = UsageOption.target

# kroki 2,2a,2b -- zapisujemy ustawienia MiningFunctionSettings w repozytorium
save('ScoringCardSettings',MFS)

# krok 3 -- tworzymy MiningBuildTask
#        -- określamy cel zadania: budowa modelu (karty)
MBT = MiningBuildTask()

# krok 3a -- MiningBuildTask: dodajemy buildData
#         -- dodajemy dane do modelowania
MBT.setBuildDataName('german_credit_pd')

# krok 3b -- MiningBuildTask: dodajemy functionSettings
#         -- dodajemy ustawienia związane z budową karty skoringowej
MBT.setFunctionSettingsName('ScoringCardSettings')

# krok 3c -- MiningBuildTask: dodajemy model 
#         -- definiujemy nazwę wynikowej karty skoringowej
MBT.setModelName('CARD')

# kroki 3,3a,3b,3c -- zapisujemy zadanie MiningBuildTask w repozytorium
save('ScoringCardBuildTask',MBT)

# krok 4 -- wykonujemy zadanie
execute('ScoringCardBuildTask')

# krok 5 -- CARD: ustawienia targetu
#        -- pobieramy model 'CARD' do edycji
M = load('CARD')

# krok 5a -- properties: wskazujemy target
#         -- deklarujemy zmienną 'Class' jako target
M.setTargetAttributeName('Class')

# krok 5b -- properties: określamy klasę pozytywną i negatywną targetu 
#         -- wskazujemy wartość 'bad' jako pozytywną kategorię targetu oraz wartość 'good' jako kategorię negatywną
M.setPositiveTargetValue('bad')
M.setNegativeTargetValue('good')

# krok 5c -- properties: ustalenie typu zmiennej target
#         -- deklarujemy typ zmiennej target jako tekstowy
M.setTargetAttributeDataType(AttributeDataType.stringType)

# kroki 5,5a,5b,5c -- zapisujemy dokonane zmiany w karcie 'CARD' 
save('CARD' , M)


print "Done..."

Output:

Done...