{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "c77c894d", "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: opencv-python in c:\\users\\pisihara\\appdata\\local\\anaconda3\\lib\\site-packages (4.8.0.74)\n", "Requirement already satisfied: numpy>=1.21.2 in c:\\users\\pisihara\\appdata\\local\\anaconda3\\lib\\site-packages (from opencv-python) (1.24.3)\n" ] } ], "source": [ "!pip install opencv-python\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "from sklearn.linear_model import LinearRegression\n", "import seaborn as sns\n", "import matplotlib.colors as mcolors\n", "from sklearn.cluster import KMeans\n", "import json # library to handle JSON files\n", "import requests # library to handle requests\n", "import folium # map rendering library\n", "import cv2, os\n", "from sklearn.svm import SVC\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.model_selection import train_test_split\n", "from scipy import stats\n", "import seaborn as sns; sns.set()\n", "import math\n", "import folium\n", "from folium.features import DivIcon\n", "mpl.use('Agg')\n", "mpl.style.use('fivethirtyeight')\n", "from sklearn.datasets import fetch_lfw_people, fetch_olivetti_faces\n", "%matplotlib inline\n", "from ipywidgets import interact" ] }, { "cell_type": "markdown", "id": "9ee94ed5", "metadata": {}, "source": [ "# JNB Lab Solutions" ] }, { "cell_type": "markdown", "id": "488ea46b", "metadata": {}, "source": [ "## Section 1 Exercise" ] }, { "cell_type": "code", "execution_count": 2, "id": "eda7494d", "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
school_idlegacy_unit_idfinance_idshort_namelong_nameprimary_categoryis_high_schoolis_middle_schoolis_elementary_schoolis_pre_school...fifth_contact_titlefifth_contact_nameseventh_contact_titleseventh_contact_namerefugee_servicesvisual_impairmentsfreshman_start_end_timesixth_contact_titlesixth_contact_namehard_of_hearing
0609966375023531HAMMONDCharles G Hammond Elementary SchoolESFalseTrueTrueTrue...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

1 rows × 92 columns

\n", "
" ], "text/plain": [ " school_id legacy_unit_id finance_id short_name \\\n", "0 609966 3750 23531 HAMMOND \n", "\n", " long_name primary_category is_high_school \\\n", "0 Charles G Hammond Elementary School ES False \n", "\n", " is_middle_school is_elementary_school is_pre_school ... \\\n", "0 True True True ... \n", "\n", " fifth_contact_title fifth_contact_name seventh_contact_title \\\n", "0 NaN NaN NaN \n", "\n", " seventh_contact_name refugee_services visual_impairments \\\n", "0 NaN NaN NaN \n", "\n", " freshman_start_end_time sixth_contact_title sixth_contact_name \\\n", "0 NaN NaN NaN \n", "\n", " hard_of_hearing \n", "0 NaN \n", "\n", "[1 rows x 92 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw_CPS_data= pd.read_json('https://data.cityofchicago.org/resource/kh4r-387c.json?$limit=100000')\n", "raw_CPS_data.head(1) " ] }, { "cell_type": "code", "execution_count": 3, "id": "9a02ab10", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['school_id', 'legacy_unit_id', 'finance_id', 'short_name', 'long_name',\n", " 'primary_category', 'is_high_school', 'is_middle_school',\n", " 'is_elementary_school', 'is_pre_school', 'summary',\n", " 'administrator_title', 'administrator', 'secondary_contact_title',\n", " 'secondary_contact', 'address', 'city', 'state', 'zip', 'phone', 'fax',\n", " 'cps_school_profile', 'website', 'facebook', 'attendance_boundaries',\n", " 'grades_offered_all', 'grades_offered', 'student_count_total',\n", " 'student_count_low_income', 'student_count_special_ed',\n", " 'student_count_english_learners', 'student_count_black',\n", " 'student_count_hispanic', 'student_count_white', 'student_count_asian',\n", " 'student_count_native_american', 'student_count_other_ethnicity',\n", " 'student_count_asian_pacific', 'student_count_multi',\n", " 'student_count_hawaiian_pacific', 'student_count_ethnicity_not',\n", " 'statistics_description', 'demographic_description', 'dress_code',\n", " 'prek_school_day', 'kindergarten_school_day', 'school_hours',\n", " 'after_school_hours', 'earliest_drop_off_time', 'classroom_languages',\n", " 'bilingual_services', 'title_1_eligible', 'preschool_inclusive',\n", " 'preschool_instructional', 'transportation_bus', 'transportation_el',\n", " 'school_latitude', 'school_longitude', 'overall_rating',\n", " 'rating_status', 'rating_statement', 'classification_description',\n", " 'school_year', 'third_contact_title', 'third_contact_name', 'network',\n", " 'is_gocps_participant', 'is_gocps_prek', 'is_gocps_elementary',\n", " 'is_gocps_high_school', 'open_for_enrollment_date', 'twitter',\n", " 'youtube', 'pinterest', 'college_enrollment_rate_school',\n", " 'college_enrollment_rate_mean', 'graduation_rate_school',\n", " 'graduation_rate_mean', 'significantly_modified',\n", " 'transportation_metra', 'fourth_contact_title', 'fourth_contact_name',\n", " 'fifth_contact_title', 'fifth_contact_name', 'seventh_contact_title',\n", " 'seventh_contact_name', 'refugee_services', 'visual_impairments',\n", " 'freshman_start_end_time', 'sixth_contact_title', 'sixth_contact_name',\n", " 'hard_of_hearing'],\n", " dtype='object')" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw_CPS_data.columns" ] }, { "cell_type": "code", "execution_count": 4, "id": "1c51becb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PK,K-8 327\n", "9-12 144\n", "K-8 82\n", "7-12 11\n", "PK,K-6 10\n", "PK,K-5 10\n", "6-12 9\n", "K-6 8\n", "6-8 6\n", "PK,K-4 4\n", "K-12 4\n", "PE,PK,K-8 4\n", "11-12 4\n", "5-8 3\n", "PK 3\n", "K-5 3\n", "PK,K-3 3\n", "8-12 2\n", "PK,K-2 2\n", "7-8 2\n", "PK,3-8 1\n", "9 1\n", "K,4-8 1\n", "K-1,5-8 1\n", "3-12 1\n", "K-3,5-8 1\n", "1-8 1\n", "PK,K-7 1\n", "10-12 1\n", "4-11 1\n", "K-3 1\n", "K-2 1\n", "4-8 1\n", "Name: grades_offered, dtype: int64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw_CPS_data['grades_offered'].value_counts()" ] }, { "cell_type": "code", "execution_count": 5, "id": "e2cf61cc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
addresstotalblackhispanicwhitezip
02819 W 21ST PL34233304260623
\n", "
" ], "text/plain": [ " address total black hispanic white zip\n", "0 2819 W 21ST PL 342 33 304 2 60623" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df=raw_CPS_data[['address','student_count_total','student_count_black','student_count_hispanic','student_count_white','zip']]\n", "df23=df[df['zip']==60623]\n", "df23=df23.reset_index(drop=True)\n", "df23.columns= [\"address\",\"total\",\"black\",\"hispanic\",\"white\",\"zip\"]\n", "df23.head(1)" ] }, { "cell_type": "code", "execution_count": 6, "id": "a4614a49", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
addresstotalblackhispanicwhitezip%black%hispanic%white
02819 W 21ST PL342333042606239.688.90.0
\n", "
" ], "text/plain": [ " address total black hispanic white zip %black %hispanic \\\n", "0 2819 W 21ST PL 342 33 304 2 60623 9.6 88.9 \n", "\n", " %white \n", "0 0.0 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for i in df23.index:\n", " df23.loc[i,'%black']=round(100*df23.loc[i,'black']/df23.loc[i,'total'],1)\n", " df23.loc[i,'%hispanic']=round(100*df23.loc[i,'hispanic']/df23.loc[i,'total'],1)\n", " df23.loc[i,'%white']=round(df23.loc[i,'white']/df23.loc[i,'total'],1)\n", "df23.head(1)" ] }, { "cell_type": "code", "execution_count": 7, "id": "34f7bee4", "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Intercept is [98.71284906]\n", "Slope is [[-0.99515441]]\n", "R^2 for OLS is 0.9996943205528053\n" ] }, { "data": { "image/png": "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G4GRgDpqdCumwsLCMW26u7spKiqipKTkkg8xubu7s3btWgBSU1PNb3USEbEWhU4RmZYyMjKYPXs2Tz31lEX56LL6V199BYyEw8OHD2MwGMxvM7pS9fX1xMbGMjg4yO23346fn98l6xoMBvMblbKyshgeHgZGZkdLSkrYsGGDue7F95yGh4dja2tLTk4O+fn55vLu7m7i4uLo7e3l4YcfHnM/6MWeeeYZ7rjjDrq6uvjggw/+5tmKiEyMnl4XkWnn8OHDHD9+nKioKBwcHCyOLV++nL1795KZmUlxcTF//PEHvb29REZGYmtrO6l+YmJiLJbpTSYTPT091NXVYTKZMBgMvPPOO+Zl9vHY2dnx8ssvs3PnTjIzM8nPz2fOnDmcPXuWtrY2HBwc8PHx4dixY5w9e9bcztvbmzfffJPt27cTHx9PRkYGBoOBM2fOcOHCBebOnUtMTMxfjt/W1pbo6GjWrl3LN998w/Lly1m0aNGkvgMRkYnSTKeITDu7d+/G09NzzCwnjCyv79q1i/vvv5/GxkZcXFyIjIy02GB9ok6cOEFVVZX57/jx47S2tuLt7c3q1av5/PPPL7l10cVeeOEFEhMT8fX1ZXBwkJqaGhwdHQkMDCQrK8u8DH7o0CGLdmFhYaSlpfHoo4/S399PbW0tBoOB5557jqysrAm9e93Pz4+AgADAcjslEZGrzaajo0OPLYqIiIiIVWmmU0RERESsTqFTRERERKxOoVNERERErE6hU0RERESsTqFTRERERKxOoVNERERErE6hU0RERESsTqFTRERERKxOoVNERERErE6hU0RERESsTqFTRERERKxOoVNERERErE6hU0RERESs7n8fj3ybXhsT6gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import LinearRegression #sklearn is a machine learning library\n", "X=df23[[\"%black\"]]\n", "Y=df23[[\"%hispanic\"]]\n", "reg=LinearRegression()\n", "reg.fit(X,Y)\n", "print(\"Intercept is \", reg.intercept_)\n", "print(\"Slope is \", reg.coef_)\n", "print(\"R^2 for OLS is \", reg.score(X,Y))\n", "# x values on the regression line will be between 0 and 100 with a spacing of .0\n", "x = np.arange(0, 100 ,.01) \n", "# define the regression line y = mx+b here\n", "[[m]]=reg.coef_\n", "[b]=reg.intercept_\n", "y = m*x + b \n", "\n", "fig=df23.plot(x='%black', y='%hispanic', style='o') \n", "plt.title('% Black vs % Hispanic in 60623 pre-K - 8 Schools') \n", "plt.xlabel('% Black') \n", "plt.ylabel('% Hispanic') \n", "# plot the regression line \n", "plt.plot(x,y, 'r') #add the color for red\n", "plt.legend([],[], frameon=True)\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "001650de", "metadata": {}, "source": [ "## Section 2 Exercise" ] }, { "cell_type": "code", "execution_count": 8, "id": "a5df4121", "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# read from excel file, dropping all entries with N/A values\n", "violence = pd.read_csv('Violence.csv').dropna(subset = ['LATITUDE', 'LONGITUDE'])\n", "\n", "# Streamline columns to just latitude and longitude, reduce to just first 1000 entries\n", "violence = violence[['LATITUDE', 'LONGITUDE']].head(1000)\n", "\n", "# Reset the index for consistent numbering\n", "violence = violence.reset_index(drop = True)\n", "\n", "# Get the 100 colors used to identify clusters\n", "colorlist = list(mcolors.XKCD_COLORS.values())[:100]\n", "\n", "# Make a map that uses k-means clustering to divide locations into up to 100 clusters \n", "#the inout variable (clusters) specifies the number of clusters. \n", "#the input variable data specifies the locations.\n", "def make_map(clusters,data):\n", " assert clusters >= 1, \"Number of clusters must be at least 1\"\n", " assert clusters <= len(colorlist), \"Number of clusters exceeds maximum amount\"\n", " x=data[['LATITUDE', 'LONGITUDE']]\n", " k_means = KMeans(n_clusters=clusters)\n", " k_means.fit(x)\n", " k_means_labels = k_means.labels_\n", " \n", " x['labels'] = k_means_labels\n", " k_map = folium.Map(location=[41.783, -87.621], tiles=\"Stamen Toner\", zoom_start=10)\n", "\n", " for i in np.arange(0,len(x),1): #add parcel data one\n", " p=[x.loc[i,\"LATITUDE\"],x.loc[i,\"LONGITUDE\"]]# by one to the base map.\n", " k_map.add_child(folium.CircleMarker(p, radius=1,color=colorlist[x.loc[i, 'labels']], fill = True, fill_opacity = 1))\n", " return k_map" ] }, { "cell_type": "markdown", "id": "3b8fdf49", "metadata": {}, "source": [ "Let's take a look at the 22 clusters." ] }, { "cell_type": "code", "execution_count": 9, "id": "e59e306b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\pisihara\\AppData\\Local\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", " warnings.warn(\n", "C:\\Users\\pisihara\\AppData\\Local\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1382: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=4.\n", " warnings.warn(\n" ] }, { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cluster22_map = make_map(22,violence)\n", "cluster22_map" ] }, { "cell_type": "markdown", "id": "5eae1866", "metadata": {}, "source": [ "Here is an overlay of this map onto police districts." ] }, { "cell_type": "markdown", "id": "d329d718", "metadata": {}, "source": [ "\n", " " ] }, { "cell_type": "markdown", "id": "e61a3d44", "metadata": {}, "source": [ "While it is not perfect, our k-means algorithm clustered the violent occurrences in a similar manner to the police district boundaries." ] }, { "cell_type": "markdown", "id": "233e4255", "metadata": {}, "source": [ "## Section 3 Exercise" ] }, { "cell_type": "code", "execution_count": 10, "id": "20a06013", "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "def imagetovector(npix,directory,nimages):\n", " n=npix #use nxn pixel image\n", " # You'll want to store all your images in a folder within the same directory as this notebook. \n", " # Enter the name of that directory below.\n", " directory = directory # example: \"images\"\n", "\n", " # Dictionaries to store the image data and the dataframes we'll make from them.\n", " # The dataframes are used to translate data to and from excel.\n", " imgs = {}\n", " dfs = {}\n", "\n", " # Each image will be resized to ensure that their proportions are consistent with each other.\n", " # It's best to start with images that are already similarly sized so that images don't get\n", " # too distorted in the resize process. \n", " # Adjust the size to your preference: (width, height)\n", " dsize = (n, n)\n", "\n", " # This will iterate over every image in the directory given, read it into data, and create a \n", " # dataframe for it. Both the image data and its corresponding dataframe are stored.\n", " # Note that when being read into data, we interpret the image as grayscale. \n", " pos = 0\n", " for filename in os.listdir(directory):\n", " f = os.path.join(directory, filename)\n", " # checking if it is a file\n", " if os.path.isfile(f):\n", " imgs[pos] = cv2.imread(f, 0) # image data\n", " imgs[pos] = cv2.resize(imgs[pos], dsize)\n", " dfs[pos] = pd.DataFrame(imgs[pos]) # dataframe\n", " pos += 1\n", "\n", " # Exports the image dataframes to an excel file, with each excel sheet representing one image.\n", " # If there's already an excel file by the same name, it will overwrite it. Note that if the\n", " # excel file it's attempting to overwrite is already open, the write will be blocked.\n", " with pd.ExcelWriter('image_data.xlsx') as writer: \n", " for i in np.arange(0, len(dfs)):\n", " dfs[i].to_excel(writer, sheet_name=str(i))\n", " def matrixtovector(matrix,n,s):\n", " t=0\n", " vec=pd.DataFrame()\n", " for i in np.arange(0,n,1):\n", " for j in np.arange(0,n,1):\n", " vec.loc[t,str(s)]=matrix.loc[i,j]\n", " t=t+1\n", " return vec\n", "\n", " numimages=nimages\n", " data=pd.DataFrame()\n", " for t in np.arange(0,numimages,1):\n", " data.loc[:,str(t)]=matrixtovector(dfs[t],n,t) \n", " return data,imgs" ] }, { "cell_type": "code", "execution_count": 11, "id": "5e6e8bad", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234567
0255.0255.0255.0255.0255.0255.0255.0255.0
1255.0255.0255.0255.0255.0255.0255.0255.0
2255.0255.0255.0255.0255.0255.0255.0255.0
3255.0255.0255.0255.0255.0255.0255.0255.0
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7\n", "0 255.0 255.0 255.0 255.0 255.0 255.0 255.0 255.0\n", "1 255.0 255.0 255.0 255.0 255.0 255.0 255.0 255.0\n", "2 255.0 255.0 255.0 255.0 255.0 255.0 255.0 255.0\n", "3 255.0 255.0 255.0 255.0 255.0 255.0 255.0 255.0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[traindata,imgs]=imagetovector(64,\"letters\",8)\n", "traindata.head(4)" ] }, { "cell_type": "code", "execution_count": 12, "id": "67432236", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "original shape: (8, 4096)\n", "transformed shape: (8, 2)\n" ] } ], "source": [ "from sklearn.decomposition import PCA\n", "letter=traindata\n", "pca = PCA(n_components=2)\n", "pca.fit(np.transpose(letter))\n", "letter_pca = pca.transform(np.transpose(letter))\n", "filtered = pca.inverse_transform(letter_pca)\n", "print(\"original shape: \", np.transpose(letter).shape)\n", "print(\"transformed shape:\", letter_pca.shape)" ] }, { "cell_type": "markdown", "id": "9cd989b7", "metadata": {}, "source": [ "**Answer to part a)**" ] }, { "cell_type": "code", "execution_count": 13, "id": "264bc15e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(2,2))\n", "plt.gca().imshow(filtered[4].reshape(64, 64),\n", " cmap=\"gray\")" ] }, { "cell_type": "markdown", "id": "d139ac66", "metadata": {}, "source": [ "**Answer to part b)**" ] }, { "cell_type": "markdown", "id": "3dd55b2d", "metadata": {}, "source": [ "Image of first principal component vector" ] }, { "cell_type": "code", "execution_count": 14, "id": "9dd4cde8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#image corresponding to the 1st basis vector.\n", "fig=plt.figure(figsize=(2,2))\n", "plt.gca().imshow(pca.components_[0].reshape(64, 64),\n", " cmap=\"gray\")" ] }, { "cell_type": "markdown", "id": "d4b1f404", "metadata": {}, "source": [ "Image of the second principal component vector." ] }, { "cell_type": "code", "execution_count": 15, "id": "87bb543e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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GRlh9o1A0M5c0p6Sd955J+68886ar61fvx779u1r+pxOp3NRJ8C1hizLsFqtkGW5af35WmC5n79Z17GUTCari79NIBCIrGOBwCRCWAQCkwhhEQhMIoRFIDCJEBaBwCRCWAQCk1xSnKVVVCoVfO9738N//dd/IZ1OY+PGjfj7v/97rFixYjlvq+WkUik8//zzeOONN6AoClavXo37778fGzduBAB861vfwiuvvKL7TCQSWXCsXTl//jz+/M//fMHxRx55BH/xF3+BsbExPP300zh27Bj8fj+2b9+OHTt2LMOdNmZZhWXv3r04cOAAHnvsMXR1deHZZ5/Fgw8+iP3798Nuty/nrbWURx99FIlEAqOjowgEAvjRj36EkZERvPTSS1i5ciVOnjyJL37xi/jLv/xL9plm08evZk6ePAmn04mf/OQnuuNer5eVot988814+OGH8d577+Gpp56C3++/6qprl00N0zQNL7/8Mu677z7ceOONWLt2LZ544gnE43H84he/WK7bajmTk5N46623sHPnTmzcuBGDg4P4+te/jkgkgldffRXlchnj4+NYv349wuEw+xMIBJb71lvGyZMnMTAwoHu+cDgMWZbx05/+lJWiDw0NYdu2bbjjjjvw4osvLvdtL2DZhGVsbAyKomDLli3smM/nw7p16/Duu+8u1221nM7OTuzevRvr1q1jxyRJQrVaRTqdxuTkJAqFAoaGhpbxLq8sJ0+erPt87VSKvmxqWDweB3CxRoYIh8OIxWLLcUtXBJ/PhxtvvFF37LXXXsPU1BQ++clP4uTJk5AkCfv378ebb74Ji8WCT33qU/ja174Gr9e7THfdWk6ePIlwOIz77rsPk5OTWLFiBb70pS/hD//wDy+rFH2pWbaVJZ/PA8CCMmSHw7FoCXI787vf/Q6jo6O46aabsHXrVpw6dQoWiwU9PT145pln8Ld/+7d488038dBDD6FSqSz37V42mqbhzJkzUBQFX/va17B7925cd911ePDBB3Hw4MHLKkVfapZtZeG/ED77s1gsXrPZx7/61a/w2GOP4frrr8fo6CgA4L777sMdd9wBn88HABgeHkY4HMa9996Lo0eP4vrrr1/OW75s7HY7Xn/9dVitViYU1113HU6fPo3//M//vKxS9KVm2VYWUr9qlSFHIpHluKUryg9/+EPs3LkTn/rUp/Cv//qvbIKQJIkJCkFl26Sqtjsul2vB6rF69WrE43FEo9FLLkVfapZNWNasWQOPx4N33nmHHctkMjh+/DiLP1wr/PjHP8auXbtw++2344knntANnEcffRQjIyO69x89ehQArgmj/8SJE7j55ptx+PBh3fFjx45h1apVbVWKvmzC4nA4cPvtt+O5557D//3f/+HEiRN45JFHEI1GccsttyzXbbWciYkJPPPMM/j0pz+Nu+++G4lEArOzs5idnUU2m8Wtt96KgwcPYt++fZiamsKbb76Jf/qnf8Ktt956TQjL8PAwhoeH8eSTT+Lw4cM4ffo0du/ejd///ve455572qoUfVmLv8rlMp5//nm88sorKBQK2LRpE77xjW+gt7d3uW6p5Xz/+9/HCy+8UPO12267Dd/85jfx+uuv4/vf/z5Onz4Nn8+HW2+9FX/zN3/D7Lp2Z35+Hs899xzefPNNZLNZfOITn8D999+PTZs2Abiwku7atQtjY2MIhUK48847dQHaqwVRKSkQmEQkUgoEJhHCIhCYRAiLQGASISwCgUmEsAgEJhHCIhCYRAiLQGASISwCgUmEsAgEJhHCIhCYRAiLQGASISwCgUn+HwH9DmullVljAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#image corresponding to the 2nd basis vector.\n", "fig=plt.figure(figsize=(2,2))\n", "plt.gca().imshow(pca.components_[1].reshape(64, 64),\n", " cmap=\"gray\")" ] }, { "cell_type": "markdown", "id": "1ab50b70", "metadata": {}, "source": [ "Answer to c)." ] }, { "cell_type": "code", "execution_count": 16, "id": "4371f192", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1286.48056884, 3118.77874561])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "letter_pca[1]" ] }, { "cell_type": "markdown", "id": "27863c13", "metadata": {}, "source": [ "Answer to d) We could only model the first two pixels so would not have any idea of the images." ] }, { "cell_type": "markdown", "id": "205ed0cf", "metadata": {}, "source": [ "## Section 4 Exercise" ] }, { "cell_type": "code", "execution_count": 17, "id": "2c093d9e", "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "def imagetovector(npix,directory,nimages):\n", " n=npix #use nxn pixel image\n", " # You'll want to store all your images in a folder within the same directory as this notebook. \n", " # Enter the name of that directory below.\n", " directory = directory # example: \"images\"\n", "\n", " # Dictionaries to store the image data and the dataframes we'll make from them.\n", " # The dataframes are used to translate data to and from excel.\n", " imgs = {}\n", " dfs = {}\n", "\n", " # Each image will be resized to ensure that their proportions are consistent with each other.\n", " # It's best to start with images that are already similarly sized so that images don't get\n", " # too distorted in the resize process. \n", " # Adjust the size to your preference: (width, height)\n", " dsize = (n, n)\n", "\n", " # This will iterate over every image in the directory given, read it into data, and create a \n", " # dataframe for it. Both the image data and its corresponding dataframe are stored.\n", " # Note that when being read into data, we interpret the image as grayscale. \n", " pos = 0\n", " for filename in os.listdir(directory):\n", " f = os.path.join(directory, filename)\n", " # checking if it is a file\n", " if os.path.isfile(f):\n", " imgs[pos] = cv2.imread(f, 0) # image data\n", " imgs[pos] = cv2.resize(imgs[pos], dsize)\n", " dfs[pos] = pd.DataFrame(imgs[pos]) # dataframe\n", " pos += 1\n", "\n", " # Exports the image dataframes to an excel file, with each excel sheet representing one image.\n", " # If there's already an excel file by the same name, it will overwrite it. Note that if the\n", " # excel file it's attempting to overwrite is already open, the write will be blocked.\n", " with pd.ExcelWriter('image_data.xlsx') as writer: \n", " for i in np.arange(0, len(dfs)):\n", " dfs[i].to_excel(writer, sheet_name=str(i))\n", " def matrixtovector(matrix,n,s):\n", " t=0\n", " vec=pd.DataFrame()\n", " for i in np.arange(0,n,1):\n", " for j in np.arange(0,n,1):\n", " vec.loc[t,str(s)]=matrix.loc[i,j]\n", " t=t+1\n", " return vec\n", "\n", " numimages=nimages\n", " data=pd.DataFrame()\n", " for t in np.arange(0,numimages,1):\n", " data.loc[:,str(t)]=matrixtovector(dfs[t],n,t) \n", " return data,imgs " ] }, { "cell_type": "code", "execution_count": 18, "id": "f991970b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234567
054.029.00.017.0215.0245.088.0197.0
141.065.00.016.0182.0242.093.0186.0
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7\n", "0 54.0 29.0 0.0 17.0 215.0 245.0 88.0 197.0\n", "1 41.0 65.0 0.0 16.0 182.0 242.0 93.0 186.0" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[traindata,imgs]=imagetovector(32,\"exerciseimages\",8)\n", "traindata.head(2)" ] }, { "cell_type": "code", "execution_count": 19, "id": "eb3c40c4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 0, 0, 0, 1, 1, 1, 1])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = SVC(kernel='linear', C=1)\n", "X=[traindata.loc[:,\"0\"],traindata.loc[:,\"1\"],traindata.loc[:,\"2\"],traindata.loc[:,\"3\"],traindata.loc[:,\"4\"],traindata.loc[:,\"5\"],traindata.loc[:,\"6\"],traindata.loc[:,\"7\"]]\n", "Y=[0,0,0,0,1,1,1,1] #Labels the images 0=Hillary Clinton 1=Michelle Obama\n", "model.fit(X,Y)\n", "ypred=model.predict(X)\n", "ypred" ] }, { "cell_type": "code", "execution_count": 20, "id": "dc6099d8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123
102280.069.036.042.0
102380.044.037.047.0
\n", "
" ], "text/plain": [ " 0 1 2 3\n", "1022 80.0 69.0 36.0 42.0\n", "1023 80.0 44.0 37.0 47.0" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[testdata,testimgs]=imagetovector(32,\"exercisetestimages\",4)\n", "testdata.tail(2)" ] }, { "cell_type": "code", "execution_count": 21, "id": "b84b5c01", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#display the first test image\n", "plt.imshow(testimgs[0], cmap=\"gray\") " ] }, { "cell_type": "code", "execution_count": 22, "id": "98223501", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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IqUwcRERkVKYuIiISClBL/kUqJiYGE+NPa12XXR0tGnMHukw89LxaaRjUwXCauA2bTmtlldar2z27Nmi+O9///uieGOdPX8cO3ZM91qrTeZ0Oi1r4r3xxhui9o1D6fgirUkpHQvKquadNhZTXV2daXwyaQ1OAKIRYwH5fiStkXnRRReZpiUmJgIAvvvd75oGE928ebOo/dbWVlE88HXdQH9JjxdWn2nf77Kxbqh0fEDpfhrIgKSB/Ju+tHWyGksQ8G+/k+6bPOMiIiKlMHEREZFSmLiIiEgpTFxERKQUJi4iIlIKExcRESmFiYuIiJTCxEVEREph4iIiIqUwcRERkVKYuIiISCnnTa3CpqYmT12x6OhoAEBLSwva29t1cVa1sLyR1h6T1mcDYKqn6Mt1111nmtbe3o5Dhw4hPz/fs/6abdu2idrfsWOHKH748OGi+KqqKlE8AERGRupe2+12JCQkoK6uDj09Pab4pqYmUfsHDx4UxVdXV4vix44dK4q32o+0unWNjY2mmpjPP/+8qH0AyM/PF8VfccUVonhjbUFfKisrTdO0+ozHjh1DfX29bt7VV18tan/r1q2ieACmWoG+WO2L3lhtZ+14YLfbTccfaftnwzddZ63W4enTpwOue8hahURENKgxcRERkVKYuIiISClMXEREpBQmLiIiUgoTFxERKYWJi4iIlMLERURESmHiIiIipTBxERGRUpi4iIhIKUxcRESklPOmyG5YWJin0KJWGDMsLAzh4eG6uObmZlG70nhpUU4AiImJEcVbFf71VphzwoQJovalhYg3bdokii8rKxPFA+ZCxElJSZg9ezb++c9/wuVymeKdTqeofek633333aL49PR0UfwzzzxjmqZ9BvX19aipqdHNu/baa0XtAwEUJg2R/U7dt2+fKF76PWhtbRXFS4sKA8Df/vY3Ubx0P7I6Xmjbpbe317SNpAW5pUXCA9Hd3S2KNxbS9ba+/mKRXSIiGtSYuIiISClMXEREpBQmLiIiUgoTFxERKYWJi4iIlMLERURESmHiIiIipTBxERGRUpi4iIhIKUxcRESklPOmVmFsbKynTphWnzA6OtpUq+vIkSOidktLS0Xxw4YNE8UDwD333COK/+ijj0zTQkJC4HA4UFRUZKoFduzYMVH70tqDPT09onhjnT1/jBgxQve6vb3d05bV+s2YMUPU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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#display the second test image\n", "plt.imshow(testimgs[1], cmap=\"gray\") " ] }, { "cell_type": "code", "execution_count": 23, "id": "4adad222", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#display the third test image\n", "plt.imshow(testimgs[2], cmap=\"gray\") " ] }, { "cell_type": "code", "execution_count": 24, "id": "7ecff52d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#display the fourth test image\n", "plt.imshow(testimgs[3], cmap=\"gray\") " ] }, { "cell_type": "code", "execution_count": 25, "id": "d7910d3a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 0, 0, 1])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Xtest=[testdata.loc[:,\"0\"],testdata.loc[:,\"1\"],testdata.loc[:,\"2\"],testdata.loc[:,\"3\"]]\n", "model.predict(Xtest)" ] }, { "cell_type": "markdown", "id": "ef5b4314", "metadata": {}, "source": [ "Note that in the output prediction, 0=Hillary Clinton and 1=Michelle Obama." ] } ], "metadata": { "celltoolbar": "Edit Metadata", "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 5 }