アームプロセッサ(AWS:gravition2、rhel)では、バージョン0.23.1で次のエラーが発生します
1038 >>> from sklearn.model_selection import train_test_split
1039 >>> X, y = make_classification(random_state=0)
1040 >>> X_train, X_test, y_train, y_test = train_test_split(
1041 ... X, y, random_state=0)
1042 >>> clf = GradientBoostingClassifier(random_state=0)
1043 >>> clf.fit(X_train, y_train)
1044 GradientBoostingClassifier(random_state=0)
1045 >>> clf.predict(X_test[:2])
1046 array([1, 0])
1047 >>> clf.score(X_test, y_test)
Expected:
0.88
Got:
0.84
pytest -v sklearn/ensemble/_gb.py::sklearn.ensemble._gb.GradientBoostingClassifier
PASSEDがスローされます。
FAILEDがスローされます。
1047 >>> clf.score(X_test, y_test)
Expected:
0.88
Got:
0.84
System:
python: 3.6.8 (default, Dec 5 2019, 16:02:25) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
executable: /usr/bin/python3
machine: Linux-4.18.0-193.1.2.el8_2.aarch64-aarch64-with-redhat-8.2-Ootpa
Python dependencies:
pip: 20.1.1
setuptools: 39.2.0
sklearn: 0.23.1
numpy: 1.14.3
scipy: 1.0.0
Cython: 0.29
pandas: 1.0.5
matplotlib: 3.2.1
joblib: 0.14.0
threadpoolctl: 2.1.0
Built with OpenMP: True
Linux-4.18.0-193.1.2.el8_2.aarch64-aarch64-with-redhat-8.2-Ootpa
Traceback (most recent call last):
File "<string>", line 3, in <module>
NameError: name 'Python' is not defined
@ murata-yuのレポートをありがとう、 https://github.com/scikit-learn/scikit-learn/pull/17996で再現でき
それが実際の問題の兆候であるかどうかはまだわかりませんが、許容範囲を増やす必要があります。
ユーザーの観点からは、0.8の範囲での精度の4%の変化は、小さな数値の丸めの不一致以上のように見えます。 調査する価値があります。
https://github.com/scikit-learn/scikit-learn/pull/17644#issuecomment -663857435で説明されているように、docker / qemuコンテナーのarm64miniforge環境でscikit-learnをビルドすることで、問題をローカルで再現できます。