svm代码python
支持向量机是一种用于分类和回归分析的机器学习算法。
当使用SVM进行分类时,你可以选择不同的核函数和参数来适应不同的数据集和问题。
python# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
data = load_iris()
X = data.data
y = data.target
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 创建SVM分类器
svm_classifier = SVC(kernel='linear', C=1)
svm_classifier.fit(X_train, y_train)
# 预测测试集的类别
y_pred = svm_classifier.predict(X_test)
# 计算分类准确度
accuracy = accuracy_score(y_test, y_pred)
print("分类准确度:", accuracy)
这个示例使用了鸢尾花数据集进行多类别分类。你可以通过更改kernel
参数来选择不同的核函数,例如kernel='poly'
用于多项式核,kernel='rbf'
用于径向基函数核等。还可以调整C
参数来控制模型的正则化程度,以获得更好的性能。
如果你有特定的数据集和分类问题,可以根据需要调整SVM的参数和核函数。要选择最佳的参数值,你可以使用交叉验证技术来评估不同参数组合的性能,以获得最佳的分类器配置。
SVM是一个强大的分类器,但对于大规模数据集可能需要较长的训练时间。在处理大型数据集时,你可以考虑使用增量学习方法或者使用支持向量机的变种,如线性SVM或随机梯度下降支持向量机分类器。