每次运行此代码时,准确性都会有所不同。谁能解释一下为什么吗?我在这里错过了什么吗?预先感谢:)
下面是我的代码:
import scipy
import numpy
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train,y_test = train_test_split(X,y, test_size = .5)
# Use a classifier of K-nearestNeibour
from sklearn.neighbors import KNeighborsClassifier
my_classifier = KNeighborsClassifier()
my_classifier.fit(X_train,y_train)
predictions = my_classifier.predict(X_test)
print(predictions)
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test,predictions))
最佳答案
train_test_split
将数据随机拆分为训练集和测试集,因此每次运行脚本时都会得到不同的拆分。如果需要,您可以将一个 random_state
参数设置为某个数字,它将确保您每次运行脚本时都获得相同的分割:
X_train, X_test, y_train,y_test = train_test_split(X,y, test_size = .5, random_state = 0)
每次的准确度应该为 0.96
。
关于python - 每次分类器的准确度差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50575580/