負の平均二乗誤差
次のコードを実行したときの出力として、正しいものを1つ選べ。
import numpy as np
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression
X = np.arange(10).reshape(10, 1)
y = 2 * np.arange(10) + 1
s = cross_val_score(LinearRegression(), X, y, cv=2, scoring="neg_mean_squared_error")
print(bool(s.max() <= 0))
- A
True - B
False - C
None - D
ValueErrorが発生する。
正解と解説を見る
正解:A
scikit-learn の scoring は「大きいほど良い」の規則に合わせるため、誤差の指標には neg_ が付き、負の値になる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import numpy as np` | — |
| 2 | `from sklearn.model_selection import cross_val…` | — |
| 3 | `from sklearn.linear_model import LinearRegres…` | — |
| 4 | `X = np.arange(10).reshape(10, 1)` | X = [[0], [1], [2], [3], [4], [5], [6], [7]… |
| 5 | `y = 2 * np.arange(10) + 1` | y = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] |
| 6 | `s = cross_val_score(LinearRegression(), X, y,…` | s = [-0.0, -0.0], X = [[0], [1], [2], [3], [4], [5], [6], [7]…, y = [… |
| 7 | `print(bool(s.max() <= 0))` | s = [-0.0, -0.0] |
| 結果 | 実際の出力 | True |
- A
正しい。「大きいほど良い」にそろえるため、誤差には負の符号が付き、値は 0 以下になる。
- B
誤り。
neg_の評価指標は、0 以下の値になる。 - C
誤り。真偽値が返る。
- D
誤り。有効な指標の名前。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。