Como corrigir: nenhum módulo chamado “sklearn.cross_validation”;


Um erro que você pode encontrar ao usar Python é:

 ModuleNotFoundError : No module named 'sklearn.cross_validation'

Este erro geralmente ocorre ao tentar importar a função train_test_split do sklearn usando a seguinte linha:

 from sklearn. cross_validation import train_test_split

No entanto, o submódulo cross_validation foi substituído pelo submódulo model_selection , portanto você deve usar a seguinte linha:

 from sklearn. model_selection import train_test_split

O exemplo a seguir mostra como resolver esse erro na prática.

Como reproduzir o erro

Digamos que queremos usar a função train_test_split do sklearn para dividir um DataFrame do pandas em conjuntos de treinamento e teste.

Suponha que tentemos usar o seguinte código para importar a função train_test_split :

 from sklearn. cross_validation import train_test_split

ModuleNotFoundError : No module named 'sklearn.cross_validation'

Estamos recebendo um erro porque usamos o nome de submódulo errado ao tentar importar a função train_test_split .

Como corrigir o erro

Para corrigir esse erro, simplesmente precisamos usar o submódulo model_selection :

 from sklearn. model_selection import train_test_split

Desta vez não recebemos nenhum erro.

Poderíamos então usar a função train_test_split para dividir um DataFrame do pandas em um conjunto de treinamento e teste:

 from sklearn. model_selection import train_test_split
import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (1)

#create DataFrame with 1000 rows and 3 columns
df = pd. DataFrame ({' x1 ': np.random.randint(30, size=1000),
                   ' x2 ': np.random.randint(12, size=1000),
                   ' y ': np.random.randint(2, size=1000)})

#split original DataFrame into training and testing sets
train, test = train_test_split(df, test_size=0.2, random_state=0)

#view first few rows of each set
print ( train.head ())

     x1 x2 y
687 16 2 0
500 18 2 1
332 4 10 1
979 2 8 1
817 11 1 0

print ( test.head ())

     x1 x2 y
993 22 1 1
859 27 6 0
298 27 8 1
553 20 6 0
672 9 2 1

Conseguimos usar a função train_test_split com sucesso e sem erros.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir: as colunas se sobrepõem, mas nenhum sufixo é especificado
Como corrigir: o objeto ‘numpy.ndarray’ não possui um atributo ‘append’
Como corrigir: se você usar todos os valores escalares, precisará passar um índice
Como corrigir: ValueError: não é possível converter float NaN em int

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *