TypeError: fit() fehlt 1 erforderliche positionelle argument: 'y'
Ich versuche zur Prognose von wirtschaftlichen Zyklen mit Gauß-Naive Bayes "Classifier".
Daten (Eingang 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
Ziel (output Y) :
Economy
0 Expansion
1 Expansion
2 Expansion
3 Expansion
Unten ist mein code:
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)
Unten ist Fehler:
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'
Was mache ich falsch? Wie kann ich dieses Problem beheben /Fehler ?
model = GaussianNB()
- Vielen Dank.. allerdings bekam ich eine andere Fehlermeldung jetzt. Irgendeine Idee wie es zu lösen?
/Users/d/anaconda/lib/python3.4/site-packages/sklearn/utils/validation.py:515: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). y = column_or_1d(y, warn=True)
- Ich änderte die Linie 5 zu
Y = target.values.ravel()
- und es funktionierte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast vergessen die paranthesis "()":
Immer, wenn Sie versuchen zu initialisieren/definieren Sie ein Objekt von einer Klasse, die Sie anrufen müssen, seine eigenen Konstruktor zu erstellen, die ein Objekt für Sie. Der Konstruktor kann Parameter haben, oder keine. In Ihrem Fall GaussianNB ist eine Klasse von sklearn die eine nicht-parametrische Konstruktor standardmäßig.
So einfach erzeugen wir ein Objekt mit leeren Klammern-das bedeutet einfach default-Konstruktor.
Glück