我试图用高斯朴素贝叶斯“分类器”来预测经济周期。
数据(输入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
目标(输出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'
我做错了什么?如何解决此问题/错误?
答案 0 :(得分:34)
model = GaussianNB()。
你忘记了这个问题&#34;()&#34;
答案 1 :(得分:4)
每当您尝试初始化/定义类的对象时,您必须调用自己的构造函数为您创建一个对象。构造函数可能有参数或没有参数。在您的情况下, GaussianNB 是sklearn中的一个类,默认情况下具有非参数构造函数。
obj_model = GaussianNB()
因此,我们只使用空括号创建一个对象,这意味着默认构造函数。
答案 2 :(得分:1)
您忘记将()
放在模型gaussianNB
之后。
尝试在第6行中这样做:
model = GaussianNB()
我很确定它将解决问题。
答案 3 :(得分:0)
(function(){console.log(this)}).call(5) //Number {5}
祝你好运
答案 4 :(得分:0)
您只需要为模型添加 ()。
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)
这有效..