假设我迭代以下代码,直到获得满意的准确性:
from sklearn.model_selection import train_test_split
x, y = # ... read in some data set ...
c = 3000 # iterate over some arbitrary range
for i in range(c):
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=i)
model = # ... initialize some classifier of choice ...
model.fit(x_train, y_train)
p = model.predict(x_test)
p = np.round(p).reshape(-1)
test_accuracy = np.mean(p == y_test) * 100
对于特定的数据集和范围,假设我构建了一个分类器,训练准确率为 97%,测试准确率为 96%。我真的可以声称该模型的准确率达到 96% 吗?对于相同的范围和数据集,我还可以构建一个分类器,使得训练准确率和测试准确率分别低至 99% 和 70%。
既然我是random_state根据测试集精度来选择的,那么这里的测试集真的是验证集吗?我不知道为什么,但我认为声称第一个模型的准确率是 96% 是不正确的。为了对模型的准确性做出正确的声明,我应该做什么?
慕容3067478
拉丁的传说
相关分类