{ "cells": [ { "cell_type": "code", "execution_count": 10, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 90.83%\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "D:\\anaconda3\\lib\\site-packages\\hypertools\\plot\\plot.py:508: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", " kwargs[kwarg]=np.array(kwargs[kwarg])\n" ] }, { "data": { "text/plain": "
", "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": "
", "image/png": "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wiuvvMJdd91FR0cH77333oQTFxgjC8ZoNAYIzPbt23nooYf49NNP6ejoICsri9/85jf89Kc/HZdzNQRjT6QIjKIoPPLIIzzxxBOcOXOG8847j/fee49vf1t7FYeJxJi5SE6nk5KSEn73u9/x0UcfeUTlgQce4D/+4z+EqAgGZKILzIkTJ7jnnnt4++230el0XH/99Tz++OOeYeaRwJgIjNlsZt++faxZswaLxcK1117Lf//3f4e0Lo5A4GaiCsyrr77Kf/7nf3L48GFmzpzJY489xo9//OOIbKiVVFUdqTGqgyI3N5eOjg7q6+tpbm7G4XCg0+mIi4vDarUya9YsFixYQHZ2NqtWrSInJ0cUyAl8OH78OBkZGYzRR3hQdHR08Ktf/Ypnn32W1tZWLrroIh5//HGWLl061rcWVsZMYPyRZZny8nJ27tzJl19+yZEjRzh58iSNjY20t7ejKAomk4mkpCRSU1OZM2cO5557LsuXL2fNmjUTdgizYOgcO3aMuXPnjmuBKS8v55577mHbtm0kJCRw22238eCDDxIbGzvWtzYqjBuBGYj6+npKSkrYs2cPBw4c4OjRo3z99dc0Nzd7hujExsZitVo9y1Ccd955nH/++SxfvlxknSKQmpoaMjMzx52rpCgKTz75JI8++iinTp3ylFYEGywVyUwYgekPRVGoqKigpKTEM37wxIkTNDQ00NbWhqIoGI1GEhMTmTZtGhkZGZx77rksW7aMtWvXitjPBKWqqoqsrKxxIzCnT5/mZz/7Ga+99hqKovAv//IvPP7445P68xURAjMQdrudHTt2sHv3bvbv38/Ro0epq6vDbrfT1dXlWYgrOTmZGTNmkJmZyZIlSzj//PPJzc0VGa1xSmVlJQsXLhxzgXnvvff45S9/SUVFBampqdx9993cd999ERm0HSyTQmD6Q1EUDh06RElJCWVlZR7rp76+nra2NpxOJwaDwbP+TUZGBgsXLvRYP3PmzBnrlzBpOXToEIsWLRoTgXE4HPy///f/eOaZZzh79iyrVq3iscceY/Xq0NdzmgxMeoEZiJaWFr744gt27drF/v37qa6upq6ujrNnz9LZ2emZd2qxWEhLS2P+/PksWbKE3Nxczj///FEf8DOZOHDgAEuWLBlVgTl06BD33HMPH374IdHR0dx88808/PDDI768SKQgBGYYuBfg2rFjB3v37uXw4cMcP36c+vp6WltbkWUZvV5PQkICU6dOJT09nXPOOYecnBzWrFlDZmamMKOHwf79+8nOzh4VgXn22Wd58MEHOXr0KJmZmTzwwAN8//vfD/t1JzpCYMJIR0cHO3fuZNeuXezbt89j/dhsNs8ayNHR0UyZMsVj/SxevJiVK1eyevVq8a04ABUVFSxdujRsAmOz2fj5z3/O5s2bcTgcXHrppfzhD38gMzMzLNeLRITAjCHuJSb27t3LoUOHqK2t5cyZM7S0tHisn/j4eFJSUpg9ezZZWVksXbqUNWvWcO65505666e8vJzly5eP6PAycDXb/uxnP2P37t0kJyfzk5/8hPvvv1+UOgwBITDjlK6uLvbs2cMXX3xBRUUFVVVVnDp1CpvNRkdHB6qqEhUVxZQpU5g+fTpz585l8eLFrFixwtOCEens3buXlStXjojAyLLMww8/zB//+EcaGhpYtmwZDz/8cND1qQWhIQRmgnLixAlKSkrYu3cvBw8epLa2ltOnT9Pc3ExPTw86nY74+HisViuzZ88mMzOTpUuXsmrVKrKzsyOi7WLPnj2cf/75wxKYY8eOcc899/Duu+9iMBi48cYbeeyxx3xWQxQMHSEwEYjD4aCsrMzTdlFVVcXJkydpamqivb0dVVUxmUye9Y7dC66vWLGCtWvXTphu3t27d7Nq1aohCczLL7/Mb37zGyorK5k9eza//OUvufPOOye92znSCIGZhJw+fZrt27dTWlrKwYMHOXr0qMf6cTedutsu3E2n55133rhrOv3iiy9Ys2ZNyALT1tbG/fffz3PPPUdHRwcXX3wxf/jDH1i8eHGY73TyIgRG4IMsy1RUVLBz507Ky8s9TacNDQ2aTafp6emeptO8vLxRbTotKSnhggsuGHD86p49e7j33nvZvn07iYmJ3Hnnnfz2t78VFdqjgBAYwaBobGxkx44dAU2ndrvdp+k0OTnZ03SanZ3N+eefz8qVK0c0E7N9+3YuuugiTYFRFIU//vGP/O///i91dXUsXryYBx98kKuuumrEri8YGCEwghFDURT2799PSUkJ5eXlVFZWeqwfd9vFSDadFhcXc/HFF/sITF1dHffeey9vvPEGqqpy9dVX8/jjjzNz5syRfrmCEBACIxg17HY7JSUlAU2nZ8+e9Wk6tVgszJgxg/nz55OdnU1ubi65ubkBM1S2bdvGN7/5TWRZ5u233+b+++9n//79pKWlce+993L33XeLoO0YIwRGMC5QFIXKykp27NhBeXm5p+2ioaGB1tZWT9NpQkIC06ZNIz09nfj4eF577TXMZjPNzc2sWbOGxx9/nJUrV471yxH0IgRGMCFoa2ujpKTE03RaU1PDyZMn0el0XHPNNTz00EOitWIcIgRGIBCEDeGgCgSCsCEERiAQhA0hMAKBIGwIgREIBGFDCIxAIAgbQmAEAkHYEAIjEAjChhAYgUAQNoTACASCsCEERiAQhA0hMAKBIGwIgREIBGFDCIxAIAgbQmAEAkHYEAIjEAjChhAYgUAQNoTACASCsCEERiAQhA0hMAKBIGwIgREIBGFDCIxAIAgbQmAEAkHYEAIjEAjChhAYgUAQNoTACASCsCEERiAQhA0hMAKBIGwIgREIBGFDCIxAIAgbQmAEAkHYEAIjEAjChhAYgUAQNoTACASCsCEERiAQhA0hMAKBIGwIgREIBGFDCIxAIAgbQmAEAkHYEAIjEAjChhAYgUAQNoTACASCsCEERiAQhA0hMAKBIGwIgREIBGFDCIxAIAgbQmAEAkHYEAIjEAjChhAYgUAQNoTACASCsCEERiAQhA0hMAKBIGwIgREIBGFDCIxAIAgbQmAEAkHYEAIjEAjChhAYgUAQNv5/tuUsg3dp8BsAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#!/usr/bin/env python\n", "# -*- coding: UTF-8 -*-\n", "'''\n", "@Project :PCA\n", "@File :main.py\n", "@IDE :PyCharm\n", "@Author :Johnson Yan\n", "@Date :2022/12/11 18:20\n", "'''\n", "import random\n", "\n", "import cv2\n", "from glob import glob\n", "import os\n", "import hypertools as hyp\n", "\n", "import numpy as np\n", "from sklearn.decomposition import PCA\n", "from sklearn.svm import SVC\n", "\n", "\n", "def orl_dataset(image_path='orl_faces/'):\n", " train_data = []\n", " test_data = []\n", " train_label = []\n", " test_label = []\n", " folder_num = len(os.listdir(image_path))\n", " for k in range(folder_num):\n", " folder = os.path.join(image_path, 's%d' % (k + 1))\n", " faces = len(os.listdir(folder))\n", " data = [cv2.imread(d, 0) for d in glob(os.path.join(folder, '*.pgm'))]\n", "\n", " # split train dataset and test dataset\n", " random_list = random.sample(range(0, 10), int(faces * 0.7))\n", " train_data.extend([data[i].ravel() for i in range(10) if i in random_list])\n", " test_data.extend([data[i].ravel() for i in range(10) if i not in random_list])\n", " train_label.extend([k for _ in range(int(faces * 0.7))])\n", " test_label.extend([k for _ in range(int(faces * 0.3))])\n", "\n", " return np.array(train_data), np.array(train_label), np.array(test_data), np.array(test_label)\n", "\n", "\n", "def pca(data, k):\n", " data = np.float32(np.mat(data))\n", " rows, cols = data.shape\n", " data_mean = np.mean(data, 0)\n", " Z = data - np.tile(data_mean, (rows, 1))\n", " D, V = np.linalg.eig(Z * Z.T)\n", " V1 = V[:, :k]\n", " V1 = Z.T * V1\n", " for i in range(k):\n", " V1[:, i] /= np.linalg.norm(V1[:, i])\n", " return np.array(Z * V1), data_mean, V1\n", "\n", "\n", "def main():\n", " train_data, train_labels, test_data, test_labels = orl_dataset()\n", " hyp.plot(train_data, 'o')\n", " pca1 = PCA(n_components=0.7)\n", " train_data_pca = pca1.fit_transform(train_data) # 把原始训练集映射到主成分组成的子空间中\n", " test_data_pca = pca1.transform(test_data) # 把原始测试集映射到主成分组成的子空间中\n", " hyp.plot(train_data_pca, 'o', n_clusters=10)\n", " clf = SVC(C=1000.0, cache_size=200, class_weight='balanced', coef0=0.0,\n", " decision_function_shape='ovr', degree=3, gamma=0.001, kernel='poly',\n", " max_iter=-1, probability=False, random_state=None, shrinking=True,\n", " tol=0.001, verbose=False)\n", " # hyp.plot(train_data_pca, 'o')\n", " clf.fit(train_data_pca / 255, train_labels)\n", " predict = clf.predict(test_data_pca / 255)\n", " # hyp.plot(predict.reshape(200,1),'o', n_clusters=40)\n", " # hyp.plot(test_labels.reshape(200,1), 'o', n_clusters=40)\n", " print('Accuracy: %.2f%%' % ((predict == np.array(test_labels)).mean() * 100))\n", "\n", "\n", "if __name__ == '__main__':\n", " main()" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }