【问题标题】:what does this arg max notation mean in the scikit-learn docs for Naive Bayes?在 Naive Bayes 的 scikit-learn 文档中,这个 arg max 表示法是什么意思?
【发布时间】:2018-06-19 00:38:50
【问题描述】:
【问题讨论】:
标签:
math
machine-learning
scikit-learn
probability
naivebayes
【解决方案1】:
而函数的max 是最大的输出值,而函数的argmax 是输入的值,即最大的“参数”。
在您示例中的方程式中:
y_hat是y的值,即最大化右手表达式的类标签。
这里P(y)通常是类y在训练集中的比例,也叫“先验”,P(x_i | y)是如果真类确实是@,观察到特征值x_i的概率987654333@,也叫“可能性”。
为了更好地理解产品P(x_i | y),请考虑一个示例,其中您尝试将硬币翻转序列分类为来自硬币A(在训练示例的50% 中正面朝上)或硬币B它在66.7% 的训练示例中占据领先地位。这里每个人P(x_i | y_j) 是硬币y_j(其中j 是a 或b)降落x_i(其中x_i 是正面或反面)的概率。
Training set:
THH A
HTT A
HTH A
TTH A
HHH B
HTH B
TTH B
Test set:
HHT ?
因此序列HHT 具有0.667*0.667*0.333 = 0.148 给定硬币B 的可能性,但只有0.5*0.5*0.5 = 0.125 给定硬币A 的可能性。然而,我们估计硬币A 的57% 先验因为A 出现在4/7 训练示例中,所以我们最终会预测这个序列来自硬币A,因为0.57*0.125 > 0.43*0.148。这是因为我们更有可能从硬币A 开始,所以硬币A 有更多机会产生一些不太可能的序列。
如果硬币A 和B 的先验分别是50%,那么我们自然会为HHT 预测硬币B,因为这个序列显然具有最高的可能性给定硬币B。
【解决方案2】:
来自Wikipedia:
在数学中,最大值的参数(缩写为 arg max 或 argmax)是某个函数的域中的点函数值最大化。与全局最大值(指函数的最大输出)相反,arg max 指的是输入,或参数,在该处,函数输出尽可能大。
换句话说,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