自训练分类器#
- 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_形状为 (n_classes,) 的 ndarray 或 ndarray 列表
- 每个输出的类别标签。(取自训练的 - 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之前,所有未标记的样本都被标记。
 
 
 - 参考文献 - 示例 - >>> 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) 的 {类数组,稀疏矩阵}
- 表示数据的数组。 
- **paramsstr -> 对象的字典
- 传递给底层估计器的 - 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。 
- **paramsdict
- 传递给底层估计器的参数。 - 版本 1.6 中新增: 仅当 - enable_metadata_routing=True时可用,可以通过- sklearn.set_config(enable_metadata_routing=True)设置。更多详情请参见 元数据路由用户指南。
 
- 返回:
- selfobject
- 已拟合的估计器。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看 用户指南,了解路由机制的工作原理。 - 版本 1.6 中新增。 - 返回:
- routingMetadataRouter
- 一个 - MetadataRouter,封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deepbool,默认为 True
- 如果为 True,则将返回此估计器和包含的作为估计器的子对象的的参数。 
 
- 返回:
- paramsdict
- 参数名称与其值的映射。 
 
 
 - predict(X, **params)[source]#
- 预测 - X的类别。- 参数:
- X形状为 (n_samples, n_features) 的 {类数组,稀疏矩阵}
- 表示数据的数组。 
- **paramsstr -> 对象的字典
- 传递给底层估计器的 - 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) 的 {类数组,稀疏矩阵}
- 表示数据的数组。 
- **paramsstr -> 对象的字典
- 传递给底层估计器的 - 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) 的 {类数组,稀疏矩阵}
- 表示数据的数组。 
- **paramsstr -> 对象的字典
- 传递给底层估计器的 - 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上调用 score。- 参数:
- X形状为 (n_samples, n_features) 的 {类数组,稀疏矩阵}
- 表示数据的数组。 
- y形状为 (n_samples,) 的类数组
- 表示标签的数组。 
- **paramsstr -> 对象的字典
- 传递给底层估计器的 - score方法的参数。- 版本 1.6 中新增: 仅当 - enable_metadata_routing=True时可用,可以通过- sklearn.set_config(enable_metadata_routing=True)设置。更多详情请参见 元数据路由用户指南。
 
- 返回:
- scorefloat
- 在 - estimator上调用 score 的结果。
 
 
 
 
     
 
 
