Home › Fóruns › Fórum Machine Learning e Data Science com Python de A à Z › Erro aula “Transformacao de variaveis categoricas 2 – base censo”
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 4 anos, 1 mês atrás por
Fábio Spak.
- AutorPosts
- 12 de janeiro de 2021 às 21:51 #23434
Parte 1 – Classificação
Aula – Transformacao de variaveis categoricas 2 – base censo
Ao executar os comando conforme a orientação passada a partir do minuto ‘8’, o seguinte erro é apresentado:
File “C:\Python\Machine Learning e Data Science com Python de A à Z\Parte1 – Aula7 – pre_processamento_census.py”, line 24, in <module>
previsores[:,3] = labelencoder_previsores.fit_transform(previsores[:,3])IndexError: index 3 is out of bounds for axis 1 with size 1
Segue abaixo o código:
import pandas as pd
base = pd.read_csv(‘census.csv’)
previsores = base.iloc[:,8:9].values
classe = base.iloc[:,14].valuesfrom sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_previsores = LabelEncoder()#lebels = labelencoder_previsores.fit_transform(previsores[:,1])
previsores[:,0] = labelencoder_previsores.fit_transform(previsores[:,0])
previsores[:,3] = labelencoder_previsores.fit_transform(previsores[:,3])
previsores[:,5] = labelencoder_previsores.fit_transform(previsores[:,5])
previsores[:,6] = labelencoder_previsores.fit_transform(previsores[:,6])
previsores[:,7] = labelencoder_previsores.fit_transform(previsores[:,7])
previsores[:,8] = labelencoder_previsores.fit_transform(previsores[:,8])
previsores[:,9] = labelencoder_previsores.fit_transform(previsores[:,9])
previsores[:,13] = labelencoder_previsores.fit_transform(previsores[:,13])onehotencoder = OneHotEncoder(categorical_features=[0])
previsores = onehotencoder.fit_transform(previsores).toarray()12 de janeiro de 2021 às 22:48 #23436Boa noite Jason, esse erro esta relacionado com a atualização do código fonte. Você pode fazer o download do código fonte atualizado através do link abaixo:
https://iaexpert.academy/topic/importante-atualizacao-do-codigo-fonte-e-recursos-para-download/
Fabio
13 de janeiro de 2021 às 14:15 #23448Fiz a alteração:
import pandas as pd
base = pd.read_csv(‘census.csv’)
#Separando os atributos previsores e classe
previsores = base.iloc[:, 8:9].values
classe = base.iloc[:, 14].valuesfrom sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
labelencoder_previsores = LabelEncoder()onehotencorder = ColumnTransformer(transformers=[(“OneHot”, OneHotEncoder(), [1,3,5,6,7,8,9,13])],remainder=’passthrough’)
previsores = onehotencorder.fit_transform(previsores).toarray()labelencorder_classe = LabelEncoder()
classe = labelencorder_classe.fit_transform(classe)from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
previsores = scaler.fit_transform(previsores)from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_previsores = LabelEncoder()#transformar str em int / variáveis categóricas em numéricas
#lebels = labelencoder_previsores.fit_transform(previsores[:,1])previsores[:,0] = labelencoder_previsores.fit_transform(previsores[:,0])
previsores[:,3] = labelencoder_previsores.fit_transform(previsores[:,3])
previsores[:,5] = labelencoder_previsores.fit_transform(previsores[:,5])
previsores[:,6] = labelencoder_previsores.fit_transform(previsores[:,6])
previsores[:,7] = labelencoder_previsores.fit_transform(previsores[:,7])
previsores[:,8] = labelencoder_previsores.fit_transform(previsores[:,8])
previsores[:,9] = labelencoder_previsores.fit_transform(previsores[:,9])
previsores[:,13] = labelencoder_previsores.fit_transform(previsores[:,13])onehotencorder = OneHotEncoder(categorical_features=[0])
previsores = onehotencorder.fit_transform(previsores).toarray()2 novos erros:
Ao executar: onehotencorder = OneHotEncoder(categorical_features=[0])
Erro:
return f(**kwargs)
TypeError: __init__() got an unexpected keyword argument ‘categorical_features’
Ao executar: previsores = onehotencorder.fit_transform(previsores).toarray()
Erro:
raise ValueError(
ValueError: all features must be in [0, 0] or [-1, 0]
13 de janeiro de 2021 às 22:38 #23455Boa noite Jason, com a atualização do código fonte o LabelEncoder não é utilizado na etapa dos previsores. Nesse caso, o código deverá ficar dessa forma:
import pandas as pd base = pd.read_csv('census.csv') previsores = base.iloc[:, 0:14].values classe = base.iloc[:, 14].values from sklearn.preprocessing import LabelEncoder, OneHotEncoder from sklearn.compose import ColumnTransformer labelencoder_previsores = LabelEncoder() onehotencorder = ColumnTransformer(transformers=[("OneHot", OneHotEncoder(), [1,3,5,6,7,8,9,13])],remainder='passthrough') previsores = onehotencorder.fit_transform(previsores).toarray() labelencorder_classe = LabelEncoder() classe = labelencorder_classe.fit_transform(classe) from sklearn.preprocessing import StandardScaler scaler = StandardScaler() previsores = scaler.fit_transform(previsores)
Fabio
- AutorPosts
- Você deve fazer login para responder a este tópico.