假設我迭代以下代碼,直到獲得滿意的準確性: 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% 是不正確的。為了對模型的準確性做出正確的聲明,我應該做什么?
迭代許多隨機訓練和測試集分割直到達到高精度是一種不好的做法嗎?
慕碼人8056858
2023-07-11 16:43:58