如何为 ML 模型正确设置种子值?
How to set seed value properly to a ML model?
我是 ML 的新手,运行使用不同的分类模型。我观察到的是每次我 运行 模型时,我得到的结果都略有不同。我在网上了解到,这是关于设置种子值的。但是我无法实现重现性?
下面是我的代码,我尝试在其中设置种子值,但没有帮助
from sklearn.svm import SVC
random.seed(1234)
param_grid = {'C': [0.001,0.01,0.1,1,10,100],
'gamma': [1,0.1,0.01,0.001],
'kernel': ['linear','rbf','poly'],
'class_weight':['balanced']}
svm=SVC()
svm_cv=GridSearchCV(svm,param_grid,cv=5)
svm_cv.fit(X_train_std,y_train)
y_pred = svm_cv.predict(X_test_std)
cm = confusion_matrix(y_test, y_pred)
print(cm)
print("Accuracy is ", accuracy_score(y_test, y_pred))
你能帮我理解如何设置 seed
值,以便每次 运行 上面的代码时,我得到相同的 result/accuracy/metric
Scikit learn 使用 numpy 随机种子。因此你应该导入 numpy 并像这样设置它的随机种子:
import numpy as np
np.random.seed(1234)
(https://www.mikulskibartosz.name/how-to-set-the-global-random_state-in-scikit-learn/)
我是 ML 的新手,运行使用不同的分类模型。我观察到的是每次我 运行 模型时,我得到的结果都略有不同。我在网上了解到,这是关于设置种子值的。但是我无法实现重现性?
下面是我的代码,我尝试在其中设置种子值,但没有帮助
from sklearn.svm import SVC
random.seed(1234)
param_grid = {'C': [0.001,0.01,0.1,1,10,100],
'gamma': [1,0.1,0.01,0.001],
'kernel': ['linear','rbf','poly'],
'class_weight':['balanced']}
svm=SVC()
svm_cv=GridSearchCV(svm,param_grid,cv=5)
svm_cv.fit(X_train_std,y_train)
y_pred = svm_cv.predict(X_test_std)
cm = confusion_matrix(y_test, y_pred)
print(cm)
print("Accuracy is ", accuracy_score(y_test, y_pred))
你能帮我理解如何设置 seed
值,以便每次 运行 上面的代码时,我得到相同的 result/accuracy/metric
Scikit learn 使用 numpy 随机种子。因此你应该导入 numpy 并像这样设置它的随机种子:
import numpy as np
np.random.seed(1234)
(https://www.mikulskibartosz.name/how-to-set-the-global-random_state-in-scikit-learn/)