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

Scikit learn 是否可以将sklearn.ensemble.BaggingClassifier与GaussianNB分类器一起使用?,scikit-learn,Scikit Learn,当我尝试将BaggingClassifier与GaussianNB naive bayes分类器一起使用时,我遇到了一个错误,我不确定是否可以将它们一起使用 我的问题是。是否可以将sklearn.ensemble.BaggingClassifier与GaussianNB分类器一起使用 进一步资料:- 我想使用BaggingClassifier集成方法来训练GaussianNB分类器,使用我的300+预测列的随机子集序列。以下是我用来初始化的参数 clf = BaggingClassifier(G

当我尝试将BaggingClassifier与GaussianNB naive bayes分类器一起使用时,我遇到了一个错误,我不确定是否可以将它们一起使用

我的问题是。是否可以将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多列,只有一小部分适合预测我正在使用的每个不同且独特的数据集,每个数据集都是股票市场价格数据的时间序列

我可能会放弃并尝试自己编写代码,但我对SKL的学习非常陌生,所以我不想重新发明轮子。也许还有另一种机制来做我想做的事情

此代码有效

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'

非常感谢您的帮助:

在这里很好用。您将不得不发布一些简单的示例输入,这会导致失败。还有,哪个scikit学习版本?非常好,谢谢。我将缩减我的数据集,看看是否可以跟踪问题。您是否使用我引用的代码进行了测试?你认为数据有问题吗?再次感谢:ps.正在运行sklearn.\uuuuu版本\uuuuuu0.15.2是的。数据生成了一些随机值,代码运行时没有问题……也许是数据帧索引造成了问题。我会调查的。再次感谢您的帮助:@larsmans它不喜欢布尔列。我使用test_input.astypenp.float64将整个输入数据帧转换为float64,它运行良好。再次感谢你的帮助。我不确定是否应该将此记录为bug。