当我尝试将BaggingClassifier与GaussianNB朴素贝叶斯分类器一起使用时出现错误,我不确定它们是否可以一起使用。
我的问题是。 是否可以将sklearn.ensemble.BaggingClassifier与GaussianNB分类器一起使用?
更多信息: -
我想使用BaggingClassifier集合方法来训练GaussianNB分类器,其中包含300多个预测变量列的随机子集序列。以下是我用来初始化的参数
clf = BaggingClassifier(GaussianNB(), n_estimators=100, max_samples=1.0, max_features=5, bootstrap = False, bootstrap_features = True, random_state=0)
我的数据集有超过300列,只有一小部分适用于我正在使用的每个不同且唯一的数据集的预测(每个都是股票市场价格数据的时间序列)
我可能会放弃并尝试自己编写代码,但我是非常新的sklearn所以我不想重新发明轮子。也许还有另一种机制可以做我想做的事情。
此代码有效
clf = BaggingClassifier(n_estimators=100, max_samples=1.0, max_features=5, bootstrap = False, bootstrap_features = True, random_state=0)#, n_jobs = -1)
clf.fit(train_input, train_target)
pa = predicted_answer = clf.predict(test_input)
此代码失败
clf = BaggingClassifier(GaussianNB(), n_estimators=100, max_samples=1.0, max_features=5, bootstrap = False, bootstrap_features = True, random_state=0)#, n_jobs = -1)
clf.fit(train_input, train_target)
pa = predicted_answer = clf.predict(test_input)
出现此错误
BaggingClassifier(base_estimator=None, bootstrap=False,
bootstrap_features=True, max_features=5, max_samples=1.0,
n_estimators=100, n_jobs=1, oob_score=False, random_state=0,
verbose=0)
Traceback (most recent call last):
File "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 106, in exec_file
exec_code(code, file, global_variables)
File "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 82, in exec_code
exec(code_obj, global_variables)
File "C:\Users\Jason\Documents\Visual Studio 2010\Projects\jpr-automation\MLTM\MLTM\MLTM\Trading.py", line 347, in <module>
ret_vals = [MakeResultFiles(input) for input in inputs]
File "C:\Users\Jason\Documents\Visual Studio 2010\Projects\jpr-automation\MLTM\MLTM\MLTM\Trading.py", line 271, in MakeResultFiles
pa = predicted_answer = clf.predict(test_input)
File "C:\Anaconda\lib\site-packages\sklearn\ensemble\bagging.py", line 517, in predict
return self.classes_.take(np.argmax(self.predict_proba(X), axis=1),
File "C:\Anaconda\lib\site-packages\sklearn\ensemble\bagging.py", line 560, in predict_proba
for i in range(n_jobs))
File "C:\Anaconda\lib\site-packages\sklearn\externals\joblib\parallel.py", line 653, in __call__
self.dispatch(function, args, kwargs)
File "C:\Anaconda\lib\site-packages\sklearn\externals\joblib\parallel.py", line 400, in dispatch
job = ImmediateApply(func, args, kwargs)
File "C:\Anaconda\lib\site-packages\sklearn\externals\joblib\parallel.py", line 138, in __init__
self.results = func(*args, **kwargs)
File "C:\Anaconda\lib\site-packages\sklearn\ensemble\bagging.py", line 130, in _parallel_predict_proba
proba_estimator = estimator.predict_proba(X[:, features])
File "C:\Anaconda\lib\site-packages\sklearn\naive_bayes.py", line 100, in predict_proba
return np.exp(self.predict_log_proba(X))
File "C:\Anaconda\lib\site-packages\sklearn\naive_bayes.py", line 82, in predict_log_proba
log_prob_x = logsumexp(jll, axis=1)
File "C:\Anaconda\lib\site-packages\sklearn\utils\extmath.py", line 340, in logsumexp
out = np.log(np.sum(np.exp(arr - vmax), axis=0))
AttributeError: 'float' object has no attribute 'exp'
非常感谢任何帮助:)