Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.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 sklearn的MLPClassizer在其他机器上执行时显示不同的精度?_Python_Numpy_Random_Scikit Learn - Fatal编程技术网

Python sklearn的MLPClassizer在其他机器上执行时显示不同的精度?

Python sklearn的MLPClassizer在其他机器上执行时显示不同的精度?,python,numpy,random,scikit-learn,Python,Numpy,Random,Scikit Learn,看起来,在不同的设备上使用相同的输入运行sklearn MLPClassizer将获得不同的精度结果,即使设置了全局种子 MWE: 将numpy导入为np 从sklearn.neural_网络导入MLP分类器 从sklearn.model\u选择导入列车\u测试\u拆分 np.随机种子(1) X_序列,X_测试,y_序列,y_测试=序列测试分割(X,y,测试大小=0.1,分层=y,随机状态=np.random.RandomState(0)) nn=MLP分类器(隐藏层大小=(100100), 激

看起来,在不同的设备上使用相同的输入运行sklearn MLPClassizer将获得不同的精度结果,即使设置了全局种子

MWE:

将numpy导入为np
从sklearn.neural_网络导入MLP分类器
从sklearn.model\u选择导入列车\u测试\u拆分
np.随机种子(1)
X_序列,X_测试,y_序列,y_测试=序列测试分割(X,y,测试大小=0.1,分层=y,随机状态=np.random.RandomState(0))
nn=MLP分类器(隐藏层大小=(100100),
激活='relu',
“亚当”,
α=0.001,
批次尺寸=50,
学习率初始值=0.01,
最大电阻=1000,
随机状态=np.random.RandomState(0))
nn.fit(X_系列,y_系列)
y\u列车预测=nn.预测(X\u列车)
acc\u train=np.sum(y\u train==y\u train\u pred,轴=0)/X\u train.shape[0]
y_检验\u预测=nn.预测(X_检验)
acc_test=np.sum(y_test==y_test_pred,axis=0)/X_test.shape[0]
结果。附加([acc\U列车,acc\U测试])

如何保证再现性(独立于执行设备)?

我无法再现这一点

如果出现问题,可能需要更多关于不同机器的信息。调用
python-c'import-sklearn的结果是什么;sklearn.show_versions()'
在每个


scikit learn==0.24.2
时,以下代码在Ubuntu/Red Hat上给出了相同的结果(我尝试了不同的:
numpy==1.19.1/1.20.2
scipy==1.5.2/1.6.3

从sklearn.neural_网络导入MLP分类器
从sklearn.dataset导入load_乳腺癌
从sklearn.model\u选择导入列车\u测试\u拆分
十、 y=load\u乳腺癌(返回值为真)
X_序列,X_测试,y_序列,y_测试=序列测试分割(X,y,随机状态=0)
clf=MLP分类器(
隐藏层大小=(100100),
激活=“relu”,
solver=“亚当”,
α=0.001,
批次尺寸=50,
学习率初始值=0.01,
最大电阻=1000,
随机_状态=0,
)
clf.fit(X_系列、y_系列)
打印(clf.分数(X_列,y_列))
打印(clf.分数(X_测试,y_测试))
输出:

0.9272300469483568
0.9370629370629371

嗨,谢谢你的回答。如果我使用自定义数据集(以下数据集:),那么在不同的操作系统上使用Adam执行MLP分类器时,我会获得不同的精度。然而,随着乳腺癌立场的确立,它正在如期发挥作用。我怀疑这与Pandas在Linux/Windows操作系统上读取csv文件的方式有关…(我不看Google驱动器链接,第三方网站上的内容变得棘手)这似乎很奇怪,你是否在对Pandas进行预处理,你认为这可能会导致操作系统之间的不同结果?一个选项是在清理
df.to_csv()
后保留数据,使用
np.loadtxt
加载,并查看问题是否仍然存在。相同的行为。更奇怪的是,只有在使用relu+adam时,精度才会有所不同。通过物流+新加坡元,其工作符合预期。