我有一个关于科学知识学习中的精确性和回忆价值的问题。我使用函数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)谢谢
发布于 2015-05-08 13:29:47
在文档中,SGDClassifier有一个初始化为None的random_state参数,这是一个用于随机数生成器的种子值。您需要修正这个值,以便结果是可重复的,因此设置random_state=0或任何您想要的最喜欢的数字。
clf = SGDClassifier(loss="log", penalty="elasticnet",n_iter=70, random_state=0)应该为每次运行产生相同的结果。
从医生那里:
random_state : int种子、RandomState实例或无(默认)伪随机数生成器的种子,以便在对数据进行洗牌时使用。
https://stackoverflow.com/questions/30125029
复制相似问题