SelfTrainingClassifier#
- class sklearn.semi_supervised.SelfTrainingClassifier(estimator=None, base_estimator='deprecated', threshold=0.75, criterion='threshold', k_best=10, max_iter=10, verbose=False)[source]#
自训练分类器。
这个元估计器允许给定的有监督分类器作为半监督分类器运行,使其能够从未标记数据中学习。它通过迭代地预测未标记数据的伪标签并将其添加到训练集中来实现这一点。
分类器将继续迭代,直到达到 max_iter,或者在上次迭代中没有伪标签被添加到训练集中。
更多信息请参阅用户指南。
- 参数:
- estimator估计器对象
一个实现
fit
和predict_proba
的估计器对象。调用fit
方法将拟合所传入估计器的一个克隆,该克隆将存储在estimator_
属性中。1.6 版本新增:
estimator
被添加以替换base_estimator
。- base_estimator估计器对象
一个实现
fit
和predict_proba
的估计器对象。调用fit
方法将拟合所传入估计器的一个克隆,该克隆将存储在estimator_
属性中。自 1.6 版本废弃:
base_estimator
在 1.6 版本中已废弃,并将在 1.8 版本中移除。请改用estimator
。- threshold浮点数, 默认值=0.75
与
criterion='threshold'
一起使用的决策阈值。应在 [0, 1) 范围内。当使用'threshold'
准则时,应使用良好校准的分类器。- criterion{‘threshold’, ‘k_best’}, 默认值=’threshold’
用于选择要添加到训练集中的标签的选择准则。如果为
'threshold'
,则将预测概率高于threshold
的伪标签添加到数据集中。如果为'k_best'
,则将预测概率最高的k_best
个伪标签添加到数据集中。当使用“threshold”准则时,应使用良好校准的分类器。- k_best整数, 默认值=10
每次迭代中要添加的样本数量。仅在
criterion='k_best'
时使用。- max_iter整数或 None, 默认值=10
允许的最大迭代次数。应大于或等于 0。如果为
None
,分类器将继续预测标签,直到没有新的伪标签被添加,或者所有未标记的样本都被标记。- verbose布尔值, 默认值=False
启用详细输出。
- 属性:
- estimator_估计器对象
已拟合的估计器。
- classes_ndarray 或 ndarray 列表, 形状为 (n_classes,)
每个输出的类别标签。(取自训练过的
estimator_
)。- transduction_形状为 (n_samples,) 的 ndarray
用于分类器最终拟合的标签,包括在拟合期间添加的伪标签。
- labeled_iter_形状为 (n_samples,) 的 ndarray
每个样本被标记的迭代次数。当样本的迭代次数为 0 时,表示该样本在原始数据集中已被标记。当样本的迭代次数为 -1 时,表示该样本在任何迭代中都未被标记。
- n_features_in_整数
在拟合期间看到的特征数量。
0.24 版本新增。
- feature_names_in_形状为 (
n_features_in_
,) 的 ndarray 在拟合期间看到的特征名称。仅当
X
的所有特征名称均为字符串时才定义。1.0 版本新增。
- n_iter_整数
自训练的轮数,即基本估计器在训练集重新标记的变体上拟合的次数。
- termination_condition_{‘max_iter’, ‘no_change’, ‘all_labeled’}
拟合停止的原因。
'max_iter'
:n_iter_
达到max_iter
。'no_change'
: 未预测到新标签。'all_labeled'
: 在达到max_iter
之前,所有未标记的样本都已标记。
另请参阅
LabelPropagation
标签传播分类器。
LabelSpreading
半监督学习的标签扩散模型。
参考文献
示例
>>> import numpy as np >>> from sklearn import datasets >>> from sklearn.semi_supervised import SelfTrainingClassifier >>> from sklearn.svm import SVC >>> rng = np.random.RandomState(42) >>> iris = datasets.load_iris() >>> random_unlabeled_points = rng.rand(iris.target.shape[0]) < 0.3 >>> iris.target[random_unlabeled_points] = -1 >>> svc = SVC(probability=True, gamma="auto") >>> self_training_model = SelfTrainingClassifier(svc) >>> self_training_model.fit(iris.data, iris.target) SelfTrainingClassifier(...)
- decision_function(X, **params)[source]#
调用
estimator
的决策函数。- 参数:
- X{类数组, 稀疏矩阵}, 形状为 (n_samples, n_features)
表示数据的数组。
- **params字符串到对象的字典
要传递给底层估计器的
decision_function
方法的参数。1.6 版本新增: 仅当
enable_metadata_routing=True
时可用,可以通过使用sklearn.set_config(enable_metadata_routing=True)
进行设置。有关更多详细信息,请参阅元数据路由用户指南。
- 返回:
- y形状为 (n_samples, n_features) 的 ndarray
estimator
的决策函数结果。
- fit(X, y, **params)[source]#
使用
X
、y
作为训练数据拟合自训练分类器。- 参数:
- X{类数组, 稀疏矩阵}, 形状为 (n_samples, n_features)
表示数据的数组。
- y{类数组, 稀疏矩阵}, 形状为 (n_samples,)
表示标签的数组。未标记的样本应具有标签 -1。
- **params字典
要传递给底层估计器的参数。
1.6 版本新增: 仅当
enable_metadata_routing=True
时可用,可以通过使用sklearn.set_config(enable_metadata_routing=True)
进行设置。有关更多详细信息,请参阅元数据路由用户指南。
- 返回:
- self对象
已拟合的估计器。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查阅用户指南,了解路由机制的工作原理。
1.6 版本新增。
- 返回:
- routingMetadataRouter
一个封装路由信息的
MetadataRouter
。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deep布尔值, 默认值=True
如果为 True,将返回此估计器及其包含的作为估计器的子对象的参数。
- 返回:
- params字典
参数名称映射到其值。
- predict(X, **params)[source]#
预测
X
的类别。- 参数:
- X{类数组, 稀疏矩阵}, 形状为 (n_samples, n_features)
表示数据的数组。
- **params字符串到对象的字典
要传递给底层估计器的
predict
方法的参数。1.6 版本新增: 仅当
enable_metadata_routing=True
时可用,可以通过使用sklearn.set_config(enable_metadata_routing=True)
进行设置。有关更多详细信息,请参阅元数据路由用户指南。
- 返回:
- y形状为 (n_samples,) 的 ndarray
带有预测标签的数组。
- predict_log_proba(X, **params)[source]#
预测每个可能结果的对数概率。
- 参数:
- X{类数组, 稀疏矩阵}, 形状为 (n_samples, n_features)
表示数据的数组。
- **params字符串到对象的字典
要传递给底层估计器的
predict_log_proba
方法的参数。1.6 版本新增: 仅当
enable_metadata_routing=True
时可用,可以通过使用sklearn.set_config(enable_metadata_routing=True)
进行设置。有关更多详细信息,请参阅元数据路由用户指南。
- 返回:
- y形状为 (n_samples, n_features) 的 ndarray
带有对数预测概率的数组。
- predict_proba(X, **params)[source]#
预测每个可能结果的概率。
- 参数:
- X{类数组, 稀疏矩阵}, 形状为 (n_samples, n_features)
表示数据的数组。
- **params字符串到对象的字典
要传递给底层估计器的
predict_proba
方法的参数。1.6 版本新增: 仅当
enable_metadata_routing=True
时可用,可以通过使用sklearn.set_config(enable_metadata_routing=True)
进行设置。有关更多详细信息,请参阅元数据路由用户指南。
- 返回:
- y形状为 (n_samples, n_features) 的 ndarray
带有预测概率的数组。
- score(X, y, **params)[source]#
调用
estimator
上的评分。- 参数:
- X{类数组, 稀疏矩阵}, 形状为 (n_samples, n_features)
表示数据的数组。
- y类数组, 形状为 (n_samples,)
表示标签的数组。
- **params字符串到对象的字典
要传递给底层估计器的
score
方法的参数。1.6 版本新增: 仅当
enable_metadata_routing=True
时可用,可以通过使用sklearn.set_config(enable_metadata_routing=True)
进行设置。有关更多详细信息,请参阅元数据路由用户指南。
- 返回:
- score浮点数
调用
estimator
上的评分结果。