Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改测试列车拆分的随机状态以获得最佳r2分数是作弊吗?_Python_Machine Learning_Scikit Learn_Linear Regression_Random Seed - Fatal编程技术网

Python 更改测试列车拆分的随机状态以获得最佳r2分数是作弊吗?

Python 更改测试列车拆分的随机状态以获得最佳r2分数是作弊吗?,python,machine-learning,scikit-learn,linear-regression,random-seed,Python,Machine Learning,Scikit Learn,Linear Regression,Random Seed,我注意到,当我处理线性回归模型的随机状态时,我的r2分数(对于测试集)发生了显著变化。分数可以改变数量级-在-10^4到0.97之间波动。虽然表现更好,但我不禁怀疑这是否是作弊。毕竟,一个好的模型不应该适用于所有选择的测试和训练数据吗?通过选择一个有效的随机状态,我们不是真的创建了一个模型,该模型对给定的测试数据最有效,并且在将来可能不会对所有数据点都同样有效吗 state=random.randint(0,100) X_train, X_test, y_train, y_test = trai

我注意到,当我处理线性回归模型的随机状态时,我的r2分数(对于测试集)发生了显著变化。分数可以改变数量级-在-10^4到0.97之间波动。虽然表现更好,但我不禁怀疑这是否是作弊。毕竟,一个好的模型不应该适用于所有选择的测试和训练数据吗?通过选择一个有效的随机状态,我们不是真的创建了一个模型,该模型对给定的测试数据最有效,并且在将来可能不会对所有数据点都同样有效吗

state=random.randint(0,100)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=state)

简短回答:是的,这是作弊。

从理论上讲,您不能触摸或调整任何参数以提高测试精度


此外,你从这些信息中得到的是,你的模型不是很好,它很大程度上取决于输入数据,这是不应该发生的,可能是你拟合过度了。检查列车精度和测试精度,如果两者不同,则可能是过度拟合。

是的,选择数据集中提供最准确结果的最佳拟合子集可能是过度拟合数据的最极端方式之一。如果你想一概而论,那就不是个好主意。另外,我否决了这个问题,因为我认为这不是一个SO问题,因为它与编程或实现没有直接关系,而是一个一般的概念性问题,可能属于AI堆栈交换。