sklearn.svm.SVC 支持向量机-简介

发布时间:2024年01月22日

sklearn.svm.SVC 是 Scikit-learn(一个常用的机器学习库)中的一个类,用于支持向量机(Support Vector Machine,SVM)算法中的分类任务。

SVM 是一种用于分类和回归的监督学习算法。在分类任务中,SVM 构建一个决策边界,将不同类别的样本分开。SVC 类则实现了标准的支持向量机分类器。

SVC 类的构造函数有以下常用参数:

sklearn.svm.SVC(C=1.0, 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)

以下是一些重要参数的说明:

  • C:惩罚参数,控制了决策边界的平滑度。较小的?C?值会允许更多的错误分类,较大的?C?值会迫使模型更加关注每个样本的分类准确性。
  • kernel:核函数的类型。常用的选项有?'linear'(线性核函数)、'rbf'(径向基函数)、'poly'(多项式核函数)等。
  • gamma'rbf''poly'?和?'sigmoid'?核函数的参数。它控制了决策边界的弯曲程度。默认值?'scale'?根据特征数量自动计算 gamma 值。
  • probability:布尔值,指示是否启用概率估计。如果设置为?True,模型将能够计算样本属于每个类别的概率。
  • class_weight:一个字典或字符串,指定每个类别的权重。可以用于处理类别不平衡的问题。

SVC?类提供了一系列方法,包括?fit(用于训练模型)、predict(用于预测新样本的类别)、decision_function(返回样本到决策边界的距离)、predict_proba(返回每个类别的概率)等。

用鸢尾花作为示例做一个简单实现:

from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target

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

# 创建并训练SVM模型
svm = SVC()
svm.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = svm.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

在这个示例中,用?load_iris?函数加载了鸢尾花数据集,并将其分为特征矩阵?X?和目标向量?y。然后,用?train_test_split?函数将数据集划分为训练集和测试集。接下来,创建一个?SVC?实例并调用?fit?方法对模型进行训练。然后用测试集进行预测,并计算预测准确率。

文章来源:https://blog.csdn.net/m0_37738114/article/details/135693498
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。