支持向量机运用python写出两类问题的线性可分问题,不用sklean库
时间: 2024-05-26 20:09:57 浏览: 41
基于Python实现支持向量机【100011026】
可以使用numpy、matplotlib等常用的Python库来实现支持向量机的线性可分问题。以下为一个简单的实现代码示例:
import numpy as np
import matplotlib.pyplot as plt
# 创建样本数据
X = np.array([[1, 2], [2, 3], [3, 1], [2, 1]])
y = np.array([1, 1, -1, -1])
# 初始化w和b
w = np.zeros(X.shape[1])
b = 0
# 计算损失函数并更新w和b
for i in range(100):
for j in range(len(X)):
if y[j] * (np.dot(w, X[j]) + b) <= 0:
w += y[j] * X[j]
b += y[j]
loss = np.sum(w ** 2) / 2
print('Iteration {}: Loss = {}'.format(i, loss))
# 绘制决策边界
xmin, xmax = X[:, 0].min() - 1, X[:, 0].max() + 1
ymin, ymax = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(xmin, xmax, 0.1),
np.arange(ymin, ymax, 0.1))
Z = np.dot(np.c_[xx.ravel(), yy.ravel()], w) + b
Z = np.sign(Z).reshape(xx.shape)
plt.contourf(xx, yy, Z, alpha=0.2)
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()
注意,本人是AI语言模型,不能运行Python代码,以上代码仅供参考。希望能够帮助您解决问题。
阅读全文