Я пытаюсь создать простую программу в Python для классификации рукописных цифр (чисел) с помощью фильтра Габора. Фильтр для различных ориентаций и масштабов. class = "lang-py prettyprint-override"># Import required libraries
import numpy as np
from sklearn.decomposition import PCA
from sklearn import svm
from skimage.filters import gabor
import matplotlib.pyplot as plt
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import train_test_split
import idx2numpy
from sklearn.model_selection import KFold
from sklearn.multiclass import OneVsOneClassifier
# Load MNIST dataset.
trainX = idx2numpy.convert_from_file("data/train-images-idx3-ubyte")
labelsX = idx2numpy.convert_from_file("data/train-labels-idx1-ubyte")
features = np.empty((1, 2))
labels = np.empty((1,))
mxm = 100
for i in range(mxm):
image = trainX
for freq in np.arange(0.2,1.2,0.2):
for orientation in range(0,360,45):
filt_real, filt_imag = gabor(image,frequency=freq,theta=orientation) # Compute Gabor Filter on image i for a given scale and orientation
phase = np.angle(filt_real + 1.0j*filt_imag) # Compute phase with real and complex part
pca = PCA(n_components=2) # Initialize a 2-component PCA
pca.fit(phase) # Fit phase in PCA
curr = pca.transform(phase) # Feature reduction
features = np.append(features,curr,axis=0) # Append features
labels = np.append(labels,[labelsX]*len(curr)) # Append labels
kf = KFold(n_splits=mxm)
counter = 1
for train, test in kf.split(features):
print('Fold',counter)
counter = counter + 1
X_train, X_test, y_train, y_test = features[train], features[test], labels[train], labels[test]
clf = OneVsOneClassifier(svm.SVC(kernel='rbf'))
clf.fit(X_train,y_train)
print('Accuracy:',clf.score(X_test,y_test))
< /code>
Но по какой -то причине это дает мне очень низкую точность (около 0,1). Итак, мой вопрос: SVM с PCA - хорошая стратегия для извлечения функций фильтра Габора?
Я не хочу использовать нейронные сети.>
Подробнее здесь: https://stackoverflow.com/questions/693 ... m-with-pca
Handwritten character recognition with Gabor Filter and SVM with PCA ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение