Выполнить автоматическое сведение данных предикторов
выполняет автоматическое сведение всех предикторов.sc = autobinning(sc)
Автоматическое binning находит binning карты или правила для bin числовых данных и группировать категории категориальных данных. Правила связывания хранятся в creditscorecard объект. Применение правил связывания к creditscorecard объектные данные или новый набор данных bindata.
выполняет автоматическое связывание предикторов, приведенных в sc = autobinning(sc,PredictorNames)PredictorNames.
Автоматическое binning находит binning карты или правила для bin числовых данных и группировать категории категориальных данных. Правила связывания хранятся в creditscorecard объект. Применение правил связывания к creditscorecard объектные данные или новый набор данных bindata.
выполняет автоматическое связывание предикторов, приведенных в sc = autobinning(___,Name,Value)PredictorNames использование необязательных аргументов пары имя-значение. См. аргумент имя-значение Algorithm описание поддерживаемых алгоритмов объединения.
Автоматическое binning находит binning карты или правила для bin числовых данных и группировать категории категориальных данных. Правила связывания хранятся в creditscorecard объект. Применение правил связывания к creditscorecard объектные данные или новый набор данных bindata.
Создать creditscorecard с использованием CreditCardData.mat для загрузки данных (с использованием набора данных из Refaat 2011).
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое binning с использованием параметров по умолчанию. По умолчанию 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);Выполнение автоматического binning для предиктора 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);Выполнение автоматического binning для предиктора 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');
Выполнение автоматического binning для числового предиктора 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');
Выполнение автоматического binning для предиктора 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)

Выполнить автоматическое binning для категориального 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]
Выполнить автоматическое binning с помощью Merge алгоритм.
sc = autobinning(sc,'Algorithm','Merge');
Просмотр информации о ячейках для числовых данных для 'CustAge' который включает отсутствующие данные в отдельной ячейке с маркировкой <missing> и это последняя ячейка. Независимо от того, какой алгоритм binning используется в 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> и это последняя ячейка. Независимо от того, какой алгоритм binning используется в 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 является именем аргумента и 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' - контролируемый алгоритм объединения, в котором мера используется для разделения данных на ячейки. Меры, поддерживаемые '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', Значение параметра} для 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' - Категории сортируются по порядку возрастания значений «Bad».
'Totals' - Категории сортируются по порядку возрастающих значений общего количества наблюдений («Хорошо» плюс «Плохо»).
'None' - Сортировка не применяется. Существующий порядок категорий не изменяется перед применением алгоритма. (Существующий порядок категорий можно увидеть в группировании категорий необязательный вывод из bininfo.)
Дополнительные сведения см. в разделе Сортировка категорий
Для Split алгоритм:
{'InitialNumBins',n} - целое число, определяющее число (n > 0) ячеек, в которые перед разделением первоначально привязывается предиктор. Допустимо только для числовых предикторов. По умолчанию: 50.
{'Measure',MeasureName} - указывает меру, в которой MeasureName является одной из следующих:'Gini' (по умолчанию), 'Chi2', 'InfoValue', или 'Entropy'.
{'MinBad',n} - указывает минимальное число n (n > =0) Бэдов на бункер. Значение по умолчанию: 1, чтобы избежать чистых бункеров.
{'MaxBad',n} - максимальное число n (n > =0) Бэдов на бункер. Значение по умолчанию: 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' - Категории сортируются по порядку возрастания значений «Bad».
'Odds' - (по умолчанию) Категории сортируются в порядке возрастания значений шансов, определяемых как отношение «хороших» к «плохим» наблюдениям для данной категории.
'Totals' - Категории сортируются по порядку возрастающих значений общего количества наблюдений («Хорошо» плюс «Плохо»).
'None' - Сортировка не применяется. Существующий порядок категорий не изменяется перед применением алгоритма. (Существующий порядок категорий можно увидеть в группировании категорий необязательный вывод из bininfo.)
Дополнительные сведения см. в разделе Сортировка категорий
Для Merge алгоритм:
{'InitialNumBins',n} - целое число, определяющее число (n > 0) ячеек, в которые перед объединением был первоначально привязан предиктор. Допустимо только для числовых предикторов. По умолчанию: 50.
{'Measure',MeasureName} - указывает меру, в которой MeasureName является одной из следующих:'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' - Категории сортируются по порядку возрастания значений «Bad».
'Odds' - (по умолчанию) Категории сортируются в порядке возрастания значений шансов, определяемых как отношение «хороших» к «плохим» наблюдениям для данной категории.
'Totals' - Категории сортируются по порядку возрастающих значений общего количества наблюдений («Хорошо» плюс «Плохо»).
'None' - Сортировка не применяется. Существующий порядок категорий не изменяется перед применением алгоритма. (Существующий порядок категорий можно увидеть в группировании категорий необязательный вывод из bininfo.)
Дополнительные сведения см. в разделе Сортировка категорий
Для EqualFrequency алгоритм:
{'NumBins',n} - определяет требуемое количество (n) ячеек. Значение по умолчанию: {'NumBins',5} и количество ячеек должно быть положительным числом.
{'SortCategories','SortOption'} - Используется только для категориальных предикторов. Используется для определения того, как категории предиктора сортируются как шаг предварительной обработки перед применением алгоритма. Значения 'SortOption' являются:
'Odds' - (по умолчанию) Категории сортируются в порядке возрастания значений шансов, определяемых как отношение «хороших» к «плохим» наблюдениям для данной категории.
'Goods' - Категории отсортированы по порядку возрастания значений «Хорошо».
'Bads' - Категории сортируются по порядку возрастания значений «Bad».
'Totals' - Категории сортируются по порядку возрастающих значений общего количества наблюдений («Хорошо» плюс «Плохо»).
'None' - Сортировка не применяется. Существующий порядок категорий не изменяется перед применением алгоритма. (Существующий порядок категорий можно увидеть в группировании категорий необязательный вывод из bininfo.)
Дополнительные сведения см. в разделе Сортировка категорий
Для EqualWidth алгоритм:
{'NumBins',n} - определяет требуемое количество (n) ячеек. Значение по умолчанию: {'NumBins',5} и количество ячеек должно быть положительным числом.
{'SortCategories','SortOption'} - Используется только для категориальных предикторов. Используется для определения того, как категории предиктора сортируются как шаг предварительной обработки перед применением алгоритма. Значения 'SortOption' являются:
'Odds' - (по умолчанию) Категории сортируются в порядке возрастания значений шансов, определяемых как отношение «хороших» к «плохим» наблюдениям для данной категории.
'Goods' - Категории отсортированы по порядку возрастания значений «Хорошо».
'Bads' - Категории сортируются по порядку возрастания значений «Bad».
'Totals' - Категории сортируются по порядку возрастающих значений общего количества наблюдений («Хорошо» плюс «Плохо»).
'None' - Сортировка не применяется. Существующий порядок категорий не изменяется перед применением алгоритма. (Существующий порядок категорий можно увидеть в группировании категорий необязательный вывод из bininfo.)
Дополнительные сведения см. в разделе Сортировка категорий
Пример: sc = autobinning(sc,'CustAge','Algorithm','Monotone','AlgorithmOptions',{'Trend','Increasing'})
Типы данных: cell
'Display' - Индикатор для отображения информации о состоянии процесса биннинга в командной строке'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 | |||
|
| 194 | 90 | 0.620 | 0.683 | ||
|
| 135 | 78 | 0.624 | 0.662 | ||
|
| 164 | 66 | 0.645 | 0.678 | 0.713 | |
|
| 183 | 56 | 0.669 | 0.700 | 0.740 | 0.766 |
Первоначально числовые данные предварительно обрабатываются с одинаковой частотой. В этом примере для простоты используются только пять начальных ячеек. Первый столбец указывает равные диапазоны частотных ячеек, а второй и третий столбцы имеют значения «Хорошо» и «Плохо» на ячейку. (Количество наблюдений составляет 1200, поэтому идеальное выравнивание по равной частоте приведет к пяти ячейкам с 240 наблюдениями каждый. В этом случае наблюдения на ячейку не совпадают точно с 240. Это обычная ситуация, когда данные имеют повторяющиеся значения.)
Монотон находит точки разрыва на основе кумулятивной доли «хороших» наблюдений. В'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 |
В этом случае алгоритм Monotone не будет объединять какие-либо категории. Единственное отличие, по сравнению с данными до применения алгоритма, состоит в том, что категории теперь сортируются по 'Odds'.
В приведенных выше числовых и категориальных примерах неявное 'Trend' выбор - 'Increasing'. (См. описание AlgorithmOptions для опции 'Monotone'
'Trend' вариант.) Если для тренда установлено значение 'Decreasing'алгоритм ищет максимальные (вместо минимальных) кумулятивные отношения для определения точек отсечения. В этом случае при итерации 1 максимум будет в последней ячейке, что будет означать, что все ячейки должны быть объединены в одну ячейку. Сведение в один бункер является полной потерей информации и не имеет практического применения. Поэтому, когда выбранный тренд приводит к одному бункеру, реализация Monotone отклоняет его, и алгоритм возвращает бункеры, найденные после этапа предварительной обработки. Это состояние является начальным объединением равной частоты для числовых данных и отсортированных категорий для категориальных данных. Реализация алгоритма Монотона по умолчанию использует эвристику для идентификации тренда ('Auto' опция для 'Trend').
Split - контролируемый алгоритм автоматического связывания, в котором мера используется для разделения данных на сегменты. Поддерживаемые меры: gini, chi2, infovalue, и entropy.
Внутри алгоритм разделения выполняется следующим образом:
Все категории объединяются в одну ячейку.
При первой итерации проверяются все потенциальные индексы точек отсечения, чтобы увидеть, какой из них приводит к максимальному увеличению информационной функции (Gini, InfoValue, Entropy, или Chi2). Затем выбирается точка отсечения, и ячейка разделяется.
Та же процедура повторяется для следующих подпакетов.
Алгоритм останавливается при достижении максимального количества ячеек или при отсутствии каких-либо дополнительных изменений в функции изменения информации.
Следующая таблица для категориального предиктора суммирует значения функции изменения в каждой итерации. В этом примере: '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 | |
Итого Джини | 0.442765 | 0.442102 | 0.441822 | |||||
| Относительное изменение | 0 | 0.001498 | 0.002128 |
Относительное изменение в итерации i относительно меры Джини для всех ячеек в итерации i-1. Конечный результат соответствует результату последней итерации, которая в данном примере является итерацией 2.
Следующая таблица для числового предиктора суммирует значения функции изменения в каждой итерации. В этом примере: '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 | ||||
Итого Джини | 0.442765 | 0.435035 | 0.432048 | 0.430511 | ||||
| Относительное изменение | 0 | 0.01746 | 0.006867 | 0.0356 |
Результирующее разделение должно быть таким, чтобы информационная функция (содержимое) увеличивалась. Таким образом, наилучшим разделением является разделение, которое приводит к максимальному увеличению информации. Поддерживаются следующие информационные функции:
Каждое разделение приводит к увеличению коэффициента Джини, определяемого как:
G_r = 1- G_hat/G_p
G_p - мера Джини родительского узла, т.е. заданных ячеек/категорий перед разделением. G_hat - взвешенная мера Джини для текущего разделения:
G_hat = Sum((nj/N) * Gini(j), j=1..m)
где
nj - общее число наблюдений в jth bin.
N - общее число наблюдений в наборе данных.
m - количество разбиений для данной переменной.
Gini(j) является мерой Джини для j-го бина.
Мера Джини для разделения/узла j:
Gini(j) = 1 - (Gj^2+Bj^2) / (nj)^2
Gj, Bj = Количество товаров и складов для ячейки 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
Chi2Chi2 вычисляется попарно для каждой пары ячеек и измеряет статистическую разницу между двумя группами. Разделение выбирается в точке (точка отсечения или индексация категории), где максимальное значение Chi2:
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=m,m+1)
где
m принимает значения из 1 ... n-1, где n - количество ячеек.
k - количество классов. Здесь k = 2 для (Товары, Бэды).
Aij - количество наблюдений в ячейке i, jВ-й класс.
Eij является ожидаемой частотой Aij, что равно (Ri*Cj)/N.
Ri - количество наблюдений в ячейке i, что равно sum(Aij, j=1..k).
Cj - количество наблюдений в jтретий класс, который равен 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)
Слияние - это контролируемый алгоритм автоматического объединения, в котором мера используется для объединения ячеек в ячейки. Поддерживаемые меры: 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 являются:
Chi2Chi2 вычисляется попарно для каждой пары ячеек и измеряет статистическую разницу между двумя группами. Объединение выбирается в точке (точка отсечения или индексация категории), где максимальное значение Chi2:
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=m,m+1)
где
m принимает значения из 1 ... n-1, и n - количество ячеек.
k - количество классов. Здесь k = 2 для (Товары, Бэды).
Aij - количество наблюдений в ячейке i, jВ-й класс.
Eij является ожидаемой частотой Aij, что равно (Ri*Cj)/N.
Ri - количество наблюдений в ячейке i, что равно sum(Aij, j=1..k).
Cj - количество наблюдений в jтретий класс, который равен 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)
Каждое слияние приводит к уменьшению коэффициента Джини, определяемого как:
G_r = 1- G_hat/G_p
G_p - мера Джини родительского узла, то есть заданных ячеек/категорий перед объединением. G_hat - взвешенная мера Джини для текущего слияния:
G_hat = Sum((nj/N) * Gini(j), j=1..m)
где
nj - общее число наблюдений в jth bin.
N - общее число наблюдений в наборе данных.
m - количество слияний для данной переменной.
Gini(j) является мерой Джини для j-го бина.
Мера Джини для объединения/узла j:
Gini(j) = 1 - (Gj^2+Bj^2) / (nj)^2
Gj, Bj = Количество товаров и складов для ячейки 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-го отсортированного значения. Тогда F [N] совпадает с общим числом наблюдений.
Определить AvgFreq = F [N ]/NumBins, что является идеальной средней частотой на ячейку после гибки. n-й индекс точки отсечения - это индекс k, так что расстояние abs (F [k] - n *AvgFreq) минимизирована.
Это правило пытается сопоставить совокупную частоту до n-го бина. Если одно значение содержит слишком много наблюдений, равные частотные ячейки невозможны, и приведенное выше правило дает меньше, чем суммарные ячейки NumBins. В этом случае алгоритм определяет ячейки NumBins, разбивая ячейки в порядке, в котором они были построены.
Предварительная обработка категориальных предикторов заключается в сортировке категорий по 'SortCategories' критерий (по умолчанию - сортировка по коэффициентам в порядке возрастания). Сортировка не применяется к порядковым предикторам. См. определение категорий сортировки или описание AlgorithmOptions опция для 'SortCategories' для получения дополнительной информации.
Неконтролируемый алгоритм, который делит диапазон значений в области переменной предиктора на заданное число ячеек «равной ширины». Для числовых данных ширина измеряется как расстояние между кромками бункера. Для категориальных данных ширина измеряется как количество категорий в ячейке.
EqualWidth параметр определяется как:
Для числовых данных, если MinValue и MaxValue являются минимальным и максимальным значениями данных, то
Width = (MaxValue - MinValue)/NumBins
CutPoints имеют значение MinValue + Ширина, MinValue + 2 * Ширина ,...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' параметр имеет значение true (см. 'Ordinal' входной параметр в категориальных массивах MATLAB ® дляcategorical. Порядковые данные имеют естественный порядок, который учитывается на этапе предварительной обработки алгоритмов, оставляя порядок категорий неизменным. Только категориальные предикторы, чьи 'Ordinal' параметр false (опция по умолчанию) подлежат переупорядочиванию категорий согласно 'SortCategories' критерий.
autobinning с весамиПри определении весов наблюдения с помощью необязательного параметра WeightsVar аргумент при создании creditscorecard объект, вместо подсчета строк, которые являются хорошими или плохими в каждой ячейке, autobinning функция накапливает вес строк, которые являются хорошими или плохими в каждой ячейке.
Указанные «частоты» больше не являются основным «количеством» строк, а «совокупным весом» строк, которые являются хорошими или плохими и попадают в конкретный бункер. Как только эти «взвешенные частоты» известны, вся другая соответствующая статистика (Good, Bad, Odds, WOE, и InfoValue) вычисляются с помощью обычных формул. Для получения дополнительной информации см. Моделирование карт показателей кредитования с использованием весов наблюдений.
[1] Андерсон, R. The Credit Скоринг Toolkit. Издательство Оксфордского университета, 2007 год.
[2] Кербер, Р. «ChiMerge: Дискретизация числовых атрибутов». AAAI-92 Разбирательство. 1992.
[3] Лю, Н. и др. al. Интеллектуальный анализ данных, знание и обнаружение. Том 6. Выпуск 4. октябрь 2002 года, стр. 393-423.
[4] Рефаат, М. Подготовка данных для интеллектуального анализа данных с использованием SAS. Морган Кауфманн, 2006.
[5] Рефаат, М. Карты оценки кредитных рисков: разработка и внедрение с использованием SAS. lulu.com, 2011.
[6] Thomas, L., et al. Кредитный рейтинг и его приложения. Общество промышленной и прикладной математики, 2002 год.
bindata | bininfo | creditscorecard | displaypoints | fitmodel | formatpoints | modifybins | modifypredictor | plotbins | predictorinfo | probdefault | score | setmodel | validatemodel
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.