2016-05-04 9 views
0

私はnumpyとpandasを使用してトレーニング、検証、テストにデータを分割しようとしています。パンダのベクトル値の範囲に基づいて行を選択

私は(それがsklearnアイリスの例からだ)、この作品を知っている:

DataFrame['is_train'] = np.random.uniform(0, 1, len(train)) <= .75 
train, test = DataFrame[DataFrame['is_train']==True], DataFrame[DataFrame['is_train']==False] 

しかし、私は、値の範囲のために似たような、例えば、どのように行うのですか、0.33 < X < 0.66?

これは動作しません:あなたはより良い方法を知っている場合

DataFrame['segment'] = np.random.uniform(0, 1, len(df)) 
DataFrame[DataFrame['segment'] < .33 & DataFrame['segment'] < .66] 

最後に、教えて祈ります。

私の知る限り、sklearncross_validation.train_test_split()は3方向分割を行いません。

+0

小さな間違い: DataFrame [データセグメント] [データセグメント] [データセグメント] [.66] 答えのために、Edchumは明確かつ簡潔です! – ysearka

答えて

1

ラップカッコ内の条件:

DataFrame[(DataFrame['segment'] < .33) & (DataFrame['segment'] < .66)] 

&オペレータが<よりも優先順位が高い:https://docs.python.org/2/reference/expressions.html#operator-precedence

はまた、典型的には、1つのあなたが望むものは何でも基準に従って各種の分割にデータを分割:http://scikit-learn.org/stable/modules/cross_validation.html#cross-validationとあなたさまざまな分割を繰り返して、モデルの堅牢性をテストします。検証セットがどのように代表的であるかをどのように知っているかのように固定された検証セットを持つことは、有益なIMOではないのですか?

+0

ありがとうございます。 cross_validation.train_test_split()で3方向分割を行うことができるかどうか知りたいですか? – zadrozny

+0

なぜ検証セットが必要ですか?列車のテストスプリットを生成し、それらのスプリットに対するパーフォーマンスを平均する方が良いとは思わないでしょうか? – EdChum

+0

おそらく。それは私が取り組んでいる練習です。そして、私はこれのベストプラクティスを知りたいと思います。 – zadrozny

関連する問題