Scikit 学习 SGDClassifier:精度和召回率每次都会改变值
Scikit learn SGDClassifier: precision and recall change the values each time
我对 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)
谢谢
从 docs SGDClassifier 有一个初始化为 None
的 random_state
参数,这是用于随机数生成器的种子值。您需要修复此值以便结果可重复,因此设置 random_state=0
或您想要的任何喜欢的数字
clf = SGDClassifier(loss="log", penalty="elasticnet",n_iter=70, random_state=0)
应该为每个 运行
产生相同的结果
来自文档:
random_state : int seed, RandomState instance, or None (default) The
seed of the pseudo random number generator to use when shuffling the
data.
我对 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)
谢谢
从 docs SGDClassifier 有一个初始化为 None
的 random_state
参数,这是用于随机数生成器的种子值。您需要修复此值以便结果可重复,因此设置 random_state=0
或您想要的任何喜欢的数字
clf = SGDClassifier(loss="log", penalty="elasticnet",n_iter=70, random_state=0)
应该为每个 运行
产生相同的结果来自文档:
random_state : int seed, RandomState instance, or None (default) The seed of the pseudo random number generator to use when shuffling the data.