我知道此参数var_smoothing以及如何对其进行调整,但是我想从数学/统计方面进行解释,以说明其实际调节的作用-我一直无法在线找到任何好的参数。

最佳答案

我查看了Scikit-learn存储库,发现以下代码和语句:

# If the ratio of data variance between dimensions is too small, it
# will cause numerical errors. To address this, we artificially
# boost the variance by epsilon, a small fraction of the standard
# deviation of the largest dimension.


self.epsilon_ = self.var_smoothing * np.var(X, axis=0).max()


在统计中,诸如高斯的概率分布函数取决于sigma ^ 2(方差);并且两个特征之间的差异越大,相关性越低,估计量也就越好,因为朴素贝叶斯作为模型是iid(基本上,它假定特征是独立的)。

但是,就计算而言,在机器学习中非常普遍的是,高值向量或低值向量或浮点运算会带来一些错误,例如“ ValueError:数学域错误”。如果发生某种类型的数字错误,此额外变量可以用作可调极限。

现在,探索我们是否可以将该值用于进一步控制(例如避免过度拟合)将是很有趣的,因为此新的自我ε已添加到方差(sigma ^ 2)或标准差(sigma)中。

关于python - 有人可以对scikit中的GaussianNB参数var_smoothing做什么有很好的数学/统计解释吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58046129/

10-12 22:12