Среднеквадратическая ошибка mse что это

From Wikipedia, the free encyclopedia

In statistics, the mean squared error (MSE)[1] or mean squared deviation (MSD) of an estimator (of a procedure for estimating an unobserved quantity) measures the average of the squares of the errors—that is, the average squared difference between the estimated values and the actual value. MSE is a risk function, corresponding to the expected value of the squared error loss.[2] The fact that MSE is almost always strictly positive (and not zero) is because of randomness or because the estimator does not account for information that could produce a more accurate estimate.[3] In machine learning, specifically empirical risk minimization, MSE may refer to the empirical risk (the average loss on an observed data set), as an estimate of the true MSE (the true risk: the average loss on the actual population distribution).

The MSE is a measure of the quality of an estimator. As it is derived from the square of Euclidean distance, it is always a positive value that decreases as the error approaches zero.

The MSE is the second moment (about the origin) of the error, and thus incorporates both the variance of the estimator (how widely spread the estimates are from one data sample to another) and its bias (how far off the average estimated value is from the true value).[citation needed] For an unbiased estimator, the MSE is the variance of the estimator. Like the variance, MSE has the same units of measurement as the square of the quantity being estimated. In an analogy to standard deviation, taking the square root of MSE yields the root-mean-square error or root-mean-square deviation (RMSE or RMSD), which has the same units as the quantity being estimated; for an unbiased estimator, the RMSE is the square root of the variance, known as the standard error.

Definition and basic properties[edit]

The MSE either assesses the quality of a predictor (i.e., a function mapping arbitrary inputs to a sample of values of some random variable), or of an estimator (i.e., a mathematical function mapping a sample of data to an estimate of a parameter of the population from which the data is sampled). The definition of an MSE differs according to whether one is describing a predictor or an estimator.

Predictor[edit]

If a vector of n predictions is generated from a sample of n data points on all variables, and Y is the vector of observed values of the variable being predicted, with \hat{Y} being the predicted values (e.g. as from a least-squares fit), then the within-sample MSE of the predictor is computed as

{\displaystyle \operatorname {MSE} ={\frac {1}{n}}\sum _{i=1}^{n}\left(Y_{i}-{\hat {Y_{i}}}\right)^{2}.}

In other words, the MSE is the mean {\textstyle \left({\frac {1}{n}}\sum _{i=1}^{n}\right)} of the squares of the errors {\textstyle \left(Y_{i}-{\hat {Y_{i}}}\right)^{2}}. This is an easily computable quantity for a particular sample (and hence is sample-dependent).

In matrix notation,

{\displaystyle \operatorname {MSE} ={\frac {1}{n}}\sum _{i=1}^{n}(e_{i})^{2}={\frac {1}{n}}\mathbf {e} ^{\mathsf {T}}\mathbf {e} }

where e_{i} is {\displaystyle (Y_{i}-{\hat {Y_{i}}})} and {\displaystyle \mathbf {e} } is a {\displaystyle n\times 1} column vector.

The MSE can also be computed on q data points that were not used in estimating the model, either because they were held back for this purpose, or because these data have been newly obtained. Within this process, known as cross-validation, the MSE is often called the test MSE,[4] and is computed as

{\displaystyle \operatorname {MSE} ={\frac {1}{q}}\sum _{i=n+1}^{n+q}\left(Y_{i}-{\hat {Y_{i}}}\right)^{2}.}

Estimator[edit]

The MSE of an estimator \hat{\theta} with respect to an unknown parameter \theta is defined as[1]

{\displaystyle \operatorname {MSE} ({\hat {\theta }})=\operatorname {E} _{\theta }\left[({\hat {\theta }}-\theta )^{2}\right].}

This definition depends on the unknown parameter, but the MSE is a priori a property of an estimator. The MSE could be a function of unknown parameters, in which case any estimator of the MSE based on estimates of these parameters would be a function of the data (and thus a random variable). If the estimator \hat{\theta} is derived as a sample statistic and is used to estimate some population parameter, then the expectation is with respect to the sampling distribution of the sample statistic.

The MSE can be written as the sum of the variance of the estimator and the squared bias of the estimator, providing a useful way to calculate the MSE and implying that in the case of unbiased estimators, the MSE and variance are equivalent.[5]

{\displaystyle \operatorname {MSE} ({\hat {\theta }})=\operatorname {Var} _{\theta }({\hat {\theta }})+\operatorname {Bias} ({\hat {\theta }},\theta )^{2}.}

Proof of variance and bias relationship[edit]

{\displaystyle {\begin{aligned}\operatorname {MSE} ({\hat {\theta }})&=\operatorname {E} _{\theta }\left[({\hat {\theta }}-\theta )^{2}\right]\\&=\operatorname {E} _{\theta }\left[\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]+\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)^{2}\right]\\&=\operatorname {E} _{\theta }\left[\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)^{2}+2\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)+\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)^{2}\right]\\&=\operatorname {E} _{\theta }\left[\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)^{2}\right]+\operatorname {E} _{\theta }\left[2\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)\right]+\operatorname {E} _{\theta }\left[\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)^{2}\right]\\&=\operatorname {E} _{\theta }\left[\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)^{2}\right]+2\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)\operatorname {E} _{\theta }\left[{\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right]+\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)^{2}&&\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta ={\text{const.}}\\&=\operatorname {E} _{\theta }\left[\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)^{2}\right]+2\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)+\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)^{2}&&\operatorname {E} _{\theta }[{\hat {\theta }}]={\text{const.}}\\&=\operatorname {E} _{\theta }\left[\left({\hat {\theta }}-\operatorname {E} _{\theta }[{\hat {\theta }}]\right)^{2}\right]+\left(\operatorname {E} _{\theta }[{\hat {\theta }}]-\theta \right)^{2}\\&=\operatorname {Var} _{\theta }({\hat {\theta }})+\operatorname {Bias} _{\theta }({\hat {\theta }},\theta )^{2}\end{aligned}}}

An even shorter proof can be achieved using the well-known formula that for a random variable {\textstyle X}, {\textstyle \mathbb {E} (X^{2})=\operatorname {Var} (X)+(\mathbb {E} (X))^{2}}. By substituting {\textstyle X} with, {\textstyle {\hat {\theta }}-\theta }, we have

{\displaystyle {\begin{aligned}\operatorname {MSE} ({\hat {\theta }})&=\mathbb {E} [({\hat {\theta }}-\theta )^{2}]\\&=\operatorname {Var} ({\hat {\theta }}-\theta )+(\mathbb {E} [{\hat {\theta }}-\theta ])^{2}\\&=\operatorname {Var} ({\hat {\theta }})+\operatorname {Bias} ^{2}({\hat {\theta }},\theta )\end{aligned}}}

But in real modeling case, MSE could be described as the addition of model variance, model bias, and irreducible uncertainty (see Bias–variance tradeoff). According to the relationship, the MSE of the estimators could be simply used for the efficiency comparison, which includes the information of estimator variance and bias. This is called MSE criterion.

In regression[edit]

In regression analysis, plotting is a more natural way to view the overall trend of the whole data. The mean of the distance from each point to the predicted regression model can be calculated, and shown as the mean squared error. The squaring is critical to reduce the complexity with negative signs. To minimize MSE, the model could be more accurate, which would mean the model is closer to actual data. One example of a linear regression using this method is the least squares method—which evaluates appropriateness of linear regression model to model bivariate dataset,[6] but whose limitation is related to known distribution of the data.

The term mean squared error is sometimes used to refer to the unbiased estimate of error variance: the residual sum of squares divided by the number of degrees of freedom. This definition for a known, computed quantity differs from the above definition for the computed MSE of a predictor, in that a different denominator is used. The denominator is the sample size reduced by the number of model parameters estimated from the same data, (np) for p regressors or (np−1) if an intercept is used (see errors and residuals in statistics for more details).[7] Although the MSE (as defined in this article) is not an unbiased estimator of the error variance, it is consistent, given the consistency of the predictor.

In regression analysis, «mean squared error», often referred to as mean squared prediction error or «out-of-sample mean squared error», can also refer to the mean value of the squared deviations of the predictions from the true values, over an out-of-sample test space, generated by a model estimated over a particular sample space. This also is a known, computed quantity, and it varies by sample and by out-of-sample test space.

In the context of gradient descent algorithms, it is common to introduce a factor of 1/2 to the MSE for ease of computation after taking the derivative. So a value which is technically half the mean of squared errors may be called the MSE.

Examples[edit]

Mean[edit]

Suppose we have a random sample of size n from a population, X_{1},\dots ,X_{n}. Suppose the sample units were chosen with replacement. That is, the n units are selected one at a time, and previously selected units are still eligible for selection for all n draws. The usual estimator for the \mu is the sample average

\overline{X}=\frac{1}{n}\sum_{i=1}^n X_i

which has an expected value equal to the true mean \mu (so it is unbiased) and a mean squared error of

{\displaystyle \operatorname {MSE} \left({\overline {X}}\right)=\operatorname {E} \left[\left({\overline {X}}-\mu \right)^{2}\right]=\left({\frac {\sigma }{\sqrt {n}}}\right)^{2}={\frac {\sigma ^{2}}{n}}}

where \sigma ^{2} is the population variance.

For a Gaussian distribution, this is the best unbiased estimator (i.e., one with the lowest MSE among all unbiased estimators), but not, say, for a uniform distribution.

Variance[edit]

The usual estimator for the variance is the corrected sample variance:

{\displaystyle S_{n-1}^{2}={\frac {1}{n-1}}\sum _{i=1}^{n}\left(X_{i}-{\overline {X}}\right)^{2}={\frac {1}{n-1}}\left(\sum _{i=1}^{n}X_{i}^{2}-n{\overline {X}}^{2}\right).}

This is unbiased (its expected value is \sigma ^{2}), hence also called the unbiased sample variance, and its MSE is[8]

{\displaystyle \operatorname {MSE} (S_{n-1}^{2})={\frac {1}{n}}\left(\mu _{4}-{\frac {n-3}{n-1}}\sigma ^{4}\right)={\frac {1}{n}}\left(\gamma _{2}+{\frac {2n}{n-1}}\right)\sigma ^{4},}

where \mu _{4} is the fourth central moment of the distribution or population, and \gamma_2=\mu_4/\sigma^4-3 is the excess kurtosis.

However, one can use other estimators for \sigma ^{2} which are proportional to S^2_{n-1}, and an appropriate choice can always give a lower mean squared error. If we define

{\displaystyle S_{a}^{2}={\frac {n-1}{a}}S_{n-1}^{2}={\frac {1}{a}}\sum _{i=1}^{n}\left(X_{i}-{\overline {X}}\,\right)^{2}}

then we calculate:

{\displaystyle {\begin{aligned}\operatorname {MSE} (S_{a}^{2})&=\operatorname {E} \left[\left({\frac {n-1}{a}}S_{n-1}^{2}-\sigma ^{2}\right)^{2}\right]\\&=\operatorname {E} \left[{\frac {(n-1)^{2}}{a^{2}}}S_{n-1}^{4}-2\left({\frac {n-1}{a}}S_{n-1}^{2}\right)\sigma ^{2}+\sigma ^{4}\right]\\&={\frac {(n-1)^{2}}{a^{2}}}\operatorname {E} \left[S_{n-1}^{4}\right]-2\left({\frac {n-1}{a}}\right)\operatorname {E} \left[S_{n-1}^{2}\right]\sigma ^{2}+\sigma ^{4}\\&={\frac {(n-1)^{2}}{a^{2}}}\operatorname {E} \left[S_{n-1}^{4}\right]-2\left({\frac {n-1}{a}}\right)\sigma ^{4}+\sigma ^{4}&&\operatorname {E} \left[S_{n-1}^{2}\right]=\sigma ^{2}\\&={\frac {(n-1)^{2}}{a^{2}}}\left({\frac {\gamma _{2}}{n}}+{\frac {n+1}{n-1}}\right)\sigma ^{4}-2\left({\frac {n-1}{a}}\right)\sigma ^{4}+\sigma ^{4}&&\operatorname {E} \left[S_{n-1}^{4}\right]=\operatorname {MSE} (S_{n-1}^{2})+\sigma ^{4}\\&={\frac {n-1}{na^{2}}}\left((n-1)\gamma _{2}+n^{2}+n\right)\sigma ^{4}-2\left({\frac {n-1}{a}}\right)\sigma ^{4}+\sigma ^{4}\end{aligned}}}

This is minimized when

a=\frac{(n-1)\gamma_2+n^2+n}{n} = n+1+\frac{n-1}{n}\gamma_2.

For a Gaussian distribution, where \gamma_2=0, this means that the MSE is minimized when dividing the sum by a=n+1. The minimum excess kurtosis is \gamma_2=-2,[a] which is achieved by a Bernoulli distribution with p = 1/2 (a coin flip), and the MSE is minimized for {\displaystyle a=n-1+{\tfrac {2}{n}}.} Hence regardless of the kurtosis, we get a «better» estimate (in the sense of having a lower MSE) by scaling down the unbiased estimator a little bit; this is a simple example of a shrinkage estimator: one «shrinks» the estimator towards zero (scales down the unbiased estimator).

Further, while the corrected sample variance is the best unbiased estimator (minimum mean squared error among unbiased estimators) of variance for Gaussian distributions, if the distribution is not Gaussian, then even among unbiased estimators, the best unbiased estimator of the variance may not be S^2_{n-1}.

Gaussian distribution[edit]

The following table gives several estimators of the true parameters of the population, μ and σ2, for the Gaussian case.[9]

True value Estimator Mean squared error
{\displaystyle \theta =\mu } \hat{\theta} = the unbiased estimator of the population mean, \overline{X}=\frac{1}{n}\sum_{i=1}^n(X_i) \operatorname{MSE}(\overline{X})=\operatorname{E}((\overline{X}-\mu)^2)=\left(\frac{\sigma}{\sqrt{n}}\right)^2
{\displaystyle \theta =\sigma ^{2}} \hat{\theta} = the unbiased estimator of the population variance, S^2_{n-1} = \frac{1}{n-1}\sum_{i=1}^n\left(X_i-\overline{X}\,\right)^2 \operatorname{MSE}(S^2_{n-1})=\operatorname{E}((S^2_{n-1}-\sigma^2)^2)=\frac{2}{n - 1}\sigma^4
{\displaystyle \theta =\sigma ^{2}} \hat{\theta} = the biased estimator of the population variance, S^2_{n} = \frac{1}{n}\sum_{i=1}^n\left(X_i-\overline{X}\,\right)^2 \operatorname{MSE}(S^2_{n})=\operatorname{E}((S^2_{n}-\sigma^2)^2)=\frac{2n - 1}{n^2}\sigma^4
{\displaystyle \theta =\sigma ^{2}} \hat{\theta} = the biased estimator of the population variance, S^2_{n+1} = \frac{1}{n+1}\sum_{i=1}^n\left(X_i-\overline{X}\,\right)^2 \operatorname{MSE}(S^2_{n+1})=\operatorname{E}((S^2_{n+1}-\sigma^2)^2)=\frac{2}{n + 1}\sigma^4

Interpretation[edit]

An MSE of zero, meaning that the estimator \hat{\theta} predicts observations of the parameter \theta with perfect accuracy, is ideal (but typically not possible).

Values of MSE may be used for comparative purposes. Two or more statistical models may be compared using their MSEs—as a measure of how well they explain a given set of observations: An unbiased estimator (estimated from a statistical model) with the smallest variance among all unbiased estimators is the best unbiased estimator or MVUE (Minimum-Variance Unbiased Estimator).

Both analysis of variance and linear regression techniques estimate the MSE as part of the analysis and use the estimated MSE to determine the statistical significance of the factors or predictors under study. The goal of experimental design is to construct experiments in such a way that when the observations are analyzed, the MSE is close to zero relative to the magnitude of at least one of the estimated treatment effects.

In one-way analysis of variance, MSE can be calculated by the division of the sum of squared errors and the degree of freedom. Also, the f-value is the ratio of the mean squared treatment and the MSE.

MSE is also used in several stepwise regression techniques as part of the determination as to how many predictors from a candidate set to include in a model for a given set of observations.

Applications[edit]

  • Minimizing MSE is a key criterion in selecting estimators: see minimum mean-square error. Among unbiased estimators, minimizing the MSE is equivalent to minimizing the variance, and the estimator that does this is the minimum variance unbiased estimator. However, a biased estimator may have lower MSE; see estimator bias.
  • In statistical modelling the MSE can represent the difference between the actual observations and the observation values predicted by the model. In this context, it is used to determine the extent to which the model fits the data as well as whether removing some explanatory variables is possible without significantly harming the model’s predictive ability.
  • In forecasting and prediction, the Brier score is a measure of forecast skill based on MSE.

Loss function[edit]

Squared error loss is one of the most widely used loss functions in statistics[citation needed], though its widespread use stems more from mathematical convenience than considerations of actual loss in applications. Carl Friedrich Gauss, who introduced the use of mean squared error, was aware of its arbitrariness and was in agreement with objections to it on these grounds.[3] The mathematical benefits of mean squared error are particularly evident in its use at analyzing the performance of linear regression, as it allows one to partition the variation in a dataset into variation explained by the model and variation explained by randomness.

Criticism[edit]

The use of mean squared error without question has been criticized by the decision theorist James Berger. Mean squared error is the negative of the expected value of one specific utility function, the quadratic utility function, which may not be the appropriate utility function to use under a given set of circumstances. There are, however, some scenarios where mean squared error can serve as a good approximation to a loss function occurring naturally in an application.[10]

Like variance, mean squared error has the disadvantage of heavily weighting outliers.[11] This is a result of the squaring of each term, which effectively weights large errors more heavily than small ones. This property, undesirable in many applications, has led researchers to use alternatives such as the mean absolute error, or those based on the median.

See also[edit]

  • Bias–variance tradeoff
  • Hodges’ estimator
  • James–Stein estimator
  • Mean percentage error
  • Mean square quantization error
  • Mean square weighted deviation
  • Mean squared displacement
  • Mean squared prediction error
  • Minimum mean square error
  • Minimum mean squared error estimator
  • Overfitting
  • Peak signal-to-noise ratio

Notes[edit]

  1. ^ This can be proved by Jensen’s inequality as follows. The fourth central moment is an upper bound for the square of variance, so that the least value for their ratio is one, therefore, the least value for the excess kurtosis is −2, achieved, for instance, by a Bernoulli with p=1/2.

References[edit]

  1. ^ a b «Mean Squared Error (MSE)». www.probabilitycourse.com. Retrieved 2020-09-12.
  2. ^ Bickel, Peter J.; Doksum, Kjell A. (2015). Mathematical Statistics: Basic Ideas and Selected Topics. Vol. I (Second ed.). p. 20. If we use quadratic loss, our risk function is called the mean squared error (MSE) …
  3. ^ a b Lehmann, E. L.; Casella, George (1998). Theory of Point Estimation (2nd ed.). New York: Springer. ISBN 978-0-387-98502-2. MR 1639875.
  4. ^ Gareth, James; Witten, Daniela; Hastie, Trevor; Tibshirani, Rob (2021). An Introduction to Statistical Learning: with Applications in R. Springer. ISBN 978-1071614174.
  5. ^ Wackerly, Dennis; Mendenhall, William; Scheaffer, Richard L. (2008). Mathematical Statistics with Applications (7 ed.). Belmont, CA, USA: Thomson Higher Education. ISBN 978-0-495-38508-0.
  6. ^ A modern introduction to probability and statistics : understanding why and how. Dekking, Michel, 1946-. London: Springer. 2005. ISBN 978-1-85233-896-1. OCLC 262680588.{{cite book}}: CS1 maint: others (link)
  7. ^ Steel, R.G.D, and Torrie, J. H., Principles and Procedures of Statistics with Special Reference to the Biological Sciences., McGraw Hill, 1960, page 288.
  8. ^ Mood, A.; Graybill, F.; Boes, D. (1974). Introduction to the Theory of Statistics (3rd ed.). McGraw-Hill. p. 229.
  9. ^ DeGroot, Morris H. (1980). Probability and Statistics (2nd ed.). Addison-Wesley.
  10. ^ Berger, James O. (1985). «2.4.2 Certain Standard Loss Functions». Statistical Decision Theory and Bayesian Analysis (2nd ed.). New York: Springer-Verlag. p. 60. ISBN 978-0-387-96098-2. MR 0804611.
  11. ^ Bermejo, Sergio; Cabestany, Joan (2001). «Oriented principal component analysis for large margin classifiers». Neural Networks. 14 (10): 1447–1461. doi:10.1016/S0893-6080(01)00106-X. PMID 11771723.

Среднеквадратичная ошибка (Mean Squared Error) – Среднее арифметическое (Mean) квадратов разностей между предсказанными и реальными значениями Модели (Model) Машинного обучения (ML):

MSE как среднее дистанций между предсказаниями и реальными наблюдениями

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

$$MSE = \frac{1}{n} × \sum_{i=1}^n (y_i — \widetilde{y}_i)^2$$
$$MSE\space{}{–}\space{Среднеквадратическая}\space{ошибка,}$$
$$n\space{}{–}\space{количество}\space{наблюдений,}$$
$$y_i\space{}{–}\space{фактическая}\space{координата}\space{наблюдения,}$$
$$\widetilde{y}_i\space{}{–}\space{предсказанная}\space{координата}\space{наблюдения,}$$

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

Пример. Исследуем линейную регрессию, изображенную на графике выше, и установим величину среднеквадратической Ошибки (Error). Фактические координаты точек-Наблюдений (Observation) выглядят следующим образом:

Мы имеем дело с Линейной регрессией (Linear Regression), потому уравнение, предсказывающее положение записей, можно представить с помощью формулы:

$$y = M * x + b$$
$$y\space{–}\space{значение}\space{координаты}\space{оси}\space{y,}$$
$$M\space{–}\space{уклон}\space{прямой}$$
$$x\space{–}\space{значение}\space{координаты}\space{оси}\space{x,}$$
$$b\space{–}\space{смещение}\space{прямой}\space{относительно}\space{начала}\space{координат}$$

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

$$y = 0,5252 * x + 17,306$$

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

Рассчитаем квадрат разницы между Y и Ỹ:

Сумма таких квадратов равна 4 445. Осталось только разделить это число на количество наблюдений (9):

$$MSE = \frac{1}{9} × 4445 = 493$$

Само по себе число в такой ситуации становится показательным, когда Дата-сайентист (Data Scientist) предпринимает попытки улучшить предсказательную способность модели и сравнивает MSE каждой итерации, выбирая такое уравнение, что сгенерирует наименьшую погрешность в предсказаниях.

MSE и Scikit-learn

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

import sklearn
from sklearn.metrics import mean_squared_error

Инициализируем крошечные списки, содержащие реальные и предсказанные координаты y:

y_true = [5, 41, 70, 77, 134, 68, 138, 101, 131]
y_pred = [23, 35, 55, 90, 93, 103, 118, 121, 129]

Инициируем функцию mean_squared_error(), которая рассчитает MSE тем же способом, что и формула выше:

mean_squared_error(y_true, y_pred)

Интересно, что конечный результат на 3 отличается от расчетов с помощью Apple Numbers:

496.0

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

Автор оригинальной статьи: @mmoshikoo

Фото: @tobyelliott

Время на прочтение
4 мин

Количество просмотров 5.7K

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

Существует несколько способов вычислить эту разницу. В этом материале мы рассмотрим некоторые из наиболее распространенных функций потерь.

Ниже будут рассмотрены следующие четыре функции потерь.

  • Среднеквадратическая ошибка

  • Среднеквадратическая ошибка

  • Средняя абсолютная ошибка

  • Кросс-энтропийные потери

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

1. Среднеквадратическая ошибка (MSE)

Среднеквадратичная ошибка (MSE) рассчитывается как среднее значение квадратов разностей между прогнозируемыми и фактически наблюдаемыми значениями. Математически это можно выразить следующим образом:

Реализация MSE на языке Python выглядит следующим образом:

import numpy as np # импортируем библиотеку numpy
def mean_squared_error(act, pred): # функция 

   diff = pred - act # находим разницу между прогнозируемыми и наблюдаемыми значениями
   differences_squared = diff ** 2 # возводим в квадрат (чтобы избавиться от отрицательных значений)
   mean_diff = differences_squared.mean() # находим среднее значение
   
   return mean_diff

act = np.array([1.1,2,1.7]) # создаем список актуальных значений
pred = np.array([1,1.7,1.5]) # список прогнозируемых значений

print(mean_squared_error(act,pred)) 

Выход :

0.04666666666666667

Вы также можете использовать mean_squared_error из sklearn для расчета MSE. Вот как работает функция:

from sklearn.metrics import mean_squared_error
act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_squared_error(act, pred)

Выход :

0.04666666666666667

2. Корень среднеквадратической ошибки (RMSE)

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

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

Реализация Python для RMSE выглядит следующим образом:

import numpy as np
def root_mean_squared_error(act, pred):

   diff = pred - act # находим разницу между прогнозируемыми и наблюдаемыми значениями
   differences_squared = diff ** 2 # возводим в квадрат
   mean_diff = differences_squared.mean() # находим среднее значение
   rmse_val = np.sqrt(mean_diff) # извлекаем квадратный корень
   return rmse_val

act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])

print(root_mean_squared_error(act,pred))

Выход :

0.21602468994692867

Вы также можете использовать mean_squared_error из sklearn для расчета RMSE. Давайте посмотрим, как реализовать RMSE, используя ту же функцию:

from sklearn.metrics import mean_squared_error
act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_squared_error(act, pred, squared = False) #Если установлено значение False, функция возвращает значение RMSE.

Выход :

0.21602468994692867

Если для параметра squared установлено значение True, функция возвращает значение MSE. Если установлено значение False, функция возвращает значение RMSE.

3. Средняя абсолютная ошибка (MAE)

Средняя абсолютная ошибка (MAE) рассчитывается как среднее значение абсолютной разницы между прогнозами и фактическими наблюдениями. Математически мы можем представить это следующим образом:

Реализация Python для MAE выглядит следующим образом:

import numpy as np 
def mean_absolute_error(act, pred): #
    diff = pred - act # находим разницу между прогнозируемыми и наблюдаемыми значениями
    abs_diff = np.absolute(diff) # находим абсолютную разность между прогнозами и фактическими наблюдениями.
    mean_diff = abs_diff.mean() # находим среднее значение
    return mean_diff

act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_absolute_error(act,pred)

Выход :

0.20000000000000004

Вы также можете использовать mean_absolute_error из sklearn для расчета MAE.

from sklearn.metrics import mean_absolute_error
act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_absolute_error(act, pred)

Выход :

0.20000000000000004

4. Функция потерь перекрестной энтропии в Python

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

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

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

Код Python для поиска ошибки приведен ниже.

from sklearn.metrics import log_loss
log_loss(["Dog", "Cat", "Cat", "Dog"],[[.1, .9], [.9, .1], [.8, .2], [.35, .65]])

Выход :

0.21616187468057912

Мы используем метод log_loss из sklearn.

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

Вероятности представлены в следующем формате:

[P(dog), P(cat)]

Заключение

Это руководство было посвящено функциям потерь в Python. Мы рассмотрели различные функции потерь как для задач регрессии, так и для задач классификации. Надеюсь, вам понравился материал, ведь все было достаточно легко и понятно!

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

  • Редакция Кодкампа


читать 2 мин


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

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

Две метрики, которые мы часто используем для количественной оценки того, насколько хорошо модель соответствует набору данных, — это среднеквадратическая ошибка (MSE) и среднеквадратическая ошибка (RMSE), которые рассчитываются следующим образом:

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

СКО = Σ(ŷ i – y i ) 2 / n

куда:

  • Σ — это символ, который означает «сумма»
  • ŷ i — прогнозируемое значение для i -го наблюдения
  • y i — наблюдаемое значение для i -го наблюдения
  • n — размер выборки

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

Он рассчитывается как:

СКО = √ Σ(ŷ i – y i ) 2 / n

куда:

  • Σ — это символ, который означает «сумма»
  • ŷ i — прогнозируемое значение для i -го наблюдения
  • y i — наблюдаемое значение для i -го наблюдения
  • n — размер выборки

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

RMSE против MSE: какую метрику следует использовать?

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

И наоборот, MSE измеряется в квадратах переменной отклика.

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

В следующей таблице показаны прогнозируемые очки по модели и фактические очки, набранные игроками:

Мы бы рассчитали среднеквадратичную ошибку (MSE) как:

  • СКО = Σ(ŷ i – y i ) 2 / n
  • MSE = ((14-12) 2 +(15-15) 2 +(18-20) 2 +(19-16) 2 +(25-20) 2 +(18-19) 2 +(12-16) 2 +(12-20) 2 +(15-16) 2 +(22-16) 2 ) / 10
  • СКО = 16

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

Среднеквадратическая ошибка (RMSE) будет просто квадратным корнем MSE:

  • СКО = √ СКО
  • СКО = √ 16
  • СКО = 4

Среднеквадратическая ошибка равна 4. Это говорит нам о том, что среднее отклонение между прогнозируемыми набранными баллами и фактическими набранными баллами равно 4.

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

Как использовать RMSE на практике

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

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

Обратите внимание, что мы также можем сравнивать значения MSE каждой модели, но RMSE проще интерпретировать, поэтому он используется чаще.

Дополнительные ресурсы

Введение в множественную линейную регрессию
RMSE против R-Squared: какую метрику следует использовать?
Калькулятор среднеквадратичной ошибки

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

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

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

Введение

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

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

  1. Среднеквадратичная ошибка (MSE) — это часто используемая функция потерь в задачах регрессии. Он измеряет среднеквадратичную разницу между прогнозируемым выходом и истинным выходом. Эта функция потерь чувствительна к выбросам и имеет тенденцию наказывать за большие ошибки сильнее, чем за меньшие.
  2. Кросс-энтропия — это часто используемая функция потерь в задачах классификации. Он измеряет разницу между предсказанным распределением вероятностей и истинными метками. Эта функция потерь обычно используется с моделями, которые выводят вероятности для каждого класса, такими как нейронные сети.
  3. Двоичная кросс-энтропия — это вариант функции потери кросс-энтропии, которая используется для задач бинарной классификации. Он измеряет разницу между предсказанной вероятностью положительного класса и истинной меткой. Эта функция потерь обычно используется с моделями логистической регрессии.
  4. Потери шарнира — это функция потерь, которая используется с машинами опорных векторов (SVM) в задачах классификации. Он измеряет разницу между прогнозируемым выходом и истинным выходом и наказывает только те ошибки, которые превышают определенный порог.
  5. Расхождение Кульбака-Лейблера. Это функция потерь, которая измеряет разницу между двумя распределениями вероятностей. Он часто используется в генеративных моделях, таких как вариационные автоэнкодеры (VAE) и генеративно-состязательные сети (GAN).

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

Среднеквадратическая ошибка (MSE)

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

MSE = 1/n * Σ(i=1 to n) (yi — ŷi)²

где:

  • n — количество точек данных
  • yi — это истинный результат для i-й точки данных.
  • ŷi — прогнозируемый результат для i-й точки данных

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

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

Square Footage (x) Price (y)
1000 $100,000
1500 $150,000
2000 $200,000
2500 $250,000
3000 $300,000

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

Square Footage (x) Predicted Price (ŷ)
1000 $110,000
1500 $160,000
2000 $210,000
2500 $260,000
3000 $310,000

Мы можем вычислить MSE наших прогнозов, подставив эти значения в уравнение:

MSE = 1/5 * [(100,000–110,000)² + (150,000–160,000)² + (200,000–210,000)² + (250,000–260,000)² + (300,000–310,000)²] 
    = 1/5 * [100,000 + 100,000 + 100,000 + 100,000 + 100,000] = 100,000

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

Функция перекрестной энтропийной потери

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

CE = - Σ(i=1 to n) yi * log(ŷi)

где:

  • n количество классов
  • yi является бинарным индикатором (0 or 1) того, является ли истинная метка i-м классом
  • ŷi — прогнозируемая вероятность принадлежности выборки к i-му классу

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

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

Image True Label
Cat 1
Dog 0
Cat 1
Dog 0
Cat 1

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

Image Predicted Probability of Cat (ŷ)
Cat 0.9
Dog 0.1
Cat 0.8
Dog 0.2
Cat 0.95

Мы можем вычислить кросс-энтропию наших прогнозов, подставив эти значения в уравнение:

CE = -(1 * log(0.9) + 0 * log(0.1) + 1 * log(0.8) + 0 * log(0.2) + 1 * log(0.95)) = -(-0.105 + 0 + -0.223 + 0 + -0.051) = 0.38

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

Функция потери шарнира

Потеря шарнира — это функция потерь, обычно используемая в задачах бинарной классификации. Это особенно полезно при работе с машинами опорных векторов (SVM) и предназначено для поощрения SVM к правильной классификации. Потери шарнира определяются следующим уравнением:

HL = max(0, 1 - y * ŷ)

где:

  • y это истинная метка (-1 или 1)
  • ŷ это прогнозируемый результат SVM

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

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

Приложения

некоторые из ключевых применений функций потерь в машинном обучении:

  1. Обучение модели. Функции потерь используются для обучения моделей машинного обучения путем оптимизации параметров модели для минимизации потерь. Во время обучения функция потерь вычисляет разницу между прогнозируемым выходом модели и истинным выходом, и оптимизатор пытается минимизировать эту разницу.
  2. Оценка. Функции потерь также используются для оценки производительности модели в тестовом или проверочном наборе. Потери вычисляются для каждого входа в тестовом наборе, а средние потери указываются как мера производительности модели.
  3. Регуляризация. В некоторых случаях регуляризация используется для предотвращения переобучения. Функции потерь можно изменить, включив в них член регуляризации, который штрафует большие веса в модели.
  4. Обнаружение выбросов. Функции потерь можно использовать для выявления выбросов в наборе данных. Выбросы можно выявить путем вычисления потерь для каждой точки данных и выявления точек с высокими значениями потерь.
  5. Обнаружение аномалий. Функции потерь можно использовать для выявления аномалий в данных. Аномалии можно выявить путем вычисления потерь для каждой точки данных и выявления точек с высокими значениями потерь.

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

Заключение

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

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

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

Понравилась статья? Поделить с друзьями:
  • Среднеквадратичная ошибка разности
  • Спутниковое тв триколор ошибка 10 что делать
  • Среднеквадратическая ошибка mse формула
  • Среднеквадратическое отклонение и стандартная ошибка
  • Средний отказ кисти робот пылесос редмонд ошибка