Точки возврата на предиктор на ячейку
возвращает таблицу точек для всех ячеек всех переменных предиктора, используемых в PointsInfo = displaypoints(sc)creditscorecard объект после подгонки модели линейной логистической регрессии с использованием fitmodel к данным веса доказательств. PointsInfo В таблице отображается информация об имени предиктора, метках ячейки и соответствующих точках на ячейку.
[ возвращает таблицу точек для всех ячеек всех переменных предиктора, используемых в PointsInfo,MinScore,MaxScore] = displaypoints(sc)creditscorecard объект после аппроксимации модели линейной логистической регрессии (fitmodel) к данным веса доказательств. PointsInfo отображает информацию об имени предиктора, метках ячейки и соответствующих точках на ячейку и displaypoints. Кроме того, необязательный MinScore и MaxScore возвращаются значения.
[ указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к входным аргументам в предыдущем синтаксисе. PointsInfo,MinScore,MaxScore] = displaypoints(___,Name,Value)
В этом примере показано, как использовать displaypoints после того, как модель подогнана для вычисления нескрупулезных точек на ячейку, для данного предиктора в creditscorecard модель.
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит информацию об идентификаторе и не должен быть включен в качестве предикторной переменной.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое binning to bin для всех предикторов.
sc = autobinning(sc);
Подгонка модели линейной регрессии с использованием параметров по умолчанию.
sc = fitmodel(sc);
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 = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
6. Adding ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078
7. Adding OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769
Generalized linear regression model:
status ~ [Linear formula with 8 terms in 7 predictors]
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ ______ __________
(Intercept) 0.70239 0.064001 10.975 5.0538e-28
CustAge 0.60833 0.24932 2.44 0.014687
ResStatus 1.377 0.65272 2.1097 0.034888
EmpStatus 0.88565 0.293 3.0227 0.0025055
CustIncome 0.70164 0.21844 3.2121 0.0013179
TmWBank 1.1074 0.23271 4.7589 1.9464e-06
OtherCC 1.0883 0.52912 2.0569 0.039696
AMBalance 1.045 0.32214 3.2439 0.0011792
1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 89.7, p-value = 1.4e-16
Отображение несмасштабированных точек для предикторов, сохраненных в модели фитинга.
PointsInfo = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ _________
{'CustAge' } {'[-Inf,33)' } -0.15894
{'CustAge' } {'[33,37)' } -0.14036
{'CustAge' } {'[37,40)' } -0.060323
{'CustAge' } {'[40,46)' } 0.046408
{'CustAge' } {'[46,48)' } 0.21445
{'CustAge' } {'[48,58)' } 0.23039
{'CustAge' } {'[58,Inf]' } 0.479
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.031252
{'ResStatus' } {'Home Owner' } 0.12696
{'ResStatus' } {'Other' } 0.37641
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.076317
{'EmpStatus' } {'Employed' } 0.31449
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} -0.45716
⋮
displaypoints всегда отображает '<missing>' bin для каждого предиктора. Значение '<missing>' bin происходит от начального creditscorecard объект и '<missing>' для ячейки установлено значение NaN каждый раз, когда модель карты показателей не имеет информации о том, как назначить точки отсутствующим данным.
Настройка точек для '<missing>' bin, необходимо использовать начальный creditscorecard объект. Для предикторов, у которых отсутствуют значения в обучающем наборе, баллы для '<missing>' bin оцениваются из данных, если 'BinMissingData' аргумент пары имя-значение имеет значение true использование creditscorecard. Когда 'BinMissingData' параметр имеет значение falseили если данные не содержат отсутствующих значений в обучающем наборе, используйте 'Missing' аргумент пары имя-значение в formatpoints для указания способа назначения точек отсутствующим данным.
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data с отсутствующими значениями.
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 в ячейку отсутствующих числовых или категориальных данных в отдельной ячейке. Применение автоматического binning.
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,cp] = 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
plotbins(sc,'ResStatus')
Для 'CustAge' и 'ResStatus' предикторы, отсутствуют данные (NaNs и <undefined>) в учебных данных, и процесс связывания оценивает значение WOE, равное -0.15787 и 0.026469 соответственно для отсутствующих данных в этих предикторах, как показано выше.
Использовать fitmodel чтобы соответствовать модели логистической регрессии с использованием данных веса доказательств (WOE). fitmodel внутренне преобразует все переменные предиктора в значения WOE, используя ячейки, найденные в процессе автоматического объединения. fitmodel затем подходит модель логистической регрессии с использованием пошагового метода (по умолчанию). Для предикторов, у которых отсутствуют данные, существует явное <missing> bin, с соответствующим значением WOE, вычисленным на основе данных. При использовании fitmodelсоответствующее значение WOE для < missing > bin применяется при выполнении преобразования WOE.
[sc,mdl] = fitmodel(sc);
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
Отображение немасштабированных точек для предикторов, сохраненных в модели фитинга (для использования точек масштабирования formatpoints).
PointsInfo = displaypoints(sc)
PointsInfo=38×3 table
Predictors Bin Points
_____________ ______________ _________
{'CustAge' } {'[-Inf,33)' } -0.14173
{'CustAge' } {'[33,37)' } -0.11095
{'CustAge' } {'[37,40)' } -0.059244
{'CustAge' } {'[40,46)' } 0.074167
{'CustAge' } {'[46,48)' } 0.1889
{'CustAge' } {'[48,51)' } 0.20204
{'CustAge' } {'[51,58)' } 0.22935
{'CustAge' } {'[58,Inf]' } 0.45019
{'CustAge' } {'<missing>' } 0.0096749
{'ResStatus'} {'Tenant' } -0.029778
{'ResStatus'} {'Home Owner'} 0.12425
{'ResStatus'} {'Other' } 0.36796
{'ResStatus'} {'<missing>' } 0.1364
{'EmpStatus'} {'Unknown' } -0.075948
{'EmpStatus'} {'Employed' } 0.31401
{'EmpStatus'} {'<missing>' } NaN
⋮
Обратите внимание, что точки для <missing> ячейка для CustAge и ResStatus явно показаны. Эти точки вычисляются на основе значения WOE для < missing > bin и коэффициентов логистической модели.
Для предикторов, не имеющих отсутствующих данных в обучающем наборе, нет явных <missing> bin, и по умолчанию для точек установлено значение NaN для отсутствующих данных, и они приводят к оценке NaN при выполнении score. Для предикторов, не имеющих явных <missing> bin, используйте аргумент имя-значение 'Missing' в formatpoints чтобы указать, как недостающие данные должны рассматриваться в целях оценки.
В этом примере показано, как использовать formatpoints после установки модели для форматирования масштабированных точек и использования displaypoints для отображения масштабированных точек на ячейку для данного предиктора в creditscorecard модель.
Точки масштабируются при определении диапазона. В частности, необходимо линейное преобразование из немасштабированных в масштабированные точки. Это преобразование определяется либо путем подачи сдвига и наклона, либо путем указания наихудших и наилучших возможных показателей. (Дополнительные сведения см. в разделе formatpoints.)
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит информацию об идентификаторе и не должен быть включен в качестве предикторной переменной.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое binning to bin для всех предикторов.
sc = autobinning(sc);
Подгонка модели линейной регрессии с использованием параметров по умолчанию.
sc = fitmodel(sc);
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 = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
6. Adding ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078
7. Adding OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769
Generalized linear regression model:
status ~ [Linear formula with 8 terms in 7 predictors]
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ ______ __________
(Intercept) 0.70239 0.064001 10.975 5.0538e-28
CustAge 0.60833 0.24932 2.44 0.014687
ResStatus 1.377 0.65272 2.1097 0.034888
EmpStatus 0.88565 0.293 3.0227 0.0025055
CustIncome 0.70164 0.21844 3.2121 0.0013179
TmWBank 1.1074 0.23271 4.7589 1.9464e-06
OtherCC 1.0883 0.52912 2.0569 0.039696
AMBalance 1.045 0.32214 3.2439 0.0011792
1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 89.7, p-value = 1.4e-16
Используйте formatpoints функция для масштабирования, обеспечивающая 'Worst' и 'Best' значения баллов. Приведенный ниже диапазон является общим диапазоном баллов.
sc = formatpoints(sc,'WorstAndBestScores',[300 850]);Снова отобразите информацию о баллах, чтобы убедиться, что баллы теперь масштабированы, а также отобразите масштабированные минимальные и максимальные баллы.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ ______
{'CustAge' } {'[-Inf,33)' } 46.396
{'CustAge' } {'[33,37)' } 48.727
{'CustAge' } {'[37,40)' } 58.772
{'CustAge' } {'[40,46)' } 72.167
{'CustAge' } {'[46,48)' } 93.256
{'CustAge' } {'[48,58)' } 95.256
{'CustAge' } {'[58,Inf]' } 126.46
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } 62.421
{'ResStatus' } {'Home Owner' } 82.276
{'ResStatus' } {'Other' } 113.58
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } 56.765
{'EmpStatus' } {'Employed' } 105.81
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} 8.9706
⋮
MinScore = 300
MaxScore = 850.0000
Обратите внимание, что, как и ожидалось, значения MinScore и MaxScore соответствуют худшим и лучшим из возможных баллов.
В этом примере показано, как использовать displaypoints после установки модели, чтобы отделить базовые точки от остальных точек, назначенных каждой переменной предиктора. Аргумент пары имя-значение 'BasePoints' в formatpoints функция - это логическое значение, которое служит этой цели. По умолчанию базовые точки распределены по всем переменным в карте показателей.
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит информацию об идентификаторе и не должен быть включен в качестве предикторной переменной.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое binning to bin для всех предикторов.
sc = autobinning(sc);
Подгонка модели линейной регрессии с использованием параметров по умолчанию.
sc = fitmodel(sc);
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 = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
6. Adding ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078
7. Adding OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769
Generalized linear regression model:
status ~ [Linear formula with 8 terms in 7 predictors]
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ ______ __________
(Intercept) 0.70239 0.064001 10.975 5.0538e-28
CustAge 0.60833 0.24932 2.44 0.014687
ResStatus 1.377 0.65272 2.1097 0.034888
EmpStatus 0.88565 0.293 3.0227 0.0025055
CustIncome 0.70164 0.21844 3.2121 0.0013179
TmWBank 1.1074 0.23271 4.7589 1.9464e-06
OtherCC 1.0883 0.52912 2.0569 0.039696
AMBalance 1.045 0.32214 3.2439 0.0011792
1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 89.7, p-value = 1.4e-16
Используйте formatpoints для разделения базовых точек с помощью функции 'BasePoints' аргумент пары имя-значение.
sc = formatpoints(sc,'BasePoints',true);Отображение базовых точек, отделенных от других точек, для предикторов, сохраненных в модели фитинга.
PointsInfo = displaypoints(sc)
PointsInfo=38×3 table
Predictors Bin Points
______________ ______________ _________
{'BasePoints'} {'BasePoints'} 0.70239
{'CustAge' } {'[-Inf,33)' } -0.25928
{'CustAge' } {'[33,37)' } -0.24071
{'CustAge' } {'[37,40)' } -0.16066
{'CustAge' } {'[40,46)' } -0.053933
{'CustAge' } {'[46,48)' } 0.11411
{'CustAge' } {'[48,58)' } 0.13005
{'CustAge' } {'[58,Inf]' } 0.37866
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.13159
{'ResStatus' } {'Home Owner'} 0.026616
{'ResStatus' } {'Other' } 0.27607
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.17666
{'EmpStatus' } {'Employed' } 0.21415
{'EmpStatus' } {'<missing>' } NaN
⋮
В этом примере показано, как использовать displaypoints после установки модели и modifybins используется для предоставления пользовательских меток ячейки для числового предиктора.
Создать creditscorecard с использованием CreditCardData.mat для загрузки файла data (с использованием набора данных из Refaat 2011). Используйте 'IDVar' аргумент в creditscorecard функция, указывающая, что 'CustID' содержит информацию об идентификаторе и не должен быть включен в качестве предикторной переменной.
load CreditCardData sc = creditscorecard(data,'IDVar','CustID');
Выполните автоматическое binning to bin для всех предикторов.
sc = autobinning(sc);
Подгонка модели линейной регрессии с использованием параметров по умолчанию.
sc = fitmodel(sc);
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 = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
6. Adding ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078
7. Adding OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769
Generalized linear regression model:
status ~ [Linear formula with 8 terms in 7 predictors]
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ ______ __________
(Intercept) 0.70239 0.064001 10.975 5.0538e-28
CustAge 0.60833 0.24932 2.44 0.014687
ResStatus 1.377 0.65272 2.1097 0.034888
EmpStatus 0.88565 0.293 3.0227 0.0025055
CustIncome 0.70164 0.21844 3.2121 0.0013179
TmWBank 1.1074 0.23271 4.7589 1.9464e-06
OtherCC 1.0883 0.52912 2.0569 0.039696
AMBalance 1.045 0.32214 3.2439 0.0011792
1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 89.7, p-value = 1.4e-16
Используйте displaypoints для отображения информации о точках.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ _________
{'CustAge' } {'[-Inf,33)' } -0.15894
{'CustAge' } {'[33,37)' } -0.14036
{'CustAge' } {'[37,40)' } -0.060323
{'CustAge' } {'[40,46)' } 0.046408
{'CustAge' } {'[46,48)' } 0.21445
{'CustAge' } {'[48,58)' } 0.23039
{'CustAge' } {'[58,Inf]' } 0.479
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.031252
{'ResStatus' } {'Home Owner' } 0.12696
{'ResStatus' } {'Other' } 0.37641
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.076317
{'EmpStatus' } {'Employed' } 0.31449
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} -0.45716
⋮
MinScore = -1.3100
MaxScore = 3.0726
Используйте modifybins для определения пользовательских меток ячеек 'CustAge' таким образом, диапазоны ячеек описываются на естественном языке.
labels = {'Up to 32','33 to 36','37 to 39','40 to 45','46 to 47','48 to 57','At least 58'};
sc = modifybins(sc,'CustAge','BinLabels',labels);Запущенный повторно displaypoints для проверки обновленных меток ячеек.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc)
PointsInfo=37×3 table
Predictors Bin Points
______________ ________________ _________
{'CustAge' } {'Up to 32' } -0.15894
{'CustAge' } {'33 to 36' } -0.14036
{'CustAge' } {'37 to 39' } -0.060323
{'CustAge' } {'40 to 45' } 0.046408
{'CustAge' } {'46 to 47' } 0.21445
{'CustAge' } {'48 to 57' } 0.23039
{'CustAge' } {'At least 58' } 0.479
{'CustAge' } {'<missing>' } NaN
{'ResStatus' } {'Tenant' } -0.031252
{'ResStatus' } {'Home Owner' } 0.12696
{'ResStatus' } {'Other' } 0.37641
{'ResStatus' } {'<missing>' } NaN
{'EmpStatus' } {'Unknown' } -0.076317
{'EmpStatus' } {'Employed' } 0.31449
{'EmpStatus' } {'<missing>' } NaN
{'CustIncome'} {'[-Inf,29000)'} -0.45716
⋮
MinScore = -1.3100
MaxScore = 3.0726
В этом примере показано, как использовать кредитную карту показателей для вычисления весов предикторов. Веса предикторов определяются из диапазона баллов каждого предиктора, деленного на общий диапазон баллов для карты показателей. Баллы для карты показателей не только учитывают betas, но также неявно увязывают предикторные значения и соответствующие веса доказательств.
Создайте карту показателей.
load CreditCardData.mat sc = creditscorecard(data,'IDVar','CustID'); sc = autobinning(sc); sc = fitmodel(sc);
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 = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
6. Adding ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078
7. Adding OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769
Generalized linear regression model:
status ~ [Linear formula with 8 terms in 7 predictors]
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ ______ __________
(Intercept) 0.70239 0.064001 10.975 5.0538e-28
CustAge 0.60833 0.24932 2.44 0.014687
ResStatus 1.377 0.65272 2.1097 0.034888
EmpStatus 0.88565 0.293 3.0227 0.0025055
CustIncome 0.70164 0.21844 3.2121 0.0013179
TmWBank 1.1074 0.23271 4.7589 1.9464e-06
OtherCC 1.0883 0.52912 2.0569 0.039696
AMBalance 1.045 0.32214 3.2439 0.0011792
1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 89.7, p-value = 1.4e-16
Вычислить баллы карты показателей и MinPts и MaxPts оценки.
sc = formatpoints(sc,'PointsOddsAndPDO',[500 2 50]);
[PointsTable,MinPts,MaxPts] = displaypoints(sc);
PtsRange = MaxPts-MinPts;
disp(PointsTable(1:10,:)); Predictors Bin Points
_____________ ______________ ______
{'CustAge' } {'[-Inf,33)' } 52.821
{'CustAge' } {'[33,37)' } 54.161
{'CustAge' } {'[37,40)' } 59.934
{'CustAge' } {'[40,46)' } 67.633
{'CustAge' } {'[46,48)' } 79.755
{'CustAge' } {'[48,58)' } 80.905
{'CustAge' } {'[58,Inf]' } 98.838
{'CustAge' } {'<missing>' } NaN
{'ResStatus'} {'Tenant' } 62.031
{'ResStatus'} {'Home Owner'} 73.444
fprintf('Min points: %g, Max points: %g\n',MinPts,MaxPts); Min points: 355.505, Max points: 671.64
Вычислите веса предиктора.
Predictor = unique(PointsTable.Predictors,'stable'); NumPred = length(Predictor); Weight = zeros(NumPred,1); for ii=1:NumPred Ind = cellfun(@(x)strcmpi(Predictor{ii},x),PointsTable.Predictors); MaxPtsPred = max(PointsTable.Points(Ind)); MinPtsPred = min(PointsTable.Points(Ind)); Weight(ii) = 100*(MaxPtsPred-MinPtsPred)/PtsRange; end PredictorWeights = table(Predictor,Weight); PredictorWeights(end+1,:) = PredictorWeights(end,:); PredictorWeights.Predictor{end} = 'Total'; PredictorWeights.Weight(end) = sum(Weight); disp(PredictorWeights)
Predictor Weight
______________ ______
{'CustAge' } 14.556
{'ResStatus' } 9.302
{'EmpStatus' } 8.9174
{'CustIncome'} 20.401
{'TmWBank' } 25.884
{'OtherCC' } 7.9885
{'AMBalance' } 12.951
{'Total' } 100
Веса определяются как диапазон баллов для предиктора, деленный на диапазон баллов для карты показателей.
creditscorecard Объект, содержащий отсутствующие данныеСоздание creditscorecard с использованием CreditCardData.mat файл, загрузите data (с использованием набора данных из Refaat 2011). Использование dataMissing набор данных, установите 'BinMissingData' индикатор в true.
load CreditCardData.mat sc = creditscorecard(dataMissing,'BinMissingData',true);
Использовать autobinning с creditscorecard объект.
sc = autobinning(sc);
Карта привязки или правила для категориальных данных суммируются в таблице «группирования категорий», возвращаемой как необязательный вывод. По умолчанию каждая категория помещается в отдельную ячейку. Вот информация для предиктора ResStatus.
[bi,cg] = bininfo(sc,'ResStatus')bi=5×6 table
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
cg=3×2 table
Category BinNumber
______________ _________
{'Tenant' } 1
{'Home Owner'} 2
{'Other' } 3
Для группирования категорий 'Tenant' и 'Other', изменить таблицу группировки категорий cg, таким образом, номер ячейки для 'Other' совпадает с номером ячейки для 'Tenant'. Затем использовать modifybins для обновления creditscorecard объект.
cg.BinNumber(3) = 2; sc = modifybins(sc,'ResStatus','Catg',cg);
Просмотр обновленной информации о ячейке с помощью bininfo. Обратите внимание, что метки ячеек были обновлены и что информация о членстве в ячейках содержится в группировке категорий. cg.
[bi,cg] = bininfo(sc,'ResStatus')bi=4×6 table
Bin Good Bad Odds WOE InfoValue
_____________ ____ ___ ______ _________ __________
{'Group1' } 296 161 1.8385 -0.095463 0.0035249
{'Group2' } 480 223 2.1525 0.062196 0.0022419
{'<missing>'} 27 13 2.0769 0.026469 2.3248e-05
{'Totals' } 803 397 2.0227 NaN 0.00579
cg=3×2 table
Category BinNumber
______________ _________
{'Tenant' } 1
{'Home Owner'} 2
{'Other' } 2
Использовать formatpoints с 'Missing' аргумент пары имя-значение, указывающий, что назначены отсутствующие данные 'maxpoints'.
sc = formatpoints(sc,'BasePoints',true,'Missing','maxpoints','WorstAndBest',[300 800]);
Использовать fitmodel для соответствия модели.
sc = fitmodel(sc,'VariableSelection','fullmodel','Display','Off');
Затем использовать displaypoints(инструментарий управления рисками) с creditscorecard объект для возврата таблицы точек для всех ячеек всех переменных предиктора, используемых в compactCreditScorecard объект. Путем установки displaypoints(Панель инструментов управления рисками) аргумент пары имя-значение для "ShowCategoricalMembers' кому trueотображаются все элементы, содержащиеся в каждой отдельной группе.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc,'ShowCategoricalMembers',true)PointsInfo=51×3 table
Predictors Bin Points
_______________ ______________ _______
{'BasePoints' } {'BasePoints'} 535.25
{'CustID' } {'[-Inf,121)'} 12.085
{'CustID' } {'[121,241)' } 5.4738
{'CustID' } {'[241,1081)'} -1.4061
{'CustID' } {'[1081,Inf]'} -7.2217
{'CustID' } {'<missing>' } 12.085
{'CustAge' } {'[-Inf,33)' } -25.973
{'CustAge' } {'[33,37)' } -22.67
{'CustAge' } {'[37,40)' } -17.122
{'CustAge' } {'[40,46)' } -2.8071
{'CustAge' } {'[46,48)' } 9.5034
{'CustAge' } {'[48,51)' } 10.913
{'CustAge' } {'[51,58)' } 13.844
{'CustAge' } {'[58,Inf]' } 37.541
{'CustAge' } {'<missing>' } -9.7271
{'TmAtAddress'} {'[-Inf,23)' } -9.3683
⋮
MinScore = 300
MaxScore = 800.0000
sc - Модель кредитной карты показателейcreditscorecard объектМодель кредитной карты показателей, указанная как creditscorecard объект. Использовать creditscorecard для создания creditscorecard объект.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
[PointsInfo,MinScore,MaxScore] = displaypoints(sc,‘ShowCategoricalMembers’,true)'ShowCategoricalMembers' - Индикатор отображения меток ячеек категорий, сгруппированных вместе.false
(по умолчанию) | true или falseИндикатор отображения меток ячеек категорий, сгруппированных вместе, указанных как разделенная запятыми пара, состоящая из 'ShowCategoricalMembers' и логический скаляр со значением true или false.
По умолчанию, когда 'ShowCategoricalMembers' является false, метки ячеек отображаются как Group1, Group2,…,Groupn, или если метки ячейки были изменены в creditscorecard, затем отображаются имена меток пользовательских ячеек.
Если 'ShowCategoricalMembers' является trueотображаются все элементы, содержащиеся в каждой отдельной группе.
Типы данных: logical
PointsInfo - Одна строка на ячейку, на предиктор, с соответствующими точкамиОдна строка на ячейку, на предиктор, с соответствующими точками, возвращается в виде таблицы. Например:
| Предсказатели | Мусорное ведро | Пункты |
|---|---|---|
| Predictor_1 | Bin_11 | Points_11 |
| Predictor_1 | Bin_12 | Points_12 |
| Predictor_1 | Bin_13 | Points_13 |
| ... | ... | |
| Predictor_1 | '<missing>' | NaN (По умолчанию) |
| Predictor_2 | Bin_21 | Points_21 |
| Predictor_2 | Bin_22 | Points_22 |
| Predictor_2 | Bin_23 | Points_23 |
| ... | ... | |
| Predictor_2 | '<missing>' | NaN (По умолчанию) |
| Predictor_j | Bin_ji | Points_ji |
| ... | ... | |
| Predictor_j | '<missing>' | NaN (По умолчанию) |
displaypoints всегда отображает '<missing>' bin для каждого предиктора. Значение '<missing>' bin происходит от начального creditscorecard объект и '<missing>' для ячейки установлено значение NaN каждый раз, когда модель карты показателей не имеет информации о том, как назначить точки отсутствующим данным.
Настройка точек для '<missing>' bin, необходимо использовать начальный creditscorecard объект. Для предикторов, у которых отсутствуют значения в обучающем наборе, баллы для '<missing>' bin оцениваются из данных, если 'BinMissingData' аргумент пары имя-значение для имеет значение true использование creditscorecard. Когда 'BinMissingData' параметр имеет значение falseили если данные не содержат отсутствующих значений в обучающем наборе, используйте 'Missing' аргумент пары имя-значение в formatpoints для указания способа назначения точек отсутствующим данным.
Другой вариант - использовать fillmissing чтобы указать значения замены «заполнить» для предикторов с NaN или <undefined> значение. Если вы используете fillmissing, то displaypoints
'<missing>' строка имеет те же точки, что и ячейка, связанная со значением заливки.
Когда базовые точки сообщаются отдельно (см. formatpoints), первая строка возвращенного PointsInfo таблица содержит базовые точки.
MinScore - Минимально возможный общий баллМинимально возможный общий балл, возвращаемый как скаляр.
Примечание
Минимальный балл - это самый низкий возможный общий балл в математическом смысле, независимо от того, означает ли низкий балл высокий риск или низкий риск.
MaxScore - Максимально возможный общий баллМаксимально возможный общий балл, возвращаемый как скаляр.
Примечание
Максимальный балл - это максимально возможный общий балл в математическом смысле, независимо от того, означает ли высокий балл высокий риск или низкий риск.
Точки для предсказателя j и bin i по умолчанию задаются как
Points_ji = (Shift + Slope*b0)/p + Slope*(bj*WOEj(i))
Shift и Slope являются константами масштабирования.Когда базовые точки сообщаются отдельно (см. formatpoints аргумент пары имя-значение BasePoints), базовые точки задаются
Base Points = Shift + Slope*b0,
Points_ji = Slope*(bj*WOEj(i))).
По умолчанию базовые точки отдельно не указываются.
Минимальные и максимальные баллы:
MinScore = Shift + Slope*b0 + min(Slope*b1*WOE1) + ... +min(Slope*bp*WOEp)), MaxScore = Shift + Slope*b0 + max(Slope*b1*WOE1) + ... +max(Slope*bp*WOEp)).
Использовать formatpoints для управления масштабированием, округлением и раздельным представлением базовых точек. Посмотрите formatpoints дополнительные сведения о параметрах формата, а также сведения и формулы для этих параметров форматирования.
[1] Андерсон, R. The Credit Скоринг Toolkit. Издательство Оксфордского университета, 2007 год.
[2] Рефаат, М. Карты оценки кредитных рисков: разработка и внедрение с использованием SAS. lulu.com, 2011.
autobinning | bindata | bininfo | creditscorecard | fillmissing | fitmodel | formatpoints | modifybins | modifypredictor | plotbins | predictorinfo | probdefault | score | setmodel | validatemodel
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.