用python帮我写一段支持向量机的代码,以实现将同文件夹下的图片分类
时间: 2024-03-01 22:53:39 浏览: 69
好的,以下是一个简单的支持向量机的代码实现,可以用于将同文件夹下的图片分类:
```python
import os
import cv2
import numpy as np
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 读取图片数据
def load_data(path):
data = []
labels = []
for filename in os.listdir(path):
img = cv2.imread(os.path.join(path, filename), cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, (28, 28))
data.append(img.flatten())
if filename.startswith('cat'):
labels.append(0)
else:
labels.append(1)
return np.array(data), np.array(labels)
# 加载数据
data, labels = load_data('./')
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=42)
# 构建SVM模型
clf = svm.SVC(kernel='linear')
# 训练模型
clf.fit(X_train, y_train)
# 预测
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
以上代码中,我们使用了支持向量机(SVM)算法来构建一个分类器,用于将同文件夹下的猫和狗的图片进行分类。首先,我们需要定义一个`load_data`函数来读取图片数据,并将其转换为一个向量表示。然后,我们使用`train_test_split`函数将数据划分为训练集和测试集。接着,我们使用`svm.SVC`函数构建一个SVM模型,并使用`fit`函数训练模型。最后,我们使用`predict`函数对测试集进行预测,并使用`accuracy_score`函数计算准确率。
请注意,在使用这段代码之前,需要确保同文件夹下有猫和狗的图片,并且文件名以'cat'和'dog'开头。
阅读全文