screenpredictors
В этом примере показано, как выполнить экранирование предиктора с помощью screenpredictors
и затем пороги предиктора набора с помощью Пороговых Предикторов живая задача. Экранирование предиктора является типом одномерного анализа, выполняемого как ранний шаг в Протоколе результатов Кредита, Моделируя Рабочий процесс. Экранирование предиктора является важным шагом предварительной обработки, когда вы работаете с протоколами результатов кредита, когда наборы данных могут быть предельно большими и иметь десятки или сотни потенциальных предикторов.
Цель экранирования предикторов состоит в том, чтобы срезать набор предикторов к подмножеству, которое более полезно в предсказании переменной отклика на основе расчетных метрик. Экранирование позволяет вам выбрать главные предикторы, как оценивается данной метрикой, чтобы обучить ваши протоколы результатов кредита.
Таблица данных кредитной карты содержит идентификатор клиента (CustID
), девять предикторов и переменная отклика (status
). Некоторые факторы риска более полезны в предсказании вероятности значения по умолчанию ссуды, тогда как другие менее полезны. Процесс экранирования помогает вам выбрать лучшее подмножество предикторов.
Несмотря на то, что набор данных в этом примере содержит только несколько предикторов, на практике, наборы данных протокола результатов кредита могут быть очень большими. Процесс экранирования предиктора важен, когда наборы данных растут, чтобы содержать десятки или сотни предикторов.
% Load credit card data tables. matFileName = fullfile(matlabroot,'toolbox','finance','findemos','CreditCardData'); load(matFileName) % Use the dataMissing data set, which contains some missing values. data = dataMissing; % Identify the ID and response variables. idvar = 'CustID'; responsevar = 'status'; % Examine the structure of the table. disp(head(data));
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 6 65 13 Home Owner Employed 48000 59 Yes 968.18 0.15 0 7 34 32 Home Owner Unknown 32000 26 Yes 717.82 0.02 1 8 50 57 Other Employed 51000 33 No 3041.2 0.13 0
Часто, производные предикторы могут получить дополнительную информацию или привести к лучшим метрическим результатам; например, отношение двух предикторов или преобразования предиктора для предиктора x, таких как x^2 или журнал (x). Чтобы продемонстрировать это, создайте два выведенных предиктора и добавьте их в набор данных.
data.BalanceUtilRatio = data.AMBalance ./ data.UtilRate; data.BalanceIncomeRatio = data.AMBalance ./ data.CustIncome;
Используйте screenpredictors
вычислить несколько мер прогнозирующего фактора риска. Столбцы выходной таблицы содержат метрические значения для предикторов. Таблица сортируется по информационному значению (InfoValue
).
T = screenpredictors(data,'IDVar',idvar,'ResponseVar',responsevar)
T=11×7 table
InfoValue AccuracyRatio AUROC Entropy Gini Chi2PValue PercentMissing
_________ _____________ _______ _______ _______ __________ ______________
CustAge 0.17698 0.1672 0.5836 0.88795 0.42645 0.0020599 0.025
TmWBank 0.15719 0.13612 0.56806 0.89167 0.42864 0.0054591 0
CustIncome 0.15572 0.17758 0.58879 0.891 0.42731 0.0018428 0
BalanceIncomeRatio 0.097073 0.1278 0.5639 0.90024 0.43303 0.11966 0
TmAtAddress 0.094574 0.010421 0.50521 0.90089 0.43377 0.182 0
UtilRate 0.075086 0.035914 0.51796 0.90405 0.43575 0.45546 0
AMBalance 0.07159 0.087142 0.54357 0.90446 0.43592 0.48528 0
BalanceUtilRatio 0.068955 0.026538 0.51327 0.90486 0.43614 0.52517 0
EmpStatus 0.048038 0.10886 0.55443 0.90814 0.4381 0.00037823 0
OtherCC 0.014301 0.044459 0.52223 0.91347 0.44132 0.047616 0
ResStatus 0.0095558 0.049855 0.52493 0.91446 0.44198 0.29879 0.033333
Установите пороги для предикторов на основе одной или нескольких метрик. Используйте Пороговые Предикторы живая задача в интерактивном режиме выбрать пороги для одного или нескольких предикторов. В графике, отображенном для Предикторов, зеленые панели указывают на предикторы, которые превышают порог, и красные панели указывают на предикторы, которые не превышают порог. Можно не использовать предикторы, которые не "превышают" порог от итогового набора данных.
Используйте Пороговые Предикторы живая задача выбрать предикторы на основе их информационного значения (InfoValue
) и отношение точности (AccuracyRatio
). Дополнительные пороги могут быть установлены путем добавления желаемой метрики с помощью Избранных пороговых метрик выпадающее управление.
Обобщите результаты пороговой обработки в табличной форме. lableTable
выведите от живой задачи, указывает, какой из предикторов прошел каждый из пороговых тестов.
disp(labelTable)
InfoValue AccuracyRatio _________ _____________ CustAge Pass Pass TmWBank Pass Pass CustIncome Pass Pass BalanceIncomeRatio Pass Pass TmAtAddress Pass Fail UtilRate Fail Fail AMBalance Fail Pass BalanceUtilRatio Fail Fail EmpStatus Fail Pass OtherCC Fail Fail ResStatus Fail Fail
Составьте уменьшаемую таблицу, которая содержит только передающие предикторы. Выберите только предикторы, которые проходят оба из пороговых тестов и создают уменьшаемый набор данных.
% Select predictors that pass at least 2 metric threshold tests. all_passes = labelTable.Variables == "Pass"; pass_both_idx = 2 <= sum(all_passes,2); selected_predictors = T.Row(pass_both_idx); % Trim the data table to contain only the ID, passing predictors, and % response. top_predictor_table = data(:,[idvar; selected_predictors; responsevar]);
Используйте creditscorecard
создать creditscorecard
возразите, что использует уменьшаемый набор данных.
% Create the credit scorecard using the screened predictors. sc = creditscorecard(top_predictor_table,'IDVar',idvar,'ResponseVar',responsevar,... 'BinMissingData', true)
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: '' VarNames: {1x6 cell} NumericPredictors: {1x4 cell} CategoricalPredictors: {1x0 cell} BinMissingData: 1 IDVar: 'CustID' PredictorVars: {1x4 cell} Data: [1200x6 table]
Для получения дополнительной информации о разработке протоколов результатов кредита смотрите, Создают Протоколы результатов Кредита.
creditscorecard
| screenpredictors
| autobinning
| bininfo
| predictorinfo
| modifypredictor
| modifybins
| bindata
| plotbins
| fitmodel
| displaypoints
| formatpoints
| score
| setmodel
| probdefault
| validatemodel