我是机器学习的新手,正在运行不同的分类模型。我观察到每次运行模型时,得到的结果略有不同。我在网上了解到这是关于设置种子值的问题。但是我无法实现结果的可重复性?
下面是我尝试设置种子值的代码,但它没有帮助
from sklearn.svm import SVCrandom.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
值,以便每次运行上述代码时,我都能得到相同的结果/准确率/指标吗?
回答:
Scikit learn 使用 numpy 的随机种子。因此,你应该导入 numpy 并像这样设置其随机种子:
import numpy as npnp.random.seed(1234)
(https://www.mikulskibartosz.name/how-to-set-the-global-random_state-in-scikit-learn/)