import numpy as np import random from sklearn.decomposition import PCA from sklearn.datasets import load_digits from sklearn.svm import SVC from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score digits = load_digits() m = len(digits.data) x = digits.data y = digits.target num_components = 8 pca = PCA(n_components = num_components) pca.fit(x) x_transformed = pca.transform(x) m_train = int(m*3/4) m_test = m - m_train print("Number of digit images:", m) print("Train part:", m_train, " Test part:", m_test) C = 4.0 kernel = "rbf" num_repeats = 10 print("Number of repetitions:", num_repeats) mean_accuracy = 0. for i in range(num_repeats): x_train, x_test, y_train, y_test = train_test_split( x_transformed, y, test_size=1/4, shuffle=True, stratify=y ) # model = SVC(C=C, kernel=kernel, degree=degree, coef0=coef0) model = SVC(C=C, kernel=kernel) model.fit(x_train, y_train) y_predicted = model.predict(x_test) accuracy = accuracy_score(y_true=y_test, y_pred=y_predicted) mean_accuracy += accuracy mean_accuracy /= num_repeats print("Mean accuracy of classification:", mean_accuracy)