这个 arg max 符号在朴素贝叶斯的 scikit-learn 文档中意味着什么?

what does this arg max notation mean in the scikit-learn docs for Naive Bayes?

我指的是关于朴素贝叶斯的以下页面:

http://scikit-learn.org/stable/modules/naive_bayes.html

特别是以 y-hat 开头的方程式。我想我大体上理解了之前的方程式,但我不理解那一行的 "arg max y" 符号。这是什么意思?

来自Wikipedia

In mathematics, the arguments of the maxima (abbreviated arg max or argmax) are the points of the domain of some function at which the function values are maximized. In contrast to global maxima, referring to the largest outputs of a function, arg max refers to the inputs, or arguments, at which the function outputs are as large as possible.

换句话说,argmax f(x)表示最大化f(x)x(参数)的值;可以理解,它经常在优化问题中遇到(这是大多数机器学习算法的基础)。

通俗地说,numpy.argmax 是 Numpy 数组的类似函数(即不是函数);它给出数组值最大的位置

import numpy as np
x = np.array([3,1,8]) # maximum argument at position 2
np.argmax(x)
# 2

而函数的 max 是最大输出值,而函数的 argmax 是输入值,即 "argument" 最大.

在您的示例中的等式中:

y_haty 的值,即 class 标签,最大化右手表达式。

这里的P(y)一般是classy在训练集中的比例,也叫"prior",P(x_i | y)是概率观察特征值x_i如果真class确实是y,也称为"likelihood".

为了更好地理解产品 P(x_i | y),请考虑一个示例,在该示例中,您尝试 class 将抛硬币序列确定为来自任一硬币 A,正面朝上 50% 个训练样例,或 B 个硬币在 66.7% 个训练样例中出现正面。这里每个人P(x_i | y_j)是硬币y_j(其中jab)落地x_i的概率(其中x_i 是正面或反面)。

Training set:

THH    A
HTT    A
HTH    A
TTH    A
HHH    B
HTH    B
TTH    B

Test set:

HHT    ?

因此序列 HHT 在给定硬币 B 的情况下具有 0.667*0.667*0.333 = 0.148 的可能性,但在给定硬币 A 的情况下只有 0.5*0.5*0.5 = 0.125 的可能性。然而,我们估计硬币 A57% 先验,因为 A 出现在 4/7 训练示例中,所以我们最终预测这个序列来自硬币 A ,因为 0.57*0.125 > 0.43*0.148。这是因为我们更有可能从硬币A开始,所以硬币A有更多机会产生一些不太可能的序列。

如果硬币 AB 的先验都是 50%,那么我们自然会预测 HHT 的硬币 B,因为这个序列显然,给定硬币 B.

的可能性最高