sklearn cross_validation train_test_splitモジュールでpandasデータフレームを使用しています。IndexError:位置インデクサーが範囲外です。stratify sklearn test_train_split
d=pandas.DataFrame({'a':np.random.randn(300),
'c':np.array([el for el in np.ones(100)]+
[el for el in np.zeros(200)])})
from sklearn import cross_validation
(X,y)=(d['a'],d['c'])
これは
X_train_and_cv, X_test,y_train_and_cv,y_test = sklearn.cross_validation.train_test_split(X,y,test_size=0.2,random_state=0)
X_train, X_cv,y_train,y_cv = sklearn.cross_validation.train_test_split(X_train_and_cv,y_train_and_cv,test_size=0.2,random_state=0)
はなぜこの仕事をして動作しますか?
X_train_and_cv, X_test,y_train_and_cv,y_test = sklearn.cross_validation.train_test_split(X,y,test_size=0.2,random_state=0,stratify=y)
X_train, X_cv,y_train,y_cv = sklearn.cross_validation.train_test_split(X_train_and_cv,y_train_and_cv,test_size=0.2,random_state=0,stratify=y)
in _is_valid_list_like(self, key, axis)
1536 l = len(ax)
1537 if len(arr) and (arr.max() >= l or arr.min() < -l):
-> 1538 raise IndexError("positional indexers are out-of-bounds")
1539
1540 return True
IndexError: positional indexers are out-of-bounds
うわー、私は、可変引数の代わりに文字列として 'y'を解釈していたことに気づきました - 例えば、stratify = 'yes' - そして第2引数で層別化配列を推測していたと仮定します。 。 – user86895
ああ!それはstratify = Trueだったでしょう:) –