有人可以很好地 math/stats 解释参数 var_smoothing 在 scikit 学习中对 GaussianNB 的作用吗?
Can someone give a good math/stats explanation as to what the parameter var_smoothing does for GaussianNB in scikit learn?
我知道这个参数 var_smoothing 以及如何调整它,但我想要一个 math/stats 方面的解释,解释它实际上做了什么调整 - 我还没有能在网上找到好的。
我查看了 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()
在Stats中,Gaussian等概率分布函数依赖于sigma^2(方差);并且两个特征之间的方差越大,相关性越小,估计量越好,因为使用的模型是独立同分布的朴素贝叶斯(基本上,它假设特征是独立的)。
然而,在计算方面,机器学习中很常见的是高值或低值向量或浮点运算会带来一些错误,例如"ValueError: math domain error"。如果发生某种类型的数字错误,这个额外的变量可以用作可调整的限制。
现在,探索是否可以使用此值进行进一步控制(例如避免过度拟合)将会很有趣,因为这个新的自 epsilon 被添加到方差 (sigma^2) 或标准偏差 (sigma) 中.
高斯曲线可以用作 "low pass" 过滤器,只允许样本接近其均值 "pass." 在朴素贝叶斯的背景下,假设高斯分布本质上是给更多的权重样本更接近分布均值。这可能合适也可能不合适,具体取决于您要预测的内容是否服从正态分布。
变量 var_smoothing 人为地将用户定义的值添加到分布的方差(其默认值来自训练数据集)。这实质上加宽了(或 "smooths")曲线并解释了更多远离分布均值的样本。
我知道这个参数 var_smoothing 以及如何调整它,但我想要一个 math/stats 方面的解释,解释它实际上做了什么调整 - 我还没有能在网上找到好的。
我查看了 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()
在Stats中,Gaussian等概率分布函数依赖于sigma^2(方差);并且两个特征之间的方差越大,相关性越小,估计量越好,因为使用的模型是独立同分布的朴素贝叶斯(基本上,它假设特征是独立的)。
然而,在计算方面,机器学习中很常见的是高值或低值向量或浮点运算会带来一些错误,例如"ValueError: math domain error"。如果发生某种类型的数字错误,这个额外的变量可以用作可调整的限制。
现在,探索是否可以使用此值进行进一步控制(例如避免过度拟合)将会很有趣,因为这个新的自 epsilon 被添加到方差 (sigma^2) 或标准偏差 (sigma) 中.
高斯曲线可以用作 "low pass" 过滤器,只允许样本接近其均值 "pass." 在朴素贝叶斯的背景下,假设高斯分布本质上是给更多的权重样本更接近分布均值。这可能合适也可能不合适,具体取决于您要预测的内容是否服从正态分布。
变量 var_smoothing 人为地将用户定义的值添加到分布的方差(其默认值来自训练数据集)。这实质上加宽了(或 "smooths")曲线并解释了更多远离分布均值的样本。