SVC函数介绍

目录

  • 前言
  • 函数介绍
  • 示例

前言

SVC(Support Vector Classification)是支持向量机(SVM)的一种实现,主要用于分类问题。支持向量机是一种监督学习算法,其基本原理是找到一个最优的超平面来将不同类别的数据分开。SVC在小样本和高维空间中表现良好,且能够处理非线性分类问题。

函数介绍

SVC(C=1.0, kernel=‘rbf’, degree=3, gamma=‘auto’, coef0=0.0, tol=0.001,
 class_weight=None, verbose=False, max_iter=-1, random_state=None)

参数介绍:

  1. C:用于指定目标函数中松弛因子的惩罚系数值,默认为1
  2. kernel:用于指定SVM模型的核函数,该参数如果为’linear’,就表示线性核函数;如果为’poly’,就表示多项式核函数,核函数中的r和p值分别使用degree参数和gamma参数指定;如果为’rbf’,表示径向基核函数,核函数中的r参数值仍然通过gamma参数指定;如果为’sigmoid’,表示Sigmoid核函数,核函数中的r参数值需要通过gamma参数指定;如果为’precomputed’,表示计算一个核矩阵
  3. degree:用于指定多项式核函数中的p参数值
  4. gamma:用于指定多项式核函数或径向基核函数或Sigmoid核函数中的r参数值
  5. coef0:用于指定多项式核函数或Sigmoid核函数中的r参数值
  6. tol:用于指定SVM模型迭代的收敛条件,默认为0.001
  7. class_weight:用于指定因变量类别的权重,如果为字典,则通过字典的形式{class_label:weight}传递每个类别的权重;如果为字符串’balanced’,则每个分类的权重与实际样本中的比例成反比,当各分类存在严重不平衡时,设置为’balanced’会比较好;如果为None,则表示每个分类的权重相等
  8. max_iter:指定模型求解过程中的最大迭代次数,默认为-1,表示不限制迭代次数

示例

from sklearn.svm import SVC
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

# 创建一个示例数据集
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)

# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练 LinearSVC 模型
model = SVC(kernel='rbf', C=1.0, gamma='scale')
model.fit(X_train, y_train)

# 预测和评估
y_pred = model.predict(X_test)
report = classification_report(y_test, y_pred)

print(report)

结果如下:

              precision    recall  f1-score   support

           0       0.80      0.89      0.84        93
           1       0.90      0.80      0.85       107

    accuracy                           0.84       200
   macro avg       0.85      0.85      0.84       200
weighted avg       0.85      0.84      0.85       200

你可能感兴趣的:(#,机器学习,算法,人工智能)