2 votes

Fonction de régression logistique utilisant Sklearn en Python

J'ai un problème avec ma fonction de régression logistique, j'utilise l'IDE Pycharm et sklearn.linear_model paquet LogisticRegression .

Mon débogueur affiche AttributeError 'tuple' object has no attribute 'fit' and 'predict' .

Codebelow :

def logistic_regression(df, y):
x_train, x_test, y_train, y_test = train_test_split(
    df, y, test_size=0.25, random_state=0)

sc = StandardScaler()
x_train = sc.fit_transform(x_train)
x_test = sc.transform(x_test)

clf = LogisticRegression(random_state=0, solver='sag',
                         penalty='l2', max_iter=1000, multi_class='multinomial'),
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)

return classification_metrics.print_metrics(y_test, y_pred, 'Logistic regression')

Quelqu'un peut-il aider à repérer l'erreur ? Parce que pour les autres fonctions, j'ai essayé fit et predict semblent bien.

2voto

Vidya Sekar Points 26

Il y a une petite erreur dans le code comme je l'ai mentionné dans le commentaire.

veuillez supprimer la virgule dans la création de l'objet du modèle de régression logistique.

Il n'existe pas non plus de fonction appelée classification_metrics.print_metrics

J'ai donc utilisé le metrics.classification_report

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
def logistic_regression(df, y):
    x_train, x_test, y_train, y_test = train_test_split(df, y, test_size=0.25, random_state=0)

    sc = StandardScaler()
    x_train = sc.fit_transform(x_train)
    x_test = sc.transform(x_test)

    clf = LogisticRegression(random_state=0, solver='sag', penalty='l2', max_iter=1000, multi_class='multinomial')
    clf.fit(x_train, y_train)
    y_pred = clf.predict(x_test)

    return metrics.classification_report(y_test, y_pred)

appel de fonction

logistic_regression(df, y)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X