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