def test_KNN(*data): X_train, X_test, y_train, y_test = data knn = KNeighborsClassifier() knn.fit(X_train, y_train) y_sample = knn.predict(X_test) # print('KNN分类器') ACC = clustering_performance.clusteringMetrics(y_test, y_sample) print('KNN: %.4f' % ACC) return ACC
def test_SVM(*data): X_train, X_test, y_train, y_test = data clf = svm.SVC(C=2, kernel='sigmoid', gamma=10, decision_function_shape='ovr') clf.fit(X_train, y_train) y_predict_svm = clf.predict(X_test) print( 'SVM:', '%.4f' % clustering_performance.clusteringMetrics(y_test, y_predict_svm)) return clf.score(X_test, y_test)
from sklearn.metrics import accuracy_score, normalized_mutual_info_score, adjusted_rand_score import PIL.Image as Image from sklearn.cluster import KMeans from clustering_performance import clusteringMetrics import random import matplotlib.pyplot as plt import numpy as np import os IMAGES_PATH_DIR = os.getcwd() + r"\face_images\\" IMAGES_FORMAT = ['.jpg', '.py'] IMAGE_SIZE = (200, 180) IMAGE_ROW = 10 IMAGE_COLUMN = 20 IMAGE_SAVE_PATH = 'Image_cluster_.jpg' def loadData(FileName): im = Image.open(FileName) im = im.convert('RGB') return im data_show = plt.figure(1) plt.title("The picture") image_names = [] image_vector = [] real_label = sorted([_ for _ in range(0, 10)] * 20) to_image = Image.new('RGB', (IMAGE_SIZE[1] * IMAGE_COLUMN, IMAGE_SIZE[0] * IMAGE_ROW)) image_dir_names = [ name for name in os.listdir(IMAGES_PATH_DIR) if os.path.splitext(name)[1] not in IMAGES_FORMAT
tst_size = 0.2 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=tst_size, random_state=22) # print("X_train.shape =", X_train.shape) # print("X_test.shape =", X_test.shape) print("load data finish at", time.time() - strat_time, "s") print("test size:", tst_size * 100, "%", "train size:", (1 - tst_size) * 100, "%") # 朴素贝叶斯 clf = GaussianNB() clf.fit(X_train, y_train) print("finish Bayes fit at", time.time() - strat_time, "s") y_sample_bayes = clf.predict(X_test) Bayes_ACC = clusteringMetrics(y_test, y_sample_bayes) print("Bayes Accuracy =", Bayes_ACC, "at", time.time() - strat_time, "s") fig = plt.figure() plt.subplot(121) plt.title('Bayes heatmap') confusion = confusion_matrix(y_sample_bayes, y_test) confusion = confusion / X_test.shape[0] # print(confusion) sns.heatmap(confusion, annot=True, cmap='Blues', fmt='.3g') plt.xlabel('Predicted label') plt.ylabel('True label') # KNN knn = KNeighborsClassifier() knn.fit(X_train, y_train)
from sklearn.metrics import accuracy_score, normalized_mutual_info_score, adjusted_rand_score import PIL.Image as Image from sklearn.decomposition import PCA from sklearn.cluster import KMeans from clustering_performance import clusteringMetrics import random import matplotlib.pyplot as plt import numpy as np import os from clustering_performance import clusteringMetrics IMAGES_PATH_DIR = os.getcwd() + r"\face_images\\" IMAGES_FORMAT = ['.jpg', '.py'] IMAGE_SIZE = (200, 180) IMAGE_ROW = 10 IMAGE_COLUMN = 20 def loadData(FileName): im = Image.open(FileName) im = im.convert('RGB') return im data_show = plt.figure(1) image_names = [] image_vector = [] real_label = sorted([_ for _ in range(0, 10)] * 20) to_image = Image.new('RGB', (IMAGE_SIZE[1] * IMAGE_COLUMN, IMAGE_SIZE[0] * IMAGE_ROW)) image_dir_names = [ name for name in os.listdir(IMAGES_PATH_DIR) if os.path.splitext(name)[1] not in IMAGES_FORMAT
X_train, y_train = make_circles(n_samples=400, factor=0.5, noise=0.1) X_test, y_test = make_circles(n_samples=400, factor=0.5, noise=0.1) # 原图 plt.subplot(331) plt.title('Circle') plt.scatter(X_train[:, 0], X_train[:, 1], marker='o', c=y_train) # KNN plt.subplot(332) plt.title('KNN') knn = KNeighborsClassifier(n_neighbors=30) knn.fit(X_train, y_train) y_predict_knn = knn.predict(X_test) print('KNN: %.3f' % clustering_performance.clusteringMetrics(y_test, y_predict_knn)) plt.scatter(X_test[:, 0], X_test[:, 1], marker='o', c=y_predict_knn) # NaiveBayes plt.subplot(333) plt.title('NaiveBayes') bayes = naive_bayes.GaussianNB() bayes.fit(X_train, y_train) y_predict_bayes = bayes.predict(X_test) print('NaiveBayes: %.3f' % clustering_performance.clusteringMetrics(y_test, y_predict_bayes)) plt.scatter(X_test[:, 0], X_test[:, 1], marker='o', c=y_predict_bayes)