理解支持向量机的基本原理的Python代码
时间: 2024-11-05 12:27:28 浏览: 43
支持向量机(SVM,Support Vector Machine)是一种监督学习模型,它通过找到最优超平面来分类数据,使得各类别的间隔最大化。下面是一个简单的Python示例,使用Scikit-learn库来创建一个线性核的支持向量机:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
# 加载iris数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建线性SVM分类器
clf = svm.SVC(kernel='linear') # 使用线性内核
# 训练模型
clf.fit(X_train, y_train)
# 预测测试集
predictions = clf.predict(X_test)
# 打印一些预测结果
print("Predictions:", predictions[:5])
# 查看SVM分类决策边界
# 这部分需要matplotlib库
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
xlim, ylim = ax.set_xlim(), ax.set_ylim()
x_min, x_max = xlim[0] - 1, xlim[1] + 1
y_min, y_max = ylim[0] - 1, ylim[1] + 1
h = .02
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
ax.contourf(xx, yy, Z, cmap=plt.cm.Paired)
# 绘制数据点和决策边界
ax.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', cmap=plt.cm.Paired)
plt.show()
```
这个例子展示了如何使用SVM对Iris数据集进行分类,并可视化了决策边界。注意实际应用中可能需要调整参数和使用其他类型的核函数。
阅读全文