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

    #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 1 ano, 3 meses atrás por Renan.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Você deve fazer login para responder a este tópico.