Оценка качества работы алгоритма машинного обучения
Все метрики для оценки качества модели высчитываются по тестовым и приемочным выборкам. Тестовая выборка — это набор объектов и ответов, заранее известный, не используемый при обучении, но используемый для измерения качества модели. Именно за счет отсутствия этих примеров в обучающей выборке и оценивается предсказательная способность модели. После того как качество модели было оценено с помощью… Читать ещё >
Оценка качества работы алгоритма машинного обучения (реферат, курсовая, диплом, контрольная)
Методы оценки качества
Было разработано множество методик оценки соответствия получаемой модели второму требованию, а именно требованию наличия предсказательной способности.
Все метрики для оценки качества модели высчитываются по тестовым и приемочным выборкам. Тестовая выборка — это набор объектов и ответов, заранее известный, не используемый при обучении, но используемый для измерения качества модели. Именно за счет отсутствия этих примеров в обучающей выборке и оценивается предсказательная способность модели. После того как качество модели было оценено с помощью тестовой выборки, может возникнуть желание разобрать ошибочные ответы в модели. Тогда человек, обучающий модель, может заглянуть в тестовую выборку и попытаться на основе значений признаков или на основе иных критериев понять, в чем проблема обученной модели. Это главное отличие тестовой выборки от приемочной.
В приемочную выборку разработчик никогда не должен смотреть, чтобы ненароком не придумать такой набор признаков, который бы лучше подгонял модель иод эту выборку, что совсем не гарантирует наличия предсказательной способности у модели. Чаще всего тестовую выборку создает разработчик модели, а приемочную — заинтересованное в результате работы алгоритма лицо, которое само не участвует в процессе разработки. Например, если разрабатывается система ранжирования документов, то приемочную выборку составляют так называемые асессоры — люди, которые профессионально занимаются оценкой поисковых систем. В случае построения модели для предсказания болезней человек, который мог бы составить приемочную выборку, был бы скорее всего врачом, который имеет доступ к данным о пациентах.
Но существует проблема: что, если у нас нет эксперта, который мог бы составить приемочную выборку, и есть только обучающая выборка, а составление тестовой — дорого? Тогда можно прибегнуть к так называемой кроссвалиации (crossvalidation), суть которой состоит в том, что исходная обучающая выборка разделяется на N частей и N раз производится обучение по N — 1 части (без повторов) и оценка по оставшейся одной части. После чего оценки усредняются и высчитывается стандартное отклонение используемых метрик. Наличие больших значений стандартного отклонения говорит скорее всего о том, что данный набор факторов или модель плохо подходят для решения задачи и необходимо их пересмотреть. Соответственно, при малых значениях стандартного отклонения разработчик смотрит на средние значения метрик.
Ниже представлен псевдокод, демонстрирущий процесс кроссвалидации.
trait Model {.
def predict (obj: Object): Answer.
def learn (sample: Map [Object, Answer]): Unit.
}.
trait Answer.
def crossvalidation (model: Model, learningSample:
Map [Object, Answer]) =(.
val n =10 // разделим на 10 частей.
val parts =learningSample.grouped (learningSample.
size / n).
val testAndLearningParts = parts. map (p =>p -> (learningSample — p)) // получим пары.
// 1/n — тестовый сэмпл // (n-1) /п — обучающий.
val estimations = testAndLearningParts map { case (testingSample, learningSample) => model. learn (learningSample).
val answersOnTestSample: Map [Object, Answer] = testingSample.keys.map (obj =>obj -> model, predict (obj)).toMap estimate (model, testingSample).
}.
val m =mean (estimations).
val std =Math.sqrt (mean (estimations.map.
(estimation => (estimation — m) * (estimation — m)))).
}.
Прежде чем описать некоторые популярные метрики, необходимо дать несколько важных определений.
Истинно-положительное значение (TP — true-positive) — для бинарной классификации означает наличие положительного решения классификатора и что истинное значение ответа в оценочной выборке также положительное.
Ложно-ноложительное значение (FP — false-positive) говорит соответственно о наличии положительного ответа классификатора и отрицательного в оценочной выборке.
Аналогичные случаи есть и для отрицательных примеров — истинно-отрицательное значение (TN — true-negative) и ложноотрицательное значение (FN — false-negative).
Для данных значений можно привести простой пример на основе задачи классификации спама:
- • ТР — письмо было классифицировано как спам, и в оценочной выборке оно действительно является спамом;
- • FP — письмо было классифицировано как спам, однако в выборке это не так;
- • TN — письмо было классифицировано как не-спам, и это действительно так согласно выборке;
- • FN — письмо было принято как не-спам, однако согласно выборке это спам.
Так как оценка метрик производится по всей выборке, то значения TP, FP, TN, FN будут означать общее число соотвествующих случаев.
Точность {precision) — метрика, характеризующая долю правильных ответов среди общего числа положительных классификаций. Чем выше точность модели, тем меньше не-верных положительных решений она примет:
Полнота (recall) — метрика, показывающая долю положительных решений, принятых классификатором, среди всех положительных примеров в оценочной выборке. Другими словами, полнота характеризует потери классификатора на оценочной выборке — чем выше это значение, тем меньше правильных классификаций было потеряно:
Иногда бывает необходимо оценить совместно и полноту, и точность модели. Это может быть полезно при сравнении нескольких моделей между собой, полученных путем обучения различных алгоритмов машинного обучения. В случае такой необходимости многокритериального анализа модели на помощь приходит использование F-меры (/-measure):
При этом коэффициент р позволяет отдать предпочтение полноте или точности. При значениях р < 1 предпочтение отдается точности, при больших значениях — полноте. В случае равнозначности метрик полноты и точности р выбирается равной единице, и тогда формула приобретает более простой вид:
Приведенные выше критерии относятся только к оценке качества алгоритма машинного обучения уже после его обучения. Дело в том, что нельзя использовать критерий оценки качества и при решении оптимизационной задачи в процессе обучения — такой способ на обучающей выборке безусловно даст хорошие показатели качества, однако на тестовой выборке данные метрики, скорее всего, дадут низкие показатели качества. Чтобы честно оценить качество работы алгоритма машинного обучения, критерий его оценки должен быть независим от оптимизационной задачи.