Покажите экранирование с 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]

Для получения дополнительной информации о разработке протоколов результатов кредита смотрите, Создают Протоколы результатов Кредита.

Смотрите также

| | | | | | | | | | | | | | |

Связанные примеры

Больше о

Внешние веб-сайты

Для просмотра документации необходимо авторизоваться на сайте