scikit-learn - TypeError: fit () отсутствует 1 обязательный позиционный аргумент: 'y' - PullRequest
0 голосов
/ 29 августа 2018
import numpy as np
import pandas as pd

dataset=pd.read_csv("/Users/rushirajparmar/Downloads/Social_network_Ads.csv",error_bad_lines = False)


X = dataset.iloc[:,[2,3]].values.  
Y = dataset.iloc[:,4].values

from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size =  0.25,random_state = 0) 

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X_train,Y_train)

y_pred = classifier.fit(X_test)

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(Y_test, y_pred)

Я только начал практиковать LogisticRegression, где я получаю эту ошибку. Я не могу понять, что не так. Я попытался найти его в Интернете, но это не помогло

y_pred = classifier.fit(X_test).values.ravel()

TypeError: fit() missing 1 required positional argument: 'y'

Ниже приведена ссылка для набора данных:

https://github.com/Avik-Jain/100-Days-Of-ML-Code/blob/master/datasets/Social_Network_Ads.csv

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы уже ввели данные тренировки в classifier.fit(X_train,Y_train). classifier - ваша модель, теперь вы хотите предсказать значения y (y_pred) для тестовых X данных. Следовательно, то, что вам нужно сделать, это

y_pred = classifier.predict(X_test)

Но что вы делаете, это

y_pred = classifier.fit(X_test)

Следовательно, вы получаете ошибку fit() missing 1 required positional argument: 'y', потому что при подгонке вам также нужна зависимая переменная y здесь.

Просто замените .fit на .predict в вышеупомянутой строке.

0 голосов
/ 29 августа 2018

Вы пытаетесь снова соответствовать вашему классификатору с вашими тестовыми данными:

y_pred = classifier.fit(X_test)

что, конечно, невозможно без прохождения также меток (отсюда и ошибка пропуска y); Я предполагаю, что на самом деле вы хотите получить прогнозы для ваших тестовых данных, и в этом случае вы должны использовать predict, а не fit:

y_pred = classifier.predict(X_test)
...