Этот пример описывает присвоение точек для отсутствующих данных, когда 'BinMissingData'
для опции задано значение true
.
Предикторы, которые имеют отсутствующие данные в набор обучающих данных, имеют явное интервал для <missing>
с соответствующими точками в окончательной карте результатов. Эти точки вычисляются из значения веса доказательств (WOE) для <missing>
интервал и коэффициенты логистической модели. В целях оценки эти точки присваиваются отсутствующим значениям и значениям вне области допустимого значения.
Предикторы без отсутствующих данных в наборе обучающих данных не имеют <missing>
интервал, поэтому никакое ГОРЕ не может быть оценено из обучающих данных. По умолчанию точки для отсутствующих и вне области допустимого заданы равными NaN
и это приводит к счету NaN
при запуске score
. Для предикторов, которые не имеют явных <missing>
интервал, используйте аргумент имя-значение 'Missing'
в formatpoints
чтобы указать, как отсутствующие данные должны обрабатываться в целях оценки.
Создайте creditscorecard
объект с использованием CreditCardData.mat
файл для загрузки dataMissing
с отсутствующими значениями.
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
Number of missing values CustAge: 30
Number of missing values ResStatus: 40
Использование creditscorecard
с аргументом имя-значение 'BinMissingData'
установлено на true
для ввода отсутствующих числовых или категорийных данных в отдельное интервал. Применить автоматическое раскладывание.
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
и CustIncome
. При этом любая отрицательная информация о возрасте или доходе становится недействительной или «вне области допустимого значения». В целях оценки значениям вне области допустимого задаются те же точки, что и отсутствующим значениям.
Отобразите и постройте график информации о интервале для числовых данных для 'CustAge'
который включает отсутствующие данные в отдельном интервале, маркированном <missing>
.
Bin Good Bad Odds WOE InfoValue
_____________ ____ ___ ______ ________ __________
{'[0,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
Отображение и построение графика информации о интервале для категориальных данных для 'ResStatus'
который включает отсутствующие данные в отдельном интервале, маркированном <missing>
.
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
Для 'CustAge'
и 'ResStatus'
предикторы, отсутствуют данные (NaN
s и <undefined>
) в обучающих данных и процессе раскладывания оценивает значение ГОРЕ -0.15787
и 0.026469
соответственно для отсутствующих данных в этих предикторах, как показано выше.
Для EmpStatus
и CustIncome
нет явного интервала для отсутствующих значений, потому что обучающие данные не имеют отсутствующих значений для этих предикторов.
Bin Good Bad Odds WOE InfoValue
____________ ____ ___ ______ ________ _________
{'Unknown' } 396 239 1.6569 -0.19947 0.021715
{'Employed'} 407 158 2.5759 0.2418 0.026323
{'Totals' } 803 397 2.0227 NaN 0.048038
Bin Good Bad Odds WOE InfoValue
_________________ ____ ___ _______ _________ __________
{'[0,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
Использование fitmodel
для подбора логистической регрессионной модели с использованием данных о весе доказательств (WOE). fitmodel
внутренне преобразует все переменные предиктора в значения WOE, используя интервалы, найденные в процессе автоматического раскладывания. fitmodel
затем подходит для логистической регрессионной модели с помощью пошагового метода (по умолчанию). Для предикторов, которые имеют отсутствующие данные, существует явное <missing>
интервал с соответствующим значением WOE, вычисленным из данных. При использовании fitmodel
, соответствующее значение ГОРЕ для <missing>
Интервал применяется при выполнении преобразования ГОРЕ.
1. Adding CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08
2. Adding TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-06
3. Adding AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601
4. Adding EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257
5. Adding CustAge, Deviance = 1442.8477, Chi2Stat = 4.4974731, PValue = 0.033944979
6. Adding ResStatus, Deviance = 1438.9783, Chi2Stat = 3.86941, PValue = 0.049173805
7. Adding OtherCC, Deviance = 1434.9751, Chi2Stat = 4.0031966, PValue = 0.045414057
Generalized linear regression model:
status ~ [Linear formula with 8 terms in 7 predictors]
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ ______ __________
(Intercept) 0.70229 0.063959 10.98 4.7498e-28
CustAge 0.57421 0.25708 2.2335 0.025513
ResStatus 1.3629 0.66952 2.0356 0.04179
EmpStatus 0.88373 0.2929 3.0172 0.002551
CustIncome 0.73535 0.2159 3.406 0.00065929
TmWBank 1.1065 0.23267 4.7556 1.9783e-06
OtherCC 1.0648 0.52826 2.0156 0.043841
AMBalance 1.0446 0.32197 3.2443 0.0011775
1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 88.5, p-value = 2.55e-16
Масштабируйте точки карты показателей методом «баллы, шансы и баллы к удвоению шансов (PDO)» с помощью 'PointsOddsAndPDO'
аргумент formatpoints
. Предположим, что вы хотите, чтобы счет 500 точек имел шансы 2 (вдвое больше вероятности быть хорошим, чем быть плохим) и что шансы удваиваются каждые 50 точки (так что 550 точки будут иметь шансы 4).
Отобразите карту показателей, показывающую масштабированные точки для предикторов, сохраненных в модели аппроксимации.
PointsInfo=38×3 table
Predictors Bin Points
_____________ ______________ ______
{'CustAge' } {'[0,33)' } 54.062
{'CustAge' } {'[33,37)' } 56.282
{'CustAge' } {'[37,40)' } 60.012
{'CustAge' } {'[40,46)' } 69.636
{'CustAge' } {'[46,48)' } 77.912
{'CustAge' } {'[48,51)' } 78.86
{'CustAge' } {'[51,58)' } 80.83
{'CustAge' } {'[58,Inf]' } 96.76
{'CustAge' } {'<missing>' } 64.984
{'ResStatus'} {'Tenant' } 62.138
{'ResStatus'} {'Home Owner'} 73.248
{'ResStatus'} {'Other' } 90.828
{'ResStatus'} {'<missing>' } 74.125
{'EmpStatus'} {'Unknown' } 58.807
{'EmpStatus'} {'Employed' } 86.937
{'EmpStatus'} {'<missing>' } NaN
⋮
Заметьте, что точки для <missing>
интервал для CustAge
и ResStatus
показаны явно (как 64.9836
и 74.1250
, соответственно). Эти точки вычисляются из значения ГОРЕ для <missing>
интервал и коэффициенты логистической модели.
Для предикторов, которые не имеют отсутствующих данных в наборе обучающих данных, нет явных <missing>
Интервал. По умолчанию для точек задано значение NaN
для недостающих данных и они приводят к счету NaN
при запуске score
. Для предикторов, которые не имеют явных <missing>
интервал, используйте аргумент имя-значение 'Missing'
в formatpoints
чтобы указать, как отсутствующие данные должны обрабатываться в целях оценки.
Для целей рисунка берите несколько строк из исходных данных в качестве тестовых данных и вводите некоторые недостающие данные. Также введите некоторые недопустимые или значения вне области допустимого значения. Для числовых данных значения ниже минимума (или выше максимума) считаются недопустимыми, например, отрицательное значение для возраста (recall 'MinValue'
ранее установлено значение 0
для CustAge
и CustIncome
). Для категориальных данных недопустимыми значениями являются категории, явно не включенные в карту показателей, например, статус жилого объекта, ранее не сопоставленный с категориями карт показателей, такими как «Дом» или бессмысленная строка, такая как «abc123».
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance
_______ ___________ ___________ __________ _______ _______ _________
NaN Tenant Unknown 34000 44 Yes 119.8
48 <undefined> Unknown 44000 14 Yes 403.62
65 Home Owner <undefined> 48000 6 No 111.88
44 Other Unknown NaN 35 No 436.41
-100 Other Employed 46000 16 Yes 162.21
33 House Employed 36000 36 Yes 845.02
39 Tenant Freelancer 34000 40 Yes 756.26
24 Home Owner Employed -1 19 Yes 449.61
Оцените новые данные и посмотрите, как начисляются баллы за отсутствующие CustAge
и ResStatus
, потому что у нас есть явный интервал с точками для <missing>
. Однако для EmpStatus
и CustIncome
а score
функция устанавливает точки равными NaN
.
481.2231
520.8353
NaN
NaN
551.7922
487.9588
NaN
NaN
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance
_______ _________ _________ __________ _______ _______ _________
64.984 62.138 58.807 67.893 61.858 75.622 89.922
78.86 74.125 58.807 82.439 61.061 75.622 89.922
96.76 73.248 NaN 96.969 51.132 50.914 89.922
69.636 90.828 58.807 NaN 61.858 50.914 89.922
64.984 90.828 86.937 82.439 61.061 75.622 89.922
56.282 74.125 86.937 70.107 61.858 75.622 63.028
60.012 62.138 NaN 67.893 61.858 75.622 63.028
54.062 73.248 86.937 NaN 61.061 75.622 89.922
Используйте аргумент имя-значение 'Missing'
в formatpoints
чтобы выбрать, как назначить точки отсутствующим значениям для предикторов, которые не имеют явного <missing>
Интервал. В этом примере используйте 'MinPoints'
опция для 'Missing'
аргумент. Минимальные точки для EmpStatus
в таблице показателей, показанной выше 58.8072
, и для CustIncome
минимальные точки 29.3753
.
481.2231
520.8353
517.7532
451.3405
551.7922
487.9588
449.3577
470.2267
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance
_______ _________ _________ __________ _______ _______ _________
64.984 62.138 58.807 67.893 61.858 75.622 89.922
78.86 74.125 58.807 82.439 61.061 75.622 89.922
96.76 73.248 58.807 96.969 51.132 50.914 89.922
69.636 90.828 58.807 29.375 61.858 50.914 89.922
64.984 90.828 86.937 82.439 61.061 75.622 89.922
56.282 74.125 86.937 70.107 61.858 75.622 63.028
60.012 62.138 58.807 67.893 61.858 75.622 63.028
54.062 73.248 86.937 29.375 61.061 75.622 89.922