當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。