当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cuml.svm.SVC用法及代码示例


用法:

class cuml.svm.SVC(C-Support Vector Classification)

构建用于训练和预测的 SVC 分类器。

参数

handlecuml.Handle

指定 cuml.handle 保存用于此模型中计算的内部 CUDA 状态。最重要的是,这指定了将用于模型计算的 CUDA 流,因此用户可以通过在多个流中创建句柄在不同的流中同时运行不同的模型。如果为 None,则创建一个新的。

C浮点数(默认 = 1.0)

惩罚参数 C

kernel字符串(默认='rbf')

指定核函数。可能的选项:‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’。目前不支持预先计算的内核。

degreeint(默认值=3)

多项式核函数的度数。

gamma浮点数或字符串(默认 = ‘scale’)

rbf、poly 和 sigmoid 内核的系数。您可以指定数值,或使用以下选项之一:

  • ‘auto’:伽玛将设置为1 / n_features
  • ‘scale’:伽玛将设置为 1 / (n_features * X.var())
coef0浮点数(默认 = 0.0)

核函数中的独立项,仅对 poly 和 sigmoid 有意义

tol浮点数(默认 = 1e-3)

停止标准的容差。

cache_size浮点数(默认 = 1024.0)

MiB 中训练期间内核缓存的大小增加它以缩短训练时间,但代价是内存占用更高。训练后内核缓存被释放。在预测期间,我们还需要一个临时空间来存储核矩阵元素(如果 n_support 很大,这可能很重要)。 cache_size 变量也设置了预测缓冲区的上限。

class_weight字典或字符串(默认=无)

将类 i 的参数 C 修改为 class_weight[i]*C 的权重。字符串 ‘balanced’ 也被接受,在这种情况下class_weight[i] = n_samples / (n_classes * n_samples_of_class[i])

max_iterint(默认 = 100*n_samples)

限制求解器中的外部迭代次数

multiclass_strategystr (‘ovo’ or ‘ovr’, 默认 ‘ovo’)

多类分类策略。 'ovo' 使用 OneVsOneClassifier'ovr' 选择 OneVsRestClassifier

nochange_stepsint(默认值 = 1000)

我们监控在外部迭代期间我们的停止标准有多少变化。如果 nochange_steps 连续步骤没有变化(变化小于 1e-3*tol),那么我们停止训练。

output_type{‘input’, ‘cudf’, ‘cupy’, ‘numpy’, ‘numba’},默认=无

用于控制估计器的结果和属性的输出类型的变量。如果为 None,它将继承在模块级别设置的输出类型 cuml.global_settings.output_type 。有关详细信息,请参阅输出数据类型配置。

probability: bool (default = False)

启用或禁用概率估计。

random_state: int (default = None)

随机数生成器的种子(仅在概率 = True 时使用)。当前未使用此参数,如果用户提供它,将打印警告。

verboseint 或布尔值,默认=False

设置日志记录级别。它必须是 cuml.common.logger.level_* 之一。有关详细信息,请参阅详细级别。

注意

求解器使用 SMO 方法拟合分类器。我们使用 SMO 算法的优化层次分解 [1] 变体,类似于 [2]

有关其他文档,请参阅 scikitlearn’s SVC

参考

1

J. Vanek et al. A GPU-Architecture Optimized Hierarchical Decomposition Algorithm for Support VectorMachine Training, IEEE Transactions on Parallel and Distributed Systems, vol 28, no 12, 3330, (2017)

2

Z. Wen et al. ThunderSVM: A Fast SVM Library on GPUs and CPUs, Journal of Machine Learning Research, 19, 1-5 (2018)

例子

import numpy as np
from cuml.svm import SVC
X = np.array([[1,1], [2,1], [1,2], [2,2], [1,3], [2,3]],
                dtype=np.float32);
y = np.array([-1, -1, 1, -1, 1, 1], dtype=np.float32)
clf = SVC(kernel='poly', degree=2, gamma='auto', C=1)
clf.fit(X, y)
print("Predicted labels:", clf.predict(X))

输出:

Predicted labels: [-1. -1.  1. -1.  1.  1.]

属性

n_support_int

支持向量的总数。注意:这将在未来改变以表示每个类的数字支持向量(如在 Sklearn 中,请参阅https://github.com/rapidsai/cuml/issues/956)

support_int 形状 = (n_support)

SVC.support_(自我)

support_vectors_浮点数,形状(n_support,n_cols)

支持向量的设备数组

dual_coef_浮点数,形状=(1,n_support)

支持向量的设备系数数组

intercept_浮点数

SVC.intercept_(self)

fit_status_int

0 如果 SVM 正确拟合

coef_浮点数,形状(1,n_cols)

SVMBase.coef_(self)

classes_: shape (n_classes_,)

类标签数组

n_classes_int

类数

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cuml.svm.SVC。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。