是否可以将sklearn.ensemble.BaggingClassifier与GaussianNB分类器一起使用?

时间:2014-10-27 16:58:14

标签: scikit-learn

当我尝试将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'

非常感谢任何帮助:)

0 个答案:

没有答案