Какие изменения в параметрах следует внести при импорте StraifiedShuffleSplit из sklearn.model_selection путем замены sklearn.cross_validation - PullRequest
1 голос
/ 24 марта 2019

Я пытался запустить код python3 для изолированного распознавания речи, там я получил предупреждение об устаревании для использования:

from sklearn.cross_validation import StratifiedShuffleSplit

Чтобы удалить это предупреждение, я просто импортировал StratifiedShuffleSplit из sklearn.model_selection вместо sklearn.cross_validation и после запуска кода я получил:

TypeError: объект 'StratifiedShuffleSplit' не повторяется

Может быть, потому что в

class sklearn.cross_validation.StratifiedShuffleSplit(y, n_iter=10, test_size=0.1, train_size=None, random_state=None)

y - это массив.

Находясь в:

class sklearn.cross_validation.StratifiedShuffleSplit(y, n_iter=10, test_size=0.1, train_size=None, random_state=None)

Массива нет:

from sklearn.model_selection import StratifiedShuffleSplit
sss = StratifiedShuffleSplit(all_labels, test_size=0.1, random_state=0)

for n,i in enumerate(all_obs):
    all_obs[n] /= all_obs[n].sum(axis=0)

for train_index, test_index in sss:
    X_train, X_test = all_obs[train_index, ...], all_obs[test_index, ...]
    y_train, y_test = all_labels[train_index], all_labels[test_index]
ys = set(all_labels)
ms = [gmmhmm(7) for y in ys]

Как заменить all_labels, потому что это массив в соответствии с sklearn.cross_validation, но sklearn.model_selection не принимает параметр массива.

1 Ответ

0 голосов
/ 24 марта 2019

Разница между ними в том, что

  • sklearn.model_selection.StratifiedShuffleSplit - это перекрестный валидатор

  • sklearn.cross_validation.StratifiedShuffleSplit - это перекрестный валидатор итератор

Следовательно, правильный пример из вашего примера будет

from sklearn.model_selection import StratifiedShuffleSplit
sss = StratifiedShuffleSplit(test_size=0.1, random_state=0)

for n,i in enumerate(all_obs):
    all_obs[n] /= all_obs[n].sum(axis=0)

for train_index, test_index in sss.split(all_obs, all_labels):
     print(train_index, test_index)

Может быть полезно прочитать пример в документах sklearn.model_selection.StratifiedShuffleSplit

...