{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "view-in-github"
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "T1dEKfhqK9Gg"
},
"source": [
"# Eigen Faces\n",
"Here we use principal component analysis (PCA) to reduce the number of features in a dataset of faces.\n",
"The PC's are then fed into a Support Vector Machine (SVM) classifier to classify the faces based on learned features.\n",
"\n",
"\n",
"The dataset used in this example is a preprocessed excerpt of the\n",
"\"Labeled Faces in the Wild\", aka [LFW]('http://vis-www.cs.umass.edu/lfw/lfw-funneled.tgz')\n",
"\n",
"[More on LFW]('http://vis-www.cs.umass.edu/lfw/')\n",
"\n",
"[Other resources]('http://scikit-learn.org/stable/auto_examples/applications/face_recognition.html')\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "90N8wtB3Lfqh"
},
"source": [
"## Import the libraries\n",
"Here we import the libraries that we need for later"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "45QV6abqMzh2"
},
"outputs": [],
"source": [
"from time import time\n",
"import logging\n",
"import pylab as pl\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# !pip install -U scikit-learn\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.datasets import fetch_lfw_people\n",
"from sklearn.metrics import classification_report\n",
"from sklearn.metrics import confusion_matrix\n",
"from sklearn.decomposition import PCA\n",
"from sklearn.svm import SVC\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "Tx45bywRNo91"
},
"outputs": [],
"source": [
"#Display progress\n",
"logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s')\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "_-e7Cq2lL31e"
},
"source": [
"## Get the data\n",
"Here we pull in the data and store it in numpy arrays\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 252
},
"colab_type": "code",
"id": "Np3BhNhxOCuo",
"outputId": "29126bf1-f1ea-4d0b-abb8-1606acd861b6"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Downloading LFW metadata: https://ndownloader.figshare.com/files/5976012\n",
"2019-07-19 05:21:21,839 Downloading LFW metadata: https://ndownloader.figshare.com/files/5976012\n",
"Downloading LFW metadata: https://ndownloader.figshare.com/files/5976009\n",
"2019-07-19 05:21:28,215 Downloading LFW metadata: https://ndownloader.figshare.com/files/5976009\n",
"Downloading LFW metadata: https://ndownloader.figshare.com/files/5976006\n",
"2019-07-19 05:21:29,542 Downloading LFW metadata: https://ndownloader.figshare.com/files/5976006\n",
"Downloading LFW data (~200MB): https://ndownloader.figshare.com/files/5976015\n",
"2019-07-19 05:21:31,138 Downloading LFW data (~200MB): https://ndownloader.figshare.com/files/5976015\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total dataset size:\n",
"n_samples: 1288\n",
"n_features: 1850\n",
"n_classes: 7\n",
"Classes: ['Ariel Sharon' 'Colin Powell' 'Donald Rumsfeld' 'George W Bush'\n",
" 'Gerhard Schroeder' 'Hugo Chavez' 'Tony Blair']\n"
]
}
],
"source": [
"#Download the data\n",
"lfw_people =fetch_lfw_people(min_faces_per_person=70, resize=0.4)\n",
"\n",
"#Find out shape infomration about the images to help with plotting them\n",
"n_samples, h, w=lfw_people.images.shape\n",
"\n",
"np.random.seed(42)\n",
"\n",
"# for machine learning we use the data directly (as relative pixel\n",
"# position info is ignored by this model)\n",
"X = lfw_people.data\n",
"n_features = X.shape[1]\n",
"\n",
"# the label to predict is the ID of the person\n",
"y = lfw_people.target\n",
"target_names = lfw_people.target_names\n",
"n_classes = target_names.shape[0]\n",
"\n",
"print (\"Total dataset size:\")\n",
"print (\"n_samples: %d\" % n_samples)\n",
"print (\"n_features: %d\" % n_features)\n",
"print (\"n_classes: %d\" % n_classes)\n",
"print (\"Classes: %s\" % target_names)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 183
},
"colab_type": "code",
"id": "lDf_JK5WZ6-A",
"outputId": "d12aaadc-f046-48e1-939f-090cbd1306dc"
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"