1
resposta

[Dúvida] Eu nao consigo executar o codigo, memoria RAM é esgotada

Quando tento executar o codigo

from sklearn.compose import make_column_transformer
from sklearn.preprocessing import OneHotEncoder

colunas_categoricas = ['flight_id', 'departure_time', 'day', 'year','date']

one_hot_enc= make_column_transformer(
    (OneHotEncoder(sparse_output=False, handle_unknown= 'ignore'),
     colunas_categoricas),
    remainder='passthrough'
)

dados_encoded = one_hot_enc.fit_transform(dados)

dados_encoded = pd.DataFrame(dados_encoded, columns= one_hot_enc.get_feature_names_out())
dados_encoded

ele reinicia as execuções e diz que estorou a memoria RAM

1 resposta

Oii, Lizandra! Tudo bem?

A mensagem quer nos dizer que o código consumiu mais memória RAM do que a alocada para a sessão. A combinação de colunas com muitas categorias únicas, com a criação de matriz densa, consumiu a memória toda mesmos com os zeros.

Uma sugestão é utilizar o código disponibilizado pelo instrutor em Ver opinião do instrutor, onde se é removido o parâmetro sparse_output=False já que o padrão é esparsa. E adicionar menos atributos, porém necessários, que possuem um limite menor de categorias únicas. Segue o código:

from sklearn.compose import make_column_transformer
from sklearn.preprocessing import OneHotEncoder

colunas_categoricas = ['airline', 'aircraft_type', 'origin', 'day_name']

one_hot_enc = make_column_transformer(
    (OneHotEncoder(handle_unknown = 'ignore'),
    colunas_categoricas),
    remainder='passthrough')

dados = one_hot_enc.fit_transform(dados)
dados = pd.DataFrame(dados, columns=one_hot_enc.get_feature_names_out())
dados

Deixo também o notebook usado para teste: https://colab.research.google.com/drive/1ha_SeSNYYbl1yTJYdnOM7eFY7mIwI2KK?usp=sharing

Espero ter ajudado, conte sempre conosco para te auxiliar.

Bons estudos, Lizandra!