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

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 方法对模型进行训练。然后用测试集进行预测,并计算预测准确率。

你可能感兴趣的:(机器学习,sklearn,Python精修,支持向量机,sklearn,算法,鸢尾花,SVM,sklearn.svm.SVC)