- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要提取在 sklearn.ensemble.BaggingClassifier 中训练的每个模型的概率。这样做的原因是为了估计 XGBoostClassifier 模型的不确定性。
为此,我创建了一个继承自 sklearn.ensemble.BaggingClassifier 的扩展类,并添加了一个允许获取这些概率的新方法。请注意,此问题与 ModuleNotFoundError: No module named 'sklearn.utils._joblib' 不同
我在下面展示了到目前为止我已经实现的代码片段:
必要的模块
from sklearn.ensemble import BaggingClassifier
from sklearn.ensemble.base import _partition_estimators
from sklearn.utils import check_array
from sklearn.utils.validation import check_is_fitted
import sklearn.utils as su
继承自BaggingClassifier
的子类
class EBaggingClassifier(BaggingClassifier):
"""
Extends the class BaggingClassifier fromsklearn
"""
def __init__(self,
base_estimator=None,
n_estimators=10,
max_samples=1.0,
max_features=1.0,
bootstrap=True,
bootstrap_features=False,
oob_score=False,
warm_start=False,
n_jobs=1,
random_state=None,
verbose=0):
super().__init__(
base_estimator,
n_estimators,
max_samples,
max_features,
bootstrap,
bootstrap_features,
oob_score,
warm_start,
n_jobs,
random_state,
verbose)
允许计算每个估计量概率的新方法定义如下。
def predict_proball(self, X):
"""
Computes the probability of each individual estimator
Parameters
----------
X : {array-like, sparse matrix} of shape = [n_samples, n_features]
The training input samples. Sparse matrices are accepted only if
they are supported by the base estimator.
Returns
-------
p : array of shape = [n_samples, n_classes]
The class probabilities of the input samples. The order of the
classes corresponds to that in the attribute `classes_`.
"""
check_is_fitted(self, "classes_")
# Check data
X = check_array(
X, accept_sparse=['csr', 'csc'], dtype=None,
force_all_finite=False
)
if self.n_features_ != X.shape[1]:
raise ValueError("Number of features of the model must "
"match the input. Model n_features is {0} and "
"input n_features is {1}."
"".format(self.n_features_, X.shape[1]))
# Parallel loop
n_jobs, n_estimators, starts = _partition_estimators(self.n_estimators,
self.n_jobs)
all_proba = su._joblib.Parallel(n_jobs=n_jobs, verbose=self.verbose,
**self._parallel_args())(
su._joblib.delayed(BaggingClassifier._parallel_predict_proba)(
self.estimators_[starts[i]:starts[i + 1]],
self.estimators_features_[starts[i]:starts[i + 1]],
X,
self.n_classes_)
for i in range(n_jobs))
return all_proba
我使用 XGBoostClassifier
作为基本估计器实例化此类:
base_estimator = XGBoostClassifier(**params)
estimator = EBaggingClassifier(base_estimator=base_estimator, max_samples=0.8, n_estimators=10)
然后使用 estimator.fit(X, y)
进行估计器
,其中 X
和 y
是pandas.DataFrame
对象。当我尝试运行 estimator.predict_proball(X)
我得到
>>> estimator.predict_proball(X)
AttributeError: module 'sklearn.utils' has no attribute '_joblib'
有人知道为什么会发生这种情况吗?查看BaggingClassifier script函数“sklearn.utils._joblib”应该可用。
仅供引用:
>>> sklearn.__version__
'0.19.2'
最佳答案
问题出在您的 scikit-learn
版本上。版本'0.19.2'
没有_joblib
,可以引用here 。或者您可以使用以下命令进行检查:
dir(su)
您需要更新scikit-learn
,最新版本有_joblib
,可以引用here .
您在版本'0.20.2'
中获得以下内容:
>>> dir(su)
['Bunch', 'DataConversionWarning', 'IS_PYPY', 'Memory', 'Parallel', 'Sequence',
'_IS_32BIT', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
'__loader__', '__name__', '__package__', '__path__', '__spec__', '_joblib',
'_show_versions', 'as_float_array', 'assert_all_finite', 'axis0_safe_slice',
'check_X_y', 'check_array', 'check_consistent_length', 'check_random_state',
'check_symmetric', 'class_weight', 'column_or_1d', 'compute_class_weight',
'compute_sample_weight', 'cpu_count', 'delayed', 'deprecate', 'deprecated',
'deprecation', 'effective_n_jobs', 'fixes', 'gen_batches', 'gen_even_slices',
'get_chunk_n_rows', 'get_config', 'hash', 'indexable', 'indices_to_mask',
'is_scalar_nan', 'issparse', 'msg', 'murmurhash', 'murmurhash3_32', 'np',
'numbers', 'parallel_backend', 'platform', 'register_parallel_backend',
'resample', 'safe_indexing', 'safe_mask', 'safe_sqr', 'shuffle', 'struct',
'tosequence', 'validation', 'warnings']
您可以按如下方式更新scikit-learn
:
pip install -U scikit-learn
关于python - 属性错误: module "sklearn.utils" has no attribute "_joblib" when inheriting class `sklearn.ensemble.BaggingClassifier.` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56268777/
假设我有一个名为“Tlr6”的基因(见下图),我想知道如何在 R 中检索染色体上该基因的起始值和终止值?例如图中,起始值为64952031,结束值为64960097。 图片网址为here 。这里的基因
假设我有一个名为“Tlr6”的基因(见下图),我想知道如何在 R 中检索染色体上该基因的起始值和终止值?例如图中,起始值为64952031,结束值为64960097。 图片网址为here 。这里的基因
我正在尝试使用 h2o.Ensemble 在 h2o 中运行堆叠集成并收到此错误。 Error in h2o.randomForest(x = x, y = y, training_frame = t
Ensembles 示例应用程序 Idiomatic 是否应该无需配置或链接到库(如 Dropbox)就可以工作?当尝试启动它时,我得到这个: [...] Ensembles Basic Suppor
我是 Zookeeper 的新手,正在我的系统中使用 Zookeeper Ensemble 设置 Solr Cloud,当我尝试同时运行所有 Zookeeper 时出现问题,三个 Zookeeper
书上说, “An ensemble identifier is used to match stores across devices. It is important that this be th
我正在使用此代码来检测 face_spoofing import numpy as np import cv2 import joblib from face_detector import get_
如何在 Coq 中创建一组元素? 我已经查看了 Ensembles 的文档,但我没有看到任何构建 Ensembles 的方法。例如,在 Haskell 中,我将使用“Data.Set.fromList
我最近一直在与 zookeeper 合作来满足分布式应用程序的可靠性要求。我正在使用三台计算机,我遵循了本教程: http://sanjivblogs.blogspot.ie/2011/04/depl
我刚刚加入 python 和 biopython 工作,喜欢连接 Ensebml 并获取一些序列和其他数据,如 TSS、一些基因列表等。但我的问题是我似乎无法在 biopython 中找到任何方法或模
我一直在学习sklearn.ensemble,例如 clf =AdaBoostClassifier(svm.LinearSVC(),n_estimators=10,max_samples=0.1,)
我在 R 中运行 h2o.ensemble 时遇到错误。这是错误输出 [1] "Cross-validating and training base learner 1: h2o.glm.wrappe
我正在尝试通过带 Ensembles 的 IIS 8 Webdav 后端使用同步。我遇到的问题是第一次同步工作正常,但是当我尝试第二次或在第二个单元(在本例中为 iPad)上同步时,我收到服务器错误
我正在尝试在 python 中实现多个学习分类器。我在代码中有 5 个随机森林分类器,但现在我无法从 sklearn.ensemble 导入 VotingClassifier 函数。 当我写这篇文章时
我正在尝试使用随机森林在 Python 中执行聚类。在随机森林的 R 实现中,您可以设置一个标志来获取邻近矩阵。我似乎无法在随机森林的 python scikit 版本中找到任何类似的东西。有谁知道
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我正在尝试从 ensembl 运行此脚本 restapi.py ,但它会在下面生成此错误。请帮我解决它。 restapi.py import requests, sys server = "http:
我的计划是购买 Ensembles 2(以利用速度/效率等),但我试图确保我能够首先让它工作(在测试 Swift 项目中)。为此,我正在尝试使用 v1。 使用 Simple Sync with Swi
我们一直在测试 Ensembles 并根据我们当前的同步方法制定迁移策略。如果设备使用相同的 iCloud 帐户,我们会广泛使用 plist 来管理与 iCloud 配合良好的应用程序设置。 问题:使
我正在参加 Kaggle 竞赛 (data here) ,我在使用 scikit-learn 的 GradientBoostingRegressor 时遇到了问题。比赛使用均方根误差 (RMLSE)
我是一名优秀的程序员,十分优秀!