在Python中使用Sklearn进行Logistic回归函数

时间:2020-10-14 13:49:02

标签: python logistic-regression

我的逻辑回归函数有问题,我正在使用Pycharm IDE和sklearn.linear_model软件包LogisticRegression

我的调试器显示AttributeError 'tuple' object has no attribute 'fit' and 'predict'

以下代码:

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')

有人可以在这里发现错误吗?因为对于其他功能,我尝试了fitpredict似乎很好。

1 个答案:

答案 0 :(得分:2)

正如我在评论中提到的那样,代码中存在小错误。

请在Logistic回归模型对象创建中删除逗号。

也没有名为classification_metrics.print_metrics

的函数

所以我用过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)

函数调用

logistic_regression(df, y)