Nu支持向量分类器#
- class sklearn.svm.NuSVC(*, nu=0.5, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', break_ties=False, random_state=None)[source]#
- Nu支持向量分类器。 - 类似于SVC,但是使用参数来控制支持向量的数量。 - 该实现基于libsvm。 - 更多信息请阅读用户指南。 - 参数:
- nufloat, 默认值=0.5
- 误差边界的比例上限(参见 用户指南)以及支持向量的比例下限。应在区间 (0, 1] 内。 
- kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} 或可调用对象,默认为’rbf’
- 指定算法中使用的核类型。如果没有给出,则将使用“rbf”。如果给定可调用对象,则将其用于预计算核矩阵。有关不同核类型的直观可视化,请参见 使用不同的 SVM 核绘制分类边界。 
- degreeint,默认为 3
- 多项式核函数('poly')的阶数。必须是非负数。其他所有内核都忽略此参数。 
- gamma{‘scale’, ‘auto’} 或 float,默认为’scale’
- “rbf”、“poly”和“sigmoid”的核系数。 - 如果传递 - gamma='scale'(默认值),则它使用 1 / (n_features * X.var()) 作为 gamma 的值,
- 如果为“auto”,则使用 1 / n_features 
- 如果为浮点数,则必须是非负数。 
 - 0.22 版本中的更改: - gamma的默认值已从“auto”更改为“scale”。
- coef0float,默认为 0.0
- 核函数中的独立项。它仅在“poly”和“sigmoid”中很重要。 
- shrinkingbool,默认为 True
- 是否使用收缩启发式算法。参见 用户指南。 
- probabilitybool,默认为 False
- 是否启用概率估计。必须在调用 - fit之前启用此功能,因为它会在内部使用 5 倍交叉验证,这会降低该方法的速度,并且- predict_proba可能与- predict不一致。在 用户指南 中了解更多信息。
- tolfloat,默认为 1e-3
- 停止准则的容差。 
- cache_sizefloat,默认为 200
- 指定内核缓存的大小(以 MB 为单位)。 
- class_weight{dict, ‘balanced’},默认为 None
- 对于 SVC,将类 i 的参数 C 设置为 class_weight[i]*C。如果没有给出,则所有类都应该具有权重 1。“balanced”模式使用 y 的值来自动调整权重,使其与类频率成反比,如 - n_samples / (n_classes * np.bincount(y))。
- verbosebool,默认为 False
- 启用详细输出。请注意,此设置利用了 libsvm 中的每个进程运行时设置,如果启用该设置,则可能无法在多线程环境中正常工作。 
- max_iterint,默认为 -1
- 求解器中迭代次数的硬性限制,或 -1 表示无限制。 
- decision_function_shape{‘ovo’, ‘ovr’},默认为’ovr’
- 是返回形状为 (n_samples, n_classes) 的一对多 (‘ovr’) 决策函数(与所有其他分类器一样),还是返回 libsvm 的原始一对一 (‘ovo’) 决策函数,其形状为 (n_samples, n_classes * (n_classes - 1) / 2)。但是,一对一 (‘ovo’) 始终用作多类策略。对于二元分类,忽略此参数。 - 0.19 版本中的更改: decision_function_shape 默认值为“ovr”。 - 0.17 版本中添加: decision_function_shape='ovr' 是推荐的。 - 0.17 版本中的更改: 已弃用decision_function_shape='ovo' 和 None。 
- break_tiesbool,默认为 False
- 如果为真, - decision_function_shape='ovr',并且类数 > 2,predict 将根据 decision_function 的置信度值来打破平局;否则,返回平局类中的第一个类。请注意,与简单的预测相比,打破平局的计算成本相对较高。有关其与- decision_function_shape='ovr'一起使用的示例,请参见 SVM 平局打破示例。- 0.22 版本中添加。 
- random_stateint、RandomState 实例或 None,默认为 None
- 控制用于对数据进行混洗以进行概率估计的伪随机数生成。当 - probability为 False 时忽略。传递一个整数以在多次函数调用中获得可重复的输出。参见 词汇表。
 
- 属性:
- class_weight_形状为 (n_classes,) 的 ndarray
- 每个类的参数 C 的乘数。根据 - class_weight参数计算。
- classes_形状为 (n_classes,) 的 ndarray
- 唯一的类标签。 
- coef_形状为 (n_classes * (n_classes -1) / 2, n_features) 的 ndarray
- 当 - kernel="linear"时分配给特征的权重。
- dual_coef_形状为 (n_classes - 1, n_SV) 的 ndarray
- 决策函数中支持向量的对偶系数(参见 数学公式),乘以它们的 target。对于多类,所有 1 对 1 分类器的系数。在多类情况下,系数的布局有点复杂。有关详细信息,请参见 用户指南的多类部分。 
- fit_status_int
- 如果正确拟合则为 0,如果算法没有收敛则为 1。 
- intercept_形状为 (n_classes * (n_classes - 1) / 2,) 的 ndarray
- 决策函数中的常数。 
- n_features_in_int
- 在 拟合过程中观察到的特征数量。 - 在 0.24 版本中添加。 
- feature_names_in_形状为 (n_features_in_,) 的 ndarray
- 在 拟合过程中观察到的特征名称。仅当 - X的特征名称全部为字符串时定义。- 在 1.0 版本中添加。 
- n_iter_形状为 (n_classes * (n_classes - 1) // 2,) 的 ndarray
- 优化例程拟合模型所运行的迭代次数。此属性的形状取决于优化的模型数量,而这又取决于类的数量。 - 在 1.1 版本中添加。 
- support_形状为 (n_SV,) 的 ndarray
- 支持向量的索引。 
- support_vectors_形状为 (n_SV, n_features) 的 ndarray
- 支持向量。 
- n_support_形状为 (n_classes,),dtype=int32 的 ndarray
- 每类的支持向量数量。 
- fit_status_int
- 如果正确拟合则为 0,如果算法没有收敛则为 1。 
- probA_形状为 (n_classes * (n_classes - 1) / 2,) 的 ndarray
- 当 - probability=True时,在 Platt 缩放中学习到的参数。
- probB_形状为 (n_classes * (n_classes - 1) / 2,) 的 ndarray
- 当 - probability=True时,在 Platt 缩放中学习到的参数。
- shape_fit_形状为 (n_dimensions_of_X,) 的整数元组
- 训练向量 - X的数组维度。
 
 - 参考文献 - 示例 - >>> import numpy as np >>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]]) >>> y = np.array([1, 1, 2, 2]) >>> from sklearn.pipeline import make_pipeline >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.svm import NuSVC >>> clf = make_pipeline(StandardScaler(), NuSVC()) >>> clf.fit(X, y) Pipeline(steps=[('standardscaler', StandardScaler()), ('nusvc', NuSVC())]) >>> print(clf.predict([[-0.8, -1]])) [1] - property coef_#
- 当 - kernel="linear"时分配给特征的权重。- 返回:
- 形状为 (n_features, n_classes) 的 ndarray
 
 
 - decision_function(X)[source]#
- 评估 X 中样本的决策函数。 - 参数:
- X形状为 (n_samples, n_features) 的类数组
- 输入样本。 
 
- 返回:
- X形状为 (n_samples, n_classes * (n_classes-1) / 2) 的ndarray
- 返回模型中每个类的样本的决策函数。如果 decision_function_shape='ovr',则形状为 (n_samples, n_classes)。 
 
 - 注释 - 如果 decision_function_shape='ovo',则函数值与样本 X 到分离超平面的距离成比例。如果需要精确距离,请将函数值除以权重向量 ( - coef_) 的范数。有关更多详细信息,另请参阅 此问题。如果 decision_function_shape='ovr',则决策函数是 ovo 决策函数的单调变换。
 - fit(X, y, sample_weight=None)[source]#
- 根据给定的训练数据拟合 SVM 模型。 - 参数:
- X形状为 (n_samples, n_features) 或 (n_samples, n_samples) 的{类数组,稀疏矩阵}
- 训练向量,其中 - n_samples是样本数,- n_features是特征数。对于 kernel=”precomputed”,X 的预期形状为 (n_samples, n_samples)。
- y形状为 (n_samples,) 的类数组
- 目标值(分类中的类标签,回归中的实数)。 
- sample_weight形状为 (n_samples,) 的类数组,默认为 None
- 每个样本的权重。按样本重新缩放 C。较高的权重会迫使分类器更加重视这些点。 
 
- 返回:
- self对象
- 拟合的估计器。 
 
 - 注释 - 如果 X 和 y 不是 C 顺序且连续的 np.float64 数组,并且 X 不是 scipy.sparse.csr_matrix,则可能会复制 X 和/或 y。 - 如果 X 是密集数组,则其他方法将不支持稀疏矩阵作为输入。 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看 用户指南,了解路由机制的工作原理。 - 返回:
- routingMetadataRequest
- 一个 - MetadataRequest封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deepbool,默认为 True
- 如果为 True,则将返回此估计器和作为估计器的包含子对象的参数。 
 
- 返回:
- paramsdict
- 参数名称与其值映射。 
 
 
 - property n_support_#
- 每类的支持向量数量。 
 - predict(X)[source]#
- 对 X 中的样本执行分类。 - 对于单类模型,返回 +1 或 -1。 - 参数:
- X形状为 (n_samples, n_features) 或 (n_samples_test, n_samples_train) 的{类数组,稀疏矩阵}
- 对于 kernel=”precomputed”,X 的预期形状为 (n_samples_test, n_samples_train)。 
 
- 返回:
- y_pred形状为 (n_samples,) 的 ndarray
- X 中样本的类别标签。 
 
 
 - predict_log_proba(X)[source]#
- 计算 X 中样本可能结果的对数概率。 - 模型需要在训练时计算概率信息:使用属性 - probability设置为 True 进行拟合。- 参数:
- X形状为 (n_samples, n_features) 或 (n_samples_test, n_samples_train) 的类数组
- 对于 kernel=”precomputed”,X 的预期形状为 (n_samples_test, n_samples_train)。 
 
- 返回:
- T形状为 (n_samples, n_classes) 的 ndarray
- 返回模型中每个类别样本的对数概率。列对应于已排序的类别,其顺序与属性 classes_ 中显示的顺序相同。 
 
 - 注释 - 概率模型是使用交叉验证创建的,因此结果可能与使用 predict 获得的结果略有不同。此外,它在非常小的数据集上会产生无意义的结果。 
 - predict_proba(X)[source]#
- 计算 X 中样本可能结果的概率。 - 模型需要在训练时计算概率信息:使用属性 - probability设置为 True 进行拟合。- 参数:
- X形状为 (n_samples, n_features) 的类数组
- 对于 kernel=”precomputed”,X 的预期形状为 (n_samples_test, n_samples_train)。 
 
- 返回:
- T形状为 (n_samples, n_classes) 的 ndarray
- 返回模型中每个类别的样本概率。列对应于已排序的类别,其顺序与属性 classes_ 中显示的顺序相同。 
 
 - 注释 - 概率模型是使用交叉验证创建的,因此结果可能与使用 predict 获得的结果略有不同。此外,它在非常小的数据集上会产生无意义的结果。 
 - property probA_#
- 当 - probability=True时,在 Platt 缩放中学习到的参数。- 返回:
- 形状为 (n_classes * (n_classes - 1) / 2) 的 ndarray
 
 
 - property probB_#
- 当 - probability=True时,在 Platt 缩放中学习到的参数。- 返回:
- 形状为 (n_classes * (n_classes - 1) / 2) 的 ndarray
 
 
 - score(X, y, sample_weight=None)[source]#
- 返回给定测试数据和标签的平均准确率。 - 在多标签分类中,这是子集准确率,这是一个严格的指标,因为您要求对每个样本正确预测每个标签集。 - 参数:
- X形状为 (n_samples, n_features) 的类数组
- 测试样本。 
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
- X的真实标签。
- sample_weight形状为 (n_samples,) 的类数组,默认为 None
- 样本权重。 
 
- 返回:
- score浮点数
- self.predict(X)相对于- y的平均准确率。
 
 
 - set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') NuSVC[source]#
- 请求传递给 - fit方法的元数据。- 请注意,只有在 - enable_metadata_routing=True时,此方法才相关(参见- sklearn.set_config)。请参见 用户指南,了解路由机制的工作原理。- 每个参数的选项为 - True:请求元数据,并在提供元数据时将其传递给- fit。如果未提供元数据,则忽略请求。
- False:不请求元数据,元估计器不会将其传递给- fit。
- None:不请求元数据,如果用户提供元数据,元估计器将引发错误。
- str:元数据应使用此给定的别名而不是原始名称传递给元估计器。
 - 默认值( - sklearn.utils.metadata_routing.UNCHANGED)保留现有请求。这允许您更改某些参数的请求,而无需更改其他参数的请求。- 版本 1.3 中新增。 - 注意 - 只有在此估计器用作元估计器的子估计器时(例如,在 - Pipeline中使用)此方法才相关。否则,它没有任何作用。- 参数:
- sample_weightstr、True、False 或 None,默认为 sklearn.utils.metadata_routing.UNCHANGED
- fit中- sample_weight参数的元数据路由。
 
- 返回:
- self对象
- 已更新的对象。 
 
 
 - set_params(**params)[source]#
- 设置此估计器的参数。 - 此方法适用于简单的估计器以及嵌套对象(例如 - Pipeline)。后者具有- <component>__<parameter>形式的参数,因此可以更新嵌套对象的每个组件。- 参数:
- **params字典
- 估计器参数。 
 
- 返回:
- self估计器实例
- 估计器实例。 
 
 
 - set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') NuSVC[source]#
- 请求传递给 - score方法的元数据。- 请注意,只有在 - enable_metadata_routing=True时,此方法才相关(参见- sklearn.set_config)。请参见 用户指南,了解路由机制的工作原理。- 每个参数的选项为 - True:请求元数据,如果提供则传递给- score。如果未提供元数据,则忽略请求。
- False:不请求元数据,元估计器不会将其传递给- score。
- None:不请求元数据,如果用户提供元数据,元估计器将引发错误。
- str:元数据应使用此给定的别名而不是原始名称传递给元估计器。
 - 默认值( - sklearn.utils.metadata_routing.UNCHANGED)保留现有请求。这允许您更改某些参数的请求,而无需更改其他参数的请求。- 版本 1.3 中新增。 - 注意 - 只有在此估计器用作元估计器的子估计器时(例如,在 - Pipeline中使用)此方法才相关。否则,它没有任何作用。- 参数:
- sample_weightstr、True、False 或 None,默认为 sklearn.utils.metadata_routing.UNCHANGED
- score方法中- sample_weight参数的元数据路由。
 
- 返回:
- self对象
- 已更新的对象。 
 
 
 
