1. ホーム
  2. split

[解決済み】train_test_splitメソッドのパラメータ "stratify" (scikit Learn)

2022-03-17 05:20:41

質問

を使おうとしています。 train_test_split を scikit Learn パッケージから取得しましたが、パラメータがうまくいきません。 stratify . 以下はそのコードです。

from sklearn import cross_validation, datasets 

X = iris.data[:,:2]
y = iris.target

cross_validation.train_test_split(X,y,stratify=y)

しかし、次のような問題が起こり続けています。

raise TypeError("Invalid parameters passed: %s" % str(options))
TypeError: Invalid parameters passed: {'stratify': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])}

どなたかお分かりになる方はいらっしゃいますか?以下は、機能の説明です。

[...]

層状化 : array-like または None (デフォルトは None)

None でない場合、これをラベルの配列として、層別方式でデータを分割する。

バージョン 0.17 の新機能: stratify スプリッティング

[...]

解決方法は?

Scikit-Learnは引数"stratify"を認識できないと伝えているだけで、間違った使い方をしているということではありません。これは、引用したドキュメントにあるように、このパラメータがバージョン0.17で追加されたからです。

だから、Scikit-Learnをアップデートすればいいんです。