Ошибка типа: объект ‘LogisticRegression’ не вызывается при логистической регрессии

#python #scikit-learn #logistic-regression #cross-validation

#python #scikit-learn #логистическая регрессия #перекрестная проверка

Вопрос:

У меня возникла проблема, когда я попытался использовать логистическую регрессию с идеей определить прогнозируемое значение t в предпоследней строке. Ошибка: «Трассировка (последний последний вызов): строка 15, в t_pred = logreg (X_test) Ошибка типа: объект ‘LogisticRegression’ не вызывается»

 import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import accuracy_score
df=pd.read_csv('datos.csv')
X=df1 = df.iloc[:,1:5]
t=df.iloc[:,0]
X_train, X_test, t_train, t_test = train_test_split(X, t, test_size=0.2, random_state=0)
logreg=LogisticRegression(solver='lbfgs')
predicted = cross_val_predict(logreg, X_train, t_train, cv=10)
print(accuracy_score(t_train, predicted))
logreg.fit(X_train, t_train)
t_pred = logreg(X_test)
print(accuracy_score(t_test, t_pred))
  

Ответ №1:

Это связано с:

 t_pred = logreg(X_test)
  

Вам нужно использовать метод объекта logreg , а не предоставлять параметры непосредственно ему.

Обратите внимание, как вы использовали logreg.fit() . fit() это метод, который обрабатывает обучающие данные. Аналогично, вам нужно будет вызвать predict() , чтобы получить прогнозы для новых данных.

Попробуйте это:

 t_pred = logreg.predict(X_test)