Верните информацию о интервале предиктора
возвращает информацию на уровне интервала, такую как частоты «Good», «Bad» и статистика интервала для предиктора, заданного в bi = bininfo(sc,PredictorName)PredictorName.
добавляет необязательные аргументы имя-значение.bi = bininfo(___,Name,Value)
[ добавляет необязательные аргументы имя-значение. bi,bm]
= bininfo(sc,PredictorName,Name,Value)bininfo также опционально возвращает карту раскладывания (bm) или правила bin в виде вектора точек разреза для числовых предикторов или таблицы группировок категорий для категориальных предикторов.
[ возвращает информацию на уровне интервала, такую как частоты «Good», «Bad» и статистика интервала для предиктора, заданного в bi,bm,mv]
= bininfo(sc,PredictorName,Name,Value)PredictorName использование необязательных аргументов пары "имя-значение". bininfo опционально возвращает карту раскладывания или правила интервалом в виде вектора точек разреза для числовых предикторов или таблицы группировок категорий для категориальных предикторов. В сложение необязательны аргументы пары "имя-значение" mv возвращает числовой массив, содержащий минимальное и максимальное значения, заданные (или заданные) пользователем. The mv выходной аргумент устанавливается в пустой массив для категориальных предикторов.
Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);Отобразите информацию о интервале для категориального предиктора ResStatus.
bi = bininfo(sc,'ResStatus')bi=4×6 table
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
Используйте CreditCardData.mat файл для загрузки данных (dataWeights), который содержит столбец (RowWeights) для весов (использование набора данных из Refaat 2011).
load CreditCardDataСоздайте creditscorecard объект, используя необязательный аргумент пары "имя-значение" для 'WeightsVar'.
sc = creditscorecard(dataWeights,'WeightsVar','RowWeights')
sc =
creditscorecard with properties:
GoodLabel: 0
ResponseVar: 'status'
WeightsVar: 'RowWeights'
VarNames: {1x12 cell}
NumericPredictors: {1x7 cell}
CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'}
BinMissingData: 0
IDVar: ''
PredictorVars: {1x10 cell}
Data: [1200x12 table]
Отобразите информацию о интервале для числового предиктора 'CustIncome'. Когда необязательный аргумент пары "имя-значение" 'WeightsVar' используется для задания весов наблюдений (выборки), bi таблица содержит взвешенные счетчики.
bi = bininfo(sc,'CustIncome');
bi(1:10,:)ans=10×6 table
Bin Good Bad Odds WOE InfoValue
_________ _______ _______ _______ ________ __________
{'18000'} 0.94515 1.496 0.63179 -1.1667 0.0059198
{'19000'} 0.47588 0.80569 0.59065 -1.2341 0.0034716
{'20000'} 2.1671 1.4636 1.4806 -0.31509 0.00061392
{'21000'} 3.2522 0.88064 3.693 0.59889 0.0021303
{'22000'} 1.5438 1.2714 1.2142 -0.51346 0.0012913
{'23000'} 1.787 2.7529 0.64913 -1.1397 0.010509
{'24000'} 3.4111 2.2538 1.5135 -0.29311 0.00082663
{'25000'} 2.2333 6.1383 0.36383 -1.7186 0.042642
{'26000'} 2.1246 4.4754 0.47474 -1.4525 0.024526
{'27000'} 3.1058 3.528 0.88032 -0.83501 0.0082144
Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);Отобразите информацию о настроенном интервале для категориального предиктора ResStatus, сохраняя только WOE столбец. Вес Доказательства (ГОРЕ) определяется bin bin, но нет концепции «общее ГОРЕ», поэтому последний элемент в 'Totals' для строки задано значение NaN.
bi = bininfo(sc,'ResStatus','Statistics','WOE'); disp(bi)
Bin Good Bad WOE
______________ ____ ___ _________
{'Home Owner'} 365 177 0.019329
{'Tenant' } 307 167 -0.095564
{'Other' } 131 53 0.20049
{'Totals' } 803 397 NaN
Отобразите информацию о настроенном интервале для категориального предиктора ResStatus, сохраняя только Odds и WOE столбцы, без Totals строка.
bi = bininfo(sc,'ResStatus','Statistics',{'Odds','WOE'},'Totals','Off'); disp(bi)
Bin Good Bad Odds WOE
______________ ____ ___ ______ _________
{'Home Owner'} 365 177 2.0621 0.019329
{'Tenant' } 307 167 1.8383 -0.095564
{'Other' } 131 53 2.4717 0.20049
Отобразите информационное значение, энтропию, статистику Джини и хи-квадрат. Для получения дополнительной информации об этой статистике см. раздел Статистика для карты показателей кредита.
Для информационного значения, энтропии и Джини значение, сообщаемое на уровне интервала, является вкладом интервала в общее значение. Общее значение информации, энтропия и измерения Джини находятся в 'Totals' строка.
Для квадрата chi, если есть N интервалов, первые N-1 значения в 'Chi2' отчет столбца о парной квадратной статистике chi для смежных интервалов. Для примера эта парная мера также используется 'Merge' алгоритм в autobinning для определения необходимости объединения двух смежных интервалов. В этом примере первое значение в 'Chi2' столбец (1.0331) - статистическая величина хи-квадрат интервалов 1 и 2 ('Home Owner' и 'Tenant'), и второе значение в столбце (2.5103) - статистическая величина хи-квадрат интервалов 2 и 3 ('Tenant' и 'Other'). В этом примере нет более парных значений хи-квадрат для вычисления, поэтому третий элемент 'Chi2' для столбца задано значение NaN. Значение хи квадрат, представленное в 'Totals' строка - это квадратная статистическая величина chi, вычисленная по всем интервалам.
bi = bininfo(sc,'ResStatus','Statistics',{'InfoValue','Entropy','Gini','Chi2'}); disp(bi)
Bin Good Bad InfoValue Entropy Gini Chi2
______________ ____ ___ _________ _______ _______ ______
{'Home Owner'} 365 177 0.0001682 0.91138 0.43984 1.0331
{'Tenant' } 307 167 0.0036638 0.93612 0.45638 2.5103
{'Other' } 131 53 0.0059418 0.86618 0.41015 NaN
{'Totals' } 803 397 0.0097738 0.91422 0.44182 2.5549
Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);binning map или правила для категориальных данных суммируются в таблице «группировка категорий», возвращаемой как необязательный выход. По умолчанию каждая категория помещается в отдельный интервал. Вот информация для предиктора ResStatus.
[bi,cg] = bininfo(sc,'ResStatus')bi=4×6 table
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
cg=3×2 table
Category BinNumber
______________ _________
{'Home Owner'} 1
{'Tenant' } 2
{'Other' } 3
К категориям групп Tenant и Other, измените таблицу группировок категорий cg так, чтобы номер интервала для Other совпадает с номером интервала для Tenant. Затем используйте modifybins функция для обновления карты показателей.
cg.BinNumber(3) = 2; sc = modifybins(sc,'ResStatus','CatGrouping',cg);
Отображение обновленной информации о интервале. Метки интервала были обновлены, и информация о членстве в интервале содержится в cg группировок категорий.
[bi,cg] = bininfo(sc,'ResStatus')bi=3×6 table
Bin Good Bad Odds WOE InfoValue
__________ ____ ___ ______ _________ __________
{'Group1'} 365 177 2.0621 0.019329 0.0001682
{'Group2'} 438 220 1.9909 -0.015827 0.00013772
{'Totals'} 803 397 2.0227 NaN 0.00030592
cg=3×2 table
Category BinNumber
______________ _________
{'Home Owner'} 1
{'Tenant' } 2
{'Other' } 2
Создайте creditscorecard объект с использованием CreditCardData.mat файл для загрузки data (использование набора данных из Refaat 2011).
load CreditCardData
sc = creditscorecard(data);Предиктор CustIncome является числовым. По умолчанию каждое значение предиктора помещается в отдельное интервал.
bi = bininfo(sc,'CustIncome')bi=46×6 table
Bin Good Bad Odds WOE InfoValue
_________ ____ ___ _______ _________ __________
{'18000'} 2 3 0.66667 -1.1099 0.0056227
{'19000'} 1 2 0.5 -1.3976 0.0053002
{'20000'} 4 2 2 -0.011271 6.3641e-07
{'21000'} 6 3 2 -0.011271 9.5462e-07
{'22000'} 4 2 2 -0.011271 6.3641e-07
{'23000'} 4 4 1 -0.70442 0.0035885
{'24000'} 5 5 1 -0.70442 0.0044856
{'25000'} 4 9 0.44444 -1.5153 0.026805
{'26000'} 4 11 0.36364 -1.716 0.038999
{'27000'} 6 6 1 -0.70442 0.0053827
{'28000'} 13 11 1.1818 -0.53736 0.0061896
{'29000'} 11 10 1.1 -0.60911 0.0069988
{'30000'} 18 16 1.125 -0.58664 0.010493
{'31000'} 24 8 3 0.39419 0.0038382
{'32000'} 21 15 1.4 -0.36795 0.0042797
{'33000'} 35 19 1.8421 -0.093509 0.00039951
⋮
Уменьшите количество интервалов, используя autobinning функция (а modifybins функция также может использоваться).
sc = autobinning(sc,'CustIncome');Отображение обновленной информации о интервале. Раскладывание или правила для числовых данных суммируются как «точки разреза», возвращаются как необязательный выход (cp).
[bi,cp] = 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
cp = 6×1
29000
33000
35000
40000
42000
47000
Вручную удалите вторую точку разреза (контур между вторым и третьим интервалами), чтобы объединить интервалы 2 и 3. Используйте modifybins функция для обновления карты показателей.
cp(2) = []; sc = modifybins(sc,'CustIncome','CutPoints',cp,'MinValue',0);
Отображение обновленной информации о интервале.
[bi,cp,mv] = bininfo(sc,'CustIncome')bi=7×6 table
Bin Good Bad Odds WOE InfoValue
_________________ ____ ___ _______ _________ __________
{'[0,29000)' } 53 58 0.91379 -0.79457 0.06364
{'[29000,35000)'} 142 85 1.6706 -0.19124 0.0071274
{'[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.12043
cp = 5×1
29000
35000
40000
42000
47000
mv = 1×2
0 Inf
Обратите внимание, что рекомендуется избегать интервалов с частотами нуля, потому что они приводят к бесконечному или неопределенному (NaN) статистика. Используйте modifybins или autobinning функций для изменения интервалов.
Создайте 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,'IDVar','CustID','BinMissingData',true); sc = autobinning(sc); disp(sc)
creditscorecard with properties:
GoodLabel: 0
ResponseVar: 'status'
WeightsVar: ''
VarNames: {1x11 cell}
NumericPredictors: {1x6 cell}
CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'}
BinMissingData: 1
IDVar: 'CustID'
PredictorVars: {1x9 cell}
Data: [1200x11 table]
Отображение информации о интервале для числовых данных для 'CustAge' который включает отсутствующие данные в отдельном интервале, маркированном <missing>.
bi = bininfo(sc,'CustAge');
disp(bi) Bin Good Bad Odds WOE InfoValue
_____________ ____ ___ ______ ________ __________
{'[-Inf,33)'} 69 52 1.3269 -0.42156 0.018993
{'[33,37)' } 63 45 1.4 -0.36795 0.012839
{'[37,40)' } 72 47 1.5319 -0.2779 0.0079824
{'[40,46)' } 172 89 1.9326 -0.04556 0.0004549
{'[46,48)' } 59 25 2.36 0.15424 0.0016199
{'[48,51)' } 99 41 2.4146 0.17713 0.0035449
{'[51,58)' } 157 62 2.5323 0.22469 0.0088407
{'[58,Inf]' } 93 25 3.72 0.60931 0.032198
{'<missing>'} 19 11 1.7273 -0.15787 0.00063885
{'Totals' } 803 397 2.0227 NaN 0.087112
plotbins(sc,'CustAge')
Отображение информации о интервале для категориальных данных для 'ResStatus' который включает отсутствующие данные в отдельном интервале, маркированном <missing>.
[bi,cg] = bininfo(sc,'ResStatus');
disp(bi) Bin Good Bad Odds WOE InfoValue
______________ ____ ___ ______ _________ __________
{'Tenant' } 296 161 1.8385 -0.095463 0.0035249
{'Home Owner'} 352 171 2.0585 0.017549 0.00013382
{'Other' } 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.0092627
disp(cg)
Category BinNumber
______________ _________
{'Tenant' } 1
{'Home Owner'} 2
{'Other' } 3
Обратите внимание, что таблица группировок категорий не включает <missing> поскольку это зарезервированный интервал, пользователи не могут непосредственно взаимодействовать со <missing> Интервал.
plotbins(sc,'ResStatus')
sc - Модель карты показателей кредитаcreditscorecard объектМодель карты показателей кредита, заданная как creditscorecard объект. Использование creditscorecard для создания creditscorecard объект.
PredictorName - Имя предиктораИмя предиктора, заданное с помощью вектора символов, содержащей имя предиктора. PredictorName учитывает регистр.
Типы данных: char
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
bi = bininfo(sc, PredictorName,'Statistics','WOE','Totals','On')'Statistics' - Список статистических данных, включаемых для информации о интервале{'Odds','WOE','InfoValue'} (по умолчанию) | символьный вектор со значениями 'Odds', 'WOE', 'InfoValue', 'Entropy', 'Gini', 'Chi2' | массив ячеек векторов символов со значениями 'Odds', 'WOE', 'InfoValue', 'Entropy', 'Gini', 'Chi2'Список статистических данных для включения в интервал информацию в виде разделенных запятой пар, состоящих из 'Statistics' и вектор символов или массив ячеек векторов символов. Для получения дополнительной информации см. раздел Статистика для карты показателей кредита. Возможные значения:
'Odds' - Информация о вероятностях - это отношение «Товары» к «Бадс».
'WOE' - Вес доказательств. Статистика ГОРЕ измеряет отклонение между распределением «Товаров» и «БАДС».
'InfoValue' - Значение информации. Тесно связанный с ГОРЕ, это статистика, используемая для определения того, насколько сильным предиктором является использование в модели аппроксимации. Он измеряет, насколько сильно отклонение между распределениями «Товары» и «Бады». Однако интервалы с только «Хорошими» или только «Плохими» наблюдениями приводят к бесконечному Значению Информации. Рассмотрите изменение интервалов в этих случаях при помощи modifybins или autobinning.
'Entropy' - Энтропия является мерой непредсказуемости, содержащейся в интервалах. Чем больше количество «Товаров» и «Бадов» отличается внутри интервалов, тем меньше энтропия.
'Gini' - Показатель статистического рассеяния или неравенства в выборке данных.
'Chi2' - Показатель статистического различия и независимости между группами.
Примечание
Избегайте наличия интервалов с частотами нуля, потому что они приводят к бесконечному или неопределенному (NaN) статистика. Использовать modifybins или autobinning для изменения интервалов.
Типы данных: char | cell
'Totals' - Индикатор для включения строки итогов в нижнюю информационную таблицу'On'
(по умолчанию) | символьный вектор со значениями 'On', 'Off'Индикатор для включения строки итогов в нижней части информационной таблицы, заданной как разделенная разделенными запятой парами, состоящая из 'Totals' и вектор символов со значениями On или Off.
Типы данных: char
bi - Информация о интервале Информация о интервале, возвращенная как таблица. Информационная таблица интервала содержит по одной строке на интервал и по строке итогов. Столбцы содержат описание интервала, частоты «Хорошо» и «Плохо» и статистику интервала. Избегайте наличия интервалов с частотами нуля, потому что они приводят к бесконечному или неопределенному (NaN) статистика. Использовать modifybins или autobinning для изменения интервалов.
Примечание
При создании creditscorecard объект с creditscorecard, если необязательный аргумент пары "имя-значение" WeightsVar использовался для задания весов наблюдений (выборки), затем bi таблица содержит взвешенные счетчики.
bm - Binning map или rulesBinning map или правила, возвращенные как вектор точек разреза для числовых предикторов или таблица группировок категорий для категориальных предикторов. Для получения дополнительной информации см. modifybins.
mv - Минимальное и максимальное значения раскладыванияРаскладывание минимальное и максимальное значения (заданные или заданные пользователем), возвращенные как числовой массив. The mv выходной аргумент устанавливается в пустой массив для категориальных предикторов.
Вес доказательств (ГОРЕ) является мерой различия распределения «Товаров» и «БАДС» внутри интервала.
Предположим, что данные предиктора берутся за M возможных значений b1,..., b M. Для привязанных данных M является небольшим числом. Ответ принимает два значения, «Хороший» и «Плохой». Таблица частот данных определяется:
| Хорошо | Плохо | Общее количество | |
|---|---|---|---|
| b1: | n11 | n12 | n1 |
| b2: | n21 | n22 | n2 |
| b M: | n M 1 | n M 2 | n M |
| Итого: | nGood | nBad | nTotal |
Вес доказательств (WOE) определяется для каждого значения данных bi как
WOE(i) = log((ni1/nGood)/(ni2/nBad)).
Если вы задаете
pGood(i) = ni1/nGood, pBad(i) = ni2/nBad
затем pGood(i) - это доля «хороших» наблюдений, которые берут на себя значение bi, и аналогично для pBad(<reservedrangesplaceholder1>). Другими словами, pGood(i) дает распределение хороших наблюдений над M наблюдаемыми значениями предиктора и аналогично для pBad(<reservedrangesplaceholder0>). При этом эквивалентная формула для ГОРЕ является
WOE(i) = log(pGood(i)/pBad(i)).
Odds(i) = ni1 / ni2,
OddsTotal = nGood / nBad.
Для каждой строки i можно также вычислить его вклад в общее Информационное значение, заданный как
InfoValue(i) = (pGood(i) - pBad(i)) * WOE(i),
и Общее Значение Информации является просто суммой всех InfoValuel (i) условия. (A nansum возвращается к сбросу вкладов из строк без наблюдений вообще.)
Точно так же для каждого i строк мы можем вычислить его вклад в общую энтропию, заданную как
Entropy(i) = -1/log(2)*(ni1/ni*log(ni1/ni)+ni2/ni*log(ni2/ni),
Entropy = sum(ni/nTotal * Entropy(i)), i = 1...M.
Chi2 вычисляется попарно для каждой пары интервалов и измеряет статистическое различие между двумя группами при разделении или объединении интервалов и определяется как:
Chi2 = sum(sum((Aij - Eij)^2/Eij , j=1..k), i=m,m+1).
Отношение Джини является мерой родительского узла, то есть заданных интервалов/категорий до разделения или слияния. Отношение Джини определяется как:
Gr = 1-G_hat/Gp
G_hat - взвешенная мера Джини для текущего разделения или слияния:G_hat = Sum((nj/N) * Gj, j=1..m).
bininfo с весамиКогда веса наблюдений заданы с помощью необязательной WeightsVar аргумент при создании creditscorecard объект, вместо подсчета строк, которые хороши или плохи в каждом интервале, bininfo функция накапливает вес строк, которые хороши или плохи в каждом интервале.
«Частоты», о которых сообщалось, больше не являются базовым «количеством» строк, а «совокупным весом» строк, которые хороши или плохи падают в конкретном интервале. Когда эти «взвешенные частоты» известны, вся другая релевантная статистика (Good, Bad, Odds, WOE, и InfoValue) вычисляются обычными формулами. Для получения дополнительной информации смотрите Моделирование карты показателей кредита с использованием весов наблюдений.
[1] Anderson, R. The Credit Scoring Toolkit. Oxford University Press, 2007.
[2] Refaat, M. Кредитные карты оценки риска: Разработка и реализация с использованием SAS. lulu.com, 2011.
autobinning | bindata | creditscorecard | displaypoints | fitmodel | formatpoints | modifybins | modifypredictor | plotbins | predictorinfo | probdefault | score | setmodel | validatemodel
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.