Выполните автоматическое раскладывание данных предикторов
sc = autobinning(sc)
sc = autobinning(sc,PredictorNames)
sc = autobinning(___,Name,Value)
выполняет автоматическое раскладывание всех предикторов.sc
= autobinning(sc
)
Автоматическое раскладывание находит карты раскладывания или правила к числовым данным интервала и сгруппировать категории категориальных данных. Правила раскладывания хранятся в объекте creditscorecard
. Применять правила раскладывания к данным объектов creditscorecard
, или к новому набору данных, bindata
использования.
выполняет автоматическое раскладывание предикторов, данных в sc
= autobinning(sc
,PredictorNames
)PredictorNames
.
Автоматическое раскладывание находит карты раскладывания или правила к числовым данным интервала и сгруппировать категории категориальных данных. Правила раскладывания хранятся в объекте creditscorecard
. Применять правила раскладывания к данным объектов creditscorecard
, или к новому набору данных, bindata
использования.
выполняет автоматическое раскладывание предикторов, данных в sc
= autobinning(___,Name,Value
)PredictorNames
с помощью дополнительных аргументов пары "имя-значение". Смотрите аргумент Algorithm
значения имени для описания поддерживаемых алгоритмов раскладывания.
Автоматическое раскладывание находит карты раскладывания или правила к числовым данным интервала и сгруппировать категории категориальных данных. Правила раскладывания хранятся в объекте creditscorecard
. Применять правила раскладывания к данным объектов creditscorecard
, или к новому набору данных, bindata
использования.
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить данные (использующий набор данных от Refaat 2011).
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое раскладывание с помощью опций по умолчанию. По умолчанию, интервалы autobinning
все предикторы и использование алгоритм Monotone
.
sc = autobinning(sc);
Используйте bininfo
, чтобы отобразить сгруппированные данные для предиктора CustAge
.
bi = bininfo(sc, 'CustAge')
bi=8×6 table
Bin Good Bad Odds WOE InfoValue
___________ ____ ___ ______ _________ _________
'[-Inf,33)' 70 53 1.3208 -0.42622 0.019746
'[33,37)' 64 47 1.3617 -0.39568 0.015308
'[37,40)' 73 47 1.5532 -0.26411 0.0072573
'[40,46)' 174 94 1.8511 -0.088658 0.001781
'[46,48)' 61 25 2.44 0.18758 0.0024372
'[48,58)' 263 105 2.5048 0.21378 0.013476
'[58,Inf]' 98 26 3.7692 0.62245 0.0352
'Totals' 803 397 2.0227 NaN 0.095205
Используйте plotbins
, чтобы отобразить гистограмму и кривую WOE для предиктора CustAge
.
plotbins(sc,'CustAge')
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить data
(использующий набор данных от Refaat 2011).
load CreditCardData
sc = creditscorecard(data);
Выполните автоматическое раскладывание для предиктора CustIncome
с помощью опций по умолчанию. По умолчанию autobinning
использует алгоритм Monotone
.
sc = autobinning(sc,'CustIncome');
Используйте bininfo
, чтобы отобразить сгруппированные данные.
bi = bininfo(sc, 'CustIncome')
bi=8×6 table
Bin Good Bad Odds WOE InfoValue
_______________ ____ ___ _______ _________ __________
'[-Inf,29000)' 53 58 0.91379 -0.79457 0.06364
'[29000,33000)' 74 49 1.5102 -0.29217 0.0091366
'[33000,35000)' 68 36 1.8889 -0.06843 0.00041042
'[35000,40000)' 193 98 1.9694 -0.026696 0.00017359
'[40000,42000)' 68 34 2 -0.011271 1.0819e-05
'[42000,47000)' 164 66 2.4848 0.20579 0.0078175
'[47000,Inf]' 183 56 3.2679 0.47972 0.041657
'Totals' 803 397 2.0227 NaN 0.12285
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить data
(использующий набор данных от Refaat 2011).
load CreditCardData
sc = creditscorecard(data);
Выполните автоматическое раскладывание для предиктора CustIncome
с помощью алгоритма Monotone
с начальным количеством набора интервалов к 20. Этот пример явным образом устанавливает и Algorithm
и аргументы значения имени AlgorithmOptions
.
AlgoOptions = {'InitialNumBins',20}; sc = autobinning(sc,'CustIncome','Algorithm','Monotone','AlgorithmOptions',... AlgoOptions);
Используйте bininfo
, чтобы отобразить сгруппированные данные. Здесь, точки разделения, которые разграничивают интервалы, также отображены.
[bi,cp] = bininfo(sc,'CustIncome')
bi=11×6 table
Bin Good Bad Odds WOE InfoValue
_______________ ____ ___ _______ _________ __________
'[-Inf,19000)' 2 3 0.66667 -1.1099 0.0056227
'[19000,29000)' 51 55 0.92727 -0.77993 0.058516
'[29000,31000)' 29 26 1.1154 -0.59522 0.017486
'[31000,34000)' 80 42 1.9048 -0.060061 0.0003704
'[34000,35000)' 33 17 1.9412 -0.041124 7.095e-05
'[35000,40000)' 193 98 1.9694 -0.026696 0.00017359
'[40000,42000)' 68 34 2 -0.011271 1.0819e-05
'[42000,43000)' 39 16 2.4375 0.18655 0.001542
'[43000,47000)' 125 50 2.5 0.21187 0.0062972
'[47000,Inf]' 183 56 3.2679 0.47972 0.041657
'Totals' 803 397 2.0227 NaN 0.13175
cp = 9×1
19000
29000
31000
34000
35000
40000
42000
43000
47000
Этот пример показывает, как использовать значение по умолчанию autobinning
алгоритм Monotone
и аргументы пары "имя-значение" AlgorithmOptions
, сопоставленные с алгоритмом Monotone
. AlgorithmOptions
для алгоритма Monotone
является тремя параметрами пары "имя-значение": ‘InitialNumBins'
, 'Trend'
и 'SortCategories'
. 'InitialNumBins'
и 'Trend'
применимы для числовых предикторов, и 'Trend'
и 'SortCategories'
применимы для категориальных предикторов.
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить данные (использующий набор данных от Refaat 2011).
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое раскладывание для числового предиктора CustIncome
с помощью алгоритма Monotone
с 20 интервалами. Этот пример явным образом устанавливает и аргумент Algorithm
и аргументы значения имени AlgorithmOptions
для 'InitialNumBins'
и 'Trend'
.
AlgoOptions = {'InitialNumBins',20,'Trend','Increasing'}; sc = autobinning(sc,'CustIncome','Algorithm','Monotone',... 'AlgorithmOptions',AlgoOptions);
Используйте bininfo
, чтобы отобразить сгруппированные данные.
bi = bininfo(sc,'CustIncome')
bi=11×6 table
Bin Good Bad Odds WOE InfoValue
_______________ ____ ___ _______ _________ __________
'[-Inf,19000)' 2 3 0.66667 -1.1099 0.0056227
'[19000,29000)' 51 55 0.92727 -0.77993 0.058516
'[29000,31000)' 29 26 1.1154 -0.59522 0.017486
'[31000,34000)' 80 42 1.9048 -0.060061 0.0003704
'[34000,35000)' 33 17 1.9412 -0.041124 7.095e-05
'[35000,40000)' 193 98 1.9694 -0.026696 0.00017359
'[40000,42000)' 68 34 2 -0.011271 1.0819e-05
'[42000,43000)' 39 16 2.4375 0.18655 0.001542
'[43000,47000)' 125 50 2.5 0.21187 0.0062972
'[47000,Inf]' 183 56 3.2679 0.47972 0.041657
'Totals' 803 397 2.0227 NaN 0.13175
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить data
(использующий набор данных от Refaat 2011).
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое раскладывание для предиктора CustIncome
и CustAge
с помощью алгоритма Monotone
по умолчанию с AlgorithmOptions
для InitialNumBins
и Trend
.
AlgoOptions = {'InitialNumBins',20,'Trend','Increasing'}; sc = autobinning(sc,{'CustAge','CustIncome'},'Algorithm','Monotone',... 'AlgorithmOptions',AlgoOptions);
Используйте bininfo
, чтобы отобразить сгруппированные данные.
bi1 = bininfo(sc, 'CustIncome')
bi1=11×6 table
Bin Good Bad Odds WOE InfoValue
_______________ ____ ___ _______ _________ __________
'[-Inf,19000)' 2 3 0.66667 -1.1099 0.0056227
'[19000,29000)' 51 55 0.92727 -0.77993 0.058516
'[29000,31000)' 29 26 1.1154 -0.59522 0.017486
'[31000,34000)' 80 42 1.9048 -0.060061 0.0003704
'[34000,35000)' 33 17 1.9412 -0.041124 7.095e-05
'[35000,40000)' 193 98 1.9694 -0.026696 0.00017359
'[40000,42000)' 68 34 2 -0.011271 1.0819e-05
'[42000,43000)' 39 16 2.4375 0.18655 0.001542
'[43000,47000)' 125 50 2.5 0.21187 0.0062972
'[47000,Inf]' 183 56 3.2679 0.47972 0.041657
'Totals' 803 397 2.0227 NaN 0.13175
bi2 = bininfo(sc, 'CustAge')
bi2=8×6 table
Bin Good Bad Odds WOE InfoValue
___________ ____ ___ ______ _________ __________
'[-Inf,35)' 93 76 1.2237 -0.50255 0.038003
'[35,40)' 114 71 1.6056 -0.2309 0.0085141
'[40,42)' 52 30 1.7333 -0.15437 0.0016687
'[42,44)' 58 32 1.8125 -0.10971 0.00091888
'[44,47)' 97 51 1.902 -0.061533 0.00047174
'[47,62)' 333 130 2.5615 0.23619 0.020605
'[62,Inf]' 56 7 8 1.375 0.071647
'Totals' 803 397 2.0227 NaN 0.14183
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить data
(использующий набор данных от Refaat 2011).
load CreditCardData
sc = creditscorecard(data);
Выполните автоматическое раскладывание для предиктора, который является категориальным предиктором под названием ResStatus
с помощью опций по умолчанию. По умолчанию autobinning
использует алгоритм Monotone
.
sc = autobinning(sc,'ResStatus');
Используйте bininfo
, чтобы отобразить сгруппированные данные.
bi = bininfo(sc, 'ResStatus')
bi=4×6 table
Bin Good Bad Odds WOE InfoValue
____________ ____ ___ ______ _________ _________
'Tenant' 307 167 1.8383 -0.095564 0.0036638
'Home Owner' 365 177 2.0621 0.019329 0.0001682
'Other' 131 53 2.4717 0.20049 0.0059418
'Totals' 803 397 2.0227 NaN 0.0097738
Этот пример показывает, как изменить данные (только для этого примера), чтобы проиллюстрировать раскладывание категориальные предикторы с помощью алгоритма Monotone
.
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить data
(использующий набор данных от Refaat 2011).
load CreditCardData
Добавьте две новых категории и обновление переменной отклика.
newdata = data; rng('default'); %for reproducibility Predictor = 'ResStatus'; Status = newdata.status; NumObs = length(newdata.(Predictor)); Ind1 = randi(NumObs,100,1); Ind2 = randi(NumObs,100,1); newdata.(Predictor)(Ind1) = 'Subtenant'; newdata.(Predictor)(Ind2) = 'CoOwner'; Status(Ind1) = randi(2,100,1)-1; Status(Ind2) = randi(2,100,1)-1; newdata.status = Status;
Обновите объект creditscorecard
с помощью newdata
и постройте интервалы для более позднего сравнения.
scnew = creditscorecard(newdata,'IDVar','CustID'); [bi,cg] = bininfo(scnew,Predictor)
bi=6×6 table
Bin Good Bad Odds WOE InfoValue
____________ ____ ___ ______ ________ _________
'Home Owner' 308 154 2 0.092373 0.0032392
'Tenant' 264 136 1.9412 0.06252 0.0012907
'Other' 109 49 2.2245 0.19875 0.0050386
'Subtenant' 42 42 1 -0.60077 0.026813
'CoOwner' 52 44 1.1818 -0.43372 0.015802
'Totals' 775 425 1.8235 NaN 0.052183
cg=5×2 table
Category BinNumber
____________ _________
'Home Owner' 1
'Tenant' 2
'Other' 3
'Subtenant' 4
'CoOwner' 5
plotbins(scnew,Predictor)
Выполните автоматическое раскладывание для категориального Predictor
с помощью алгоритма Monotone
по умолчанию с аргументами пары "имя-значение" AlgorithmOptions
для 'SortCategories'
и 'Trend'
.
AlgoOptions = {'SortCategories','Goods','Trend','Increasing'}; scnew = autobinning(scnew,Predictor,'Algorithm','Monotone',... 'AlgorithmOptions',AlgoOptions);
Используйте bininfo
, чтобы отобразить информацию об интервале. Второй 'cg'
выходного параметра получает членство в интервале, которое является номером интервала, которому принадлежит каждая группа.
[bi,cg] = bininfo(scnew,Predictor)
bi=4×6 table
Bin Good Bad Odds WOE InfoValue
________ ____ ___ ______ ________ _________
'Group1' 42 42 1 -0.60077 0.026813
'Group2' 52 44 1.1818 -0.43372 0.015802
'Group3' 681 339 2.0088 0.096788 0.0078459
'Totals' 775 425 1.8235 NaN 0.05046
cg=5×2 table
Category BinNumber
____________ _________
'Subtenant' 1
'CoOwner' 2
'Other' 3
'Tenant' 3
'Home Owner' 3
Постройте интервалы и сравните с построенным предварительным раскладыванием гистограммы.
plotbins(scnew,Predictor)
Создайте объект creditscorecard
с помощью файла CreditCardData.mat
, чтобы загрузить dataMissing
с отсутствующими значениями.
load CreditCardData.mat
head(dataMissing,5)
ans=5×11 table
CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate status
______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______
1 53 62 <undefined> Unknown 50000 55 Yes 1055.9 0.22 0
2 61 22 Home Owner Employed 52000 25 Yes 1161.6 0.24 0
3 47 30 Tenant Employed 37000 61 No 877.23 0.29 0
4 NaN 75 Home Owner Employed 53000 20 Yes 157.37 0.08 0
5 68 56 Home Owner Employed 53000 14 Yes 561.84 0.11 0
fprintf('Number of rows: %d\n',height(dataMissing))
Number of rows: 1200
fprintf('Number of missing values CustAge: %d\n',sum(ismissing(dataMissing.CustAge)))
Number of missing values CustAge: 30
fprintf('Number of missing values ResStatus: %d\n',sum(ismissing(dataMissing.ResStatus)))
Number of missing values ResStatus: 40
Используйте creditscorecard
с набором аргумента 'BinMissingData'
значения имени к true
к интервалу недостающие числовые и категориальные данные в отдельном интервале.
sc = creditscorecard(dataMissing,'BinMissingData',true);
disp(sc)
creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: '' VarNames: {1x11 cell} NumericPredictors: {1x7 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 1 IDVar: '' PredictorVars: {1x10 cell} Data: [1200x11 table]
Выполните автоматическое раскладывание с помощью алгоритма Merge
.
sc = autobinning(sc,'Algorithm','Merge');
Отобразите информацию об интервале для числовых данных для 'CustAge'
, который включает недостающие данные в отдельный интервал, маркировал <missing>
, и это - последний интервал. Неважно, какой алгоритм раскладывания используется в autobinning
, алгоритм работает с ненедостающими данными, и интервал для числовых значений <missing>
для предиктора всегда является последним интервалом.
[bi,cp] = bininfo(sc,'CustAge');
disp(bi)
Bin Good Bad Odds WOE InfoValue ___________ ____ ___ _______ ________ __________ '[-Inf,32)' 56 39 1.4359 -0.34263 0.0097643 '[32,33)' 13 13 1 -0.70442 0.011663 '[33,34)' 9 11 0.81818 -0.90509 0.014934 '[34,65)' 677 317 2.1356 0.054351 0.002424 '[65,Inf]' 29 6 4.8333 0.87112 0.018295 '<missing>' 19 11 1.7273 -0.15787 0.00063885 'Totals' 803 397 2.0227 NaN 0.057718
plotbins(sc,'CustAge')
Отобразите информацию об интервале для категориальных данных для 'ResStatus'
, который включает недостающие данные в отдельный интервал, маркировал <missing>
, и это - последний интервал. Неважно, какой алгоритм раскладывания используется в autobinning
, алгоритм работает с ненедостающими данными и интервалом для <missing>
, категориальные значения для предиктора всегда являются последним интервалом.
[bi,cg] = bininfo(sc,'ResStatus');
disp(bi)
Bin Good Bad Odds WOE InfoValue ___________ ____ ___ ______ _________ __________ 'Group1' 648 332 1.9518 -0.035663 0.0010449 'Group2' 128 52 2.4615 0.19637 0.0055808 '<missing>' 27 13 2.0769 0.026469 2.3248e-05 'Totals' 803 397 2.0227 NaN 0.0066489
plotbins(sc,'ResStatus')
Этот пример демонстрирует использование алгоритма 'Split'
с категориальными и числовыми предикторами. Загрузите набор данных CreditCardData.mat
и измените так, чтобы он содержал четыре категории для предиктора 'ResStatus'
, чтобы продемонстрировать, как алгоритм разделения работает.
load CreditCardData.mat x = data.ResStatus; Ind = find(x == 'Tenant'); Nx = length(Ind); x(Ind(1:floor(Nx/3))) = 'Subletter'; data.ResStatus = x;
Создайте creditscorecard
и используйте bininfo
, чтобы отобразить 'Statistics'
.
sc = creditscorecard(data,'IDVar','CustID'); [bi1,cg1] = bininfo(sc,'ResStatus','Statistics',{'Odds','WOE','InfoValue'}); disp(bi1)
Bin Good Bad Odds WOE InfoValue ____________ ____ ___ ______ _________ __________ 'Home Owner' 365 177 2.0621 0.019329 0.0001682 'Tenant' 204 112 1.8214 -0.1048 0.0029415 'Other' 131 53 2.4717 0.20049 0.0059418 'Subletter' 103 55 1.8727 -0.077023 0.00079103 'Totals' 803 397 2.0227 NaN 0.0098426
disp(cg1)
Category BinNumber ____________ _________ 'Home Owner' 1 'Tenant' 2 'Other' 3 'Subletter' 4
Используя алгоритм разделения с категориальным предиктором
Примените предварительную сортировку к категории 'ResStatus'
с помощью сортировки значения по умолчанию по 'Odds'
и задайте алгоритм 'Split'
.
sc = autobinning(sc,'ResStatus', 'Algorithm', 'split','AlgorithmOptions',... {'Measure','gini','SortCategories','odds','Tolerance',1e-4}); [bi2,cg2] = bininfo(sc,'ResStatus','Statistics',{'Odds','WOE','InfoValue'}); disp(bi2)
Bin Good Bad Odds WOE InfoValue ________ ____ ___ ______ _________ _________ 'Group1' 307 167 1.8383 -0.095564 0.0036638 'Group2' 365 177 2.0621 0.019329 0.0001682 'Group3' 131 53 2.4717 0.20049 0.0059418 'Totals' 803 397 2.0227 NaN 0.0097738
disp(cg2)
Category BinNumber ____________ _________ 'Tenant' 1 'Subletter' 1 'Home Owner' 2 'Other' 3
Используя алгоритм разделения с числовым предиктором
Продемонстрировать разделение для числового предиктора, 'TmAtAddress'
, сначала autobinning
использования с алгоритмом 'Monotone'
по умолчанию.
sc = autobinning(sc,'TmAtAddress'); bi3 = bininfo(sc,'TmAtAddress','Statistics',{'Odds','WOE','InfoValue'}); disp(bi3)
Bin Good Bad Odds WOE InfoValue ___________ ____ ___ ______ _________ __________ '[-Inf,23)' 239 129 1.8527 -0.087767 0.0023963 '[23,83)' 480 232 2.069 0.02263 0.00030269 '[83,Inf]' 84 36 2.3333 0.14288 0.00199 'Totals' 803 397 2.0227 NaN 0.004689
Затем используйте autobinning
с алгоритмом 'Split'
.
sc = autobinning(sc,'TmAtAddress','Algorithm', 'Split'); bi4 = bininfo(sc,'TmAtAddress','Statistics',{'Odds','WOE','InfoValue'}); disp(bi4)
Bin Good Bad Odds WOE InfoValue __________ ____ ___ _______ _________ __________ '[-Inf,4)' 20 12 1.6667 -0.19359 0.0010299 '[4,5)' 4 7 0.57143 -1.264 0.015991 '[5,23)' 215 110 1.9545 -0.034261 0.00031973 '[23,33)' 130 39 3.3333 0.49955 0.0318 '[33,Inf]' 434 229 1.8952 -0.065096 0.0023664 'Totals' 803 397 2.0227 NaN 0.051507
Загрузите набор данных CreditCardData.mat
. Этот пример демонстрирует использование алгоритма 'Merge'
с категориальными и числовыми предикторами.
load CreditCardData.mat
Используя алгоритм слияния с категориальным предиктором
Чтобы объединить категориальный предиктор, создайте creditscorecard
с помощью сортировки значения по умолчанию по 'Odds'
и затем используйте bininfo
на категориальном предикторе 'ResStatus'
.
sc = creditscorecard(data,'IDVar','CustID'); [bi1,cg1] = bininfo(sc,'ResStatus','Statistics',{'Odds','WOE','InfoValue'}); disp(bi1);
Bin Good Bad Odds WOE InfoValue ____________ ____ ___ ______ _________ _________ 'Home Owner' 365 177 2.0621 0.019329 0.0001682 'Tenant' 307 167 1.8383 -0.095564 0.0036638 'Other' 131 53 2.4717 0.20049 0.0059418 'Totals' 803 397 2.0227 NaN 0.0097738
disp(cg1);
Category BinNumber ____________ _________ 'Home Owner' 1 'Tenant' 2 'Other' 3
Используйте autobinning
и задайте алгоритм 'Merge'
.
sc = autobinning(sc,'ResStatus','Algorithm', 'Merge'); [bi2,cg2] = bininfo(sc,'ResStatus','Statistics',{'Odds','WOE','InfoValue'}); disp(bi2)
Bin Good Bad Odds WOE InfoValue ________ ____ ___ ______ _________ _________ 'Group1' 672 344 1.9535 -0.034802 0.0010314 'Group2' 131 53 2.4717 0.20049 0.0059418 'Totals' 803 397 2.0227 NaN 0.0069732
disp(cg2)
Category BinNumber ____________ _________ 'Tenant' 1 'Home Owner' 1 'Other' 2
Используя алгоритм слияния с числовым предиктором
Продемонстрировать слияние для числового предиктора, 'TmAtAddress'
, сначала autobinning
использования с алгоритмом 'Monotone'
по умолчанию.
sc = autobinning(sc,'TmAtAddress'); bi3 = bininfo(sc,'TmAtAddress','Statistics',{'Odds','WOE','InfoValue'}); disp(bi3)
Bin Good Bad Odds WOE InfoValue ___________ ____ ___ ______ _________ __________ '[-Inf,23)' 239 129 1.8527 -0.087767 0.0023963 '[23,83)' 480 232 2.069 0.02263 0.00030269 '[83,Inf]' 84 36 2.3333 0.14288 0.00199 'Totals' 803 397 2.0227 NaN 0.004689
Затем используйте autobinning
с алгоритмом 'Merge'
.
sc = autobinning(sc,'TmAtAddress','Algorithm', 'Merge'); bi4 = bininfo(sc,'TmAtAddress','Statistics',{'Odds','WOE','InfoValue'}); disp(bi4)
Bin Good Bad Odds WOE InfoValue ___________ ____ ___ _______ _________ __________ '[-Inf,28)' 303 152 1.9934 -0.014566 8.0646e-05 '[28,30)' 27 2 13.5 1.8983 0.054264 '[30,98)' 428 216 1.9815 -0.020574 0.00022794 '[98,106)' 11 13 0.84615 -0.87147 0.016599 '[106,Inf]' 34 14 2.4286 0.18288 0.0012942 'Totals' 803 397 2.0227 NaN 0.072466
sc
— Модель протокола результатов кредитаcreditscorecard
Модель протокола результатов кредита, заданная как объект creditscorecard
. Используйте creditscorecard
, чтобы создать объект creditscorecard
.
PredictorNames
— Предиктор или предикторы называют к автоматически интервалуПредиктор или предикторы называют к автоматически интервалу, заданному как вектор символов или массив ячеек из символьных векторов, содержащий имя предиктора или предикторов. PredictorNames
является чувствительным к регистру и когда никакой PredictorNames
не задан, все предикторы в свойстве PredictorVars
объекта creditscorecard
сгруппированы.
Типы данных: char | cell
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
sc = autobinning(sc,'Algorithm','EqualFrequency')
'Algorithm'
— Выбор алгоритма'Monotone'
(значение по умолчанию) | вектор символов со значениями 'Monotone'
, 'Split'
, 'Merge'
, 'EqualFrequency'
, 'EqualWidth'
Выбор алгоритма, заданный как пара, разделенная запятой, состоящая из 'Algorithm'
и вектора символов, указывающего, который алгоритм использовать. Тот же алгоритм используется для всех предикторов в PredictorNames
. Возможные значения:
'Monotone'
— Монотонный смежный алгоритм объединения (MAPA) (по умолчанию), также известный как Монотонность наибольшего правдоподобия крупный классификатор (MLMCC). Контролируемый оптимальный алгоритм раскладывания, который стремится находить интервалы с монотонным трендом Веса доказательства (WOE). Этот алгоритм принимает, что только соседние атрибуты могут быть сгруппированы. Таким образом, для категориальных предикторов, категории сортируются прежде, чем применить алгоритм (см. опцию 'SortCategories'
для AlgorithmOptions
). Для получения дополнительной информации смотрите Монотонность.
разделение
Контролируемый алгоритм раскладывания, где мера используется, чтобы разделить данные в интервалы. Мерами, поддержанными 'Split'
, является gini
, chi2
, infovalue
и entropy
. Получившееся разделение должно быть таково, что усиление в информационной функции максимизируется. Для получения дополнительной информации об этих мерах смотрите AlgorithmOptions
и Разделение.
'Merge'
— Контролируемый автоматический алгоритм раскладывания, где мера используется, чтобы объединить интервалы в блоки. Мерами, поддержанными 'Merge'
, является chi2
, gini
, infovalue
и entropy
. Получившееся слияние должно быть таково, что любая пара смежных интервалов статистически отличается друг от друга, согласно выбранной мере. Для получения дополнительной информации об этих мерах смотрите AlgorithmOptions
и Слияние.
'EqualFrequency'
— Безнадзорный алгоритм, который делит данные на предопределенное количество интервалов, которые содержат приблизительно то же количество наблюдений. Этот алгоритм также известен как “равную высоту” или “равную глубину”. Для категориальных предикторов категории сортируются прежде, чем применить алгоритм (см. опцию 'SortCategories'
для AlgorithmOptions
). Для получения дополнительной информации смотрите Равную Частоту.
'EqualWidth'
— Безнадзорный алгоритм, который делит область значений значений в области переменной прогноза в предопределенное количество интервалов “равной ширины”. Для числовых данных ширина измеряется как расстояние между ребрами интервала. Для категориальных данных ширина измеряется как количество категорий в интервале. Для категориальных предикторов категории сортируются прежде, чем применить алгоритм (см. опцию 'SortCategories'
для AlgorithmOptions
). Для получения дополнительной информации смотрите Равную Ширину.
Типы данных: char
'AlgorithmOptions'
— Опции алгоритма для выбранного Algorithm
{'InitialNumBins',10,'Trend','Auto','SortCategories','Odds'}
для Monotone
(значение по умолчанию) | массив ячеек с {
'OptionName'
, OptionValue }
для опций Algorithm
Опции алгоритма для выбранного Algorithm
, заданного как пара, разделенная запятой, состоящая из 'AlgorithmOptions'
и массива ячеек. Возможные значения:
Для алгоритма Monotone
:
{
'InitialNumBins',n
}
— Начальный номер (n) интервалов (значение по умолчанию равняется 10). 'InitialNumBins'
должен быть целым числом> 2
. Используемый для числовых предикторов только.
{'Trend','TrendOption'}
— Определяет, как ли Вес доказательства (WOE) монотонный тренд, ожидают, увеличится или уменьшится. Значения для 'TrendOption'
:
'auto'
(Значение по умолчанию) Автоматически определяет, увеличивается ли тренд WOE или уменьшается.
'Increasing'
— Ищите увеличивающийся тренд WOE.
'Decreasing'
— Ищите уменьшающийся тренд WOE.
Значение дополнительного входного параметра 'Trend'
не обязательно отражает значение получившейся кривой WOE. 'Trend'
параметра говорит алгоритму “искать” увеличение или уменьшение тренда, но результат не может показать желаемый тренд. Например, алгоритм не может найти уменьшающийся тренд, когда данные на самом деле имеют увеличивающийся тренд WOE. Для получения дополнительной информации об опции 'Trend'
смотрите Монотонность.
{'SortCategories','SortOption'}
— Используемый для категориальных предикторов только. Используемый, чтобы определить, как категории предиктора сортируются как шаг предварительной обработки прежде, чем применить алгоритм. Значения 'SortOption'
:
'Odds'
— (значение по умолчанию) категории сортируется по приказу увеличения значений разногласий, заданных как отношение “Хороших” к “Плохим” наблюдениям, для данной категории.
'Goods'
— Категории сортируются по приказу увеличения значений “Хороших”.
'Bads'
— Категории сортируются по приказу увеличения значений “Плохо”.
'Totals'
— Категории сортируются по приказу увеличения значений общего количества наблюдений (“Хороший” плюс “Плохой”).
'none'
Никакая сортировка не применяется. Существующий порядок категорий неизменен прежде, чем применить алгоритм. (Существующий порядок категорий виден в категории, группирующей дополнительный вывод от bininfo
.)
Для получения дополнительной информации смотрите сортировку Категорий
Для алгоритма Split
:
{'InitialNumBins',n}
— Задает целое число, которое определяет номер (n> 0) интервалов, что предиктор первоначально сгруппирован в перед разделением. Допустимый для числовых предикторов только. Значением по умолчанию является 50
.
{'Measure',MeasureName}
— Задает меру, где 'MeasureName' является одним из following:'Gini'
(значение по умолчанию), 'Chi2'
, 'InfoValue'
или 'Entropy'
.
{'MinBad',n}
— Задает минимальный номер n (n> =0
) Bads на интервал. Значением по умолчанию является 1
, чтобы избежать чистых интервалов.
{'MaxBad',n}
— Задает максимальное количество n (n> =0
) Bads на интервал. Значением по умолчанию является Inf
.
{'MinGood',n}
— Задает минимальный номер n (n> =0
) Товаров на интервал. Значением по умолчанию является 1
, чтобы избежать чистых интервалов.
{'MaxGood',n}
— Задает максимальное количество n (n> =0
) Товаров на интервал. Значением по умолчанию является Inf
.
{'MinCount',n}
— Задает минимальный номер n (n> =0
) наблюдений на интервал. Значением по умолчанию является 1
, чтобы избежать пустых интервалов.
{'MaxCount',n}
— Задает максимальное количество n (n> =0
) наблюдений на интервал. Значением по умолчанию является Inf
.
{'MaxNumBins',n}
— Задает максимальное количество n (n> =2
) интервалов, следующих из разделения. Значением по умолчанию является 5
.
{'Tolerance',Tol}
— Задает минимальное усиление (> 0) в информационной функции, во время схемы итерации, чтобы выбрать точку разделения, которая максимизирует усиление. Значением по умолчанию является 1e-4
.
{'Significance',n}
— Порог уровня значения для статистической величины хи-квадрата, выше которой происходит разделение. Значения находятся в интервале [0,1]
. Значением по умолчанию является 0.9
(90%-й уровень значения).
{'SortCategories','SortOption'}
— Используемый для категориальных предикторов только. Используемый, чтобы определить, как категории предиктора сортируются как шаг предварительной обработки прежде, чем применить алгоритм. Значения 'SortOption'
:
'Goods'
— Категории сортируются по приказу увеличения значений “Хороших”.
'Bads'
— Категории сортируются по приказу увеличения значений “Плохо”.
'Odds'
— (значение по умолчанию) категории сортируется по приказу увеличения значений разногласий, заданных как отношение “Хороших” к “Плохим” наблюдениям, для данной категории.
'Totals'
— Категории сортируются по приказу увеличения значений общего количества наблюдений (“Хороший” плюс “Плохой”).
'none'
Никакая сортировка не применяется. Существующий порядок категорий неизменен прежде, чем применить алгоритм. (Существующий порядок категорий виден в категории, группирующей дополнительный вывод от bininfo
.)
Для получения дополнительной информации смотрите сортировку Категорий
Для алгоритма Merge
:
{'InitialNumBins',n}
— Задает целое число, которое определяет номер (n> 0) интервалов, что предиктор первоначально сгруппирован в перед слиянием. Допустимый для числовых предикторов только. Значением по умолчанию является 50
.
{'Measure',MeasureName}
— Задает меру, где 'MeasureName' является одним из following:'Chi2'
(значение по умолчанию), 'Gini'
, 'InfoValue'
или 'Entropy'
.
{'MinNumBins',n}
— Задает минимальный номер n (n> =2
) интервалов тот результат слияния. Значением по умолчанию является 2
.
{'MaxNumBins',n}
— Задает максимальное количество n (n> =2
) интервалов тот результат слияния. Значением по умолчанию является 5
.
{'Tolerance',n}
— Задает минимальный порог, ниже которого слияние происходит для информационного значения и энтропийной статистики. Допустимые значения находятся в интервале (0.1)
. Значением по умолчанию является 1e-3
.
{'Significance',n}
— Порог уровня значения для статистической величины хи-квадрата, ниже которой происходит слияние. Значения находятся в интервале [0,1]
. Значением по умолчанию является 0.9
(90%-й уровень значения).
{'SortCategories','SortOption'}
— Используемый для категориальных предикторов только. Используемый, чтобы определить, как категории предиктора сортируются как шаг предварительной обработки прежде, чем применить алгоритм. Значения 'SortOption'
:
'Goods'
— Категории сортируются по приказу увеличения значений “Хороших”.
'Bads'
— Категории сортируются по приказу увеличения значений “Плохо”.
'Odds'
— (значение по умолчанию) категории сортируется по приказу увеличения значений разногласий, заданных как отношение “Хороших” к “Плохим” наблюдениям, для данной категории.
'Totals'
— Категории сортируются по приказу увеличения значений общего количества наблюдений (“Хороший” плюс “Плохой”).
'none'
Никакая сортировка не применяется. Существующий порядок категорий неизменен прежде, чем применить алгоритм. (Существующий порядок категорий виден в категории, группирующей дополнительный вывод от bininfo
.)
Для получения дополнительной информации смотрите сортировку Категорий
Для алгоритма EqualFrequency
:
{'NumBins',n}
— Задает желаемый номер (n) интервалов. Значением по умолчанию является {'NumBins',5}
, и количество интервалов должно быть положительным числом.
{'SortCategories','SortOption'}
— Используемый для категориальных предикторов только. Используемый, чтобы определить, как категории предиктора сортируются как шаг предварительной обработки прежде, чем применить алгоритм. Значения 'SortOption'
:
'Odds'
— (значение по умолчанию) категории сортируется по приказу увеличения значений разногласий, заданных как отношение “Хороших” к “Плохим” наблюдениям, для данной категории.
'Goods'
— Категории сортируются по приказу увеличения значений “Хороших”.
'Bads'
— Категории сортируются по приказу увеличения значений “Плохо”.
'Totals'
— Категории сортируются по приказу увеличения значений общего количества наблюдений (“Хороший” плюс “Плохой”).
'none'
Никакая сортировка не применяется. Существующий порядок категорий неизменен прежде, чем применить алгоритм. (Существующий порядок категорий виден в категории, группирующей дополнительный вывод от bininfo
.)
Для получения дополнительной информации смотрите сортировку Категорий
Для алгоритма EqualWidth
:
{'NumBins',n}
— Задает желаемый номер (n) интервалов. Значением по умолчанию является {'NumBins',5}
, и количество интервалов должно быть положительным числом.
{'SortCategories','SortOption'}
— Используемый для категориальных предикторов только. Используемый, чтобы определить, как категории предиктора сортируются как шаг предварительной обработки прежде, чем применить алгоритм. Значения 'SortOption'
:
'Odds'
— (значение по умолчанию) категории сортируется по приказу увеличения значений разногласий, заданных как отношение “Хороших” к “Плохим” наблюдениям, для данной категории.
'Goods'
— Категории сортируются по приказу увеличения значений “Хороших”.
'Bads'
— Категории сортируются по приказу увеличения значений “Плохо”.
'Totals'
— Категории сортируются по приказу увеличения значений общего количества наблюдений (“Хороший” плюс “Плохой”).
'none'
Никакая сортировка не применяется. Существующий порядок категорий неизменен прежде, чем применить алгоритм. (Существующий порядок категорий виден в категории, группирующей дополнительный вывод от bininfo
.)
Для получения дополнительной информации смотрите сортировку Категорий
Пример: sc = autobinning(sc,'CustAge','Algorithm','Monotone','AlgorithmOptions',{'Trend','Increasing'})
Типы данных: cell
Отображение
Индикатор, чтобы отобразить информацию о состоянии процесса раскладывания в командной строке'Off'
(значение по умолчанию) | вектор символов со значениями 'On'
, 'Off'
Индикатор, чтобы отобразить информацию о состоянии процесса раскладывания в командной строке, заданной как пара, разделенная запятой, состоящая из 'Display'
и вектора символов со значением 'On'
или 'Off'
.
Типы данных: char
sc
— Модель протокола результатов кредитаcreditscorecard
Модель протокола результатов кредита, возвращенная как обновленный объект creditscorecard
, содержащий автоматически решительные карты раскладывания или правила (точки разделения или группировки категории) для одного или нескольких предикторов. Для получения дополнительной информации об использовании объекта creditscorecard
смотрите creditscorecard
.
Если вы ранее использовали функцию modifybins
, чтобы вручную изменить интервалы, эти изменения потеряны при выполнении autobinning
, потому что все данные автоматически сгруппированы на основе внутренних правил автораскладывания.
Алгоритм 'Monotone'
является реализацией Монотонного смежного алгоритма объединения (MAPA), также известного как Монотонность наибольшего правдоподобия крупный классификатор (MLMCC); смотрите Андерсона или Томаса в Ссылках.
Предварительная обработка
Во время фазы предварительной обработки предварительная обработка числовых предикторов состоит в применении равного раскладывания частоты, с количеством интервалов, определенных параметром 'InitialNumBins'
(значением по умолчанию являются 10 интервалов). Предварительная обработка категориальных предикторов состоит в сортировке категорий согласно критерию 'SortCategories'
(значение по умолчанию должно отсортировать по разногласиям в увеличивающемся порядке). Сортировка не применяется к порядковым предикторам. Смотрите сортировку определения Категорий или описания опции AlgorithmOptions
для 'SortCategories'
для получения дополнительной информации.
Основной алгоритм
Следующий пример иллюстрирует, как алгоритм 'Monotone'
прибывает в точки разделения для числовых данных.
Интервал | Хороший | Плохо | Iteration1 | Iteration2 | Iteration3 | Iteration4 |
---|---|---|---|---|---|---|
| 127 | 107 | 0.543 | |||
'[33000,38000)' | 194 | 90 | 0.620 | 0.683 | ||
'[38000,42000)' | 135 | 78 | 0.624 | 0.662 | ||
'[42000,47000)' | 164 | 66 | 0.645 | 0.678 | 0.713 | |
| 183 | 56 | 0.669 | 0.700 | 0.740 | 0.766 |
Первоначально, числовые данные предварительно обрабатываются с равным раскладыванием частоты. В этом примере, для простоты, только используются пять начальных интервалов. Первый столбец указывает на равные области значений интервала частоты, и вторые и третьи столбцы имеют “Хорошие” и “Плохие” количества на интервал. (Количество наблюдений 1,200, таким образом, совершенное равное раскладывание частоты привело бы к пяти интервалам с 240 наблюдениями каждый. В этом случае наблюдения на интервал не соответствуют 240 точно. Это - общая ситуация, когда данные повторили значения.)
Монотонность находит точки останова на основе совокупной пропорции “Хороших” наблюдений. В the'Iteration1'
столбце первое значение (0.543) является количеством “Хороших” наблюдений в первом интервале (127), разделенный на общее количество наблюдений в интервале (127+107). Второе значение (0.620) является количеством “Хороших” наблюдений в интервалах 1 и 2, разделенный на общее количество наблюдений в интервалах 1 и 2. И т.д. Первая точка разделения установлена, где минимум этого совокупного отношения найден, который находится в первом интервале в этом примере. Это - конец итерации 1.
При запуске со второго интервала (первый интервал после местоположения минимального значения в предыдущей итерации), совокупные пропорции “Хороших” наблюдений вычисляются снова. Вторая точка разделения установлена, где минимум этого совокупного отношения найден. В этом случае это, оказывается, находится в интервале номер 3, поэтому интервалы 2 и 3 объединены.
Алгоритм продолжает тот же путь к еще двум итерациям. В этом конкретном примере в конце это только объединяет интервалы 2 и 3. Итоговое раскладывание имеет четыре интервала с точками разделения в 33 000, 42,000, и 47,000.
Для категориальных данных единственная разница - то, что шаг предварительной обработки состоит в переупорядочении категорий. Рассмотрите следующие категориальные данные:
Интервал | Хороший | Плохо | Разногласия |
---|---|---|---|
| 365 | 177 | 2.062 |
| 307 | 167 | 1.838 |
| 131 | 53 | 2.474 |
Шаг предварительной обработки, по умолчанию, сортирует категории по 'Odds'
. (См. сортировку определения Категорий или описания опции AlgorithmOptions
для 'SortCategories'
для получения дополнительной информации.) Затем это применяет те же шаги, описанные выше, показанные в следующей таблице:
Интервал | Хороший | Плохо | Разногласия | Iteration1 | Iteration2 | Iteration3 |
---|---|---|---|---|---|---|
'Арендатор' | 307 | 167 | 1.838 | 0.648 | ||
'Домовладелец' | 365 | 177 | 2.062 | 0.661 | 0.673 | |
Другой | 131 | 53 | 2.472 | 0.669 | 0.683 | 0.712 |
В этом случае Монотонный алгоритм не объединил бы категорий. Единственная разница, по сравнению с данными перед применением алгоритма, то, что категории теперь сортируются по 'Odds'
.
И в числовых и в категориальных примерах выше, неявным выбором 'Trend'
является 'Increasing'
. (См. описание опции AlgorithmOptions
для
опции 'Trend'
'Monotone'
.), Если вы устанавливаете тренд на 'Decreasing'
, алгоритм ищет максимум (вместо минимума) совокупные отношения, чтобы определить точки разделения. В этом случае, в итерации 1, максимум был бы в последнем интервале, который будет подразумевать, что все интервалы должны быть объединены в один интервал. Раскладывание в один интервал является общей суммой убытков информации и не имеет никакого практического применения. Поэтому, когда выбранный тренд приводит к одному интервалу, Монотонная реализация отклоняет его, и алгоритм возвращает интервалы, найденные после шага предварительной обработки. Это состояние является начальным равным раскладыванием частоты для числовых данных и отсортированными категориями для категориальных данных. Реализация Монотонного алгоритма значением по умолчанию использует эвристику, чтобы идентифицировать тренд (опция 'Auto'
для 'Trend'
).
Split является контролируемым автоматическим алгоритмом раскладывания, где мера используется, чтобы разделить данные в блоки. Поддерживаемыми мерами является gini
, chi2
, infovalue
и entropy
.
Внутренне, алгоритм разделения продолжает можно следующим образом:
Все категории объединены в один интервал.
В первой итерации все потенциальные индексы точки разделения тестируются, чтобы видеть, какой приводит к максимальному увеличению информационной функции (Gini
, InfoValue
, Entropy
или Chi2
). Та точка разделения затем выбрана, и интервал разделен.
Та же процедура повторена для следующих подынтервалов.
Алгоритм останавливается, когда максимальное количество интервалов достигнуто или когда разделение не приводит ни к какому дополнительному изменению в информационной функции изменения.
Следующая таблица для категориального предиктора обобщает значения функции изменения в каждой итерации. В этом примере 'Gini'
является предпочтительной мерой, такой, что цель состоит в том, чтобы видеть уменьшение меры Gini в каждой итерации.
Итерация 0 номеров интервала | Участник | Gini | Итерация 1 номер интервала | Участник | Gini | Итерация 2 номера интервала | Участник | Gini |
---|---|---|---|---|---|---|---|---|
1 | 'Арендатор' | 1 | 'Арендатор' | 1 | 'Арендатор' | 0.45638 | ||
1 | 'Подбуква' | 1 | 'Подбуква' | 0.44789 | 1 | 'Подбуква' | ||
1 | 'Домовладелец' | 1 | 'Домовладелец' | 2 | 'Домовладелец' | 0.43984 | ||
1 | Другой | 2 | Другой | 0.41015 | 3 | Другой | 0.41015 | |
Общий Gini | 0.442765 | 0.442102 | 0.441822 | |||||
Относительное изменение | 0 | 0.001498 | 0.002128 |
Относительным изменением в итерации i является относительно меры Gini целых интервалов в итерации i-1. Конечный результат соответствует этому от последней итерации, которая, в этом примере, является итерацией 2.
Следующая таблица для числового предиктора обобщает значения функции изменения в каждой итерации. В этом примере 'Gini'
является предпочтительной мерой, такой, что цель состоит в том, чтобы видеть уменьшение меры Gini в каждой итерации. Поскольку большинство числовых предикторов в наборах данных содержит много интервалов, существует шаг предварительной обработки, где данные предсгруппированы в 50 интервалов равной частоты. Это делает пул допустимых точек разделения, чтобы выбрать из для разделения меньшего и более управляемого.
Итерация 0 номеров интервала | Участник | Gini | Итерация 1 номер интервала | Gini | Итерация 2 номера интервала | Gini | Итерация 3 номера интервала | Gini |
---|---|---|---|---|---|---|---|---|
1 | '21' | '[-Inf,47]' | 0.473897 | '[-Inf,47]' | 0.473897 | '[-Inf,35]' | 0.494941 | |
1 | '22' | '[47,Inf]' | 0.385238 | '[47,61]' | 0.407072 | '[35, 47]' | 0.463201 | |
1 | '23' | '[61,Inf]' | 0.208795 | '[47, 61]' | 0.407072 | |||
1 | '74' | 0 | '[61,Inf]' | 0.208795 | ||||
Общий Gini | 0.442765 | 0.435035 | 0.432048 | 0.430511 | ||||
Относительное изменение | 0 | 0.01746 | 0.006867 | 0.0356 |
Получившееся разделение должно быть таково, что информационная функция (содержимое) увеличивается. По сути, лучшее разделение является тем, которое приводит к максимальному информационному усилению. Информационные поддерживаемые функции:
Gini: Каждое разделение приводит к увеличению Отношения Gini, заданного как:
G_r = 1- G_hat/G_p
G_p
является мерой Gini родительского узла, то есть, данных интервалов/категорий до разделения. G_hat
является взвешенной мерой Gini для текущего разделения:
G_hat = Sum((nj/N) * Gini(j), j=1..m)
где
nj
является общим количеством наблюдений в j th интервал.
N
является общим количеством наблюдений в наборе данных.
m
является количеством разделений для данной переменной.
Gini(j)
является мерой Gini для j th интервал.
Мера по Gini для разделения/узла j:
Gini(j) = 1 - (Gj^2+Bj^2) / (nj)^2
Gj
, Bj
= Количество Goods и Bads для интервала j.InfoValue
: информационное значение для каждого разделения приводит к увеличению общей информации. Разделение, которое сохраняется, является тем, которое приводит к максимальному усилению в приемлемом допуске усиления. Информационное значение (IV) для данного наблюдения j задано как:
IV = sum( (pG_i-pB_i) * log(pG_i/pB_i), i=1..n)
pG_i
является распределением Товаров при наблюдении i
, который является Goods(i)/Total_Goods
.
pB_i
является распределением Bads при наблюдении i
, который является Bads(i)/Total_Bads
.
n
является общим количеством интервалов.
Entropy
: Каждое разделение приводит к уменьшению в энтропийном отклонении, заданном как:
E = -sum(ni * Ei, i=1..n)
где
ni
является общим счетом для интервала i
, который является (ni = Gi + Bi)
.
Ei
является энтропией для строки (или интервал) i
, заданный как:
Ei = -sum(Gi*log2(Gi/ni) + Bi*log2(Bi/ni))/N, i=1..n
Chi2
: Chi2 вычисляется попарно для каждой пары интервалов и измеряет статистическую разницу между двумя группами. Разделение выбрано в точке (точка разделения или индексация категории), где максимальное значение Chi2:
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=m,m+1)
где
m
принимает значения от 1 ... n-1
, где n
является количеством интервалов.
k
является количеством классов. Здесь k = 2
для (Товары, Bads).
Aij
является количеством наблюдений в интервале i
, j
th класс.
Eij
является ожидаемой частотой Aij
, который равен (Ri*Cj)/N
.
Ri
является количеством наблюдений в интервале i
, который равен sum(Aij, j=1..k)
.
Cj
является количеством наблюдений в j
th класс, который равен sum(Aij, I = m,m+1)
.
N
является общим количеством наблюдений, которое равно sum(Cj, j=1..k)
.
Мера Chi2
для целой выборки (в противоположность попарной мере Chi2
для смежных интервалов):
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=1..n)
Merge является контролируемым автоматическим алгоритмом раскладывания, где мера используется, чтобы объединить интервалы в блоки. Поддерживаемыми мерами является chi2
, gini
, infovalue
и entropy
.
Внутренне, алгоритм слияния продолжает можно следующим образом:
Все категории находятся первоначально в отдельных интервалах.
Пользователь выбрал информационную функцию (Chi2
, Gini
, InfoValue
или Entropy
) вычисляется для любой пары смежных интервалов.
В каждой итерации объединена пара с самым маленьким информационным изменением, измеренным выбранной информационной функцией.
Слияние продолжается до также:
Все попарные информационные значения больше, чем порог, установленный уровнем значения или относительным изменением, меньше, чем допуск.
Если в конце, количество интервалов еще больше, чем позволенный MaxNumBins
, слияние обеспечено, пока нет в большинстве интервалов MaxNumBins
. Точно так же объединяющие остановки, когда существуют только интервалы MinNumBins
.
Поскольку категориальные, исходные интервалы/категории предварительно сортируются согласно сортировке набора вариантов пользователем. Для числовых данных данные предварительно обрабатываются, чтобы получить интервалы IntialNumBins
равной частоты, прежде чем алгоритм слияния запустится.
Следующая таблица для категориального предиктора обобщает значения функции изменения в каждой итерации. В этом примере 'Chi2'
является предпочтительной мерой. Сортировка значения по умолчанию по Odds
применяется как шаг предварительной обработки. Значением Chi2
, о котором сообщают ниже в строке i, является для интервалов i и i +1. Уровнем значения является 0.9
(90%), так, чтобы обратным значением Chi2
был 2.705543
. Это - порог, ниже которого объединены смежные пары интервалов. Минимальное количество интервалов равняется 2.
Итерация 0 номеров интервала | Участник | Chi2 | Итерация 1 номер интервала | Участник | Chi2 | Итерация 2 номера интервала | Участник | Chi2 |
---|---|---|---|---|---|---|---|---|
1 | 'Арендатор' | 1.007613 | 1 | 'Арендатор' | 0.795920 | 1 | 'Арендатор' | |
2 | 'Подбуква' | 0.257347 | 2 | 'Подбуква' | 1 | 'Подбуква' | ||
3 | 'Домовладелец' | 1.566330 | 2 | 'Домовладелец' | 1.522914 | 1 | 'Домовладелец' | 1.797395 |
4 | Другой | 3 | Другой | 2 | Другой | |||
Общий Chi2 | 2.573943 | 2.317717 | 1.797395 |
Следующая таблица для числового предиктора обобщает значения функции изменения в каждой итерации. В этом примере 'Chi2'
является предпочтительной мерой.
Итерация 0 номеров интервала | Chi2 | Итерация 1 интервал | Chi2 | Итоговые интервалы итерации | Chi2 | |
---|---|---|---|---|---|---|
'[-Inf,22]' | 0.11814 | '[-Inf,22]' | 0.11814 | '[-Inf,33]' | 8.4876 | |
'[22,23]' | 1.6464 | '[22,23]' | 1.6464 | '[33, 48]' | 7.9369 | |
... | ... | '[48,64]' | 9.956 | |||
'[58,59]' | 0.311578 | '[58,59]' | 0.27489 | '[64,65]' | 9.6988 | |
'[59,60]' | 0.068978 | '[59,61]' | 1.8403 | '[65,Inf]' | NaN | |
'[60,61]' | 1.8709 | '[61,62]' | 5.7946 | ... | ||
'[61,62]' | 5.7946 | ... | ||||
... | '[69,70]' | 6.4271 | ||||
'[69,70]' | 6.4271 | '[70,Inf]' | NaN | |||
'[70,Inf]' | NaN | |||||
Общий Chi2 | 67.467 | 67.399 | 23.198 |
Получившееся слияние должно быть таково, что любая пара смежных интервалов статистически отличается друг от друга, согласно выбранной мере. Меры, поддержанные для Merge
:
Chi2
: Chi2 вычисляется попарно для каждой пары интервалов и измеряет статистическую разницу между двумя группами. Слияние выбрано в точке (точка разделения или индексация категории), где максимальное значение Chi2:
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=m,m+1)
где
m
принимает значения от 1 ... n-1
, и n
является количеством интервалов.
k
является количеством классов. Здесь k = 2
для (Товары, Bads).
Aij
является количеством наблюдений в интервале i
, j
th класс.
Eij
является ожидаемой частотой Aij
, который равен (Ri*Cj)/N
.
Ri
является количеством наблюдений в интервале i
, который равен sum(Aij, j=1..k)
.
Cj
является количеством наблюдений в j
th класс, который равен sum(Aij, I = m,m+1)
.
N
является общим количеством наблюдений, которое равно sum(Cj, j=1..k)
.
Мера Chi2
для целой выборки (в противоположность попарной мере Chi2
для смежных интервалов):
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=1..n)
Gini: Каждое слияние приводит к уменьшению в Отношении Gini, заданном как:
G_r = 1- G_hat/G_p
G_p
является мерой Gini родительского узла, то есть, данных интервалов/категорий до слияния. G_hat
является взвешенной мерой Gini для текущего слияния:
G_hat = Sum((nj/N) * Gini(j), j=1..m)
где
nj
является общим количеством наблюдений в j th интервал.
N
является общим количеством наблюдений в наборе данных.
m
является количеством слияний для данной переменной.
Gini(j)
является мерой Gini для j th интервал.
Мера по Gini для слияния/узла j:
Gini(j) = 1 - (Gj^2+Bj^2) / (nj)^2
Gj
, Bj
= Количество Goods и Bads для интервала j.InfoValue
: информационное значение для каждого слияния приведет к уменьшению в общей информации. Слияние, которое сохраняется, является тем, которое приводит к минимальному усилению в приемлемом допуске усиления. Информационное значение (IV) для данного наблюдения j задано как:
IV = sum( (pG_i-pB_i) * log(pG_i/pB_i), i=1..n)
pG_i
является распределением Товаров при наблюдении i
, который является Goods(i)/Total_Goods
.
pB_i
является распределением Bads при наблюдении i
, который является Bads(i)/Total_Bads
.
n
является общим количеством интервалов.
Entropy
: Каждое слияние приводит к увеличению энтропийного отклонения, заданного как:
E = -sum(ni * Ei, i=1..n)
где
ni
является общим счетом для интервала i
, который является (ni = Gi + Bi)
.
Ei
является энтропией для строки (или интервал) i
, заданный как:
Ei = -sum(Gi*log2(Gi/ni) + Bi*log2(Bi/ni))/N, i=1..n
При использовании Алгоритма слияния, если существуют чистые интервалы (интервалы, которые имеют или нулевое количество Goods
или обнуляют количество Bads
), статистика, такая как информационное Значение и Энтропия имеют неличные значения. Чтобы составлять это, сдвиг частоты .5
применяется для вычисления различной статистики каждый раз, когда алгоритм находит чистые интервалы.
Безнадзорный алгоритм, который делит данные на предопределенное количество интервалов, которые содержат приблизительно то же количество наблюдений.
EqualFrequency
задан как:
Позвольте v[1], v[2]..., v [N] быть отсортированным списком различных значений или категорий, наблюдаемых в данных. Позвольте f [i] быть частотой v [i]. Позвольте F [k] = f[1] +... +f [k] быть совокупной суммой частот до k th отсортированное значение. Затем F [N] совпадает с общим количеством наблюдений.
Задайте AvgFreq
= F [N] / NumBins, который является идеальной средней частотой на интервал после раскладывания. n th индекс точки разделения является индексом k, таким образом, что abs расстояния (F [k] - n *AvgFreq
) минимизирован.
Это правило пытается совпадать с совокупной частотой до n th интервал. Если одно значение содержит слишком много наблюдений, равные интервалы частоты не возможны, и вышеупомянутое правило приводит к меньше, чем общие интервалы NumBins. В этом случае алгоритм определяет интервалы NumBins путем разбивания интервалов в порядке, в котором были созданы интервалы.
Предварительная обработка категориальных предикторов состоит в сортировке категорий согласно критерию 'SortCategories'
(значение по умолчанию должно отсортировать по разногласиям в увеличивающемся порядке). Сортировка не применяется к порядковым предикторам. Смотрите сортировку определения Категорий или описания опции AlgorithmOptions
для 'SortCategories'
для получения дополнительной информации.
Безнадзорный алгоритм, который делит область значений значений в области переменной прогноза в предопределенное количество интервалов “равной ширины”. Для числовых данных ширина измеряется как расстояние между ребрами интервала. Для категориальных данных ширина измеряется как количество категорий в интервале.
Опция EqualWidth
задана как:
Для числовых данных, если MinValue
и MaxValue
являются минимальными и максимальными значениями данных, то
Width = (MaxValue - MinValue)/NumBins
CutPoints
установлен в MinValue
+ Ширина, MinValue
+ 2*Width... MaxValue
– Ширина. Если MinValue
или MaxValue
не были заданы с помощью функции modifybins
, опция EqualWidth
устанавливает MinValue
и MaxValue
к минимальным и максимальным значениям, наблюдаемым в данных.Для категориальных данных, если существуют количества NumCats исходных категорий, то
Width = NumCats / NumBins,
Предварительная обработка категориальных предикторов состоит в сортировке категорий согласно критерию 'SortCategories'
(значение по умолчанию должно отсортировать по разногласиям в увеличивающемся порядке). Сортировка не применяется к порядковым предикторам. Смотрите сортировку определения Категорий или описания опции AlgorithmOptions
для 'SortCategories'
для получения дополнительной информации.
Как шаг предварительной обработки для категориальных данных, 'Monotone'
, 'EqualFrequency'
и 'EqualWidth'
поддерживают вход 'SortCategories'
. Это служит цели переупорядочить категории прежде, чем применить основной алгоритм. Критерий сортировки по умолчанию должен отсортировать по 'Odds'
. Например, предположите, что данные первоначально выглядят так:
Интервал | Хороший | Плохо | Разногласия |
---|---|---|---|
'Home Owner' | 365 | 177 | 2.062 |
'Tenant' | 307 | 167 | 1.838 |
'Other' | 131 | 53 | 2.472 |
После шага предварительной обработки строки были бы отсортированы по 'Odds'
, и таблица выглядит так:
Интервал | Хороший | Плохо | Разногласия |
---|---|---|---|
'Tenant' | 307 | 167 | 1.838 |
'Home Owner' | 365 | 177 | 2.062 |
'Other' | 131 | 53 | 2.472 |
Эти три алгоритма только объединяют смежные интервалы, таким образом, начальный порядок категорий имеет значение для итогового раскладывания. Опция 'None'
для 'SortCategories'
оставила бы исходную таблицу без изменений. Для описания поддерживаемых критериев сортировки см. описание опции AlgorithmOptions
для 'SortCategories'
.
После конструкции протокола результатов, начальный порядок категорий, прежде чем любой алгоритм или любые модификации раскладывания применяются, порядок, показанный в первом выводе bininfo
. Если интервалы были изменены (или вручную с modifybins
или автоматически с autobinning
), используйте дополнительный вывод (cg
, 'category grouping'
) от bininfo
, чтобы получить текущий порядок категорий.
Опция 'SortCategories'
не имеет никакого эффекта на категориальные предикторы, для которых параметр 'Ordinal'
устанавливается на истинный (см. параметр входа 'Ordinal'
в категориальных массивах MATLAB® для categorical
. Порядковые данные имеют естественный порядок, который соблюдается на шаге предварительной обработки алгоритмов путем оставления порядка без изменений категорий. Только категориальные предикторы, параметр 'Ordinal'
которых является ложью (опция по умолчанию), подвергаются переупорядочению категорий согласно критерию 'SortCategories'
.
autobinning
с весамиКогда веса наблюдения заданы с помощью дополнительного аргумента WeightsVar
при создании объекта creditscorecard
, вместо того, чтобы считать строки, которые хороши или плохи в каждом интервале, функция autobinning
накапливает вес строк, которые хороши или плохи в каждом интервале.
“Частоты”, о которых сообщают, больше не являются основным “количеством” строк, но “совокупным весом” строк, которые хороши или плохи и падение конкретного интервала. Если эти “взвешенные частоты” известны, все другие соответствующие статистические данные (Good
, Bad
, Odds
, WOE
и InfoValue
) вычисляются с обычными формулами. Для получения дополнительной информации см., что Протокол результатов Кредита Моделирует Используя Веса Наблюдения.
[1] Андерсон, R. Инструментарий рейтинга кредитоспособности. Издательство Оксфордского университета, 2007.
[2] Кербер, R. "ChiMerge: дискретизация числовых атрибутов". Продолжения AAAI-92. 1992.
[3] Лю, H., и. al. Анализ данных, Знание и Открытие. Vol 6. Выпуск 4. Октябрь 2002, стр 393-423.
[4] Refaat, M. Подготовка данных для анализа данных Используя SAS. Морган Кофманн, 2006.
[5] Refaat, M. Протоколы результатов кредитного риска: разработка и реализация Используя SAS. lulu.com, 2011.
[6] Томас, L., и др. Рейтинг кредитоспособности и Его Приложения. Общество Промышленной и Прикладной математики, 2002.
bindata
| bininfo
| creditscorecard
| displaypoints
| fitmodel
| formatpoints
| modifybins
| modifypredictor
| plotbins
| predictorinfo
| probdefault
| score
| setmodel
| validatemodel
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.