Problemas com o SMOTE e TOMEKLINKS

Home Fóruns Fórum Machine Learning e Data Science com Python de A à Z Problemas com o SMOTE e TOMEKLINKS

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #29996
    Renan
    Participante

      Estou tendo problemas para utilizar as bibliotecas SMOTE e TOMEKLINKS.

      Primeiro que não existe mais o comando “fit_sample”, depois de pesquisar, descobri que o método atual é somente fit.

      Porém mesmo assim estou com problemas.

      Segue o código abaixo e o erro:

       

      import pandas as pd
      from sklearn.preprocessing import LabelEncoder, MinMaxScaler, OneHotEncoder
      from sklearn.compose import ColumnTransformer
      from sklearn.metrics import accuracy_score
      from sklearn.model_selection import train_test_split, cross_val_score
      from sklearn.neural_network import MLPClassifier
      import numpy as np
      import seaborn as sns
      from imblearn.under_sampling import TomekLinks #undersampling
      from imblearn.over_sampling import SMOTE
      
      data = pd.read_excel('abc_2.xls')
      
      data = data[['Curva A/B/C', 'Classificador 1', 'Classificador 2', 'Classificador 3',
      'Classificador 4', 'Classificador 5', 'Analise']]
      
      enc_curva = LabelEncoder()
      enc_1 = LabelEncoder()
      enc_2 = LabelEncoder()
      enc_3 = LabelEncoder()
      enc_4 = LabelEncoder()
      enc_5 = LabelEncoder()
      enc_analise = LabelEncoder()
      
      data['Curva A/B/C'] = enc_curva.fit_transform(data['Curva A/B/C'])
      data['Classificador 1'] = enc_1.fit_transform(data['Classificador 1'])
      data['Classificador 2'] = enc_2.fit_transform(data['Classificador 2'])
      data['Classificador 3'] = enc_3.fit_transform(data['Classificador 3'])
      data['Classificador 4'] = enc_4.fit_transform(data['Classificador 4'])
      data['Classificador 5'] = enc_5.fit_transform(data['Classificador 5'])
      data['Analise'] = enc_analise.fit_transform(data['Analise'])
      
      previsores = data.iloc[:,0:6].values
      venda = data.iloc[:,6].values
      
      tl = TomekLinks(sampling_strategy='all')
      x_under, y_under = tl.fit(previsores, venda)

       

      Quando executo essa última linha do código até então, eu tenho o seguinte erro:

       

      “TypeError: cannot unpack non-iterable TomekLinks object”

       

      Como faço pra resolver esse problema?

       

      Obrigado!

      #30024
      Fábio Spak
      Participante

        Olá Renan, fiz os testes com o código da vídeo aula e a função fit_sample esta funcionando normalmente. O que pode estar acontecendo é que entre a criação do Smote e do TomeLinks você precisa recriar as etapas de criação de X_census e y_census. Consegue fazer um novo teste?

        Fabio

        #32640
        Renan
        Participante

          Ah, entendi. Então eu só posso usar as bibliotecas com esse dataset que vc citou né? Já que quando faço com outras base de dados ele não funciona.

          • Esta resposta foi modificada 2 anos, 12 meses atrás por Renan.
          #44775
          Denny Ceccon
          Moderador

            Na verdade não, mas só seria possível dizer inspecionando melhor os dados, como você está carregando um arquivo de Excel talvez precise de alguma configuração adicional.

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.