You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SVM二分类器训练两个数据集(AND与NAND)

SVM训练AND/NAND数据集分类指南

问题解答:不能直接使用classification.fit(X1,X2,y1,y2)

SVM分类器的fit()方法仅接受两个参数:单一的特征矩阵X和对应的标签向量y,不支持同时传入多组X和y参数,直接调用会触发参数错误。

正确训练步骤

1. 重构数据集

我们的目标是区分样本属于「AND模式」还是「NAND模式」,因此需要:

  • 将AND和NAND的特征数据合并为一个统一的特征集合X
  • 给每个样本打上所属类别的标签:比如用0代表AND类别,1代表NAND类别

2. 代码实现示例

# 导入SVM分类器(以sklearn为例)
from sklearn.svm import SVC

# AND数据集:特征+类别标签(0=AND)
X1 = [[0,0],[0,1],[1,0],[1,1]]
y1 = [0, 0, 0, 0]  # 所有AND样本标记为0

# NAND数据集:特征+类别标签(1=NAND)
X2 = [[0,0],[0,1],[1,0],[1,1]]
y2 = [1, 1, 1, 1]  # 所有NAND样本标记为1

# 合并特征与标签
X = X1 + X2
y = y1 + y2

# 初始化SVM分类器并训练
classification = SVC()
classification.fit(X, y)

3. 预测使用

训练完成后,即可输入样本进行类别预测:

# 测试样本:比如[1,1]
sample = [[1,1]]
pred_result = classification.predict(sample)

# 结果解读:0表示属于AND类别,1表示属于NAND类别
print(f"样本属于{'AND' if pred_result[0]==0 else 'NAND'}类别")

补充说明

这里的核心是把「样本来自AND数据集」或「来自NAND数据集」作为分类目标,每个原始输入特征(如[0,0])会因为所属数据集不同被赋予不同标签,让SVM学习两种模式的差异。

内容的提问来源于stack exchange,提问作者Rupak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:03:30