1

我对 scikit learn 中的精度和召回值有疑问。我正在使用该功能SGDClassifier对我的数据进行分类。为了评估性能,我使用了精度和召回功能precision_recall_fscore_support,但每次运行程序时,我在精度和召回矩阵中都有不同的值。我怎样才能拥有真正的价值观?我的代码是:

scalerI = preprocessing.StandardScaler()
X_train = scalerI.fit_transform(InputT)
X_test = scalerI.transform(InputCross)
clf = SGDClassifier(loss="log", penalty="elasticnet",n_iter=70)
y_rbf = clf.fit(X_train,TargetT)
y_hat=clf.predict(X_test)
a= clf.predict_proba(X_test)
p_and_rec=precision_recall_fscore_support(TargetCross,y_hat,beta=1)

谢谢

4

1 回答 1

2

docs SGDClassifier 有一个random_state参数被初始化为None这是一个用于随机数生成器的种子值。您需要修复此值,以便结果是可重复的,因此设置random_state=0或您想要的任何喜欢的数字

clf = SGDClassifier(loss="log", penalty="elasticnet",n_iter=70, random_state=0)

应该为每次运行产生相同的结果

从文档:

random_state : int 种子、RandomState 实例或 None (默认)随机数生成器的种子,用于对数据进行混洗。

于 2015-05-08T13:29:47.797 回答