支持向量机附python代码二分类
时间: 2023-07-23 11:02:08 浏览: 128
### 回答1:
支持向量机(Support Vector Machine,SVM)是一种常用于二分类问题的机器学习算法。该算法的目标是找到一个最优的超平面,将不同类别的样本分隔开来,并且使得两侧距离最近的样本点到超平面的距离最大化。
以下是使用Python编写的支持向量机的二分类代码示例:
```python
# 导入所需的库
from sklearn import svm
import numpy as np
# 创建训练样本
X_train = np.array([[1, 2], [2, 3], [3, 3], [2, 1], [3, 2]]) # 自变量
y_train = np.array([1, 1, 1, 0, 0]) # 因变量
# 创建支持向量机模型
model = svm.SVC(kernel='linear')
# 训练模型
model.fit(X_train, y_train)
# 创建测试样本
X_test = np.array([[1, 1], [2, 2], [3, 1], [1, 3], [3, 3]])
# 预测测试样本的分类
y_pred = model.predict(X_test)
# 打印预测结果
print("测试样本的预测分类:", y_pred)
```
以上代码中,首先我们导入所需的库,包括`svm`模块用于支持向量机算法,以及`numpy`用于创建数组。
接下来,我们创建训练样本`X_train`和对应的标签`y_train`。样本X_train包括五个二维数据点,分别为(1, 2)、(2, 3)、(3, 3)、(2, 1)、(3, 2);标签y_train表示这些样本点分别属于类别1和类别0。
然后,我们创建支持向量机模型对象并指定使用线性核函数。线性核函数用于处理线性可分的情况。
接下来,我们利用训练样本和标签训练模型,即调用`fit`方法。
然后,我们创建了测试样本`X_test`,包括五个二维数据点。
最后,我们调用`predict`方法对测试样本进行分类预测,并将预测结果打印出来。
运行以上代码,即可得到测试样本的预测分类结果。
### 回答2:
支持向量机(Support Vector Machine, SVM)是一种常用的机器学习算法,可用于二分类问题。它的目标是找到一个最优超平面,将不同类别的样本点分开,同时最大化边界距离。
下面是一个使用Python实现二分类支持向量机的示例代码:
```python
# 导入所需的库
from sklearn import svm
import numpy as np
# 创建训练数据集
X = np.array([[0, 0], [1, 1], [2, 2]])
y = np.array([0, 1, 1])
# 创建SVM分类器对象
clf = svm.SVC(kernel='linear')
# 使用训练数据集训练SVM模型
clf.fit(X, y)
# 创建测试数据集
test_data = np.array([[3, 3], [4, 4]])
# 使用训练完成的SVM模型进行预测
predicted = clf.predict(test_data)
# 打印预测结果
print(predicted)
```
在上面的代码中,首先导入了所需的库。然后,创建了一个简单的训练数据集X和对应的标签y。接着,创建了一个SVM分类器对象clf,并指定了线性核函数。然后,使用fit函数对训练数据集进行训练。最后,创建了一个测试数据集test_data,并使用训练完成的模型进行预测。最后,打印了预测结果。
这是一个简单的二分类支持向量机示例,可以根据实际需求进行修改和扩展。
阅读全文