Узнайте, как сообщать о своих результатах как профессионал.

[Edit 11/01/2021] Добавлено лучшее определение и скорректирован пример в разделе 1 согласно полезному предложению AlexMurphy.

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

В этом посте я собираюсь дать краткое введение в доверительные интервалы и представить уверенность_interval_estimator_ML, инструмент, который позволит вам оценивать доверительные интервалы как параметрически, так и непараметрически для ваших моделей машинного обучения в нескольких строках кода.

Вот как структурирован этот пост:

  1. Введение в доверительные интервалы с примерами.
  2. Скрытые предположения о доверительных интервалах.
  3. Что такое параметрические доверительные интервалы.
  4. Что такое непараметрические доверительные интервалы.
  5. Как использовать Configure_interval_estimator_ML для вычисления параметрических и непараметрических доверительных интервалов.

1. Введение в доверительные интервалы с примерами.

Перефразируя Википедию, можно сказать, что доверительные интервалы указывают на диапазон вероятных значений неизвестного параметра p с соответствующей степенью достоверности, указывающей степень уверенности в том, что истинное p содержится этот диапазон.

В контексте машинного обучения доверительные интервалы часто оцениваются в зависимости от характеристик модели и, в частности, в отношении точности модели классификации.

Для эксперимента, который направлен на измерение параметра p (в нашем случае точности модели), доверительный интервал I с соответствующей степенью достоверности C% можно интерпретировать следующим образом: если эксперимент повторяется N раз, в C% результатов p будет в интервале I.

Хотя это может показаться заманчивым, степень уверенности не может быть технически интерпретирована как вероятность, как обсуждается в следующем разделе.

Взяв в качестве примера документ KERMIT, представленный на EMNLP2020, авторы заявляют, что их модель имеет точность 85,91 (± 0,03)% по набору данных Yelp Polarity с доверительной вероятностью 95%.

Исходя из этого результата, повторно запустив обучение и оценку модели с нуля на наборе данных Yelp Polarity 100 раз (и каждый раз меняя случайные начальные числа), мы можем ожидать, что 95-кратная точность будет в диапазоне [85,88, 85,94] . Тот факт, что степень достоверности высока (95%), а интервал относительно узок, указывает на то, что в данных условиях модель KERMIT довольно устойчива!

2. Скрытые предположения о доверительных интервалах.

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

Что касается нормальности данных, предполагается, что выборка данных была взята из нормального распределения, и поэтому дисперсия не зависит от среднего. Это предположение может быть проблематичным, поскольку распределение данных часто неизвестно.

Теперь предположим, что вы хотите оценить доверительный интервал точности модели M в наборе данных D, вам не только нужно знать распределение D , но также должно быть, чтобы это распределение было гауссовым. К счастью, пригодится Центральная предельная теорема, устанавливающая, что если размер выборки достаточно велик, распределение данных стремится к нормальному распределению. Здесь определение большого зависит от нескольких факторов, но 30 обычно считается хорошим порогом для размера выборки данных, которая будет использоваться для оценки модели. В целом, как это часто бывает в науке о данных, чем больше данных, тем лучше.

Что касается интерпретации степени достоверности, часто неявно предполагается, что степень достоверности представляет собой вероятность того, что истинное значение p попадет в доверительный интервал I. На самом деле это неверно, поскольку степень уверенности относится к надежности процедуры оценки, что подробно обсуждается в этом разделе Википедии. В любом случае с практической точки зрения доверительный интервал можно понимать как оценку вероятных значений параметра совокупности.

3. Что такое параметрические доверительные интервалы

Параметрическая оценка - это способ оценить доверительные интервалы в закрытой форме даже на основе одного результата вашей модели. Формула для вычисления доверительных интервалов с помощью параметрической оценки следующая:

где A - точность вашей модели, N указывает размер выборки, на которой был вычислен A, а фактор - константа, определяемая степенью достоверности и размером выборки. Цель фактора - определить ширину интервала. Вообще говоря, более высокая степень уверенности ведет к более широким интервалам. Источник этой константы зависит от размера выборки и будет указан в ближайшее время.

Значение R представляет диапазон интервала, поэтому интервал будет представлен как I = [A-R, B + R].

Как упоминалось в пункте 2, параметрическая оценка предполагает, что выборка данных была взята из нормального распределения. Даже если вы не знаете распределение своих данных, если размер выборки больше 30, это не проблема благодаря центральной предельной теореме. В этом случае параметром factor будет z-score, связанный с желаемой степенью достоверности.

Если размер вашей выборки меньше 30, то обычно предполагается, что данные были взяты из распределения t-Стьюдента со степенями свободы sample_size-1. Не вдаваясь в подробности, это предположение приводит к более широким доверительным интервалам, поскольку небольшой размер выборки обеспечивает дополнительную неопределенность. В этом случае параметром factor будет t-score, связанный с распределением t-student, имеющим N-1 степени свободы и заданная степень уверенности.

4. Что такое непараметрические доверительные интервалы

Оценка непараметрического доверительного интервала - это способ эмпирической оценки доверительного интервала. Этот метод имеет несколько других названий: оценка доверительного интервала начальной загрузки, оценка доверительного интервала по методу Монте-Карло или просто оценка доверительного интервала эмпирического анализа, но все они указывают на одно и то же.

Чтобы оценить непараметрические доверительные интервалы точности модели M в наборе данных D, модель обучается и тестируется несколько раз на выборках D . Это алгоритм для выполнения оценки:

  1. Набор данных D выбирается N раз для получения N наборов данных Di. Такой отбор обычно выполняется с заменой.
  2. Каждый образец Di разделен на два отдельных набора Di_train и Di_test.
  3. Для каждого Di создается экземпляр Mi модели. Каждый экземпляр Mi оценивается на соответствующей выборке данных путем обучения на Di_train и тестирования на Di_test. Обозначим список точности тестов A.
  4. Список точности тестов A отсортирован.
  5. Обозначим желаемый уровень достоверности C; если мы хотим, чтобы c.i. для степени уверенности 95% для параметра C будет установлено значение 95. Обозначим через alpha значение 100- C. Если желаемый уровень достоверности составляет C = 95, alpha = 100–95 = 5.
  6. Нижняя граница доверительного интервала дается альфа / 2- th процентилем A, а верхняя граница доверительного интервала - задается процентилем C + (alpha / 2) - th.
  7. Можно с уверенностью сказать, что доверительный интервал модели M в наборе данных D составляет [lower_bound, upper_bound]. степень C%.

Интуитивно мы хотим взять lower_bound и upper_bound, чтобы они покрывали C% элементов A, как показано на следующем рисунке.

Этот способ вычисления доверительных интервалов ставит под сомнение оба предположения, которые мы обсуждали в пункте 2 этого поста. Вот почему при непараметрическом вычислении доверительных интервалов критически важно иметь как большой набор данных, так и использовать большое количество итераций для выполнения оценки.

5. Как использовать trust_interval_estimator_ML для вычисления параметрических и непараметрических доверительных интервалов.

На этом этапе у вас должно быть четкое представление о том, как работает параметрическая и непараметрическая оценка доверительных интервалов, поэтому я представлю уверенность_interval_estimator_ML, инструмент Python, который сделает процесс оценки очень простым и понятным.

Этот инструмент легко установить через pip в командной строке:

> pip install confidence_interval_estimator_ML

Теперь выполнить оценку довольно просто: для параметрического случая вам просто нужно импортировать библиотеку и запустить одну строку кода, как показано в следующем примере:

В представленном примере используется размер выборки больше 30, поэтому функция указывает, что предполагается, что данные выбираются из нормального распределения.

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

Первая строка выполняет первые три шага алгоритма, представленного в точке 4 (он обучает и проверяет экземпляры модели для указанного количества итераций), а вторая строка выполняет оставшиеся четыре точки (вычисляет границы доверительного интервала) .

Первая функция get_accuracy_samples принимает несколько входных параметров:

  • get_classifier_instance - это функция, которая возвращает новый экземпляр модели, вызывая его. В возвращаемой модели должны быть предусмотрены методы fit и прогноз. На каждой итерации будет создаваться новый экземпляр модели.
  • model_params_dict - это необязательный параметр, позволяющий указать параметры, передаваемые в конструктор модели.
  • X и y представляют соответственно вход и цель модели.
  • sample_ratio указывает размер выборки, отбираемой на каждой итерации из (X, y). Например, если (X, y) имеет 1000 точек данных, а sample_ratio установлен на 0,70 на каждой итерации набор данных из 700 точек данных будет взят из (X, y).
  • train_ratio указывает, какое соотношение выборочного набора данных будет использоваться для обучения и тестирования модели на каждой итерации. Следуя примеру из предыдущего пункта, если (X, y) имеет 1000 точек данных и sample_ratio = 0.70,, то на каждой итерации набор данных из 700 точек данных будет быть отобранным. Если train_ratio = 0.80, 560 точек данных будут использоваться для обучения модели, а оставшиеся 140 будут использоваться для оценки (для вычисления точности теста).

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

Эти методы предоставляют другие параметры и варианты использования, которые здесь не обсуждаются для краткости. Если вы хотите изучить все возможности, предлагаемые модулем доверия_interval_estimator_ML, или вам просто нужна дополнительная информация для выполнения ваших оценок, вы можете проверить этот Блокнот Google Colab или просто репозиторий GitHub, содержащий код и документацию.

Ссылки и дополнительная литература:

  1. Https://ocw.mit.edu/courses/mat Mathematics/18-05-introduction-to-probability-and-statistics-spring-2014/readings/MIT18_05S14_Reading24.pdf
  2. Https://sphweb.bumc.bu.edu/otlt/MPH-Modules/PH717-QuantCore/PH717-Module6-RandomError/PH717-Module6-RandomError11.html
  3. Https://machinelearningmastery.com/report-classifier-performance-confidence-intervals/
  4. Https://machinelearningmaster.com/confidence-intervals-for-machine-learning/#:~:text=Much%20of%20machine%20learning%20involves,the%20un surety%20of%20an%20estimate.&text=That%20a % 20confidence% 20interval% 20is, оценка% 20of% 20a% 20population% 20parameter .
  5. Http://www2.stat.duke.edu/~ar182/rr/examples-gallery/BootstrapConfidenceIntervals.html

Если вам понравилась эта статья, не стесняйтесь подключиться к Linkedin!