質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3298閲覧

sklearn.cross_validationのShuffleSplitについて

r--y--o

総合スコア10

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/07/20 11:34

あるプログラムの一部分なのですが、

from sklearn.cross_validation import ShuffleSplit

ShuffleSplit(
n=len(X), n_iter=1, test_size=0.3, indices=True, random_state=0)

とあって実行すると

TypeError: init() got an unexpected keyword argument 'indices'
とエラーが起きます。
おそらくindices=Trueのところがいけないと思うのですが、上記のプログラムは参考書のサンプルプログラムなので間違いではないと思います。

しかし公式ページで確認すると
http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.ShuffleSplit.html
indice=Trueは入れられない気がします。
また「train_size=数値」に変更しても下記のようにエラーが生じます。

0.3の場合
ValueError: Found array with 0 sample(s) (shape=(0, 1000)) while a minimum of 1 is required.
1の場合
ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 0
2の場合
ValueError: train_size=2 should be smaller than the number of samples 2

何がいけないのでしょうか?
よろしくお願いします。
もし前後のプログラムが必要であれば載せます。ちなみに2つのグループに分類しようと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

version 0.15のドキュメントを見ると、 indices が引数にあります。
http://scikit-learn.org/0.15/modules/generated/sklearn.cross_validation.ShuffleSplit.html
おそらくは参考書で使用している sklearn のバージョンが最新ではないのでしょう。
参考書のどこかに使用バージョンが書いてるのではないかと思われますので確認してみてください。

投稿2016/07/20 12:35

oblique1121

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

r--y--o

2016/07/21 06:49

参考書の方にはバージョン0.13と記載されていました。 0.13にはできて0.17には出来なくなるということがあるのでしょうか? またもしそうであれば0.15のインストール方法教えていただけませんか? どうしても最新のバージョンがインストールされます。 Macの10です。
oblique1121

2016/07/21 13:07 編集

バージョンが違う場合に互換性が保たれなくなることはそれほど珍しいことではありません。 `pip` の場合、以下のようにすることでバージョンを指定できます。 ``` $ pip install scikit-learn==0.15 ``` 参考書に合わせて `0.13` をインストールしたほうがよいかもしれません。 `conda` の場合も以下でバージョン指定できるようです。 ``` $ conda install scikit-learn==0.13 ```
r--y--o

2016/07/22 05:19

動きました。 互換性なくなることあるんですね。 勉強になりました、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問