gamma SVC sklearn 的默认值
Default value of gamma SVC sklearn
我正在使用 sklearn.svm 的 SVC 在 python 中进行二元分类。对于 gamma 参数,它表示它的默认值为
.
我很难理解这一点。你能告诉我 gamma 的默认值是多少吗,例如,如果输入是 3 维向量 (3,),例如[3,3,3] 并且输入向量的数量是 10.000?另外,有什么方法可以打印出来看看它的价值吗?
举个例子就很容易看出这一点。下面的数组 X 有两个特征(列)。数组的方差为 1.75。因此,默认伽玛为 1/(2*1.75) = 0.2857。您可以通过检查分类器的 ._gamma 属性来验证这一点。
import numpy as np
from sklearn.svm import SVC
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([1, 1, 2, 2])
clf = SVC(gamma='scale')
clf.fit(X, y)
n_features = X.shape[1]
gamma = 1 / (n_features * X.var())
clf._gamma
输出:
X
Out[24]:
array([[-1, -1],
[-2, -1],
[ 1, 1],
[ 2, 1]])
n_features
Out[25]: 2
X.var()
Out[26]: 1.75
gamma
Out[27]: 0.2857142857142857
clf._gamma
Out[28]: 0.2857142857142857
我正在使用 sklearn.svm 的 SVC 在 python 中进行二元分类。对于 gamma 参数,它表示它的默认值为
.
我很难理解这一点。你能告诉我 gamma 的默认值是多少吗,例如,如果输入是 3 维向量 (3,),例如[3,3,3] 并且输入向量的数量是 10.000?另外,有什么方法可以打印出来看看它的价值吗?
举个例子就很容易看出这一点。下面的数组 X 有两个特征(列)。数组的方差为 1.75。因此,默认伽玛为 1/(2*1.75) = 0.2857。您可以通过检查分类器的 ._gamma 属性来验证这一点。
import numpy as np
from sklearn.svm import SVC
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([1, 1, 2, 2])
clf = SVC(gamma='scale')
clf.fit(X, y)
n_features = X.shape[1]
gamma = 1 / (n_features * X.var())
clf._gamma
输出: X
Out[24]:
array([[-1, -1],
[-2, -1],
[ 1, 1],
[ 2, 1]])
n_features
Out[25]: 2
X.var()
Out[26]: 1.75
gamma
Out[27]: 0.2857142857142857
clf._gamma
Out[28]: 0.2857142857142857