Error rate formula

The error rate itself is simply calculated as the total number of errors divided by the total number of items. The following datastep performs the necessary arithmetic, creating a temporary dataset which contains the total error rate, as well as the error rate for each unique page.

The error rate itself is simply calculated as the total number of errors divided by the total number of items. The following datastep performs the necessary arithmetic, creating a temporary dataset which contains the total error rate, as well as the error rate for each unique page.

Error rate is expressed as a ratio and is calculated by dividing the total number of words read by the total number of errors made. The ratio is expressed as 1:20. This means that for each error made, the child read 20 words correctly.

Full
Answer

What is the formula for calculating standard error?

The computation of percentage error involves the use of the absolute error, which is simply the difference between the observed and the true value. The absolute error is then divided by the …

What is an acceptable error rate?

Sep 12, 2013 · Percent Error Calculation Steps Subtract one value from another. The order does not matter if you are dropping the sign (taking the absolute value. Divide the error by the exact or ideal value (not your experimental or measured value). This will yield a decimal number. Convert the decimal number …

How to figure error rate?

Jun 21, 2021 · To formulate the transaction error rate, add up all transaction-related errors in a reporting period and divide them by the total number of transactions completed within the same reporting period. This calculation should match transactional errors to the pool of the same types of transactions completed, which will result in a separate error rate for each general type of …

How do you calculate maximum percentage error?

You have to define a error metric to measure yourself. In your case, a simple method should be to find the properties mapping of your product as p = properties (id) where id is the product id, and p is likely be a vector with each entry of different properties. Then you can define the error function e (or distance) between two products as

What is the formula for error?

When keeping the sign for error, the calculation is the experimental or measured value minus the known or theoretical value, divided by the theoretical value and multiplied by 100%.Nov 2, 2020

What is the rate of error?

It is the ratio of the number of erroneous units of data to the total number of units of data transmitted.

How do I calculate percent error in Excel?

Percent Error = |(Experimental Value – Theoretical Value)| / |Theoretical Value| * 100Percent Error = |(2.7 – 2.68)|/ |2.68| * 100.Percent Error = 0.75%

How do you calculate error bars?

The standard error is calculated by dividing the standard deviation by the square root of number of measurements that make up the mean (often represented by N). In this case, 5 measurements were made (N = 5) so the standard deviation is divided by the square root of 5.

Sample Percent Error Calculation

Dr. Helmenstine holds a Ph.D. in biomedical sciences and is a science writer, educator, and consultant. She has taught science courses at the high school, college, and graduate levels.

Percent Error Formula

Percent error is the difference between a measured or experiment value and an accepted or known value, divided by the known value, multiplied by 100%.

Percent Error Calculation Steps

Subtract one value from another. The order does not matter if you are dropping the sign (taking the absolute value. Subtract the theoretical value from the experimental value if you are keeping negative signs. This value is your «error.»

Percent Error Example Calculation

In a lab, you are given a block of aluminum. You measure the dimensions of the block and its displacement in a container of a known volume of water. You calculate the density of the block of aluminum to be 2.68 g/cm 3. You look up the density of a block of aluminum at room temperature and find it to be 2.70 g/cm 3.

Percent Error Versus Absolute and Relative Error

Percent error is related to absolute error and relative error. The difference between an experimental and known value is the absolute error. When you divide that number by the known value you get relative error. Percent error is relative error multiplied by 100%. In all cases, report values using the appropriate number of significant digits.

Examples

A new tourist place statue of unity was established recently in Gujarat in India, and it was estimated that around 3,00,000 people would turn around on its inauguration day. But the exact number of people that came for its inauguration was around 2,88,000.

Uses of Percent Error Formula

The percent error appears to be a simple calculation, but it is very useful as it provides us with a number that will depict our error.

Recommended Articles

This has been a guide to Percent Error Formula. Here we learn how to calculate Percent Error using its formula with practical examples and a downloadable excel template. You can learn more about financing from the following articles –

Why is standard error important?

It is very important to understand the concept of standard error as it predominantly used by statisticians as it allows them to measure the precision of their sampling method. Statisticians usually use the sample from a large pool of data as it is difficult to process such a huge data set, and as such, sampling makes the task a lot easier. So, standard error helps estimate how far the sample mean from the true population means.

How to find the sample size of a population?

Step 1: Firstly, collect the sample variables from the population-based on a certain sampling method. The sample variables are denoted by x such that x i refers to the i th variable of the sample. Step 2: Next, determine the sample size, which is the total number of variables in the sample. It is denoted by n.

What is the Transaction Error Rate?

The transaction error rate is the percentage of processing errors that an accounting department generates. It is critical to avoid processing errors, since the cost of correcting them is several multiples of the cost of initially completing them correctly. Consequently, one of the better metrics is to monitor the transaction error rate.

How to Calculate the Transaction Error Rate

To formulate the transaction error rate, add up all transaction-related errors in a reporting period and divide them by the total number of transactions completed within the same reporting period.

Example of the Transaction Error Rate

For example, the senior accounting clerk of the Divine Gelato Company wants to reduce the amount of staff time spent on correcting transactional errors. She has derived the following information for the last reporting period:

Accounting Areas with High Transaction Error Rates

The most egregious error rate is in the billing transactions area, with payable transactions coming in a close second.

Why is it important to assess the error rate of a manually entered data?

Periodically assessing the error rate of a manually entered data is helpful in assessing and maintaining the integrity of that data Such assessments are simple to implement, and provide valuable information about the accuracy of manual data entry.

Can a quality assurance audit be done while a study is in progress?

quality assurance audit can be conducted while a study is in progress, or at the completion of a study. In either case, the assessing the level of error present due to data entry is For the most objective results, a essentially the same.

What is Lewin Group?

The Lewin Group, Inc. is a health care consulting firm which serves the spectrum of the US and international health care services and products. Our Medical Technology Practice specializes providing expertise to the pharmaceutical industry by conducting with late phase clinical trials, effectiveness trials, and health outcomes research, and providing medical product reimbursement strategy and support.

Word Error Rate in Practice

Image

Let’s take a look at an example audio. The correct text is below: We wanted people to know that we’ve got something brand new and essentially this product is, uh, what we call disruptive, changes the way that people interact with technology. Now, here’s how that sentence was translated using Google’s speech to text API: We w…

See more on rev.ai

The Power of Speaker Diarization

  • Are all of your transcriptions just one person narrating into a recorder? Great! You’ve somehow found the sweet spot of perfect audio. What’s more likely, however, is that your files contain multiple speakers. Those speakers may sometimes cut each other off or talk over each other. They may even sound fairly similar. One of the cool features of Rev.ai is speaker diarization. Thi…

See more on rev.ai

Other Factors to Consider

  • WER can be an incredibly useful tool; however, it’s just one consideration when you’re choosing an ASR service. A key thing to remember is that your WER will be inaccurate if you don’t normalize things like capitalization, punctuation, or numbers across your transcripts. Rev.ai automatically transcribes spoken words into sentences and paragraphs. This is especially important if you ar…

See more on rev.ai

Final Thoughts

  • Now that you’re comfortable calculating word error rate, you can feel more confident in your search for an ASR service. See how the power of a low WER can help your business reach new heights. Try Rev.ai for freeand get five hours of credit simply for signing up. Try it free

See more on rev.ai

Popular Posts:

  • 1. error when trying to open amazon music app on pc
  • 2. how do bypass empty cartridge error on hp printwr600 series
  • 3. ps4 error ce-35888-2 when updating
  • 4. how to fix minecraft error org.lwjgl.lwjglexception
  • 5. how to fix ati error 174
  • 6. why is there a registration add error usf
  • 7. which error is the unknown one
  • 8. when the serving team makes an error in volleyball
  • 9. how to fix android error
  • 10. my coolpix b500 has a error message turn the camera off then on again. how do i fix that?
  • Percent Error Formula

    Percent Error Formula (Table of Contents)

    • Percent Error Formula
    • Examples of Percent Error Formula (With Excel Template)
    • Percent Error Formula Calculator

    Percent Error Formula

    Percentage error formula is being used in many scientific reports and especially chemistry; the formula is used to measure the difference between a measured or experimental value and a true or an exact value. The purpose of the percent error formula is to gauge how different is the measured value is from the exact value. The computation of the percent error formula involves the absolute error, which simply is denoted in a positive value most of the times. Note for chemistry and other sciences, it is customary to keep a negative value. Whether error is positive or negative is important. A percentage error formula which is close to zero or equal to zero signifies that the user is very close to the targeted value, which is a positive sign for the user. But, it is very important for the user to know the reason and the rationale behind the cause of the error, which can occur due to various of reasons such as an error occurred during the experiment or a mistake in its own estimation. The formula is all about comparing a guess or an estimate to an exact value.

    The formula for Percent Error –

    Percent Error = |(Experimental Value – Theoretical Value)| / |Theoretical Value| * 100

    Examples of Percent Error Formula (With Excel Template)

    Let’s take an example to understand the calculation of Percent Error in a better manner.

    You can download this Percent Error Template here – Percent Error Template

    Example #1

    The density of the aluminum block is 2.68 g/cm cube, while the density of the same aluminum block at room temperature is to be 2.70 g/cm cube. Next, calculate the Percent Error of the measurement.

    Percent Error Example 1-1

    Solution:

    Percent Error is calculated using the formula given below

    Percent Error = |(Experimental Value – Theoretical Value)| / |Theoretical Value| * 100

    Percent Error Example 1-2

    • Percent Error = |(2.7 – 2.68)|/ |2.68| * 100
    • Percent Error = 0.75%

    Example #2

    The user needs to find the volume and mass of a paper cube in the experimental lab. When the user is calculating the value of the measurements, it gets the value as 8.78 g/cm cube. Whereas the accepted density of the cube is to be 8.96 g/cm cube. Calculate the percent error.

    Example 2-1

    Solution:

    Percent Error is calculated using the formula given below

    Percent Error = |(Experimental Value – Theoretical Value)| / |Theoretical Value| * 100

    Percent Error Example 2-2

    • Percent Error = |(8.96 – 8.78)| / |8.78| * 100
    • Percent Error = 2.05%

    Example #3

    A scale measures wrongly a value of 10 cm due to some marginal error in the computation. The user needs to calculate the percent error of the measurement when the actual value of the scale is to be 12 cm.

    Example 3-1

    Solution:

    Percent Error is calculated using the formula given below

    Percent Error = |(Experimental Value – Theoretical Value)| / |Theoretical Value| * 100

    Percent Error Example 3-2

    • Percent Error = |(12 – 10)| / |10| * 100
    • Percent Error = 20%

    Explanation

    The steps to calculate the formula is:-

    • Subtract one value from another value as the sign of the formula is not a matter so that any value can be subtracted from any value. The resultant value is your error value which is simply calculated by subtracting one value from another value.
    • Divide the error value, which is computed by the exact value or the theoretical value, which will then result in a decimal number.
    • After computing, the decimal value simply converts eh decimal number computed into a percentage by multiplying it by 100.

    The formula will show a value in percentage form.

    Relevance and Uses

    • The keys to reporting percent error correctly are to know whether or not to drop the sign (positive or negative) on the calculation and to report the value using the correct number of significant figures.
    • It is frequently used in the analysis of scientific research and is used by the physician and in the field of chemistry. Students also when use to do experiments in labs use the percent error formula in order to determine the variance. The acceptable range of error depends on the case to case basis and the quantum of percent error needs to be determined beforehand when experimenting a particular test in the lab always. The use of value with a high percent error in measurement is the judgment of the use.

    Percent Error Formula Calculator

    You can use the following Calculator

    Experimental Value
    Theoretical Value
    Percent Error
     

    Percent Error =
    |(Experimental ValueTheoretical Value)|
    X 100
    |Theoretical Value|
    |(00)|
    X 100 = 0
    |0|

    Recommended Articles

    This has been a guide to Percent Error Formula. Here we discuss how to calculate Percent Error along with practical examples. We also provide Percent Error calculator with downloadable excel template. You may also look at the following articles to learn more –

    1. Guide to Daily Compound Interest Formula
    2. How To Calculate Salary Using Formula?
    3. Formula For Market to Book Ratio
    4. Examples of Maturity Value Formula

    Error Rate Calculation

    Вычисляет вероятность битовых ошибок или вероятность символьных ошибок во входных данных

    Библиотека

    Связные получатели

    • Error Rate Calculation block

    Описание

    Блок Error Rate Calculation сравнивает входные данные от передатчика с входными данными от приемника. Он вычисляет коэффициент ошибок как текущую статистику, деля общее количества неравных пар элементов данных на общее количество элементов входных данных от одного источника.

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

    Примечание

    Когда вы устанавливаете параметр Output data на Workspace, блок не генерирует кода. Точно так же никакие данные не сохранены в рабочую область, если Simulation mode установлен в Accelerator или Rapid Accelerator. Если вы нуждаетесь в информации о коэффициенте ошибок в этих случаях, устанавливаете Output data на Port.

    Входные данные

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

    Tx и Rx входные порты принимают сигналы вектор-столбца или скаляр. Для получения информации о типах данных, которые поддерживает каждый порт блока см. таблицу Supported Data Types на этой странице.

    Если Tx скаляр и Rx вектор, или наоборот, затем блок сравнивает скаляр с каждым элементом вектора. В этом случае блок ведет себя, как будто вы предварительно обработали скалярный сигнал при помощи блока Repeat с набором параметров Rate options к Enforce single rate.

    Если вы выбираете Reset port, то дополнительный входной порт появляется, пометил Rst. Rst введите принимает только скалярный сигнал (типа double или boolean) и должен иметь тот же шаг расчета порта как Tx и Rx порты. Когда Rst вход является ненулевым, блок очищает и затем повторно вычисляет статистику ошибок.

    Если вы устанавливаете параметр Computation mode на Select samples from port, затем дополнительный входной порт появляется, пометил Sel. Sel введите указывает, какие элементы кадра важны для расчета. Sel введите может быть вектор-столбец типа double.

    Инструкции ниже указывают, как необходимо сконфигурировать входные параметры и диалоговые параметры в зависимости от того, как вы хотите, чтобы этот блок интерпретировал ваш Tx и Rx данные.

    • Если оба сигнала данных являются скаляром, то этот блок сравнивает Tx скалярный сигнал с Rx скалярный сигнал. Для этой настройки используйте значение по умолчанию параметра Computation mode, Entire frame.

    • Если оба сигнала данных являются векторами, то этот блок сравнивает некоторых или весь Tx и Rx данные:

      • Если вы устанавливаете параметр Computation mode на Entire frame, затем блок сравнивает весь Tx структурируйте со всем Rx система координат.

      • Если вы устанавливаете параметр Computation mode на Select samples from mask, затем поле Selected samples from frame появляется в диалоговом окне. Это поле параметра принимает вектор, который перечисляет индексы тех элементов Rx структурируйте это, вы хотите, чтобы блок рассмотрел. Например, чтобы считать только первые и последние элементы длины шестью системами координат приемника, установите параметр Selected samples from frame на [1 6]. Если вектор Selected samples from frame включает нули, то блок игнорирует их.

      • Если вы устанавливаете параметр Computation mode на Select samples from port, затем дополнительный входной порт, пометил Sel, появляется на значке блока. Данные в этом входном порту должны иметь тот же формат как тот из параметра Selected samples from frame, описанного выше.

    • Если один сигнал данных является скаляром, и другой вектор, то скаляр с каждой записью вектора. В этом случае, если Rx скаляр, затем фраза “Rx структурируйте” выше, относится к векторному расширению Rx.

      Примечание

      Этот блок не поддерживает сигналы переменного размера. Если вы выбираете Select samples from port опция и хочет, чтобы число элементов в подкадре варьировалось во время симуляции, затем необходимо заполнить Sel сигнал с нулями. Блок Error Rate Calculation игнорирует нули в Sel сигнал.

    Выходные данные

    Этот блок производит вектор длины три, чьи записи соответствуют:

    • Коэффициент ошибок

    • Общее количество ошибок, то есть, количества экземпляров, что элемент Rx не совпадает с соответствующим элементом Tx

    • Общему количеству сравнений, которые сделал блок

    Блок отправляет этому выходные данные в основной MATLAB® рабочая область или к выходному порту, в зависимости от того, как вы устанавливаете параметр Output data:

    • Если вы устанавливаете параметр Output data на Workspace и заполните параметр Variable name, затем та переменная в основном рабочем пространстве MATLAB содержит текущее значение, когда симуляция заканчивается. Приостановка симуляции не заставляет блок писать временные данные в переменную.

      Если вы планируете использовать этот блок наряду с Simulink® Программное обеспечение Coder™, затем вы не должны использовать Workspace опция. Вместо этого используйте Port опция и подключение выходной порт с блоком Simulink To Workspace (Simulink).

    • Если вы устанавливаете параметр Output data на Port, затем выходной порт появляется. Этот выходной порт содержит рабочую статистику ошибок.

    Задержки

    Receive delay и параметры Computation delay реализуют два различных типов задержек этого блока. Одна задержка полезна, если вы хотите, чтобы этот блок компенсировал задержку полученного сигнала. Другой полезно, если вы хотите проигнорировать начальное переходное поведение обоих входных сигналов.

    • Параметр Receive delay представляет количество отсчетов, которым принятые данные отстают от передаваемых данных. Передаваемый сигнал неявно задерживается той же самой суммой, прежде чем блок сравнит его с принятыми данными. Это значение полезно, когда вы задерживаете передаваемый сигнал так, чтобы это выровнялось с полученным сигналом. Задержка приема сохраняется в течение симуляции.

    • Параметр Computation delay представляет количество отсчетов, которое блок игнорирует в начале сравнения.

    Используйте блок Find Delay, чтобы определить задержку, и затем установить Receive delay на задержку, о которой сообщает блок Find Delay.

    Если вы используете Select samples from mask или Select samples from port опция, затем каждый параметр задержки относится к количеству отсчетов, которое получает блок, игнорирует ли блок в конечном счете некоторых из них или нет.

    При использовании порта Sel, чтобы вычислить ошибки на задержанный сигнал, задержка должна быть добавлена к индексам Sel. Для получения дополнительной информации смотрите, Вычисляют, Ошибки для Задержанного Выбрали Samples.

    Остановка симуляции на основе статистики ошибок

    Можно сконфигурировать этот блок так, чтобы его управление статистикой ошибок длительность симуляции. Это полезно для вычисления надежной установившейся статистики ошибок, не зная заранее, сколько времени переходные эффекты могут продлиться. Чтобы использовать этот режим, проверяйте Stop simulation. Блок пытается запустить симуляцию, пока это не обнаруживает количество ошибок, которые задает параметр Target number of errors. Однако остановки симуляции прежде, чем обнаружить достаточно ошибок, если время достигает установки Stop time модели (в диалоговом окне Configuration Parameters), если блок Error Rate Calculation делает сравнения Maximum number of symbols, или если другой блок в модели направляет симуляцию, чтобы остановиться.

    Чтобы проигнорировать или этих двух критериев остановки в этом блоке, установите соответствующий параметр (Target number of errors или Maximum number of symbols) к Inf. Например, чтобы достигнуть целевого количества ошибок, не останавливая симуляцию рано, установите Maximum number of symbols на Inf и набор Stop time модели к Inf.

    Настройка параметров в исполняемом файле RSim (программное обеспечение Simulink Coder)

    Если вы используете Simulink Coder быстрая симуляция (RSim) цель, чтобы создать исполняемый файл RSim, то можно настроить Target number of errors и параметры Maximum number of symbols , не перекомпилировав модель. Это полезно для симуляций Монте-Карло, в которых вы запускаете симуляцию многократно (возможно, на нескольких компьютерах) с различными количествами шума.

    Примеры

    Вычисление ошибок целого кадра

    Рисунок ниже показывает, как блок сравнивает пары элементов и считает количество ошибочных событий. Tx и Rx входные параметры являются вектор-столбцами.

    Этот пример предполагает, что шаг расчета каждого входного сигнала составляет 1 секунду и что параметры блока следующие:

    • Receive delay = 2

    • Computation delay = 0

    • Computation mode = Entire frame

    Оба входных сигнала являются вектор-столбцами длины три. Однако схематические расположения, каждый вектор-столбец горизонтально и выравнивает пары векторов, чтобы отразить задержку приема двух выборок. На каждом временном шаге блок сравнивает элементы Rx сигнал с теми из Tx сигнал, которые появляются непосредственно выше их в схематическом. Например, во время 1, блок выдерживает сравнение 2, 4, и 1 от Rx сигнал с 2, 3, и 1 от Tx сигнал.

    Значения первых двух элементов Rx появитесь как звездочки, потому что они не влияют на выход. Точно так же 6 и 5 в Tx сигнал не влияет на выход до времени 3, хотя они влияли бы на выход во время 4.

    В коэффициентах ошибок правой стороны рисунка каждый числитель во время t отражает количество ошибок при рассмотрении элементов Rx в течение времени t.

    Подсчет ошибок целого кадра со сбросом

    Если бы флажок Reset port блока был установлен, и сброс произошел во время = 3 секунды, то последний коэффициент ошибок будет 2/3 вместо 4/10. Это значение 2/3 отразило бы сравнение 3, 2, и 1 от Rx сигнал с 7, 7, и 1 от Tx сигнал. Рисунок ниже иллюстрирует этот сценарий. Tx и Rx входные параметры являются вектор-столбцами.

    Подсчет ошибок на выборочных отсчетах в кадре

    При использовании порта Sel, чтобы вычислить ошибки на задержанный сигнал, задержка должна быть добавлена к индексам Sel. Для получения дополнительной информации смотрите, Вычисляют, Ошибки для Задержанного Выбрали Samples.

    Параметры

    Receive delay

    Количество отсчетов, которым принятые данные отстают от передаваемых данных. (Если Tx или Rx вектор, затем каждая запись представляет выборку.)

    Computation delay

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

    Computation mode

    Любой Entire frame, Select samples from mask, или Select samples from portВ зависимости от того, должен ли блок рассмотреть весь или только часть входных кадров.

    Selected samples from frame

    Вектор, который перечисляет индексы элементов Rx структурируйте вектор, который блок должен рассмотреть при создании сравнений. Это поле появляется, только если Computation mode установлен в Select samples from mask.

    Output data

    Любой Workspace или PortВ зависимости от того, где вы хотите отправить выходные данные.

    Variable name

    Имя переменной для вектора выходных данных в основном рабочем пространстве MATLAB. Это поле появляется, только если Output data установлен в Workspace.

    Reset port

    Если вы устанавливаете этот флажок, то дополнительный входной порт появляется, пометил Rst.

    Stop simulation

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

    Target number of errors

    Остановки симуляции после обнаружения этого количества ошибок. Это поле активно, только если Stop simulation проверяется.

    Maximum number of symbols

    Остановки симуляции после создания этого количества сравнений. Это поле активно, только если Stop simulation проверяется.

    Поддерживаемые типы данных

    Порт Поддерживаемые типы данных

    Tx

    • Плавающая точка двойной точности

    • Плавающая точка с одинарной точностью

    • Boolean

    • 8-, 16-, и 32-битные целые числа со знаком

    • 8-, 16-, и 32-битное беззнаковое целое

    Rx

    • Плавающая точка двойной точности

    • Плавающая точка с одинарной точностью

    • Boolean

    • 8-, 16-, и 32-битные целые числа со знаком

    • 8-, 16-, и 32-битное беззнаковое целое

    Sel

    • Плавающая точка двойной точности

    Сброс

    • Плавающая точка двойной точности

    • Boolean

    Расширенные возможности

    Генерация кода C/C++
    Генерация кода C и C++ с помощью Simulink® Coder™.

    Генерация HDL-кода
    Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.

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

    Представлено до R2006a

    Гораздо легче что-то измерить, чем понять, что именно вы измеряете

    Джон Уильям Салливан

    Задачи машинного обучения с учителем как правило состоят в восстановлении зависимости между парами (признаковое описание, целевая переменная) по данным, доступным нам для анализа. Алгоритмы машинного обучения (learning algorithm), со многими из которых вы уже успели познакомиться, позволяют построить модель, аппроксимирующую эту зависимость. Но как понять, насколько качественной получилась аппроксимация?

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

    Перед чтением этой главы мы хотели бы ещё раз напомнить, что качество модели нельзя оценивать на обучающей выборке. Как минимум, это стоит делать на отложенной (тестовой) выборке, но, если вам это позволяют время и вычислительные ресурсы, стоит прибегнуть и к более надёжным способам проверки – например, кросс-валидации (о ней вы узнаете в отдельной главе).

    Выбор метрик в реальных задачах

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

    Например, мы хотим:

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

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

    1. Самый верхний уровень: будущий доход сервиса – невозможно измерить в моменте, сложным образом зависит от совокупности всех наших усилий;
    2. Медианная длина сессии, возможно, служащая оценкой радости пользователей, которая, как мы надеемся, повлияет на их желание продолжать платить за подписку – её нам придётся измерять в продакшене, ведь нас интересует реакция настоящих пользователей на новшество;
    3. Доля удовлетворённых качеством сгенерированной музыки асессоров, на которых мы потестируем её до того, как выставить на суд пользователей;
    4. Функция потерь, на которую мы будем обучать генеративную сеть.

    На этом примере мы можем заметить сразу несколько общих закономерностей. Во-первых, метрики бывают offline и online (оффлайновыми и онлайновыми). Online метрики вычисляются по данным, собираемым с работающей системы (например, медианная длина сессии). Offline метрики могут быть измерены до введения модели в эксплуатацию, например, по историческим данным или с привлечением специальных людей, асессоров. Последнее часто применяется, когда метрикой является реакция живого человека: скажем, так поступают поисковые компании, которые предлагают людям оценить качество ранжирования экспериментальной системы еще до того, как рядовые пользователи увидят эти результаты в обычном порядке. На самом же нижнем этаже иерархии лежат оптимизируемые в ходе обучения функции потерь.

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

    Функция потерь $neq$ метрика качества

    Как мы узнали ранее, методы обучения реализуют разные подходы к обучению:

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

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

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

    Важно понимать разницу между функцией потерь и метрикой качества. Её можно сформулировать следующим образом:

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

    • Метрика – внешний, объективный критерий качества, обычно зависящий не от параметров модели, а только от предсказанных меток.

    В некоторых случаях метрика может совпадать с функцией потерь. Например, в задаче регрессии MSE играет роль как функции потерь, так и метрики. Но, скажем, в задаче бинарной классификации они почти всегда различаются: в качестве функции потерь может выступать кросс-энтропия, а в качестве метрики – число верно угаданных меток (accuracy). Отметим, что в последнем примере у них различные аргументы: на вход кросс-энтропии нужно подавать логиты, а на вход accuracy – предсказанные метки (то есть по сути argmax логитов).

    Бинарная классификация: метки классов

    Перейдём к обзору метрик и начнём с самой простой разновидности классификации – бинарной, а затем постепенно будем наращивать сложность.

    Напомним постановку задачи бинарной классификации: нам нужно по обучающей выборке ${(x_i, y_i)}_{i=1}^N$, где $y_iin{0, 1}$ построить модель, которая по объекту $x$ предсказывает метку класса $f(x)in{0, 1}$.

    Первым критерием качества, который приходит в голову, является accuracy – доля объектов, для которых мы правильно предсказали класс:

    $$ color{#348FEA}{text{Accuracy}(y, y^{pred}) = frac{1}{N} sum_{i=1}^N mathbb{I}[y_i = f(x_i)]} $$

    Или же сопряженная ей метрика – доля ошибочных классификаций (error rate):

    $$text{Error rate} = 1 — text{Accuracy}$$

    Познакомившись чуть внимательнее с этой метрикой, можно заметить, что у неё есть несколько недостатков:

    • она не учитывает дисбаланс классов. Например, в задаче диагностики редких заболеваний классификатор, предсказывающий всем пациентам отсутствие болезни будет иметь достаточно высокую accuracy просто потому, что больных людей в выборке намного меньше;
    • она также не учитывает цену ошибки на объектах разных классов. Для примера снова можно привести задачу медицинской диагностики: если ошибочный положительный диагноз для здорового больного обернётся лишь ещё одним обследованием, то ошибочно отрицательный вердикт может повлечь роковые последствия.

    Confusion matrix (матрица ошибок)

    Исторически задача бинарной классификации – это задача об обнаружении чего-то редкого в большом потоке объектов, например, поиск человека, больного туберкулёзом, по флюорографии. Или задача признания пятна на экране приёмника радиолокационной станции бомбардировщиком, представляющем угрозу охраняемому объекту (в противовес стае гусей).

    Поэтому класс, который представляет для нас интерес, называется «положительным», а оставшийся – «отрицательным».

    Заметим, что для каждого объекта в выборке возможно 4 ситуации:

    • мы предсказали положительную метку и угадали. Будет относить такие объекты к true positive (TP) группе (true – потому что предсказали мы правильно, а positive – потому что предсказали положительную метку);
    • мы предсказали положительную метку, но ошиблись в своём предсказании – false positive (FP) (false, потому что предсказание было неправильным);
    • мы предсказали отрицательную метку и угадалиtrue negative (TN);
    • и наконец, мы предсказали отрицательную метку, но ошиблисьfalse negative (FN). Для удобства все эти 4 числа изображают в виде таблицы, которую называют confusion matrix (матрицей ошибок):

    6_1.png

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

    6_2.png

    Пример

    Попробуем воспользоваться введёнными метриками в боевом примере: сравним работу нескольких моделей классификации на Breast cancer wisconsin (diagnostic) dataset.

    Объектами выборки являются фотографии биопсии грудных опухолей. С их помощью было сформировано признаковое описание, которое заключается в характеристиках ядер клеток (таких как радиус ядра, его текстура, симметричность). Положительным классом в такой постановке будут злокачественные опухоли, а отрицательным – доброкачественные.

    Модель 1. Константное предсказание.

    Решение задачи начнём с самого простого классификатора, который выдаёт на каждом объекте константное предсказание – самый часто встречающийся класс.

    Зачем вообще замерять качество на такой модели?При разработке модели машинного обучения для проекта всегда желательно иметь некоторую baseline модель. Так нам будет легче проконтролировать, что наша более сложная модель действительно дает нам прирост качества.

    from sklearn.datasets 
    import load_breast_cancer 
    the_data = load_breast_cancer()    
    
    # 0 – "доброкачественный" 
    # 1 – "злокачественный" 
    relabeled_target = 1 - the_data["target"] 
    
    from sklearn.model_selection import train_test_split 
    X = the_data["data"] 
    y = relabeled_target 
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) 
    
    from sklearn.dummy import DummyClassifier 
    dc_mf = DummyClassifier(strategy="most_frequent") 
    dc_mf.fit(X_train, y_train) 
    
    from sklearn.metrics import confusion_matrix 
    y_true = y_test y_pred = dc_mf.predict(X_test) 
    dc_mf_tn, dc_mf_fp, dc_mf_fn, dc_mf_tp = confusion_matrix(y_true, y_pred, labels = [0, 1]).ravel() 
    
    Прогнозируемый класс + Прогнозируемый класс —
    Истинный класс + TP = 0 FN = 53
    Истинный класс — FP = 0 TN = 90

    Обучающие данные таковы, что наш dummy-классификатор все объекты записывает в отрицательный класс, то есть признаёт все опухоли доброкачественными. Такой наивный подход позволяет нам получить минимальный штраф за FP (действительно, нельзя ошибиться в предсказании, если положительный класс вообще не предсказывается), но и максимальный штраф за FN (в эту группу попадут все злокачественные опухоли).

    Модель 2. Случайный лес.

    Настало время воспользоваться всем арсеналом моделей машинного обучения, и начнём мы со случайного леса.

    from sklearn.ensemble import RandomForestClassifier 
    rfc = RandomForestClassifier()       
    rfc.fit(X_train, y_train)       
    y_true = y_test       
    y_pred = rfc.predict(X_test)       
    rfc_tn, rfc_fp, rfc_fn, rfc_tp = confusion_matrix(y_true, y_pred, labels = [0, 1]).ravel()
    
    Прогнозируемый класс + Прогнозируемый класс —
    Истинный класс + TP = 52 FN = 1
    Истинный класс — FP = 4 TN = 86

    Можно сказать, что этот классификатор чему-то научился, т.к. главная диагональ матрицы стала содержать все объекты из отложенной выборки, за исключением 4 + 1 = 5 объектов (сравните с 0 + 53 объектами dummy-классификатора, все опухоли объявляющего доброкачественными).

    Отметим, что вычисляя долю недиагональных элементов, мы приходим к метрике error rate, о которой мы говорили в самом начале:

    $$text{Error rate} = frac{FP + FN}{ TP + TN + FP + FN}$$

    тогда как доля объектов, попавших на главную диагональ – это как раз таки accuracy:

    $$text{Accuracy} = frac{TP + TN}{ TP + TN + FP + FN}$$

    Модель 3. Метод опорных векторов.

    Давайте построим еще один классификатор на основе линейного метода опорных векторов.

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

    from sklearn.svm import LinearSVC
    from sklearn.preprocessing import StandardScaler 
    ss = StandardScaler() ss.fit(X_train) 
    scaled_linsvc = LinearSVC(C=0.01,random_state=42) 
    scaled_linsvc.fit(ss.transform(X_train), y_train) 
    y_true = y_test 
    y_pred = scaled_linsvc.predict(ss.transform(X_test)) 
    tn, fp, fn, tp = confusion_matrix(y_true, y_pred, labels = [0, 1]).ravel() 
    
    Прогнозируемый класс + Прогнозируемый класс —
    Истинный класс + TP = 50 FN = 3
    Истинный класс — FP = 1 TN = 89

    Сравним результаты

    Легко заметить, что каждая из двух моделей лучше классификатора-пустышки, однако давайте попробуем сравнить их между собой. С точки зрения error rate модели практически одинаковы: 5/143 для леса против 4/143 для SVM.

    Посмотрим на структуру ошибок чуть более внимательно: лес – (FP = 4, FN = 1), SVM – (FP = 1, FN = 3). Какая из моделей предпочтительнее?

    Замечание: Мы сравниваем несколько классификаторов на основании их предсказаний на отложенной выборке. Насколько ошибки данных классификаторов зависят от разбиения исходного набора данных? Иногда в процессе оценки качества мы будем получать модели, чьи показатели эффективности будут статистически неразличимыми.

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

    Что же всё-таки важнее уменьшить: FP или FN? Вернёмся к задаче: FP – доля доброкачественных опухолей, которым ошибочно присваивается метка злокачественной, а FN – доля злокачественных опухолей, которые классификатор пропускает. В такой постановке становится понятно, что при сравнении выиграет модель с меньшим FN (то есть лес в нашем примере), ведь каждая не обнаруженная опухоль может стоить человеческой жизни.

    Рассмотрим теперь другую задачу: по данным о погоде предсказать, будет ли успешным запуск спутника. FN в такой постановке – это ошибочное предсказание неуспеха, то есть не более, чем упущенный шанс (если вас, конечно не уволят за срыв сроков). С FP всё серьёзней: если вы предскажете удачный запуск спутника, а на деле он потерпит крушение из-за погодных условий, то ваши потери будут в разы существеннее.

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

    Точность и полнота

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

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

    Пусть мы хотим решить задачу бинарной классификации «документ d релевантен по запросу q». Благодаря большому дисбалансу, Accuracy dummy-классификатора, объявляющего все документы нерелевантными, будет близка к единице. Напомним, что $text{Accuracy} = frac{TP + TN}{TP + TN + FP + FN}$, и в нашем случае высокое значение метрики будет обеспечено членом TN, в то время для пользователей более важен высокий TP.

    Поэтому в случае ассиметрии классов, можно использовать метрики, которые не учитывают TN и ориентируются на TP.

    Если мы рассмотрим долю правильно предсказанных положительных объектов среди всех объектов, предсказанных положительным классом, то мы получим метрику, которая называется точностью (precision)

    $$color{#348FEA}{text{Precision} = frac{TP}{TP + FP}}$$

    Интуитивно метрика показывает долю релевантных документов среди всех найденных классификатором. Чем меньше ложноположительных срабатываний будет допускать модель, тем больше будет её Precision.

    Если же мы рассмотрим долю правильно найденных положительных объектов среди всех объектов положительного класса, то мы получим метрику, которая называется полнотой (recall)

    $$color{#348FEA}{text{Recall} = frac{TP}{TP + FN}}$$

    Интуитивно метрика показывает долю найденных документов из всех релевантных. Чем меньше ложно отрицательных срабатываний, тем выше recall модели.

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

    Хорошее понимание происходящего даёт следующая картинка: 6_3.png (источник картинки)

    Recall@k, Precision@k

    Метрики Recall и Precision хорошо подходят для задачи поиска «документ d релевантен запросу q», когда из списка рекомендованных алгоритмом документов нас интересует только первый. Но не всегда алгоритм машинного обучения вынужден работать в таких жестких условиях. Может быть такое, что вполне достаточно, что релевантный документ попал в первые k рекомендованных. Например, в интерфейсе выдачи первые три подсказки видны всегда одновременно и вообще не очень понятно, какой у них порядок. Тогда более честной оценкой качества алгоритма будет «в выдаче D размера k по запросу q нашлись релевантные документы». Для расчёта метрики по всей выборке объединим все выдачи и рассчитаем precision, recall как обычно подокументно.

    F1-мера

    Как мы уже отмечали ранее, модели очень удобно сравнивать, когда их качество выражено одним числом. В случае пары Precision-Recall существует популярный способ скомпоновать их в одну метрику — взять их среднее гармоническое. Данный показатель эффективности исторически носит название F1-меры (F1-measure).

    $$
    color{#348FEA}{F_1 = frac{2}{frac{1}{Recall} + frac{1}{Precision}}} = $$

    $$ = 2 frac{Recall cdot Precision }{Recall + Precision} = frac
    {TP} {TP + frac{FP + FN}{2}}
    $$

    Стоит иметь в виду, что F1-мера предполагает одинаковую важность Precision и Recall, если одна из этих метрик для вас приоритетнее, то можно воспользоваться $F_{beta}$ мерой:

    $$
    F_{beta} = (beta^2 + 1) frac{Recall cdot Precision }{Recall + beta^2Precision}
    $$

    Бинарная классификация: вероятности классов

    Многие модели бинарной классификации устроены так, что класс объекта получается бинаризацией выхода классификатора по некоторому фиксированному порогу:

    $$fleft(x ; w, w_{0}right)=mathbb{I}left[g(x, w) > w_{0}right].$$

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

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

    Если же нашей целью является построение прогноза в терминах метки класса, то нам нужно учесть, что в зависимости от порога мы будем получать разные предсказания и разное качество на отложенной выборке. Так, чем ниже порог отсечения, тем больше объектов модель будет относить к положительному классу. Как в этом случае оценить качество модели?

    AUC

    Пусть мы хотим учитывать ошибки на объектах обоих классов. При уменьшении порога отсечения мы будем находить (правильно предсказывать) всё большее число положительных объектов, но также и неправильно предсказывать положительную метку на всё большем числе отрицательных объектов. Естественным кажется ввести две метрики TPR и FPR:

    TPR (true positive rate) – это полнота, доля положительных объектов, правильно предсказанных положительными:

    $$ TPR = frac{TP}{P} = frac{TP}{TP + FN} $$

    FPR (false positive rate) – это доля отрицательных объектов, неправильно предсказанных положительными:

    $$FPR = frac{FP}{N} = frac{FP}{FP + TN}$$

    Обе эти величины растут при уменьшении порога. Кривая в осях TPR/FPR, которая получается при варьировании порога, исторически называется ROC-кривой (receiver operating characteristics curve, сокращённо ROC curve). Следующий график поможет вам понять поведение ROC-кривой.

    Желтая и синяя кривые показывают распределение предсказаний классификатора на объектах положительного и отрицательного классов соответственно. То есть значения на оси X (на графике с двумя гауссианами) мы получаем из классификатора. Если классификатор идеальный (две кривые разделимы по оси X), то на правом графике мы получаем ROC-кривую (0,0)->(0,1)->(1,1) (убедитесь сами!), площадь под которой равна 1. Если классификатор случайный (предсказывает одинаковые метки положительным и отрицательным объектам), то мы получаем ROC-кривую (0,0)->(1,1), площадь под которой равна 0.5. Поэкспериментируйте с разными вариантами распределения предсказаний по классам и посмотрите, как меняется ROC-кривая.

    Чем лучше классификатор разделяет два класса, тем больше площадь (area under curve) под ROC-кривой – и мы можем использовать её в качестве метрики. Эта метрика называется AUC и она работает благодаря следующему свойству ROC-кривой:

    AUC равен доле пар объектов вида (объект класса 1, объект класса 0), которые алгоритм верно упорядочил, т.е. предсказание классификатора на первом объекте больше:

    $$
    color{#348FEA}{operatorname{AUC} = frac{sumlimits_{i = 1}^{N} sumlimits_{j = 1}^{N}mathbb{I}[y_i < y_j] I^{prime}[f(x_{i}) < f(x_{j})]}{sumlimits_{i = 1}^{N} sumlimits_{j = 1}^{N}mathbb{I}[y_i < y_j]}}
    $$

    $$
    I^{prime}left[f(x_{i}) < f(x_{j})right]=
    left{
    begin{array}{ll}
    0, & f(x_{i}) > f(x_{j}) \
    0.5 & f(x_{i}) = f(x_{j}) \
    1, & f(x_{i}) < f(x_{j})
    end{array}
    right.
    $$

    $$
    Ileft[y_{i}< y_{j}right]=
    left{
    begin{array}{ll}
    0, & y_{i} geq y_{j} \
    1, & y_{i} < y_{j}
    end{array}
    right.
    $$

    Чтобы детальнее разобраться, почему это так, советуем вам обратиться к материалам А.Г.Дьяконова.

    В каких случаях лучше отдать предпочтение этой метрике? Рассмотрим следующую задачу: некоторый сотовый оператор хочет научиться предсказывать, будет ли клиент пользоваться его услугами через месяц. На первый взгляд кажется, что задача сводится к бинарной классификации с метками 1, если клиент останется с компанией и $0$ – иначе.

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

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

    Утверждение выше может вызывать у вас желание использовать AUC в качестве метрики в задачах ранжирования, но мы призываем вас быть аккуратными.

    ПодробнееУтверждение выше может вызывать у вас желание использовать AUC в качестве метрики в задачах ранжирования, но мы призываем вас быть аккуратными.» details=»Продемонстрируем это на следующем примере: пусть наша выборка состоит из $9100$ объектов класса $0$ и $10$ объектов класса $1$, и модель расположила их следующим образом:

    $$underbrace{0 dots 0}_{9000} ~ underbrace{1 dots 1}_{10} ~ underbrace{0 dots 0}_{100}$$

    Тогда AUC будет близка к единице: количество пар правильно расположенных объектов будет порядка $90000$, в то время как общее количество пар порядка $91000$.

    Однако самыми высокими по вероятности положительного класса будут совсем не те объекты, которые мы ожидаем.

    Average Precision

    Будем постепенно уменьшать порог бинаризации. При этом полнота будет расти от $0$ до $1$, так как будет увеличиваться количество объектов, которым мы приписываем положительный класс (а количество объектов, на самом деле относящихся к положительному классу, очевидно, меняться не будет). Про точность же нельзя сказать ничего определённого, но мы понимаем, что скорее всего она будет выше при более высоком пороге отсечения (мы оставим только объекты, в которых модель «уверена» больше всего). Варьируя порог и пересчитывая значения Precision и Recall на каждом пороге, мы получим некоторую кривую примерно следующего вида:

    6_4.png (источник картинки)

    Рассмотрим среднее значение точности (оно равно площади под кривой точность-полнота):

    $$ text { AP }=int_{0}^{1} p(r) d r$$

    Получим показатель эффективности, который называется average precision. Как в случае матрицы ошибок мы переходили к скалярным показателям эффективности, так и в случае с кривой точность-полнота мы охарактеризовали ее в виде числа.

    Многоклассовая классификация

    Если классов становится больше двух, расчёт метрик усложняется. Если задача классификации на $K$ классов ставится как $K$ задач об отделении класса $i$ от остальных ($i=1,ldots,K$), то для каждой из них можно посчитать свою матрицу ошибок. Затем есть два варианта получения итогового значения метрики из $K$ матриц ошибок:

    1. Усредняем элементы матрицы ошибок (TP, FP, TN, FN) между бинарными классификаторами, например $TP = frac{1}{K}sum_{i=1}^{K}TP_i$. Затем по одной усреднённой матрице ошибок считаем Precision, Recall, F-меру. Это называют микроусреднением.
    2. Считаем Precision, Recall для каждого классификатора отдельно, а потом усредняем. Это называют макроусреднением.

    Порядок усреднения влияет на результат в случае дисбаланса классов. Показатели TP, FP, FN — это счётчики объектов. Пусть некоторый класс обладает маленькой мощностью (обозначим её $M$). Тогда значения TP и FN при классификации этого класса против остальных будут не больше $M$, то есть тоже маленькие. Про FP мы ничего уверенно сказать не можем, но скорее всего при дисбалансе классов классификатор не будет предсказывать редкий класс слишком часто, потому что есть большая вероятность ошибиться. Так что FP тоже мало. Поэтому усреднение первым способом сделает вклад маленького класса в общую метрику незаметным. А при усреднении вторым способом среднее считается уже для нормированных величин, так что вклад каждого класса будет одинаковым.

    Рассмотрим пример. Пусть есть датасет из объектов трёх цветов: желтого, зелёного и синего. Желтого и зелёного цветов почти поровну — 21 и 20 объектов соответственно, а синих объектов всего 4.

    6_5.png

    Модель по очереди для каждого цвета пытается отделить объекты этого цвета от объектов оставшихся двух цветов. Результаты классификации проиллюстрированы матрицей ошибок. Модель «покрасила» в жёлтый 25 объектов, 20 из которых были действительно жёлтыми (левый столбец матрицы). В синий был «покрашен» только один объект, который на самом деле жёлтый (средний столбец матрицы). В зелёный — 19 объектов, все на самом деле зелёные (правый столбец матрицы).

    6_6.png

    Посчитаем Precision классификации двумя способами:

    1. С помощью микроусреднения получаем $$
      text{Precision} = frac{dfrac{1}{3}left(20 + 0 + 19right)}{dfrac{1}{3}left(20 + 0 + 19right) + dfrac{1}{3}left(5 + 1 + 0right)} = 0.87
      $$
    2. С помощью макроусреднения получаем $$
      text{Precision} = dfrac{1}{3}left( frac{20}{20 + 5} + frac{0}{0 + 1} + frac{19}{19 + 0}right) = 0.6
      $$

    Видим, что макроусреднение лучше отражает тот факт, что синий цвет, которого в датасете было совсем мало, модель практически игнорирует.

    Как оптимизировать метрики классификации?

    Пусть мы выбрали, что метрика качества алгоритма будет $F(a(X), Y)$. Тогда мы хотим обучить модель так, чтобы $F$ на валидационной выборке была минимальная/максимальная. Лучший способ добиться минимизации метрики $F$ — оптимизировать её напрямую, то есть выбрать в качестве функции потерь ту же $F(a(X), Y)$. К сожалению, это не всегда возможно. Рассмотрим, как оптимизировать метрики иначе.

    Метрики precision и recall невозможно оптимизировать напрямую, потому что эти метрики нельзя рассчитать на одном объекте, а затем усреднить. Они зависят от того, какими были правильная метка класса и ответ алгоритма на всех объектах. Чтобы понять, как оптимизировать precision, recall, рассмотрим, как расчитать эти метрики на отложенной выборке. Пусть модель обучена на стандартную для классификации функцию потерь (LogLoss). Для получения меток класса специалист по машинному обучению сначала применяет на объектах модель и получает вещественные предсказания модели ($p_i in left(0, 1right)$). Затем предсказания бинаризуются по порогу, выбранному специалистом: если предсказание на объекте больше порога, то метка класса 1 (или «положительная»), если меньше — 0 (или «отрицательная»). Рассмотрим, что будет с метриками precision, recall в крайних положениях порога.

    1. Пусть порог равен нулю. Тогда всем объектам будет присвоена положительная метка. Следовательно, все объекты будут либо TP, либо FP, потому что отрицательных предсказаний нет, $TP + FP = N$, где $N$ — размер выборки. Также все объекты, у которых метка на самом деле 1, попадут в TP. По формуле точность $text{Precision} = frac{TP}{TP + FP} = frac1N sum_{i = 1}^N mathbb{I} left[ y_i = 1 right]$ равна среднему таргету в выборке. А полнота $text{Recall} = frac{TP}{TP + FN} = frac{TP}{TP + 0} = 1$ равна единице.
    2. Пусть теперь порог равен единице. Тогда ни один объект не будет назван положительным, $TP = FP = 0$. Все объекты с меткой класса 1 попадут в FN. Если есть хотя бы один такой объект, то есть $FN ne 0$, будет верна формула $text{Recall} = frac{TP}{TP + FN} = frac{0}{0+ FN} = 0$. То есть при пороге единица, полнота равна нулю. Теперь посмотрим на точность. Формула для Precision состоит только из счётчиков положительных ответов модели (TP, FP). При единичном пороге они оба равны нулю, $text{Precision} = frac{TP}{TP + FP} = frac{0}{0 + 0}$то есть при единичном пороге точность неопределена. Пусть мы отступили чуть-чуть назад по порогу, чтобы хотя бы несколько объектов были названы моделью положительными. Скорее всего это будут самые «простые» объекты, которые модель распознает хорошо, потому что её предсказание близко к единице. В этом предположении $FP approx 0$. Тогда точность $text{Precision} = frac{TP}{TP + FP} approx frac{TP}{TP + 0} approx 1$ будет близка к единице.

    Изменяя порог, между крайними положениями, получим графики Precision и Recall, которые выглядят как-то так:

    6_7.png

    Recall меняется от единицы до нуля, а Precision от среднего тагрета до какого-то другого значения (нет гарантий, что график монотонный).

    Итого оптимизация precision и recall происходит так:

    1. Модель обучается на стандартную функцию потерь (например, LogLoss).
    2. Используя вещественные предсказания на валидационной выборке, перебирая разные пороги от 0 до 1, получаем графики метрик в зависимости от порога.
    3. Выбираем нужное сочетание точности и полноты.

    Пусть теперь мы хотим максимизировать метрику AUC. Стандартный метод оптимизации, градиентный спуск, предполагает, что функция потерь дифференцируема. AUC этим качеством не обладает, то есть мы не можем оптимизировать её напрямую. Поэтому для метрики AUC приходится изменять оптимизационную задачу. Метрика AUC считает долю верно упорядоченных пар. Значит от исходной выборки можно перейти к выборке упорядоченных пар объектов. На этой выборке ставится задача классификации: метка класса 1 соответствует правильно упорядоченной паре, 0 — неправильно. Новой метрикой становится accuracy — доля правильно классифицированных объектов, то есть доля правильно упорядоченных пар. Оптимизировать accuracy можно по той же схеме, что и precision, recall: обучаем модель на LogLoss и предсказываем вероятности положительной метки у объекта выборки, считаем accuracy для разных порогов по вероятности и выбираем понравившийся.

    Регрессия

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

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

    Мы видим, что иногда метка это целое число, а иногда произвольное вещественное число. Обычно случаи целочисленных меток моделируют так, словно это просто обычное вещественное число. При таком подходе может оказаться так, что модель A лучше модели B по некоторой метрике, но при этом предсказания у модели A могут быть не целыми. Если в бизнес-задаче ожидается именно целочисленный ответ, то и оценивать нужно огрубление.

    Общая рекомендация такова: оценивайте весь каскад решающих правил: и те «внутренние», которые вы получаете в результате обучения, и те «итоговые», которые вы отдаёте бизнес-заказчику.

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

    Итак, напомним постановку задачи регрессии: нам нужно по обучающей выборке ${(x_i, y_i)}_{i=1}^N$, где $y_i in mathbb{R}$ построить модель f(x).

    Величину $ e_i = f(x_i) — y_i $ называют ошибкой на объекте i или регрессионным остатком.

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

    MSE, RMSE, $R^2$

    MSE – одна из самых популярных метрик в задаче регрессии. Она уже знакома вам, т.к. применяется в качестве функции потерь (или входит в ее состав) во многих ранее рассмотренных методах.

    $$ MSE(y^{true}, y^{pred}) = frac1Nsum_{i=1}^{N} (y_i — f(x_i))^2 $$

    Иногда для того, чтобы показатель эффективности MSE имел размерность исходных данных, из него извлекают квадратный корень и получают показатель эффективности RMSE.

    MSE неограничен сверху, и может быть нелегко понять, насколько «хорошим» или «плохим» является то или иное его значение. Чтобы появились какие-то ориентиры, делают следующее:

    • Берут наилучшее константное предсказание с точки зрения MSE — среднее арифметическое меток $bar{y}$. При этом чтобы не было подглядывания в test, среднее нужно вычислять по обучающей выборке

    • Рассматривают в качестве показателя ошибки:

      $$ R^2 = 1 — frac{sum_{i=1}^{N} (y_i — f(x_i))^2}{sum_{i=1}^{N} (y_i — bar{y})^2}.$$

      У идеального решающего правила $R^2$ равен $1$, у наилучшего константного предсказания он равен $0$ на обучающей выборке. Можно заметить, что $R^2$ показывает, какая доля дисперсии таргетов (знаменатель) объяснена моделью.

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

    Пусть теперь мы хотим использовать MSE для оценки наших регрессионных моделей. Если большие ошибки для нас действительно неприемлемы, то квадратичный штраф за них — очень полезное свойство (и его даже можно усиливать, повышая степень, в которую мы возводим ошибку на объекте). Однако если в наших тестовых данных присутствуют выбросы, то нам будет сложно объективно сравнить модели между собой: ошибки на выбросах будет маскировать различия в ошибках на основном множестве объектов.

    Таким образом, если мы будем сравнивать две модели при помощи MSE, у нас будет выигрывать та модель, у которой меньше ошибка на объектах-выбросах, а это, скорее всего, не то, чего требует от нас наша бизнес-задача.

    История из жизни про бананы и квадратичный штраф за ошибкуИз-за неверно введенных данных метка одного из объектов оказалась в 100 раз больше реального значения. Моделировалась величина при помощи градиентного бустинга над деревьями решений. Функция потерь была MSE.

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

    Было решено проверить гипотезу, что был выброс в данных для обучения. Так оно и оказалось: всего одна точка давала такую потерю на объекте, что алгоритм обучения решил, что лучше переобучиться под этот выброс, чем смириться с большим штрафом на этом объекте. А в эксплуатации у нас возникли точки, которые плюс-минус попадали в такие же листья ансамбля, что и объект-выброс.

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

    Аналогично, можно поступать и в случае, когда мы разрабатываем метрику качества: менее жёстко штрафовать за большие отклонения от истинного таргета.

    MAE

    Использовать RMSE для сравнения моделей на выборках с большим количеством выбросов может быть неудобно. В таких случаях прибегают к также знакомой вам в качестве функции потери метрике MAE (mean absolute error):

    $$ MAE(y^{true}, y^{pred}) = frac{1}{N}sum_{i=1}^{N} left|y_i — f(x_i)right| $$

    Метрики, учитывающие относительные ошибки

    И MSE и MAE считаются как сумма абсолютных ошибок на объектах.

    Рассмотрим следующую задачу: мы хотим спрогнозировать спрос товаров на следующий месяц. Пусть у нас есть два продукта: продукт A продаётся в количестве 100 штук, а продукт В в количестве 10 штук. И пусть базовая модель предсказывает количество продаж продукта A как 98 штук, а продукта B как 8 штук. Ошибки на этих объектах добавляют 4 штрафных единицы в MAE.

    И есть 2 модели-кандидата на улучшение. Первая предсказывает товар А 99 штук, а товар B 8 штук. Вторая предсказывает товар А 98 штук, а товар B 9 штук.

    Обе модели улучшают MAE базовой модели на 1 единицу. Однако, с точки зрения бизнес-заказчика вторая модель может оказаться предпочтительнее, т.к. предсказание продажи редких товаров может быть приоритетнее. Один из способов учесть такое требование – рассматривать не абсолютную, а относительную ошибку на объектах.

    MAPE, SMAPE

    Когда речь заходит об относительных ошибках, сразу возникает вопрос: что мы будем ставить в знаменатель?

    В метрике MAPE (mean absolute percentage error) в знаменатель помещают целевое значение:

    $$ MAPE(y^{true}, y^{pred}) = frac{1}{N} sum_{i=1}^{N} frac{ left|y_i — f(x_i)right|}{left|y_iright|} $$

    С особым случаем, когда в знаменателе оказывается $0$, обычно поступают «инженерным» способом: или выдают за непредсказание $0$ на таком объекте большой, но фиксированный штраф, или пытаются застраховаться от подобного на уровне формулы и переходят к метрике SMAPE (symmetric mean absolute percentage error):

    $$ SMAPE(y^{true}, y^{pred}) = frac{1}{N} sum_{i=1}^{N} frac{ 2 left|y_i — f(x_i)right|}{y_i + f(x_i)} $$

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

    Таким переходом от абсолютных ошибок на объекте к относительным мы сделали объекты в тестовой выборке равнозначными: даже если мы делаем абсурдно большое предсказание, на фоне которого истинная метка теряется, мы получаем штраф за этот объект порядка 1 в случае MAPE и 2 в случае SMAPE.

    WAPE

    Как и любая другая метрика, MAPE имеет свои границы применимости: например, она плохо справляется с прогнозом спроса на товары с прерывистыми продажами. Рассмотрим такой пример:

    Понедельник Вторник Среда
    Прогноз 55 2 50
    Продажи 50 1 50
    MAPE 10% 100% 0%

    Среднее MAPE – 36.7%, что не очень отражает реальную ситуацию, ведь два дня мы предсказывали с хорошей точностью. В таких ситуациях помогает WAPE (weighted average percentage error):

    $$ WAPE(y^{true}, y^{pred}) = frac{sum_{i=1}^{N} left|y_i — f(x_i)right|}{sum_{i=1}^{N} left|y_iright|} $$

    Если мы предсказываем идеально, то WAPE = 0, если все предсказания отдаём нулевыми, то WAPE = 1.

    В нашем примере получим WAPE = 5.9%

    RMSLE

    Альтернативный способ уйти от абсолютных ошибок к относительным предлагает метрика RMSLE (root mean squared logarithmic error):

    $$ RMSLE(y^{true}, y^{pred}| c) = sqrt{ frac{1}{N} sum_{i=1}^N left(vphantom{frac12}log{left(y_i + c right)} — log{left(f(x_i) + c right)}right)^2 } $$

    где нормировочная константа $c$ вводится искусственно, чтобы не брать логарифм от нуля. Также по построению видно, что метрика пригодна лишь для неотрицательных меток.

    Веса в метриках

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

    Доля предсказаний с абсолютными ошибками больше, чем d

    Еще одним способом охарактеризовать качество модели в задаче регрессии является доля предсказаний с абсолютными ошибками больше заданного порога $d$:

    $$frac{1}{N} sum_{i=1}^{N} mathbb{I}left[ left| y_i — f(x_i) right| > d right] $$

    Например, можно считать, что прогноз погоды сбылся, если ошибка предсказания составила меньше 1/2/3 градусов. Тогда рассматриваемая метрика покажет, в какой доле случаев прогноз не сбылся.

    Как оптимизировать метрики регрессии?

    Пусть мы выбрали, что метрика качества алгоритма будет $F(a(X), Y)$. Тогда мы хотим обучить модель так, чтобы F на валидационной выборке была минимальная/максимальная. Аналогично задачам классификации лучший способ добиться минимизации метрики $F$ — выбрать в качестве функции потерь ту же $F(a(X), Y)$. К счастью, основные метрики для регрессии: MSE, RMSE, MAE можно оптимизировать напрямую. С формальной точки зрения MAE не дифференцируема, так как там присутствует модуль, чья производная не определена в нуле. На практике для этого выколотого случая в коде можно возвращать ноль.

    Для оптимизации MAPE придётся изменять оптимизационную задачу. Оптимизацию MAPE можно представить как оптимизацию MAE, где объектам выборки присвоен вес $frac{1}{vert y_ivert}$.

    From Wikipedia, the free encyclopedia

    Word error rate (WER) is a common metric of the performance of a speech recognition or machine translation system.

    The general difficulty of measuring performance lies in the fact that the recognized word sequence can have a different length from the reference word sequence (supposedly the correct one). The WER is derived from the Levenshtein distance, working at the word level instead of the phoneme level. The WER is a valuable tool for comparing different systems as well as for evaluating improvements within one system. This kind of measurement, however, provides no details on the nature of translation errors and further work is therefore required to identify the main source(s) of error and to focus any research effort.

    This problem is solved by first aligning the recognized word sequence with the reference (spoken) word sequence using dynamic string alignment. Examination of this issue is seen through a theory called the power law that states the correlation between perplexity and word error rate.[1]

    Word error rate can then be computed as:

    {displaystyle {mathit {WER}}={frac {S+D+I}{N}}={frac {S+D+I}{S+D+C}}}

    where

    • S is the number of substitutions,
    • D is the number of deletions,
    • I is the number of insertions,
    • C is the number of correct words,
    • N is the number of words in the reference (N=S+D+C)

    The intuition behind ‘deletion’ and ‘insertion’ is how to get from the reference to the hypothesis. So if we have the reference «This is wikipedia» and hypothesis «This _ wikipedia», we call it a deletion.

    When reporting the performance of a speech recognition system, sometimes word accuracy (WAcc) is used instead:

    {displaystyle {mathit {WAcc}}=1-{mathit {WER}}={frac {N-S-D-I}{N}}={frac {C-I}{N}}}

    Note that since N is the number of words in the reference, the word error rate can be larger than 1.0, and thus, the word accuracy can be smaller than 0.0.

    Experiments[edit]

    It is commonly believed that a lower word error rate shows superior accuracy in recognition of speech, compared with a higher word error rate. However, at least one study has shown that this may not be true. In a Microsoft Research experiment, it was shown that, if people were trained under «that matches the optimization objective for understanding», (Wang, Acero and Chelba, 2003) they would show a higher accuracy in understanding of language than other people who demonstrated a lower word error rate, showing that true understanding of spoken language relies on more than just high word recognition accuracy.[2]

    Other metrics[edit]

    One problem with using a generic formula such as the one above, however, is that no account is taken of the effect that different types of error may have on the likelihood of successful outcome, e.g. some errors may be more disruptive than others and some may be corrected more easily than others. These factors are likely to be specific to the syntax being tested. A further problem is that, even with the best alignment, the formula cannot distinguish a substitution error from a combined deletion plus insertion error.

    Hunt (1990) has proposed the use of a weighted measure of performance accuracy where errors of substitution are weighted at unity but errors of deletion and insertion are both weighted only at 0.5, thus:

    {mathit  {WER}}={frac  {S+0.5D+0.5I}{N}}

    There is some debate, however, as to whether Hunt’s formula may properly be used to assess the performance of a single system, as it was developed as a means of comparing more fairly competing candidate systems. A further complication is added by whether a given syntax allows for error correction and, if it does, how easy that process is for the user. There is thus some merit to the argument that performance metrics should be developed to suit the particular system being measured.

    Whichever metric is used, however, one major theoretical problem in assessing the performance of a system is deciding whether a word has been “mis-pronounced,” i.e. does the fault lie with the user or with the recogniser. This may be particularly relevant in a system which is designed to cope with non-native speakers of a given language or with strong regional accents.

    The pace at which words should be spoken during the measurement process is also a source of variability between subjects, as is the need for subjects to rest or take a breath. All such factors may need to be controlled in some way.

    For text dictation it is generally agreed that performance accuracy at a rate below 95% is not acceptable, but this again may be syntax and/or domain specific, e.g. whether there is time pressure on users to complete the task, whether there are alternative methods of completion, and so on.

    The term «Single Word Error Rate» is sometimes referred to as the percentage of incorrect recognitions for each different word in the system vocabulary.

    Edit distance[edit]

    The word error rate may also be referred to as the length normalized edit distance.[3] The normalized edit distance between X and Y, d( X, Y ) is defined as the minimum of W( P ) / L ( P ), where P is an editing path between X and Y, W ( P ) is the sum of the weights of the elementary edit operations of P, and L(P) is the number of these operations (length of P).[4]

    See also[edit]

    • BLEU
    • F-Measure
    • METEOR
    • NIST (metric)
    • ROUGE (metric)

    References[edit]

    Notes[edit]

    1. ^ Klakow, Dietrich; Jochen Peters (September 2002). «Testing the correlation of word error rate and perplexity». Speech Communication. 38 (1–2): 19–28. doi:10.1016/S0167-6393(01)00041-3. ISSN 0167-6393.
    2. ^ Wang, Y.; Acero, A.; Chelba, C. (2003). Is Word Error Rate a Good Indicator for Spoken Language Understanding Accuracy. IEEE Workshop on Automatic Speech Recognition and Understanding. St. Thomas, US Virgin Islands. CiteSeerX 10.1.1.89.424.
    3. ^ Nießen et al.(2000)
    4. ^ Computation of Normalized Edit Distance and Application:AndrCs Marzal and Enrique Vidal

    Other sources[edit]

    • McCowan et al. 2005: On the Use of Information Retrieval Measures for Speech Recognition Evaluation
    • Hunt, M.J., 1990: Figures of Merit for Assessing Connected Word Recognisers (Speech Communication, 9, 1990, pp 239-336)
    • Zechner, K., Waibel, A.Minimizing Word Error Rate in Textual Summaries of Spoken Language

    Для того чтобы модель линейной регрессии можно было применять на практике необходимо сначала оценить её качество. Для этих целей предложен ряд показателей, каждый из которых предназначен для использования в различных ситуациях и имеет свои особенности применения (линейные и нелинейные, устойчивые к аномалиям, абсолютные и относительные, и т.д.). Корректный выбор меры для оценки качества модели является одним из важных факторов успеха в решении задач анализа данных.

    • Среднеквадратичная ошибка (Mean Squared Error)
    • Корень из среднеквадратичной ошибки (Root Mean Squared Error)
    • Среднеквадратичная ошибка в процентах (Mean Squared Percentage Error)
    • Cредняя абсолютная ошибка (Mean Absolute Error)
    • Средняя абсолютная процентная ошибка (Mean Absolute Percentage Error)
    • Cимметричная средняя абсолютная процентная ошибка (Symmetric Mean Absolute Percentage Error)
    • Средняя абсолютная масштабированная ошибка (Mean absolute scaled error)
    • Средняя относительная ошибка (Mean Relative Error)
    • Среднеквадратичная логарифмическая ошибка (Root Mean Squared Logarithmic Error
    • R-квадрат
    • Скорректированный R-квадрат
    • Сравнение метрик

    «Хорошая» аналитическая модель должна удовлетворять двум, зачастую противоречивым, требованиям — как можно лучше соответствовать данным и при этом быть удобной для интерпретации пользователем. Действительно, повышение соответствия модели данным как правило связано с её усложнением (в случае регрессии — увеличением числа входных переменных модели). А чем сложнее модель, тем ниже её интерпретируемость.

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

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

    • Среднеквадратичная ошибка (MSE).
    • Корень из среднеквадратичной ошибки (RMSE).
    • Среднеквадратичная ошибка в процентах (MSPE).
    • Средняя абсолютная ошибка (MAE).
    • Средняя абсолютная ошибка в процентах (MAPE).
    • Cимметричная средняя абсолютная процентная ошибка (SMAPE).
    • Средняя абсолютная масштабированная ошибка (MASE)
    • Средняя относительная ошибка (MRE).
    • Среднеквадратичная логарифмическая ошибка (RMSLE).
    • Коэффициент детерминации R-квадрат.
    • Скорректированный коэффициент детеминации.

    Прежде чем перейти к изучению метрик качества, введём некоторые базовые понятия, которые нам в этом помогут. Для этого рассмотрим рисунок.

    Рисунок 1. Линейная регрессия

    Наклонная прямая представляет собой линию регрессии с переменной, на которой расположены точки, соответствующие предсказанным значениям выходной переменной widehat{y} (кружки синего цвета). Оранжевые кружки представляют фактические (наблюдаемые) значения y . Расстояния между ними и линией регрессии — это ошибка предсказания модели y-widehat{y} (невязка, остатки). Именно с её использованием вычисляются все приведённые в статье меры качества.

    Горизонтальная линия представляет собой модель простого среднего, где коэффициент при независимой переменной x равен нулю, и остаётся только свободный член b, который становится равным среднему арифметическому фактических значений выходной переменной, т.е. b=overline{y}. Очевидно, что такая модель для любого значения входной переменной будет выдавать одно и то же значение выходной — overline{y}.

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

    MSE

    Среднеквадратичная ошибка (Mean Squared Error) применяется в случаях, когда требуется подчеркнуть большие ошибки и выбрать модель, которая дает меньше именно больших ошибок. Большие значения ошибок становятся заметнее за счет квадратичной зависимости.

    Действительно, допустим модель допустила на двух примерах ошибки 5 и 10. В абсолютном выражении они отличаются в два раза, но если их возвести в квадрат, получив 25 и 100 соответственно, то отличие будет уже в четыре раза. Таким образом модель, которая обеспечивает меньшее значение MSE допускает меньше именно больших ошибок.

    MSE рассчитывается по формуле:

    MSE=frac{1}{n}sumlimits_{i=1}^{n}(y_{i}-widehat{y}_{i})^{2},

    где n — количество наблюдений по которым строится модель и количество прогнозов, y_{i} — фактические значение зависимой переменной для i-го наблюдения, widehat{y}_{i} — значение зависимой переменной, предсказанное моделью.

    Таким образом, можно сделать вывод, что MSE настроена на отражение влияния именно больших ошибок на качество модели.

    Недостатком использования MSE является то, что если на одном или нескольких неудачных примерах, возможно, содержащих аномальные значения будет допущена значительная ошибка, то возведение в квадрат приведёт к ложному выводу, что вся модель работает плохо. С другой стороны, если модель даст небольшие ошибки на большом числе примеров, то может возникнуть обратный эффект — недооценка слабости модели.

    RMSE

    Корень из среднеквадратичной ошибки (Root Mean Squared Error) вычисляется просто как квадратный корень из MSE:

    RMSE=sqrt{frac{1}{n}sumlimits_{i=1}^{n}(y_{i}-widehat{y_{i}})^{2}}

    MSE и RMSE могут минимизироваться с помощью одного и того же функционала, поскольку квадратный корень является неубывающей функцией. Например, если у нас есть два набора результатов работы модели, A и B, и MSE для A больше, чем MSE для B, то мы можем быть уверены, что RMSE для A больше RMSE для B. Справедливо и обратное: если MSE(A)<MSE(B), то и RMSE(A)<RMSE(B).

    Следовательно, сравнение моделей с помощью RMSE даст такой же результат, что и для MSE. Однако с MSE работать несколько проще, поэтому она более популярна у аналитиков. Кроме этого, имеется небольшая разница между этими двумя ошибками при оптимизации с использованием градиента:

    frac{partial RMSE}{partial widehat{y}_{i}}=frac{1}{2sqrt{MSE}}frac{partial MSE}{partial widehat{y}_{i}}

    Это означает, что перемещение по градиенту MSE эквивалентно перемещению по градиенту RMSE, но с другой скоростью, и скорость зависит от самой оценки MSE. Таким образом, хотя RMSE и MSE близки с точки зрения оценки моделей, они не являются взаимозаменяемыми при использовании градиента для оптимизации.

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

    MSPE

    Среднеквадратичная ошибка в процентах (Mean Squared Percentage Error) представляет собой относительную ошибку, где разность между наблюдаемым и фактическим значениями делится на наблюдаемое значение и выражается в процентах:

    MSPE=frac{100}{n}sumlimits_{i=1}^{n}left ( frac{y_{i}-widehat{y}_{i}}{y_{i}} right )^{2}

    Проблемой при использовании MSPE является то, что, если наблюдаемое значение выходной переменной равно 0, значение ошибки становится неопределённым.

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

    MAE

    Cредняя абсолютная ошибка (Mean Absolute Error) вычисляется следующим образом:

    MAE=frac{1}{n}sumlimits_{i=1}^{n}left | y_{i}-widehat{y}_{i} right |

    Т.е. MAE рассчитывается как среднее абсолютных разностей между наблюдаемым и предсказанным значениями. В отличие от MSE и RMSE она является линейной оценкой, а это значит, что все ошибки в среднем взвешены одинаково. Например, разница между 0 и 10 будет вдвое больше разницы между 0 и 5. Для MSE и RMSE, как отмечено выше, это не так.

    Поэтому MAE широко используется, например, в финансовой сфере, где ошибка в 10 долларов должна интерпретироваться как в два раза худшая, чем ошибка в 5 долларов.

    MAPE

    Средняя абсолютная процентная ошибка (Mean Absolute Percentage Error) вычисляется следующим образом:

    MAPE=frac{100}{n}sumlimits_{i=1}^{n}frac{left | y_{i}-widehat{y_{i}} right |}{left | y_{i} right |}

    Эта ошибка не имеет размерности и очень проста в интерпретации. Её можно выражать как в долях, так и в процентах. Если получилось, например, что MAPE=11.4, то это говорит о том, что ошибка составила 11.4% от фактического значения.

    SMAPE

    Cимметричная средняя абсолютная процентная ошибка (Symmetric Mean Absolute Percentage Error) — это мера точности, основанная на процентных (или относительных) ошибках. Обычно определяется следующим образом:

    SMAPE=frac{100}{n}sumlimits_{i=1}^{n}frac{left | y_{i}-widehat{y_{i}} right |}{(left | y_{i} right |+left | widehat{y}_{i} right |)/2}

    Т.е. абсолютная разность между наблюдаемым и предсказанным значениями делится на полусумму их модулей. В отличие от обычной MAPE, симметричная имеет ограничение на диапазон значений. В приведённой формуле он составляет от 0 до 200%. Однако, поскольку диапазон от 0 до 100% гораздо удобнее интерпретировать, часто используют формулу, где отсутствует деление знаменателя на 2.

    Одной из возможных проблем SMAPE является неполная симметрия, поскольку в разных диапазонах ошибка вычисляется неодинаково. Это иллюстрируется следующим примером: если y_{i}=100 и widehat{y}_{i}=110, то SMAPE=4.76, а если y_{i}=100 и widehat{y}_{i}=90, то SMAPE=5.26.

    Ограничение SMAPE заключается в том, что, если наблюдаемое или предсказанное значение равно 0, ошибка резко возрастет до верхнего предела (200% или 100%).

    MASE

    Средняя абсолютная масштабированная ошибка (Mean absolute scaled error) — это показатель, который позволяет сравнивать две модели. Если поместить MAE для новой модели в числитель, а MAE для исходной модели в знаменатель, то полученное отношение и будет равно MASE. Если значение MASE меньше 1, то новая модель работает лучше, если MASE равно 1, то модели работают одинаково, а если значение MASE больше 1, то исходная модель работает лучше, чем новая модель. Формула для расчета MASE имеет вид:

    MASE=frac{MAE_{i}}{MAE_{j}}

    MASE симметрична и устойчива к выбросам.

    MRE

    Средняя относительная ошибка (Mean Relative Error) вычисляется по формуле:

    MRE=frac{1}{n}sumlimits_{i=1}^{n}frac{left | y_{i}-widehat{y}_{i}right |}{left | y_{i} right |}

    Несложно увидеть, что данная мера показывает величину абсолютной ошибки относительно фактического значения выходной переменной (поэтому иногда эту ошибку называют также средней относительной абсолютной ошибкой, MRAE). Действительно, если значение абсолютной ошибки, скажем, равно 10, то сложно сказать много это или мало. Например, относительно значения выходной переменной, равного 20, это составляет 50%, что достаточно много. Однако относительно значения выходной переменной, равного 100, это будет уже 10%, что является вполне нормальным результатом.

    Очевидно, что при вычислении MRE нельзя применять наблюдения, в которых y_{i}=0.

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

    RMSLE

    Среднеквадратичная логарифмическая ошибка (Root Mean Squared Logarithmic Error) представляет собой RMSE, вычисленную в логарифмическом масштабе:

    RMSLE=sqrt{frac{1}{n}sumlimits_{i=1}^{n}(log(widehat{y}_{i}+1)-log{(y_{i}+1}))^{2}}

    Константы, равные 1, добавляемые в скобках, необходимы чтобы не допустить обращения в 0 выражения под логарифмом, поскольку логарифм нуля не существует.

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

    R-квадрат

    Перечисленные выше ошибки не так просто интерпретировать. Действительно, просто зная значение средней абсолютной ошибки, скажем, равное 10, мы сразу не можем сказать хорошая это ошибка или плохая, и что нужно сделать чтобы улучшить модель.

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

    Именно такой мерой и является коэффициент детерминации (Coefficient of determination), который показывает долю дисперсии зависимой переменной, объяснённой с помощью регрессионной модели. Наиболее общей формулой для вычисления коэффициента детерминации является следующая:

    R^{2}=1-frac{sumlimits_{i=1}^{n}(widehat{y}_{i}-y_{i})^{2}}{sumlimits_{i=1}^{n}({overline{y}}_{i}-y_{i})^{2}}

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

    Главным преимуществом коэффициента детерминации перед мерами, основанными на ошибках, является его инвариантность к масштабу данных. Кроме того, он всегда изменяется в диапазоне от −∞ до 1. При этом значения близкие к 1 указывают на высокую степень соответствия модели данным. Очевидно, что это имеет место, когда отношение в формуле стремится к 0, т.е. ошибка модели с переменными намного меньше ошибки модели с константой. R^{2}=0 показывает, что между независимой и зависимой переменными модели имеет место функциональная зависимость.

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

    Кроме этого, бывают ситуации, когда коэффициент R^{2} принимает отрицательные значения (обычно небольшие). Это произойдёт, если ошибка модели среднего становится меньше ошибки модели с переменной. В этом случае оказывается, что добавление в модель с константой некоторой переменной только ухудшает её (т.е. регрессионная модель с переменной работает хуже, чем предсказание с помощью простой средней).

    На практике используют следующую шкалу оценок. Модель, для которой R^{2}>0.5, является удовлетворительной. Если R^{2}>0.8, то модель рассматривается как очень хорошая. Значения, меньшие 0.5 говорят о том, что модель плохая.

    Скорректированный R-квадрат

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

    В связи с этим возникают две проблемы. Первая заключается в том, что не все переменные, добавляемые в модель, могут значимо увеличивать её точность, но при этом всегда увеличивают её сложность. Вторая проблема — с помощью коэффициента детерминации нельзя сравнивать модели с разным числом переменных. Чтобы преодолеть эти проблемы используют альтернативные показатели, одним из которых является скорректированный коэффициент детерминации (Adjasted coefficient of determinftion).

    Скорректированный коэффициент детерминации даёт возможность сравнивать модели с разным числом переменных так, чтобы их число не влияло на статистику R^{2}, и накладывает штраф за дополнительно включённые в модель переменные. Вычисляется по формуле:

    R_{adj}^{2}=1-frac{sumlimits_{i=1}^{n}(widehat{y}_{i}-y_{i})^{2}/(n-k)}{sumlimits_{i=1}^{n}({overline{y}}_{i}-y_{i})^{2}/(n-1)}

    где n — число наблюдений, на основе которых строится модель, k — количество переменных в модели.

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

    Сравнение метрик

    Резюмируем преимущества и недостатки каждой приведённой метрики в следующей таблице:

    Мера Сильные стороны Слабые стороны
    MSE Позволяет подчеркнуть большие отклонения, простота вычисления. Имеет тенденцию занижать качество модели, чувствительна к выбросам. Сложность интерпретации из-за квадратичной зависимости.
    RMSE Простота интерпретации, поскольку измеряется в тех же единицах, что и целевая переменная. Имеет тенденцию занижать качество модели, чувствительна к выбросам.
    MSPE Нечувствительна к выбросам. Хорошо интерпретируема, поскольку имеет линейный характер. Поскольку вклад всех ошибок отдельных наблюдений взвешивается одинаково, не позволяет подчёркивать большие и малые ошибки.
    MAPE Является безразмерной величиной, поэтому её интерпретация не зависит от предметной области. Нельзя использовать для наблюдений, в которых значения выходной переменной равны нулю.
    SMAPE Позволяет корректно работать с предсказанными значениями независимо от того больше они фактического, или меньше. Приближение к нулю фактического или предсказанного значения приводит к резкому росту ошибки, поскольку в знаменателе присутствует как фактическое, так и предсказанное значения.
    MASE Не зависит от масштаба данных, является симметричной: положительные и отрицательные отклонения от фактического значения учитываются одинаково. Устойчива к выбросам. Позволяет сравнивать модели. Сложность интерпретации.
    MRE Позволяет оценить величину ошибки относительно значения целевой переменной. Неприменима для наблюдений с нулевым значением выходной переменной.
    RMSLE Логарифмирование позволяет сделать величину ошибки более устойчивой, когда разность между фактическим и предсказанным значениями различается на порядок и выше Может быть затруднена интерпретация из-за нелинейности.
    R-квадрат Универсальность, простота интерпретации. Возрастает даже при включении в модель бесполезных переменных. Плохо работает когда входные переменные зависимы.
    R-квадрат скорр. Корректно отражает вклад каждой переменной в модель. Плохо работает, когда входные переменные зависимы.

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

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

    Другие материалы по теме:

    Отбор переменных в моделях линейной регрессии

    Репрезентативность выборочных данных

    Логистическая регрессия и ROC-анализ — математический аппарат

    Sample Percent Error Calculation

    ThoughtCo / Nusha Ashjaee

    Updated on November 02, 2020

    Percent error or percentage error expresses as a percentage the difference between an approximate or measured value and an exact or known value. It is used in science to report the difference between a measured or experimental value and a true or exact value. Here is how to calculate percent error, with an example calculation.

    Key Points: Percent Error

    • The purpose of a percent error calculation is to gauge how close a measured value is to a true value.
    • Percent error (percentage error) is the difference between an experimental and theoretical value, divided by the theoretical value, multiplied by 100 to give a percent.
    • In some fields, percent error is always expressed as a positive number. In others, it is correct to have either a positive or negative value. The sign may be kept to determine whether recorded values consistently fall above or below expected values.
    • Percent error is one type of error calculation. Absolute and relative error are two other common calculations. Percent error is part of a comprehensive error analysis.
    • The keys to reporting percent error correctly are to know whether or not to drop the sign (positive or negative) on the calculation and to report the value using the correct number of significant figures.

    Percent Error Formula

    Percent error is the difference between a measured or experiment value and an accepted or known value, divided by the known value, multiplied by 100%.

    For many applications, percent error is always expressed as a positive value. The absolute value of the error is divided by an accepted value and given as a percent.

    |accepted value — experimental value| accepted value x 100%

    For chemistry and other sciences, it is customary to keep a negative value, should one occur. Whether error is positive or negative is important. For example, you would not expect to have positive percent error comparing actual to theoretical yield in a chemical reaction. If a positive value was calculated, this would give clues as to potential problems with the procedure or unaccounted reactions.

    When keeping the sign for error, the calculation is the experimental or measured value minus the known or theoretical value, divided by the theoretical value and multiplied by 100%.

    percent error = [experimental value — theoretical value] / theoretical value x 100%

    Percent Error Calculation Steps

    1. Subtract one value from another. The order does not matter if you are dropping the sign (taking the absolute value. Subtract the theoretical value from the experimental value if you are keeping negative signs. This value is your «error.»
    2. Divide the error by the exact or ideal value (not your experimental or measured value). This will yield a decimal number.
    3. Convert the decimal number into a percentage by multiplying it by 100.
    4. Add a percent or % symbol to report your percent error value.

    Percent Error Example Calculation

    In a lab, you are given a block of aluminum. You measure the dimensions of the block and its displacement in a container of a known volume of water. You calculate the density of the block of aluminum to be 2.68 g/cm3. You look up the density of a block of aluminum at room temperature and find it to be 2.70 g/cm3. Calculate the percent error of your measurement.

    1. Subtract one value from the other:
      2.68 — 2.70 = -0.02
    2. Depending on what you need, you may discard any negative sign (take the absolute value): 0.02
      This is the error.
    3. Divide the error by the true value:0.02/2.70 = 0.0074074
    4. Multiply this value by 100% to obtain the percent error:
      0.0074074 x 100% = 0.74% (expressed using 2 significant figures).
      Significant figures are important in science. If you report an answer using too many or too few, it may be considered incorrect, even if you set up the problem properly.

    Percent Error Versus Absolute and Relative Error

    Percent error is related to absolute error and relative error. The difference between an experimental and known value is the absolute error. When you divide that number by the known value you get relative error. Percent error is relative error multiplied by 100%. In all cases, report values using the appropriate number of significant digits.

    Sources

    • Bennett, Jeffrey; Briggs, William (2005), Using and Understanding Mathematics: A Quantitative Reasoning Approach (3rd ed.), Boston: Pearson.
    • Törnqvist, Leo; Vartia, Pentti; Vartia, Yrjö (1985), «How Should Relative Changes Be Measured?», The American Statistician39 (1): 43–46.

    Понравилась статья? Поделить с друзьями:
  • Error rate calculation simulink что это
  • Error rate calculation matlab
  • Error rangecheck offending command image
  • Error random was not declared in this scope
  • Error radeon kernel modesetting for r600 debian