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 2 posts - 1 até 2 (de 2 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

    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

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