私はさまざまな scikit-learn ツールをいじっています。教師あり学習クラスにはすべてmodel.fit(X, y)
、モデルを適合させるために呼び出す同じ一般的な API があります。これらのいくつか (少なくとも ExtraTreesRegressor) では、2 次元配列を渡すことができ、正常y
に動作します。他の人では、うまくいきません。ただし、通常、機能しない理由はわかりません。実際にそう言わずに、単一の出力次元しか予測できないことを示唆する形状の不一致エラーが表示されます。たとえば、確率的勾配降下の場合:
>>> X.shape
(77946, 24)
>>> y.shape
(77946, 24)
>>> mach = sklearn.linear_model.SGDRegressor()
>>> mach.fit(X, y)
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
mach.fit(X, y)
File "C:\FakeProgs\Python\lib\site-packages\sklearn\linear_model\stochastic_gradient.py", line 842, in fit
sample_weight=sample_weight)
File "C:\FakeProgs\Python\lib\site-packages\sklearn\linear_model\stochastic_gradient.py", line 811, in _fit
coef_init, intercept_init)
File "C:\FakeProgs\Python\lib\site-packages\sklearn\linear_model\stochastic_gradient.py", line 752, in _partial_fit
_check_fit_data(X, y)
File "C:\FakeProgs\Python\lib\site-packages\sklearn\linear_model\stochastic_gradient.py", line 228, in _check_fit_data
raise ValueError("Shapes of X and y do not match.")
ValueError: Shapes of X and y do not match.
ええ、はい、それらは一致します。の 1 列だけを使用する場合は機能しますが、これが多変量がサポートされていないことを意味するのか、それとも正しく行っていないだけなのかy
はわかりません。y
どの scikit クラスが 2 次元を受け入れることができ、どのクラスが受け入れy
られないかを示す明示的な文書はありますか? エラーメッセージから推測するだけでなく、特定の種類のモデルがこれをサポートしているかどうかを確認するにはどうすればよいですか?