Scikit learn Scikit学习SGDClassizer:精度和召回率每次都会更改值

Scikit learn Scikit学习SGDClassizer:精度和召回率每次都会更改值,scikit-learn,classification,precision-recall,Scikit Learn,Classification,Precision Recall,我对scikit learn中的精度和召回值有疑问。我正在使用函数sgdclassizer对数据进行分类。 为了评估性能,我使用精度和召回功能precision\u recall\u fscore\u support,但每次运行程序时,精度和召回矩阵中的值都不同。我怎样才能得到真正的价值观? 我的代码是: scalerI = preprocessing.StandardScaler() X_train = scalerI.fit_transform(InputT) X_test = scaler

我对scikit learn中的精度和召回值有疑问。我正在使用函数
sgdclassizer
对数据进行分类。 为了评估性能,我使用精度和召回功能
precision\u recall\u fscore\u 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)
谢谢

来自SGDClassizer的
random_state
参数初始化为
None
这是用于随机数生成器的种子值。您需要修正此值,以便结果可重复,因此设置
random\u state=0
或任何您喜欢的数字

clf = SGDClassifier(loss="log", penalty="elasticnet",n_iter=70, random_state=0)
每次运行应产生相同的结果

从文档中:

随机_状态:整数种子、随机状态实例或无(默认)状态 在洗牌时使用的伪随机数生成器的种子 数据


哦,谢谢你!我不明白随机状态的含义。因此,现在的问题可能是如何选择最佳的数字以获得最佳结果无需担心,请进行测试,如果它解决了您的问题,请记住接受我的答案,我的答案左上角将有一个空的勾号。这吸引了很多人,包括我自己,总是检查分类器的构造函数是否具有
random_state
param。