Ответ 1
Вы забыли паратез "()":
model = GaussianNB()
Я пытаюсь предсказать экономические циклы с использованием гауссова наивного байеса "Классификатор".
данные (вход X):
SPY Interest Rate Unemployment Employment CPI
Date
1997-01-02 56.05 7.82 9.7 3399.9 159.100
1997-02-03 56.58 7.65 9.8 3402.8 159.600
1997-03-03 54.09 7.90 9.9 3414.7 160.000
target (выход Y):
Economy
0 Expansion
1 Expansion
2 Expansion
3 Expansion
Ниже мой код:
from sklearn.naive_bayes import GaussianNB
from sklearn import metrics
from sklearn.cross_validation import train_test_split
X = data
Y = target
model = GaussianNB
X_train, X_test, Y_train, Y_test = train_test_split(X,Y)
model.fit(X_train, Y_train)
Ниже приведена ошибка:
TypeError Traceback (most recent call last)
<ipython-input-132-b0975752a19f> in <module>()
6 model = GaussianNB
7 X_train, X_test, Y_train, Y_test = train_test_split(X,Y)
----> 8 model.fit(X_train, Y_train)
TypeError: fit() missing 1 required positional argument: 'y'
Что я делаю не так? Как я могу решить эту проблему/ошибку?
Вы забыли паратез "()":
model = GaussianNB()
Всякий раз, когда вы пытаетесь инициализировать/определить объект класса, вы должны вызвать его собственный конструктор, чтобы создать один объект для вас. Конструктор может иметь параметры или не иметь параметров. В вашем случае GaussianNB - это класс из sklearn, который по умолчанию имеет непараметрический конструктор.
obj_model = GaussianNB()
Поэтому мы просто создаем объект с пустыми скобками, который просто означает конструктор по умолчанию.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.35, '
'random_state=100)
from sklearn.linear_model import LinearRegression
lm = LinearRegression
lm.fit(X_test,y_test)
Удачи