fit

Подбирайте простую модель локальных поддающихся толкованию объяснений модели агностических (LIME)

    Описание

    пример

    newresults = fit(results,queryPoint,numImportantPredictors) подбирает новую простую модель для заданной точки запроса (queryPoint) при помощи конкретного количества или предикторов (numImportantPredictors). Функция возвращает lime объект newresults это содержит новую простую модель.

    fit использует простые опции модели, которые вы задаете, когда вы создаете lime объект results. Можно изменить опции с помощью аргументов пары "имя-значение" fit функция.

    пример

    newresults = fit(results,queryPoint,numImportantPredictors,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, можно задать 'SimpleModelType','tree' соответствовать модели дерева принятия решения.

    Примеры

    свернуть все

    Обучите модель регрессии и создайте lime возразите, что использует линейную простую модель. Когда вы создаете lime объект, если вы не задаете точку запроса и количество важных предикторов, затем программное обеспечение, генерирует выборки синтетического набора данных, но не подбирает простую модель. Используйте объектный функциональный fit подбирать простую модель для точки запроса. Затем отобразите коэффициенты подбиравшей линейной простой модели при помощи объектного функционального plot.

    Загрузите carbig набор данных, который содержит измерения автомобилей, сделанных в 1970-х и в начале 1980-х.

    load carbig

    Составьте таблицу, содержащую переменные предикторы Acceleration, Cylinders, и так далее, а также переменная отклика MPG.

    tbl = table(Acceleration,Cylinders,Displacement,Horsepower,Model_Year,Weight,MPG);

    Удаление отсутствующих значений в наборе обучающих данных может помочь уменьшать потребление памяти и ускорить обучение fitrkernel функция. Удалите отсутствующие значения в tbl.

    tbl = rmmissing(tbl);

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

    tblX = removevars(tbl,'MPG');

    Обучите модель черного ящика MPG при помощи fitrkernel функция.

    rng('default') % For reproducibility
    mdl = fitrkernel(tblX,tbl.MPG,'CategoricalPredictors',[2 5]);

    Создайте lime объект. Задайте набор данных предиктора потому что mdl не содержит данные о предикторе.

    results = lime(mdl,tblX)
    results = 
      lime with properties:
    
                 BlackboxModel: [1x1 RegressionKernel]
                  DataLocality: 'global'
         CategoricalPredictors: [2 5]
                          Type: 'regression'
                             X: [392x6 table]
                    QueryPoint: []
        NumImportantPredictors: []
              NumSyntheticData: 5000
                 SyntheticData: [5000x6 table]
                        Fitted: [5000x1 double]
                   SimpleModel: []
           ImportantPredictors: []
                BlackboxFitted: []
             SimpleModelFitted: []
    
    

    results содержит сгенерированный синтетический набор данных. SimpleModel свойство пусто ([]).

    Подбирайте линейную простую модель для первого наблюдения в tblX. Задайте количество важных предикторов, чтобы найти как 3.

    queryPoint = tblX(1,:)
    queryPoint=1×6 table
        Acceleration    Cylinders    Displacement    Horsepower    Model_Year    Weight
        ____________    _________    ____________    __________    __________    ______
    
             12             8            307            130            70         3504 
    
    
    results = fit(results,queryPoint,3);

    Постройте lime объект results при помощи объектного функционального plot. Чтобы отобразить существующее подчеркивание на любое имя предиктора, измените TickLabelInterpreter значение осей к 'none'.

    f = plot(results);
    f.CurrentAxes.TickLabelInterpreter = 'none';

    Figure contains an axes. The axes with title LIME with Linear Model contains an object of type bar.

    График отображает два предсказания для точки запроса, которые соответствуют свойству BlackboxFitted и свойству SimpleModelFitted results.

    Горизонтальный столбчатый график показывает содействующие значения простой модели, отсортированной по их абсолютным значениям. LIME находит Horsepower, Model_Year, и Cylinders как важные предикторы для точки запроса.

    Model_Year и Cylinders категориальные предикторы, которые имеют несколько категорий. Для линейной простой модели программное обеспечение создает ту меньше фиктивной переменной, чем количество категорий для каждого категориального предиктора. Столбчатый график отображает только самую важную фиктивную переменную. Можно проверять коэффициенты других фиктивных переменных с помощью SimpleModel свойство results. Отобразите отсортированные содействующие значения, включая все категориальные фиктивные переменные.

    [~,I] = sort(abs(results.SimpleModel.Beta),'descend');
    table(results.SimpleModel.ExpandedPredictorNames(I)',results.SimpleModel.Beta(I), ...
        'VariableNames',{'Exteded Predictor Name','Coefficient'})
    ans=17×2 table
          Exteded Predictor Name      Coefficient
        __________________________    ___________
    
        {'Horsepower'            }    -3.4485e-05
        {'Model_Year (74 vs. 70)'}    -6.1279e-07
        {'Model_Year (80 vs. 70)'}     -4.015e-07
        {'Model_Year (81 vs. 70)'}     3.4176e-07
        {'Model_Year (82 vs. 70)'}    -2.2483e-07
        {'Cylinders (6 vs. 8)'   }    -1.9024e-07
        {'Model_Year (76 vs. 70)'}     1.8136e-07
        {'Cylinders (5 vs. 8)'   }     1.7461e-07
        {'Model_Year (71 vs. 70)'}      1.558e-07
        {'Model_Year (75 vs. 70)'}     1.5456e-07
        {'Model_Year (77 vs. 70)'}      1.521e-07
        {'Model_Year (78 vs. 70)'}     1.4272e-07
        {'Model_Year (72 vs. 70)'}     6.7001e-08
        {'Model_Year (73 vs. 70)'}     4.7214e-08
        {'Cylinders (4 vs. 8)'   }     4.5118e-08
        {'Model_Year (79 vs. 70)'}    -2.2598e-08
          ⋮
    
    

    Обучите модель классификации и создайте lime возразите, что использует дерево решений простая модель. Подбирайте многоуровневые модели для нескольких точек запроса.

    Загрузите CreditRating_Historical набор данных. Набор данных содержит идентификаторы клиентов и их финансовые отношения, промышленные метки и кредитные рейтинги.

    tbl = readtable('CreditRating_Historical.dat');

    Составьте таблицу переменных предикторов путем удаления столбцов идентификаторов клиентов и оценок от tbl.

    tblX = removevars(tbl,["ID","Rating"]);

    Обучите модель черного ящика кредитных рейтингов при помощи fitcecoc функция.

    blackbox = fitcecoc(tblX,tbl.Rating,'CategoricalPredictors','Industry')
    blackbox = 
      ClassificationECOC
               PredictorNames: {1x6 cell}
                 ResponseName: 'Y'
        CategoricalPredictors: 6
                   ClassNames: {'A'  'AA'  'AAA'  'B'  'BB'  'BBB'  'CCC'}
               ScoreTransform: 'none'
               BinaryLearners: {21x1 cell}
                   CodingName: 'onevsone'
    
    
      Properties, Methods
    
    

    Создайте lime объект с blackbox модель.

    rng('default') % For reproducibility
    results = lime(blackbox);

    Найдите две точки запроса, истинными номинальными значениями которых является AAA и B, соответственно.

    queryPoint(1,:) = tblX(find(strcmp(tbl.Rating,'AAA'),1),:);
    queryPoint(2,:) = tblX(find(strcmp(tbl.Rating,'B'),1),:)
    queryPoint=2×6 table
        WC_TA    RE_TA    EBIT_TA    MVE_BVTD    S_TA     Industry
        _____    _____    _______    ________    _____    ________
    
        0.121    0.413     0.057      3.647      0.466       12   
        0.019    0.009     0.042      0.257      0.119        1   
    
    

    Подбирайте линейную простую модель для первой точки запроса. Определите номер важных предикторов к 4.

    newresults1 = fit(results,queryPoint(1,:),4);

    Постройте результаты LIME newresults1 для первой точки запроса. Чтобы отобразить существующее подчеркивание на любое имя предиктора, измените TickLabelInterpreter значение осей к 'none'.

    f1 = plot(newresults1);
    f1.CurrentAxes.TickLabelInterpreter = 'none';

    Figure contains an axes. The axes with title LIME with Linear Model contains an object of type bar.

    Соответствуйте линейной модели дерева принятия решения для первой точки запроса.

    newresults2 = fit(results,queryPoint(1,:),6,'SimpleModelType','tree');
    f2 = plot(newresults2);
    f2.CurrentAxes.TickLabelInterpreter = 'none';

    Figure contains an axes. The axes with title LIME with Decision Tree Model contains an object of type bar.

    Простые модели в newresults1 и newresults2 оба находят MVE_BVTD и RE_TA как важные предикторы.

    Подбирайте линейную простую модель для второй точки запроса и постройте результаты LIME для второй точки запроса.

    newresults3 = fit(results,queryPoint(2,:),4);
    f3 = plot(newresults3);
    f3.CurrentAxes.TickLabelInterpreter = 'none';

    Figure contains an axes. The axes with title LIME with Linear Model contains an object of type bar.

    Предсказание от blackbox моделью является B, но предсказанием из простой модели не является B. Когда эти два предсказания различные, можно задать меньший 'KernelWidth' значение. Программное обеспечение подбирает простую модель с помощью весов, которые более фокусируются на выборках около точки запроса. Если точка запроса является выбросом или расположена около контура решения, то два значения предсказания могут отличаться, даже если вы задаете маленький 'KernelWidth' значение. В таком случае можно изменить другие аргументы пары "имя-значение". Например, можно сгенерировать локальный синтетический набор данных (задайте 'DataLocality' из lime как 'local') для точки запроса и увеличивают число выборок ('NumSyntheticData' из lime или fit) в синтетическом наборе данных. Можно также использовать различную метрику расстояния ('Distance' из lime или fit).

    Подбирайте линейную простую модель с маленьким 'KernelWidth' значение.

    newresults4 = fit(results,queryPoint(2,:),4,'KernelWidth',0.01);
    f4 = plot(newresults4);
    f4.CurrentAxes.TickLabelInterpreter = 'none';

    Figure contains an axes. The axes with title LIME with Linear Model contains an object of type bar.

    Кредитными рейтингами для первых и вторых точек запроса является AAA и B, соответственно. Простые модели в newresults1 и newresults4 оба находят MVE_BVTD, RE_TA, и WC_TA как важные предикторы. Однако их содействующие значения отличаются. Графики показывают, что эти предикторы действуют по-другому в зависимости от кредитных рейтингов.

    Входные параметры

    свернуть все

    LIME заканчивается в виде lime объект.

    Точка запроса, вокруг который fit функция подбирает простую модель в виде вектора-строки из числовых значений или таблицы одной строки. queryPoint значение должно иметь совпадающий тип данных и одинаковое число столбцов как данные о предикторе (результаты. X или результаты. SyntheticData) в lime объект results.

    queryPoint не должен содержать отсутствующие значения.

    Типы данных: single | double | table

    Количество важных предикторов, чтобы использовать в простой модели в виде положительного значения целочисленного скаляра.

    • Если 'SimpleModelType' 'linear', затем программное обеспечение выбирает конкретное количество важных предикторов и подбирает линейную модель выбранных предикторов.

    • Если 'SimpleModelType' 'tree', затем программное обеспечение задает максимальное количество разделений решения (или узлы ветви) как количество важных предикторов так, чтобы подходящее дерево решений использовало самое большее конкретное количество предикторов.

    Типы данных: single | double

    Аргументы в виде пар имя-значение

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Пример: 'NumSyntheticData',2000,'SimpleModelType','tree' определяет номер выборок, чтобы сгенерировать для синтетического набора данных к 2 000 и задает простой тип модели как дерево решений.

    Ковариационная матрица для метрики расстояния Mahalanobis в виде разделенной запятой пары, состоящей из 'Cov' и K-by-K положительная определенная матрица, где K является количеством предикторов.

    Этот аргумент допустим только если 'Distance' 'mahalanobis'.

    Значением по умолчанию является 'Cov' значение, которое вы задаете при создании lime объект results. 'Cov' по умолчанию значение lime cov(PD,'omitrows'), где PD данные о предикторе или синтетические данные о предикторе. Если вы не задаете 'Cov' значение, затем программное обеспечение использует различные ковариационные матрицы при вычислении расстояний и для данных о предикторе и для синтетических данных о предикторе.

    Пример: 'Cov',eye(3)

    Типы данных: single | double

    Метрика расстояния в виде разделенной запятой пары, состоящей из 'Distance' и вектор символов, строковый скаляр или указатель на функцию.

    • Если данные о предикторе включают только непрерывные переменные, то fit поддержки эти метрики расстояния.

      ЗначениеОписание
      'euclidean'

      Евклидово расстояние.

      'seuclidean'

      Стандартизированное Евклидово расстояние. Каждое координатное различие между наблюдениями масштабируется путем деления на соответствующий элемент стандартного отклонения, S = std(PD,'omitnan'), где PD данные о предикторе или синтетические данные о предикторе. Чтобы задать различное масштабирование, используйте 'Scale' аргумент значения имени.

      'mahalanobis'

      Расстояние Mahalanobis с помощью выборочной ковариации PD, C = cov(PD,'omitrows'). Чтобы изменить значение ковариационной матрицы, используйте 'Cov' аргумент значения имени.

      'cityblock'

      Расстояние городского квартала.

      'minkowski'

      Расстояние Минковскего. Экспонента по умолчанию равняется 2. Чтобы задать различную экспоненту, используйте 'P' аргумент значения имени.

      'chebychev'

      Расстояние Чебычева (максимум координируют различие).

      'cosine'

      Один минус косинус включенного угла между точками (обработанный как векторы).

      'correlation'

      Один минус корреляция выборки между точками (обработанный как последовательности значений).

      'spearman'

      Один минус порядковая корреляция демонстрационного Копьеносца между наблюдениями (обработанный как последовательности значений).

      @distfun

      Пользовательский указатель на функцию расстояния. Функция расстояния имеет форму

      function D2 = distfun(ZI,ZJ)
      % calculation of distance
      ...
      где

      • ZI 1- t вектор, содержащий одно наблюдение.

      • ZJ s- t матрица, содержащая несколько наблюдений. distfun должен принять матричный ZJ с произвольным числом наблюдений.

      • D2 s- 1 вектор из расстояний и D2(k) расстояние между наблюдениями ZI и ZJ(k,:).

      Если ваши данные не разреженны, можно обычно вычислять расстояние более быстро при помощи встроенной метрики расстояния вместо указателя на функцию.

    • Если данные о предикторе включают и непрерывные и категориальные переменные, то fit поддержки эти метрики расстояния.

      ЗначениеОписание
      'goodall3'

      Модифицированное расстояние Гудолла

      'ofd'

      Расстояние частоты вхождения

    Для определений смотрите Метрики Расстояния.

    Значением по умолчанию является 'Distance' значение, которое вы задаете при создании lime объект results. 'Distance' по умолчанию значение lime 'euclidean' если данные о предикторе включают только непрерывные переменные или 'goodall3' если данные о предикторе включают и непрерывные и категориальные переменные.

    Пример: 'Distance','ofd'

    Типы данных: char | string | function_handle

    Ширина ядра экспоненциала в квадрате (или Гауссов) ядро функционирует в виде разделенной запятой пары, состоящей из 'KernelWidth' и значение числового скаляра.

    fit функция вычисляет расстояния между точкой запроса и выборками в синтетическом наборе данных предиктора, и затем преобразует расстояния до весов при помощи экспоненциальной функции ядра в квадрате. Если вы понижаете 'KernelWidth' значение, затем fit веса использования, которые более фокусируются на выборках около точки запроса. Для получения дополнительной информации смотрите LIME.

    Значением по умолчанию является 'KernelWidth' значение, которое вы задаете при создании lime объект results. 'KernelWidth' по умолчанию значение lime 0.75.

    Пример: 'KernelWidth',0.5

    Типы данных: single | double

    Количество соседей точки запроса в виде разделенной запятой пары, состоящей из 'NumNeighbors' и положительное значение целочисленного скаляра. Этот аргумент допустим только когда DataLocality свойство results 'local'.

    fit функционируйте оценивает параметры распределения данных о предикторе с помощью конкретного количества самых близких соседей точки запроса. Затем функция генерирует синтетические данные о предикторе с помощью предполагаемого распределения.

    Если вы задаете значение, больше, чем количество наблюдений в наборе данных предиктора (результаты. X) в lime объект results, затем fit использование все наблюдения.

    Значением по умолчанию является 'NumNeighbors' значение, которое вы задаете при создании lime объект results. 'NumNeighbors' по умолчанию значение lime 1500.

    Пример: 'NumNeighbors',2000

    Типы данных: single | double

    Количество выборок, чтобы сгенерировать для синтетического набора данных в виде разделенной запятой пары, состоящей из 'NumSyntheticData' и положительное значение целочисленного скаляра. Этот аргумент допустим только когда DataLocality свойство results 'local'.

    Значением по умолчанию является NumSyntheticData значение свойства results.

    Пример: 'NumSyntheticData',2500

    Типы данных: single | double

    Экспонента для метрики расстояния Минковскего в виде разделенной запятой пары, состоящей из 'P' и положительная скалярная величина.

    Этот аргумент допустим только если 'Distance' 'minkowski'.

    Значением по умолчанию является 'P' значение, которое вы задаете при создании lime объект results. 'P' по умолчанию значение lime 2.

    Пример: 'P',3

    Типы данных: single | double

    Значение масштабного коэффициента для стандартизированной Евклидовой метрики расстояния в виде разделенной запятой пары, состоящей из 'Scale' и неотрицательный числовой вектор из длины K, где K является количеством предикторов.

    Этот аргумент допустим только если 'Distance' 'seuclidean'.

    Значением по умолчанию является 'Scale' значение, которое вы задаете при создании lime объект results. 'Scale' по умолчанию значение lime std(PD,'omitnan'), где PD данные о предикторе или синтетические данные о предикторе. Если вы не задаете 'Scale' значение, затем программное обеспечение использует различные масштабные коэффициенты при вычислении расстояний и для данных о предикторе и для синтетических данных о предикторе.

    Пример: 'Scale',quantile(X,0.75) - quantile(X,0.25)

    Типы данных: single | double

    Тип простой модели в виде разделенной запятой пары, состоящей из 'SimpleModelType' и 'linear' или 'tree'.

    • 'linear' — Программное обеспечение подбирает линейную модель при помощи fitrlinear для регрессии или fitclinear для классификации.

    • 'tree' — Программное обеспечение соответствует модели дерева принятия решения при помощи fitrtree для регрессии или fitctree для классификации.

    Значением по умолчанию является 'SimpleModelType' значение, которое вы задаете при создании lime объект results. 'SimpleModelType' по умолчанию значение lime 'linear'.

    Пример: 'SimpleModelType','tree'

    Типы данных: char | string

    Выходные аргументы

    свернуть все

    Результаты LIME, возвращенные как lime объект. newresults содержит новую простую модель.

    Перезаписывать входной параметр results, присвойте выход fit к results:

    results = fit(results,queryPoint,numImportantPredictors);

    Больше о

    свернуть все

    Метрики расстояния

    Метрика расстояния является функцией, которая задает расстояние между двумя наблюдениями. fit поддерживает различные метрики расстояния для непрерывных переменных и соединения непрерывных и категориальных переменных.

    • Метрики расстояния для непрерывных переменных

      Учитывая mx-by-n матрица данных X, который обработан как mx (1 n) векторы-строки x1, x2..., xmx и my-by-n матрица данных Y, который обработан как my (1 n) векторы-строки y1, y2..., ymy, определяются следующим образом различные расстояния между векторным xs и yt:

      • Евклидово расстояние

        dst2=(xsyt)(xsyt).

        Евклидово расстояние является особым случаем расстояния Минковскего, где p = 2.

      • Стандартизированное Евклидово расстояние

        dst2=(xsyt)V1(xsyt),

        где V является n-by-n диагональная матрица, j которой th диагональный элемент (S (j)) 2, где S является вектором из масштабных коэффициентов для каждой размерности.

      • Расстояние Mahalanobis

        dst2=(xsyt)C1(xsyt),

        где C является ковариационной матрицей.

      • Расстояние городского квартала

        dst=j=1n|xsjytj|.

        Расстояние городского квартала является особым случаем расстояния Минковскего, где p = 1.

      • Расстояние Минковскего

        dst=j=1n|xsjytj|pp.

        Для особого случая p = 1, расстояние Минковскего дает расстояние городского квартала. Для особого случая p = 2, расстояние Минковскего дает Евклидово расстояние. Для особого случая p = ∞, расстояние Минковскего дает расстояние Чебычева.

      • Расстояние Чебычева

        dst=maxj{|xsjytj|}.

        Расстояние Чебычева является особым случаем расстояния Минковскего, где p = ∞.

      • Расстояние косинуса

        dst=(1xsyt(xsxs)(ytyt)).

      • Расстояние корреляции

        dst=1(xsx¯s)(yty¯t)(xsx¯s)(xsx¯s)(yty¯t)(yty¯t),

        где

        x¯s=1njxsj

        и

        y¯t=1njytj.

      • Расстояние копьеносца

        dst=1(rsr¯s)(rtr¯t)(rsr¯s)(rsr¯s)(rtr¯t)(rtr¯t),

        где

        • rsj является рангом xsj, принятого x 1j, x 2j... xmx,j, как вычислено tiedrank.

        • rtj является рангом ytj, принятого y 1j, y 2j... ymy,j, как вычислено tiedrank.

        • rs и rt являются координатно-мудрыми векторами ранга из xs и yt, то есть, rs = (rs 1, rs 2... rsn) и rt = (r t 1, r t 2... rtn).

        • r¯s=1njrsj=(n+1)2.

        • r¯t=1njrtj=(n+1)2.

    • Метрики расстояния для соединения непрерывных и категориальных переменных

      • Модифицированное расстояние Гудолла

        Это расстояние является вариантом расстояния Гудолла, которое присваивает маленькое расстояние, если совпадающие значения являются нечастыми независимо от частот других значений. Для несоответствий вклад расстояния предиктора равняется 1 / (количество переменных).

      • Расстояние частоты вхождения

        Для соответствия расстояние частоты вхождения присваивает нулевое расстояние. Для несоответствия расстояние частоты вхождения присваивает более высокое расстояние на менее частом значении и более низкое расстояние на более частом значении.

    Алгоритмы

    свернуть все

    ИЗВЕСТЬ

    Чтобы объяснить предсказание модели машинного обучения использование LIME [1], программное обеспечение генерирует синтетический набор данных и подбирает простую поддающуюся толкованию модель к синтетическому набору данных при помощи lime и fit, как описано в шагах 1-5.

    • Если вы задаете queryPoint и numImportantPredictors значения lime, затем lime функция выполняет все шаги.

    • Если вы не задаете queryPoint и numImportantPredictors и задайте 'DataLocality' как 'global' (значение по умолчанию), затем lime функция генерирует синтетический набор данных (шаги 1-2), и fit функционируйте подбирает простую модель (шаги 3-5).

    • Если вы не задаете queryPoint и numImportantPredictors и задайте 'DataLocality' как 'local', затем fit функция выполняет все шаги.

    lime и fit функции выполняют эти шаги:

    1. Сгенерируйте синтетический набор данных предиктора Xs с помощью многомерного нормального распределения для непрерывных переменных и распределения многочлена для каждой категориальной переменной. Можно задать количество выборок, чтобы сгенерировать при помощи 'NumSyntheticData' аргумент значения имени.

      • Если 'DataLocality' 'global' (значение по умолчанию), затем программное обеспечение оценивает параметры распределения от целого набора данных предиктора (X или данные о предикторе в blackbox).

      • Если 'DataLocality' 'local', затем программное обеспечение оценивает параметры распределения с помощью k - самые близкие соседи точки запроса, где k является 'NumNeighbors' значение. Можно задать метрику расстояния, чтобы найти самых близких соседей при помощи 'Distance' аргумент значения имени.

      Программное обеспечение игнорирует отсутствующие значения в наборе данных предиктора при оценке параметров распределения.

      В качестве альтернативы можно обеспечить предсгенерированный, пользовательский синтетический набор данных предиктора при помощи customSyntheticData входной параметр lime.

    2. Вычислите предсказания Ys для синтетического набора данных Xs. Предсказания являются предсказанными ответами для регрессии или классифицированными метками для классификации. Программное обеспечение использует predict функция blackbox модель, чтобы вычислить предсказания. Если вы задаете blackbox как указатель на функцию, затем программное обеспечение вычисляет предсказания при помощи указателя на функцию.

    3. Вычислите расстояния d между точкой запроса и выборками в синтетическом наборе данных предиктора с помощью метрики расстояния, заданной 'Distance'.

    4. Вычислите значения веса wq выборок в синтетическом наборе данных предиктора относительно точки запроса q с помощью экспоненциала в квадрате (или Гауссов) функция ядра

      wq(xs)=exp(12(d(xs,q)pσ)2).

      • xs является выборкой в синтетическом наборе данных предиктора Xs.

      • d (xs, q) является расстоянием между демонстрационным xs и точкой запроса q.

      • p является количеством предикторов в Xs.

      • σ является шириной ядра, которую можно задать при помощи 'KernelWidth' аргумент значения имени. 'KernelWidth' по умолчанию значение 0.75.

      Значение веса в точке запроса равняется 1, и затем это сходится, чтобы обнулить как повышения стоимости расстояния. 'KernelWidth' значение управляет, как быстро значение веса сходится, чтобы обнулить. Ниже 'KernelWidth' значение, быстрее значение веса сходится, чтобы обнулить. Поэтому алгоритм дает больше веса выборкам около точки запроса. Поскольку этот алгоритм использует такие значения веса, выбранные важные предикторы и подбирал простую модель, эффективно объясняют предсказания для синтетических данных локально, вокруг точки запроса.

    5. Подбирайте простую модель.

      • Если 'SimpleModelType' 'linear' (значение по умолчанию), затем программное обеспечение выбирает важные предикторы и подбирает линейную модель выбранных важных предикторов.

        • Выберите n важные предикторы (X˜s) при помощи алгоритма ортогонального преследования соответствия (OMP) группы [2][3], где n является numImportantPredictors значение. Этот алгоритм использует синтетический набор данных предиктора (Xs), предсказания (Ys) и значения веса (wq).

        • Подбирайте линейную модель выбранных важных предикторов (X˜s) к предсказаниям (Ys) с помощью значений веса (wq). Использование программного обеспечения fitrlinear для регрессии или fitclinear для классификации. Для модели мультикласса программное обеспечение использует one-all схему создать бинарную проблему классификации. Положительный класс является предсказанным классом для точки запроса от blackbox модель и отрицательный класс относятся к другим классам.

      • Если 'SimpleModelType' 'tree', затем программное обеспечение соответствует модели дерева принятия решения при помощи fitrtree для регрессии или fitctree для классификации. Программное обеспечение задает максимальное количество разделений решения (или узлы ветви) как количество важных предикторов так, чтобы подходящее дерево решений использовало самое большее конкретное количество предикторов.

    Ссылки

    [1] Рибейру, Марко Тулио, С. Сингх и К. Гуестрин. "'Почему я должен Доверять Вам?': Объяснение Предсказаний Любого Классификатора". В Продолжениях 22-й Международной конференции ACM SIGKDD по вопросам Открытия Знаний и Анализа данных, 1135–44. Сан-Франциско, Калифорния: ACM, 2016.

    [2] Świrszcz, Гжегож, Наоки Абэ и Орели К. Лозано. "Сгруппированное ортогональное соответствие с преследованием для выбора переменной и предсказания". Усовершенствования в нейронных системах обработки информации (2009): 1150–58.

    [3] Лозано, Орели К., Гжегож Świrszcz и Наоки Абэ. "Группа ортогональное соответствие с преследованием для логистической регрессии". Продолжения четырнадцатой международной конференции по вопросам искусственного интеллекта и статистики (2011): 452–60.

    Введенный в R2020b