import numpy as np
class LinearSVM:
def __init__(self, learning_rate=0.01, n_iters=1000, lambda_param=0.01):
self.lr = learning_rate
self.n_iters = n_iters
self.lambda_param = lambda_param
self.w = None
self.b = None
def fit(self, X, y):
n_samples, n_features = X.shape
y_ = np.where(y <= 0, -1, 1) # 将标签转换为-1和1
# 初始化参数
self.w = np.zeros(n_features)
self.b = 0
# 梯度下降
for _ in range(self.n_iters):
for idx, x_i in enumerate(X):
condition = y_[idx] * (np.dot(x_i, self.w) - self.b) >= 1
if condition:
continue
self.w -= self.lr * (2 * self.lambda_param * self.w - np.dot(x_i, y_[idx]))
self.b -= self.lr * y_[idx]
def predict(self, X):
linear_output = np.dot(X, self.w) - self.b
return np.sign(linear_output)
# 示例数据
X = np.array([[2, 3], [5, 8], [6, 1], [7, 2], [1, 1], [2, 1], [3, 2], [1, 0], [2, 0], [4, 1]])
y = np.array([0, 1, 1, 1, 0, 0, 0, -1, -1, -1])
# 实例化SVM模型
model = LinearSVM(learning_rate=0.01, n_iters=1000, lambda_param=0.01)
# 训练模型
model.fit(X, y)
# 预测
predictions = model.predict(X)
print(predictions)
![avatar](https://profile-avatar.csdnimg.cn/be4f8f17e79c4cd489df1e2a71de87ff_m0_72714916.jpg!1)
早七睡不醒
- 粉丝: 13
- 资源: 167
最新资源
- 安卓的期末大作业,做的是一个天气预报app.zip
- 安卓Android期末大作业-新闻阅读App-下载后打开源码直接使用,操作简单.zip
- 数据安全流通解决方案(22页).pptx
- 数据安全治理智能方案(24页).pptx
- 智慧产业园区规划建设解决方案(40页).pptx
- AI头条项目玩法教程,新AI指令无脑洗稿,可矩阵放大
- 直播切片带货项目玩法教程,无需授权无门槛
- AI写作撸收益项目玩法教程,只需复制粘贴,一键多渠道发布
- 基于Matlab实现无线传感网节点定位目标定位仿真(源码).rar
- TB无人直播项目玩法教程,日不落直播间,不风控稳定躺赚
- tiktok投流心法深度剖析项目玩法教程:市场运营策略CPAT曲线,掌握投流精髓
- TikTok实战运营全攻略项目玩法教程:从下载软件到变现,抖音海外版实操教程
- TikTok涨粉全攻略项目玩法教程:掌握算法逻辑精准发布,粉丝数飙升百万
- Tk好物分享提升项目玩法教程:商品橱窗开通指南,选品技巧大公开
- Tk跨境电商店铺运营项目玩法教程:选品策略与流量变现技巧
- TK跨境电商实战项目玩法教程:产品定位到变现模式,高效剪辑与数据分析全攻略
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)