我知道这个参数var_smoothing以及如何调优它,但是我想从数学/统计方面解释一下它到底做了什么--我还没有在网上找到任何好的调优。
发布于 2020-05-30 05:00:34
高斯曲线可以作为“低通”滤波器,只允许接近其平均值的样本“通过”。在朴素贝叶斯的背景下,假设高斯分布本质上是给样本赋予更多的权值,使样本更接近分布均值。这可能合适,也可能不合适,这取决于您要预测的内容是否遵循正态分布。
变量var_smoothing人为地将用户定义的值添加到分布的方差(其默认值来自培训数据集)。这基本上是扩大(或“平滑”)曲线,并说明更多的样本是更远离分布的平均值。
发布于 2019-09-22 05:36:15
我查看了Scikit-学习存储库,发现了以下代码和语句:
# 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()在Stats中,高斯等概率分布函数依赖于σ^2(方差),且两个特征之间的方差越大,相关性越小,估计效果越好,因为模型所使用的朴素贝叶斯是一个iid (基本上假定特征是独立的)。
然而,在机器学习中,高值或低值向量或浮点操作会带来一些错误,如"ValueError:数学域错误“,这在机器学习中是非常普遍的。如果出现某种类型的数值错误,这个额外的变量可以作为一个可调整的限制。
现在,这将是有趣的探索,如果我们可以使用这个值,以进一步控制,如避免过度拟合,因为这个新的自我感应器是添加到方差(西格玛^2)或标准差(西格玛)。
https://stackoverflow.com/questions/58046129
复制相似问题