python svm二分类代码
时间: 2024-04-14 14:24:20 浏览: 101
当使用Python进行SVM(支持向量机)二分类时,可以使用scikit-learn库中的SVC类来实现。下面是一个简单的示例代码:
```python
# 导入所需的库
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 准备数据集
# 假设你已经有了特征矩阵X和标签向量y
# X的每一行代表一个样本的特征,y是对应的标签
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建SVM分类器对象
clf = svm.SVC()
# 在训练集上训练模型
clf.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)
```
这段代码首先导入了所需的库,然后准备了数据集,包括特征矩阵X和标签向量y。接下来,使用`train_test_split`函数将数据集划分为训练集和测试集。然后,创建了一个SVM分类器对象`clf`,并使用训练集对其进行训练。最后,使用测试集进行预测,并计算准确率。
相关问题
python svm 二分类
SVM(支持向量机)是一种二分类模型,它将实例的特征向量映射为空间中的一些点。SVM的目标是通过划定一条线来最好地区分这两类点,从而实现对新的点进行分类。在Python中,可以使用sklearn包来实现SVM的二分类功能。
下面是一个基于sklearn包的示例代码,演示了如何使用SVM算法进行二分类并绘制分类结果的图形:
```python
from sklearn import svm
import numpy as np
import matplotlib.pyplot as plt
# 准备训练样本
x = [[1, 8], [3, 20], [1, 15], [3, 35], [5, 35], [4, 40], [7, 80], [6, 49]]
y = [1, 1, -1, -1, 1, -1, -1, 1]
# 开始训练
clf = svm.SVC() # 默认参数:kernel='rbf'
clf.fit(x, y)
# 根据训练出的模型绘制样本点
for i in x:
res = clf.predict(np.array(i).reshape(1, -1))
if res > 0:
plt.scatter(i[0], i[1], c='r', marker='*')
else:
plt.scatter(i[0], i[1], c='g', marker='*')
# 生成随机实验数据
rdm_arr = np.random.randint(1, 15, size=(15, 2))
# 绘制实验数据点
for i in rdm_arr:
res = clf.predict(np.array(i).reshape(1, -1))
if res > 0:
plt.scatter(i[0], i[1], c='r', marker='.')
else:
plt.scatter(i[0], i[1], c='g', marker='.')
# 显示绘图结果
plt.show()
```
以上代码中,我们使用了SVM的默认参数(核函数为径向基函数rbf),根据训练出的模型绘制了样本点和随机实验数据点的分类结果图形。
python实现svm二分类代码
下面是一个简单的 Python 代码实现 SVM 二分类:
```python
import numpy as np
from sklearn.svm import SVC
# 创建一个二分类的数据集
X = np.array([[1, 2], [2, 3], [3, 1], [4, 3], [5, 4], [6, 5], [7, 7], [8, 6]])
y = np.array([0, 0, 0, 0, 1, 1, 1, 1])
# 创建一个 SVM 模型
svm = SVC(kernel='linear', C=100)
# 训练模型
svm.fit(X, y)
# 预测结果
print(svm.predict([[4, 5]]))
```
上面的代码中,我们首先创建了一个二分类的数据集,然后使用 scikit-learn 库中的 `SVC` 类创建了一个 SVM 模型,并指定了线性核函数和惩罚参数 C 的值为 100。接着,我们使用 `fit` 方法来训练模型,并使用 `predict` 方法来进行预测。最后,输出预测结果。
阅读全文