diff --git a/Carlos_Knowles_LS_DS_131_Vectors_and_Matrices_Assignment.ipynb b/Carlos_Knowles_LS_DS_131_Vectors_and_Matrices_Assignment.ipynb new file mode 100644 index 00000000..b97bfaa2 --- /dev/null +++ b/Carlos_Knowles_LS_DS_131_Vectors_and_Matrices_Assignment.ipynb @@ -0,0 +1,1333 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Carlos_Knowles_LS_DS_131_Vectors_and_Matrices_Assignment.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yXA3GwWhY9KL", + "colab_type": "text" + }, + "source": [ + "# Part 1 - Scalars and Vectors\n", + "\n", + "For the questions below it is not sufficient to simply provide answer to the questions, but you must solve the problems and show your work using python (the NumPy library will help a lot!) Translate the vectors and matrices into their appropriate python representations and use numpy or functions that you write yourself to demonstrate the result or property. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oNOTv43_Zi9L", + "colab_type": "text" + }, + "source": [ + "## 1.1 Create a two-dimensional vector and plot it on a graph" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "maXqq7HEdHoC", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 72 + }, + "outputId": "26b6a3bf-62e1-441b-ba32-b53416b9ef90" + }, + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import math" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n", + " import pandas.util.testing as tm\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XNqjzQzrkVG7", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "305b21c8-c718-42f4-c6a7-702e3dd6a575" + }, + "source": [ + "v = np.array([3,4])\n", + "v" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([3, 4])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "IQurYlDodeou", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "bed743bc-0f97-402e-e00b-48bc67e04eba" + }, + "source": [ + "fig, ax = plt.subplots()\n", + "ax.grid()\n", + "plt.xlim(0,4)\n", + "plt.ylim(0,5)\n", + "\n", + "plt.arrow(0,0,\n", + " v[0],\n", + " v[1], \n", + " head_width = .02,\n", + " linewidth = 3,\n", + " color = 'red');" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "unKFT619lk3e", + "colab_type": "text" + }, + "source": [ + "## 1.2 Create a three-dimensional vecor and plot it on a graph" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9Aa_Kr3TfuPg", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 123 + }, + "outputId": "2fa8b619-f823-47bd-a8aa-c1519159f6f0" + }, + "source": [ + "vector = np.array([[0,0,0,1,2,3]])\n", + "X,Y,Z,A,B,C = zip(*vector)\n", + "for letter in [X,Y,Z,A,B,C]:\n", + " print(letter)" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(0,)\n", + "(0,)\n", + "(0,)\n", + "(1,)\n", + "(2,)\n", + "(3,)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "atUEd3T6llKm", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "outputId": "e76842f3-9f58-4b81-d501-e5d54a6064c6" + }, + "source": [ + "\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.quiver(X, Y, Z, A, B, C, length=1, color='gold',linewidth=6)\n", + "ax.set_xlim([0, 4])\n", + "ax.set_ylim([0, 4])\n", + "ax.set_zlim([0, 4])\n", + "ax.set_xlabel('X')\n", + "ax.set_ylabel('Y')\n", + "ax.set_zlabel('Z')\n", + "plt.show()" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b7qFxbKxZmI2", + "colab_type": "text" + }, + "source": [ + "## 1.3 Scale the vectors you created in 1.1 by $5$, $\\pi$, and $-e$ and plot all four vectors (original + 3 scaled vectors) on a graph. What do you notice about these vectors? " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ah6zMSLJdJwL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "b1ccb836-02b8-4d42-a7db-6c34f010f6c6" + }, + "source": [ + "from math import e, pi\n", + "print(e)\n", + "print(pi)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "2.718281828459045\n", + "3.141592653589793\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3qpwDlzXkVf5", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "291b3586-b607-437b-b47e-f9507b370ecf" + }, + "source": [ + "v_mult = v * 5\n", + "v_e = v*2.7182818284559045\n", + "v_pi = v*3.141592653589793\n", + "print(v, v_mult, v_e, v_pi)" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[3 4] [15 20] [ 8.15484549 10.87312731] [ 9.42477796 12.56637061]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XeSxlvd3hAXI", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 265 + }, + "outputId": "fb785ac2-b522-4f1c-9092-f05c4c0c6954" + }, + "source": [ + "fig, ax = plt.subplots()\n", + "ax.grid()\n", + "plt.xlim(0,16)\n", + "plt.ylim(0,21)\n", + "for color, vector in[('crimson', v),('darkgreen', v_e), ('orange', v_mult), ('lightblue', v_pi)]:\n", + " plt.arrow(0,0,\n", + " vector[0],\n", + " vector[1], \n", + " head_width = .02,\n", + " linewidth = 3,\n", + " color = color);" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mThqvz98iGIv", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#These vectors overlap" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wrgqa6sWimbH", + "colab_type": "text" + }, + "source": [ + "## 1.4 Graph vectors $\\vec{a}$ and $\\vec{b}$ and plot them on a graph\n", + "\n", + "\\begin{align}\n", + "\\vec{a} = \\begin{bmatrix} 5 \\\\ 7 \\end{bmatrix}\n", + "\\qquad\n", + "\\vec{b} = \\begin{bmatrix} 3 \\\\4 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I1BGXA_skV-b", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "699abfe9-f8fd-4267-f4f0-3a7986725cb2" + }, + "source": [ + "a = np.array([5,7])\n", + "b = np.array([3,4])\n", + "fig, ax = plt.subplots()\n", + "ax.grid()\n", + "plt.xlim(0,6)\n", + "plt.ylim(0,8)\n", + "for color, vector in[('crimson', a),('lightblue', b), ('k', c)]:\n", + " plt.arrow(0,0,\n", + " vector[0],\n", + " vector[1], \n", + " head_width = .02,\n", + " linewidth = 3,\n", + " color = color);" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QN6RU_3gizpw", + "colab_type": "text" + }, + "source": [ + "## 1.5 find $\\vec{a} - \\vec{b}$ and plot the result on the same graph as $\\vec{a}$ and $\\vec{b}$. Is there a relationship between vectors $\\vec{a} \\thinspace, \\vec{b} \\thinspace \\text{and} \\thinspace \\vec{a-b}$" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "68sWHIOPkXp5", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "d6c9d607-a665-4320-c7b1-b223b952391f" + }, + "source": [ + "c = a - b\n", + "c " + ], + "execution_count": 31, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([2, 3])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1ZPVuJAlehu_", + "colab_type": "text" + }, + "source": [ + "## 1.6 Find $c \\cdot d$\n", + "\n", + "\\begin{align}\n", + "\\vec{c} = \\begin{bmatrix}7 & 22 & 4 & 16\\end{bmatrix}\n", + "\\qquad\n", + "\\vec{d} = \\begin{bmatrix}12 & 6 & 2 & 9\\end{bmatrix}\n", + "\\end{align}\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2_cZQFCskYNr", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "c7983cee-fae3-4e00-ea5c-142dbe142c40" + }, + "source": [ + "c = np.array([7,22,4,16])\n", + "d = np.array([12,6,2,9])\n", + "np.dot(c,d)" + ], + "execution_count": 32, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "368" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 32 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cLm8yokpfg9B", + "colab_type": "text" + }, + "source": [ + "## 1.7 Find $e \\times f$\n", + "\n", + "\\begin{align}\n", + "\\vec{e} = \\begin{bmatrix} 5 \\\\ 7 \\\\ 2 \\end{bmatrix}\n", + "\\qquad\n", + "\\vec{f} = \\begin{bmatrix} 3 \\\\4 \\\\ 6 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ku-TdCKAkYs8", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "ea8ffde0-a00d-4111-be6e-668f80901866" + }, + "source": [ + "e = np.array([[5], [7], [2]])\n", + "f = np.array([[3], [4], [6]])\n", + "np.cross(e,f, axis = 0)" + ], + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 34],\n", + " [-24],\n", + " [ -1]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-TN8wO2-h53s", + "colab_type": "text" + }, + "source": [ + "## 1.8 Find $||g||$ and then find $||h||$. Which is longer?\n", + "\n", + "\\begin{align}\n", + "\\vec{g} = \\begin{bmatrix} 1 \\\\ 1 \\\\ 1 \\\\ 8 \\end{bmatrix}\n", + "\\qquad\n", + "\\vec{h} = \\begin{bmatrix} 3 \\\\3 \\\\ 3 \\\\ 3 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-5VKOMKBlgaA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "c4828a11-e438-4470-8c38-784d29fb47f0" + }, + "source": [ + "g = np.array([[1], [1], [1], [8]])\n", + "h = np.array([[3], [3], [3], [3]])\n", + "print('g = ', np.linalg.norm(g))\n", + "print('h = ', np.linalg.norm(h))" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "stream", + "text": [ + "g = 8.18535277187245\n", + "h = 6.0\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "njrWIMS-ZAoH", + "colab_type": "text" + }, + "source": [ + "# Part 2 - Matrices" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GjkcAVIOmOnn", + "colab_type": "text" + }, + "source": [ + "## 2.1 What are the dimensions of the following matrices? Which of the following can be multiplied together? See if you can find all of the different legal combinations.\n", + "\\begin{align}\n", + "A = \\begin{bmatrix}\n", + "1 & 2 \\\\\n", + "3 & 4 \\\\\n", + "5 & 6\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "B = \\begin{bmatrix}\n", + "2 & 4 & 6 \\\\\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "C = \\begin{bmatrix}\n", + "9 & 6 & 3 \\\\\n", + "4 & 7 & 11\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "D = \\begin{bmatrix}\n", + "1 & 0 & 0 \\\\\n", + "0 & 1 & 0 \\\\\n", + "0 & 0 & 1\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "E = \\begin{bmatrix}\n", + "1 & 3 \\\\\n", + "5 & 7\n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z69c-uPtnbIx", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#A = 3x2 | B = 1x3 | C = 2x3 | D = 3x3 | E = 2x2\n", + "# AxC, AxE, BxA, BxD, CxD, CxA, ExC, \n", + "A = np.array([[1,2], [3,4], [5,6]])\n", + "B = np.array([[2,4,6]])\n", + "C = np.array([[9,6,3], [4,7,11]])\n", + "D = np.array([[1,0,0], [0,1,0], [0,0,1]])\n", + "E = np.array([[1,3], [5,7]])" + ], + "execution_count": 44, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "eN3Tvdjqn4kN", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "ebf1523b-b9f4-4a97-cf4e-08d370cb936f" + }, + "source": [ + "" + ], + "execution_count": 47, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[[1 3]\n", + " [5 7]]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lMOlCoM3ncGa", + "colab_type": "text" + }, + "source": [ + "## 2.2 Find the following products: CD, AE, and BA. What are the dimensions of the resulting matrices? How does that relate to the dimensions of their factor matrices?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "D2BKe4Iaotcq", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "acd922fe-37c7-44c7-9cd3-fca4fb396a72" + }, + "source": [ + "np.matmul(C,D) #Dimension = 2x3" + ], + "execution_count": 50, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 9, 6, 3],\n", + " [ 4, 7, 11]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 50 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "zhKwiSItoE2F", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "ae2d3902-a277-48fd-ce7a-504b2f48e98f" + }, + "source": [ + "np.matmul(A,E) #Dimension = 3x3" + ], + "execution_count": 51, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[11, 17],\n", + " [23, 37],\n", + " [35, 57]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 51 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "v9T8_1x2pAFm", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "09dc9ca6-7e2c-41ba-8584-eb72a2783038" + }, + "source": [ + "np.matmul(B,A) #Dimension = 1x2" + ], + "execution_count": 52, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[44, 56]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 52 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "p2jmaGLgoFPN", + "colab_type": "text" + }, + "source": [ + "## 2.3 Find $F^{T}$. How are the numbers along the main diagonal (top left to bottom right) of the original matrix and its transpose related? What are the dimensions of $F$? What are the dimensions of $F^{T}$?\n", + "\n", + "\\begin{align}\n", + "F = \n", + "\\begin{bmatrix}\n", + "20 & 19 & 18 & 17 \\\\\n", + "16 & 15 & 14 & 13 \\\\\n", + "12 & 11 & 10 & 9 \\\\\n", + "8 & 7 & 6 & 5 \\\\\n", + "4 & 3 & 2 & 1\n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Wl3ElwgLqaAn", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + }, + "outputId": "ab9f0161-1777-4a47-d43b-cbe17453604c" + }, + "source": [ + "F = np.array([[20,19,18,17], [16,15,14,13], [12,11,10,9], [8,7,6,5], [4,3,2,1]])\n", + "pd.DataFrame(F)" + ], + "execution_count": 54, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
0123
020191817
116151413
21211109
38765
44321
\n", + "
" + ], + "text/plain": [ + " 0 1 2 3\n", + "0 20 19 18 17\n", + "1 16 15 14 13\n", + "2 12 11 10 9\n", + "3 8 7 6 5\n", + "4 4 3 2 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 54 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "FumaqpBHpsGA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 172 + }, + "outputId": "71859677-e84c-49ee-feda-67ea92a59482" + }, + "source": [ + "pd.DataFrame(F.T) #Every number swapped positions with the number across the main diagonal. The far right column became the bottom row and the bottom row became the far right column." + ], + "execution_count": 55, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
01234
020161284
119151173
218141062
31713951
\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4\n", + "0 20 16 12 8 4\n", + "1 19 15 11 7 3\n", + "2 18 14 10 6 2\n", + "3 17 13 9 5 1" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 55 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "13ik2LEEZLHn", + "colab_type": "text" + }, + "source": [ + "# Part 3 - Square Matrices" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sDBAPUwfp7f7", + "colab_type": "text" + }, + "source": [ + "## 3.1 Find $IG$ (be sure to show your work) 😃\n", + "\n", + "You don't have to do anything crazy complicated here to show your work, just create the G matrix as specified below, and a corresponding 2x2 Identity matrix and then multiply them together to show the result. You don't need to write LaTeX or anything like that (unless you want to).\n", + "\n", + "\\begin{align}\n", + "G= \n", + "\\begin{bmatrix}\n", + "13 & 14 \\\\\n", + "21 & 12 \n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ZnqvZBOYqar3", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "806fc573-12de-4ab0-ea98-b7343c218c63" + }, + "source": [ + "G = np.array([[13,14], [21,12]])\n", + "G" + ], + "execution_count": 57, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[13, 14],\n", + " [21, 12]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 57 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BS6o360hqiOz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "d44e761f-6365-486a-de56-20bfd5a7c0d1" + }, + "source": [ + "G_inverse = np.linalg.inv(G)\n", + "G_inverse" + ], + "execution_count": 59, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.08695652, 0.10144928],\n", + " [ 0.15217391, -0.0942029 ]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 59 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "8N207Qf3rK5_", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "bb3c6c27-ab0e-4e5f-c7fc-7e47e276f964" + }, + "source": [ + "G_Identity = np.matmul(G, G_inverse)\n", + "G_Identity" + ], + "execution_count": 62, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 1.00000000e+00, -1.38777878e-16],\n", + " [ 2.22044605e-16, 1.00000000e+00]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 62 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DZ_0XTDQqpMT", + "colab_type": "text" + }, + "source": [ + "## 3.2 Find $|H|$ and then find $|J|$.\n", + "\n", + "\\begin{align}\n", + "H= \n", + "\\begin{bmatrix}\n", + "12 & 11 \\\\\n", + "7 & 10 \n", + "\\end{bmatrix}\n", + "\\qquad\n", + "J= \n", + "\\begin{bmatrix}\n", + "0 & 1 & 2 \\\\\n", + "7 & 10 & 4 \\\\\n", + "3 & 2 & 0\n", + "\\end{bmatrix}\n", + "\\end{align}\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5QShhoXyrjDS", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "8f58f9a6-f558-4292-99b3-a879e29ff405" + }, + "source": [ + "H = np.array([[12,11], [7,10]])\n", + "J = np.array([[0,1,2], [7,10,4], [3,2,0]])\n", + "H_det = np.linalg.det(H)\n", + "J_det = np.linalg.det(J)\n", + "print(H_det, J_det)" + ], + "execution_count": 66, + "outputs": [ + { + "output_type": "stream", + "text": [ + "43.000000000000014 -19.999999999999996\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2gZl1CFwrXSH", + "colab_type": "text" + }, + "source": [ + "## 3.3 Find $H^{-1}$ and then find $J^{-1}$" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nyX6De2-rio1", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "3a15683f-5a79-49e3-a567-31f937eabde6" + }, + "source": [ + "H_inv = np.linalg.inv(H)\n", + "J_inv = np.linalg.inv(J)\n", + "print('H_inv: ', H_inv)\n", + "print('J_inv: ', J_inv)" + ], + "execution_count": 68, + "outputs": [ + { + "output_type": "stream", + "text": [ + "H_inv: [[ 0.23255814 -0.25581395]\n", + " [-0.1627907 0.27906977]]\n", + "J_inv: [[ 0.4 -0.2 0.8 ]\n", + " [-0.6 0.3 -0.7 ]\n", + " [ 0.8 -0.15 0.35]]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Vvd4Pe86rjhW", + "colab_type": "text" + }, + "source": [ + "## 3.4 Find $HH^{-1}$ and then find $J^{-1}J$. Is $HH^{-1} == J^{-1}J$? Why or Why not? \n", + "\n", + "Please ignore Python rounding errors. If necessary, format your output so that it rounds to 5 significant digits (the fifth decimal place)." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1H0Hn_EFsivc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "7b25695c-3039-4c61-b0ca-9559d76745ec" + }, + "source": [ + "np.dot(H,H_inv)" + ], + "execution_count": 71, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[1.00000000e+00, 5.55111512e-16],\n", + " [2.22044605e-16, 1.00000000e+00]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 71 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "f5kxVG4kspI_", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "d90675bf-3697-4ad5-f100-845b90777d6b" + }, + "source": [ + "np.dot(J_inv, J)" + ], + "execution_count": 72, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 1.00000000e+00, 2.22044605e-16, 0.00000000e+00],\n", + " [-1.11022302e-16, 1.00000000e+00, 0.00000000e+00],\n", + " [-1.66533454e-16, -1.11022302e-16, 1.00000000e+00]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 72 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V0iTO4McYjtk", + "colab_type": "text" + }, + "source": [ + "# Stretch Goals: \n", + "\n", + "A reminder that these challenges are optional. If you finish your work quickly we welcome you to work on them. If there are other activities that you feel like will help your understanding of the above topics more, feel free to work on that. Topics from the Stretch Goals sections will never end up on Sprint Challenges. You don't have to do these in order, you don't have to do all of them. \n", + "\n", + "- Write a function that can calculate the dot product of any two vectors of equal length that are passed to it.\n", + "- Write a function that can calculate the norm of any vector\n", + "- Prove to yourself again that the vectors in 1.9 are orthogonal by graphing them. \n", + "- Research how to plot a 3d graph with animations so that you can make the graph rotate (this will be easier in a local notebook than in google colab)\n", + "- Create and plot a matrix on a 2d graph.\n", + "- Create and plot a matrix on a 3d graph.\n", + "- Plot two vectors that are not collinear on a 2d graph. Calculate the determinant of the 2x2 matrix that these vectors form. How does this determinant relate to the graphical interpretation of the vectors?\n", + "\n" + ] + } + ] +} \ No newline at end of file diff --git a/Copy_of_DS_Unit_1_Sprint_Challenge_3_Linear_Algebra.ipynb b/Copy_of_DS_Unit_1_Sprint_Challenge_3_Linear_Algebra.ipynb new file mode 100644 index 00000000..2d344ba5 --- /dev/null +++ b/Copy_of_DS_Unit_1_Sprint_Challenge_3_Linear_Algebra.ipynb @@ -0,0 +1,2031 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of DS_Unit_1_Sprint_Challenge_3_Linear_Algebra.ipynb", + "provenance": [], + "collapsed_sections": [ + "3ePJtK4VLTLH", + "ixhZVGxfGVFh", + "f6qJAPaaOdzD", + "5U50KZkdJb_s", + "m_sdj4vvG_tg" + ], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-wQxiT7yC4_v", + "colab_type": "text" + }, + "source": [ + "#Linear Algebra" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aiUlaNJkECCL", + "colab_type": "text" + }, + "source": [ + "## 1.1 Graph vector $\\vec{a}$ \n", + "\n", + "\\begin{align}\n", + "\\vec{a} = \\begin{bmatrix} 3 \\\\ 2 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QpCKt0n5IeiY", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "a = np.array([3,2])" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "yFDsOm6R79zf", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 287 + }, + "outputId": "4c37e47f-1906-4503-be6e-12cbaba3ad32" + }, + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "ax.grid()\n", + "plt.xlim(0,5)\n", + "plt.ylim(0,5)\n", + "plt.arrow(0,0,\n", + " a[0],\n", + " a[1],\n", + " head_width = .02,\n", + " linewidth = 3,\n", + " color = 'red')" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW0AAAD8CAYAAAC8TPVwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAS3klEQVR4nO3de4yU9b3H8c8XhKKsFC1LVdBiPbJeaEFAvGDbXVItVeLRpCZqaDSpElOP0Z5zPOdgGk1brUdjRFuMAbwSUbteMEfwrrsKRhDW9QLatRatoFS8YGStcv2eP35jB2WemQFnnmd+M+9XsmF3+bJ888vy2R/feX7PY+4uAEAc+mTdAACgfIQ2AESE0AaAiBDaABARQhsAIkJoA0BEdiunyMzekrRB0lZJW9x9fDWbAgAUVlZo57S5+wdV6wQAUBLjEQCIiJVzItLM3pS0XpJLmuXuswvUTJM0TZIGDBgw7oADDqhwq3Hatm2b+vThZyPrkMda5LEWea+//voH7t5cqq7c0B7m7u+Y2VBJj0u6wN2fSapvaWnxnp6enWq4XnV2dqq1tTXrNjLHOuSxFnmsRZ6ZdZXzemFZP+Lc/Z3cr+skzZc04eu1BwDYFSVD28wGmtmeX7wv6QRJK6rdGABgR+VcPfJtSfPN7Iv6O939kap2BQAoqGRou/sqSaNT6AUAUAIv2wJARAhtAIgIoQ0AESG0ASAihDYARITQBoCIENoAEBFCGwAiQmgDQEQIbQCICKENABEhtAEgIoQ2AESE0AaAiBDaABARQhsAIkJoA0BECG0AiAihDQARIbQBICKENgBEhNAGgIgQ2gAQEUIbACJCaANARAhtAIgIoQ0AESG0ASAihDYARITQBoCIENoAEBFCGwAiQmgDQEQIbQCICKENABEpO7TNrK+ZdZvZgmo2BABItjM77QslvVatRgAApZUV2mY2XNJJkm6qbjsAgGLM3UsXmd0r6UpJe0r6T3efUqBmmqRpktTc3Dyuvb29wq3Gqbe3V01NTVm3kTnWIY+1yGMt8tra2rrcfXyput1KFZjZFEnr3L3LzFqT6tx9tqTZktTS0uKtrYmlDaWzs1OsBeuwPdYij7XYeeWMRyZKOtnM3pJ0t6RJZnZHVbsCABRUMrTdfbq7D3f3EZJOl/SUu0+temcAgB1wnTYARKTkTHt77t4pqbMqnQAASmKnDQARIbQBICKENgBEhNAGgIgQ2gAQEUIbACJCaANARAhtAIgIoQ0AESG0ASAihDYARITQBoCIENoAEBFCGwAiQmgDQEQIbQCICKENABEhtAEgIoQ2AESE0AaAiBDaABARQhsAIkJoA0BECG0AiAihDQARIbQBICKENgBEhNAGgIgQ2gAQEUIbACJCaANARAhtAIgIoQ0AESG0ASAiJUPbzAaY2fNm9pKZrTSz36TRGABgR7uVUbNR0iR37zWzfpIWm9nD7r6kyr0BAL6iZGi7u0vqzX3YL/fm1WwKAFCYhUwuUWTWV1KXpH+RdIO7/3eBmmmSpklSc3PzuPb29gq3Gqfe3l41NTVl3UbmWIc81iKPtchra2vrcvfxperKCu1/FpsNljRf0gXuviKprqWlxXt6esr+uvWss7NTra2tWbeROdYhj7XIYy3yzKys0N6pq0fc/WNJHZIm72pjAIBdV87VI825HbbMbHdJx0v6c7UbAwDsqJyrR/aVdHturt1HUru7L6huWwCAQsq5euRlSUek0AsAoARORAJARAhtAIgIoQ0AESG0ASAihDYARITQBoCIENoAEBFCGwAiQmgDQEQIbQCICKENABEhtAEgIoQ2AESE0AaAiBDaABARQhsAIkJoA0BECG0AiAihDQARIbQBICKENgBEhNAGgIgQ2gAQEUIbACJCaANARAhtAIgIoQ0AESG0ASAihDYARITQBoCIENoAEBFCGwAiQmgDQEQIbQCICKENABEpGdpmtr+ZdZjZq2a20swuTKMxoC5t2yZt3CgtXCi5Z90NIlTOTnuLpP9w98MkHS3pfDM7rLptAXXEXbrsMumgg6S+faUVK6QpU6Qnnsi6M0Rot1IF7r5W0trc+xvM7DVJwyS9WuXegPrw7LPSb3+74+dPOIHdNnaa+U5805jZCEnPSBrl7p985femSZomSc3NzePa29sr12XEent71dTUlHUbmWvIdfj736V33tnh073Dh6tpzZrwwdixklnKjdWOhvy+SNDW1tbl7uNL1ZUd2mbWJOlpSVe4+/3FaltaWrynp6esr1vvOjs71dramnUbmWuYdfjkE+nUU6Wnnkos6bzmGrWuWCHNmSPtVvI/u3WtYb4vymBmZYV2WVePmFk/SfdJmlcqsIGG1N0ddszf/GZyYJ9zjrRpk3TE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BDLB08NXEiUN", + "colab_type": "text" + }, + "source": [ + "## 1.2 Find $||\\vec{b}||$. What does the norm of a vector represent?\n", + "\\begin{align}\n", + "\\vec{b} = \\begin{bmatrix} 17 & -4 & -2 & 1\\end{bmatrix}\n", + "\\end{align}\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Fp3mocAKIfGD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "b073263c-6592-49d2-af5f-857ba3d484e5" + }, + "source": [ + "import math\n", + "b = np.array([17,-4,-2,1])\n", + "norm_b = np.linalg.norm(b)\n", + "norm_b" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "17.60681686165901" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vBbJ0ZyPD6RG", + "colab_type": "text" + }, + "source": [ + "## 1.3 Find $\\vec{c} \\cdot \\vec{d}$ - Are these vectors orthogonal? Why or why not?\n", + "\n", + "\\begin{align}\n", + "\\vec{c} = \\begin{bmatrix}3 & 7 & -2 & 12\\end{bmatrix}\n", + "\\qquad\n", + "\\vec{d} = \\begin{bmatrix}9 & -7 & 4 & 6\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NYb8BalmIfgY", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "a3210b16-4894-4951-94bf-a35de5c45aa3" + }, + "source": [ + "c = np.array([3,7,-2,12])\n", + "d = np.array([9,-7,4,6])\n", + "cd_dot = np.dot(c,d)\n", + "cd_dot\n", + "#These vectors are not orthogonal becaues their dot product does equal zero." + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "42" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gS85sJHWG7iU", + "colab_type": "text" + }, + "source": [ + "## 1.4 Find $E^{-1}$ and $E^{T}$\n", + "\n", + "\\begin{align}\n", + "E = \n", + "\\begin{bmatrix}\n", + " 7 & 4 & 2 \\\\\n", + " 1 & 3 & -1 \\\\\n", + " 2 & 6 & -4\n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QiISq5egIgSS", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "bd2be732-b1ac-47a9-ff6a-5090a91fba74" + }, + "source": [ + "E = np.array([[7,4,2],[1,3,-1],[2,6,-4]])\n", + "E_T = E.T\n", + "E_T" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 7, 1, 2],\n", + " [ 4, 3, 6],\n", + " [ 2, -1, -4]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cXW3rY9b9c3w", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "b48825b3-1495-4bd5-888f-92ea794f83b5" + }, + "source": [ + "E_inv = np.linalg.inv(E)\n", + "E_inv" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 0.17647059, -0.82352941, 0.29411765],\n", + " [-0.05882353, 0.94117647, -0.26470588],\n", + " [ 0. , 1. , -0.5 ]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 6 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_DFQHO2HcPNz", + "colab_type": "text" + }, + "source": [ + "## 1.5 Find $|F|$ - What is one reason why the determinant of a matrix would be 0? \n", + "\n", + "\\begin{align}\n", + "F = \n", + "\\begin{bmatrix}\n", + " 2 & -2 & 5 \\\\\n", + " 4 & 1 & 10 \\\\\n", + " 12 & 6 & 30\n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SjAKPk6u9ozr", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "832667f0-b912-495d-ae6d-cb768958d125" + }, + "source": [ + "#A determinant may be zero if there are infinite solutions to that system of equations.\n", + "F = np.array([[2,-2,5],[4,1,10],[12,6,30]])\n", + "F_det = np.linalg.det(F)\n", + "F_det" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TPzrKzEvC5YU", + "colab_type": "text" + }, + "source": [ + "# Intermediate Linear Algebra" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ap-us2lBGQyi", + "colab_type": "text" + }, + "source": [ + "## 2.1 Suppose that the number of customers at a ski resort as well as the number of inches of fresh powder (snow) was recorded for 7 days. \n", + "\n", + "### Customers: [820, 760, 1250, 990, 1080, 1450, 1600]\n", + "\n", + "### Inches of new snow: [0, 1, 7, 1, 0, 6, 4 ]\n", + "\n", + "## Find the mean, sample variance, and sample standard deviation for both the number of customers and inches of new snow for the week. Remember that on SCs you can use library functions, dataframes, .describe(), etc. \n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xS-JuHl9JiiP", + "colab_type": "code", + "colab": {} + }, + "source": [ + "customers = [820, 760, 1250, 990, 1080, 1450, 1600]\n", + "snow = [0, 1, 7, 1, 0, 6, 4]" + ], + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "cNxeVa0cg40d", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "24daef08-b2c3-4442-c831-72be615d7c7c" + }, + "source": [ + "##### Your Code Here #####\n", + "cust_total = sum(customers)\n", + "cust_mean = cust_total/len(customers)\n", + "cust_mean" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1135.7142857142858" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 9 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "lRYCTz-0AKBI", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "95638e51-53a7-41b5-f74c-13a43bb81a97" + }, + "source": [ + "np.std(customers)" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "290.95199127087926" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "MwtLHWW3Ay_v", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "16601be3-561c-496a-d4ba-5111fd7a8ac1" + }, + "source": [ + "np.var(customers)" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "84653.06122448981" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 11 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-NbbxrG1AKEc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "820510c2-35c4-403f-a950-e67bff7ba69f" + }, + "source": [ + "snow_total = sum(snow)\n", + "snow_mean = snow_total/len(snow)\n", + "snow_mean" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2.7142857142857144" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 12 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qWZeXf0HA7UB", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "c01073e6-ae46-42b2-ea53-e89fb483c44f" + }, + "source": [ + "np.var(snow)" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "7.346938775510203" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 13 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OcOcwDjaA7Y5", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "87cba680-9533-4abf-cce7-67c57084c78a" + }, + "source": [ + "np.std(snow)" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2.7105237087157534" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 14 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3ePJtK4VLTLH", + "colab_type": "text" + }, + "source": [ + "## 2.2 Are the variances of the number of customers and inches of snow comparable? \n", + "## Why or why not? " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LvTtgZ-5Ndw_", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#No because there is a large difference between the variance of snow and the variance of customers." + ], + "execution_count": 15, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ixhZVGxfGVFh", + "colab_type": "text" + }, + "source": [ + "## 2.3 Find the variance-covariance matrix for the number of customers and inches of snow at the ski resort. " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "IbglmVaxJjO7", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "429478e4-a885-4bed-a349-296c78dbdf88" + }, + "source": [ + "np.cov(customers,snow)" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[9.87619048e+04, 6.70238095e+02],\n", + " [6.70238095e+02, 8.57142857e+00]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vf2GHNt3CD1r", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "f90d07a3-e97a-4c53-c870-3521ec7ac2a0" + }, + "source": [ + "pd.DataFrame(np.cov(customers,snow))" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
01
098761.904762670.238095
1670.2380958.571429
\n", + "
" + ], + "text/plain": [ + " 0 1\n", + "0 98761.904762 670.238095\n", + "1 670.238095 8.571429" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6Ks3_TbNC5yJ", + "colab_type": "text" + }, + "source": [ + "# PCA" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f6qJAPaaOdzD", + "colab_type": "text" + }, + "source": [ + "## 3.1 Standardize the data so that it has a mean of 0 and a standard deviation of 1. \n", + "\n", + "We have included some code to get you started so that you don't get stuck on something that isn't standardizing the data or PCA.\n", + "\n", + "This might be helpful:\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "bogsxfNyJlAw", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "709908ef-737b-4605-9cd9-3075100eec19" + }, + "source": [ + "# Let me get you some data to start you off.\n", + "import pandas as pd\n", + "\n", + "data = {\"Country\": [\"England\",\"Wales\",\"Scotland\",\"North Ireland\"], \n", + " \"Cheese\": [105,103,103,66], \n", + " \"Carcass_Meat\": [245,227,242,267], \n", + " \"Other_Meat\": [685, 803, 750, 586], \n", + " \"Fish\": [147, 160, 122, 93], \n", + " \"Fats_and_Oils\": [193, 235, 184, 209], \n", + " \"Sugars\": [156, 175, 147, 139], \n", + " \"Fresh_Potatoes\": [720, 874, 566, 1033], \n", + " \"Fresh_Veg\": [253, 265, 171, 143], \n", + " \"Other_Veg\": [488, 570, 418, 355], \n", + " \"Processed_Potatoes\": [198, 203, 220, 187], \n", + " \"Processed_Veg\": [360, 365, 337, 334], \n", + " \"Fresh_Fruit\": [1102, 1137, 957, 674], \n", + " \"Cereals\": [1472, 1582, 1462, 1494], \n", + " \"Beverages\": [57,73,53,47], \n", + " \"Soft_Drinks\": [1374, 1256, 1572, 1506], \n", + " \"Alcoholic Drinks\": [375, 475, 458, 135], \n", + " \"Confectionery\": [54, 64, 62, 41]}\n", + "\n", + "df = pd.DataFrame(data)\n", + "\n", + "# Look at the data\n", + "df.head()" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + "
CountryCheeseCarcass_MeatOther_MeatFishFats_and_OilsSugarsFresh_PotatoesFresh_VegOther_VegProcessed_PotatoesProcessed_VegFresh_FruitCerealsBeveragesSoft_DrinksAlcoholic DrinksConfectionery
0England1052456851471931567202534881983601102147257137437554
1Wales1032278031602351758742655702033651137158273125647564
2Scotland103242750122184147566171418220337957146253157245862
3North Ireland66267586932091391033143355187334674149447150613541
\n", + "
" + ], + "text/plain": [ + " Country Cheese ... Alcoholic Drinks Confectionery\n", + "0 England 105 ... 375 54\n", + "1 Wales 103 ... 475 64\n", + "2 Scotland 103 ... 458 62\n", + "3 North Ireland 66 ... 135 41\n", + "\n", + "[4 rows x 18 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2HY91nOpaTTZ", + "colab_type": "code", + "colab": {} + }, + "source": [ + "##### Your Code Here #####\n", + "from sklearn.preprocessing import StandardScaler" + ], + "execution_count": 19, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "22jXGU2DEs6j", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "3ae493bd-9bb4-499c-cda5-f145bf2fddf4" + }, + "source": [ + "features = df.columns[1:]\n", + "features" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['Cheese', 'Carcass_Meat', 'Other_Meat', 'Fish', 'Fats_and_Oils',\n", + " 'Sugars', 'Fresh_Potatoes', 'Fresh_Veg', 'Other_Veg',\n", + " 'Processed_Potatoes', 'Processed_Veg', 'Fresh_Fruit', 'Cereals',\n", + " 'Beverages', 'Soft_Drinks', 'Alcoholic Drinks', 'Confectionery'],\n", + " dtype='object')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 20 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "z-QFfqiyGVdp", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#cat_cols = df.columns[df.dtypes=='object']\n", + "#cat_cols" + ], + "execution_count": 21, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "jsAuno8cGsxS", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#df[cat_cols] = df[cat_cols].astype('category')" + ], + "execution_count": 22, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "qJ9GqnUYGs9M", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#for col in cat_cols:\n", + " #df[col] = df[col].cat.codes" + ], + "execution_count": 23, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Kzt598BsG_6e", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df_proc = df.loc[:,features].values\n", + "df_proc = StandardScaler().fit_transform(df_proc)" + ], + "execution_count": 24, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "F65KZig7HYBo", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "a2ceab34-19a2-4890-dbdb-cbfcb6e6a7d7" + }, + "source": [ + "df_norm = pd.DataFrame(df_proc,columns = features)\n", + "df_norm.head()" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + "
CheeseCarcass_MeatOther_MeatFishFats_and_OilsSugarsFresh_PotatoesFresh_VegOther_VegProcessed_PotatoesProcessed_VegFresh_FruitCerealsBeveragesSoft_DrinksAlcoholic DrinksConfectionery
00.658275-0.017495-0.2595460.644585-0.6324290.130551-0.4500760.8633120.377736-0.3362650.8054770.737407-0.644322-0.051917-0.4352310.104998-0.138303
10.535805-1.2771691.1988561.1524401.5358991.5479580.4356961.0935281.4016820.0840661.1716030.9292971.6794631.609440-1.4042360.8418230.968122
20.535805-0.2274410.543811-0.332059-1.097071-0.540853-1.335847-0.709834-0.4963641.513193-0.878702-0.057567-0.855575-0.4672571.1907270.7165630.746837
3-1.7298851.522105-1.483121-1.4649670.193601-1.1376561.350227-1.247006-1.283054-1.260994-1.098378-1.609137-0.179565-1.0902660.648741-1.663384-1.576656
\n", + "
" + ], + "text/plain": [ + " Cheese Carcass_Meat ... Alcoholic Drinks Confectionery\n", + "0 0.658275 -0.017495 ... 0.104998 -0.138303\n", + "1 0.535805 -1.277169 ... 0.841823 0.968122\n", + "2 0.535805 -0.227441 ... 0.716563 0.746837\n", + "3 -1.729885 1.522105 ... -1.663384 -1.576656\n", + "\n", + "[4 rows x 17 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 25 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Eh05Py8_HgAf", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "87a36921-f8fd-4fa0-a061-a597192889f8" + }, + "source": [ + "np.mean(df_norm)" + ], + "execution_count": 26, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Cheese 0.000000e+00\n", + "Carcass_Meat 0.000000e+00\n", + "Other_Meat 0.000000e+00\n", + "Fish 0.000000e+00\n", + "Fats_and_Oils 6.938894e-18\n", + "Sugars -5.551115e-17\n", + "Fresh_Potatoes 0.000000e+00\n", + "Fresh_Veg 5.551115e-17\n", + "Other_Veg 0.000000e+00\n", + "Processed_Potatoes 0.000000e+00\n", + "Processed_Veg -5.551115e-17\n", + "Fresh_Fruit 0.000000e+00\n", + "Cereals 6.938894e-18\n", + "Beverages -5.551115e-17\n", + "Soft_Drinks -2.775558e-17\n", + "Alcoholic Drinks 0.000000e+00\n", + "Confectionery 5.551115e-17\n", + "dtype: float64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 26 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5U50KZkdJb_s", + "colab_type": "text" + }, + "source": [ + "## 3.2 Perform PCA on the data and graph Principal Component 1 against Principal Component 2. \n", + "\n", + "This might be helpful:\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RqjwVokgP1fL", + "colab_type": "code", + "colab": {} + }, + "source": [ + "##### Your Code Here #####\\\n", + "from sklearn.decomposition import PCA" + ], + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "-YvDafhLE-UW", + "colab_type": "code", + "colab": {} + }, + "source": [ + "my_pca = PCA(n_components = 2)" + ], + "execution_count": 28, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "BvJmDQwUE-X7", + "colab_type": "code", + "colab": {} + }, + "source": [ + "pca_data = my_pca.fit_transform(df_norm)" + ], + "execution_count": 29, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "DydqU_PfE-gH", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "69c9d1b1-2d88-4512-8802-4020db610c2e" + }, + "source": [ + "final_df = pd.DataFrame(data = pca_data, columns = ['Component 1', 'Component 2'])\n", + "final_df.head()" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Component 1Component 2
0-0.9544900.328318
1-4.520951-1.735380
20.4879783.233672
34.987462-1.826611
\n", + "
" + ], + "text/plain": [ + " Component 1 Component 2\n", + "0 -0.954490 0.328318\n", + "1 -4.520951 -1.735380\n", + "2 0.487978 3.233672\n", + "3 4.987462 -1.826611" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kIZAXlbsE-nS", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "814de263-144d-40a2-f6da-d5e00848bbaa" + }, + "source": [ + "final_df['Country'] = df['Country']\n", + "final_df.sample(4)" + ], + "execution_count": 31, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Component 1Component 2Country
0-0.9544900.328318England
20.4879783.233672Scotland
34.987462-1.826611North Ireland
1-4.520951-1.735380Wales
\n", + "
" + ], + "text/plain": [ + " Component 1 Component 2 Country\n", + "0 -0.954490 0.328318 England\n", + "2 0.487978 3.233672 Scotland\n", + "3 4.987462 -1.826611 North Ireland\n", + "1 -4.520951 -1.735380 Wales" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "i10p29U1E-dz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 0 + }, + "outputId": "7fc02010-fecb-4ac6-8316-9ab43ec0aa52" + }, + "source": [ + "plt.figure(figsize=(10,10))\n", + "plt.xlabel('Component 1')\n", + "plt.ylabel('Component 2')\n", + "for k, c in [('England', 'red'), ('Wales', 'cyan'), ('Scotland','lightblue'), ('North Ireland', 'orange')]:\n", + " subset=final_df[final_df['Country']==k] \n", + " plt.scatter(x=subset['Component 1'], \n", + " y=subset['Component 2'], \n", + " s=200,\n", + " alpha=.5,\n", + " color=c,\n", + " label=k);\n", + "plt.legend();" + ], + "execution_count": 32, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "m_sdj4vvG_tg", + "colab_type": "text" + }, + "source": [ + "## 3.3 What are Eigenvalues and Eigenvectors? -In general, not just in PCA." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QlhJnyR2HUTR", + "colab_type": "text" + }, + "source": [ + "Eigenvectors are any vectors whos orientation does not change after a transformation is performed but may still be scaled. An Eigenvalue is any scalar that is responsible for the eigenvectors stretch or shortening during transformation." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z-RzYKR0C6Wg", + "colab_type": "text" + }, + "source": [ + "# Clustering" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "62efk4plJe54", + "colab_type": "text" + }, + "source": [ + "## 4.1 Use K-Means to cluster the following data and then graph your results. \n", + "\n", + "We have included some code to get you started so that you don't get stuck on something that isn't standardizing clustering.\n", + "\n", + "Prioritize calculating the clusters over graphing them. \n", + "\n", + "Scikit-Learn K-Means Documentation:\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "miK5Aeg-JlzJ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + }, + "outputId": "640c99fd-d62f-4c95-ba5c-c641ea12b771" + }, + "source": [ + "points = pd.read_csv('https://raw.githubusercontent.com/ryanleeallred/datasets/master/points.csv')\n", + "points.head()" + ], + "execution_count": 33, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
xy
0-7.846803-3.421277
1-3.554323-6.884729
2-0.192822-9.671030
3-6.401456-5.223972
4-0.804026-9.704457
\n", + "
" + ], + "text/plain": [ + " x y\n", + "0 -7.846803 -3.421277\n", + "1 -3.554323 -6.884729\n", + "2 -0.192822 -9.671030\n", + "3 -6.401456 -5.223972\n", + "4 -0.804026 -9.704457" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 33 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qX0zKKznTzcI", + "colab_type": "code", + "colab": {} + }, + "source": [ + "##### Your Code Here #####\n", + "from sklearn.cluster import KMeans" + ], + "execution_count": 34, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "ARxuOoi2KfLt", + "colab_type": "code", + "colab": {} + }, + "source": [ + "my_kmeans = KMeans(n_clusters = 4)" + ], + "execution_count": 43, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "0btm4gw3KfTg", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "ee6a1ae7-7cca-4025-bec4-d885c46b8935" + }, + "source": [ + "my_kmeans.fit(points)" + ], + "execution_count": 44, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n", + " n_clusters=4, n_init=10, n_jobs=None, precompute_distances='auto',\n", + " random_state=None, tol=0.0001, verbose=0)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 44 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kZXGwGDyKfby", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 123 + }, + "outputId": "1c30659d-dc88-458e-b0d5-3ecd75c6d5c7" + }, + "source": [ + "labels = my_kmeans.labels_\n", + "print(labels)" + ], + "execution_count": 45, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[1 3 3 1 3 3 1 1 0 3 3 3 3 3 1 3 1 3 3 2 1 2 2 2 3 3 3 0 3 3 3 3 3 2 3 3 3\n", + " 3 0 3 3 2 0 0 0 3 3 3 1 3 2 1 1 0 2 3 3 0 0 1 2 3 1 0 2 0 2 0 1 0 3 3 3 3\n", + " 2 2 3 3 0 2 0 3 3 3 0 3 0 3 3 2 0 3 2 3 3 3 3 3 3 3 3 3 1 3 3 2 1 1 1 2 3\n", + " 2 3 1 3 3 0 0 2 0 2 3 3 1 3 1 3 2 0 1 3 1 3 1 0 0 3 2 1 3 0 3 3 2 3 0 3 0\n", + " 1 3 3 3 1 2 3 0 3 2 3 1 3 3 0 1 2 2 3 0 3 3 1 3 0 2 3 3 3 3 3 1 3 3 3 3 3\n", + " 3 1 2 0 3 3 1 2 1 3 0 2 2 3 3]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I3LgFjsAKfRr", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + }, + "outputId": "99904641-6997-45d3-bccc-840183ed331c" + }, + "source": [ + "n_series = pd.Series(labels)\n", + "points['clusters'] = n_series.values\n", + "points.sample(5)" + ], + "execution_count": 46, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
xyclusters
1976.1276244.2851882
47-2.947419-6.8398683
46-1.841820-7.5773483
45-3.051442-5.1434863
894.8076014.1351952
\n", + "
" + ], + "text/plain": [ + " x y clusters\n", + "197 6.127624 4.285188 2\n", + "47 -2.947419 -6.839868 3\n", + "46 -1.841820 -7.577348 3\n", + "45 -3.051442 -5.143486 3\n", + "89 4.807601 4.135195 2" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QZtTDeiXKfPq", + "colab_type": "code", + "colab": {} + }, + "source": [ + "centroids = my_kmeans.cluster_centers_" + ], + "execution_count": 47, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "b4fwS-_oLpjW", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 172 + }, + "outputId": "9741c724-595e-486e-cb81-38d9e14ab712" + }, + "source": [ + "centers = pd.DataFrame(centroids)\n", + "centers" + ], + "execution_count": 48, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
012
0-3.5974074.1334411.000000e+00
1-8.366530-3.612381-1.110223e-15
26.2497933.8445723.000000e+00
3-2.733593-8.2043532.000000e+00
\n", + "
" + ], + "text/plain": [ + " 0 1 2\n", + "0 -3.597407 4.133441 1.000000e+00\n", + "1 -8.366530 -3.612381 -1.110223e-15\n", + "2 6.249793 3.844572 3.000000e+00\n", + "3 -2.733593 -8.204353 2.000000e+00" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 48 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SwVVicpgLpnW", + "colab_type": "code", + "colab": {} + }, + "source": [ + "b_colors = ['r', 'g', 'b', 'y']\n", + "colors = [b_colors[centroid]for centroid in my_kmeans.labels_]" + ], + "execution_count": 49, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "IZ9QFRQSL6JW", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 409 + }, + "outputId": "be1105b9-6277-43b6-808e-37110bf096f4" + }, + "source": [ + "fig, ax = plt.subplots(figsize=(7,6))\n", + "ax.scatter(points['x'], points['y'], c=colors)\n", + "ax.scatter(centers[0], centers[1], centers[2], c=b_colors);" + ], + "execution_count": 50, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/matplotlib/collections.py:885: RuntimeWarning: invalid value encountered in sqrt\n", + " scale = np.sqrt(self._sizes) * dpi / 72.0 * self._factor\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAboAAAFlCAYAAACdny1/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3yUVdbA8d99ZibJZNIgBQIkgPQOioiKBRS7Yl1du+JiQ9fuvurqiuuuu9Zd113XsigWsCtrr6siForSkSa9pJCE9MnM3PePmz7PhARmUibnu598TJ56h83kzHPvuecqrTVCCCFEtLLaugFCCCFEJEmgE0IIEdUk0AkhhIhqEuiEEEJENQl0QgghopoEOiGEEFHN2dYN2BdpaWm6T58+bd0MIYQQ7cSiRYvytNbpdvs6ZKDr06cPCxcubOtmCCGEaCeUUptC7ZOuSyGEEFFNAp0QQoioJoFOCCFEVJNAJ4QQIqpJoBNCCBHVJNAJIYSIahLohBBCRDUJdEIIIaKaBDohhBCtxu83X61JAp0QQoiIy82Fs8+GuDiIjYXJk2HDhta5d4csASaEEKLj8PthwgQT2Hw+s+3zz2H8eLMtISGy95cnOiGEEBH1ySewfXtdkAMIBKCsDGbPjvz9JdAJIYSIqDVroKoqeHtpKaxYEfn7S6ATQggRUcOHg8sVvD0hAcaMifz9JdAJIYSIqIkToX9/iImp2+Z0QkoK/OpXkb+/BDohhBARpRR8+SVcdhkkJkJ8vMnA/OEHcLtb4f5a68jfJczGjh2rZeFVIYQQNZRSi7TWY+32yfQC0TktWwbPPGMm90yZAmeeaT+IIITo8CTQic7nuefgmmvA6zUTfObOhX/8Az77rOEgghAiKsgYnehcSkrg2muhvLyuDlFpKfz4I7z8ctu2TQgRERLoROfyzTcm3aux0lKYM6f12yOEiDgJdKJz8XggVAJWUlLrtkUI0Sok0InotWABTJ0KZ5wBs2aZMblDD7UvrOdwmJmrgUDrt1MIEVEyvUB0XPn58NprsGcPHHccjB5dt++f/4Rbb4WKChO8PB4YMcJM5lm1Co49FoqLobKy7pyEBDjmGHjzTbDkM6AQHUlT0wsi/m5WSm1USi1TSv2klAqKTsr4u1JqnVJqqVLqwEi3SUSBTz6B7Gy4+Wa46y44/HC44grz5DZyJEyfbirG1jyhlZaaKQUvvwyjRsHSpcFdmCUl8Omn8P77rf96hGgD5eVw330wYAAMHAj3328+G0ab1ppeMFFrnRdi34nAgOqvQ4B/Vf9XCHsVFaasQllZ3baqKnj+eXjxxYZPafWVlponwEsvNQHPrpuy5phTTolI04VoLwIBmDQJliwxAQ9MoHv/fZg3z1QziRbtoX9mCjBLG98BKUqpzLZulGjHvvzSfrvPFzrIgXnndu1qyqXfdVfDNUNqWFbkF8cSoh349FNYvrwuyIH5fulSs1ZcNGmNQKeBj5VSi5RS02z29wS21Pt5a/U2Iezt67iy2w1XXQV33BG6fyYuzhTk2x9aw3ffwb//bf6aSIKLaIe+/950YDRWWgpffdX67Ymk1ui6nKC13qaUygA+UUqt1lq3+J+xOkhOA8jOzg53G0Vry8mBn36CrCwYMqRl5x51VMuCh8tlsirvvdeM5X33Xehjb7oJxtqOZzdPWRmccAIsXmwCnsMBPXqYvxwZGQ2PLS83gbCqyiTBJCfv+31F1NIaNm0yv8Y9w/gI0KuXKa7cONhpDX/8oxkGnzkTBg0K3z3bjNa61b6APwC3NNr2b+DX9X7+Gchs6joHHXSQFh1UIKD1TTdpHRendXKy1vHxWh92mNb5+S27zrvvau12m+tYlrlOWprWLpfW5r1qvmJjtX7kEa3z8sx5Pp/WQ4Y0PKb+saWl+/f6brnFtKn+dZ1OrU87reFxn36qdWKi1klJ5svt1nrWLPtrik7r+++1PuCAul/10aO1XrMmPNcuLta6Sxf7twJorZTWqala79kTnvtFGrBQh4o9oXaE4wvwAIn1vp8PnNDomJOBDwAFjAd+2Nt1JdB1YDNnau3xNHxHuVxan3hiy6+1Y4fWjz2m9b33mr8IeXlan3CCCVjx8VpnZGj9zjt1x7/yinnnxsYGv6vdbq2nTdv/15eebv9Xw+XSuqLCHFNYGPxvUNOGdev2vw0iKuTmms9CjYNPt25aV1Y2/zpr1mh9//3mbbJkScN9y5ZpPWxY8OfDmi+PR+t//zu8rytS2jLQHQAsqf5aAdxZvf0q4Krq7xXwBLAeWAaM3dt1JdB1YCNH2r+jYmJa/lRnx+/X+qWXtD7jDK2vukrrBQvM9u++M8HP7t4Oh9aXXloXiPZHcrL9PZzOuqfF55/XOiHBPhjee+/+t0FEhUceMZ99Gv+aJCZq/eabzbvG44+ba7hc5tfc7db6jjuCj7v4YhNE7X51b7klvK8rUpoKdBEdo9NabwBG2Wx/st73Grg2ku0Q7cju3fbbnU4z8btr132/diAA55wDH31kBh4sy8yru/deMy5XP72sPr8f1qyB2Nh9v3eN006D2bMbZnQqZcb94uPNz6WldQWl6/P5oKho/9sgosKmTfa/sl4vbNu29/O3bq2rmVCjvBwee8y8TWrqKzzzDLzyin2OV0ICHHTQvrW/PWkP0wtEZ3LSSfZFlZOTzQTw/fHRR3VBDkzgKyuDO++En39uOltz/nzzjt9fDz4ImZmmEguY4JacDM8+W3fMccfZtyUmxiSyCAFMmBC6Wt348Xs//7//tZ8LV1kJr79uvq+oMPlXdrNyLAu6dzdLNXZ0EuhE67rnHvPUFhdnfnY4TDB4+un9L7v15pv2+dJer8ny3NvCqn/5y/7dH6BbN1i92nxsnjbNzMBdvx6GDq07pl8/uPFGM92hPp/PTG3Yvn3/2yE6vClT4IAD6t4qYN4qRx/dvMRgh8M+0Cll9gGsXGmSfu0kJ5uOkOYu0bhiBVx9NZx8Mjz+uCk01G6E6tNsz18yRtfB5eZqfc89Wh9xhNaXXRY8Qr6vbrzRDESEGgMMNUZX89W1a3ja0VyHH24/Xnjmma3bDhF2gYAZHp47V+vt2/f9OsXFWt99t9b9+5tk4Ycf1trrbd65O3cGJwCD2fbaa1oXFGh9112h3w5Dh5rX0RxvvmneXjVvv/h4rfv1M/doLTQxRidFnUX0WLoUxo0LXR0lKcmMA4Zy4omtV+dSa/NR2a46S0xM0xVeRLu2fbvpnd640Tw5VVaaBe0ffrj1y2rNmgVXXmnuGwjU/bp5PKZdfr/9ryCYIesbb4Q//7npe1RVmY6MgoLg82+7DWbM2P/X0RxtWtRZiFYzciTccEPo/U0Fubg4M0u2NYXqqq3pVxId0llnmd7r0lLzK1dZCU891Tbr+l58MWzYAA89BEccYXrv/f66doUKcmD2P/ZY6PyxGqtW2Xd/Vlaa0YT2QAKdiC5/+lNwBRIwgxuhPk5bFnzxBRzYigtnKGVG+RuPG7pcpmC16JC2bjUFfxon1ZaWwt/+1jZtysw0Y2fff9/ylQliY82iH01JSrJPIob2U+xHAp2ILpYFb7xh0tVqkj0SEkzprxNPDM74jIkxqxk0J40t3B5/HPr2hcREE+ASE02iyqOPtn5bRFjs2WOfVAzBXXt2tm6FRx4xOUw//RS+dmltll9sKa/XlAorKoInn4RbbjFTEbzeumP69DG5Vo07Ijwe+O1v96vZ4RNq8K49f0kySgeWl6f1nXeaWkbHH6/1Rx+1/BoVFVqXldnvKyvTevlyU2HkH//Q+ve/1/qzz8yo+rZtWmdnmxm3Dof57+DBWu/e3fx7l5dr/dvfmgnflmUSapYubflrqOHzmXJmDz2k9XvvmZ9Fh+XzmUp0dtXlbr+96XNnzzYTumNjza9nfLzW06c3PyFkb4YPbzoXyy5/6+ijtV650pQKqynmk5Cg9cCBDd82mzebbQkJpqJdbKzWN98cvrY3B21VGSVSXxLoOqj8fK179WpYgis+3pSAaI7t202psJoyDxMmNCz898AD5t2YmGjucdFFwdVOvF6tX39d6z/9Sev//rflgeXkk4NT2RITtd6ypfnX2Nu7PzdX659+0rqkpGVtE+3CO+80zEB0u7Xu3bvpwj8FBfZVUDwerb/8Mjzt+t//7O9R83X88aa8mNtt2t6tm9aHHmo+z9kFwenTG14/END622+1fuut/cs03VcS6ET7cPfd9nUm4+NNHnVTqqq07tvXlNKqX/gvLc1UnX3ppeDpA2631r/5jf31Fi0yxz/+ePPbv2aN/V+KmBitb7ut6XMDAXOvbt1Mu/v1M38R6isr0/rcc00gTUoy7bvvvtb9WCzCYvlyra+80pReffhhrYuKmj5+zpzgupY1v+LhKMFaY+7c0IHugQdMu2s+J+7tiS89PXztCoemAl1rrTAuhEndt0ubdzrNgMSECaHP/fBDyMtrmCamtRk8OPRQk9Ndf8VxMPWOXnjBZAHYTc4uL2842LA3P/9sxtIa12Xyes2yPE155BG4++66Nq5fD+efb9LSaqqhXHstvPOOyRioyRr485/NIMiFFza/naLNDRtmxrSaq6lpB+GcklBcbMbO7OoqLF5s3mYlJU0XEaoRaiyyPZJkFNF6Qi2mVVVlnylZ37p19kGpqsqUZGhqpN+ufuS4cSZV7Kabmr5vfYMH2+dRx8Q0XRDQ7zdTF+wC8Z13mu/LyuDll4PT4srK4IEHmt9G0SEdf7x95qLbHd7POD172s9qiYkxVVi++qp5QS4uDi65JHztijQJdKL13HhjXWHjGk4nDB8OAwc2fe6oUXsv4WUnOTl0EG3pR+X+/c0CqfVrMtUYMiR0jvWePcFBrsa6dXXHhGrPrl0ta6focJKTzeRut9t8uVzmv1df3XRHR0sdcQSkpwdnSDqdpmJdc+qaO50wZgz8/vfha1ekSaATreeoo0wXnsdjJt+43eZJ6L//3fu5Rx9tgklLVhiIjzfdlvtbQ7O+114zf31qijY7HKbkxHXXwYgR9k+WSUnBAb5GTYDPyICUlOD9Spm/TiLqnXWWmdz917+aDoAFC8xE73CyLPjf/+Dgg83ntfh485Q3Y4b5lb7ooqbfYjEx8OKL8M03oX+l26VQg3ft+UuSUTq4sjKzUOr69S07r7jYpPanpoauaelwaJ2VpfWxx2r9xRcNzy8sNKn8X321/2n8Z57ZMDGmZj25Sy+1P/7RR4OTZeLjG06veO21hsfUTIFYtWr/2iqEjW3btF671kwDcLvNOsV79mh91FHm1zAx0fyK12Rdjh9vcrjaKyTrUkSd114LXqXb4dD6wAPtj3/iCfNuTkoy7+DMTLO88r7w+4ODXP18cDuBgFmquWdP087Bg03Qbezrr80UioEDTcFrWXFcRNjUqSbRNyHBJDdrbWa3zJlTN0W0IyT+NhXopKiz6Ji0ht/9Dv7+d9OfEgiYPphPPoGsrIbHLlhguj4bj5N1725KUbS0tmQgYO4ZKnsg1HicEO1Qaampw3nooQ1Xk+popKiziD5KmfXjfvnFjOK/9x68+y506RJ87JNP2hf5Ky01aWYtZVkmTc5uRP/001t+PSHakMcDU6c2HeTy882awuedZ952eXmt175wkEAnOrZu3czqkSefDKNHm5Sy665rON8uP988hTWmlP3Ug+Z48klz75oloBMSTFFAqVMposy6dSZn6p57TJ3Le+81P69Zs3/X/eEHs5xR9+4m3+rzz8PTXjsS6ETbWbnSVPDv1s3kK7/xRsuvMXOmSVErKTFPaBUV8J//1M1PA3OPmizJ+rze4IzGmjVVJk2C004zk9ztuvezssxfgH/9C+64w6yQvnq1eS1C7AOv19Q3OPdcUwx55cqWX2PtWvPrOG2aqT0QasZLS1x3HRQW1tVJKC83P199dcPjdu82Iwk33BBc+LmxefNg4kQz0rBrl/n51FPh7bf3v722Qg3etecvSUaJAqtWmdFvpRpmIT72WMuu069f6KSQmszKykqtDzmkLnlFqbpifhdcYOoeaW3qYB56aMPMR49n79V4hdhPZWUmj6rmV7SmqPOcOc2/xiuvmHyrmjyphAStJ05sekXy5iSZuFz2bzGHo+78H3/UOjm5rkJeQoJZobyw0P6a48bZX7NPn+a/3saQrEvR7vzqV/bVYhMTgwsxNyUhwf4d43SaXOkalZVaz5xpApnDURdgLcv8RfnuO/OXonEmJ5iUtJYUbRaihf7+9+DZJzVvh/LyvZ9fVmb/VvB4tH7uuYbHBgJaz5hhZumA1v37mxqYoYR6i7nddccMGxa8PzZW61tvtb9m47roNV+W1bK3f31NBTrpuhRt47vv7MfNtIZNm5p/nVCltzIz68bPoG7ducpK05+jq7sjAwGTJXnddWbiul0RQKfTzLIVIkJeecU+WVcpaE6C+fz59nURSktNZTkwXYl//rNJDL77bjN0DaYH/rzz4NNP7a998cXBk8hjY+GCC8z3O3fWFfipr7ISZs8O3t5U/ldCgnmrhpsEOtE2eve23+7ztWyc68EHg1cPj4+Hxx4LLqmlNfz4o/11Fi821UnsKtVaFnTt2vw2CdFCSUn22wMB++HlxuLiQteojI83JVqPPtqM39nVVS8rC13S669/NaVh4+NNIPJ4zOfLRx4x+5sq7ty4at/cuWb9Y7sk6Ph4U3o2nEWsa0igE23jrruCawi53WYkPjm5+dc5+GBTj+iUU0zW41FHmWkGZ54ZfKxSoa+dnAy/+Y19Pc3YWJg8ufltEqKZdu2CK680T2SN/8ArZZKIR4/e+3XGj7cvyeXxmMSUN96ARYuavsbPP9tv93jMU9jXX5vcq//9z7zliopM3ta115q3TeP2u91m2kINreH66+2fXC0Lpk+PYP3MUH2a7flLxuiixKxZZj05t9t02k+duu8d9M111132pbjuvdfsnz27bpnkhASzUOySJZFtk+iU9uwxhXIaJ3vUVH7LzGxZ9beFC81K4ImJZmwuLq5ule9zz7UfE6v/ddhhzbtPIKD11VeHTlKJiTH3nzSp4du5tDR05b764337ClmPTrRLF11k1mTbscNM9G5OH83+uuceM6jw4otmMKCy0qyDUjMd4bzzYMoUM4bo8cDYseEtCi1EteeeMzXAG6/8ZFmm5/2SS1pWtOegg8yyjB98YK47aZJZyhAgLc08cYXq3oyNhfvvb959/vMfeP55+xWrwDyFvv666WyZPRv+/W8zPnj++eY+dk90kZ6VIyXAROeUl2eqqhxwAKSm7vt1KivNIEVLy4iJTu/cc+HVV4O3JyaaegTnnx++ey1dCoccYj82Fhdn1v898cTmXWvUKHO9UJQyb4upU811a/K74uPN59nduxuuXezxmPG+adOa/3rs7yslwIRoKC3NfOTc1yC3aJF52ouPN+/Uyy4zk9aFaKZBg+yXxNE6dK7Wvho5Ep54wgS1mBgTjCwLrrjCfOZrbpADs3RiU+LiTO2E119vmMRcVmbG9SZNMsfUJLbcfrsZHo8kCXRCtNTmzSaFbdEikxZXk0d92mlt3TLRgUybFpz75HKZIHfYYeG/3+WXQ06OqZjy5ZemO/Hpp1s+YnDaaaHXQHa7TdD6+mv7/SUlphMlN9ckOufmmgSUSGRa1ieBToiWevzx4PpGlZVmXG9f6jaJTqlXLzN3bfBg85QVE2Oedj7/PHJ/+BMT4YQTTOW7fe1tv+suM6YWF9dwu8sFJ51kpiOEmqkTG1s3xXXAABMYW4MEOtHxVFTAxo32Aw6tYdky+0J+LpcpNihEMx1yCKxaZVaLys2FDz80QaI9S0+H5ctNl2PPniZAJyWZbtAXXjDB7JRT7J/6HA6TZNPaJNCJjkNrU9IhNRWGDzfjbPfcEzqVLFLGjQv+OAsm+A0f3rptEVEhPT30pPH2pqTEBOaZM01XqNdrxu1mzjRPi1qbt8cXX5isT4/HPEmmpZlu0x49Wr/NEuhEx/HQQ/Dww2ZUu7TUfD30kMnFbk3XXmv6XOpPO3C7Tb9Nv36t2xbRJvx+U2n/2mvN4hlbtrR1iyKvqsqsWJCeDgceaIaq608xqKgww9bff29+HjkSNmyAb781QW/nTjj22LZpu0wvEB1Herr9io8ZGabERGtatw5uvtkMsng8cNVVZvAiEoX6RLtSWWnG0pYuNU83sbGmS+7NN816vNHq+uvhmWcaTg1ozO02SzJeeWXrtatGU9MLIjZhXCmVBcwCugEaeEpr/bdGxxwNvAP8Ur3pTa31jEi1SXRgWtdVoW2sLZY77t/f9MOITufpp+Gnn+omPtfUjjz/fPN5q6najx1VZeXegxyY1963b+u0qSUi2XXpA27WWg8FxgPXKqXsFmv/Wms9uvpLgpywpxQMGWK/b9iw1m2L6NRefNG+ukdVlUmZj0Z79tgvNlKf02myMduqe7IpEQt0WusdWuvF1d8XA6uAnpG6n+gEHn00OB85Pt5s3x9r18Ktt5p1R158semlkUWnZ5eHBKbTwW4CeDRITQ1dD10pk2E5ebKZP9ceK+a1SpOUUn2AMcD3NrsPVUotUUp9oJSSj+YitOOOg48/NgMk3bvDMceYn485pu6YtWvhvvtM7crmjOPOnWvKw//tb2bhrquuMjnfdh/ZhcCMP9lNsk5NNQkY0ciyzOfJ+iskKGX+Hb7+2lQ8ef9987Zsl0JVew7XF5AALALOtNmXBCRUf38SsLaJ60wDFgILs7Oz97/UtYg+Tz5pyqA7nXUrh0+fHvp4r1frlBT7UuoPP9x67RYdSiCg9WWXmV+T+HizWkBqaudY5OLjj7WeMEHrHj20njJF66VL27pFdWhi9YKIZl0qpVzAu8BHWutHmnH8RmCs1rrJ7ALJuhRBdu0yk3YaTyKPj4dPPrGvqfTDD6a/xa5438EHm/1ChLBqlSmllZ5uJkhHa7dlR9FWWZcKeBZYFSrIKaW6A7u01lopNQ7TlRoitU6IJrz/vn1No/JyUyLeLtDFx5sJUXYSEsLbPhF1hgwJnR8l2pdIJsIeDlwELFNK/VS97Q4gG0Br/SRwNnC1UsoHlAPn6Ug+Yoro5XDYFwisGSm3M2yYKdOwbl3D6ioeD1xzTWTaKYRodTJhXESHggJTeK/xRB+3G775BsaMsT/v559h4kQz81dr8PlM+fW//S3yJdWFEGHTJl2XQrSqLl1MRdmLLjIBqmbSz513hg5yYBYF27zZlIzPyYEJE+qWZRZCRAUJdCJ6nHUWHHmkKUJYWWkyBJoTtJxOM3VBCBGVJNCJ6JKeHvnlioUQHUo7nMMuhBBChI8EOiGEEFFNAp0QQoioJoFOCCFEVJNAJ4QQIqpJoBNCCBHVJNAJIYSIahLohBBCRDUJdEIIIaKaBDohhBBRTQKdEEKIqCaBTgghRFSTQCeEECKqSaATQggR1STQCSGEiGoS6IQQQkQ1CXRCCCGimgQ6IYQQUU0CnRBCiKgmgU4IIURUk0AnhBAiqkmgE0IIEdUk0AkhhIhqEuiEEEJENQl0QgghopoEOiGEEFFNAp0QQoioJoFOCCFEVJNAJ4QQIqpJoBNCCBHVJNAJIYSIahLohBBCRLWIBzql1AlKqZ+VUuuUUr+z2R+rlHqlev/3Sqk+kW6TEEKIziOigU4p5QCeAE4EhgK/VkoNbXTYVKBAa90feBT4SyTbJIQQonOJ9BPdOGCd1nqD1toLzAGmNDpmCvB89fevA8copVSE2yWEEKKTiHSg6wlsqffz1upttsdorX1AEZDa+EJKqWlKqYVKqYW5ubkRaq4QQoho02GSUbTWT2mtx2qtx6anp7d1c4QQQnQQkQ5024Csej/3qt5me4xSygkkA/kRbpcQQohOItKBbgEwQCnVVykVA5wHzG10zFzgkurvzwY+11rrCLdLCCFEJ+GM5MW11j6l1HTgI8AB/EdrvUIpNQNYqLWeCzwLvKCUWgfsxgRDIYQQIiwiGugAtNbvA+832nZ3ve8rgHMi3Q4hhBCdU4dJRhFCCCH2hQQ6IYQQUU0CnRBCiKgmgU4IIURUk0AnhBAiqkmgE0IIEdUk0AkhhIhqEuiEEEJENQl0QgghopoEOiGEEFFNAp0QQoioJoFOCCFEVJNAJ4QQIqpJoBNCCBHVJNAJIYSIahLohBBCRDUJdEIIIaKaBDohhBBRTQKdEEKIqCaBTgghRFSTQBdBpd5S/jLvLxz47wM5YuYRzF42G611WzdLCCE6FWdbNyBaVfoqOew/h7E2fy3lvnIAftzxI19v/pp/nvzPNm6dEEJ0HvJEFyGvrniV9bvX1wY5gNKqUmb+NJNfCn5pw5YJIUTnIoEuQj5c9yGlVaVB252Wk3mb57VBi4QQonOSQBchvZJ64bJcQdsVim4J3dqgRUII0TlJoIuQaQdNw+VoGOgUiqTYJI7pe0wbtUoIITofCXQR0q9rP149+1W6xnUlMSaReFc8g9IG8cUlX+CwHGG9lz/gZ3vxdsqqysJ6XSGEiAaSdRlBJw88mV237mLprqUm0KUOQikV1ns8/9Pz3PzxzZRVlaHRXDLqEv5+4t+JccSE9T5CCNFRSaCLMKfl5MDMAyNy7Q/Xfcg171/T4Elu1pJZ+AI+njntmYjcUwghOhrpuuzA/vjVH4O6K8t95by07CWKK4vbqFVCCNG+SKDrwDYWbrTd7lAOckpzWrcxQgjRTkmg68DG9xqPpYL/L3RYDrKSs9qgRUII0f5IoOvAZkycQbwzHkVdgku8K577Jt4nyShCCFFNAl0HNjR9KN9e8S2nDjyVDE8Go7uPZtbps7j+kOvbumlCCNFuRCTrUin1IHAq4AXWA5dprQttjtsIFAN+wKe1HhuJ9kSz4RnDeefX77R1M4QQot2K1BPdJ8BwrfVIYA3wf00cO1FrPVqCnBBCiEiISKDTWn+stfZV//gd0CsS9xGRobVmdd5qftr5E/6Av62bI4QQ+6U1JoxfDrwSYp8GPlZKaeDfWuunWqE9ogmr81YzZc4Utu7ZikM5iHXG8uIZL3J8/+PbumlCCLFP9jnQKaU+Bbrb7LpTa/1O9TF3Aj7gpRCXmaC13qaUygA+UUqt1lp/FeJ+04BpANnZ2fva7F+qqdYAACAASURBVHZpU+Emnln8DNuKtzH5gMmcNfSsNsmarPJXcfRzR5NTmoPGrIRe7C3mzFfPZOU1K+md0rvV2ySEEPtLaa0jc2GlLgWuBI7RWu+12rBS6g9Aidb6ob0dO3bsWL1w4cL9bmNLFVcWs6loE9nJ2STFJoXlmh+v/5gzXjkDX8CH1+8lxhGDx+Xh5kNv5qqxV5EanxqW+zTHe2ve4/w3z2dP5Z4G22McMdx++O3MmDij1doihBAtoZRaFCrXIyJjdEqpE4DbgNNCBTmllEcplVjzPXAcsDwS7dlfAR3g5o9uJuOhDA579jC6PdSN6z+4fr/Hr/wBPxe8eQFlVWV4/V4AvH4vBRUF/OF/f2DA4wNYnbc6HC+hWXaV7rJ9TV6/l617trZaO4QQIpwilXX5DyAR0x35k1LqSQClVA+l1PvVx3QD5imllgA/AO9prT+MUHv2y1+/+StPLnqSCl8Fxd5iKnwV/Gvhvxj79Fjm/jx3nwPe8pzlVPgqbPf5tI/CikKu/O+V+9P0FpmQPYGADgRtT3AlcFy/41qtHUIIEU4R67qMpNbuukz9ayq7y3fb7kuISWBC1gTePf/dFq8z93Pezxz41IFNriNnKQvvXd6wr2EXytR3pvLKilcorSoFwO10MzhtMN9f8X3QQrJCCNFetHrXZTSZv2V+yCAHUOIt4evNX/PW6rdafO2BqQPJTs5uUMKrMadyhn0Nu6Y8fdrTPHnKkxyWdRhjuo/h3qPvZd7l8yTICSE6LFmPrgn+gJ/T55y+1+NKq0p5ZfkrnD30bADW7V7HlqItjOg2grT4tJDnKaV4+9y3Ofr5o8ktzcWvG3aBxjhiOHvI2baFmyPFUhYXjryQC0de2Gr3FEKISJInuiYs2L4g5BhafQpFQkwCRRVFTHxuIiP/NZIzXjmDXo/04paPb6Gp7uFBaYN47PjHbLsm09xpXDzqYr745YtmtUMIIUQweaJrQnPHL90uN1cceAWXvn0p87fOx+v3Uu4rB+DJhU8yNH0ol4+5POT5v/vsd7VZl/VtL9nO6XNOJ8YZg9aamVNmctbQs/btxQghRCclga4JB/c8OOTE7ThHHE6Hkyp/FXdMuIPhGcP5YN0HQQGrtKqUqXOn8vsvfs91B19Hflk+H67/kKpAFcPSh3HNwdeEXEAVoMJfQYXfPM1d/NbFjMkcwwFdDgBgbf5alucsp3/X/ozoNiI8L1oIIaKMZF3uxRe/fMGps08loANU+CqId8VzVJ+jmDp6KqVVpRx7wLFkJmaypWgLg/4xqPZJrrninHEoVLPOc1kufjfhd9x15F38+vVf88G6D3A5XPgCPg7KPIh3z383bBPZhRCiI2kq67LTPdH9nPczD337EMtzlnNwj4O5+dCbmyxtNbHvRH757S/MWT6HvLI8jjngGI7IPiIoE7JnUk+6xHWhvKRlga7CV4HLcqFQtWW3QqkKVJFTmsP9X93PB+s+oNxXXhsgf9j2A9Pfn86sM2a16P5CCBHtOtUT3fwt85n8wmQqfZX4tR+X5SLOGce3U79lWMaw/W7Xe2ve41ev/4oKX4XtxOtQXJaLoelDWbJryV6Pmz5uOi8te4mc0pyg/bGOWEruKMFpdbrPL0KITk7m0VW76t2rKKsqq03jrwpUUeIt4caPbgzL9U8eeDLfXP4NF4y4AI/L0+zzXA4X0w6cxh0T7iDOGUdSbBIO5QiaVlAVqOKphU+RW5prex1fwEeVv2q/XoMQQkSbTvNEV+mrJP5P8bZPWm6nm7I791p3ukVqijU3VfWk/v033bCJdE86RRVFrMxdSc/EnizNWcqlb19Kfnl+g+NDdXOO6T6GxVcuDttrEEKIjkKe6DBPTbGOWNt9kUjgOK7fccw+azb9u/ZHociIz+DgHgfjVHXdig7lwOPy8Oo5r5LuSQcgOS6Z8b3Gk5WcxXH9jqOwojDo2jVBLs4ZB5iJ5QkxCTx1qiznJ4QQjXWawRxLWVwy6hKeW/Jcg8nX8a54rj/k+ojcc/IBk3nipCewsDiyz5HEOGLYumcrC7YtYEfxDnok9WDyAZPxxJhuzt3lu7n+g+t5feXr+LWfyQdMDnntpNgkbjn0Fr7b9h3D04czfdx0spKzIvI6hBCiI+s0gQ7gkeMfYWfJTj5c/yGxjlgqfBWcO+xcbjv8trDfa+7Pc7ngzQtqx9ksZfH2uW9zVJ+j6JXUK+j4gA5w5MwjWZO/hqqAGWf7eP3HJrEkQIPyYLGOWC4ccSG/P+r3YW+3EEJEm04V6NwuN2+d9xabizazfvd6BqcNJjMxM+z32bpnK+e9fl7Q3LhTZp/C1hu3khyXHHTOZxs+Y1PRptogBya4xVqxJMYmUumrxOv34nK4GNB1AA8c+0DY2y2EENGoUwW6GtnJ2WQnZ0fk2hW+Cm79+Fbbkl4Ab61+i0tHXxq0fXXeatuMybKqMi4ffTkn9D+BtbvXMiJjBJP6TmrVFQ2EEKIj65SBLlI2FW5i/LPjyS/LD1qJAKDKX0VRRZHtuUPSh+ByuKj0VzbY7nF5GN19NCcPPDkibRZCiGjXabIuW8Nl71xGTmlOg+7H+ixlMbmffYLJpL6T6JvSt0FtTYdykBibyHnDz4tIe4UQojOQQBcm5VXlfL3565AVUTwuD5eMuoSh6UNt91vK4stLv+T84efjdrqJsWI4deCp/HDFD7VZmUIIIVpOui5bgcty8crZr3DSgJOaPK6LuwszT5/JzNNntlLLhBAi+skTXZi4XW6OyD4Ch2q4gGqMI4YrDryCkweevN8JJDmlOSzPWS6LsAohRAtIoAujmVNmkuHJICEmoXbV8f5d+/OnY/60X9ctrizmtNmnkf1oNoc9exjpD6bzxA9PhKnVQggR3aTrMox6p/Rmw2838Naqt1hfsJ5R3UZx0oCTcFiOvZ/chIveuoiP139Mpb+yNivztk9vo2+XvnvtDhVCiM5OAl2YxTnj+PWIX4ftenlleXy47sOgaQdlVWX8Zd5fJNAJIcReSKDDlN/6ZP0nvL/ufdLcaVw06iL6pPRp1TZ4/V4qfZUkxiY22J5bmms7vw5ga/HW1mqeEEJ0WJ0+0PkDfk6bcxpfbfyKkqoSYhwx/Hnen3nxzBc5c8iZTZ67bvc6/vT1n/h267cM7DqQ/zvi/xjfa3yL7l/iLeGa967hlRWvENAB+nftz9OnPs2E7AkA9OvaL2hdOgCncjIsfRjXvnctSinOH3E+h2UdBsCO4h28vfpt/NrPaYNOi1gVGCGE6Ag6zXp0oby87GWm/XcapVWlDbYnxCSQc0sObpfb9ryVuSsZ/8z42oVcFQq3y82cs+Zw6qBTm33/ybMm8/Xmrxs8sXlcHn688kcGpA4A4KlFT3HjRzfWrm3nVE4cllmYtSYDM94Vz1Vjr2J4+nCufv9qFCbDU6P58zF/5obxNzT/H0UIIToYWY+uCS8teykoyIGZwD1v87yQ5932yW2UeEtqS31pNGVVZVzz/jXUfHgoKC9gY+HGkJPI1+Sv4Zst3wR1S1b6Knnsu8dqf5520DTe/NWbjOk+hm6ebhzT9xgAyn3l6Or/lVaV8sQPT3DVe1dR4aug3FdOua+cCl8F//fZ/7Emf03L/mGEECJKdPpAF2ox1sqqSnwBX8jz5m+Zb7vKd05pDhsLNzJlzhQyH85k2D+HkflwJm+teivo2A0FGxqU/Krh0z5W5K6o/XlnyU5u+OgG1u5eS1lVGZ9t/My2aLQ34LWtsekL+HhtxWshX4sQQkSzTh/opo6ZiscVXGKrMlDJVe9dRV5Znu15qfGpttstZXH5O5fXZkqWVZWRU5rDhW9dyMLtDbtbh2cMt00yiXXEcmivQ2t/vuDNC1iXv44SbwnF3mJ8AZ9tkLUbywPQWjcZtIUQIpp1+kB30oCTuHz05bVjWvXtLN7J/V/fb3vebYffRrwrvsE2t9PNlEFT+H7b90FPXOVV5Tw0/6EG23ol9eLcYec2uI6lrAarnheUFzBv8zx8eu+ByqEcQZVZwFRn2VtijRBCRKtOH+iUUtxy+C22XYjegJc3V71pe94VY67gpvE34Xa6SYpNIs4Zx5RBU5g6ZqrttTSa9QXrg7Y/e9qz3H3k3fRM7ElSbBJTBk3hh9/8ULsgbIWvAquJ/5sSYhJIjEnE7XTz3OnP8adj/oTb6cZpOXEoB26nm5sOvYkR3UY0959ECCGiSqefXgDmSSwUu25NMAHyvkn3cdvht7Fu9zp6JfUi3ZNOQXmBbXdkjCOGSX0mBW13WA5un3A7t0+43fY+3RO60yupF+sK1jXY7rJcXDzqYrMIK4oTB5xISlwKYJ5SX1vxGr6Aj7OGnsXIbiNDvj4hhIh2nX56QY2jnjuK+ZvnN+gijHfF89dj/8q1465t0bXu+OwO/vb93xpMB0iOS2b5NcvpntC9xW2bv2U+x79wPN6AF6/fi8flITU+lYW/WUi6J73F1xNCiGjT1PQCCXTVdhTvYNKsSWzdsxWFoipQxdlDz+a5Kc+1uFal1pqXlr3EQ/MfIq8sj+P6Hccfjv7Dfk3c3lK0hacWPcWa3Ws4qvdRXDzqYhJiEvb5ekIIEU0k0DWT1pr5W+azZc8WDu5xMP269gv7PYQQQoRfU4EuYmN0Sqk/AL8Bcqs33aG1ft/muBOAvwEO4Bmt9QORatPeKKU4PPvwtrq9EEKICIh0MsqjWuuHQu1USjmAJ4DJwFZggVJqrtZ6ZYTbJRrxBXzM2zyPCl8FE7InRF23qNebS07ObLzeXLp0mUhKysT9XghXCNExtHXW5ThgndZ6A4BSag4wBZBA14p+2PYDJ798cu3cP1/Ax1OnPsUFIy5o45aFR0HB/1i27BTATyBQwbZtj5GUdDgjRryLZTX9FggEvOTnv0t5+ToSEkbRpctkVIiJ+UKI9inSgW66UupiYCFws9a6oNH+nsCWej9vBQ6JcJtEPRW+Co5/8XgKKwobbP/N3N8wMmMk/br2C5oY35Fo7WflynMIBOrqmfr9JRQVfc2uXc+TmTk15LmVldtYvPhQfL5C/P5yHI444uIOYMyYr3E6k1qj+UKIMNivj6ZKqU+VUsttvqYA/wL6AaOBHcDD+3mvaUqphUqphbm5uXs/QTTLB2s/wB8Iro9Z4atg1JOjSH4gmfHPjGdlbsd8yC4uXkQgEDyvMRAoY8eO55o8d/XqqVRWbsfvLwZ8+P0llJWtZsOGOyLTWCFEROxXoNNaH6u1Hm7z9Y7WepfW2q+1DgBPY7opG9sGZNX7uVf1Nrt7PaW1Hqu1HpueLnPHwqWossh2dYWaVRF8AR8/bPuBw/9zOAXljR/I2z8zDGyfWaxsyqXVCAQqKSz8DGj4IUBrLzk5s8PYQiFEpEVssEEplVnvxzOA5TaHLQAGKKX6KqVigPOAuZFqU7jlleWxpWgLHXGKRo2JfSbarnhQn0bj9XuZtWRWK7UqfBISxuBwJAZttywPmZlXhDxPax3y/1e9l38vIUT7EslR9b8qpZYppZYCE4EbAZRSPZRS7wNorX3AdOAjYBXwqtZ6RagLthfbi7dz5Mwj6fVILwb+YyAH/P0Avt70dVs3a5/0TunNjeNvDFnqrEZZVRmr8la1UqvCRymL4cPfwuFIwrISUMqFZcWTmnoy3bqdH/I8hyOOlJQjaPwWUcpFevrZEW61ECKcZMJ4C2mtGfSPQWwo2NDgScjj8rDq2lVkJWc1cXb79emGT3l68dNs27ONhdsXBtXr9Lg8/P3Ev3P5mMvbqIX7x+crJi/vTaqq8khOPoqkJNt5pQ2Ul29g8eJD8fvLCARKcDgSiInpzoEHfofLZb9MkxCibUhllDD6atNXnPLyKRR7ixtsj3HEcOtht/LHSX9sk3aFi9aao547igXbFlDhrwDAaTnJTMhk9fTVHToDc1/4/WXk5r5GWdlaEhJGkZZ2OpblautmCSEaaZPKKNFqc9Fm20VPvX4v63avszmjY1FK8eGFH3LP/+7h+Z+ex+v3cvrg0/nLsX/pdEEOwOGIp3v3S9q6GUKI/SCBroXG9Rxnu1q3x+Xh6D5Ht36DIiDeFc+Dkx/kwckPtnVTWk1Z2c/s3v0JTmcyaWmn43QGJ7AIITomKfHQQgNTB3LG4DMaPN3EOGLI8GRw0ciL2rBlYl9orVm79gYWLhzD+vW3snbtNXz7bQ8KC79qcFwg4KOqqgBtMxVDCNG+SaDbBy+c8QIPHPMAg1MHk5WUxTUHX8OC3yzAE9N05qJofwoKPmbHjmcIBMrRugK/vwS/v4Tly6cQCHjROsAvv9zNN990Yf787syf350dO2a2dbOFEC0gXZf7wGE5uO6Q67jukOvauiliP23f/kyD8mA1tA5QWPgVRUVfs2XLwwQCZhHdqqpc1q6djtOZTHr6ma3dXCHEPpAnOtGpaV0VYrspAL1166O1Qa5GIFDGxo33tEbzhBBhIIFOdGrdul2IZcUFbQ8ESvH7i23rZAJUVGyOdNOEEGEigU50aunpZ6KU/by4TZvuD7lKgcczIpLNEkKEkQQ60akpZeH3l9juKytbxQEH/AXLajh/0LLi6dfvL63RPCFEGEigE+1GIFBJVVV+qxfJdrnSQmzvSmbm5QwZMguPZzgORxJJSYczcuRHJCcf3qptFELsO8m6FG3O769g3brfsmvXLLQOEBPTjQEDniAt7dRmX2PPnh/YuXMWWntJT/8VXbocg1KqWedmZd3Kxo1/aJB0YlnxZGXdBkB6+lmkp5/VshclhGg3JNCJNrd69WXk579DIGBqa1ZWbmHlyvMYNeozkpPH255TWbmdysotxMcPZuvWx9i8+a/V5wfYtetl0tPPYfDg/zQr2GVl3YLPV8TWrY8CCtD06nUDWVk3h+9FCiHajBR1Fm3K683l22+z0LpxdqMiNfUURoxouDyh31/GypXnU1DwEUrF1AY3s+JTHcvyMHLkh6SkTACgsHAeGzbcSknJEmJiMund+066d7+sQSD0+8vxencQE5OJw+GOxMsVQkSIFHUW7VZl5VYsKxa/v3Gg05SXBxfJXrPmKgoKPqoOcBUhrxsIlJGX9zYpKRPYs+cHli49vrZrsqJiA2vXXkdV1W6ysm5m9+4PycmZg2XF0r37JbjdB4TxFQoh2poEOtGm3O7+ISZtO0hKOqTBFr+/jJycV22e/uw4cDgSAPjllztDTPqeQXHxQvLz362ujqLYteslsrJupm/fGfv2goQQ7Y5kXYo25XQmkpV1M5ZVv06owuGIJzv7zgbH+nx7mp1gYlmu2hXES0qW2h6jtZf8/P/WKwGmCQTK2LLlQcrLf6G4+CcKCv6H3x9cIkwI0XHIE51oc336zCA2tg9btvwFrzeXuLhsUlIm4vXuxO3uVxvcYmK64XR2xevd3ugKCrBwOOIxwcqLxzOStWuvJTX1VOLi+lJVlRN0X639aO212a6qVxYvQSkHWvvo1+9RevacFv4XL4SIOElGEWGjtZ/c3DfJyZmNUrFkZk6la9djm33+nj0LWLLk2No6k5YVR0rKkQwf/k7tqt55ef9l5crzCATKAQ04cTg8jB79P8rL11FQ8DE7d76I1hWAxrLcOJ1d8fl2V59jWFY8CQmj2LNnAdB4fcGap0bd4PimskBLS1ewa9fLBAJe0tPPCnlcfYWF8/jllzspLV2B292fvn1n0LXrcc3+9xJC1GkqGUUCnQgLrQMsX346BQWf13YFWpaHnj2vpl+/vS/gqrXmu+96U1m5pcF2U4XkYXr2vKp22549C9i8+QHKy9eSnDyB7OzbiYvrjd9fxjffZAStRmBZbtLSzqao6EsqK7fhcMTTq9dNZGT8mkWLxjQIgKEpunW7gCFDXgjas2XLI/zyy10EAl4ggGW56d79cgYOfDzk1QoKvmDZslMazd1zM2TIi7IqghD7QLIuRcQVFHzaIMiBKYy8bds/6NHj6r1mMpaWrqCqanfQ9kCgjJ07n20Q6JKSDmb48DeCji0uXoxSDptrlFNevobx4zcSCJRjWXEoZYanBwz4J2vXXoNSTkBVJ8aooOQV0Hi9O4OuXVGxtTrZpS4D1LT5P3TvfmFQQk2N9etvtkmQKWfdupsk0AkRZpKMIsIiP/8923XdwKKg4JNmXEFT12XYaE8zex2czhS09tvuc7nSUMokudQEOYDMzEs59NDtDBr0LEOGzGLcuLVA8CrilhVPauqUoO27d7+H3dsoECgnNzc4GNcoLV1pu72ycjOBgP3SQUKIfSOBToSF05liuwqAUg4cjuS9nu/xDMflSgnablnxZGZObVYbPJ5hxMX1pvGvtWV56NXr+pDnuVwpZGScQ1raFOLietKnz4wGhZwty01cXG8yMy8LOte8ZrsA7UCpmJD3jInpbrvd6UyufroUQoSLBDoRFhkZ59s+TWntb1bNSqUUw4a9jsORWB1kFJaVQHLyBDIzr2hWG5RSjBjxHm53fxyOBByOZCwrjt6977RN8tA6gM9XjNYNn+Cys29lxIj/kpZ2OklJh9O375/o3/8fLF9+JvPn92LJkuMpKvoOgLS0Kdg/AdZNb7DTu/ddtqsiZGXd1uwpFEKI5pGPjiIs9uyZBzho/EdfqVgsq3nltJKSDmH8+M3k5r6K17uT5OQjSUk5qkV/+N3uPowbt5ri4oV4vTlYlguHI4lAwIdlmV93rTVbtz7Gpk334fcX43Ck0LfvDHr2vLr2Ol26TKJLl0kAFBR8zrJlp9aOqXm92ygqmseIEXPp0uUYBg9+gVWrLqge3zOvPz5+GLGxvUK2MzNzKn7/HjZunIHWlSjlpFevm8nOvr3Zr1UI0TySdSnCYvHiCezZ803QdocjkdGjvyAx8aD9un4g4KOqahdOZyoOR/CK4I0VFc1n+fIzajMqlYph+PA3SEk5iq1bH2fDht8FrVYwYMATZGZeGnStBQtGUlq6LGi7w5HMQQctwOFI4PvvBxEIFNfuUyqWxMSDOPDA4H+T4NeVh8vVFcsK3dUphGhaU1mX0nUpwiTUU1foJJPm2rbtSebPT+f77wfwzTddWbv2BgKBxnPf6vh8RSxdegJVVTn4/cX4/cX4fPksXXoyXm8emzb9MURJsD/YXq+0dIXtdr+/iEWLDmLTpvuDJp5rXUlJyRKKi39s8rVZlpPY2O4S5ISIIOm6FGGRmXk5JSU/BmVeOhyJJCSM3ufr5ua+EZSKv2PH0wQCXmJi0sjLm4vLlU5W1o2kpp5Ufc7rQeNuRoCcnNm2VVLAdEnWV1GxCb+/tHrCeZ7tOX5/GXl579jW31TKorx8DYmJY5r5aoUQkSCBToRF9+4Xk5f3NgUFn9VWNVHKYtiwNxuk87fUxo0zbJ++dux4EnAB5kmqqOgreva8jv79H6KqKo9AIDjwBAIV+Hy7iY3tQ2XlxqD9bvdAAMrLN7JixVmUla3EZE+q6nvZpf37q0uFxdg81fnweEZU39vMz6sZJwy6ir+M/Pz/UlWVR0rK0Xg8w0L/owghWkQCnQgLpRwMH/42e/Z8S2HhV7hcaWRknIPTufepBU2prNwaYo+mJsiBKdC8devDgEVGxtlYVkxQ96ZlxZOSMpH4+KGsXn1pUFWSfv0eROsAS5ZMpKJiMw0Ta0K/VUw9zMY1Mx0kJx+Jw5HAkiXHUVDwOUopunQ5jkGDniI2tmftkcXFi1my5Jjq2psmIJqFY2fu14cEIYQh7yIRNkopkpMPo3fv39GjxxX7HeSAFnd7btv2d7T2k5p6coMVESzLQ0rKRJKTjyAj4xyGDp2DxzMCy/KQkDCG4cPfIjX1JAoLv6SqKp/g7FGF2z0IpWIbbLesOPz+EpuWKLKybmHx4vEUFHwO+NHax+7dH7F48WG1k8K1DrBs2Wn4fIX4/cUEAhW1k81zcl5t0WsXQtiTJzrRbhUUfMGePd/a7HEA9hVQtPaya9eLDB06m5ycOezY8QxaazIzLycj4/zaqQppaafazu/zeneEuG4VHs8wEhMPIjf3DZRyopSTlJSJ5Oe/a3NGgO3bn8TnK27UVj8+XwH5+XNJTz+LkpKf8PuLgs8OlLJjx9N063aebXuEEM0ngU60S35/KcuXn2ZTcFnRs+f1bN/+hO0SO6DRugqlHHTrdgHdul3QovsmJY23XQjWsjykpp5EZuZUfL5/UlWVR2xsNjt2PEtBwcdB3aRKudi9+yMCgeCnPb+/jLKytaa11V2VduzGGYUQLSddl6Jdys//APsAYKGUpl+/h23PsywPGRmhn4L8/jK2bfsXS5eeys8/X01JScP5cW73AXTrdmGDbk+l4oiN7UlGhql04nQm43b3w7JcZGScY9tOrSttgxyAwxFPQoJJUklIOMi2dJplxdOt20UhX4cQovnkiU60S3XrzTXmx+8vpVev6VhWHGvXTq8uPeavDg6/JiVlou01fb5iFi8eR0XF5upEFAe7ds1i8OCZZGT8qva4gQP/TVLS4Wzf/gR+fwnp6eeQlXUzDkdwhReXK5URI95h+fKzatvr95dj1rgLbr9SLmJjs+ja9QTAzKMbOnQ2y5efUZ2MUonDkUBi4ljb2ppCiJaLSGUUpdQrwKDqH1OAQq11UFaBUmojUDOI4Qs1q70xqYwS3QKBSrZvf4p1626gcVKIZXkYPvwNunY9HoDy8g3s2jWbQKCM1NRTSUo6JGTJsI0b72PTpj8GdXk6HEkcfnjufk3aDgS8FBV9A2hWrDgbn6/A9rguXY5j6NA5uFxdGmyvrNzOzp2z8Hp30rXrZLp2PVEyLoVogVZfj05rfW69mz8MBI+215motbafjSs6Hb+/jMWLD6O8fB12QS419SS6dKkr0Ox2H0CfPnfu9brl5b+wadMMtLavqFJS8hNJSeP2ud2WFUOXLhMpLv4xRBYmgJOBA/9VG+S01uzY8SybNt2H17uD+Phh9Ov3YItWZRdC7F1Euy6V+Wj9K2BSJO8jTpxZAgAAIABJREFUosf27U9SXr4mKAlFKRdDh84mNfWUoCc2rTXFxT+Qlze3tvuy8UKvq1ZdGDLIae3D4UhqcL28vHfYtu1xfL5C0tPPpmfP6TidiXttf2npsurJ48EJLbGxPRq0a+vWx6pXJi+rPvcnli+fwsiR75OSctRe7xVOgYCP7dufZPv2fxEIVJKRcS7Z2bfjdCbt/WQh2rlIj9EdAezSWq8NsV8DHyulNPBvrfVToS6klJoGTAPIzs4Oe0NF+5CTM8cm09JM6I6JybANcmvWXMmuXS8TCJShlJPNm+9nwIB/1hZorqoqoLg4dFd3XFxfXK40qqp243J1ZcOGO9i27fHacmZlZavYufN5xo5djMMRH/I6AG53/xB7nGRmTqv9KRDwsXHjvbZVXzZsuJMDD5zX5H3CbeXK89i9+4Pa9mzZ8jB5eW8yduxPWFbsXs4Won3b50CnlPoUsFs98k6t9TvV3/8amN3EZSZorbcppTKAT5RSq7XWX9kdWB0EnwIzRrev7RZtw++vIDf3dYqLF+B2D6R79wttJ5Q7HPZPTVr7G2RC1igs/KI6yJVWH1eF1lWsXXs1aWmn4XJ1xW69uDoWEODbb02lEo9nGCUlK6hfdSUQKKeycgs7dz7fYCkfO0lJhxIfP5DS0hX1xgIVDoeHHj1+U3ucz7fbtj4mUF16rPWUlCxj9+73G3zA0LqSioqt5OS8RvfuF7Zqe4QIt30OdFrrJgcSlFkm+Uwg5PosWutt1f/NUUq9BYwDbAOd6Li83jwWLx6H15tLIFCCZcWzcePvGTNmPh7P4AbH9ux5LXv2fN+oOLQiNraHbf3HnJxXggpJQ908tm7dfo3LlYrHM5ySkh+pnwlp0votyspW124vKfnJ9jUEAmXs3v2BbaAzXacLyM//AKcziSFDXmTjxnvJy3sLrQMkJR3MwIFPExOTUXuO09ml+v4VQddzuwfYtiFS9uz5HrspEoFACYWF/5NAJzq8SKZ1HQus1lrbFitUSnmUUok13wPHAcsj2B7RRn755Q4qK7fWzisLBMrw+Qr5+efg9Pm0tDPo0eM3WFYcDkciDkciMTGZjBjxrm02pfk8ZZ9lafYZQ4a8gNOZUvtU6HAk4HKlY6qs1O8g0NhPa3A0qE9Ze7TWrF59OT/9NIlNm2awYcP/sWjRWDIyfs0RR5Rx5JGlHHjgtyQkDG9wnmW5yMq6Negp1bLc9O07w/b1REpsbE+UcgRtVyqWuLg+rdoWISIhkmN059Go21Ip1QN4Rmt9EtANeKv6j5cTeFlr/WEE2yPaSG7uGzbJGZri4oX4fCU4nQm1W5VS9O//KL163UhR0TxcrnS6dJlk+4cYoFu3i9i587mgsS6t/bVz1QA8nqGMH7+RnJw5lJf/QlLSOPbs+Y4tW/4aotWK+gHPsmLp0eOaoKN27/6A3NzX6nWdVqK1SX45/PBdOBzB3a01eve+C8uKY/PmB/D5CoiL602/fg/XTp1oLV26TMbpTMHvL6V+N69STjIzL2/VtggRCRELdFrrS222bQdOqv5+AzAqUvcX7UeoIAUq5L64uGzi4s7f67WTk8eTlXUTW7Y8hNY19/LTtesprFhxDgkJo+jZczpxcVk4nUn06DGt3tkKy/IEdX1aVjwxMRl4vTnV17MYNOip2mom9e3c+UKIrlMHBQWf29bTrDtGkZ19K9nZtxII+EIu4RNpluVk9OivWLHiHMrKlgMWLlcaQ4e+TGxsjzZpkxDhJJVRRMR1734J27b9g0Cg/niUk5SUSbbVRlqqb9/76N79UvLz38fnK2LLlgfJzzeLoRYWfsH27f9i9OivSExsWLPA690R9CQIsSQkjGLMmG8oL1+Dz7eHhIRRISeTNz2pu/krq/t8hRQWfoZlxdOly2QcjrhmnxsObncfxo5dQGXldgKBCuLi+oaceC9ERyOBTkRcnz73UlT0DaWlywgEqrCsGFyuNAYP/s9ez62o2MTGjTMoLPycmJjuZGXdTnr66bX7tdb4fLuJielJr17XsXTpSfj9xdR0O2rtxe/3smbNlaSkTGTHjn/j95cQHz+M8vKfaTwe53IlMnLkpyiliI8fRCiBQBUFBZ8SG5uNUm60bjwlIkCXLsc0699n69a/s2HD7fVqXjoYOfJdkpMPb9b54SRPcCIaRaQEWKRJCbCOR2tNUdE8SkqW4Hb3pWvXE5ro0jQqKrawcOGo6qVuzGRvy4qnb98ZZGXdTH7++6xZczVe705A0a3b+ezc+RL1pwbUZ1lu2zl6DY/xMGbMvKCnv/pKSpawZMnk6tUFNH5/GaYb1qpNgBk27A1SU08IeY0axcWL+fHHI4KeLB2OZA47bGerP9kJ0VG1egkwIRpTSpGScgQpKUc0+5zNm/+Mz1dCTZADk7H5yy93k5h4CCtWnNMgQOTkzEYpTajPbnsLcqadDny+/JD7tQ6wdOlJVFXlNthuWW4yMi4kKekg0tLOIiYmba/3CgSqWLv2RpvuUwBNQcHHpKWdttfrtCd+fwWFhZ8RCFSQknIMLldKWzdJCAl0ov0qLPwSCC6lpZSTjRv/EBS4zBigA6Xi0Lr+eOD/t3fm8XFVdcP/njtrZjLZ0+zN0r1NW7qyFBARQRRlERXXR+F9UB5RfNBHwYVXLYi4Pa/PI4obr7jjDkoR9RFESkuB7mkbmjZJ26RJ0+zJTGa75/nj3qSZzJ1kmm3C9Hw/n3ySnHvuOb9zz73zm3Pub3EghEiQvy4WKUP4fIlji/f1bTe3RmMxnMqbKC1NGNxnTD+SffveRF/f1kQ1TCvImcPvP0xX1xY0zU1BwQ04nYVTaq+n51n27XsLo7eNFy36FiUlt0yDtArF5FHh0RVzFperwrJc14MEgy1Y+bvZbF6ysjaiaRnYbFloWgZZWRvHMRo5s31qbIveaxmxZRhD+VgbaXR3/51QqD3huaPp6XmG3t5tJM6UHk76Hd9keOWV29mxYzkNDXdy+PAdbNs2n46O3026vWh0kH37riEa7SUa7SMa7UPXhzh8+CMMDh6cRskVirNHKTrFnCQUasduz8VKqTgcuWRnX4TVhoSUIWprH2P9+r0sW/Zj1q17mbVrnyM//xo0LdbCU9O8VFTcic93Pvn511Bb+xgVFR8fV67s7IvGWRkKWluTW9H19v7T0i0BjIgt1dX3xURSSRYpJV1df6Gu7p3s3/9WOjp+h5SxIdCamjbT2vogxpawbvr+DXHgwLuJRM4kGtH1kJnrb2I6O5+wLNf1MG1tj5z1OBSK6URtXSrmHMHgSdMIpQ+rVVsk0kMk0oXNlmGmxDHqaJqHsrLbcThycDhy8HjOBFhetuynHD36GdPq0o/Pt4HFix/E50sYoc4Sm81LUdH7OXnyIYujEQYH91mUx+N0FpnGMWPfz9mpqLiLioo7z0quYY4cuZPW1u+PKNGurqfIy3sDK1b8GiEEkUg/zc3WkVeEgM7OLXi9tbzyyq309e1ACDuFhTeyaNGD475vi0YH4hSqQYRotG9SY1Eopgu1olPMOZqbv0Qk0pMw6LGuD9HZ+SSrVz9NTs7laJoXl6ucBQu+QU3Nly3P0TQXCxd+jUsu6ec1r4mwbt32hEouEunj5MmHaW6+n97erYy1TC4ruw0h4q0hhXDj8yWX066w8B2WVqc2m4f58z+RVBtj8fvraW39bsxKUdcH6er6s/m+0wiCnWjrVdfDhMNd7Np1MX192zFWeyE6On7D3r1XxV2H0eTmvh6rbVhN81JQcF38CQrFLKIUnWLO0d39Z8t8brFoNDXdQ1/f8whhIxzu5uTJ7xKJdE3Y/niO0H19L7JtWwWHD3+UxsbPsWfPVezbdw26Ptryc8gytJeUhqN1MjgcOaxa9ReczjI0LdNU1hWsXv23SeeA6+r6q6UyMgJSG1uLQjhG+evFjYBQqCVua1bKEIODdROkOqpg/vy70TQPw4pU0zLJzb2C3FyVSFaRWtTWpWLO4XDMMzOMj4egp+cZ0/LSsL4cHNzPoUMfYOXKxyfVr5SSurobYrbadH2Qnp5naGt7mNLSW+nq+iv791+XwCUADh/+MIWF108QMcUgO/sCLrzwGIODdYDA610xpWgkdnsWQtjj3CuEcGC3G9uOOTmvjQl2PZqKik8QCDSMiWAz3IZGIPAKWVkbEvZfVXUPublXcPLkw+i6n3nz3kF+/puTuhYKxUyi7kDFrNLbu5W6unewa9elHDv2VfM9XCxGVP/xEpw6kHLIIpBzmK6upyZtlj84uJ9wuCeuXNf9nDz5QwAOH/5IQiUHxrsqv78+6T6F0MjMXElmZu2UQ24VFFyHVRNC2CgqMlLt2Gxuamsfw2bLRNM8CGE3gzd/kAULHsDn22h57aWM4vXGx/ocS3b2RSxd+gOWL/85BQXXKiWnmBOoFZ1i1mhp+R5Hjvy7uQozshe0tn6X9etfjjHpLyy8Dr//szQ3b0YIJ7o+hN2eg83mQUqdcLgdXU+8tZloa3FipKWiGD6m62ECgVcmaCM6yb6njt2eRW3tH9m//zrO+LJFWLr0R7jdlSP1cnMv48ILWzl9+jGi0X7y8q4kI2MBACUlt3D8+APmqs4wLhHCTXb2JjIzV82I3JFIP6FQGy5XhYoEo5gRlKJTzArRqJ8jR+6MWQ3peoBQqIWWlgeprPx0TP3KyrspK/swg4P7cTqLycioIRzu5vnnS8c4g8eSkbEAhyN/UjJ6vbXYbFmmJecZNM1DcfHNCGHHZsu0dBg3sOHx1OJ2z59U/9NBbu5lbNrUTk/PP5AyTE7OZZaK1273WSZUdThyWbfuJRoa7qSr6yk0zU1JyQeoqto87bLqeoSGhjtoa3t4ZDt1/vxPM3/+XSqgtGJaUYpOMSv09++0tDLU9SFOn34sTtGBsUIx/OUM/P5DaJqLaNRa0WlaJkuWTBwoOhFCaKxY8Vv27r0SKaPoegBN85KdfRElJbcghKCs7COcOPH/4rYvhXDicpVRW/vbSfUtpUTKEEI4p/whr2ku8vKunPT5bnflpMdxNjQ23m3mEjwzn83N9+J0FlNSEp+UV6GYLErRKWYFhyMPKSMJjiUXesrtrkzocpCRsZTVq58669VUf/9OGhvvYXBwD273Iqqq7uGCC5rp6PgVoVA72dmXkpPzmhHlU1X1BSKRHnMV4jBXTa+nouJOcnIundQ7qfb2n3PkyCcJhU5it+dQWfkZysv/Pa1XNboeoaXl23FfGHTdT3Pzl5SiU0wrStEp4pAySmfnn+jo+B02WxYlJTfj862ZVFvRaIBg8DguVzkZGQsYHDzAaH8rTfNQXv6xpNpyuUrJy7uarq4nY1YBQmRQXn4HLS3fwm7Po6joPbjd5RO219u7nT17XjfyYRsMnmDPnqdxuSpZtuwRSks/GHeOptlZvPhBamq+RDB4AperMiZD+tnS0fEH6uv/dUSGSKSLxsbPIaU+aX+6qRKNDtHW9jDt7b/AZsukrOw203py+hSvrvsTupCEw23T1o9CASpNj2IMUkbZt+8t9PQ8i64PABqa5qKm5iuUl99+Fu1Impu/xLFj95sBlSMUFNxIf/9OgsFm0ww+SFXV5rP6QI9GAxw+/GHa238OSByOYlyuEgYH96Prg+bWn43lyx8dN7s3wM6dF9HXt83ymKZ5WLNmKz7feQwM7Keraws2m5fCwhtxOouSlnciduyoxe+viyu323PYtKlz1q0WdT3Mrl0Xm9fTUL6a5qW09IMsXPj1aetHSsn27fMJBk/EHcvOvow1a56etr4U5wbjpelRik4RQ0fH7zl48L1xcRg1zc2FF55I2tDj5MmHOXz4ozHtaJqH0tIPUVz8PsLh0/h868cNoDwe0eiQGfXjKerrb42T12bzcdFFp8a14nv22QxLnzFTWgoK3orLVcLJk99HysiIwcSSJQ+j64MMDtbh9a5i3ry3Y7ON5w6RmGefzbSMeSmEnU2burDbfZNqd7K0t//CXGHGz//GjfXYbFkEAodxuysnFYtzNMa99p5R25cCTcvgvPP+QVZW4gwSCoUVKh+dImk6On6T4IPXQXf3/zBv3tsTnqvrQaSMYLN5aW6+P64dXffT2voQNTUPoGlTu/VsNjea5jKNGaz85gR9fVvHzQDgcMwjGDyW4KhOf/8LdHV1jqQDGt5qO3jwnWiaF10fRNMyaWz8LOvW7ZhUdm6PZwkDAzvjyu32XGy2yW+JTpbOzi0JrqeN+voP0tv7DEK40PUhCgvfytKlD6Nprkn1VVh4PXb7EzQ3f5FAoIHMzLVUV3+BzMzVUxuEQjEGpegUMdhsPow4AmMD9IqE/mHhcBf19bfS2fk4IPF6VxEKtVrWlTJsKojJreSG6ej4Aw0NdxAMHk9YJ1EEkGHmz7+bhoY7kdIqIauRLTyRc/iwMtD1AUKhAA0Nd7Bixa+Tln+Ympovs3//tTG59TTNQ1XVvSkxRjG2Ze2MTnYLhj9eT8/TpjGQsQo+ffr3NDTksXjxf0+6v9zcy8jNvWzS5ysUyaDCFihiKCm5BU2zClisWcYslFKyZ88VdHY+jpRhpIwwMLATXbe2jnQ6i7HZJhfLMRzuIRhso6vraQ4efLe5GrPeehfCQVbWpnHbKy39IJWVd2H1fU/TMvB6VyVsP5Yop0//MYl68eTlvZ7a2j/g9a5GCBdu9wKWLPk+ZWW3Tqq9qVJa+q9omjOu3Jjb2DnV9QBtbT9MOpWPQpEq1IpOEUNW1gaqq79IY+NnzRWRADRWrnzCcouqr+8FAoHDcRZ0QtiQUsNYGZxJo7Nw4TcJhzuJRntxu6ssfevGEgq1c/Dge80I/AIhRMJ3a5rmRQiNlSsfm3B7VAhBVdU9lJd/nKamz9Pe/giRSA8+33oWLvwm0Wgf3d1/TZg3LratyT9KeXlXxvm9SanT3/8S0eggWVkXYLNlJDh7evF4lrB06SPU19+MMfc6dns+4fCpuIzuYOSsm3wkGoVidlCKThFHRcXHKSp6D93df8dm85Kbe2VCo46hoSOW5VKGyM29CpvNQ3//TjIyFlJe/jFaW7/NgQPvNKOMeFi8+CEKC29IKIuUkt27L8fvf4Xh7bRE9lNCOKmq+gKlpbeelRGH3e5l4cKvsnDhV+P6Lip6L+3tP0bXg6al6PCW3plVjBDOcd9dni2Dg3Xs3Xs1kUg3w9vIixc/RFHRu6etj/GYN+9GCgreTF/fDmw2L5mZa9i790q6u/8WVzcjo1opOcWcRyk6hSVOZxFFRe+csJ7Xu9oy4aamecjLewMVFWd85HbtupS+vheQMoSUQXR9kIMH34vbXZkwN1xf3zZzi9La2Ty2Tyfl5bdP2jhiLEIIliz5jpm1YAua5iU39wrq6m4kFGpF10NomgO3u5oFC74xLX3qeoTdu19HONweU15ffyuZmefh9a6Yln4mQtNc5ORcMvL/ggVfZ9euTUSjAQwlb1hILlr07VmRR6GYCkrRKaZEZmYtOTmvGZUyB8CGzeaLiW7h9x+mv/+luFxnuj7EsWNfZ8WKn1u2PzTUTKJEoaPRNA/z53962pTcaHy+NTEO8xs3HqC7+6/4/YfweFaQm3v5tPm79fT83dIARteDtLZ+j0WLvgnA0NAJmpvvpbv7LzidRVRUfJLCwuunRQYrMjNXsW7dTpqb76e/fwde73Lmz78Ln2/tjPWpUEwXStEppkxt7e9parqXkye/j64PkZ//JmpqHojxkQuFWhHCyXDuuDPoBIONCdv2+dZbhg4Two3TWUI43I7TWcT8+Z+mpOSWaRrR+AihkZd3FXl5V0172+FwosSxUUIhY5UXDJ7kpZfOIxLpBSIMDTVy8OB78Ps/S2Xl3dMu0zAezyKWLZt8LFGFIlUoRaeYMkbklM3U1CSOcO/1rrS0xBTCRU7O5QnP83gWkZ//Fjo7/ziy0hHCgcNRwIYNe2bdoXqmycm5FF0PxZVrmnck0svx4181MyiMznrup7l5M2Vlt6fdNVEopopyL1DMCg5HHhUVd6Jpow0X7NjtPsrL7xj33GXLfkp19Wbc7gU4nSWUlNxi5rBLvw90l6uUioqPx1wnTfPg9a6gsPBtAHR3/z1uCxiMLwB+/4Gz7jMS6aW9/ee0tT1CKHRq8sIrFHMUtaJTzBrV1ffi9dZy/PjXCIc7yct7A1VVn5swlJSm2amouJOKijtnSdLUUlNzH9nZl9Da+hDRaC+Fhe+guPj9I/5tbnclg4N74s6TMoTNlkNT032cOvVTwEZJyf+hrOzDaJrDsq/Tp//EgQPvMN08JFJGWLDgG5SV3TaDI1QoZhcV61KheJXR0/Mce/deFWO0IoST7OxLiEb7zIDMxrtQTfOQk3MpK1duiYu0Eg53s21bWZx/nBBOVqz4LQUF18z8YBSKaWK8WJdq61KhSDFDQ8c4cOA9PPdcIdu3L+DEiW9aumwMk5NzMYsXP4TdnoumZSKEi9zcKygpuQW//2CM4tJ1Pz09/6S/f0dcO6dPPwbEO+xLGaKu7np2734dkcjAqHJJW9tPefHFVWzdWkxd3TsJBKz9KBWKuYTaulQoUkgo1MHLL68jHO4GokQipzl69NMMDOxj6dIfJDyvuPi9zJt3E4HAERyOfJzOQo4c+RTR6EBcXSnDdHX9FU3zkpFRM5JpwQjpZa1QpYzQ27uVhoaPsnSpYWnZ1PQFjh//2kikmI6OX9HV9SQbNuw964S3CsVsolZ0CkUKaWn5FpFIP6Mjrei6n/b2nxEMtox7rqY58HqX4nQaGdpdrgo0LT5UmJQ6zc1fZNeui9i6tZDm5vuRUpKXdzWJFJ1xXpD29p8jpU4k0sfx418ZEw5NJxr1c+zYA2czZIVi1pmSohNCvE0IUSeE0IUQ68ccu1sI0SCEqBdCWDocCSGqhRAvmPUeFYajlUKRkGCwjVDodKrFmDZ6e/8ZFywZDJeNgYG9ceVSRunt3Up399/NKCVnKCp6V4KYmxGkDBON9ptuCPdx6tQvcLvnU1n5f9G0xLn0jGDOUfz+QwhhZdASprf32YmGqVCklKmu6PYDNwAxd7oQYjlwE7ACeAPwbWEdvfcB4D+llAuBbmB2PH4Vrzr6+3eyY8dytm+vYtu2MnbuvMiMmvLqJiNjKVZvEKQM43ZXxZT19b3E88+XsXfv1ezffz3PPz+PU6d+O3Lc4chj9er/we2uRtM8COHGKqqMrg/S3PwlACor72LNmudwu6st5fP51qHrfiKR/gQZKQRu94Jkh6tQpIQpKTop5UEpZb3FoWuBX0opg1LKRqAB2Di6gjBMwC4HfmMWPQJcNxV5FOlJONzJ7t2vxe8/iJRBpAzR17eDXbsuRtcnjoE5l6mouCMuLY4QTjIz1+L1Lhspi0YD7NnzesLhdqLRfqLRPqLRAQ4deh+BwNGRellZGzj//CNs2LCXNWueTRgSbTjKChghzlategq7PWckRZMQDoSwMzR0nK1bC6iru97MUBH7fVXTMpg//66pXgaFYkaZqXd0ZcDojJgnzLLR5AM98kx8J6s6CgVtbT+OSwNkGG700tX156TbiUaHGBysIxTqmF4Bp4DHs4SVK5/A7a5BCBdCOMnPfzOrVv0ppl5n5xOMfo83jJRh2tp+FFMmhCAjYwE+3zrs9hyLXgXZ2bG5+jyeRWzceIiKik/i9Z6HlIZPXTjchpQRMxLL8Ps8G5qWgcNRxNKlPyY7+4JJj1+hmA0mtLoUQvwNKLY49Bkp5WPTL1JCOW4FbgWYP19ZeJ1LBAJHLHOhSRk2MxtMzIkTD9LYeBcg0PUQeXlXs2zZT7DbM6dZ2rPDMPTowetdQ2bmeRQXf8DSfy0S6bZMcCplmHA4/p3l6dOPceTIfxAKtWFsXw77y9qw2TzU1Hwp7hyns4jKys/S0vLfJM4WEcVuz2f9+t24XKXTFsxaoZhJJlR0Usr4tNIT0wJUjPq/3CwbTSeQI4Swm6s6qzqj5fge8D0wHMYnIZPiVUp29iba2x+xMJ234fNtmPD8zs4nOHr0kzEO1l1dT3Lo0Puorf3dNEubPFJK6ureQVfXkyPWjF1dT1Fa+iEWLvwag4MH8PsP4vEsIzf3cqwsJDUtk7y8N8aUdXZu4cCBd40arwQ07PZcHI48IpFe9u+/gbKy2ykruy0m+a3ff8AyiPZojKS55VMZukIxq8zU17HHgZuEEC4hRDWwCIjxWJVGSJangRvNon8BZm2FqHj1UFj4VpzOMoQ4875J0zLIzt5EVtbEiq65+ctxqW+kDNLZuYVwuHPa5U2Wnp5nYpQcGIYiLS3fYufOTbz88noOHbqZl19ezyuv3EZx8S1jYmB6yco6n/z8q2PaPXr0botUPzqRSDdDQ02Ew6cIBOo5evRTHDp0c0wtmy1rQkWXmXnepMar60GGho5bBq1WKGaSqboXXC+EOAFcCDwhhHgKQEpZB/wKOAD8GfiwNPddhBBbhBClZhOfAu4UQjRgvLP74VTkUaQnmuZk7drtlJXdjstVjttdTWXlZ1m58o9JnR8KWW8UaJojpe/rurq2WOaekzJCf/8OdD1ANNqHrgfo7f0nIFi+/Jfk57+F3NzXs3jxg6xa9SRjDZoDgYYEPeox7zp13U9Hx68IBM6kScrIqMbjWYZVxBQj2aqHhQu/eVbjlFLS2HgPzz2Xz44dS9m6NZ+mpvt4NYYfVLw6UbEuFWnPoUO30Nb2CGONOWy2LDZt6oizepwtmpo209x8r2UmAitstkwuuaR/wnovvriSwcH9SbaZxZIlP2TevBtHyoaGTrBnzxWEQi1IKdH1AHZ7Fjk5l1NVdQ+ZmauTanuYY8e+QlPTF2KUuqZ5qKl5gPLy28+qLYUiESrWpeKcprLyc2ZKnzOvpI0P2q+mTMkBFBW9J241Nh5jHcQTUV19v4UTuB3ruJZR3O6KmDK3u5yNGw+yevXfWL78Z1x4YQsXX9xNbe1vz1rJARw79kDcylU0nE8UAAAKUklEQVTX/Rw7dv9Zt6VQTAal6BRpT0ZGFevX76a4+P1kZCwkJ+cyamt/R1nZrSmWq5olS/4/mubBZssyf7Lxes8j3tFbkJPzmqTaLSi4hmXLfoLbXQMInM4SqqrusfCps5ORUYPPF+Piit9fT0PDR2lq2kwgcGQkNuZkMKxKrbOmh8Mq951idlBblwpFiolEBujpeRohHOTmvpZA4Ag7d16Erg8hZRAhXGiam7Vrt8U4kSeDlHIkPU939zMcOvR+wuFTSBklO/sSli//GU5n0Uj9rq6n2L//BtNgJGL6yxWwbt1OnM6CSY3vhRcWEwgcjiv3elezYcPuSbWpUIxlvK1LpegUijlIMNhGa+t36O/fic+3ltLS23C5rNxZzw4pJcFgCzabB4cjb8wxnW3bykzfuzMI4aS09N9YtOg/J9VnZ+cW6ureFveObuXKP5puEwrF1FGKTqFQTEggcIQXX1xlaQnqdldzwQVHLc5Kjp6ef9DY+Dn8/nq83hVUV28eic4SDLYhhDZhpnmFYjzGU3QqH51CoQAMq06r6CvGsawptZ2T8xrWrInNcjAwsI8DB941sq3p9dayfPkv8HgWTakvhWIsyhhFoThHCQSa6O/fja4bvnVOZxFZWecz9vuvpnkoK/vItPYdifSye/el+P37zUDdQQYGdpqBuq2yJCgUk0cpOoXiHCMYbOXllzfy4ovL2b37Up5/fh7t7Y8CsHz5o3g8S9G0TGy2LIRwUVT0PkpKbp6g1bPj1KlHLSKkGD57p0+rAEmK6UVtXSoU5xBSSvbsuQq//yCjHejr62/G41mMz7eGDRv20t//EsFgCz7fujg/u+lgaKjJ8l2grg8xNJRcoG6FIlnUik6hOIcYGNjN0FAjY6PE6PoQJ078F2Ck+cnK2kBh4XUzouQAsrLOR9PiM0cI4UoqfqlCcTaoFZ1CkWKiUT8dHb/G7z9MZuZqCgqunbGILaFQG0JYPfZ60imPpoO8vDeRkbFwJJkugKa58fnOIzv70lmTQ3FuoBSdQpFCAoFGdu68gGjUj64PYLNl0thYzNq123E48qe9P59vw4hiGY2mZZCXd7XFGTODptlZs+afHDt2P+3tP0MIjeLiD1BR8R8jDu4KxXShti4VihRSX38L4fBpdN3ItReNDjA01MyRI5+akf6czgLKyz8ek+5HCBdOZxGlpbMbEs1uz6Sm5j4uvLCJCy44SlXV57DZ3LMqg+LcQCk6hSJF6HqQnp5nGZtQVcowHR2/mbF+q6s3s2zZj8nOvhSPZwUVFf/BunUvY7dPzVdOoZirqK1LhSJlCIQQWAUnEmLmvoMKISgsvIHCwhtmrA+FYi6hVnQKRYrQNCc5OVcwNn2OEE7mzXtXaoRSKNIQpegUihSydOkPcLnKsNmMfHk2WyYez1Jqau5LtWgKRdqgti4VihTicpVx/vkNdHb+kUCgAa93FXl5V87o1qVCca6hFJ1CkWI0zaHelykUM4j62qhQKBSKtEYpOoVCoVCkNUrRKRQKhSKtUYpOoVAoFGmNUnQKhUKhSGuUolMoFApFWqMUnUKhUCjSGqXoFAqFQpHWKEWnUCgUirRGKTqFQqFQpDVCWuUImeMIITqA5mlssgA4PY3tpYJ0GAOkxzjSYQyQHuNIhzFAeoxjpsdQKaUstDrwqlR0040Q4iUp5fpUyzEV0mEMkB7jSIcxQHqMIx3GAOkxjlSOQW1dKhQKhSKtUYpOoVAoFGmNUnQG30u1ANNAOowB0mMc6TAGSI9xpMMYID3GkbIxqHd0CoVCoUhr1IpOoVAoFGnNOaPohBBvE0LUCSF0IcT6McfuFkI0CCHqhRBXJTi/WgjxglnvUSGEc3Ykt8aUYbf50ySE2J2gXpMQYp9Z76XZlnMihBCfF0K0jBrLGxPUe4M5Pw1CiLtmW87xEEJ8VQhxSAixVwjxeyFEToJ6c3IuJrq2QgiXeb81mM9A1exLmRghRIUQ4mkhxAHzGb/Dos5lQojeUffZPamQdSImukeEwX+Zc7FXCLE2FXImQgixZNQ13i2E6BNCfGxMndmfCynlOfEDLAOWAM8A60eVLwf2AC6gGjgC2CzO/xVwk/n3Q8BtqR7TKNm+DtyT4FgTUJBqGceR/fPAJyaoYzPnpQZwmvO1PNWyj5LvSsBu/v0A8MCrZS6SubbAvwEPmX/fBDyaarnHyFcCrDX/9gGvWIzhMuBPqZY1ibGMe48AbwSeBARwAfBCqmWe4N5qw/BvS+lcnDMrOinlQSllvcWha4FfSimDUspGoAHYOLqCEEIAlwO/MYseAa6bSXmTxZTt7cAvUi3LDLIRaJBSHpVShoBfYszbnEBK+RcpZcT8dztQnkp5zpJkru21GPc8GM/A68z7bk4gpTwppdxp/t0PHATKUivVjHEt8GNpsB3IEUKUpFqoBLwOOCKlnM7gHpPinFF041AGHB/1/wniH5J8oGfUh5lVnVRxCdAupTyc4LgE/iKEeFkIcessynU23G5uwzwshMi1OJ7MHM0Vbsb4xm3FXJyLZK7tSB3zGejFeCbmHOa26hrgBYvDFwoh9gghnhRCrJhVwZJnonvk1fQs3ETiL+CzOhf2me5gNhFC/A0otjj0GSnlY7Mtz1RJcjzvZPzV3MVSyhYhxDzgr0KIQ1LKZ6db1vEYbxzAd4DNGA/4Zoxt2JtnT7rkSGYuhBCfASLAzxI0k/K5SGeEEJnAb4GPSSn7xhzeibGFNmC+B/4DsGi2ZUyCtLhHTBuGtwB3Wxye9blIK0UnpbxiEqe1ABWj/i83y0bTibFFYDe/0VrVmXYmGo8Qwg7cAKwbp40W8/cpIcTvMbaqZvXBSXZehBDfB/5kcSiZOZpRkpiL9wPXAK+T5osIizZSPhcWJHNth+ucMO+5bIxnYs4ghHBgKLmfSSl/N/b4aMUnpdwihPi2EKJASjmn4kcmcY+k/FlIkquBnVLK9rEHUjEXausSHgduMi3LqjG+WewYXcH84HoauNEs+hdgLqwQrwAOSSlPWB0UQniFEL7hvzGMJvbPonwTMub9wvVYy/cisEgYlq9OjC2Rx2dDvmQQQrwB+CTwFimlP0GduToXyVzbxzHueTCegb8nUuapwHxf+EPgoJTyGwnqFA+/VxRCbMT47JtryjqZe+Rx4H2m9eUFQK+U8uQsi5oMCXeaUjIXqbbMma0fjA/RE0AQaAeeGnXsMxiWZ/XA1aPKtwCl5t81GAqwAfg14JoDY/oR8KExZaXAllEy7zF/6jC22VI+F2Pk/QmwD9iL8RCXjB2H+f8bMazpjsy1cZj3xHFgt/kzbKH4qpgLq2sLfBFDcQO4zXu+wXwGalIt8xj5L8bY+t47ag7eCHxo+PkAbjev+x4Mg6GLUi23xTgs75Ex4xDAg+Zc7WOUBflc+QG8GIore1RZSudCRUZRKBQKRVqjti4VCoVCkdYoRadQKBSKtEYpOoVCoVCkNUrRKRQKhSKtUYpOoVAoFGmNUnQKhUKhSGuUolMoFApFWqMUnUKhUCjSmv8Fk1DFupRpyyUAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oxxNyhv_FGKB", + "colab_type": "text" + }, + "source": [ + "# Stretch Goals (AKA how to get a 3):\n", + "\n", + "Complete the stretch goals for each section in order to get a 3 on that section.\n", + "\n", + "## Parts 1 & 2 (do all of the following): \n", + " - Comment your code well with both markdown and inline comments where appropriate\n", + " - Show your work with code and possibly LaTeX \n", + " - Justify your answers particularly well to show advanced mastery of this section\n", + "\n", + "## Part 3 (do all of the following): \n", + " - Create a Scree Plot to show the Proportion of Explained Variance of each Principal Component (more than the first two)\n", + " - If you want to include a the cumulative proportion of explained variance, you might be interested in this NumPy Function: [numpy.cumsum](https://docs.scipy.org/doc/numpy/reference/generated/numpy.cumsum.html)\n", + " - Give a top-notch explanation of eigenvalues and eigenvectors. Feel free to any materials, images, code, graphs, LaTeX, etc. to spruce up your answer.\n", + "\n", + "## Part 4 (do all of the following):\n", + "- Justify your choice of k, both visually (scatterplot) and mathematically (elbow plot)." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "oV5O6iIW9-vl", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/Copy_of_LS_DS_131_Vectors_and_Matrices.ipynb b/Copy_of_LS_DS_131_Vectors_and_Matrices.ipynb new file mode 100644 index 00000000..6d00e557 --- /dev/null +++ b/Copy_of_LS_DS_131_Vectors_and_Matrices.ipynb @@ -0,0 +1,2079 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of LS_DS_131_Vectors_and_Matrices.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8XRzC5P9s48F", + "colab_type": "text" + }, + "source": [ + "Lambda School Data Science\n", + "\n", + "*Unit 1, Sprint 3, Module 1*\n", + "\n", + "---\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "b6GcY0lvLXSi", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#Carlos Knowles" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lSw1x2fks8dO", + "colab_type": "text" + }, + "source": [ + "# Vectors and Matrices\n", + "\n", + "- Student can illustrate why we care about linear algebra in the scope of data science.\n", + "- Student can graph vectors, identify their dimensionality, calculate their length (norm), and take the dot product of two vectors.\n", + "- Student can identify the dimensionality of matrices, multiply them, identify when matrix multiplication is a legal operation, and transpose a matrix.\n", + "- Student can identify special types of square matrices including the identity matrix, as well as find the determinant and inverse of a matrix.\n", + "- Student can use NumPy to perform basic Linear Algebra operations with Python." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "M6Bw-os-tETt", + "colab_type": "text" + }, + "source": [ + "# [Why Linear Algebra?](#why-linear-algebra)\n", + "\n", + "Student can illustrate why we care about linear algebra in the scope of data science." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "U5Vt7Q_N80pJ", + "colab_type": "text" + }, + "source": [ + "## Overview\n", + "\n", + "Data Science, Machine Learning, and Artificial intelligence is all about getting computers to do things for us better, cheaper, and faster than we could do them ourselves.\n", + "\n", + "How do we do that? Computers are good at doing small repetitive tasks (like arithmetic). if we tell them what small repetitive tasks to do in the right order then sometimes all of those combined behaviors will result in something that looks like a human's behavior (or at least the decisions/output look like something a human might decide to do/create).\n", + "\n", + "\"Le\n", + "\n", + "[Le Comte de Belamy](https://obvious-art.com/le-comte-de-belamy.htm)\n", + "\n", + "The set of instructions that we give to a computer to complete certain tasks is called an **algorithm**. The better that we can organize the set of instructions, the faster that computers can do them. The method that we use to organize and store our set of instructions so that the computer can do them super fast is called a **data structure**. The practice of optimizing the organization of our data structures so that they run really fast and efficiently is called **computer science**. (This is why we will have a unit dedicated solely to computer science in a few months). Data Scientists should care how fast computers can process their sets of instructions (algorithms)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QH_6eMXO9GAn", + "colab_type": "text" + }, + "source": [ + "## Follow Along\n", + "\n", + "Here's a simple data structure, in Python it's known as a **list**. It's one of the simplest ways that we can store things (data) and maintain their order. When giving instructions to a computer, it's important that the computer knows in what order to execute them." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "V2oY39t19X-U", + "colab_type": "code", + "colab": {} + }, + "source": [ + "selfDrivingCarInstructions = [\"open door\", \n", + " \"sit on seat\", \n", + " \"put key in ignition\", \n", + " \"turn key to the right until it stops\", \n", + " \"push brake pedal\", \n", + " \"change gear to 'Drive'\", \n", + " \"release brake pedal\", \n", + " \"push gas pedal\",\n", + " '''turn wheel to navigate streets with thousands of small rules and \n", + " exeptions to rules all while avoiding collision with other \n", + " objects/humans/cars, obeying traffic laws, not running out of fuel and \n", + " getting there in a timely manner''',\n", + " \"close door\"]\n", + "\n", + "# We'll have self-driving cars next week for sure. NBD" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6eXxjBbS9Z9y", + "colab_type": "text" + }, + "source": [ + "# Maintaining the order of our sets of ordered instruction-sets\n", + "Here's another data structure we can make by putting lists inside of lists, this is called a two-dimensional list. Sometimes it is also known as a two-dimensional array or --if you put some extra methods on it-- a dataframe. As you can see things are starting to get a little bit more complicated." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "78yTEOYU9c2K", + "colab_type": "code", + "colab": {} + }, + "source": [ + "holdMyData = [\n", + " [1,2,3],\n", + " [4,5,6],\n", + " [7,8,9]\n", + "]\n", + "\n", + "# Disregard the quality of these bad instructions" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Qx4kuaV29eXE", + "colab_type": "text" + }, + "source": [ + "## Linear Algebra - organize and execute big calculations/operations really fast\n", + "\n", + "So why linear algebra? Because the mathematical principles behinds **vectors** and **matrices** (lists and 2D lists) will help us understand how we can tell computers how to do an insane number of calculations in a very short amount of time.\n", + "\n", + "Remember when we said that computers are really good at doing small and repetitive tasks very quickly?\n", + "\n", + "## I Give You... Matrix Multiplication:\n", + "\n", + "\n", + "\n", + "If you mess up any of those multiplications or additions you're up a creek.\n", + "\n", + "## I Give You... Finding the Determinant of a Matrix: (an introductory linear algebra topic)\n", + "\n", + "## 2x2 Matrix\n", + "\n", + "\n", + "Just use the formula!\n", + "\n", + "## 3x3 Matrix\n", + "\n", + "\n", + "Just calculate the determinant of 3 different 2x2 matrices and multiply them by 3 other numbers and add it all up.\n", + " \n", + "## 4x4 Matrix\n", + "\n", + "\n", + "Just calculate 3 diferent 3x3 matrix determinants which will require the calculating of 9 different 2x2 matrix determinants, multiply them all by the right numbers and add them all up. And if you mess up any of those multiplications or additions you're up a creek.\n", + "\n", + "## 5x5 Matrix! \n", + "\n", + "\n", + "## ...\n", + "\n", + "\n", + "## ...\n", + "\n", + "Just kidding, any linear algebra professor who assigns the hand calculation of a 5x5 matrix determinant (or larger) is a sadist. This is what computers were invented for! Why risk so much hand calculation in order to do something that computers **never** make a mistake at?\n", + "\n", + "By the way, when was the last time that you worked with a dataframe that was 4 rows x 4 columns or smaller?\n", + "\n", + "Quick, find the determinant of this 42837x42837 dataframe by hand!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vKQG-YvM9ihY", + "colab_type": "text" + }, + "source": [ + "### Common Applications of Linear Algebra in Data Science:\n", + "\n", + "### Vectors: Rows, Columns, lists, arrays\n", + "\n", + "### Matrices: tables, spreadsheets, dataframes\n", + "\n", + "### Linear Regression: (You might remember from the intro course)\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-MaY3bJj9mgj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "801f4ead-e4ff-4591-c24d-c1cb02b3d6ac" + }, + "source": [ + "# Linear Regression Example\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "# Read CSV\n", + "df = pd.read_csv('https://raw.githubusercontent.com/ryanleeallred/datasets/master/Ice_Cream_Sales.csv')\n", + "\n", + "# Create Column of 1s\n", + "df['Ones'] = np.ones(11)\n", + "\n", + "# Format X and Y Matrices\n", + "X = df[['Ones', 'Farenheit']].values\n", + "Y = df['Dollars'].values.reshape(-1, 1)\n", + "\n", + "# Calculate Beta Values\n", + "beta = np.matmul(np.linalg.inv(np.matmul(np.transpose(X), X)), np.matmul(np.transpose(X), Y))\n", + "\n", + "print(beta)" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[[-596.20648399]\n", + " [ 24.68849397]]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mLvWT6lj9yhn", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 295 + }, + "outputId": "3ab2179e-05ba-47bb-9532-6d14da79f5d4" + }, + "source": [ + "# Assign Beta Values to Variables\n", + "beta_0 = beta[0,0]\n", + "beta_1 = beta[1,0]\n", + "\n", + "# Plot points with line of best fit\n", + "plt.scatter(df['Farenheit'], df['Dollars'])\n", + "axes = plt.gca()\n", + "x_vals = np.array(axes.get_xlim())\n", + "y_vals = beta_0 + beta_1 * x_vals\n", + "plt.plot(x_vals, y_vals, '-', color='b')\n", + "plt.title('Ice Cream Sales Regression Line')\n", + "plt.xlabel('Farenheit')\n", + "plt.ylabel('Dollars')\n", + "plt.show()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YQPzGmQ292_k", + "colab_type": "text" + }, + "source": [ + "### Dimensionality Reduction Techniques: Principle Component Analysis (PCA) and Singular Value Decomposition (SVD)\n", + "\n", + "Take a giant dataset and distill it down to its important parts. (typically as a pre-processing step for creating visualizations or putting into other models.)\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LNys1ivi-KKJ", + "colab_type": "text" + }, + "source": [ + "### Deep Learning: Convolutional Neural Networks, (Image Recognition)\n", + "\n", + "\"Convolving\" is the process of passing a filter/kernel (small matrix) over the pixels of an image, multiplying them together, and using the result to create a new matrix. The resulting matrix will be a new image that has been modified by the filter to emphasize certain qualities of an image. This is entirely a linear algebra-based process. A convolutional neural network learns the filters that help it best identify certain aspects of images and thereby classify immages more accurately. \n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z7jkvntP-h5P", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 86 + }, + "outputId": "f4d20ee0-2a09-432a-9274-132eee0c54a3" + }, + "source": [ + "!pip install imageio" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Requirement already satisfied: imageio in /usr/local/lib/python3.6/dist-packages (2.4.1)\n", + "Requirement already satisfied: pillow in /usr/local/lib/python3.6/dist-packages (from imageio) (4.3.0)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from imageio) (1.17.4)\n", + "Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow->imageio) (0.46)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3WVBNlbp-lc7", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "outputId": "d6982c2e-1f55-47f3-e0d8-65ab7694cb6c" + }, + "source": [ + "# Convolution in action\n", + "import imageio\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import scipy.ndimage as nd\n", + "from skimage.exposure import rescale_intensity\n", + "from skimage import color\n", + "\n", + "img = imageio.imread('https://www.dropbox.com/s/dv3vtiqy439pzag/all_the_things.png?raw=1')\n", + "plt.axis('off')\n", + "plt.imshow(img);" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eqJTWxqo-oE6", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "outputId": "80a37336-4c6c-4dd9-94d7-6f05472d83af" + }, + "source": [ + "# Convert I to grayscale, so it will be MxNx1 instead of MxNx4\n", + "grayscale = color.rgb2gray(img)\n", + "plt.axis('off')\n", + "plt.imshow(grayscale, cmap=plt.cm.gray);" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RoIS6JGD-qap", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "outputId": "a5110c43-cd27-49c1-9107-abb0678f1436" + }, + "source": [ + "laplacian = np.array([[0,0,1,0,0],\n", + " [0,0,2,0,0],\n", + " [1,2,-16,2,1],\n", + " [0,0,2,0,0],\n", + " [0,0,1,0,0]])\n", + "\n", + "\n", + "laplacian_image = nd.convolve(grayscale, laplacian)\n", + "plt.axis('off')\n", + "plt.imshow(laplacian_image, cmap=plt.cm.gray);" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jLun623Y-sWC", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "outputId": "9857ad90-9a74-4b40-a1dd-6ebb166af4d3" + }, + "source": [ + "sobel_x = np.array([\n", + " [-1,0,1],\n", + " [-2,0,2],\n", + " [-1,0,1]\n", + "])\n", + "\n", + "sobel_x_image = nd.convolve(grayscale, sobel_x)\n", + "plt.axis('off')\n", + "plt.imshow(sobel_x_image, cmap=plt.cm.gray);" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUEAAADnCAYAAACAPOR2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOy9aWxc13k+/sy+cjgL9+G+iJJMSZTk\nTfIa741jI44bJA3SZmnTom1aoM2HIECB9t8GKIKmH5tPvyRAgxRIbSdOE8eKYnmTrF0ytZLivu9D\nDmff5/9BeI/eubwzHJJDcqi5DyBIImfuPffec5/zLs/7HlU6nYYCBQoUlCrUOz0ABQoUKNhJKCSo\nQIGCkoZCggoUKChpKCSoQIGCkoZCggoUKChpaHP98vvf/76SOlagQMF9gX/6p39Syf1csQQVKFBQ\n0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQV\nKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUN\nhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIEC\nBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBI\nUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQQVKFBQ0lBIUIECBSUNhQTvc6TT\n6bx+l+tzChTcz1BI8D6HSqXK+D8nO/47uc8pxKigFKCQ4H2OXESmVqtl/00EqJCgglKAQoL3ETiR\nyUFKaqlUSvw8mUyKn6tUKqRSKYUEFZQEtDs9AAWFA5EaRy6XlyOdTmf8XqPRFHZwChQUKRQSVACV\nSrWKIHMRZilCukgouH+guMMKFCgoaSgkqECBgpKGQoIKFCgoaSgkWEDIZVPXyrAqWdjdgVzxQI1G\ng0QigVQqBbVajVQqlZF5LyZIx6PIoRQSLCjoRSnlCVUqIDlSOp1GIpGAVns3x5hLnL6VyHYe6c9p\nfGq1Gmq1OoMAS5UMFRLcAqyHDOUyswp2D4xGYwaxJJNJWYIpFqjVamg0Gmi1WqjVaiQSCSQSiZ0e\n1o5CIcEtQr5urkKAuxdHjx6FyWRCIBCAx+NBOp2Gz+dDIBCAz+fbFs+A9Jy55hFZrRqNRnwuFosh\nGo1mHKNUoZBggaDVaoVLlEwmM0iw2KwBBZuHSqVCQ0MD7HY7DAYDTCYTVCoVAoEARkdHMTg4KCys\nrVzo1jo2eRpEhMlkUszPZDIpfqdSqUp2niokuEnQxOEkSGVo+SRKSnXi7XYkk0lhSQ0MDODBBx+E\nVqvF/v37MTc3hzNnzmyLO7xWAkatVkOr1UKn0yEej4vvJJNJaDQaYR2WshhcqRjZJPjEoUlP8RZa\ncWk1zkaKpTr5djt6e3tx7NgxRKNR9PX1ob+/H8899xwWFhZgsVig0+kyarK3AkSC3Nqjn5GFR/NQ\nr9cjnU4jFArBYDCI35c6FEuwgOATirsYxRggV7B5LC0twel0wu12I5VKob6+HjMzM/B4PDAYDNBq\ntdsugSIC5BYeSXYoWQNg1aJMc7cUSVEhwQIhkUggnU5Dp9OJiajValdNRCDTdVmr84uC4kUwGMTU\n1BScTqew/Kurq6HRaIR0hicjNgs5MpXOH8r+0ufJCtRoNIhGo4hEImJeSlGKBAgo7vCGwd1YEshy\nl4R+r9FohEsktQhLddLdT7h9+7YIdxgMBuzbtw8AYDKZtj3Uwa07mnPcwovH40gkEjAajRm/I5Rq\naEYhwQ2Cyx94XEan02VMRiJCAMIa5BOTfw6A0G5JV/itnqC80oFr3LbSUpVeezG/hHJjSyaT6O/v\nF/93u92oqalBPB5HfX29mBuUMMvnmHKfASAW02zf4a4uX3RpYSYCpHi1nFVZrPd+q6H4YluAbJOJ\nuypEONJ9PrIlULZqgspVFEjJqRDgQXt+/N3y4smNU3rvDAYDQqEQNBoN9Ho9gNwavHyunT5Diydl\ndKWg+cTvL30uFoshHo9Dp9NlELKiVLgLhQQLiHwmkVarFZOTVvZ8ibBQkLrsQGaWcauJiayT+yFp\nxMdvs9ng8XigUqlgsVjW/Ryz3Qu6X3LeQa5GutI6Zn6MfMvsSgEKCW4Qcm4ircK5XEiprjCRSKyS\n0mw1pNaCVqvN0DZKX55CgY7NdWuxWKyg59hOSDOq5eXlGB8fh9lsRnV1dUboY73HBFbvAUPPRE6D\nKpdsIxeYnrFGo1mTBEsRSkywwKAYkDT+x39PUKlU0Gq1GRahVMKwVaRIxyUCTKVSiMfjWd2tQoGs\nEbo+WgB2Q5Zc7nnQ/4lgwuEw9Hp9xoIm9z25kINccwMCr+/NNS+ILOPxONLptBiX1OKXu9+7JTRR\naBT/zNsF4JOV5Agkk1gLUheFSpmA1ULsQkK6u1y2RE8hIb0eekF3Uzsxum9Sd95sNsNisWB+fh4m\nkylrMoSQzernhJXtnuQiQJVKJeRaci50PscpNSiWYIFBEzdfNT5ZgwCEa6jT6bYkOSGFVNrDXz65\nuGGhzkkvKi0UtHDsVHY4n/NKx0rfo0xsWVkZampqcO3aNVRVVWVo8dZqbkBVHdL2XGt9lz5Ln6PF\ni0ripIJ9OatTgWIJbhjZ4mXS7Od6QNbBdltG3A0Dsl/bZkAuL52LW7xAcceopAsEHzeRF5cWrdcL\n4K6qnGog3zFyK34jJXHF/Ay2EgoJFgjc7VhvkoMsLy5h4C/DVrjCvHqFjk/n511GCn1esnq4xbyT\nyHZ+SuCQ1UcJLL5IEQFqNBrY7Xbo9XrMzc2hvLxcxFrl5gAlxcgipsYGayFb5pj+0LHo2Ou1/ErV\nOlRIcJPg1huByIOTzVrgn+PJCSIkILuui1tw+ZyPPsOz2XQ+Iqp8rRGpvEfu92Tx8KB9roRRoZHr\nOvh5aYw8scXvP405Go0iGo1CrVYLPWBFRQWsVitGRkZQVVUljsefET3XVColSHW9cT85kMCez7vd\nIEAvFigkuAWQZnilP5dCbsWmmI6cjnCt8+YLOr40gC5NmhQKnFzp3Fv9guZ7Dk7UdM3cEufyEn4N\n9DO+GBIJcTLilhk/bi6PIVsmWu5zvDeggvVBuWNbhFQqJUrocpU75fo+JU2o7Cmbaywnhs33HMC9\nF1SqHQSQ4RJvhBClxEDXwUMGWykOz+eeS5MIlF2VklQqlUIsFsvow0eJEpfLhUAggFgsJqw++h25\np7FYLEMXmWts+c4VmhvS/oDrPU4pQ8kObxG4G7TeZAknTP4yUQxKqifcDLg7yM9LVoW04kCK9VhZ\ndB+4673Tu7LxRrh8xzjpmJLJpCBHqY4ymUzCbrfD4/FArVbDaDRmLEhc48ctx0KA3GBpkoVjO5QG\nuxmKJVhg0IQjouIu1kZedN4fTq7+VnrufLOSHGtp1jZDVHQM7rJxIfhWud75jo0yuXJJIJ41J+tV\njmj4VpsqlSrDGsvX9d0ouCZQmm0v1WzveqGQYIEh1WvpdLq8NsORHkMOXIQtlzmWTvpsQmT+XS7+\nlR6HB/LlSEJ6XLlxUwUNZS/5eXivO65n20rwRBBPKOTKVlMig65FKi5Xqe7WCo+MjKCsrAwAxC5u\nnPgLQYDcEuWWqRw5K5ZfflBIcIvA21KtVT2wXnBXSy57yccg9/Nc4CTELRtOvPmOkf9bKtjli4XU\n/dwKIqRzUIwVuEdUcvFaIhciwHQ6nSGApv/TPdLpdJiZmYHVaoVerxf3qtBaSFospK2x+O/53/Rv\nhRCzQyHBLYT0JS+EDIRnMfkLmc3dyjcGKXceAk8CbDQemYvgtusl5W5qrsWD30+exJFaiZT8ouNt\nB/Fwy5yPSSG5jUMhwS1GIpEQ1hRw7wXbqFXAX1yu75NWG+RzDimJ8p9zq4+sWYrr5YpJSkEuOd0H\nKVFIRea5jrVR0IJBXXuyWX98XOS+y8X56Pd0XJfLhenpaYyMjMBut4tr5XKbQl0PJWj4M1mLAJXY\nYG4oJLhB5JuA4G5xoVZrKWFJs6/rsdTykWlwS4gso3yOxRMr2crk5Ny3QoNnuvm5s0GaEJLG9Hhs\nNplMwmQywefzYWFhAWVlZRmVJdLY4WbBM+ycZNeCQoTZoZDgBpHvhOZiW/7dzbwQci4vWTpAplVI\nYyDIZYb5Z3K9LDzTvVZJH52ft4WXGzMnQymBZzt+vtl26ltIZEXlaVKLLttxuMtJxMfjl/F4XFhk\nkUgEkUgkq8W/UREzT2DxahueTFoLSkwwNxQS3EJwEpK6R1sBejl4k1SpeyxnxeVrPRIRUEKA3Mps\nIPKQkqA0+UKfzRfZYnlycUx+H9YDelZU58sTUbwHYiKRgMlkwsrKCmZmZkR2WJoIyoVs95C+T/eQ\nZ5oJCrltHgoJbgPkNHFbCalOjcbA/5ZagPmAXwe5e9L4oNRVz9c1zxafXOvzHJzoeFIjWzIm33Nw\nq1RqVavVahgMBng8Hng8HpSVla2bmPK5NzzbrJBgYaGQ4DaAFP2FlsrkOh9ZbNKqDzkXKld2WXpc\n7hrqdDphFWWztOQsPTpHtnpl6eekY80FbgnzpgK5ICctIlceuGf9yY0zlUpBr9cjGAwiEAjAaDQK\nF3yzBMUz2XwOKcRXWCgkuA3gBffA1gWpswmeeWaXXCqpu5av9cUzvdRqSi4+yGU8udxh6fHlMtVS\nSL9P5MDJT1qqJiWvfK6X2oplI9JUKoWqqirY7XZMTEysspQ3S1a0gFG9Mbfwt1JTWWpQSHAboFar\nV2VHtxJyJMEtQv4C5WMB5gJvPLDeF1JqPVKsUe4aOOSSLPyYPCub7Vz5jo8TqPQYGo0GBoMBJpMJ\nS0tLGTKczUAqG+JVNQTFGiwcFBLcQkgTAGQNbkYnuB5IJS5kuVEnF/4irSdeyY9L7rHU4iNilbMS\ns8XzuFWZ69zcnaZzS/V/a8Ui8yURfj7puHhXaeoeQ893PSQltaCJbOPxuLgvW7n5ValDIcFtxla7\nxBzZLEJOSpsdB3f9pFYckdF6Ynv5WIJSl5MnLaSavq0C3Ue9Xg+TyYRQKFSQxBe3NnnzDPp/ofSG\nCu5BaaW1DeByCrJ2pPKZQp0HyL0bGYAMCc16XNlcY+UdWTjomuW0jVLwl12OUMhKIjLnbqf0eOu5\nr/l+Vup2U1v9yspK3L59W9QNr3dh4ZYtER33HLZLVVCqUO7uFkO6sksn9XYGtol8dTqdbNxprfGs\nJUuRWixyCRGuVcwnWQLcS3zwMVNJW64kSz7YyCIk59pzofRGQRYuF0Vzy13pFLM1UEhwCyG1HOhn\nO63glyuD2wwZS4v4ecxQKhSn88kRBkl7sh2fxrjZ8XLw+GE+x5RKfXQ6HcLhcEY37s08X4qtSueJ\nQnZbB8Ud3kZwF4diaDs1ufl5c7mVHOSC8lhctuSKNKNJ10pVGJRIkKurpnvE++bxhEE+Y80GOcsv\nG9GsFc9Mp9Nwu90YHx+HVquFw+HYcHiDFARkPUstXwVbB+UubzMoRkaxo51c4dfrWnHCIiKg//O/\nSTCs1+tRXV29qvMNAExPT2N5eRnhcBjRaFT2M7zqQ07ishGLS47ociGXy05Nc2OxGFQqFQwGw7rG\nIh0X1TfzGmUFWw/FEtxG0GrPY3LFRoRSyFl7vL1UMpmE0WgUhKXRaGA2m4XAl7am5G4x/VlcXBTJ\nBLPZDL1eLxsvldP8bYYk5I67kedA7nAkEgGwuT2UqfKGLwIKtgcKCe4AEomEaLu/ky4xQY4A5NxP\n+rlOp4PBYIDBYBCEEovFEA6HkUgkEAwG4fF4RHKkuro6gzRdLheqqqrEZ3p7ezE7O4vy8nI4nU6Y\nzea8217xcVGnZYotUqWHVqtFeXm5sLKWlpYQi8UQCARgNpsRj8dRVla2yjXnFi/9n54XfcZsNmNk\nZARWqxUVFRUbvu/kBpMVKD2Pgq2DQoK4Nxm3wirjx6Q4GcW49Ho9wuFwUVqDUvdUr9fDarXCYDBA\nrVbD7/djbm4OwWAQXq9XuPgOhwMqlQp6vV6QJYFij/Pz8ygrKxMSk89//vPw+Xy4du0arly5gvr6\netTX18NoNIotLvk9krOUuHCZxm0ymWCxWOByuRCJRDA+Pg6v1wun04ny8nLY7XakUilcuXJFjL2y\nsnJNS5PGQRUuwWAQBoMBRqNxw/edwiSKFbj9UEhwm0HWCa8lLkYQoWi1WpjNZpSVlUGn0yEUCmFp\naQkzMzMIh8MwGo3CndXpdKKpgtlsztANSok+EAhAq9XC5/NBpVKhoqICR48exeDgIObn52G1WlFX\nV5f3WMnK48mYhoYGaDQahEIh9PT0wOPxwGg0oqKiAhqNBjabDTabDV6vF1euXIHP54PD4VjV+zEb\nDAYDotGocPk3Ui0iJe58zqugsCgZEsxVRrWdE45cHrIKd4II83lR1Wo1bDYb7HY7bDYb5ufncfbs\nWaTTacRiMVRVVcFiscBkMgkXFMjMgOdy9Ym4EokEAoEAFhYW0NnZib/927/F7du38ctf/hKpVApO\np1NWbM1BcdZ4PC6ss0ceeQR+vx+3b9/GyZMn0dnZCZfLBYfDgUQiAa/Xi2AwiGg0iscffxz79+/H\n+++/j/Pnz+Pxxx9f8x7R/Zmfn8fAwABcLpesji8baB7wvY65lAhQiHC7ULymSIHAxcnbVbObD3iZ\n13Yjn3Oq1WqUl5ejvr4ek5OTuHPnDsbHx2E0GlFVVYXy8nKYzWYAWNVlRaobzDUGCg1Eo1GMjo7C\n6XTiyJEjcLlcGB0dRSgUyut6eKjBbrfD4XDgzp07uHjxInQ6HVwuF5xOZ8b3otEolpaWMD09jSNH\njuD555/H9PQ0otHomvOEzheLxYTLvpEFjTdopXtSLHO0VHBfkyC1V+c7dPG/8yHFzf4+GxHQOPR6\n/aoAfL7H3kqk02nRkCCVSqG8vBwtLS0IBoMYHx9HKBRCNBrNeHGlri8P7PPefLxkj6BSqeD3+/HJ\nJ58gFArhm9/8piBeubFxUNZdr9ejrq4Ojz32GPr7+/Hb3/4W165dw0MPPSSSLTw+S9bq9PQ0xsfH\n8cQTT+Dw4cO4fPkygsFgRuhC7vxmsxl+vz/jPuQL6jbD+xQqwuidwX1NgkQ0PFDPdW5cnJpND7bW\nhMz1ezkSI6uFxqdSqUQtL7A66L9T1qtKpcLMzAyuXr2KRCIBm82GZ599Fk888QS6u7sxMzODgYEB\njI6OZmQy6Z7z8QP3torM9m+67mAwiN7eXjz44IOwWq2Ynp4W3W9MJhOMRuOq+2E0GmG1WpFOp2Gx\nWDAxMYGrV69idHQUx44dg9VqFRl5Xm1iNBoF0V+/fh1Xr17FN77xDQwNDWFiYiIjzicHh8OB0dFR\n9PX1oba2Fnq9Pq97S9dKcUxps12FBLcX9z0J0ktJnZCB7F1IgPyaVW6GlOS+yzfnkZNl7ASI0MLh\nMCKRiMgCOxwOtLe3Y//+/aipqcHw8DACgYD4XraqDjkrTJo51+v10Ov10Gq1CAQCqK+vh8vlgk6n\ng9FoXNU0gZ+TYmterxfDw8Pwer0wGo2oqanJIFxe8dLS0oLp6Wnx3fn5eTQ1NQEAPB7PqmuQu0e0\nwRJpJfO9t7ztl0J6O4v7MjEifbmk9Z70GZ4FpNgU/Y430pRaZ4WatETSvA0+t6J28uWIRqPi31TM\nv7i4iKWlJZhMJnR2duLRRx+FwWDAwMAAzGYzampqUF5eLus+couQRNFmsxlWqxWLi4sIhUIoKytD\nLBZDIpHA6dOn0dHRgWQyCZ/Ph0AgAIPBgEgkIqQ6hEgkgqWlJRw5cgR2ux19fX24c+cO2tvbYTQa\nxT2OxWJCtpNMJtHd3Y0f/vCHqKioEAkai8UiEh682QMHPRej0YiVlRVxXfmC7x0srcCRnkPB1uO+\nJEE5zR9VMOj1+lU7hvE2ULwDMz+W9Pj5jkMOfGz0olEhPpB9W8zthjTDS1ZUMpnErVu3YLFY8Pjj\nj+PAgQPo7+9HT08PGhsbYbfbBdGl02nYbDYYjUZoNBoEg0GYzWYkEgl4PB4sLS1hbm5OxOympqag\n0WjwwgsvYHZ2FgDE93Np8SoqKmC321FbW4uJiQkhnJbbmpIsx3feeQePP/64GBuVv0mF4tnuv8vl\nwvDwcNbzZLunkUhEhEGKpXKolHFfkiAgr7niLYmAe0F6KfhLQFlA6SSVm7T5SBukLwofU7FlBeVc\nW24d+Xw+zM/Po76+HmVlZZibm0MoFBKZUrvdjrKyMrjdbiSTSXi9XoRCIeFCTk1NwWq1IhqNwmKx\nIJVKwWazQavVYmFhAS6XC1qtVsTayJ3NNtZAIICysjJhYfr9fiSTSSHhIUKn/Yd9Ph/Ky8tXlasl\nEolV8b1sHgEdC1ibyPjx16ozVmQy24f7lgQ5yMUkK4biMDQRSezKJxxNWGkLqLVkEPnUo0o/Q5nN\nYiRCKaSLy8zMDPx+P2w2G770pS/hzp07mJ2dRX9/P8rKyuBwONDb24u5uTnEYjGYzWaYTCbodDrY\nbDZRJmexWBCNRlFeXg4AmJubQ3V1dca51yoxjEajwmJsaGjA6dOnMT09jfb29oyyOg7eraayshJz\nc3Pw+/04cuRIxrPgz52y0RaLRQiw6TlKj09zgGsClcqQ4kJJkCAHWTE0+dXqu/vGxmKxVXFCAk1i\nLquRilrlLMV8QRapXq9ftf9HsbtJarUagUAA4XAYFosFXV1dqK6uFm5ub28vamtrkUqlUFtbm0E6\ner0eqVRqXUkFIPs98Xg8sFgsqKurg9vthtFoxKVLl9DS0iK0fFLQwrhv3z4cPXoUP/7xj1FWVoa6\nujqkUikYDAYRE5We12q1YmRkBJWVlaJSJtt4uTicXHq5RZePS8H2oGSXI4r78Qafa2n1uPCaSy2y\nZZTXM5F5gmQ3gRYIp9MJi8Ui5CXz8/NYWFgQ1qDdbhcSJb6A8K0H8r32bPc1FAqJKhODwYCmpiaR\nNMmWuKCFb8+ePTCZTPB6vaKcj6pQ5M5H4yfpzVrj5fNFIbjiQslZggSy6MgKMxgMImAudfm4BSC1\nCjn4Z+UsBzmQZUquIrVm4hKeYgC5gHLXtX//fnR1deGnP/0pzp49i7a2NtTW1sJoNMJsNmdY3RTT\nI/LhMUY5jaS0iiKbhUxx3JGREVRUVMDhcODQoUOoqKhAT08PHnjgAdjtdphMJvE9ylB3dnZienoa\n//M//yMyyteuXUM6nUZbW9uqc6VSKRFzpG03AcjGjmm+UOyQy7TkriPbzxRsHXaX2VFASCc1kClz\n4G6v3ITk8gY6xkaqPuSqH7JVKGw3ssUoicCorVZNTQ18Ph8uXLgAu90uWmJZLJaMxYNierxagyeK\npBIlnqzgG70Dq5M2VOo2PDyM6elpkaxxu91wuVyYn5/H5OSkICPqYFNXVweDwYB3330XZ8+ehclk\nwlNPPYX29nYMDw9nnIvPA5vNhqWlJQCAyWQS45YDudx03mLQgSq4h5K1BAH57KfRaEQkEhFBbjmd\nGP88gWeccxXSy1kK9DM6F68gkX5mu0GWjMFggNlsRjAYFD0DE4kEHn74YfT29uK9995DIpFAV1cX\ndDrdqrFyMgTuXmMkEoFWqxUlZHq9Hj6fTySJTCaTaLllNBoxPz+PlZUVQc5cdD0wMAAAmJqaQnV1\nNfbt24enn34a4+PjMJvN8Hg88Pv9WF5eRkVFBcrKygDc7XD99ttvw+v14oEHHsDy8jKOHz+Ob3/7\n2/jzP/9zjI6Oorm5OaMqhuK3Xq8XOp0OFoslg+SkoPI4rVab1zNUiHF7UdIkyMFdMq4lJKwle+Eu\nslxDzFxZY/o3xZ+oRRPPRvPY5XaAmpJaLBYcOnQIkUgEt27dwtLSkugtqNfrMTMzg9/85je4c+cO\nvvCFL2R0yMkFrtGkEEQ6nYbL5YLdbofZbMb09DRSqRQikQg+/vhjRCIRPPvss9BoNPjFL36BL3/5\ny9BqtTh58iT+5E/+BC6XC9/73vdw5coVJJNJ+P1+mEwmHDlyBKOjo4hGo/B6vfD5fFhZWcGtW7dE\nEmTv3r1CUH3mzBkcPXoUf/qnf4qf/vSnSKVSaG1tzYj9mkwm+P1+0V+RW6kcXBeobKBenChZdzgb\n+IqeT0xOzp2VxrHydWfJBZe+MDuVLNFqtaivrxeW1sDAAObm5hCJRGAymVBRUQGn04mmpibU1dVh\ncnIy71pnbhmS+1tRUYHq6mo4nU4MDg7i5s2bQod48+ZNcXy1Wg2r1YpwOAyfzwebzQaNRoOGhgYc\nPnwYiUQCs7OzmJubw+TkJObm5mCxWGC32wHcrU8OBAJoaGhAQ0MDXC4XgHsLzfLyMoaGhvDoo48i\nFothdHQ0Y+xUo+zxeIQlKP09gZJviii6eLFrLUFpne1mJhbFuKQZYyqvIn1XNlLkwX0iMCIDngXN\nN0lCdc5UXwpsPxHqdDo0NjaisbER3/ve97CysoJnn30WVqsVWq0WXq8XKysrcDqd+Pu//3t4PB78\n9V//NfR6PRobG4Vejrv65PZS1lWn00Gr1WLPnj2w2+2Ym5vDp59+Co1Gg9OnT2P//v3QaDRobW1F\nIpFAPB6Hx+OByWRCe3s7QqEQdDodzGaziBnu27cParUaf/jDH0TLe+pEQ2MhyY5arc7ohchF8iMj\nIzh48CBee+01/OpXv8LS0pIorwPuNlRdWFiA2WyGzWbLuHc88UIxyN2W9S8l7Lonw3vVUcaS6/bo\nZ+sBD9Zz641kG/RCZ6sjzSaIzpY8kdakZqtakVZobBeSySQefvhhPPzww/je974Hp9OJF198UWR6\nOaGvrKzgD3/4AxKJBP793/8dH330Ea5fv75KWE4uIy0qTqcTTzzxBA4ePIiZmRn86le/wokTJzAw\nMIBUKoWvfOUrsNvt4hm0t7dDpVKhqakJR48exfLyMiwWC6qqqkS53TvvvIOFhQU4nU488MADOH36\nNObn51d17aFnKr0WHpNNJBI4e/Ysvv71r+PrX/86PvjgA0xOTor9SiwWCxYXF8XOeqQ04CC1AY8F\nKlZg8WHXkSBwjwjJZeSTOc8MbNoAACAASURBVFuWdr2QxveyFbqvBf5dHliXuo3ZSum286XhpFVX\nVwe/34/+/n60t7fDZDJluHSUHU4mkwgEAhgYGMDBgweh1WoxNjYGABnPhD6r1WphMBiwb98++P1+\nTE1N4aOPPsKHH34Ih8OB5uZmmM1mHDlyRHxndHQUTU1N6O7uhsfjEZ2cfT4fZmdnYbfbMTMzg4WF\nBXHvampq4PF4MD4+vu5kBN130gweOXIEXq9X1DLb7XZYrVZR88y/R8+N3yt+jo3MIQVbi11FgkR2\nWq0Wx44dQ29vL0ZGRsSWh8C9GMxGIHVZuW6QMpYbPTYnQ2lPQyni8ThisZhw8fKNs20EdFy+AZTR\naER5eTl+//vfi5b0FotFdHih73ELam5uDgBw7NgxzM3NIRwOi3tFFSGVlZU4evQoDh06hIGBAXz/\n+9/HxYsX4XA44HK54HK50NraiqamJtHBWqVS4dNPP4XL5YLb7YbP58PMzIzQdVLnaXruNK6Kigq0\ntLTg0qVLolIj3wWFrjEYDGJ4eBj79+9HS0sL+vv7RVs24G73GpoXPI5L56EN5rnUR0HxYVc9GSIO\nk8mEPXv2QKvVYmVlBUtLSwgEAhndgAsJ7iZtNvYIZLrKnOD43+Tmb7UbJU1QAPcI8fbt23C73Sgv\nL0dHRwfGxsZEF2V+n8li83q9aGhoWJUMMJvNqK6uRk1NDbxeL27evImhoSGEQiGUl5fjwQcfxB/9\n0R8hGAyivb0dbrcbN27cQDgczpAe0d+8yoTHUaUueEtLC3Q6Hebn57Nmb+XAlQLj4+Pw+Xw4dOiQ\naLel1WozdsKTWndk/dJ4cikDFOw8dhUJptNpYR2RILe+vh4tLS1IJBKIRqM4ffo0Ll++LD7Pv7tR\nUIKCYkly7mw+kGaNAYjYFI8tUv0wb/yw1S+O1IpJJpNCc0d7dHi9XmEl8d6HVEkSDodRXl6eUR/8\nwAMPoK6uDjqdDjMzM/h//+//4T//8z9htVrx6quvwmQy4cknn8RXvvIVGI1GjI+P4/r16xgZGVmV\njCIC4W4nb9vPySidTqO1tRXPP/88Pvzww3W1wOeVH1NTU7h48SK++c1v4tixYxgaGhKlgENDQ3A4\nHOL5STtqU4KtlElvN7j+u4oENRoNHnvsMezduxe/+93vsLy8jBMnTggt2wsvvIDu7m6xyxhvnb/Z\nKox4PC5iWjSx5SyL9chDsoEH2tcrs8kH2apAuBWl0Whw+PBh9Pf3Y25uDqdOnUJ3d7fo8sLjskRM\nlZWVGBsbg0qlwiOPPILHH38cZ8+exa9//WucPHkSNpsNDz/8MMrLy2EymfDKK6+gu7sbvb29+PDD\nD4UgOhQKZU02AZn7g0i1nFKrq7GxUWwGn68lyPc/icfjmJiYgNvtxuuvv47BwUGhDVxaWoLD4RDf\nI9KjBZnXFHMvIJ9nme8iu5Mkk+vcPFmZ6/PFQJK7igTT6TSam5vR2tqKwcFBsQKPjY0hHA7DYDDg\n2LFjOHr0KMbGxhAKhWTdj43eeJ6w2Erwl3m7MsMU6+JueFdXF2ZnZ5FIJGQbBXD3mcrQxsfHYbFY\n0NHRIUTODocD9fX18Hq9ePbZZ7Fnzx6k02nReWVoaAiTk5MFva/8GdfU1GBqako01l0vEokE/H4/\nWltb4fV6RbcfbpFKtYFSMXw24fxuxloFBNLPFAPhyWHXkaDBYMDk5CSmpqZgNpvx0EMPQa/XY25u\nDpcvX0ZDQwP+7M/+DA8++CDOnTuHvr4+YVlwMXK+4Fk+CrzT5jhkjUjjQYW4TmkmcatfHLJ+KJY1\nOTmJRx55BDU1NRgYGEA8Hl/VbZn+kG5veHgYU1NT+MpXvoLp6WmcOHECPp8PNTU1qK2tRWNjI/R6\nPR599FGk02n87ne/w61bt4SVXch4LieiJ554AufPnxeldRs51uLiorAqXS4XxsfHReNVLnAn61Sa\nDNkIAaw3q11M4J4ChRcozFNsZFg0JJhrwtCNJGX+7du3cenSJVRWVqKrq0tsWxmPx/H+++/jxo0b\neOWVV/D5z38eiUQCvb29CAaDWdsi5QOu76P6YC4ILiS222qg8fPytU8++QTj4+P4zne+g8nJSZw+\nfVr0XOQCbrPZjCeffBKtra34j//4D3z3u99Fd3c3fvKTn6C3txddXV34zGc+g2eeeQZTU1M4e/Zs\nRphCr9cLLV0hrV6yagHA6XQiEong/PnzGz4eWX4VFRXw+/2imSqP+XHrPd92+9lQrOSWDfT+UsKP\nDAR6X/jGUkBxWYVFQ4ImkwlWqxXAPfeDYj9WqxVlZWUoKyvD5OSk0H7RS8PJKRaLYWZmBisrK3jw\nwQfxyCOPQKVSYXJyEsvLy+Kz680UktUjbay6VQ91pyYJXaPf78f4+DgaGxuxb98+UU4WDocFaVmt\nVjidTvj9fly5cgU6nQ7V1dWYmprCjRs3EAgE0NraCrfbjbKyMtF1hVxv6b0tNLg1aLVaEQgEMip4\n+N9rwe/3IxaLoaamBoFAIMNq5dfBO5cX8pqKiTSk4ATIq64I/H3ZLs9mPSiKsjmNRoP6+nq0trbi\nzTffhM1mw5UrV/DII4/AYDCguroa6XQafX19GB0dxcWLF9He3g7gXtcWurmUve3v70cgEEBHRwf2\n79+PX/7yl7h58yaam5vR1NQk+vflC/7QyJKhzd25VKNQD3crJ4n02HKWDAAsLi7i4sWL+OIXvwiP\nx4OrV6+KWl2n0wmbzYapqSm88cYbSKfT+MEPfoCf//znuHz5smhK4Ha7EQqFxAJlMBgyMqmUbc62\nd8hmwOuvH374Ybz//vsZY6AFMZ9Y5PT0NBYWFnDgwAFEo1FMTk4KS5DmIOlKSUjO48eFkFbJEUgh\nJTc8vLPWMbmly9UTBDJK6FjSbQeKCUUxMur4UVFRgatXr6KtrQ2vvfYaUqm7m+f87//+L8rKypBK\npdDR0YHDhw/DarWKyQesnmTpdBrj4+OYnp7G3r178Rd/8Rd46623cOHCBbhcrqy7luULlUol2j9p\nNBqxU9z9UiyvVqtFJ5sLFy7AYrFg7969olHC22+/DZvNBpPJhNbWVnR1dSGZTOLUqVOIx+P49re/\njebmZszPz+PcuXPw+XyrXoythPSl3LdvH3p7ezE+Po6Ojg5Rv5zPy6lWq7GwsIC5uTl0d3djYWEB\n/f39IjNM1jOXNG1kvHLfk7qQW3nf5BZyXiDAQwz0eW758p9zK3wrPaZCoGjcYZ/PB6PRCLvdjgsX\nLiCZTMLhcMBsNmNpaQnJZBKVlZUA7ro20sSBFPQQkskkZmdn4XA40N3dDY1Gg9nZWQSDwQ0/EN7P\nDsisBtnuOt+tAncX4/E4VlZWsLy8jKqqKrjdbty6dQvLy8twuVxC8hKLxbC4uIja2lo0NDRg7969\nWF5exsLCAgKBgHiJNhMr2yj0ej0aGhowPT29oe9TdUpVVRUCgQCWl5czyjYB+Yxovsj2HanVt5X3\nTc4ilrb/4glCPtelMX0yBrjFWIyuMFAkJKjRaBAKhXDhwgV85zvfwdGjR/Hzn/8cY2NjCAaDePTR\nR9He3g6LxbIqACsH7j5oNBosLi7i/PnzaGxsxLe+9S309fXhgw8+2LALxmMeXD5CFSXF+rDXA16p\nQdcUCoUQDoexb98+LCwsiF3miCjtdjuqq6vh9XoRjUaRSCTE9prcZdxIk4uNjJ9CFvT3wYMHRdt8\nHk9eC/TS+/1+NDc3Y3JyEmNjY+LaeeXPZmOBuVzzWCyWdZvYQoG/V9w9Jt0qj40Dqw0ASp7Ru8AX\nhmJ9H3aMBKUiSpVKhdHRUVRXV+Oll17CyMgIgsEgQqEQjEZjxk2V3lwp5KyxmZkZjIyMoKurC83N\nzYhEIlheXs4gwo2stJwQaeUrRhnAeiHX5YZkDiQYpxI2jUYDv98PrVaLhx56CNXV1Zibm8OdO3fE\ndqb8mNtZR8sXJL1ej3A4LF7c9RJKKnV39zlaDPjewVIXkM6ZL3hGNRvofvPPczdzM/NOWrUEZNbO\nS69Lqovk+zpzL006nmIkwh2JCUotAZVKBYfDgbq6Opw+fRo1NTVQqe528XA6nWJy8JhEPvEXnq1L\nJpMYGxtDVVUVvvWtb+H69et466234HA48Nhjj4k60FzWZS7CpReL2jBxy2C3W4b8GoLBIMLhMPbs\n2YPJyUmR6fV6vTh79iy++tWvYnx8HHfu3MHMzIx4bnRfNtOEYiPj5tUfdA0mk0ksrnzz9FwglQJt\nK8ATIMA9EpTbWoDAS/w4pK4leTC8KQQA0ayBzleIxYS7qyQh4/ugrOWmS8fOk0K7Ree4I5ag9CXQ\naDSoqKhAa2srrl69iqmpKXR3d2NgYEAEuKWr7EbPefXqVUSjUTzxxBP46le/ipaWFvzmN7+BSqVC\nNBrNeYxcq2wymczYUWyzzRaKCVxWMjY2Bo/Hg5dffhlmsxlzc3PipR0YGMDNmzdhNBpx5MgRtLa2\nruqwspOgzjN+v18kRvIhZLVajfr6enR1deHatWtYXl7G8vKy6FTNEwc8GcD/5laRtMZYCu5uyrmd\nPIvPySpfl5MWawoVEKlzVzfXcfg1kScltUx309wvipggcM/VGhoagkajQW1trahTBQp3U6k/3eTk\nJA4ePIjjx4/D5/PB5/MV5PhyEoPdNCHWgt/vx+LiIg4cOCASDdSdWaVSYWZmBkNDQzCbzWhvbxdZ\n/WIID3CdJ3BPHL4WUqkU3G43bDYbPB4PotEoQqGQ2GWOji3XNkuqZZVmrdc6LxemZ7um9YDvsc3H\nJHcsuWNLK6ikn9+Nc33HSJDfLHKTgsEgbt++jVu3bqGurg6dnZ3CpdlsvIOQSqWwsrKC3t5ejI6O\norOzE3/3d3+H3/72txgdHc1wufn58n3AFEfh2THeP3A3gq6dpEDDw8Po7u7Gs88+i97e3ozrisfj\n8Hq9uHjxIsbHx/HQQw+hrKysKHRi3ErLZ9N0gk6nw4EDBzA1NYVAICDKv7h1K+cayz3vfK0sSixx\n60ouXCP9v9w5aR7SeGmO8iqObBIWKWmTx0PvJJ/f0kz2bkFRWII8nhKLxRAMBtcsQl/v8aXHUalU\nGB8fx5kzZ/Daa68hHo/jzJkzYoLwcRHIhQDkJ4vcNfFg9m5cJTnS6btND+x2O/x+PxwOByYnJ8WW\nkvxzoVAIfX19GBwcRFtbG9ra2lBdXS3iwTtBihqNBtXV1WLDJhprNpCL53K5EI/H0dPTA7PZDIvF\nApvNliGzknu2Ur3dWqCwD5XocYLhkCYl5M5JpCd1XaXt2XLNSU6Q1B1Hzv3d7fO6KEiQYikGgwHx\neByLi4urJk2hbrQ0ZkMTubW1VQS9yb3jY6CHzoPG613tdtPqKAeybqn7C4CMzixyiaDZ2VksLS0h\nnb7bAYiqNXbqxXG73ZiamhL/lyMnbtFpNBqUlZVheXkZs7OzMBgMMJlMMJlMiEQiBXX1uRwlV5Iu\nH/BsM29OsdZY5RJ5JI8hw4SPKx99Y7FjRyUynEyWlpZQV1cHi8WC69evZ3x2rdVqs+jp6cE//uM/\norGxUdQl85UYyCwDkvYUzOXicOnCbpoY2ZBIJODxeIT42Gw2CyLkQXWK8dKWlf39/fB6vXjmmWfQ\n2Ni45TrBbKCtOmmM+TwTksWEQiGkUimxb7Hdbs/pSuYDLichHSBvtEufkX5HCqnLS24rt+byXXyk\nREeuudT1lcpzOHbTgr+jliB/yB6PBx6PB//wD/+A1tZWnD9/Pq8buRlioVR+b28vjh8/jn/+53/G\n7373O+ESU/cL4N5qyN0BPlmzxSzvB3eBQK7swsICBgcH0djYiK997Ws4ceIEhoeHhfXMrW0e5hgd\nHcXY2JjQam43eJkX3yskF8gVJLczHA6jvr4eWq1WkClhM3FrkqdIiwDWmjt8QSaLj4dxcs3NbJB2\ngCFwo4DP690+v4vCHQbuTqAbN27g6aefxtNPP43e3l4Amdm1rYBKdbctfCgUwsGDB6FWq8U+Ejwo\nzGUJ0sJwLmng1yM9z25aHeXA400TExPwer148MEHEQgEMDg4mJFxlCOHVCqF0dFRzM7Ooq2tTXRo\nXk/GNF9wWQ8fPxFfrj1HpLE8o9GIcDgsLCKXy4WKigosLy9nfG49ZMCvmQug12tV8s/n8kpyeSr8\nGmg8PLmTqzrrfkBRZIfJgujr60MwGMTXvvY1pNPpjH0hSGwLFG7vEFrlUqkUTp48KQr/33nnnQzS\ny/ZdihmRQJZP7N2ill8PuFWwtLSEK1eu4MiRIzh27BjGx8exsrIiuyDwPoVerxe3bt3CnTt38MUv\nflHsJ7wV94Y/D5L2VFZWiueW7dnyl572GZ6enobH44FarUZ1dTU6OztXbee53mugJhWRSGRVEiSb\ny8tj02q1OqMhLZfpcOQiQLmkC6kbuGWay/WVO8dumutFQe9cZT4wMACNRoMjR46gr68v46XaCkuK\ngv0ejwczMzN48MEHMTs7u6pFlxz4hOD1k/f7yknX6PV6kUwm0dXVhcbGRkxMTOQMwBMpxeNxzM3N\nwWq1il0DCx0jJNKl/VooU33gwIGMLKfcOGmBS6fTIgkSCAQyiIGaq5LMJNuxco2Ph1bWWgg4EfEG\nBrl0frkgN1ZpSzi5Me0mcssXRfOmJpNJGI1GDA8P4/e//z3+9V//FR9//DEuX74MnU6HSCQiJnQh\nkEqlMroZJ5NJTE5OoqmpCalUCteuXcuQt2QbM31Gp9NBr9dniEjvxwlDMSgKlF+9ehUvvvgiXn/9\ndVy7dg3RaFTWwiDyowUikUjgjTfewOLiIj7zmc9Ar9fnrdvLB0TUVA45PDyM8fFxYXlK45fS75K1\n2NjYiNraWoyMjAiyjsViaGtrg8/nExni9bTRogWS7odOp8u6aFLJIXBvvvE5tlGZCoUGSBdLFiUd\nU2oBSr97P6EoSJBuaiwWg16vx8DAANxuNz73uc/hwoULOfu+beaBkJum1WoRi8UwOTmJmZkZ/Nu/\n/RtOnjwpfieFVDzKY4QkH9mu+tjthjRRNDExAaPRiGeeeQZarRYLCwuyVh2RErlbKpVKNG09fPgw\nurq6Cn7PaMGMRCJobW2F3W7HzMwMAAhCky6q/OVXq9VoaGgQGXHa3iEWi0Gn08HtdmN8fDzDgsoH\npAWkcfAEDc/y8vvF51ghSIiSH7FYTFi4PMnC3d/7Kbknh6IgQT4R6SXr7e3Fq6++CoPBgGAwuKqh\nI7BazLwRkAtLMcf+/n68+uqrORMZcuek1ZkmsfS6dntShEAvJV8IlpaWYLPZ0NTUJJomrJUoAu7d\ne71eD6vVWtAQAj+fRqNBf38/ZmZm0NTUtOr8/PPcClSr7zZNWFhYEMcB7s7ReDwukiNrNWGQXjvf\nQF6ahKFxybm7+Rxb7ufZKlfIgs1l9ZUCioIEeWCXJuW5c+fw0ksv4bvf/S5+/etf4+LFixlJByCz\n6+1GQKs9n2w+nw/V1dXQ6/WIRCI5X0xpcocsAp1OJ+vacc3gboU0VqTRaHDlyhXMz8/jy1/+Mqam\nptDT05NxndziontOLzn1kqyqqir4bnM0vnA4DLfbjQMHDmByclK0wOJ6OCkZqVQqMaZPP/0UVqsV\nBoNBjDcUCqGzsxOzs7NYXFwEkD1pQNpSsgApVsmbsnJrkFt+cvdc7vj5gGd/Y7HYKu0fYTPJnt2I\noiBBOSQSCZw+fRqvv/46urq6cOfOHSwsLIiJS9m9QnYn4fq2eDwu9iBZD2lxS0Kv12do0+7HCZVO\np7GysoJPPvkEzz33HF599VVotVp89NFH8Pl8iMfjIobIQdYOudQtLS0FjQkCd2t+U6kUTpw4gZqa\nGjz++ONob29HIBAQY5BbRCmscfjwYXz88ceiXM5gMAiiDofDaGxsRDgcFvKgbM+YYqB0D0hfSvOY\nYpRS+VW+wuZscTsiPR77o8WaVA33S+nbZlC0JAgAt27dwujoKL7whS+goqICk5OTALbOtaQVmqxC\n3hpJ+rls4PXCXLKwm62/taBSqURjgfr6ejQ3N2NiYgJzc3MAsksxKCkArG7jvlmQ2x4MBrGysoKq\nqiokEgnYbLYMD0Du+Wq1WlgsFpSVlWF8fFwI47llRmJru92OlZWVvCx8Tkz8ZzzRwX9WCNCxacHJ\npV7Y7ZUfG0XRkmAymUQgEMBvf/tbvPDCC/jhD3+IsbExDA0NQaVS5d0Mcz1QqVR4/vnn8aMf/QgA\nxNaKcjKBtSY9uTQGg0G4X/fjhNJqtcLaO3nyJJ566ik8+uijsFgsOHfunLCC5BJM9BxbW1szJCOF\nQCKRwPvvv487d+7gtddew+c+9zl0dHTgZz/7GWw2W06RtkajQVNTk9A+UrySu+vJZBLRaBStra0I\nBAKr9mTmoJ+TC0yEykMoUrd8s2ETHjqijDYX+Mshm0V4P85bjqIlQQCiGuPWrVtobGzE8ePH0dfX\nh+np6XWb73y1zaXram5uxjvvvJNTtpDvpKCJTHKE+9UiJBeOrCOj0YjKykpEIhHRqFZOOE5EpNPp\nEI1GN9RZJlsCIBgMYnp6GmazGa+88gri8TiCwSAGBwcz4oU8Tkb/ttlsqK6uxvj4uNjaQc5tTiQS\nsNvtom1/vvHpfD5XCPeU6wk3WvlRCq5y0ZIgBZF1Oh0++eQTnDp1Cn/zN3+DPXv24Ny5c4II89kn\ngqf9uWXHX0Rqs3Tp0iV4PB688sorshlp+l6+k4MHoKmDivQ6dwv4/in0MsViMbjdbnR0dKC5uRk/\n/vGPMTAwgIceegg1NTUYGRmRTWBJFQF6vR4TExNQq9WorKzM0KrROakHoJyInWc74/E45ufnUV5e\njr1796K7uxs/+tGP8OGHHwIAuru7M9qlAZldgh577DGx/SslQ/iYyZoi6U1bWxuGhoYQDAazxuek\nSbS15s9myIfHICk+LW3KwM9T6ihaEuSTP5VKYXh4GLdu3cJ3v/tdvPzyy7h69aqYjNLMnlzVAr20\ner1eiFTpBTCZTHj44YfR3NyMv/qrv8Krr76Ktra2VcdYL+j4vJ0R3/ibsBusQ7L0qESQ4mFdXV2w\nWCyYnJzET37yE8zPz8Nut+Pzn/88nnjiCQwODq5qS0bH452dI5EI3nzzTRgMBhw6dAgHDx4U7e/J\nWtTr9Rm6NiAzwZJMJvHhhx/i1q1bcLlcePnll3H8+HFcuXIFZ86cQSwWw7Fjx2C1WkVTB94KLJFI\noKqqCmVlZTh//rzQzclZsQAQCoVQUVGB9vZ2zM7OIhQK5fUsC0k8XClBf6LRaEYWWq4hQylYePmi\naEmQHhDXbE1MTKCurg4HDhyAWq0WzVe5gJc/XB5foeA2uWxarRYVFRUwmUywWCzQarWYnp5GJBLJ\n6Oi7WYLisR0uSuXHLubJKF1ISO7hdDpRW1uLZDKJS5cuoaenBxqNBm63G5FIBC6XC0eOHIHX60Uk\nEslKJCRU12q1KCsrw9jYGMbGxlBRUSGqTxwOh3CV6f7xe5pO323btbS0BJ/PB6vViqqqKnR2dsLt\nduP69euwWq2w2WyCTJPJJPR6fYbAXavVoq6uDhMTExgaGhIbG0mtWKmQ2G63IxKJIBAIbLsEiidb\nuDW82X6EpQTNv/zLv2T95ccff5z9l1sMLlchdzUajcJsNmPv3r2IRqOYnJxEPB7HxMQEnE6ncF/p\n4ZvNZhF8b2pqQkdHB65cuYK6ujrs2bMH0WhUbKQ9OTkJtfpuF+ETJ07AYrGIfnGbyVxygqMXhCbo\nRus+txu0sOh0OlRXV6Ourg5arRZjY2M4efIkYrEYKioq0NDQAKPRiEgkgoqKCuzduxcXL17E3Nwc\n7HY7jEZjxjGBu893eXkZfr8f+/fvR39/v+jyHY1G4XA4cPDgQahUKgwODqKqqgparRZLS0swm82I\nRqPw+XxYXFyEVqtFe3s7ampq0NzcjKNHj6K/vx//9V//haNHj6KhoUEsPvQ3fxZ6vR4vvPAC3nzz\nTWHRkoxGurDSv6np6unTp5FO323OK73GrQaNnyxnua7S2ZJApYQnn3zy/5P7edGSYLZUPe0ffODA\nAZjNZlitVuEm8ZibRqOB1WoFALH5dzgcFpq1mZkZzMzMIBaLwWg0Cjfa7XYjlUrh9OnTcLvdMBgM\nMBqNGZ1QgPVNcCkR0s+4lbGTJChn9XJZC93njo4OkVw4efIkFhYW0NTUBLfbDbPZLK5Hp9PB4/Gg\nuroadrsd7777LrxeL/bs2SNcanoWyWQSi4uLGBkZgU6nw7PPPouWlhYMDQ3BZDLBaDQiFAphenoa\nPp8PRqMRy8vLwiI1GAzQarUwGo1IJpM4dOgQnE4nzGYzfv/73+Pdd9+FyWTCoUOHVrnQHGQF1tXV\n4b333oPBYIDVal0VQyZQfFmtvttqa2JiAvPz8+jo6IDBYMgg2q16tjRnpdKXbFKcYl5otwPZSHBX\nLQ0U71hZWRE1m3q9Hnv37hUuLcUQk8kk/H6/eNkCgQAWFhZQUVEBo9EIn88HlUoldgzjQfUDBw6g\nra0NfX19WFxcFBOMLIJCusjFMjF5goBDr9fD5XLB7XYjEAjg008/RW9vL2w2G2pra2Gz2VYdizKx\nw8PD6Orqgt1ux9TUlNiInRJFQOb1r6ysiM8dPXoUTqcTFosF0WgUyWQSTqdTWM/UrILcWgI9w+Hh\nYVy5cgVerxcdHR0Z7jQHtwJramowOTkprN58ng3Nm+rqaiFF4fNkq58v34Ss1MvfNoqitQTlwF1j\nr9crXoKlpSWR2eN6KKm7mUqlYLfb8eSTT4qONQAy+gEmEgkYDAZ0dXWhp6cHt2/fRktLi8iu5eo+\nki+IqLksYyfBqwboGsn6a29vRyQSQV9fH95//30YjUZUVVWhrq5OWNDSY9F1LSws4KGHHoLZbBbl\nZXV1dQDkLROVSoXl5WVMT08LbWFdXR1qamrEokXJJersvLKyIkrjbDab+Nn4+DgsFgva2trgcrky\nzsFB8+ORRx5BZ2cnKaS/OwAAHLtJREFU3n77baTTaVit1jUz91wCZTKZMDExAYfDIXSFRIaFJiU6\nNrXx4kkRuWsklDo5ZrMEd34fxHWAJiy5vrFYLMMFo24zNDE5YanVd9sqzc/Po7e3F52dnVhZWUFf\nXx+i0ajYmJs+BwBf+MIXcOPGDZw6dQovvviiCJTnO5l4wFr6/+0OoOcCt1pSqRTq6upQVVWFSCSC\nTz75BMPDwzAajdizZ0/GCw6srgahF58y9OfPn8fTTz8No9GIH/zgB2hvb4fFYslqadGz9Pv90Gg0\nGB0dhcFgQDgcFuej+0YidJ1OB6PRCKPRKOZEfX19RgJDrnQPuLdNQldXFwYGBjA/P4+qqqqc18i/\nS3W4VVVVaG1txcTEBOrr68Xvt8IaJJE1hQTWOn6xeR3Fhp03Q9YBHj+Tk12sNemo3nhiYgLT09PY\nv38/qqurEYlExO+Bu+5cOByGyWTC/v37EQqFRAPRjYyX/18q2N4OrHUu3v3GZrOhsrIS8/PzuHPn\nDgYGBmC321FdXS1irLksJLJMyNpdXl6GyWRCe3s76urqMDQ0tIqMOLGRJUqEnEwm4fP5xHPlixDF\nfVUqlSDEbHOAE6L02svLy5FIJDA0NJSxgdZa94+L7mkr0kAgsCr2WOhnzfv+rUezqkAeu4oECXLk\nx+t1Cbz2l1sooVAI169fh0ajwWc/+1mUl5cLeQNZaYlEAouLi7BYLHjttdfwySef4NKlS7LjkdOS\nEbIRxnbFbvhLyGNHZHGlUilYLBYhKamrq8OHH36IU6dOob+/H+3t7WhsbBS99Og42Vwvnk1Vq9Xw\n+Xy4desW6urq8MUvfhH9/f04f/68uAfSTYL4OYB7wmJ+Pv78efWHtJWZ9D7wjDQdw2Kx4NFHH8V7\n772HGzduiAoRjmx1ttwtValUaGhogNfrFVnabN9dj0CeKwpoXvIMcD4kK5coUXAPJXdn6EVIJBLo\n6+tDPB5He3s7YrGY6C5CE5wIs66uDi6XCzMzM6LNOn2uEGPZSmTLFBIJG41G1NbWoqqqCktLS6Jp\nRXl5Oaqrq2Gz2VbVT0stpbUwNTWFmZkZtLW1oaWlBdPT06K6gjSZ0j0/1ro360lQEclyHSnFh6m8\nb3x8XDT1Xa/gmRZPm82GeDy+qk39ZkFj5nXGchnrfMaqYDV2VUyw0JiYmMDi4iKeeeYZBINB3Llz\nB5FIRMgtKM6YTqfx2c9+Fn19fTh79iyeeOIJkVUGkFH5UGzxFx7b4q3UKysrodPpREb04sWLmJiY\nEMmE8vLyjEwsJ5H1Ynl5GZcuXUJ3dzf+8i//EhcuXEBPTw+qq6vhdDpRWVkpkhvk1uZCPgTDdZj0\nOb1eD61Wi8bGRhEHDoVCeP/997G8vCziivmGPbhFHIvFYLVahRLB6XQCgGzYZj33kCzleDwuYt6c\nBIslrrybUbIkSJMrGAzigw8+wAsvvID6+nqcOHFC7HfBK1EMBgMOHz4Mr9eLTz/9FPv27RNiWnJX\niq0OmLLnKpVKdM42m80wmUzYs2cP5ufncerUKYyMjMDhcKCtrQ1ms3kVyZC1ttEXjlzGy5cv4xvf\n+Aaqqqqg1+tx5coVjI6Ooru7O0NqU4iFhKw9IiC73S42fZ+amhIttoC7ZZNlZWUben7kMZAqoamp\nCdPT04IQN1OvS0ROsVGqcJFa5Wuh2BbmYkPJucMUDyKSSyQSiEQimJubE25hMBjMsO5okicSCXR2\ndsLn84lGmsBq97BYJht/YSj2V1lZCafTidHRUVy6dAlerxcOhwNut1tYtzz+xoP7m7kujUYjSstc\nLhcMBgP27duHqqoqzMzMYGFhAcFgsGCWDVlgWq0WdrsdtbW1sFgsmJqawuLiIlZWVoTYmsuDNipb\nopi00+mE3+8Xm6lvFnwh22gcWUmc5Mau0gnKYT0vJ3df1Op7u58Bd+NWXq8XzzzzDPr7++H1ekXZ\nHZFAJBJBdXU1jEajEGu7XK6MF1caK9rOyce1afR/klFUVFSgpaUF8Xgc58+fR09PDxKJBOrr6+Fy\nuTK0klKhb6GSOCqVCrOzs7DZbLBYLJiZmUFLSwvKy8sB3O3fODs7i6WlJWFJ0fcIfOGRu7+0wNnt\ndjQ0NAAAHA4HpqamMDg4iOXlZVE/zHv7ccJfz/XQ37Ro6nQ6XLt2DeXl5XA4HBsiVXpuJIUhS56T\nmUJq68d9UTGyWZDFlkqlxP4hvMZyfn4efX19eOmll3Dw4EEsLi4iFotlEOHKygra2trw7LPPYnR0\nVGwsVCyxGd72SaPRoLW1FQ888ADS6TT+7//+D2+99RaSySTa29vR0tICg8GwKtC+FeRNyYPFxUWc\nPXsWx48fx8LCgtjFrba2Fm1tbaivr4fVasX8/LwYDwAhU6Jj8bFSrJM2bLLZbKIZw/T0NIaGhrC0\ntIR0Oi3K+wjZmiOsBzSOaDSK2tpahEIhTE5OZlTG8HHLQRpu4C3YeCs4hfwKj5IiQSko1gLcy5hO\nTk7C4XCgq6tLlOnR72nFpzbtDQ0NGB0dFe3VpdjuCctfEovFApfLBavVikgkghs3bgjCcblcopmB\nnMyi0OOmEASdg0to4vE4otGo6MTtdDpRX18Ph8Ox6hg0Ni5hkWrxKKM/PT0t3FL6rtwugIVEIpEQ\nVTRU4bIW5O673CZLHAoRFha7ngQLMSGI2NLpuy2Zzp49i+XlZbz44ouwWq0IBAIZ1pLP50MoFMLx\n48eh1Wpx5swZBIPBjGPuVEWIVqtFc3Oz6If49ttv480330Q8HkdHRwc6OjqE9ctJYatF3Dx5RMkE\ni8WCcDgsOjcnEglEo1GoVCrhStJ3bTbbqtADgVf6+Hw+0b5Lp9PBarWKhBChkJlVTs5EuE1NTfB4\nPKs0mrnAr5U3Qt1O669YvJntRtGToPTB8MqC9X5X7vfSSoVEIoHl5WX09PSgvr4eL730ElQqFUKh\nUIZSnyQLTz31FI4ePYpz585hbGxsVfuiQoJbVFJtnclkQlNTE/bs2QOv14vf/OY3eP/996HRaNDS\n0iI6vdBx6G++7SKwNVYGLxOkrUxv3bqFZ555BmazWfQbJKuO74hGP4/FYuL+y0lYeP0sl5Fw0pWi\nENfK5UcqlQrhcBgdHR0ihsw/I3c+uXin9BryARf6y/2uUCj0nC4GRUXRkyBB+pKupYKXVknkuxKT\nq0bdrA0GA9ra2jK69dL5I5EIDAaD2ND7zp07YiJyfV6hQPFMno0m17Curg4GgwELCwu4du0aQqGQ\nEANTgkfueNsVaKdzkexoZGQEnZ2dcDqdiEQiWcch9/9sY+Vu9k6AwicOhwNlZWXw+Xzid/lWduS6\nvvUs6rm+m+87ke2895vFWLQkKA0U81WO75kgt8dItpeAP3zppODfJanGzZs38fHHH+O5554TnY55\nIX8ymUQwGITFYsHTTz8Np9MpSutIW1co8PtBFo/RaERLSwv27t0Lj8eDd999F6dOnYJWq8XevXtR\nW1sru68Jx07Fl+bm5uBwOPDyyy8jGAzC7/fv+tIutVqNcDiMmpoaHD58GH19fRmC7c3e67We43os\nRz4eqY5Q+j7xmnepbEruj9wxNnJN24VdNevyDRDzFkbZVleun5OSIsWnUqkUQqEQpqam8MADD8Dh\ncIi4D30/Ho9ndFKenZ0VdcjSoH0hQOe2Wq2orq6GxWLB0tISrl69ilgsBrvdLrqgZJN8FMNKnkql\nMDU1hdraWqjVauE63g/Q6XSoqKjImjDLBxt5bush2nxab9Hn5D4jJTw5o6IY5lk+2FUkCNyzwHgs\nhn6e6ztAprshXTV5PIr+D9wluXPnzqG2thavv/46tFqtqDHmAfl4PI6GhgYcPnwYFy5cwMTERMEm\nAbnWer1euOdutxterxe/+tWvcOLECVitVjQ3N6OmpkY0RqDvSrGTqy9/YU6dOoXR0VEcOXIE6XRa\ntMHarSB3P51Oo66uDh6PZ1VTj/Ucq9Bj4+DWXa7PSmuVCUSiUiODKwDo/zuVJMwXRVs2t1YXZ8qg\n6fV6IWMhSHVu2eJhADJ0XESOfHKkUilEo1F88MEHaGhowB//8R/jF7/4BZaWljI6HdMGTfv370cs\nFsOtW7dgNptRVVW1aszZwK1H2tSc+iY6HA5UVlairKwMfX19OHPmjNjYqKWlZVX/O2nVR7GAjyUY\nDOLChQv40pe+BL/fj5GREVRUVGTd6nS3gEIk1PiVejBSImqjRF+o57je46z1ebl3TS5BKLUqi4UY\ni37ZlXNj+erCYxSFSERIFf4k3wgGg5icnITZbBbdkUnbRiAXuqWlRTQm4ONeS1TNs77APQvQaDSK\nnfEmJibQ09Mjdnyjag/pPZL7d7FBpVJhZWUFRqMRnZ2dopltMY95LVAmGwAqKirEfigA1nz+Wzmm\nnTinXPwQKB7yIxQ1CeYyo8mcp3b4/GZvdqXhD48LbaPRKM6ePYsnn3wSTz31FLxeL1SqzN3oAoEA\nKioq8NxzzyEajeLGjRtIJBIZXa9zXS+dS6W62yh0//79OHjwIObm5vDf//3fOHHiBKqqqtDe3o6G\nhgak0+mMJqW7iUDo/t68eRNHjx7N6NqzG0HXE4/HkUwm8dBDD+HKlSsZTRCyyXXuN/AFnUu7yFCQ\nems7iaIlwXxcBr7JjE6nk21uutkXiteEJpNJzMzMYGBgAPX19Th48CD8fn9GZlOj0cDj8SCZTOKp\np57C5OQkzpw5k3PyS7PetLfGvn370N/fjzfeeAMfffQRWltbcfToUZSVlcFoNK7SnxWb6ysH7ibR\n8+rp6cHc3Bza2tqwsrIi2wZ/N4BebNrZsKGhAUtLS5idnV3ltew0tnoM5PnwRha0yBXbQle0JJgL\n0rgD31B9K24uudp0XirG37t3L3Q6HUKhUIYol2qTrVYrWlpaEAwG4fF41ny5tVotNBoNOjo60NDQ\ngMHBQVy+fBnz8/Oor68X7aZIJC0Nuhd7AJqHLLhrFA6HMTw8jH379glR9G5MkPBnQRtCpdNpzM7O\nArgnyC+Ga9uuxZKrMIoVO/80soDLXHKBVl6aXJQZlWqfNgJOttyKC4VCGBgYQCwWw/Hjx1FZWYlA\nICDcIK1Wi1gshmg0ikcffRTPPPMMLly4gMHBQXEMcqHpuFarFUeOHMGePXswPDyMn/3sZ/jggw/g\ndrvR3d2NyspKMRZKnEg32Sl2K1A6VvoTjUbR09ODAwcOQK/XZ4iMdxO4lReNRmE2m6HT6dDb2ysW\nrlxbMdzvIEMhn/1bthNFS4L5QJrFBTIzUFtlGRERjY6OoqamRlgw4XA44yFTTzm32w2LxYKxsTFE\nIhHhJpAbb7FY4Ha7EY1GMTY2hosXL2JychItLS1wOBwwmUzCiswludgN7jBBWiFCLhKV0W2VVb9d\nIPeXtKW0SBeDFVhorPWecS0uxQm3q1IpHxStRCZfyIk05eQhhQ7EarVajI+Pw2QyoaOjAz6fDwMD\nAwiHwzCbzcIaTKVSMJvNeP7553Hjxg1cvXoVDz/8MIxGI8rKykRyo6+vD1euXEEoFEJXVxeam5tR\nVlaWYV3eT9BoNIjH4yLWqtVqsbS0hPr6eiwtLSEWi0Gr1e66JAItvirV3YYK+/fvx3vvvSd+T6Gb\n+wm8hp2HOfi7R/8nJUMxkB9h1y9LvOaXrCS9Xi9+v1XWBOm9BgYG8Mknn6C7uxuf/exnRadqWvkT\niQRCoRBMJhOeeuop6PV6TE9Pw+l0oq2tDRcuXMBbb72FS5cuYd++fWJjeLPZnNFReLeRwVqgayOL\n2GAw4Ny5c3jsscdQVVUlyH83gogwFAphz549sNlsQipD2xwUM3K9MzzTS3/I0qN3UFpil0tYXQyx\nwl1Pghy5MsOFXHk48QLAysoKFhcXxQ5tJJymSU+JkmQyic7OTuHe3rx5E729vQgEAujo6BDWHncF\niSiKaeUsBLilkErd3cB8eXkZDocDNTU1IrQgrSHfDSASjMfjYk4sLi6KiqRif5a5xkckJ0eC2cpU\ns5WuFgvuKxLkq5BOp9tygSZ/qNeuXcPly5fx5JNPwm63w+/3Z2QCyTJoampCVVUVenp68Otf/xp7\n9+7FgQMHUF5eLjRmcmVI95sLxe8d15DFYjE8+eSTCIVCsp/dDaBnHo/HodfrcfDgQfT19QnPoFjK\nFjfyXdK8EniMk1t9+YA+v9PY+REUGCRRobbkwNbs9SFd2SKRCGZnZ3Hnzh0899xz6OzsRDgcRjqd\nhslkEls5Tk9Pw2QyobGxEalUCoFAQNSckjvPJ1kxr6CFAl1jMpnE8PAwnE4nTCYTotFoUbwkGwEX\n23d0dGBubk5khnfymvKdT9zi44k8kqLRsQDs+oTP7h15DvBM8XaJU4lw5+fnodVqsX//frF5kUaj\ngc/nE1s8ptNpVFRUoLa2FoODgwgEAiJgLi3b222u4Gbx/7d3dj9Ne2Ec/25dN8oIGZCBBDMRzBCV\nSLjyghBEuSFeGP9gEhINYcTE+BIhEtgQWBRZ59Zt7KXd74I853daNjbmOtb2fK5QzGzXp9/znPO8\nXVxcoFKpYHBw8Fqgy4nQkQgA1iCi358pf33Npii6aWF2rnVxWI2KyulofnAvkojpvKdWq+HLly8Y\nGxvDo0ePUCgUcHZ2xtq9K4qCy8tL5PN5rK6uwufzYWtri3mvfO2wFzk7O8Px8TEWFxeRzWZN22In\nUqvVWKaAruvXmn3cFc0CHJRzaw1o8MOegO7tUPpBTF0hgjzkNfCBiUaehF2VJbRtyGQyyGaziMfj\nzKshz5AShA3DYFvn3d1dFAoFUwt/2sb3QwStF1DHnv39fczPz0OSJDbfxWnQy61pGnvuAEzljr2i\n0XaVFmx+20v/1tpZyVqV5DacZ10t4A2MP8cA7G32yP+/uVwOh4eHqFarrNEBHfrzxkbt+efn56Gq\nKqub5YMivdzS3zXWlCJZlhsGEpz0XVBHGf5e7PZ+yG6swmc957NGdImbrrHd6+8HD69dHC+CreaM\n8E0hrV1mrP/2X6HDfU3T2HD2dDqNpaUlTE9Pm+aUUKQtn89jbGwMa2treP/+Pfb391kELhgMmuYe\newWKkFN6EeAs4SN4m5uZmcHR0VFPGsfyuwdK1aGdEV+5Qe/FbdryuxHHiyDR6CXhRa9VB2o7jEDX\ndZycnODi4gKzs7MYGRlhVSR0HSSaU1NTGBkZweHhoak7DnC9x6FbMQyDbR3dcgRARySRSOSf2u23\nA28jfESXPEBe+AgnNeCwC8e/WTe9LLz7Tw0HevWQySA1TUMikcDQ0BDW19ehKAo77KdrqVQq0DQN\n7969QzweRyKRQDqdZp2lvbRKW711J4s/3UO5XIaiKEyI7LJBq+jxts8HNpolL3shHasRzrUwjnYy\n3Gl7RX/XKyjatru7i9PTU7x8+RI+nw/ZbBYATF1FdF3H6uoqwuEwdnZ2WMI1gGulVm5dsflKmWZH\nF055Ua31s/w5XbefH3l+JHyUJ2uN6t6EEEGH00oI+Q4WvRAQq9AWi0WkUimEw2Hcv3+fzRDhRY62\nynNzc5icnMTR0REAe5K9+xV+0FWjYnwnYfVm6T66YX98Wos1yOFk7/ku8My3RfNAgsGg6cDabviX\n9+/fv/j48SNWV1exvLyMcrnMAh+UHqKqKqamprCxsYFUKoWTkxNWfscfbDtRFFpBixSdC5ZKJSiK\n4liv1/qcupWdQOeM/MxtOvduZ4xmM9xoU+3gOhFsJm5kNMBVuoJd25JG8B5BJpPBzs4ORkdHsbi4\niHw+j0KhgGAwyLY02WwWuq7jzZs32Nvbw/b29rVZync1tMdOeI+GmipQd2YeJ913N6+VbJjvpN7I\n+3PS99MPuE4E29kW04rZS2OhqFytVsP5+TmSySRmZ2ehKAqbu8B7e+VyGaOjo5iYmEAmk2GRRX7l\ndyOGYSAcDqNUKgHon3ZLndLpc7KeH/LNQVqltDTKq2zH1r0qnq4TQeBmwyNvkIIkdiZQ8/BDZ6rV\nKpLJJNLpNDY2NjA9PQ1VVVntMDVRKBQKWF5exsrKCnZ3d5HL5UxnSm4TQr/fj4GBAUxOTiKdTps6\nEPM47b55753+TFjtjoSP7IWfzkaBDmvnFuvndBr1ddr32i1cKYKtsG4tiV6uhLqu4+fPn4hGo3jy\n5ImpbT7fiikQCCAWiwEA/vz5wxKJec/gLq7fTqiJrPWcy+ncZsG1Pt9WQuZVAesG7rCuW0CrKgVJ\nqMFCr4zIMAxWz5zNZvHhwwcMDg7ixYsX+P37NzRNM638FxcXkCQJr1+/RjKZRCKRQLlcbnq9ThZC\nuqdQKARVVTEwMOAKAbzJm7X+jjxA+h0/k6PZ5wgB/Decb2EdQGcslDvYqwoFGsJEouv3+3F6eoqt\nrS08e/YMc3NzCAQCKBaLpmvK5/MYGhrCysoKJEnC/v4+iypb78vpyLKMaDSKVCqFgYEBAP09rtEu\neDtpFmW2/izoDE+KIMFH2nqVNmON7NLAoYODAzx//hwPHz5EsVjE5eUlALD62Wq1img0ing8jnQ6\nzWYdu+kl8Pl8GB4ehizLKJVKTTsAuYGbnlsjW+xluafXcKeFtYDOW3RdZ1FZSptpZmzdEBvruEy+\nh+DXr19hGAZevXqFSCTC5hjT1r1evxpSPjMzg4WFBWxvbyOZTLKXRZIkU96YEzEMA7FYDLIso1Ao\nAHB22Vyn+P1+VurG1wATXmuoYTfumuPYgmZnf+QNyrLMhIewbkO6tfLS55Agy7KMzc1NPHjwAG/f\nvsXe3h4SiQQAsNGT1Irp8ePHyGaz2NvbQzgcxr179641XXAiPp8P0WgUgUAAmqZheHj4ri+p67Qr\nYGQfJITNgiRuTZzvJd5bZhvAl9X1Momax+e7arR6dnaGer2Op0+fIhQKoVwumypGSKTn5uYwPj6O\n4+NjU0MGJ5+f1et1hMNhdkzhxhZPndiV1SadvND1I0IE8b946LpuauXUqxdQkiQ2tL1arWJzcxM/\nfvxgc4xzuZypP1w+n0c0GsXa2hpKpRI2NzdRKBQgy7Kjh7SHQiEEg0GkUqmWrc/cjlX4qOadH3cp\n6A62iuBND6ofHqLV0Gi7SWcy/O/sSkWwej31eh2VSgXfvn2DoihYWlrC6Ogocrkc67wsSRIymQx0\nXcf6+jpisRg+ffpk6lzdD99vJ0iShIODA4RCIVcEfqzebLv3w3v0tCDzyeN8HbnTv6O7xnYRbPSA\n+MNuPhhxm4fZST1po5ws68+1Wg1+vx/BYNC08toJnetQuyxK2zk4OEAsFkM8HmcCR4nEwFVnmuHh\nYczPz0PTNGQymWuf6yRkWYZhGFBVFbIsA3DePQDXqzcoNaqTah9+8eVrhIUAdo++3w7b9ZCbBT+s\npU29SEblP59K5mRZxvfv36GqKqanpxGJRFAqlUyRwkAgAFVVMTY2hoWFBRwfHyOXy9l6rXbi8/lw\nenqKUqnEktidfMYJ/N/ePhwOIxKJdGRPfCWRVQgF/46tB0jNHjh/3sb/fJs60Ub1kbe9tkY/8115\n7yobny+UPzo6wvn5OfMO+e1VvX41p6RQKLCoqqIo1+7JKRSLRXz+/BkATPNFnAZvz4ZhQNM0TExM\nsCyETuEX6Eb1w4LOsF0Encpdv4CUQ5jL5Zh3Z32BqL6WAjrj4+N3caldo1qt4tevXwDclR9YqVQw\nNDTU1c908rvVb7jH0gQCgaADhAgKBAJPI0RQIBB4GiGCAoHA0wgRFAgEnkaIoEAg8DRCBAUCgacR\nIigQCDyNEEGBQOBphAgKBAJPI0RQIBB4GiGCAoHA0/hEOx6BQOBlhCcoEAg8jRBBgUDgaYQICgQC\nTyNEUCAQeBohggKBwNMIERQIBJ7mPwTI04Iiy1TzAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "G_viT0Bv-wzd", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "outputId": "9cb75335-fd4f-42a0-fef7-0d31f0e5426d" + }, + "source": [ + "sobel_y = np.array([\n", + " [1,2,1],\n", + " [0,0,0],\n", + " [-1,-2,-1]\n", + "])\n", + "\n", + "sobel_y_image = nd.convolve(grayscale, sobel_y)\n", + "plt.axis('off')\n", + "plt.imshow(sobel_y_image, cmap=plt.cm.gray);" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nagAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KcM-_FNV-1kg", + "colab_type": "text" + }, + "source": [ + "## Are we going to learn to do Linear Algebra by hand?\n", + "\n", + "Let me quote your seventh grade math teacher:\n", + "\n", + "> \"ArE yOu GoInG To CaRrY a CaLcUlAtOr ArOuNd wItH yOu EvErYwHeRe YoU gO???\"\n", + "\n", + "Of course you're going to carry a calculator around everywhere, so mostly **NO**, we're not going to do a lot of hand calculating. We're going to try and refrain from calculating things by hand unless it is absolutely necessary in order to understand and implement the concepts.\n", + "\n", + "We're not trying to re-invent the wheel.\n", + "\n", + "We're learning how to **use** the wheel. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hYIVs-Kz-7lG", + "colab_type": "text" + }, + "source": [ + "## Challenge\n", + "\n", + "I hope that this teaser helps you be excited about how studying Linear Algebra will help us build the intuition and skills to unlock some of the most exciting and valuable tools and techniques in machine learning. Over the next two modules we are going start building up to the concept of PCA which as you'll see will require a firm understanding of many important linear algebra intuitions." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-utHeu0B8LMr", + "colab_type": "text" + }, + "source": [ + "# [Salars and Vectors](#scalars-and-vectors)\n", + "\n", + "Student can graph vectors, identify their dimensionality, calculate their length (norm), and take the dot product of two vectors.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zGBf-YtS81I4", + "colab_type": "text" + }, + "source": [ + "## Overview\n", + "\n", + "Scalars and vectors are the basic building blocks of linear algebra. Scalars are just numbers stored as a variable, and when vectors or matrices are multiplied by them they will be scaled according to the size of the number. Vectors are a lot like lists of values in Python or like rows/columns in a dataframe many of the principles and intuitions that we learn here can be tied back to our datasets. Understanding vectors is important because matrices can be thought of as a set of vectors just like a dataframe can be thought of as a group of columns or rows. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NrSWzSsFAUxM", + "colab_type": "text" + }, + "source": [ + "## Follow Along" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ENo5DQOUB3MV", + "colab_type": "text" + }, + "source": [ + "### Scalars\n", + "\n", + "A single number. Variables representing scalars are typically written in lower case.\n", + "\n", + "Scalars can be whole numbers or decimals.\n", + "\n", + "\\begin{align}\n", + "a = 2\n", + "\\qquad\n", + "b = 4.815162342\n", + "\\end{align}\n", + "\n", + "They can be positive, negative, 0 or any other real number.\n", + "\n", + "\\begin{align}\n", + "c = -6.022\\mathrm{e}{+23}\n", + "\\qquad\n", + "d = \\pi\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "PNTsHRWXB8n8", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 281 + }, + "outputId": "d70350ff-0772-4360-c7ba-dd339d5ea93f" + }, + "source": [ + "import math\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# Start with a simple vector\n", + "blue = [.5, .5]\n", + "\n", + "# Then multiply it by a scalar\n", + "\n", + "green = np.multiply(2, blue)\n", + "\n", + "red = np.multiply(math.pi, blue)\n", + "\n", + "orange = np.multiply(-0.5, blue)\n", + "\n", + "# Plot the Scaled Vectors\n", + "plt.arrow(0,0, red[0], red[1],head_width=.05, head_length=0.05, color ='red')\n", + "plt.arrow(0,0, green[0], green[1],head_width=.05, head_length=0.05, color ='green')\n", + "plt.arrow(0,0, blue[0], blue[1],head_width=.05, head_length=0.05, color ='blue')\n", + "plt.arrow(0,0, orange[0], orange[1],head_width=.05, head_length=0.05, color ='orange')\n", + "plt.xlim(-1,2) \n", + "plt.ylim(-1,2)\n", + "plt.title(\"Scaled Vectors\")\n", + "plt.show()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9XDUsS1kB-i0", + "colab_type": "text" + }, + "source": [ + "### Vectors:\n", + "\n", + "A vector of dimension *n* is an **ordered** collection of *n* elements, which are called **components** (Note, the components of a vector are **not** referred to as \"scalars\"). Vector notation variables are commonly written as a bold-faced lowercase letters or italicized non-bold-faced lowercase characters with an arrow (→) above the letters:\n", + "\n", + "Written: $\\vec{v}$ \n", + "\n", + "Examples:\n", + "\n", + "\\begin{align}\n", + " \\vec{a} = \n", + " \\begin{bmatrix}\n", + " 1\\\\\n", + " 2\n", + " \\end{bmatrix}\n", + " \\qquad\n", + " \\vec{b} =\n", + " \\begin{bmatrix}\n", + " -1\\\\\n", + " 0\\\\\n", + " 2\n", + " \\end{bmatrix}\n", + " \\qquad\n", + " \\vec{c} =\n", + " \\begin{bmatrix}\n", + " 4.5\n", + " \\end{bmatrix}\n", + " \\qquad\n", + " \\vec{d} =\n", + " \\begin{bmatrix}\n", + " Pl\\\\\n", + " a\\\\\n", + " b\\\\\n", + " \\frac{2}{3}\n", + " \\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "The above vectors have dimensions 2, 3, 1, and 4 respectively.\n", + "\n", + "Why do the vectors below only have two components?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "COePyv9DCFgB", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 281 + }, + "outputId": "c95519ba-63f8-42b4-c305-07094be5192d" + }, + "source": [ + "# Vector Examples \n", + "yellow = [.5, .5]\n", + "red = [.2, .1]\n", + "blue = [.1, .3]\n", + "\n", + "# Coordinate Pairs for where the arrowheads are\n", + "# yellow = (.5, .5)\n", + "# red = (.2, .1)\n", + "# blue = (.1, .3)\n", + "\n", + "plt.arrow(0, 0, .5, .5, head_width=.02, head_length=0.01, color = 'y')\n", + "plt.arrow(0, 0, .2, .1, head_width=.02, head_length=0.01, color = 'r')\n", + "plt.arrow(0, 0, .1, .3, head_width=.02, head_length=0.01, color = 'b')\n", + "plt.title('Vector Examples')\n", + "plt.show()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEICAYAAABcVE8dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deZQcZdn+8e89M9n3fQ9ZyE72YbII\niCwaAhIUkCDLGwQir4CIisAPBF4QBVFAEJGggKACUQGjRgJCQiT7ZCUJhCxkmSxkD9lnu39/VA9p\nhiTTyfR09XRdn3P6VFfV01V315m5urqWp83dERGRzJcVdgEiIpIaCnwRkYhQ4IuIRIQCX0QkIhT4\nIiIRocAXEYkIBb5IGjOzMWb2bth1SGZQ4EvSmNnrZnbvYaaPMrNNZpZTiWVPMbNrKlfh55a52sz2\nm9meuMevk7kOkXSiwJdk+gNwuZlZuelXAH9y9+IQasICR/pb/6q714973JDS4kRSSIEvyfQa0Aw4\ntWyCmTUBzgOej43XMrNfmNlaM/vYzH5rZnXi2o8yswVm9omZrTSzEWZ2f2yZv47fCzez4WY2x8x2\nxYbD45YzxczuN7NpwD6gy7G8ETN70sz+Fjf+oJm9FfvwaGJm/zSzLWa2I/a8fbl1/8TMpsfq/YeZ\nNTOzP8Xe1xwz6xTX3s3su2a2ysy2mtlDR/qAMrOeZvammW03s2Vm9o24eSPNbKmZ7Taz9Wb2w2N5\nzxIB7q6HHkl7AE8Dv4sb/zawIG78EWAC0BRoAPwD+FlsXh6wCzibYGekHdAzNm8KcE3ccpoCOwi+\nPeQAl8bGm8W1Xwv0ic2vcZhaVwNnHeF91AU+BMYQfNhsBdrH5jUDLoy1aQD8BXgt7rVTgBVAV6AR\nsDS2rLNitTwPPBvX3oHJsffUMdb2mti8McC7sef1gHXAVbHlDIzV1Ts2fyNwaux5E2BQ2H8PeqTX\nI/QC9MisB3AKsBOoHRufBtwce27AXqBrXPthwEex508BjxxhueUD/wpgdrk2M4Axce3vraDW1cCe\nWL1lj2vj5g8BtgNrgEuPspwBwI5ytd4RN/5L4N9x41/lsx+CDoyIG/8O8FbseXzgXwL8t9y6nwLu\njj1fS/AB2zDsvwM90vOhQzqSVO7+LsFe5wVm1pVgr/3PsdktCPaK55rZTjPbCbwemw7QAViZ4Kra\nEgRxvDUE3wrKrEtgORe4e+O4x9Nx72UWsIrgg2p82XQzq2tmT5nZGjP7BJgKNDaz7Ljlfhz3fP9h\nxuuXqyO+1jWx91feCcCQsm0X236XAa1j8y8ERgJrzOwdMxtW8duXKFHgS1V4HrgSuByY5O5lYbeV\nIOz6xAVsI3cvC791BIdBDqd8t64bCAIwXkdg/VFec0zM7HqgVmxdP4qb9QOgBzDE3RsCp5W9pBKr\n6xD3vGNsneWtA94p9wFV393/F8Dd57j7KKAlwfmU8YdZhkSYAl+qwvMEx6uvJbhyBwB3LyU4xv+I\nmbUEMLN2ZvaVWJPfA1eZ2ZlmlhWb1zM272M+e+J1ItDdzL5pZjlmdgnQG/hnMt6AmXUHfkLwoXUF\n8CMzGxCb3YDgg2unmTUF7k7CKm+JnQzuANwEvHyYNv8keM9XmFmN2ONkM+tlZjXN7DIza+TuRcAn\nQGkS6pIMosCXpHP31cB0gpOME8rNvpXghObM2OGQ/xDsLePuswlOSD5CcPL2HQ7txf8KuCh2Vcxj\n7r6N4OqfHwDbCPbAz3P3rcdY7j/KXYf/aux+gT8CD7r7QndfDvw/4AUzqwU8CtQh+MYyk+CwVGX9\nHZgLLAD+RfDh9xnuvhv4MjCa4BvAJuBBgm8hEHwwrY5t1+sIDveIfMrc9QMoImEyMwe6ufuKsGuR\nzKY9fBGRiKgw8M3sGTPbbGaLjzDfzOwxM1thZovMbFDyyxQRkcpKZA//OWDEUeafA3SLPcYCT1a+\nLJHocHfT4RxJhQoD392nEtx8ciSjgOc9MJPgeuQ2ySpQRESS47h7L4zTjs/eNFIQm7axfEMzG0vw\nLYB69eoN7tmzZ/kmIiJyFHPnzt3q7i0qbvl5yQj8hLn7OGAcQG5urufn56dy9SIi1Z6Zlb/DPGHJ\nuEpnPZ+9S7A9n73bUURE0kAyAn8CcGXsap2hwC53/9zhHBERCVeFh3TM7EXgdKC5mRUQ3EZeA8Dd\nf0twi/tIgrsn9xHcKSkiImmmwsB390srmO/A9UmrSEREqoTutBURiQgFvohIRCjwRUQiQoEvIhIR\nCnwRkYhQ4IuIRIQCX0QkIhT4IiIRocAXEYkIBb6ISEQo8EVEIkKBLyISEQp8EZGIUOCLiESEAl9E\nJCIU+CIiEaHAFxGJCAW+iEhEKPBFRCJCgS8iEhEKfBGRiFDgi4hEhAJfRCQiFPgiIhGhwBcRiQgF\nvohIRCjwRUQiQoEvIhIRCnwRkYhQ4IuIRIQCX0QkIhT4IiIRocAXEYkIBb6ISEQo8EVEIiKhwDez\nEWa2zMxWmNlth5nf0cwmm9l8M1tkZiOTX6qIiFRGhYFvZtnAE8A5QG/gUjPrXa7ZncB4dx8IjAZ+\nk+xCRUSkchLZw88DVrj7KncvBF4CRpVr40DD2PNGwIbklSgiIsmQSOC3A9bFjRfEpsW7B7jczAqA\nicCNh1uQmY01s3wzy9+yZctxlCsiIscrWSdtLwWec/f2wEjgBTP73LLdfZy757p7bosWLZK0ahER\nSUQigb8e6BA33j42Ld7VwHgAd58B1AaaJ6NAERFJjkQCfw7Qzcw6m1lNgpOyE8q1WQucCWBmvQgC\nX8dsRETSSIWB7+7FwA3AJOB9gqtxlpjZvWZ2fqzZD4BrzWwh8CIwxt29qooWEZFjl5NII3efSHAy\nNn7aXXHPlwJfSG5pIiKSTLrTVkQkIhT4IiIRocAXEYkIBb6ISEQo8EVEIkKBLyISEQp8EZGIUOCL\niESEAl9EJCIU+CIiEaHAFxGJCAW+iEhEKPBFRCJCgS8iEhEKfBGRiFDgi4hEhAJfRCQiFPgiIhGh\nwBcRiQgFvohIRCjwRUQiQoEvIhIRCnwRkYhQ4IuIRIQCX0QkIhT4IiIRocAXEYkIBb6ISEQo8EVE\nIkKBLyISEQp8EZGIUOCLiESEAl9EJCIU+CIiEZFQ4JvZCDNbZmYrzOy2I7T5hpktNbMlZvbn5JYp\nIiKVlVNRAzPLBp4AzgYKgDlmNsHdl8a16QbcDnzB3XeYWcuqKlhERI5PInv4ecAKd1/l7oXAS8Co\ncm2uBZ5w9x0A7r45uWWKiEhlJRL47YB1ceMFsWnxugPdzWyamc00sxGHW5CZjTWzfDPL37Jly/FV\nLCIixyVZJ21zgG7A6cClwNNm1rh8I3cf5+657p7bokWLJK1aREQSkUjgrwc6xI23j02LVwBMcPci\nd/8I+JDgA0BERNJEIoE/B+hmZp3NrCYwGphQrs1rBHv3mFlzgkM8q5JYp4iIVFKFge/uxcANwCTg\nfWC8uy8xs3vN7PxYs0nANjNbCkwGbnH3bVVVtIiIHDtz91BWnJub6/n5+aGsW0SkujKzue6eezyv\n1Z22IiIRocAXEYkIBb6ISEQo8EVEIkKBLyISEQp8EZGIUOCLiESEAl9EJCIU+CIiEaHAFxGJCAW+\niEhEKPBFRCJCgS8iEhEKfBGRiMgJuwCRdFBcvJvp09vgXvjpNLNs+vefTKNGQ0OsTCR5tIcvAmRn\n1+fEE3+JWQ7upbgXATkcOLA67NJEkkZ7+CIxBw6sprR0PwBZWfVioS+SORT4Enn79i1n9uzuALRo\nMZpevV5gy5a/smLFd6lVq03I1YkkjwJfIsu9hGXLxrJp0zMAnHzyUurV6wVAq1ajadnyEswszBJF\nkkqBL5G0e/d85s4dBEC7dt+LHb//7Ckthb1kGgW+REppaSGLF3+N7dsnAjB06Gpq1z4h5KpEUkOB\nL5Gxc+dUFiz4IgCdO/+Ujh1v0168RIoCXzJeSck+5s8/lT175gEwfPgmatZsFXJVIqmnwJeMtnXr\nBBYvHgVA9+5P07btNSFXJBIeBb5kpOLiXcye3ZvCwg3UqNGCvLwPqVGjcdhliYRKgS8ZZ+PGZ1m2\n7FsA9OnzCi1afC3kikTSgwJfMkZh4RamT28NlFKvXl8GDZpBdna9sMsSSRsKfKn23J11637BqlU/\nAqB//7dp0uRLIVclkn4U+FKtHTiwjpkzOwLQpMmX6dt3AllZtUKuSiQ9KfClWnIvZeXKWyko+AUA\ngwfn06DB4JCrEklvCnypdvbtW8bs2T0BaNXqSnr0+D1ZWfpTFqmI/kuk2igtLWbZsqv4+OM/ApCX\n9wF16/YIuSqR6kOBL9XC7t1zmTs3F4AOHW6hS5cHPtfZmYgcnQJf0lpp6UHee++r7NjxJgBDh66l\ndu0OIVclUj0p8CVt7dgxmYULzwCgS5ef06HDD9XZmUglJPSd2MxGmNkyM1thZrcdpd2FZuZmlpu8\nEiVqSkr2MmdOPxYuPAOzHIYP30zHjrco7EUqqcI9fDPLBp4AzgYKgDlmNsHdl5Zr1wC4CZhVFYVK\nNGzZ8gpLllwIQI8ez9CmzVUhVySSORI5pJMHrHD3VQBm9hIwClhart19wIPALUmtUCKhqGgns2d3\no6hoKzVrtiMvbwk5OY3CLkskoyRySKcdsC5uvCA27VNmNgjo4O7/OtqCzGysmeWbWf6WLVuOuVjJ\nTBs2PM20aU0oKtrKSSf9neHDCxT2IlWg0idtLbg27mFgTEVt3X0cMA4gNzfXK7tuqd4KCz+OdXYG\n9esPZuDAqWRn1w25KpHMlUjgrwfir4NrH5tWpgFwEjAldlKtNTDBzM539/xkFSqZw91Zu/ZnfPTR\nHQAMGPAOjRufFnJVIpkvkcCfA3Qzs84EQT8a+GbZTHffBTQvGzezKcAPFfZyOAcOrGHmzE4ANG16\nLied9ApZWTXDLUokIioMfHcvNrMbgElANvCMuy8xs3uBfHefUNVFSvXnXsqKFTezfv1jAAwePJ8G\nDQaEXJVItCR0DN/dJwITy0276whtT698WZJJ9u5dypw5fQBo3fpb9OgxjuBqXxFJJd1pK1WmtLSY\n99+/nC1bXgYgL+9D6tbtFnJVItGlwJcq8ckns5k3bwgAHTveTufO9+tOWZGQKfAlqUpKDrBo0Tns\n2jUFgGHDCqhVq93RXyQiKaHAl6TZvv1NFi36MgBduz5C+/Y3aa9eJI0o8KXSiov3MHduLvv3LyMr\nqzbDhhVQo0azsMsSkXIU+FIpmzePZ+nSSwDo2fN5Wre+IuSKRORIFPhyXIqKdjBzZmdKSnZRu3Yn\ncnMXkpPTMOyyROQoFPhyzNavf5Lly78DQN++/6RZs3NDrkhEEqHAl4QdPLiJGTPaANCw4VD693+b\n7Ow6IVclIolS4EuF3J01a+5j9eq7ARg48F0aNfpCyFWJyLFS4MtR7d//EbNmdQGgWbML6NNnPFlZ\nNUKuSkSOhwJfDsu9lOXLb2TDht8AkJu7iPr1+4ZclYhUhgJfPmfPnsXk5wfh3qbNt+ne/Ql1diaS\nARL5icOMs2cPjB8P554LzZrB22+HXVF6KC0tYvHiiz4N+yFDVtKjx28V9iIZInJ7+GPHwrPPQlYW\nFBYG077+dViyBNpFuMuXXbtmMH/+cABOOOEuOnW6R90iiGSYyAX+2WfDtm0wZQps3w4NG8Lu3XDe\neTB7NtSI2PnIkpL9LFx4Np98Mg2AYcM2UKtWm5CrEpGqELnAv/ji4FEz9qt6L78M06bB6tWQHbEj\nF9u2vc57750DwIkn/pr27a8PuSIRqUqRC3yAefOgqAhefBFGjAgeUVJcvJv8/AEcOLCK7Oz6DB26\nhho1moZdlohUsUgG/uDBwfCSS8KtIwwff/xn3n//MgB69XqRVq1Gh1yRiKRK5AJ/xoxg+NprEKVz\nkkVF25gxoyOlpfuoU+dEBg+eR05Og7DLEpEUilzgDw8uROH888OtI1XcnfXrH2fFipsA6NfvdZo2\n/UrIVYlIGCIV+JMnB8M33ojG3v3BgxuYMSO41rRRo1Pp1+8NsrNrh1yViIQlMoHvDmecETw/++xw\na6lq7s5HH/2YtWvvB2DgwBk0ajQ05KpEJGyRCfzXXw+GU6eGW0dV279/JbNmnQhAixYX06vXn9TZ\nmYgAEQl8dxg5Mnh+6qnh1lJV3Ev48MPr2LjxdwCcfPJi6tXrE3JVIpJOIhH4r74aDGfNCreOqrJn\nzyLy8/sD0LbtDXTr9ivMItlNkogcRcYHvjtceGHwPC8v3FqSrbS0kCVLLmbbtgkADBnyEXXqdAq3\nKBFJWxkf+H/6UzBcsCDcOpJt5853WbAgOD7VqdO9nHDCnersTESOKqMDv7QUrrgC6taF/v3DriY5\nSkr2s2DB6ezePRuAYcM2UqtW65CrEpHqIKMD/3fB+Uvy88OtI1m2bfsX7713HgDduj1Ju3bXhVyR\niFQnGRv4xcXw7W9Dy5bQq1fY1VROcfEnzJnTl4MH15KT05QhQ1ZQo0aTsMsSkWomYwP/8ceD4fTp\n4dZRWZs2Pc8HH/wPAL17/4WWLS8KuSIRqa4yMvCLiuD734euXYNHdVRYuJUZM9rhXkjdur0YNGg2\nOTn1wy5LRKqxjAz8n/88GFbH36p1dwoKHmHlyh8A0K/fmzRtelbIVYlIJkgo8M1sBPArIBv4nbs/\nUG7+94FrgGJgC/Atd1+T5FoTcvAg3Hkn9OsHHTuGUcHxO3CggJkzOwDQuPEZ9Os3kaysWiFXJSKZ\nosLbMc0sG3gCOAfoDVxqZr3LNZsP5Lp7P+CvwM+TXWii7rknGP7732FVcOzcnZUrb/s07AcNms2A\nAW8p7EUkqRLZw88DVrj7KgAzewkYBSwta+Duk+PazwQuT2aRidq/Hx54AE45Bdq2DaOCY7dv33Jm\nz+4OQMuW36Rnzz+QlZWRR9pEJGSJJEs7YF3ceAEw5CjtrwYOu39tZmOBsQAdq+B4y623BsO//S3p\ni0469xKWLbuWTZueBeDkk5dSr141v35URNJaUnclzexyIBf44uHmu/s4YBxAbm6uJ3Pde/YEl2KO\nGBFce5/Odu+ez9y5gwBo3/5munb9hTo7E5Eql0jgrwc6xI23j037DDM7C7gD+KK7H0xOeYm78cZg\nWNZ3TjoqLS1k8eIL2L49+AI0dOhqatc+IeSqRCQqEgn8OUA3M+tMEPSjgW/GNzCzgcBTwAh335z0\nKiuwaxc89xxcdBE0bZrqtSdm5853WLDgdAA6d/4ZHTveqs7ORCSlKgx8dy82sxuASQSXZT7j7kvM\n7F4g390nAA8B9YG/xEJsrbun7GfCr7kmGJb1nZNOSkr2MX/+KezZMx+A4cM/pmbNND/mJCIZKaFj\n+O4+EZhYbtpdcc9DuzNo+3b461/hqqugUaOwqji8rVv/zuLFFwDQvfvTtG17TcgViUiUVfvr/74Z\nO7j02GPh1hGvuHgXs2f3orBwIzVqtCQvbxk1ajQOuywRibhqHfibN8OkSfDd70L9NOlmZuPGZ1i2\n7GoA+vR5hRYtvhZyRSIigWod+F//ejB84IGjt0uFwsLNTJ/eCoB69fozaNA0srPrhVyViMgh1Tbw\nN2yAadPg9tuhTp3w6nB31q17iFWrgru++vefTJMmp4dXkIjIEVTbwD/nnGB4993h1XDgwDpmzgzu\nGG7S5Cv07TuBrKya4RUkInIU1TLw166FRYvg/vuhVgj9i7mXsnLlLRQUPAzA4MFzadBgUOoLERE5\nBtUy8L/0pWB4yy2pX/fevR8wZ07Q502rVlfSs+czBB2Kioikt2oX+CtXwqpV8MgjUKNG6tZbWlrM\nBx+MYfPmoO+GvLxl1K3bPXUFiIhUUrUL/OHDg2FZ3zmp8Mkn+cybdzIAHTrcQpcuD6izMxGpdqpV\n4L//fnDt/VNPQXYKjqKUlh7kvffOY8eO/wAwdOhaatfuUMGrRETSU7UK/MGDg+E1KeihYMeOt1m4\n8EwAunT5BR06fF+dnYlItVZtAn/hwuAXrV54AbKq8GhKScle5s0byt69izHLYdiwjdSs2bzqVigi\nkiLVJvAHDAiGl11WdevYsuVvLFlyEQA9ejxLmzZjqm5lIiIpVi0Cf86cYPjKK1AVR1WKinYya9aJ\nFBdvo2bN9uTlLSYnJwVdby5ZAgcPQt++qb3kSEQiqVpcapKXFwwvuCD5y96wYRzTpjWhuHgbJ500\ngeHD16Um7AF++EPIzQ16fuvXL+gFbuPG1KxbRCIn7ffw//vfYDhxYnL37gsLP2b69NYANGiQy4AB\n75CdXTd5K0jE//0fvP46FBbCe+8FlyGdeipcfHFq6xCRSEj7PfzTTguGZX3nVJa7s3r1/Z+G/YAB\nUxk8eE7qwn71arj00uDTa8iQYFrZJ1mrVvA1dacsIlUjrQP/jTeC4eTJyVne/v2reeedLFavvpNm\nzc7jtNMO0rjxqclZ+NEsWwbnnhsEe+fO8NJL0L9/0N1naSnceWfQ7sEHISftv3SJSDVl7h7KinNz\ncz0/P/+I890PXX5Z2RLdS1mx4mbWrw9+Fmvw4Pk0aDCgcgs9+gqD60hvvBHefffQ9FNOgccfD8I+\n/vhUaWnwqXb66am5o0xEqi0zm+vuucfz2rTdnfzHP4LhjBmVW87evUuZM6cPAK1bX02PHk9VTWdn\n7jBrFlx3XRD2ZUaOhF/+Enr2PPJrs7LgzDOTX5OISJy0DHx3GDUqeD506PEto7S0mPffv4wtW8YD\nkJe3nLp1T0xShZ+uBKZMgWuvDXp0KzN6NPz0p8HhGxGRNJGWgT8+yGjmzTu+13/yySzmzQs+KTp2\nvIPOne9LXrcIJSXBlTXf+lbQsU+Za68Nfo2lXbvkrEdEJMnSLvBLS4Md5Jo1YeDAY3ttSckBFi36\nCrt2TQVg2LACatVKQgAXFcGrr8KYMUH/DmVuvhluuw1atqz8OkREqljaBf5zzwXD+fOP7XXbt7/B\nokVfAaBr10dp3/67ldurP3AAXnwx2JOPd9ddcNNN0LTp8S9bRCQEaRX4JSVw9dXQpAn07p3Ya4qL\n9zB37mD27/+QrKw6DBu2jho1mh1fAXv3wrPPfr6z/YcegrFjoWHD41uuiEgaSKvAf/LJYDhrVmLt\nN28ez9KllwDQs+cLtG59+bGvdNeuYMW33/75Yq68Euqm+O5bEZEqkjaBX1wc7Fh37Ajduh29bVHR\ndmbO7EJJyS5q1+5Mbu4CcnKOYe972zZ4+OHgSpoyZvCHP8A3vhHOL6OLiFSxtAn8hx8Ohu+8c/R2\n69f/huXLrwegb9+JNGuWYJ8LmzYFAf/444emNWwYHML56lfVW6WIZLy0CPzCQrj1VujTBzp1Onyb\ngwc3MmNGWwAaNhxG//5vkZ1d5+gLXrcOfvzjYM+9TNu28Pvfw9ln665WEYmUtAj8n/wkGE6a9Pl5\nQWdn97JmzT0ADBw4jUaNhh95YStXwo9+FHSeX6ZHj+CHcE89tWp/LktEJI2FHvgHDsB99wUdR5a/\nZ2n//lXMmtUVgObNv0bv3i+TlXWYQy9LlsD3vgf/+c+habm58MQTcPLJVfOrKSIi1UzogX/HHcHw\n738/NM29lOXLb2DDhuCyndzcRdSv3ze+AcydCzfc8NlLes44Ax59NPgFKRER+YxQA3/v3uBk7Vln\nBV3BA+zZ8x75+f0AaNPmOrp3/3XQ2Zl70J3w2LHBD4WUueCCoFvh7t1DeAciItVHqIF/883B8KWX\noLS0iKVLL2Hr1lcBGDJkJXVqngBvvgXXXBOcgC1zxRXBcaATTgihahGR6im0wC8thaefDn7gKSdn\nOlOnfgGAE9r9mE6LB2JtB8POnYde8J3vBD8U0qZNSBWLiFRvCf0AipmNAH4FZAO/c/cHys2vBTwP\nDAa2AZe4++qjLbNZs1zfvj2fKVO+DAffpMVU6PXzHKyo+FCjW28Nfui7efNjfFsiIpmpSn8AxYJf\nC3kCOBsoAOaY2QR3XxrX7Gpgh7ufaGajgQeBS4623O3b4fxez/PF09+Mm1ocXKN5/fXQuPExvxkR\nETmyRC5KzwNWuPsqdy8EXgJGlWszCii7u+mvwJmWQFeVf3w/uGOWRx+F3buDE7N33KGwFxGpAokc\nw28HxJ0xpQAYcqQ27l5sZruAZsDW+EZmNhYYGxs92BAWA8E19N/73jEXn0GaU25bRZi2xSHaFodo\nWxzS43hfmNKTtu4+DhgHYGb5x3scKtNoWxyibXGItsUh2haHmFn+8b42kUM664EOcePtY9MO28bM\ncoBGBCdvRUQkTSQS+HOAbmbW2cxqAqOBCeXaTAD+J/b8IuBtT+TyHxERSZkKD+nEjsnfAEwiuCzz\nGXdfYmb3AvnuPgH4PfCCma0AthN8KFRkXCXqzjTaFodoWxyibXGItsUhx70tEroOX0REqj/1FSwi\nEhEKfBGRiKjywDezEWa2zMxWmNlth5lfy8xejs2fZWadqrqmsCSwLb5vZkvNbJGZvWVmGds7XEXb\nIq7dhWbmZpaxl+Qlsi3M7Buxv40lZvbnVNeYKgn8j3Q0s8lmNj/2fzIyjDqrmpk9Y2abzWzxEeab\nmT0W206LzGxQQgt29yp7EJzkXQl0AWoCC4He5dp8B/ht7Plo4OWqrCmsR4Lb4ktA3djz/43ytoi1\nawBMBWYCuWHXHeLfRTdgPtAkNt4y7LpD3BbjgP+NPe8NrA677iraFqcBg4DFR5g/Evg3YMBQYFYi\ny63qPfwq65ahGqpwW7j7ZHffFxudSXDPQyZK5O8C4D6CfpkOpLK4FEtkW1wLPOHuOwDcfXOKa0yV\nRLaFAw1jzxsBG1JYX8q4+1SCKx6PZBTwvAdmAo3NrMKuhKs68A/XLUO7I7Vx92KgrFuGTJPItoh3\nNcEneCaqcFvEvqJ2cPd/pbKwECTyd9Ed6G5m08xsZqz32kyUyLa4B7jczAqAicCNqSkt7RxrngBp\n8BOH8nlmdjmQC3wx7FrCYGZZwMPAmJBLSRc5BId1Tif41jfVzPq6+86jviozXQo85+6/NLNhBPf/\nnOTupWEXVh1U9R6+umU4JJFtgZmdBdwBnO/uB1NUW6pVtC0aACcBU8xsNcExygkZeuI2kb+LAmCC\nuxe5+0fAhwQfAJkmkW1xNYW05VMAAAEFSURBVDAewN1nALUJOlaLmoTypLyqDnx1y3BIhdvCzAYC\nTxGEfaYep4UKtoW773L35u7eyd07EZzPON/dj7vTqDSWyP/IawR795hZc4JDPKtSWWSKJLIt1gJn\nAphZL4LA35LSKtPDBODK2NU6Q4Fd7r6xohdV6SEdr7puGaqdBLfFQ0B94C+x89Zr3f380IquIglu\ni0hIcFtMAr5sZkuBEuAWd8+4b8EJbosfAE+b2c0EJ3DHZOIOopm9SPAh3zx2vuJuoAaAu/+W4PzF\nSGAFsA+4KqHlZuC2EhGRw9CdtiIiEaHAFxGJCAW+iEhEKPBFRCJCgS8iEhEKfBGRiFDgi4hExP8H\ntZvqR0t6AToAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DNj5IvzrCHnX", + "colab_type": "text" + }, + "source": [ + "In domains such as physics it is emphasized that vectors have two properties: direction and magnitude. It's rare that we talk about them in that sense in Data Science unless we're specifically in a physics context. We just note that the length of the vector is equal to the number of dimensions of the vector. \n", + "\n", + "What happens if we add a third component to each of our vectors?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hF1kRxu6CKtG", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "outputId": "69bf36e6-2128-4a6f-ff42-115ef9a68848" + }, + "source": [ + "from mpl_toolkits.mplot3d import Axes3D\n", + "import numpy as np\n", + "\n", + "yellow = [.5, .5, .5]\n", + "red = [.2, .1, .0]\n", + "blue = [.1, .3, .3]\n", + "\n", + "vectors = np.array([[0, 0, 0, .5, .5, .5], \n", + " [0, 0, 0, .2, .1, .0],\n", + " [0, 0, 0, .1, .3, .3]])\n", + "\n", + "X, Y, Z, U, V, W = zip(*vectors)\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.quiver(X, Y, Z, U, V, W, length=1)\n", + "ax.set_xlim([0, 1])\n", + "ax.set_ylim([0, 1])\n", + "ax.set_zlim([0, 1])\n", + "ax.set_xlabel('X')\n", + "ax.set_ylabel('Y')\n", + "ax.set_zlabel('Z')\n", + "plt.show()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xra4GxduCNXE", + "colab_type": "text" + }, + "source": [ + "### Norm of a Vector (Magnitude or length)\n", + "\n", + "The *Norm* or *Magnitude* of a vector is nothing more than the **length** of the vector. Since a vector is just a line (essentially) if you treat it as the hypotenuse of a triangle you could use the pythagorean theorem to find the equation for the norm of a vector. We're essentially just generalizing the equation for the hypotenuse of a triangle that results from the pythagorean theorem to n dimensional space.\n", + "\n", + "We denote the norm of a vector by wrapping it in double pipes (like double absolute value signs)\n", + "\n", + "\\begin{align}\n", + "||v|| = \n", + "\\sqrt{v_{1}^2 + v_{2}^2 + \\ldots + v_{n}^2}\n", + "\\\\\n", + "\\vec{a} = \n", + "\\begin{bmatrix}\n", + "3 & 7 & 2 & 4\n", + "\\end{bmatrix}\n", + "\\\\\n", + "||a|| = \\sqrt{3^2 + 7^2 + 2^2 + 4^2} \\\\\n", + "||a|| = \\sqrt{9 + 49 + 4 + 16} \\\\\n", + "||a|| = \\sqrt{78}\n", + "\\end{align}\n", + "\n", + "The Norm is the square root of the sum of the squared elements of a vector.\n", + "\n", + "Properties of the Norm:\n", + "\n", + "The norm is always positive or zero $||x|| \\geq 0$ \n", + "\n", + "The norm is only equal to zero if all of the elements of the vector are zero.\n", + "\n", + "The Triangle Inequality: $|| x + y ||\\leq ||x|| + ||y||$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IUmSOT3PCaTo", + "colab_type": "text" + }, + "source": [ + "### The Equation for the norm of a vector is just Pythagorean Theorem extended to more than two dimensions.\n", + "\n", + "$a^2 + b^2 = c^2$\n", + "\n", + "a = one side of a right triangle\n", + "\n", + "b = the other side\n", + "\n", + "c = the \"hypotenuse\" of a right triangle (We consider the vector that we're looking at to be the hypotenuse of a triangle\n", + "\n", + "![Pythagorean Theorem](http://mathworld.wolfram.com/images/eps-gif/PythagoreanTheoremFigure_1000.gif)\n", + "\n", + "$c = \\sqrt{a^2 + b^2}$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-INEoYRRCJep", + "colab_type": "text" + }, + "source": [ + "### Dot Product\n", + "\n", + "The dot product of two vectors $\\vec{a}$ and $\\vec{b}$ is a scalar quantity that is equal to the sum of pair-wise products of the components of vectors a and b. An example will make this make much more sense:\n", + "\n", + "\\begin{align} \\vec{a} \\cdot \\vec{b} = (a_{1} \\times b_{1}) + (a_{2} \\times b_{2}) + \\ldots + ( a_{n} \\times b_{n}) \\end{align}\n", + "\n", + "Example:\n", + "\n", + "\\begin{align}\n", + "\\vec{a} = \n", + "\\begin{bmatrix}\n", + "3 & 7 & 2 & 4\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "\\vec{b} = \n", + "\\begin{bmatrix}\n", + "4 & 1 & 12 & 6\n", + "\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "The dot product of two vectors would be:\n", + "\\begin{align}\n", + "a \\cdot b = (3)(4) + (7)(1) + (2)(12) + (4)(6) \\\\ \n", + "= 12 + 7 + 24 + 24 \\\\\n", + "= 67\n", + "\\end{align}\n", + "\n", + "The dot product is commutative: $ a \\cdot b = b \\cdot a$\n", + "\n", + "The dot product is distributive: $a \\cdot (b + c) = a \\cdot b + a \\cdot c$\n", + "\n", + "Two vectors must have the same number of components in order for the dot product to exist. If they lengths differ the dot product is undefined." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "POUdW_9A-8Wy", + "colab_type": "text" + }, + "source": [ + "## Challenge\n", + "\n", + "Being able to calculate the length of a vector is vital as a vector's length is one of the key attributes that defines it. Likewise taking the dot product of two vectors is a process that you **need** to be comfortable with as it is involved in many more complex linear algebra processes. You will practice both of these concepts as well as graphing vectors on your assignment this afternoon." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LiAs3-Mh8Lw5", + "colab_type": "text" + }, + "source": [ + "# [Matrices](#matrices)\n", + "\n", + "Student can identify the dimensionality of matrices, multiply them, identify when matrix multiplication is a legal operation, and transpose a matrix.\n", + "\n", + "A **matrix** is a rectangular grid of numbers arranged in rows and columns. Variables that represent matrices are typically written as capital letters (boldfaced as well if you want to be super formal).\n", + "\n", + "\\begin{align}\n", + "A = \n", + " \\begin{bmatrix}\n", + " 1 & 2 & 3\\\\\n", + " 4 & 5 & 6\\\\\n", + " 7 & 8 & 9\n", + " \\end{bmatrix}\n", + " \\qquad\n", + " B = \\begin{bmatrix}\n", + " 1 & 2 & 3\\\\\n", + " 4 & 5 & 6\n", + " \\end{bmatrix}\n", + " \\end{align}\n", + "\n", + "You'll notice that we arrange our dataframes in a similar grid-like pattern meaning that anything we learn about matrices also applies to the dataframes that we work with in Pandas" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "78ApIswA813p", + "colab_type": "text" + }, + "source": [ + "## Overview" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OeCWWaWmDPSn", + "colab_type": "text" + }, + "source": [ + "A **matrix** is a rectangular grid of numbers arranged in rows and columns. Variables that represent matrices are typically written as capital letters (boldfaced as well if you want to be super formal).\n", + "\n", + "\\begin{align}\n", + "A = \n", + " \\begin{bmatrix}\n", + " 1 & 2 & 3\\\\\n", + " 4 & 5 & 6\\\\\n", + " 7 & 8 & 9\n", + " \\end{bmatrix}\n", + " \\qquad\n", + " B = \\begin{bmatrix}\n", + " 1 & 2 & 3\\\\\n", + " 4 & 5 & 6\n", + " \\end{bmatrix}\n", + " \\end{align}\n", + "\n", + "You'll notice that we arrange our dataframes in a similar grid-like pattern meaning that anything we learn about matrices also applies to the dataframes that we work with in Pandas" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Qe8hTDkDDg1Y", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 155 + }, + "outputId": "ede8892f-c32a-40e1-fda0-14d2529336f6" + }, + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})\n", + "\n", + "print(df.shape)\n", + "df.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(3, 2)\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "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", + "
ab
014
125
236
\n", + "
" + ], + "text/plain": [ + " a b\n", + "0 1 4\n", + "1 2 5\n", + "2 3 6" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 32 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-ICxVWUBAWJJ", + "colab_type": "text" + }, + "source": [ + "## Follow Along" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "edqRmcp3Diqd", + "colab_type": "text" + }, + "source": [ + "### Dimensionality\n", + "\n", + "The number of rows and columns that a matrix has is called its **dimension**.\n", + "\n", + "When listing the dimension of a matrix we always list rows first and then columns. \n", + "\n", + "The dimension of matrix A is 3x3. (Note: This is read \"Three by Three\", the 'x' isn't a multiplication sign.)\n", + "\n", + "What is the Dimension of Matrix B?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_nFQuzwpDkgi", + "colab_type": "text" + }, + "source": [ + "### Matrix Equality\n", + "\n", + "In order for two Matrices to be equal the following conditions must be true:\n", + "\n", + "1) They must have the same dimensions.\n", + "\n", + "2) Corresponding elements must be equal.\n", + "\n", + "\\begin{align}\n", + " \\begin{bmatrix}\n", + " 1 & 4\\\\\n", + " 2 & 5\\\\\n", + " 3 & 6 \n", + " \\end{bmatrix} \n", + " \\neq\n", + " \\begin{bmatrix}\n", + " 1 & 2 & 3\\\\\n", + " 4 & 5 & 6\n", + " \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EpmtZFFTDoqh", + "colab_type": "text" + }, + "source": [ + "### Matrix Multiplication\n", + "\n", + "You can multipy any two matrices where the number of columns of the first matrix is equal to the number of rows of the second matrix.\n", + "\n", + "The unused dimensions of the factor matrices tell you what the dimensions of the product matrix will be.\n", + "\n", + "![Matrix Multiplication Dimensions](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRunZv20HXxTMUgrkfdER06lPnMj0HpwDU_2i4IEHsBM5098440Jw)\n", + "\n", + "There is no commutative property of matrix multiplication (you can't switch the order of the matrices and always get the same result). \n", + "\n", + "Matrix multiplication is best understood in terms of the dot product. Remember:\n", + "\n", + "\\begin{align} \\vec{a} \\cdot \\vec{b} = (a_{1} \\times b_{1}) + (a_{2} \\times b_{2}) + \\ldots + ( a_{n} \\times b_{n}) \\end{align}\n", + "\n", + "To multiply to matrices together, we will take the dot product of each row of the first matrix with each column of the second matrix. The position of the resulting entries will correspond to the row number and column number of the row and column vector that were used to find that scalar. Lets look at an example to make this more clear.\n", + "\n", + "![Dot Product Matrix Multiplication](https://www.mathsisfun.com/algebra/images/matrix-multiply-a.svg)\n", + "\n", + "\\begin{align}\n", + "\\begin{bmatrix}\n", + "1 & 2 & 3 \\\\\n", + "4 & 5 & 6\n", + "\\end{bmatrix} \n", + "\\begin{bmatrix}\n", + "7 & 8 \\\\\n", + "9 & 10 \\\\\n", + "11 & 12\n", + "\\end{bmatrix} \n", + "=\n", + "\\begin{bmatrix}\n", + "(1)(7)+(2)(9)+(3)(11) & (1)(8)+(2)(10)+(3)(12)\\\\\n", + "(4)(7)+(5)(9)+(6)(11) & (4)(8)+(5)(10)+(6)(12)\n", + "\\end{bmatrix}\n", + "=\n", + "\\begin{bmatrix}\n", + "(7)+(18)+(33) & (8)+(20)+(36)\\\\\n", + "(28)+(45)+(66) & (32)+(50)+(72)\n", + "\\end{bmatrix}\n", + "=\n", + "\\begin{bmatrix}\n", + "58 & 64\\\\\n", + "139 & 154\n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zUHeGSPGDsR8", + "colab_type": "text" + }, + "source": [ + "## Transpose\n", + "\n", + "A transposed matrix is one whose rows are the columns of the original and whose columns are the rows of the original.\n", + "\n", + "Common notation for the transpose of a matrix is to have a capital $T$ superscript or a tick mark:\n", + "\n", + "\\begin{align}\n", + "B^{T}\n", + "\\qquad\n", + "B^{\\prime}\n", + "\\end{align}\n", + "\n", + "The first is read \"B transpose\" the second is sometimes read as \"B prime\" but can also be read as \"B transpose\".\n", + "\n", + "The transpose of any matrix can be found easily by fixing the elements on the main diagonal and flipping the placement of all other elements across that diagonal.\n", + "\n", + "![Matrix Transpose](http://xaktly.com/Images/Mathematics/MatrixAlgebra/MatrixOperations/MatrixTranspose.png)\n", + " \n", + "\\begin{align}\n", + " B = \n", + "\\begin{bmatrix}\n", + " 1 & 2 & 3 \\\\\n", + " 4 & 5 & 6\n", + "\\end{bmatrix}\n", + " \\qquad\n", + " B^{T} = \n", + " \\begin{bmatrix}\n", + " 1 & 4 \\\\\n", + " 2 & 5 \\\\\n", + " 3 & 6\n", + " \\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "![Matrix Transpose](https://upload.wikimedia.org/wikipedia/commons/e/e4/Matrix_transpose.gif)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jLTfBIRqDxtS", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 138 + }, + "outputId": "9a98b11a-d2de-4d6e-9c44-2a4564e03ed9" + }, + "source": [ + "df" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
ab
014
125
236
\n", + "
" + ], + "text/plain": [ + " a b\n", + "0 1 4\n", + "1 2 5\n", + "2 3 6" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 33 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "v31YheDkDyPC", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 108 + }, + "outputId": "03feef30-301e-4146-99b1-2d2201ca7dce" + }, + "source": [ + "# Transposing a dataframe switches its rows and columns\n", + "df.T" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
012
a123
b456
\n", + "
" + ], + "text/plain": [ + " 0 1 2\n", + "a 1 2 3\n", + "b 4 5 6" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "raeSObVN-9Fa", + "colab_type": "text" + }, + "source": [ + "## Challenge\n", + "\n", + "Throughout the week we will be learning how the princples of mathematical matrices apply to our datasets. We'll be focusing mostly on math topics and techniques but as the week goes on we will be making more and more connections back to how we think about and work with our datasets.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gRXqzzUE8L87", + "colab_type": "text" + }, + "source": [ + "# [Square Matrices](#square-matrices)\n", + "\n", + "Student can identify special types of square matrices including the identity matrix, as well as find the determinant and inverse of a matrix." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xqc2Eejw82eD", + "colab_type": "text" + }, + "source": [ + "## Overview\n", + "\n", + "In a traditional linear algebra class after the first few weeks you would deal almost exclusively with square matrices. They have very nice properties that their lopsided sisters and brothers just don't possess. \n", + "\n", + "A square matrix is any matrix that has the same number of rows as columns:\n", + "\n", + "\\begin{align}\n", + "A =\n", + "\\begin{bmatrix}\n", + " a_{1,1}\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "B =\n", + "\\begin{bmatrix}\n", + "b_{1,1} & b_{1,2} \\\\\n", + "b_{2,1} & b_{2,2}\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "C =\n", + "\\begin{bmatrix}\n", + "c_{1,1} & c_{1,2} & c_{1,3} \\\\\n", + "c_{2,1} & c_{2,2} & c_{2,3} \\\\\n", + "c_{3,1} & c_{3,2} & c_{3,3} \n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RcB6ruT3AYUt", + "colab_type": "text" + }, + "source": [ + "## Follow Along\n", + "\n", + "### Special Kinds of Square Matrices\n", + "\n", + "**Diagonal:** Values on the main diagonal, zeroes everywhere else.\n", + "\n", + "\\begin{align}\n", + "A =\n", + "\\begin{bmatrix}\n", + "a_{1,1} & 0 & 0 \\\\\n", + "0 & a_{2,2} & 0 \\\\\n", + "0 & 0 & a_{3,3} \n", + "\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "**Upper Triangular:** Values on and above the main diagonal, zeroes everywhere else.\n", + "\n", + "\\begin{align}\n", + "B =\n", + "\\begin{bmatrix}\n", + "b_{1,1} & b_{1,2} & b_{1,3} \\\\\n", + "0 & b_{2,2} & b_{2,3} \\\\\n", + "0 & 0 & b_{3,3} \n", + "\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "**Lower Triangular:** Values on and below the main diagonal, zeroes everywhere else.\n", + "\n", + "\\begin{align}\n", + "C =\n", + "\\begin{bmatrix}\n", + "c_{1,1} & 0 & 0 \\\\\n", + "c_{2,1} & c_{2,2} & 0 \\\\\n", + "c_{3,1} & c_{3,2} & c_{3,3} \n", + "\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "**Identity Matrix:** A diagonal matrix with ones on the main diagonal and zeroes everywhere else. The product of the any square matrix and the identity matrix is the original square matrix $AI == A$. Also, any matrix multiplied by its inverse will give the identity matrix as its product. $AA^{-1} = I$\n", + "\n", + "\\begin{align}\n", + "D =\n", + "\\begin{bmatrix}\n", + " 1\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "E =\n", + "\\begin{bmatrix}\n", + "1 & 0 \\\\\n", + "0 & 1\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "F =\n", + "\\begin{bmatrix}\n", + "1 & 0 & 0 \\\\\n", + "0 & 1 & 0 \\\\\n", + "0 & 0 & 1 \n", + "\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "**Symmetric:** The numbers above the main diagonal are mirrored below/across the main diagonal.\n", + "\n", + "\\begin{align}\n", + "G =\n", + "\\begin{bmatrix}\n", + "1 & 4 & 5 \\\\\n", + "4 & 2 & 6 \\\\\n", + "5 & 6 & 3 \n", + "\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yXN3mVFdFNpL", + "colab_type": "text" + }, + "source": [ + "### Determinant\n", + "\n", + "The determinant is a property that all square matrices possess and is denoted $det(A)$ or using pipes (absolute value symbols) $|A|$\n", + "\n", + "The equation given for finding the determinant of a 2x2 matrix is as follows:\n", + "\n", + "\\begin{align}\n", + "A = \\begin{bmatrix}\n", + "a & b \\\\\n", + "c & d\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "|A| = ad-bc\n", + "\\end{align}\n", + "\n", + "The determinant of larger square matrices recursively by finding the determinats of the smaller matrics that make up the large matrix.\n", + "\n", + "For example:\n", + "\n", + "
\n", + "\n", + "The above equation is **very** similar to the equation that we use to find the cross-product of a 3x3 matrix. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "c6DsBxGmFOvA", + "colab_type": "text" + }, + "source": [ + "### Inverse\n", + "\n", + " There are multiple methods that we could use to find the inverse of a matrix by hand. I would suggest you explore those methods --if this content isn't already overwhelming enough. The inverse is like the reciprocal of the matrix that was used to generate it. Just like $\\frac{1}{8}$ is the reciprocal of 8, $A^{-1}$ acts like the reciprocal of $A$. The equation for finding the determinant of a 2x2 matrix is as follows:\n", + " \n", + " \\begin{align}\n", + "A = \\begin{bmatrix}\n", + "a & b \\\\\n", + "c & d\n", + "\\end{bmatrix}\n", + "\\qquad\n", + "A^{-1} = \\frac{1}{ad-bc}\\begin{bmatrix}\n", + "d & -b\\\\\n", + "-c & a\n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ByOCfNwyFTN7", + "colab_type": "text" + }, + "source": [ + " ### What happens if we multiply a matrix by its inverse?\n", + "\n", + "The product of a matrix multiplied by its inverse is the identity matrix of the same dimensions as the original matrix. There is no concept of \"matrix division\" in linear algebra, but multiplying a matrix by its inverse is very similar since $8\\times\\frac{1}{8} = 1$. \n", + "\n", + "\\begin{align}\n", + "A^{-1}A = I \n", + "\\end{align}\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oSoPNVMeFVsP", + "colab_type": "text" + }, + "source": [ + "### Not all matrices are invertible\n", + "\n", + "Matrices that are not square are not invertible.\n", + " \n", + " A matrix is invertible if and only if its determinant is non-zero. You'll notice that the fraction on the left side of the matrix is $\\frac{1}{det(A)}$.\n", + " \n", + " As you know, dividing anything by 0 leads to an undefined quotient. Therefore, if the determinant of a matrix is 0, then the entire inverse becomes undefined. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CpZ-2b5HFYpM", + "colab_type": "text" + }, + "source": [ + "### What leads to a 0 determinant?\n", + " \n", + " A square matrix that has a determinant of 0 is known as a \"singular\" matrix. One thing that can lead to a matrix having a determinant of 0 is if two rows or columns in the matrix are perfectly collinear. Another way of saying this is that the determinant will be zero if the rows or columns of a matrix are not linearly dependent. \n", + " \n", + "One of the most common ways that a matrix can end up having rows that are linearly dependent is if one column a multiple of another column. Lets look at an example:\n", + "\n", + "\\begin{align}\n", + "C =\\begin{bmatrix}\n", + " 1 & 5 & 2 \\\\\n", + " 2 & 7 & 4 \\\\\n", + " 3 & 2 & 6\n", + "\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "Look at the columns of the above matrix, column 3 is exactly double column 1. (could be any multiple or fraction) Think about if you had some measure in a dataset of distance in miles, but then you also wanted to convert its units to feet, so you create another column and multiply the mile measure by 5,280 (Thanks Imperial System). But then you forget to drop one of the columns so you end up with two columns that are linearly dependent which causes the determinant of your dataframe to be 0 and will cause certain algorithms to fail. We'll go deeper into this concept next week (this can cause problems with linear regression) so just know that matrices that have columns that are a multiple or fraction of another column will cause the determinant of that matrix to be 0." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2Q0YqSGF-9vI", + "colab_type": "text" + }, + "source": [ + "## Challenge\n", + "\n", + "Square Matrices have many important properties like the inverse and determinant that we will be using in the future. For more details about the implications of a square matrix having an inverse you can try googling the \"Invertible Matrix Theorem\" mastering and proving the different partso of this theorem is one of the main focuses of traditional linear algebra education." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z_fYkKbT8MGj", + "colab_type": "text" + }, + "source": [ + "# [Doing Linear Algebra with NumPy](#linear-algebra-NumPy)\n", + "\n", + "Student can use NumPy to perform basic Linear Algebra operations with Python.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VL30GAl-tcpl", + "colab_type": "text" + }, + "source": [ + "## Overview\n", + "\n", + "NumPy is at the core of many types of scientific computing and is the main tool that we will use to perform Linear Algebra operations with Python. \n", + "\n", + "We have talked about how vectors are a lot like Python Lists, however we will mostly use NumPy arrays instead of Python lists as the main data structure. Lets demonstrate some of the main differences betwen Python lists and NumPy Arrays." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3FJDPjwytDfZ", + "colab_type": "code", + "colab": {} + }, + "source": [ + "### What will happen when I add the two Python lists together?\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "SFtJF1symxuY", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Lets create two 1-Dimensional NumPy arrays and add them together?\n", + "# What do you think the result will be?\n", + "\n", + "# Array Broadcasting\n", + "# Doing some arithmetic operation to vectors \"element-wise\"\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wVuKmynAm5qF", + "colab_type": "text" + }, + "source": [ + "What we have just demonstrated is one of the primary benefits of NumPy and it is called \"Array Broadcasting\" This means that arithmetic operations happen \"element-wise\"" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dIOBi3uznKnx", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Qd5bsOXUnNL2", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "vLSUyDEYnPMo", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iqjRIRFItg3X", + "colab_type": "text" + }, + "source": [ + "## Follow Along\n", + "\n", + "Lets calculate a dot product. What do we need to do? We need to multiply two vectors \"element-wise\" and them sum up all of those products" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ZcGlUN55qoGt", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Find the dot product of vectos a and b\n", + "\n", + "# Dot Product\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "p1BE4P3lnr1-", + "colab_type": "text" + }, + "source": [ + "We can also use provided linear algebra functions from the [np.linalg](https://docs.scipy.org/doc/numpy-1.15.1/reference/routines.linalg.html) documentation in order to perform Linear Algebra processes." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cqDPG2GCoFFR", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yh5x6DXVouPW", + "colab_type": "text" + }, + "source": [ + "### 1-Dimensional vs 2-Dimensional NumPy Arrays\n", + "\n", + "One dimensional NumPy arrays can be used to represent vectors but cannot be used to differentiate between row and column vectors.\n", + "\n", + "\\begin{align}\n", + "\\text{column vector} = \\begin{bmatrix}1 \\\\ 2 \\\\ 3\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "\\begin{align}\n", + "\\text{row vector} = \\begin{bmatrix} 1 & 2 & 3\\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "Notice that one dimensional arrays do not have a second element listed for their shape. so that there is no way to tell if they represent column vectors or row vectors" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "clrA_q4PpXgk", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "RrmCLJXlqZLb", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Notice how only the number of items in the array is listed\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Dt6h6fMQqy6N", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# And if we swap rows and columns the shape does not change\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LXOIB20Lq2j0", + "colab_type": "text" + }, + "source": [ + "### If I explicitly want a row of column vector then I need to use a 2D NumPy Array" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "CAMZw2Eqq6e5", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-CaNxeTao4ZQ", + "colab_type": "text" + }, + "source": [ + "### Only use NumPy Arrans, DO NOT use the NumPy Matrix class.\n", + "\n", + "NumPy has a matrix class which can be used for representing matrices. However, I don't want you to use that datatype because it will be removed from NumPy in the future. However, I want you to be aware that this other datatype exists so that you don't get confused when you look at stack overflow posts or other tutorials that use the matrix datatype. Keep an eye out for resources that use it and just know that they will soon be outdated. Anything that can be done with the matrix class can also be done with simple NumPY arrays." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "omwR_dinrAzW", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Do not work with this datatype\n", + "# This will be removed from NumPy in the future\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jc0AVYysrCnu", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "mJuJLkWBrEae", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "82IobIitrGVD", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Matrix as a NumPy Array\n", + "\n", + "# ndarrays\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "irmsHsjOrJM4", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "SaEc-xYyrNLi", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "uXEg00GGs4hA", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YX3kcdK9tjIy", + "colab_type": "text" + }, + "source": [ + "## Challenge\n", + "\n", + "In your afternoon assignment you will perform many different linear algebra functions using NumPy. Many of which will be done easily by using these [Helpful NumPy Linear Algebra Functions](https://docs.scipy.org/doc/numpy-1.15.1/reference/routines.linalg.html) found in the NumPy documentation." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Q0YtPR54tmW0", + "colab_type": "text" + }, + "source": [ + "# Review\n", + "\n", + "Lets good at working with vectors and matrices with NumPy!\n", + "\n", + "Remember that you'll need many functions from [the documentation](https://docs.scipy.org/doc/numpy-1.15.1/reference/routines.linalg.html) in order to complete the assignment\n", + "\n", + "Remember to use 2D NumPy arrays to represent row/column vectors as well as matrices and please share any helpful resources that you find in the cohort channel." + ] + } + ] +} \ No newline at end of file diff --git a/Copy_of_LS_DS_132_Intermediate_Linear_Algebra_Assignment.ipynb b/Copy_of_LS_DS_132_Intermediate_Linear_Algebra_Assignment.ipynb new file mode 100644 index 00000000..18ea1055 --- /dev/null +++ b/Copy_of_LS_DS_132_Intermediate_Linear_Algebra_Assignment.ipynb @@ -0,0 +1,2701 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of LS_DS_132_Intermediate_Linear_Algebra_Assignment.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GSNiYn8lr6nN", + "colab_type": "text" + }, + "source": [ + "# Statistics" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3d4izUhQvh2_", + "colab_type": "text" + }, + "source": [ + "## 1.1 Sales for the past week was the following amounts: [3505, 2400, 3027, 2798, 3700, 3250, 2689]. Without using library functions, what is the mean, variance, and standard deviation of of sales from last week? (for extra bonus points, write your own function that can calculate these two values for any sized list)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OHcwzoJ-zGXg", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import math\n", + "import numpy as np\n", + "import pandas as pd" + ], + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "w1iZfYvBtEA1", + "colab_type": "code", + "colab": {} + }, + "source": [ + "sales = [3505,2400,3027,2798,3700,3250,2689]" + ], + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "KJ3otqJUrG7w", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "de3eba80-e27f-48ab-e75b-035d4b12ceef" + }, + "source": [ + "total = sum(sales)\n", + "total" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "21369" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "q0uj1PWvrPQx", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "8ae308c5-fa96-4864-8ec4-4346b0c141ef" + }, + "source": [ + "mean_sales = total/len(sales)\n", + "mean_sales" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3052.714285714286" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TQIeiBHUrVD1", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "1bdff3a9-b1ac-4128-c943-957ef6367ad2" + }, + "source": [ + "def subtract_mean(number):\n", + " return number - mean_sales\n", + "lambda x: x-mean_sales" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + ">" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6S3ZdKwwxg7I", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 140 + }, + "outputId": "8d7c389d-babd-4688-9929-222ace724057" + }, + "source": [ + "distances = list(map(subtract_mean, sales))\n", + "distances" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[452.2857142857142,\n", + " -652.7142857142858,\n", + " -25.71428571428578,\n", + " -254.71428571428578,\n", + " 647.2857142857142,\n", + " 197.28571428571422,\n", + " -363.7142857142858]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rHWyZ0q_xhAI", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 140 + }, + "outputId": "b0db27fa-714a-41e7-f136-7bd995d6e156" + }, + "source": [ + "squared_distances = list(map(lambda x: x**2, distances))\n", + "squared_distances" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[204562.36734693873,\n", + " 426035.9387755103,\n", + " 661.2244897959217,\n", + " 64879.36734693881,\n", + " 418978.7959183673,\n", + " 38921.65306122446,\n", + " 132288.0816326531]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "7afI80itxhEn", + "colab_type": "code", + "colab": {} + }, + "source": [ + "list_length = len(squared_distances)" + ], + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "hAyowuJKxhKf", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "f674ce4f-ce4d-4a75-924e-4306a832a48f" + }, + "source": [ + "variance_sales = sum(squared_distances)/list_length\n", + "variance_sales" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "183761.06122448976" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ttRcY-0ezBjS", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "463d17c1-2a54-4e70-a758-19c70e5fb28e" + }, + "source": [ + "std_sales = math.sqrt(variance_sales)\n", + "std_sales" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "428.67360686714756" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 11 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oh63KaOctEp_", + "colab_type": "text" + }, + "source": [ + "## 1.2 Find the covariance between last week's sales numbers and the number of customers that entered the store last week: [127, 80, 105, 92, 120, 115, 93] (you may use librray functions for calculating the covariance since we didn't specifically talk about its formula)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "G7ZB0krot564", + "colab_type": "code", + "colab": {} + }, + "source": [ + "customers = [127,80,105,92,120,115,93]" + ], + "execution_count": 12, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "MM6SUeRvzogO", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 110 + }, + "outputId": "495e5e2f-2553-406e-a3f9-91977a84b5e4" + }, + "source": [ + "pd.DataFrame(np.cov(sales,customers))" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
01
0214387.9047627604.357143
17604.357143290.952381
\n", + "
" + ], + "text/plain": [ + " 0 1\n", + "0 214387.904762 7604.357143\n", + "1 7604.357143 290.952381" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 13 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "pLsNTETszov8", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 264 + }, + "outputId": "1d8beb67-ed88-4f52-db16-7fc153836bef" + }, + "source": [ + "sales_cust = pd.DataFrame({'sales':sales})\n", + "sales_cust['customers'] = pd.Series(customers)\n", + "sales_cust\n" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
salescustomers
03505127
1240080
23027105
3279892
43700120
53250115
6268993
\n", + "
" + ], + "text/plain": [ + " sales customers\n", + "0 3505 127\n", + "1 2400 80\n", + "2 3027 105\n", + "3 2798 92\n", + "4 3700 120\n", + "5 3250 115\n", + "6 2689 93" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "oDGVyhr30tlF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 110 + }, + "outputId": "912f30b2-2436-433a-d51e-ba4632db66b8" + }, + "source": [ + "sales_cust.cov()" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
salescustomers
sales214387.9047627604.357143
customers7604.357143290.952381
\n", + "
" + ], + "text/plain": [ + " sales customers\n", + "sales 214387.904762 7604.357143\n", + "customers 7604.357143 290.952381" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 15 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "J9SbUY9mt66I", + "colab_type": "text" + }, + "source": [ + "## 1.3 Find the standard deviation of customers who entered the store last week. Then, use the standard deviations of both sales and customers to standardize the covariance to find the correlation coefficient that summarizes the relationship between sales and customers. (You may use library functions to check your work.)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jhb1BJ1w_dQQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "1bdecd20-95d2-4e30-d97e-5b70a99ba738" + }, + "source": [ + "total_cust = sum(customers)\n", + "mean_cust = total_cust/len(customers)\n", + "mean_cust" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "104.57142857142857" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "22-nFDUh_dW9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "e74fd57f-5229-4dea-df86-342091c31c70" + }, + "source": [ + "def subtract_mean(number):\n", + " return number - mean_cust\n", + "lambda x: x-mean_cust" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + ">" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "xvhKLqjx_dUF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 140 + }, + "outputId": "4dbb5e67-a6e7-4b38-adde-85468fc3da41" + }, + "source": [ + "distances1 = list(map(subtract_mean, customers))\n", + "distances1" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[22.42857142857143,\n", + " -24.57142857142857,\n", + " 0.4285714285714306,\n", + " -12.57142857142857,\n", + " 15.42857142857143,\n", + " 10.42857142857143,\n", + " -11.57142857142857]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "wKofBoJ9_dNP", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 140 + }, + "outputId": "62e3e23f-cc35-4ec5-fb9d-ab4182012834" + }, + "source": [ + "squared_distances1 = list(map(lambda x: x**2, distances1))\n", + "squared_distances1" + ], + "execution_count": 19, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[503.0408163265307,\n", + " 603.7551020408163,\n", + " 0.18367346938775683,\n", + " 158.04081632653057,\n", + " 238.0408163265307,\n", + " 108.75510204081637,\n", + " 133.89795918367344]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 19 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vFJms2YRrKhY", + "colab_type": "code", + "colab": {} + }, + "source": [ + "list_length1 = len(squared_distances1)" + ], + "execution_count": 20, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "UjISMxHAANt4", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "2123e97a-15a9-4580-9a1e-6f26075fd4db" + }, + "source": [ + "variance_cust = sum(squared_distances1)/list_length1\n", + "variance_cust" + ], + "execution_count": 21, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "249.3877551020408" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 21 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DSeh4ZihANzG", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "6a739de4-5866-4190-b954-d2631beb7104" + }, + "source": [ + "std_cust = math.sqrt(variance_cust)\n", + "std_cust" + ], + "execution_count": 22, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "15.792015549069118" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "amVwa2bmAN4M", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "1156b877-7938-44cf-ede8-b9402cb1309b" + }, + "source": [ + "print(std_cust, std_sales)" + ], + "execution_count": 23, + "outputs": [ + { + "output_type": "stream", + "text": [ + "15.792015549069118 428.67360686714756\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "V-h8qVNdqYmN", + "colab_type": "code", + "colab": {} + }, + "source": [ + "factory = pd.DataFrame({'sales': sales})" + ], + "execution_count": 24, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "cpQ5pcfoqxOE", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 264 + }, + "outputId": "e471a537-578a-437e-b97b-ca0eae459e7d" + }, + "source": [ + "factory['customers'] = pd.Series(customers)\n", + "factory" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
salescustomers
03505127
1240080
23027105
3279892
43700120
53250115
6268993
\n", + "
" + ], + "text/plain": [ + " sales customers\n", + "0 3505 127\n", + "1 2400 80\n", + "2 3027 105\n", + "3 2798 92\n", + "4 3700 120\n", + "5 3250 115\n", + "6 2689 93" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 25 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "P6fEwBz8A-nF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "9a260494-4f01-441a-d009-4e585912da8f" + }, + "source": [ + "cov_sc = factory['sales'].cov(factory['customers'])\n", + "cov_sc" + ], + "execution_count": 26, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "7604.357142857142" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 26 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Zmqvd-JpA-r4", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "70a59043-3683-4d07-d1f9-85c1c4505444" + }, + "source": [ + "denom = std_sales * std_cust\n", + "denom" + ], + "execution_count": 27, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "6769.620265121536" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 27 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XBAMfoQMA-wi", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "f24a80e8-9195-42de-c0ea-d8ce11c434f9" + }, + "source": [ + "corr_sc = cov_sc/denom\n", + "corr_sc" + ], + "execution_count": 28, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1.123306307450706" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 28 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IbZVf7nmujPJ", + "colab_type": "text" + }, + "source": [ + "## 1.4 Use pandas to import a cleaned version of the titanic dataset from the following link: [Titanic Dataset](https://raw.githubusercontent.com/Geoyi/Cleaning-Titanic-Data/master/titanic_clean.csv)\n", + "\n", + "## Calculate the variance-covariance matrix and correlation matrix for the titanic dataset's numeric columns. (you can encode some of the categorical variables and include them as a stretch goal if you finish early)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0TWgUIiaCFzq", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 289 + }, + "outputId": "a0112323-1afd-4d26-e114-1692408647f8" + }, + "source": [ + "titanic = pd.read_csv('https://raw.githubusercontent.com/Geoyi/Cleaning-Titanic-Data/master/titanic_clean.csv')\n", + "titanic.head()" + ], + "execution_count": 29, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + "
Unnamed: 0pclasssurvivednamesexagesibspparchticketfarecabinembarkedboatbodyhome.desthas_cabin_number
011.01.0Allen, Miss. Elisabeth Waltonfemale29.00000.00.024160211.3375B5S2NaNSt Louis, MO1
121.01.0Allison, Master. Hudson Trevormale0.91671.02.0113781151.5500C22 C26S11NaNMontreal, PQ / Chesterville, ON1
231.00.0Allison, Miss. Helen Lorainefemale2.00001.02.0113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON1
341.00.0Allison, Mr. Hudson Joshua Creightonmale30.00001.02.0113781151.5500C22 C26SNaN135.0Montreal, PQ / Chesterville, ON1
451.00.0Allison, Mrs. Hudson J C (Bessie Waldo Daniels)female25.00001.02.0113781151.5500C22 C26SNaNNaNMontreal, PQ / Chesterville, ON1
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 pclass ... home.dest has_cabin_number\n", + "0 1 1.0 ... St Louis, MO 1\n", + "1 2 1.0 ... Montreal, PQ / Chesterville, ON 1\n", + "2 3 1.0 ... Montreal, PQ / Chesterville, ON 1\n", + "3 4 1.0 ... Montreal, PQ / Chesterville, ON 1\n", + "4 5 1.0 ... Montreal, PQ / Chesterville, ON 1\n", + "\n", + "[5 rows x 16 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 29 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "DmScnWEWDYYL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 326 + }, + "outputId": "0eddf175-43c4-47c8-a4e0-92ee474a34fa" + }, + "source": [ + "titanic.cov()" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + " \n", + " \n", + " \n", + "
Unnamed: 0pclasssurvivedagesibspparchfarebodyhas_cabin_number
Unnamed: 0143117.500000284.357034-53.967125-1442.93981225.8287461.172783-9410.735123591.579132-95.438885
pclass284.3570340.701969-0.127248-3.9546050.0530900.013287-24.227788-2.876653-0.249992
survived-53.967125-0.1272480.236250-0.314343-0.0140880.0347766.1460230.0000000.061406
age-1442.939812-3.954605-0.314343165.850021-2.559806-1.459378114.41661381.6229221.463138
sibsp25.8287460.053090-0.014088-2.5598061.0850520.3368338.641768-8.708471-0.003946
parch1.1727830.0132870.034776-1.4593780.3368330.7491959.9280314.2371900.013316
fare-9410.735123-24.2277886.146023114.4166138.6417689.9280312678.959738-179.16468410.976961
body591.579132-2.8766530.00000081.622922-8.7084714.237190-179.1646849544.6885673.625689
has_cabin_number-95.438885-0.2499920.0614061.463138-0.0039460.01331610.9769613.6256890.174613
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 pclass ... body has_cabin_number\n", + "Unnamed: 0 143117.500000 284.357034 ... 591.579132 -95.438885\n", + "pclass 284.357034 0.701969 ... -2.876653 -0.249992\n", + "survived -53.967125 -0.127248 ... 0.000000 0.061406\n", + "age -1442.939812 -3.954605 ... 81.622922 1.463138\n", + "sibsp 25.828746 0.053090 ... -8.708471 -0.003946\n", + "parch 1.172783 0.013287 ... 4.237190 0.013316\n", + "fare -9410.735123 -24.227788 ... -179.164684 10.976961\n", + "body 591.579132 -2.876653 ... 9544.688567 3.625689\n", + "has_cabin_number -95.438885 -0.249992 ... 3.625689 0.174613\n", + "\n", + "[9 rows x 9 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1xdZgKaiDYgE", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 326 + }, + "outputId": "4dd5d07c-f4dc-4cc5-959f-41f799b0bade" + }, + "source": [ + "titanic.corr()" + ], + "execution_count": 31, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + " \n", + " \n", + " \n", + "
Unnamed: 0pclasssurvivedagesibspparchfarebodyhas_cabin_number
Unnamed: 01.0000000.897822-0.293717-0.2961720.0655940.003584-0.4812150.015558-0.603727
pclass0.8978221.000000-0.312469-0.3663700.0608320.018322-0.558629-0.034642-0.713857
survived-0.293717-0.3124691.000000-0.050199-0.0278250.0826600.244265NaN0.302250
age-0.296172-0.366370-0.0501991.000000-0.190747-0.1308720.1718920.0590590.271887
sibsp0.0655940.060832-0.027825-0.1907471.0000000.3735870.160238-0.099961-0.009064
parch0.0035840.0183220.082660-0.1308720.3735871.0000000.2215390.0510990.036806
fare-0.481215-0.5586290.2442650.1718920.1602380.2215391.000000-0.0431100.507253
body0.015558-0.034642NaN0.059059-0.0999610.051099-0.0431101.0000000.083796
has_cabin_number-0.603727-0.7138570.3022500.271887-0.0090640.0368060.5072530.0837961.000000
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 pclass ... body has_cabin_number\n", + "Unnamed: 0 1.000000 0.897822 ... 0.015558 -0.603727\n", + "pclass 0.897822 1.000000 ... -0.034642 -0.713857\n", + "survived -0.293717 -0.312469 ... NaN 0.302250\n", + "age -0.296172 -0.366370 ... 0.059059 0.271887\n", + "sibsp 0.065594 0.060832 ... -0.099961 -0.009064\n", + "parch 0.003584 0.018322 ... 0.051099 0.036806\n", + "fare -0.481215 -0.558629 ... -0.043110 0.507253\n", + "body 0.015558 -0.034642 ... 1.000000 0.083796\n", + "has_cabin_number -0.603727 -0.713857 ... 0.083796 1.000000\n", + "\n", + "[9 rows x 9 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7K0Xfh8MvYkl", + "colab_type": "text" + }, + "source": [ + "# Orthogonality" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Pe3eOZ2fvdZ-", + "colab_type": "text" + }, + "source": [ + "## 2.1 Plot two vectors that are orthogonal to each other. What is a synonym for orthogonal?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "YLSBk7hJvvCx", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import matplotlib.pyplot as plt" + ], + "execution_count": 32, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "SwzY7eUXEvwT", + "colab_type": "code", + "colab": {} + }, + "source": [ + "vector_1 = [2,2]\n", + "vector_2 = [1,-1]" + ], + "execution_count": 33, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "qtmpGujmEv4Y", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "7d9dd45f-69e1-4d76-bc53-e24b06d9bf79" + }, + "source": [ + "fig, ax = plt.subplots(figsize=(4,4))\n", + "ax.grid()\n", + "plt.xlim(-1,4) \n", + "plt.ylim(-2,4)\n", + "\n", + "# Plot the vectors\n", + "for vect in [vector_1, vector_2]:\n", + " plt.arrow(0,0, vect[0], vect[1],\n", + " head_width=.2,\n", + " head_length=.2, \n", + " linewidth=4)" + ], + "execution_count": 34, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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0zFo0CDTef/+/fHxxx/bnIooeiw5+K6q21R1uKoOUdXXrFinG9XW1mLRokWms0mTJuEXv/iFzYmIooNn5XRQfn5+0Ddcef7555Genv7vnbBEMYvFcBNycnKuHbq80cGDBxEXF4eLFy/anIrIOiyGmzR48GBcuXIl6Dw5ORkVFRU2JiKyDoshAvHx8VBVzJkzx3Q+evRovPPOOzanIooci8ECf/jDH7B+/XrT2dy5czFr1iybExFFhsVgkcceewyVlZWms82bN0NEQm56ELkJi8FCaWlpaGhoCDrv1q0bTp48aWMiopvDYrBY9+7doaqYPHmy6Tw1NTXoadZEbsFiiJLdu3fjjTfeMJ099NBDmDdvns2JiMLHYoiihQsX4pNPPjGd/fa3v0W/fv14ERa5Eoshyu6++258+eWXprNz587B4/HgzJkzNqciCo3FYIO+ffsiEAgEfccnr9eL3bt32xuKKAQWg01EBNXV1Vi82Py9cu+99168+uqrNqciMsdisNmyZcuwY8cO09lLL72EMWPG8CIschyLwQHZ2dk4ffq06ay8vBxxcXHw+/02pyL6fywGhwwcOBDNzc1BP9+yV69e+Oyzz2xORdSCxeAgj8eDQCCAJ554wnQ+duxYrFq1yuZURCwGV1i3bh02bNhgOnv66acxffp0mxNRV8dicIlHHnkEx48fN51t27YNIoLLly/bnIq6KhaDiwwdOhSNjY1B54mJiaiurrYxEXVVLAaXSUpKgqoiKyvLdH777bdj06ZNNqeirobF4FK7du3CihUrTGff+9738PTTT9uciLoSFoOLzZ8/H6WlpaazVatWoUePHrwIi6KCxeByd911F86fP286a2xshMfjgc/nszkVdXYshhjQu3dvBAIBDB061HQ+YMAAFBcXB/16VcVXX30VpXTUGbEYYoSI4Pjx43jxxRdN55mZmVi6dKnhcb/fj9zcXCxbtizKCakzYTHEmFdeeQW7du0ynb388ssYMWLEtYuwqqurMXHiRGzcuBFr1qzheRAUtoiKQURyReSwiAREJMOqUBRaVlYW6urqTGeVlZWIi4vD+fPncffdd6O8vBwA4PP5eJiTwhbpK4YKAA8DKLEgC3XAgAED0NzcjMTERNP5iRMnUF9f3+axlStX2hGNOoGIikFVj6pqlVVhqGM8Hg8uXbqEuXPnhrV8SUkJDh8+HOVU1BlwH0MnsHr1avzmN78Ja9m33347ymmoM5D23i1IRHYC+IbJ6OequqV1mWIAz6nqgRDryQOQBwBerze9oKDgZjM7wu/3Izk52ekYphoaGnDixIk2n3SVkpLS8onccfFAoPna43FxcRg7dizi4tz3N8HN3+NgYi1zZmZmqaq2vz9QVSO+ASgGkBHu8sOHD9dYU1RU5HQEU+vWrdPExEQF0OaWn5+vALTPxDmKuPg2s9/97ndOxzbl1u9xKLGWGcABDeN31H1/Nigszc3N+MlPfoInn3wSTU1NQZc7//GGNq8YgJadkMr3laQQIj1cOUtEagBMAPBXEfnAmlgUjtzcXCxduhSTJk2Cx+MJ++vKysqwb9++KCajWBfpUYk/qWqKqiaq6gBV/Q+rglFo8fHxmDhxIpYsWYIPP/wQ9fX12Lx5M+bNm4dhw4a1+/U8dEmhcFOik+jTpw9mzpyJN998E8eOHcPo0aPx+9//Hrm5ufja175mWP799983nOdA9G8shk6qW7dueOqpp1BQUACfz4f9+/fjtddew5QpU5CQkICmpiasXbvW6ZjkUvFOB6Do83g8yMjIQEZGBl544QVcvHgRJSUl+Pzzz52ORi7FYuiCevbsiWnTpjkdg1yMmxJEZMBiICIDFgMRGbAYiMiAxUBEBiwGIjJgMRCRAYuBiAxYDERkwGIgIgMWAxEZsBiIyIDFQEQGLAYiMmAxEJEBi4GIDFgMRGTAYiAiAxYDERmwGIjIgMVARAYsBiIyYDEQkQGLgYgMIv206+UiUikin4nIn0Skr1XBiMg5kb5iKAQwSlXHADgG4PnIIxGR0yIqBlXdoarNrXf3AkiJPBIROc3Kz678LwDvBxuKSB6AvNa7TSJSYeFz26E/gDNOh+iAWMsLMLMd0sJZSFQ19AIiOwF8w2T0c1Xd0rrMzwFkAHhY21thy/IHVDUjnIBuEWuZYy0vwMx2CDdvu68YVPX+dp7oPwHMADA1nFIgIveLaFNCRHIA/AzAfaraYE0kInJapEcl3gTQC0ChiJSJyNthft2qCJ/XCbGWOdbyAsxsh7DytruPgYi6Hp75SEQGLAYiMnCsGEQkV0QOi0hARFx7uEdEckSkSkROiMhip/O0R0TeERFfrJwnIiK3ikiRiBxp/XlY4HSm9ohIkoh8IiKftmZ+2elM4RARj4gcEpGt7S3r5CuGCgAPAyhxMENIIuIB8BaAaQBGApgjIiOdTdWutQBynA7RAc0AFqnqSADjAcyLge9xE4AsVR0LYByAHBEZ73CmcCwAcDScBR0rBlU9qqpVTj1/mL4N4ISqfq6qlwG8B2Cmw5lCUtUSAGedzhEuVf1CVQ+2/vsrtPzgDnY2VWjawt96N6H15uq9+CKSAmA6gNXhLM99DKENBnDquvs1cPkPbSwTkVQAdwLY52yS9rW+LC8D4ANQqKpuz/wrtJxzFAhn4agWg4jsFJEKk5ur/+qS/UQkGcBGAAtV9YLTedqjqldVdRxaLhz8toiMcjpTMCIyA4BPVUvD/RorL6IyaO906hhQC+DW6+6ntD5GFhKRBLSUwruqusnpPB2hqudEpAgt+3XcusN3EoAHReQBAEkAeovIelX9QbAv4KZEaPsBDBORb4pINwCPAPizw5k6FRERAGsAHFXV153OEw4R8f77TYlEpDuAbACVzqYKTlWfV9UUVU1Fy8/w30KVAuDs4cpZIlIDYAKAv4rIB05lCab1vSbmA/gALTvFClT1sLOpQhORDQD2AEgTkRoRmet0pnZMAvA4gKzW0+rLWv+yudlAAEUi8hla/ngUqmq7hwBjCU+JJiIDbkoQkQGLgYgMWAxEZMBiICIDFgMRGbAYiMiAxUBEBv8HIL9kFOPp6gEAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7AS4V1Nhvvxz", + "colab_type": "text" + }, + "source": [ + "## 2.2 Are the following vectors orthogonal? Why or why not?\n", + "\n", + "\\begin{align}\n", + "a = \\begin{bmatrix} -5 \\\\ 3 \\\\ 7 \\end{bmatrix}\n", + "\\qquad\n", + "b = \\begin{bmatrix} 6 \\\\ -8 \\\\ 2 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "F_-y54YSz47k", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "9ee7b6fa-039c-4fbe-8130-0e92cbb1d152" + }, + "source": [ + "a = np.array([-5,3,7])\n", + "b = np.array([6,-8,2])\n", + "np.dot(a,b)" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "-40" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "KmeUs9pZFegR", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#These vectors are not orthogonal because their dot product is not equal to 0" + ], + "execution_count": 36, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MiNjyqiEz5SG", + "colab_type": "text" + }, + "source": [ + "## 2.3 Compute the following values: What do these quantities have in common?\n", + "\n", + "## What is $||c||^2$? \n", + "\n", + "## What is $c \\cdot c$? \n", + "\n", + "## What is $c^{T}c$?\n", + "\n", + "\\begin{align}\n", + "c = \\begin{bmatrix} 2 & -15 & 6 & 20 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "IlV_uaYK1EQB", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "634040d4-936f-4a13-fa66-a24fe5ed0a0b" + }, + "source": [ + "c = np.array([2,-15,6,20])\n", + "np.dot(c,c)" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "665" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "26CwTNZ3FyRi", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "f8b5a810-25e7-4c6a-ee36-90ff30c6100a" + }, + "source": [ + "np.matmul(c.T,c)" + ], + "execution_count": 38, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "665" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 38 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "CLByM2sHFyZe", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "76c3e71d-ec96-43f0-a48b-d9b833e2e116" + }, + "source": [ + "np.linalg.norm(c)**2" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "665.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 39 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4QWjpRZJGaNs", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#All of their outcomes are equal to 665" + ], + "execution_count": 40, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MK_TpWqk1Evk", + "colab_type": "text" + }, + "source": [ + "# Unit Vectors" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Kpit6WWO1b8l", + "colab_type": "text" + }, + "source": [ + "## 3.1 Using Latex, write the following vectors as a linear combination of scalars and unit vectors:\n", + "\n", + "\\begin{align}\n", + "d = \\begin{bmatrix} 7 \\\\ 12 \\end{bmatrix}\n", + "\\qquad\n", + "e = \\begin{bmatrix} 2 \\\\ 11 \\\\ -8 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oBCj1sDW2ouC", + "colab_type": "text" + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dAdUQuep1_yJ", + "colab_type": "text" + }, + "source": [ + "## 3.2 Turn vector $f$ into a unit vector:\n", + "\n", + "\\begin{align}\n", + "f = \\begin{bmatrix} 4 & 12 & 11 & 9 & 2 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I3W8ZiHR1_Fa", + "colab_type": "code", + "colab": {} + }, + "source": [ + "f = np.array([4,12,11,9,2])" + ], + "execution_count": 41, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "bTsHbgfoKW7u", + "colab_type": "code", + "colab": {} + }, + "source": [ + "norm_f = np.linalg.norm(f)" + ], + "execution_count": 42, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "v_JH_fRwKd0F", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "4ef9dcdf-cbd0-4a0b-dddb-c38dca6ad3c7" + }, + "source": [ + "f_hat = f/norm_f\n", + "f_hat" + ], + "execution_count": 43, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.20908335, 0.62725005, 0.57497921, 0.47043754, 0.10454167])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 43 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "o39UyP-I5lpP", + "colab_type": "text" + }, + "source": [ + "# Linear Independence / Dependence " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ajfBqYe45sT5", + "colab_type": "text" + }, + "source": [ + "## 4.1 Plot two vectors that are linearly dependent and two vectors that are linearly independent (bonus points if done in $\\mathbb{R}^3$)." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "on-rdVVjK3q7", + "colab_type": "code", + "colab": {} + }, + "source": [ + "v1 = [1,4,9]\n", + "v2 = np.multiply(v1,2)" + ], + "execution_count": 44, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "rTydpWrsK33h", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "9d1b12b8-0d97-487c-f0a9-a6e70920fb97" + }, + "source": [ + "fig, ax = plt.subplots(figsize=(4,4))\n", + "ax.grid()\n", + "plt.xlim(-2,20) \n", + "plt.ylim(-2,10)\n", + "\n", + "for myvect, mycolor, width in [(v1, 'lightblue', 15), (v2, 'red', 5)]:\n", + " plt.arrow(0,0,\n", + " myvect[0], \n", + " myvect[1], \n", + " head_width=.2, \n", + " head_length=0.2, \n", + " linewidth=width, \n", + " color=mycolor)" + ], + "execution_count": 45, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I37MJtjxK4Fp", + "colab_type": "code", + "colab": {} + }, + "source": [ + "v3 = [-2,-3]\n", + "v4 = [0,-3]" + ], + "execution_count": 46, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "J6jcNWIaK4Os", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "061bd369-5b62-41be-85c4-8348e497b61f" + }, + "source": [ + "\n", + "fig, ax = plt.subplots(figsize=(4,4))\n", + "ax.grid()\n", + "plt.xlim(-4,3) \n", + "plt.ylim(-4,3)\n", + "\n", + "for myvect, mycolor, width in [(v3, 'lightblue', 15), (v4, 'red', 5)]:\n", + " plt.arrow(0,0,\n", + " myvect[0], \n", + " myvect[1], \n", + " head_width=.2, \n", + " head_length=0.2, \n", + " linewidth=width, \n", + " color=mycolor)" + ], + "execution_count": 47, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQYAAAD8CAYAAACVSwr3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAUwklEQVR4nO3de2xcZ5nH8e/jexI7dS5OmsRpkzaJSRugNN1CF9iNuXQD6qaiu0ggxIKWxdqiUiiktBAWhBASiKj7D6AKUVikrWAtQVWWdrc0NNluaYEmUZvm0oS0ShN3G3KP4zjxbZ79Y8at42N7xj7vnDPj+X0kS3M5eZ93bOfnM+eceV5zd0RERqpKewIiUnoUDCISoWAQkQgFg4hEKBhEJELBICIRsYPBzBrM7I9m9ryZ7TGzb4SYmIikx+Jex2BmBsxy9x4zqwWeAj7n7r8PMUERSV5N3AE8myw9ubu1uS9dNSVSxmIHA4CZVQM7gBXA9939D2Ns0wF0ADQ0NKy94oorQpSekkwmQ1VVeodXKrl+Jb/2Uqh/4MCBE+7ekndDdw/2BTQDW4E1E223atUqT9PWrVtVvwJrq747sN0L+L8cNLrc/UwuGNaHHFdEkhXirESLmTXnbs8A3g+8GHdcEUlPiGMMi4Cf5o4zVAGd7v7rAOOKSEpCnJXYBbwtwFxEpEToykcRiVAwiEiEgkFEIhQMIhKhYBCRCAWDiEQoGEQkQsEgIhEKBhGJUDCISISCQUQiFAwiEqFgEJEIBYOIRCgYRCRCwSAiEQoGEYlQMIhIhIJBRCIUDCISoWAQkQgFg4hEhFhwZqmZbTWzvWa2x8w+F2JiIpKeEAvODAJfdPedZtYE7DCzx919b4CxRSQFsfcY3P01d9+Zu30O2AcsiTuuiKTHsgvgBhrMbBnwJNnVrrtHPdcBdAC0tLSs7ezsDFZ3snp6emhsbFT9Cqut+tDe3r7D3W/Iu2EhS2IX8gU0AjuA2/Jtu2rVqmKs8F2wtJcir+T6lfzaS6E+sN0L+P8c5KyEmdUCvwAedPdfhhhTRNIT4qyEAQ8A+9z9vvhTEpG0hdhjeCfwceA9ZvZc7uuDAcYVkZTEPl3p7k8BFmAuIlIidOWjiEQoGEQkQsEgIhEKBhGJUDCISISCQUQiFAwiEqFgEJEIBYOIRCgYRCRCwSAiEQoGEYlQMIhIhIJBRCIUDCISoWAQkQgFg4hEKBhEJELBICIRCgYRiVAwiEiEgkFEIkKtRPVjMztmZrtDjCci6Qq1x/BvwPpAY4lIyoIEg7s/CZwKMZaIpM+yC+AGGMhsGfBrd18zzvMdQAdAS0vL2s7OziB1pyLtpcgruX4lv/ZSqN/e3r7D3W/Iu2EhS2IX8gUsA3YXsu2qVauKtMh3YdJeiryS61fyay+F+sB2L+D/qM5KiEiEgkFEIkKdrvwZ8AzQZmZdZvapEOOKSDpqQgzi7h8NMY6IlAa9lRCRCAWDiEQoGEQkQsEgIhEKBhGJUDCISISCQUQiFAwiEqFgEJEIBYOIRCgYRCRCwSAiEQoGEYlQMIhIhIJBRCIUDFJ07s7eE+e4MDCU9lSkQEEatYhM5OUzvbx4soeXTp+nfiiDu2NmaU9LJqA9Bimqc/2D7D7eDcBAxukdHOKprlP09A+mPDOZiIJBiibjzvbXzjA0aumS4739/PbQcf50qmd46QEpMQoGKZoDp85z+uLAmM8NObxw/BzbDp/kbN/Y20h6FAxSFGcuDrDvxLm8252+OMATh06w78Q5Mtp7KBkKBgluMJPhiVdOUOh/cwf2nezhiUMnOHWhv5hTkwKFWldivZntN7ODZnZviDGlfP3qT3+e0r/r7h9k2+GTvHCsm8GM9h7SFDsYzKwa+D7wAeAa4KNmdk3ccaU8vXT6fOQx6+9nw/Ur2HD9Cpr37n79NpnMmGP86fR5njpyUgcmUxTiOoYbgYPu/jKAmf0cuBXYG2BsKSN9QxmeP9Y95nM1vb3ZG5nMG7cnsHLuLF3rkKIQbyWWAEdG3O/KPSYV5pGDU3sLMdoVs2ewpGlGkLFkaizu7pqZ/T2w3t3/KXf/48Db3f2OUdt1AB0ALS0tazs7O2PVjaOnp4fGxkbVD+jiYIaLQ+Nc8pxxmve+kK3d2kpjVxcAZ659C4zaKajCaKqvGf1wMNPxez8Z7e3tO9z9hnzbhXgr8SqwdMT91txjl3D3HwI/BGhra/N169YFKD0127ZtQ/XD1e8dGOK/Xz427vPW38+6D/5NtvbmzazbuBGAX+7tgqpLd1pvap3Lwln1weY22nT73hdLiLcSzwIrzWy5mdUBHwF+FWBcKRMThcJkXNU8s6ihIIWLvcfg7oNmdgfwGFAN/Njd98SemZSFHUfPBBmnpspY09IUZCyJL8inK939UeDREGNJ+ejuG+CVsxeCjHXt/CZqqnS9XanQT0KmxN3ZcuhEsPGunjMr2FgSn4JBpuTpV08HG2vDyoXBxpIwFAwyaacu9PPn831BxrpxUbPeQpQg/URkUtydbYdPBhmrvrqK1tm6kKkUKRhkUp54JdxxhQ9cvSDYWBKWgkEK9ufzfZztC9eSrUqfhShZCgYpSMad33WdSnsakhAFgxTk0ZfCfEBKyoOCQfI60n2B/tEdXWVaUzDIhAYzGZ59Lcxlz1I+FAwyoam2aZPypmCQcR0co02bVAYFg4ypbzDDrnHatE3W8stmBhlHkqNgkDE9EvAsxHWXXxZsLEmGgkEi9hzPv1BModZfpasby5GCQS7ROzDE/lM9QcZ607xGZtZWBxlLkqVgkEuEatMGcM18dWQqVwoGeV2oNm0At6xQj4VypmAQIGybtrcumE1dtX61ypl+eqI2bRKhYBC1aZMIBUOFC9qmbbHatE0XsX6KZvZhM9tjZhkzy7vslZSW4G3atN7ktBE33ncDtwFPBpiLJOy3AY8rqE3b9BJrwRl33wdoufIydPT8Rbr7w7Rpe1frXLVpm2b0hrBCPd0V5oBjc30tC7Te5LRj7hN35jGzLcDlYzy1yd0fzm2zDdjo7tsnGKcD6ABoaWlZ29nZOdU5x5b2UuRp1z/bfQ6vbwgyVnN9bf6N3GHnTgB6Wltp7OrKPr52bZA5TEba3/u067e3t+9w97zHA/MGQyEKCYaR2trafP/+/bHrTlXaS5GnWf9I9wV2PPMUmWVrYo/VfuU85jTU5d+wvx/qs3sV2zZvZt3GjdnHh4Yg4bMYlfyzBzCzgoJBbyUqSMg2bYsa6wsLBSlLcU9XfsjMuoCbgEfM7LEw05JiCNmm7R2L5wQbS0pP3LMSDwEPBZqLFFHINm3vX96iM1HTnN5KVIDQbdqa6mL9PZEyoGCoACHbtL1NbdoqgoJhmttzPMyeAsAH1KatYigYprFsm7YwxxZWz2tkhtq0VQwFwzQWsk3barVpqygKhmlqR8Bl5dSmrfIoGKah7r4BXukO06btOrVpq0j6iU8zodu0XaU2bRVJwTDN/C7QpyYBNqwc67NzUgkUDNPIqQv9HOsN2aZNVzdWKgXDNBGyTVuD2rRVPAXDNBGyTdt6tWmreAqGaeBoj9q0SVgKhjKXcQ+2LkRzg9q0SZaCocw9cjDcB6Tar5gXbCwpbwqGMna4+wIDmfit+SDbpk09FmSYgqFMDWYybFebNikSBUOZUps2KSYFQxlSmzYpNgVDmQnapq1ZbdpkbAqGMhO0TdtCtWmTsSkYyshutWmThCgYykTvwBAHArVpa6iuVps2mVDcBWe+a2YvmtkuM3vIzJpDTUwuFbJNW0ON/h7IxOL+hjwOrHH3twAHgC/Hn5KMFup6BVCbNilMrGBw99+4+/Cnd34PtMafkozU3TfAYbVpk4QFWe0awMz+E/gPd//3cZ7vADoAWlpa1nZ2dgapOxVpL0U+mfpn+gaC1R1esj7x1+8OO3dma7e20tjVlX187drk5pBTTj/7Ymhvby9oteu8wWBmW4CxenxtcveHc9tsAm4AbvMCkqatrc3379+fb7OiSXsp8kLrP3XkJMd6+4PU3LDy8tc7MiX++vv7oT77qc1tmzezbuPG7ONDQ1CV7B5Mufzsi8XMCgqGvFe3uPv78hT6JHAL8N5CQkEKc/JCf7BQeLvatMkkxbrszczWA18C/trde8NMSdyd/wnVpq2miiVq0yaTFHc/7ntAE/C4mT1nZvcHmFPFC9qmTRcyyRTE2mNw9xWhJiJZatMmpUDnrkrIUCZcm7Y5atMmMSgYSsijAT8gtU5t2iQGBUOJOHy2N2CbtvnqsSCxKBhKwGAmw/ajZ4OMlW3TVhtkLKlcCoYSoDZtUmoUDCk7GOij1KA2bRKOgiFFfYND7ArUfOUqtWmTgBQMKXrkpXA9Fq5TmzYJSMGQkqBt2rQIrQSmYEhBxgnWpm31vEZm1KhNm4SlYAhs/8keBvNcj9DdH67Hwur5TcHGEhmmYAhoKOPsOXGO3x46zvHevjG3UZs2KQcKhoB6B4cAOD8wxP8eOcXOo2cZGMq8/nzQNm0L1aZNike/WQH1Dgxdcv/Q2V4eP3Sc13ou4u5sCfhx6quaZwUbS2Q0nfgO6PxA9OPSFwczPBPoE5PDNqwcq9OeSDjaYwho9B5DMahNmyRBwRDQ+SIHg9q0SVIUDAEVe49BbdokKQqGgIq5x6A2bZIkBUMgg5kM/SNOTYakNm2SNAVDIMXcW1CbNkmagiGQYh1fUJs2SUPcBWe+CdwKZIBjwCfd/f9CTKzcFGOPoaGmqjzbtG3eDA8//Mb9/nFW1Hr3uy9dou622+Cuu4o7NylI3Aucvuvu/wJgZncCXwP+OfasylAx9hguDmbYdayba+Y3UpPwGo+x3HIL3HMPZPIcc3n66TduV1fDT35S3HlJwWL9trn7yKYCs4CKXbtyrKseQzh4+jxbDp3g2PmxP5RVkt70JvjYxyb3bz7xCVih9YtKRd7VrvMOYPYt4B+As0C7ux8fZ7sOoAOgpaVlbWdnZ6y6cRRjKfLu/kEyhX4v+y5CfcOka9RVVzGjppq4RxwSWYq9rw92747Wbm2lsavr0gfNYM0aqKsr7pxIfxn6tOu3t7cXtNp13mAwsy3AWBfnb3L3h0ds92Wgwd2/nq9oW1ub79+/P99mRRN6KXJ356EDRwvevurQbjLL1kypVkN1FdctvIzFTZMPlmGJLcX+6U/Dj350ae3Nm1m3ceOl291+O/zgB8WfD+kvQ592fTMrKBjyHmNw9/cVWPNB4FEgbzBMN6EWiilEU30NM2vLpGPTV78KP/0pDEzQmKa+HjZtSm5OUpBYxxjMbOWIu7cCL8abTnkq9mckAJrqavjLJXN4V+tcmsvlTMWVV0JHx8Tb3H47LFmSzHykYHHPSnzbzNrInq58hYo9I1GcA48A9dVVrJ7fyLLLZpbnJdFf+Qo88ABcvBh9buZMuPfe5OckecUKBnf/u1ATKWfF2GOoMlg5Zxar5jZSW86dmhYvhs98Bu67L/rcZz8LC9WerhSV8W9c6QgdDFfMnsHNyxdwbcvs8g6FYffcA7NGdZxqaoK7705nPpLXNPitS1+oi5vmz6ij/cr53LCouXwOMBZiwYLs3sFIn/88zNNnQEqVgiGAuMcYGuuquWnJHN69dG55XgJdiLvvhtmzs7ebm+ELX0h3PjIh9XyMyd1jvZV464LZLG8u0wOLkzF37hufg9i4MRsOUrK0xxDTxaEMU7mMYdXcWfztioVcPWfW9A+FYXfdBQ0NcOedac9E8tAeQ0yTPb6wtKmBc3W1rGmZXaQZlbDLLoO2tuyBRylp2mOIqdC3EfNm1LHuinn8xeI5VHST5xr9LSoH+inFlO/AY2NtNWtaZrOosV4NV6RsKBhiGm+Poa7aWD2vqTIOLMq0o2CIafQxhiqDq5tn0TavUWtLStlSMMQ0co+htamBa1uamFWrb6uUN/0Gx5Bx58LAEPNm1PLmltnMnVH8RiMiSVAwxDCYcW5c3MzixgYdWJRpRcEQQ1211pKU6UlHx0QkQsEgIhEKBhGJUDCISISCQUQiFAwiEqFgEJEIBYOIRAQJBjP7opm5mc0PMZ6IpCt2MJjZUuBm4HD86YhIKQixx/CvwJeA5BZwFJGiivVZCTO7FXjV3Z/P9yEiM+sAhhcy7DOz6BrpyZkPnFD9iqut+tBWyEbmPvEfejPbAlw+xlObgK8AN7v7WTM7BNzg7nlftJltL2Qp7mJR/fTqV/JrL6f6efcY3P194xR4M7AcGN5baAV2mtmN7n50kvMVkRIy5bcS7v4CsGD4/mT2GESktKV1HcMPU6qr+unXr+TXXjb18x5jEJHKoysfRSRCwSAiEakHQ1qXU5vZN81sl5k9Z2a/MbPFCdb+rpm9mKv/kJkluvSzmX3YzPaYWcbMEjt1ZmbrzWy/mR00s3uTqpur/WMzO5bW9TNmttTMtprZ3tz3/nMJ128wsz+a2fO5+t+Y8B+4e2pfwFLgMeAVYH7CtWePuH0ncH+CtW8GanK3vwN8J+HXvprshS7byJ5JSqJmNfAScBVQBzwPXJPga/4r4Hpgd5Lf6xH1FwHX5243AQcSfv0GNOZu1wJ/AN4x3vZp7zGkdjm1u3ePuDsryTm4+2/cfXjRy9+TvQYkMe6+z933J1kTuBE46O4vu3s/8HPg1qSKu/uTwKmk6o1R/zV335m7fQ7YByxJsL67e0/ubm3ua9zf+dSCYeTl1CnO4VtmdgT4GPC1lKbxj8B/pVQ7SUuAIyPud5Hgf4xSYmbLgLeR/audZN1qM3sOOAY87u7j1i/quhKFXE6dVn13f9jdNwGbzOzLwB3A15OqndtmEzAIPBiq7mTqS/LMrBH4BfD5UXutRefuQ8B1uWNaD5nZGncf85hLUYPBU76cerz6Y3gQeJSAwZCvtpl9ErgFeK/n3viFNInXnpRXyR5TGtaae6ximFkt2VB40N1/mdY83P2MmW0F1gNjBkMqbyXc/QV3X+Duy9x9GdndyutDhkI+ZrZyxN1bgRcTrL2e7LGVDe7em1TdlD0LrDSz5WZWB3wE+FXKc0qMZf8CPgDsc/f7UqjfMnz2y8xmAO9ngt/5tA8+punbZrbbzHaRfUuT5Omj75E9Mv147nTp/QnWxsw+ZGZdwE3AI2b2WLFr5g623kH2LNQ+oNPd9xS77jAz+xnwDNBmZl1m9qmkaue8E/g48J7cz/w5M/tggvUXAVtzv+/Pkj3G8OvxNtYl0SISUcl7DCIyDgWDiEQoGEQkQsEgIhEKBhGJUDCISISCQUQi/h+YrfDfmmLqdgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TrJ0MT_n3SvO", + "colab_type": "text" + }, + "source": [ + "# Span" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "86iXLzwM2z8l", + "colab_type": "text" + }, + "source": [ + "## 5.1 What is the span of the following vectors?\n", + "\n", + "\\begin{align}\n", + "g = \\begin{bmatrix} 1 & 2 \\end{bmatrix}\n", + "\\qquad\n", + "h = \\begin{bmatrix} 4 & 8 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "G2LK2RWL39Q4", + "colab_type": "code", + "colab": {} + }, + "source": [ + "g = np.array([1,2])\n", + "h = np.array([4,8])" + ], + "execution_count": 48, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "9M9lvF_Ts8t3", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "9e88e323-5652-43ae-a941-f478aecc037f" + }, + "source": [ + "fig, ax = plt.subplots(figsize=(4,4))\n", + "ax.grid()\n", + "plt.xlim(-4,3) \n", + "plt.ylim(-4,3)\n", + "\n", + "for myvect, mycolor, width in [(g, 'lightblue', 5), (h, 'red', 5)]:\n", + " plt.arrow(0,0,\n", + " myvect[0], \n", + " myvect[1], \n", + " head_width=.2, \n", + " head_length=0.2, \n", + " linewidth=width, \n", + " color=mycolor)" + ], + "execution_count": 49, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2ki6bOnzrO5c", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#The span of these 2 vectors is infinite since they are superimposed." + ], + "execution_count": 50, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l1deylUj4IHH", + "colab_type": "text" + }, + "source": [ + "## 5.2 What is the span of $\\{l, m, n\\}$?\n", + "\n", + "\\begin{align}\n", + "l = \\begin{bmatrix} 1 & 2 & 3 \\end{bmatrix}\n", + "\\qquad\n", + "m = \\begin{bmatrix} -1 & 0 & 7 \\end{bmatrix}\n", + "\\qquad\n", + "n = \\begin{bmatrix} 4 & 8 & 2\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "p1i_ueD25ZcP", + "colab_type": "code", + "colab": {} + }, + "source": [ + "l = np.array([1,2,3])\n", + "m = np.array([-1,0,7])\n", + "n = np.array([4,8,2])" + ], + "execution_count": 51, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "rUs9dxq4tXVz", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": 51, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IBqe7X1732kX", + "colab_type": "text" + }, + "source": [ + "# Basis" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YeUZVHRM6PpT", + "colab_type": "text" + }, + "source": [ + "## 6.1 Graph two vectors that form a basis for $\\mathbb{R}^2$\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "utvF3Pkt8NP6", + "colab_type": "code", + "colab": {} + }, + "source": [ + "vec_1 = [-2,2]\n", + "vec_2 = [2,2]" + ], + "execution_count": 52, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "fxmyo32QuCmF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "e0e7fd7d-4188-40c8-a4c6-461d66f7e010" + }, + "source": [ + "fig, ax = plt.subplots(figsize=(4,4))\n", + "ax.grid()\n", + "plt.xlim(-3,3) \n", + "plt.ylim(0,3)\n", + "\n", + "for myvect, mycolor, width in [(vec_1, 'lightblue', 5), (vec_2, 'red', 5)]:\n", + " plt.arrow(0,0,\n", + " myvect[0], \n", + " myvect[1], \n", + " head_width=.2, \n", + " head_length=0.2, \n", + " linewidth=width, \n", + " color=mycolor)" + ], + "execution_count": 53, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "20yPFBDUxxnS", + "colab_type": "text" + }, + "source": [ + "## 6.2 What does it mean to form a basis?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3w4tEayT8M0o", + "colab_type": "text" + }, + "source": [ + "To form a basis means to form a subset of vectors that span the vector space and are linerly independent." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EHmUxbcY6vD3", + "colab_type": "text" + }, + "source": [ + "# Rank" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IpJwt9kw6v8U", + "colab_type": "text" + }, + "source": [ + "## 7.1 What is the Rank of P?\n", + "\n", + "\\begin{align}\n", + "P = \\begin{bmatrix} \n", + "1 & 2 & 3 \\\\\n", + " -1 & 0 & 7 \\\\\n", + "4 & 8 & 2\n", + "\\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "o0jauY6zioBM", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "6e55838c-dbce-4749-90aa-3a5c922f48aa" + }, + "source": [ + "P = np.array([[1,2,3], [-1,0,7], [4,8,2]])\n", + "P" + ], + "execution_count": 55, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 1, 2, 3],\n", + " [-1, 0, 7],\n", + " [ 4, 8, 2]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 55 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "BO-ilIP1jbe-", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "67d47c1e-b964-4d38-cdc1-0d06c4af19ca" + }, + "source": [ + "np.linalg.matrix_rank(P)" + ], + "execution_count": 57, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 57 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jGqFMBYY7mHD", + "colab_type": "text" + }, + "source": [ + "## 7.2 What does the rank of a matrix tell us?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Vjg1IiCD8nnP", + "colab_type": "text" + }, + "source": [ + "It tells us the number of dimensions that an output of a matrix has." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0Db2sc_V8QD6", + "colab_type": "text" + }, + "source": [ + "# Linear Projections\n", + "\n", + "## 8.1 Line $L$ is formed by all of the vectors that can be created by scaling vector $v$ \n", + "\\begin{align}\n", + "v = \\begin{bmatrix} 1 & 3 \\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "\\begin{align}\n", + "w = \\begin{bmatrix} -1 & 2 \\end{bmatrix}\n", + "\\end{align}\n", + "\n", + "## find $proj_{L}(w)$\n", + "\n", + "## graph your projected vector to check your work (make sure your axis are square/even)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hp5z2WTBCNKx", + "colab_type": "code", + "colab": {} + }, + "source": [ + "v = np.array([1,3])\n", + "w = np.array([-1,2])" + ], + "execution_count": 58, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "WJa03gj7kVIB", + "colab_type": "code", + "colab": {} + }, + "source": [ + "w_dot_v = np.dot(w,v)\n", + "v_dot_v = np.dot(v,v)" + ], + "execution_count": 59, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Hn1xA_F9kVTJ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "67eb1f4f-0404-4aca-b972-c2cae95ebc5d" + }, + "source": [ + "fraction = w_dot_v/v_dot_v\n", + "projection = np.multiply(fraction,v)\n", + "print(projection)" + ], + "execution_count": 60, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[0.5 1.5]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cbicqi6Mk3pd", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "21d9cf15-dbb9-4d1a-87f8-c5ccf4d9bbb0" + }, + "source": [ + "plt.xlim(-1,4) \n", + "plt.ylim(-1,4)\n", + "axes = plt.gca()" + ], + "execution_count": 61, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mcXogb_Uk3uN", + "colab_type": "code", + "colab": {} + }, + "source": [ + "x_vals = np.array(axes.get_xlim())\n", + "y_vals = 3*x_vals" + ], + "execution_count": 62, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "7yMxH7NHk-ok", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 320 + }, + "outputId": "78119ec9-e8d4-4521-e74b-82d45964bfbb" + }, + "source": [ + "axes = plt.gca()\n", + "plt.axes().set_aspect('equal')\n", + "\n", + "\n", + "plt.plot(x_vals, y_vals, '--', color='r', linewidth=1);" + ], + "execution_count": 66, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:5: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n", + " \"\"\"\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TKkrPwRM-Oar", + "colab_type": "text" + }, + "source": [ + "# Stretch Goal\n", + "\n", + "## For vectors that begin at the origin, the coordinates of where the vector ends can be interpreted as regular data points. (See 3Blue1Brown videos about Spans, Basis, etc.)\n", + "\n", + "## Write a function that can calculate the linear projection of each point (x,y) (vector) onto the line y=x. run the function and plot the original points in blue and the new projected points on the line y=x in red. \n", + "\n", + "## For extra points plot the orthogonal vectors as a dashed line from the original blue points to the projected red points." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cp52kZra-ykj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + }, + "outputId": "12502200-eafe-4e20-bfb7-2d539c6027cb" + }, + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Creating a dataframe for you to work with -Feel free to not use the dataframe if you don't want to.\n", + "x_values = [1, 4, 7, 3, 9, 4, 5 ]\n", + "y_values = [4, 2, 5, 0, 8, 2, 8]\n", + "\n", + "data = {\"x\": x_values, \"y\": y_values}\n", + "\n", + "df = pd.DataFrame(data)\n", + "\n", + "df.head()\n", + "\n", + "plt.scatter(df.x, df.y)\n", + "plt.show()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdkAAAFKCAYAAABRtSXvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAGBhJREFUeJzt3X9s1IX9x/FXe9craXvKlR4VDPgD\nvOFGjDXRBcVfBCWCWQIbtusQFxcnqWy6yAargHxDXALZEicSYfz4Y1sWO1GxS1QMvzK38CNIg+ki\nlrJsK20p1/YGJ6XH9XrfP/jSL3MtV9p73+fu4/PxF+U++fT9Tn88+/lcf+Qlk8mkAABA2uU7PQAA\nAG5FZAEAMEJkAQAwQmQBADBCZAEAMEJkAQAw4k33CcPhaLpPqUCgSJFIT9rPm2lu2UNyzy5u2UNi\nl2zklj0kdrmaYNA/5GM5cSXr9XqcHiEt3LKH5J5d3LKHxC7ZyC17SOwyUjkRWQAAchGRBQDACJEF\nAMAIkQUAwAiRBQDACJEFAMAIkQUAwAiRBQDASMrf+HT+/HktX75cZ8+eVTwe13PPPaf7778/E7MB\nGKZYPKH2zvNKxBMqLHDPLw0A0i3THyspI/vuu+/qlltu0YsvvqiOjg499dRT+vDDD80HA5Baor9f\ndXub1dAUVnc0plJ/oSpCQVXOmipPPjeqgMuc+lhJGdlAIKDPP/9cknTu3DkFAgGzYQBcm7q9zdp9\n5NTAy13nYgMvV88OOTUWkHWc+lhJme958+apra1NjzzyiBYtWqTly5ebDQNg+GLxhBqawoM+1tDU\nqVg8keGJgOzk5MdKyivZ9957TxMnTtS2bdt0/Phx1dbW6p133hny+ECgyOSXL1/trxzkErfsIbln\nl1zdo73zvLqjsUEfi0R75fEVKFhWnOGp0idX3y5f5pY9pNzdxcmPlZSRPXr0qGbOnClJmjZtms6c\nOaNEIiGPZ/CQWvwppGDQb/In9DLNLXtI7tkll/dIxBMq9Req69x/f/II+McocTGes7vl8tvlSm7Z\nQ8rtXaw/Vkb1p+5uuukmHTt2TJLU2tqq4uLiIQMLIHMKCzyqCAUHfawiVMZ3GQP/x8mPlZRXspWV\nlaqtrdWiRYvU19enNWvWmA0D4NpUzpoq6dLzSpForwL+MaoIlQ38P4BLnPpYyUsmk8l0ntDidkIu\n36a4klv2kNyzi1v2iMUT8vgKlLgYd8UVrFveLm7ZQ3LPLhYfK6O6XQwg+xUWeDShrNgVgQUsZfpj\nhcgCAGCEyAIAYITIAgBghMgCAGCEyAIAYITIAgBghMgCAGCEyAIAYITIAgBghMgCAGCEyAIAYITI\nAgBghMgCAGCEyAIAYITIAgBghMgCAGCEyAIAYITIAgBghMgCAGCEyAIAYITIAgBghMgCAGCEyAIA\nYITIAgBgxJvqgLfeekv19fUDLzc2NqqhocF0KAAA3CBlZBcuXKiFCxdKkg4fPqwPPvjAfCgAANzg\nmm4Xb9y4UTU1NVazAADgKsOO7KeffqoJEyYoGAxazgMAgGvkJZPJ5HAOXL16tebNm6dvfvObVz2u\nry8hr9eTluEAAMhlw47snDlz9Kc//Uk+n++qx4XD0bQMdqVg0G9y3kxzyx6Se3Zxyx4Su2Qjt+wh\nsUuq8w1lWLeLOzo6VFxcnDKwAADg/w0rsuFwWKWlpdazAADgKsOK7PTp07V161brWQAAcBV+4xMA\nAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABG\niCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogs\nAABGiCwAAEaGFdn6+np961vf0oIFC7R//37jkQAAcIeUkY1EItq4caP+8Ic/aNOmTdqzZ08m5gIA\nIOd5Ux1w4MABzZgxQyUlJSopKdHatWszMRcAADkv5ZXsqVOn1NvbqyVLlqi6uloHDhzIxFwAAOS8\nvGQymbzaAb/5zW909OhRvf7662pra9PixYu1b98+5eXlDXp8X19CXq/HZFgAAHJJytvF48aNU0VF\nhbxeryZPnqzi4mJ1d3dr3Lhxgx4fifSkfchg0K9wOJr282aaW/aQ3LOLW/aQ2CUbuWUPiV1SnW8o\nKW8Xz5w5UwcPHlR/f78ikYh6enoUCATSNhwAAG6V8kq2vLxcc+bM0RNPPCFJWrlypfLz+fFaAABS\nSRlZSaqqqlJVVZX1LAAAuAqXpAAAGCGyAAAYIbIAABghsgAAGCGyAAAYIbIAABghsgAAGCGyAAAY\nIbIAABghsgAAGCGyAAAYIbIAABghsgAAGCGyAAAYIbIAABghsgAAGCGyAAAYIbIAABghsgAAGCGy\nAAAYIbIAABghsgAAGCGyAAAYIbIAABghsgBgIBZPqL3zvGLxhNOjwEHeVAccOnRIzz//vG677TZJ\nUigU0qpVq8wHA4BclOjvV93eZjU0hdUdjanUX6iKUFCVs6bKk891zVdNyshK0j333KPXXnvNehYA\nyHl1e5u1+8ipgZe7zsUGXq6eHXJqLDiEL6sAIE1i8YQamsKDPtbQ1Mmt46+gYV3JNjc3a8mSJTp7\n9qyWLl2q++67b8hjA4Eieb2etA14WTDoT/s5neCWPST37OKWPSR2cVp753l1R2ODPhaJ9srjK1Cw\nrDjDU6VPLr5NhpKpXVJG9uabb9bSpUv12GOPqaWlRYsXL9ZHH30kn8836PGRSE/ahwwG/QqHo2k/\nb6a5ZQ/JPbu4ZQ+JXbJBIp5Qqb9QXef+O7QB/xglLsZzci8pd98mg0n3LlcLdsrbxeXl5Zo7d67y\n8vI0efJklZWVqaOjI23DAYBbFBZ4VBEKDvpYRahMhQXpv8uH7JbySra+vl7hcFg/+MEPFA6H1dXV\npfLy8kzMBgA5p3LWVEmXnoONRHsV8I9RRahs4P/x1ZIysrNmzdKyZcu0Z88exeNxrVmzZshbxQDw\nVefJz1f17JC+/eAUeXwFSlyMcwX7FZYysiUlJdq0aVMmZgEA1ygs8ChYVuya5zExMvwIDwAARogs\nAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAA\nRogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEay\nPrKxeELtnecViyecHgUAgGviHc5Bvb29evzxx1VTU6MFCxZYzyRJSvT3q25vsxqawuqOxlTqL1RF\nKKjKWVPlyc/6rw0AABheZN944w1df/311rP8h7q9zdp95NTAy13nYgMvV88OZXQWAABGIuUl4cmT\nJ9Xc3KyHHnooA+NcEosn1NAUHvSxhqZObh0DAHJCyivZdevWadWqVdq5c+ewThgIFMnr9YxqqPbO\n8+qOxgZ9LBLtlcdXoGBZ8aheh1OCQb/TI6SNW3Zxyx4Su2Qjt+whsctIXDWyO3fu1J133qlJkyYN\n+4SRSM+oh0rEEyr1F6rr3H+HNuAfo8TFuMLh6KhfT6YFg/6cnHswbtnFLXtI7JKN3LKHxC6pzjeU\nq0Z2//79amlp0f79+3X69Gn5fD7dcMMNuvfee9M23GAKCzyqCAX/4znZyypCZSosGN2VMgAAmXDV\nyL766qsD/96wYYNuvPFG88BeVjlrqqRLz8FGor0K+MeoIlQ28P8AAGS7YX13sRM8+fmqnh3Stx+c\nIo+vQImLca5gAQA5ZdiR/dGPfmQ5x5AKCzwKlhW75rkAAMBXB7/VAQAAI0QWAAAjRBYAACNEFgAA\nI0QWAAAjRBYAACNEFgAAI0QWAAAjRBYAACNEFgAAI0QWAAAjRBYAACNEFgAAI0QWAAAjRBYAACNE\nFgAAI0QWAAAjRBYAACNEFgAAI0QWAAAjRBYAACNEFgAAI0QWAAAjRBYAACNEFgAAI95UB1y4cEEr\nVqxQV1eXYrGYampq9PDDD2diNgAAclrKyO7bt0/Tp0/XM888o9bWVj399NNEFgCAYUgZ2blz5w78\nu729XeXl5aYDAQDgFnnJZDI5nAOrqqp0+vRpbdq0SdOmTRvyuL6+hLxeT9oGBAAgVw07spL02Wef\n6Wc/+5nq6+uVl5c36DHhcDRtw10WDPpNzptpbtlDcs8ubtlDYpds5JY9JHZJdb6hpPzu4sbGRrW3\nt0uSbr/9diUSCXV3d6dtOAAA3CplZI8cOaLt27dLkjo7O9XT06NAIGA+GAAAuS5lZKuqqtTd3a3q\n6mr98Ic/1OrVq5Wfz4/XAgCQSsrvLh4zZox+9atfZWIWAABchUtSAACMEFkAAIwQWQAAjBBZAACM\nEFkAAIwQWQAAjBBZAACMEFkAAIwQWQAAjBBZAACMEFkAAIwQWQAAjBBZAACMEFkAAIwQWQAAjBBZ\nAACMEFkAAIwQWQAAjBBZAACMEFkAAIwQWQAAjBBZAACMEFkAAIwQWQAAjHiHc9D69ev1ySefqK+v\nT88++6weffRR67kAc9Gei2o7EZbfly9/kc/pcQC4UMrIHjx4UCdOnFBdXZ0ikYjmz59PZJHTLvb1\n6ZXfHlVr+Av1J6X8POnGYIleWnyXfN5hfd0JAMOS8nbx3XffrV//+teSpOuuu04XLlxQIpEwHwyw\n8spvj6rlzKXASlJ/Umo584Ve+e1RZwcD4DopI+vxeFRUVCRJ2rFjhx544AF5PB7zwQAL0Z6Lag1/\nMehjreEvFO25mOGJALjZsO+N7d69Wzt27ND27duvelwgUCSvN/0RDgb9aT+nE9yyh5Sbu7SdCA9c\nwX5Zf1KKXuzXrTfl3l6X5eLbZChu2cUte0jsMhLDiuzHH3+sTZs2aevWrfL7rz5YJNKTlsGuFAz6\nFQ5H037eTHPLHlLu7uL35Ss/T4OGNj/v0uO5uJeUu2+TwbhlF7fsIbFLqvMNJeXt4mg0qvXr12vz\n5s0aO3Zs2oYCnOAv8unGYMmgj90YLOG7jAGkVcrIvv/++4pEInrhhRf05JNP6sknn1RbW1smZgNM\nvLT4Lk0aX6L8vEsv5+dJk8Zf+u5iAEinlLeLKysrVVlZmYlZgIzweb36n6fvUbTnoqIX+/k5WQBm\n+KFAfGX5i3y69Sb3PM8EIPvwaxUBADBCZAEAMEJkAQAwQmQBADBCZAEAMEJkAQAwQmQBADBCZAEA\nMEJkAQAwQmQBADBCZAEAMEJkAQAwQmQBADBCZAEAMEJkAQAwQmQBADBCZAEAMEJkAQAwQmQBADBC\nZAEAMEJkAQAwQmQBADBCZAEAMEJkAQAwMqzINjU1afbs2fr9739vPQ8AAK6RMrI9PT1au3atZsyY\nkYl5AABwjZSR9fl82rJli8aPH5+JeQAAcA1vygO8Xnm9KQ8DAABfkvZ6BgJF8no96T6tgkF/2s/p\nBLfsIblnF7fsIbFLNnLLHhK7jETaIxuJ9KT7lAoG/QqHo2k/b6a5ZQ/JPbu4ZQ+JXbKRW/aQ2CXV\n+YbCj/AAAGAk5ZVsY2Oj1q1bp9bWVnm9Xu3atUsbNmzQ2LFjMzEfAAA5K2Vkp0+frt/97neZmAUA\nAFfhdjEAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAA\nRogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaILAAARogsAABGiCwAAEaI\nLAAARogsAABGiCwAAEa8wznoF7/4hY4dO6a8vDzV1tbqjjvusJ4LWSwWT6i987wS8YQKCzxOjwMA\nWStlZA8fPqx//vOfqqur08mTJ1VbW6u6urpMzIYsk+jvV93eZjU0hdUdjanUX6iKUFCVs6bKk89N\nEQD4spSfGQ8cOKDZs2dLkqZMmaKzZ8/qiy++MB8M2adub7N2HzmlrnMxJZNS17mYdh85pbq9zU6P\nBgBZKWVkOzs7FQgEBl4uLS1VOBw2HQrZJxZPqKFp8Ld7Q1OnYvFEhicCgOw3rOdkr5RMJq/6eCBQ\n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\nrkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "EZTA6Tj6BGDb", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/Copy_of_LS_DS_133_High_Dimensional_Data_Assignment.ipynb b/Copy_of_LS_DS_133_High_Dimensional_Data_Assignment.ipynb new file mode 100644 index 00000000..7d433f9a --- /dev/null +++ b/Copy_of_LS_DS_133_High_Dimensional_Data_Assignment.ipynb @@ -0,0 +1,2950 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of LS_DS_133_High_Dimensional_Data_Assignment.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7wMWCkE1RZpM", + "colab_type": "text" + }, + "source": [ + "# Vertical Line Test" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "W0-g7aprRv2j", + "colab_type": "text" + }, + "source": [ + "## 1.1 Create two graphs, one that passes the vertical line test and one that does not." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fIJhCtF6RW_U", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.decomposition import PCA\n", + "import numpy as np" + ], + "execution_count": 26, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "UPP3wpWOVAho", + "colab_type": "code", + "colab": {} + }, + "source": [ + "v1 = [5,5]\n", + "v2 = [-4,-5]" + ], + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "BT97mpMbUoxR", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "cdc04bcd-c681-4803-f0a6-0e3ece9111ce" + }, + "source": [ + "fig, ax = plt.subplots()\n", + "ax.grid()\n", + "plt.xlim(-5,10)\n", + "plt.ylim(-5,10)\n", + "for color, vector in[('crimson', v1 ),('darkgreen', v2 )]:\n", + " plt.arrow(0,0,\n", + " vector[0],\n", + " vector[1], \n", + " head_width = .02,\n", + " linewidth = 3,\n", + " color = color);" + ], + "execution_count": 28, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_X3iQMm3Uo3c", + "colab_type": "code", + "colab": {} + }, + "source": [ + "v3 = [2,5]\n", + "v4 = [4,5]" + ], + "execution_count": 29, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "DpmK9uUPUo_4", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "outputId": "6d7823c2-f200-49c9-c378-d2248c0b8a19" + }, + "source": [ + "fig, ax = plt.subplots()\n", + "ax.grid()\n", + "plt.xlim(-5,10)\n", + "plt.ylim(-5,10)\n", + "for color, vector in[('crimson', v3),('darkgreen', v4)]:\n", + " plt.arrow(0,0,\n", + " vector[0],\n", + " vector[1], \n", + " head_width = .02,\n", + " linewidth = 3,\n", + " color = color);" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "62vpJdGTUpFH", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": 30, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ckeTKqMgRy7g", + "colab_type": "text" + }, + "source": [ + "## 1.2 Why are graphs that don't pass the vertical line test not considered \"functions?\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Gtl20YeDR6x-", + "colab_type": "text" + }, + "source": [ + "If the vertical line passes through more than one point in the graph, it means that there is a relation between an input and multiple outputs therefore it is not a function." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "g21uN62xSKSk", + "colab_type": "text" + }, + "source": [ + "# Functions as Relations" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gwkcV-EMSMNd", + "colab_type": "text" + }, + "source": [ + "## 2.1 Which of the following relations are functions? Why?\n", + "\n", + "\\begin{align}\n", + "\\text{Relation 1: } \\{(1, 2), (3, 2), (1, 3)\\}\n", + "\\\\\n", + "\\text{Relation 2: } \\{(1, 3), (2, 3), (6, 7)\\}\n", + "\\\\\n", + "\\text{Relation 3: } \\{(9, 4), (2, 1), (9, 6)\\}\n", + "\\\\\n", + "\\text{Relation 4: } \\{(6, 2), (8, 3), (6, 4)\\}\n", + "\\\\\n", + "\\text{Relation 5: } \\{(2, 6), (2, 7), (2, 4)\\}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GLN49ZVMakqp", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#Relation 2 is the only fucntion because it is the only relation that has one input to one output." + ], + "execution_count": 31, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "y0U30PrlTAAa", + "colab_type": "text" + }, + "source": [ + "# Functions as a mapping between dimensions\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pw-OU9qmT5Ua", + "colab_type": "text" + }, + "source": [ + "## 3.1 for the following functions what is the dimensionality of the domain (input) and codomain (range/output)?\n", + "\n", + "\\begin{align}\n", + "m(𝑥_1,𝑥_2,𝑥_3)=(x_1+x_2, x_1+x_3, x_2+x_3)\n", + "\\\\\n", + "n(𝑥_1,𝑥_2,𝑥_3,𝑥_4)=(x_2^2 + x_3, x_2x_4)\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4belliBKay6-", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#Function m input dimensionality is R3 and the output is R3 as well\n", + "#Function n input dimensionality is R4 and the output is R2" + ], + "execution_count": 32, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "k4tKHjdHUevC", + "colab_type": "text" + }, + "source": [ + "## 3.2 Do you think it's possible to create a function that maps from a lower dimensional space to a higher dimensional space? If so, provide an example." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5IiVb4JiazqA", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": 32, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2nEWvwVyVWdW", + "colab_type": "text" + }, + "source": [ + "# Vector Transformations" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1n0-6FsYVcVk", + "colab_type": "text" + }, + "source": [ + "## 4.1 Plug the corresponding unit vectors into each function. Use the output vectors to create a transformation matrix.\n", + "\n", + "\\begin{align}\n", + "p(\\begin{bmatrix}x_1 \\\\ x_2 \\end{bmatrix}) = \\begin{bmatrix} x_1 + 3x_2 \\\\2 x_2 - x_1 \\\\ \\end{bmatrix}\n", + "\\\\\n", + "\\\\\n", + "q(\\begin{bmatrix}x_1 \\\\ x_2 \\\\ x_3\\end{bmatrix}) = \\begin{bmatrix} 4x_1 + x_2 + 2x_3 \\\\2 x_2 - x_1 + 3x_3 \\\\ 5x_1 - 2x_3 + x_2 \\end{bmatrix}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yiQsN4S7cqiF", + "colab_type": "code", + "colab": {} + }, + "source": [ + "def f(vect):\n", + " x1 = vect[0][0]\n", + " x2 = vect[1][0]\n", + " row1 = np.array([x1 + 3*x2])\n", + " row2 = np.array([2*x2 - x1])\n", + " output_vector = np.array([row1, row2])\n", + " return output_vector" + ], + "execution_count": 33, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "-5P6cBXifXjj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "30d1f2d2-eae6-4647-8fa5-dfb95aab1cd5" + }, + "source": [ + "i_hat = np.array([[1],[0]])\n", + "a = f(i_hat)\n", + "a" + ], + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 1],\n", + " [-1]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "15rbtZ0yfXqS", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "2be84d68-cbee-4e3e-cbed-e8bb9681a343" + }, + "source": [ + "p_hat = np.array([[0], [1]])\n", + "b = f(p_hat)\n", + "b" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[3],\n", + " [2]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_-KR1T5KfXxw", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "2f7c758f-123e-4b7c-f018-2360de8816c6" + }, + "source": [ + "T = np.column_stack([a,b])\n", + "T" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 1, 3],\n", + " [-1, 2]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 36 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gCOusfMrgkHi", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 110 + }, + "outputId": "6bc0b333-3b63-4458-df3b-a25b924854d3" + }, + "source": [ + "pd.DataFrame(T)" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
01
013
1-12
\n", + "
" + ], + "text/plain": [ + " 0 1\n", + "0 1 3\n", + "1 -1 2" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "n5HUOQIxZ2gp", + "colab_type": "text" + }, + "source": [ + "## 4.2 Verify that your transformation matrices are correct by choosing an input matrix and calculating the result both via the traditional functions above and also via vector-matrix multiplication." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0UANR1IEaVWE", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "77e48ed9-477f-4b2c-c0e4-eee3050b42bf" + }, + "source": [ + "input_vector = np.array([[3],[4]])\n", + "f(input_vector)" + ], + "execution_count": 38, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[15],\n", + " [ 5]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 38 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "isBk0rrUg3PN", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "a109f313-d07b-4e38-d626-74717eafb583" + }, + "source": [ + "output_vector = np.matmul(T,input_vector)\n", + "output_vector" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[15],\n", + " [ 5]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 39 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vEoiri3mak7j", + "colab_type": "text" + }, + "source": [ + "# Eigenvalues and Eigenvectors" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5HY0R4u7anIr", + "colab_type": "text" + }, + "source": [ + "## 5.1 In your own words, give an explanation for the intuition behind eigenvalues and eigenvectors." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "PoiBlTT1hcTX", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#An eigenvector is any vector that doesn't change its orientation during a transformation but may still be scaled.\n", + "#An eigenvalue is the scalar that scales the eigenvector." + ], + "execution_count": 40, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VdehMwBtatKI", + "colab_type": "text" + }, + "source": [ + "# The Curse of Dimensionality" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4oVrJax-a3SK", + "colab_type": "text" + }, + "source": [ + "## 6.1 What are some of the challenges of working with high dimensional spaces?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ootBdE_iiSmf", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#Data with too many dimensions have a lot of features that makes it difficult to work with. There is also increased redundancy within your data set." + ], + "execution_count": 41, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZiBJxsZla88c", + "colab_type": "text" + }, + "source": [ + "## 6.2 What is the rule of thumb for how many observations you should have compared to parameters in your model?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9MlidehQiTWe", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#You should have 5x the amount of observations to parameters." + ], + "execution_count": 41, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NZmqdeygbHJx", + "colab_type": "text" + }, + "source": [ + "# Principal Component Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7iEheetpbJdN", + "colab_type": "text" + }, + "source": [ + "## 7.1 Code for loading and cleaning the 2013 national dataset from the [Housing Affordability Data System (HADS)](https://www.huduser.gov/portal/datasets/hads/hads.html) --housing data, can be found below. \n", + "\n", + "## Perform PCA on the processed dataset `national_processed` (Make sure you standardize your data!) and then make a scatterplot of PC1 against PC2. Some of our discussion and work around PCA with this dataset will continue during tomorrow's lecture and assignment.\n", + "\n", + "Not only does this dataset have decent amount columns to begin with (99), but in preparing the data for PCA we have also [one-hot-encoded](https://hackernoon.com/what-is-one-hot-encoding-why-and-when-do-you-have-to-use-it-e3c6186d008f#targetText=One%20hot%20encoding%20is%20a,the%20entry%20in%20the%20dataset.) all of the categorical variables. This has the effect of creating a new column for each individual category of each categorical variable. After processing this dataset has 64738 columns. --Das a lot of columns.\n", + "\n", + "Don't worry too much about the mechanics of one-hot encoding right now, you will learn and experiment with a whole bunch of categorical encoding approaches in unit 2. \n", + "\n", + "The code below will read in the dataset and perform the one-hot encoding of the categorical variables. Start adding your PCA code at the bottom of the provided code." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Us4nNFs02HlD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 355 + }, + "outputId": "0e14b5db-aa58-476b-f653-2eea6cdc7463" + }, + "source": [ + "from urllib.request import urlopen\n", + "from zipfile import ZipFile\n", + "from io import BytesIO\n", + "import os.path\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Read Natinal Data \n", + "national_url = 'https://www.huduser.gov/portal/datasets/hads/hads2013n_ASCII.zip'\n", + "national_file = 'thads2013n.txt'\n", + "\n", + "if os.path.exists(national_file):\n", + " national = pd.read_csv(national_file)\n", + "else: \n", + " z_national = urlopen(national_url)\n", + " zip_national = ZipFile(BytesIO(z_national.read())).extract(national_file)\n", + " national = pd.read_csv(zip_national)\n", + "\n", + "print(national.shape)\n", + "national.head()" + ], + "execution_count": 42, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(64535, 99)\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CONTROLAGE1METRO3REGIONLMEDFMRL30L50L80IPOVBEDRMSBUILTSTATUSTYPEVALUEVACANCYTENURENUNITSROOMSWEIGHTPERZINC2ZADEQZSMHCSTRUCTURETYPEOWNRENTUTILITYOTHERCOSTCOST06COST12COST08COSTMEDTOTSALASSISTEDGLMEDGL30GL50GL80APLMEDABL30...COST08RELPOVCATCOST08RELFMRPCTCOST08RELFMRCATCOST12RELAMIPCTCOST12RELAMICATCOST12RELPOVPCTCOST12RELPOVCATCOST12RELFMRPCTCOST12RELFMRCATCOSTMedRELAMIPCTCOSTMedRELAMICATCOSTMedRELPOVPCTCOSTMedRELPOVCATCOSTMedRELFMRPCTCOSTMedRELFMRCATFMTZADEQFMTMETRO3FMTBUILTFMTSTRUCTURETYPEFMTBEDRMSFMTOWNRENTFMTCOST06RELPOVCATFMTCOST08RELPOVCATFMTCOST12RELPOVCATFMTCOSTMEDRELPOVCATFMTINCRELPOVCATFMTCOST06RELFMRCATFMTCOST08RELFMRCATFMTCOST12RELFMRCATFMTCOSTMEDRELFMRCATFMTINCRELFMRCATFMTCOST06RELAMICATFMTCOST08RELAMICATFMTCOST12RELAMICATFMTCOSTMEDRELAMICATFMTINCRELAMICATFMTASSISTEDFMTBURDENFMTREGIONFMTSTATUS
0'100003130103'82'3''1'737389561573826213403221106722006'1'140000-6'1'163117.394239118021'1'5331'1'169.000000213.750000648.588189803.050535696.905247615.1567120-97373815738262134032251616.620234.571429...472.898038248.4026352290.250487484.001102237.0776242222.339102464.3469362'1 Adequate''-5''2000-2009''1 Single Family''2 2BR''1 Owner''4 200%+ Poverty''4 200%+ Poverty''4 200%+ Poverty''4 200%+ Poverty''3 150-200% Poverty''2 50.1 - 100% FMR''2 50.1 - 100% FMR''2 50.1 - 100% FMR''2 50.1 - 100% FMR''1 LTE 50% FMR''2 30 - 50% AMI''2 30 - 50% AMI''2 30 - 50% AMI''2 30 - 50% AMI''2 30 - 50% AMI''.''2 30% to 50%''-5''-5'
1'100006110249'50'5''3'5584611001716528604457442421841980'1'1130000-6'1'162150.7255444122961'1'4871'1'245.33333358.3333331167.6407811669.6434051324.6712181058.988479123000-95584617165286044574455846.019911.400000...4120.4246563103.0940636275.7689994151.785764365.3884684174.909320396.2716802'1 Adequate''-5''1980-1989''1 Single Family''4 4BR+''1 Owner''3 150-200% Poverty''4 200%+ Poverty''4 200%+ Poverty''3 150-200% Poverty''4 200%+ Poverty''3 GT FMR''3 GT FMR''3 GT FMR''2 50.1 - 100% FMR''3 GT FMR''4 60 - 80% AMI''4 60 - 80% AMI''6 100 - 120% AMI''4 60 - 80% AMI''7 120% AMI +''.''1 Less than 30%''-5''-5'
2'100006370140'53'5''3'5584611001375022897366141547041985'1'1150000-6'1'172213.789404227974'1'14051'1'159.00000037.5000001193.3932091772.6270061374.5821751068.02516828000-95584613750228973661444676.819937.500000...4124.9620163109.4529056458.3392394161.147910365.9464494276.153890497.0931972'1 Adequate''-5''1980-1989''1 Single Family''4 4BR+''1 Owner''4 200%+ Poverty''4 200%+ Poverty''4 200%+ Poverty''4 200%+ Poverty''3 150-200% Poverty''3 GT FMR''3 GT FMR''3 GT FMR''2 50.1 - 100% FMR''2 50.1 - 100% FMR''4 60 - 80% AMI''5 80 - 100% AMI''6 100 - 120% AMI''4 60 - 80% AMI''4 60 - 80% AMI''.''3 50% or More''-5''-5'
3'100006520140'67'5''3'558469491375022897366141396431985'1'1200000-6'1'162364.585097232220'1'2791'1'179.00000070.6666671578.8576122351.1693411820.4429001411.7002240-95584613750228973661444676.817875.000000...4191.8274923161.9267097673.4945124247.752301397.2248015404.3827634148.7566103'1 Adequate''-5''1980-1989''1 Single Family''3 3BR''1 Owner''4 200%+ Poverty''4 200%+ Poverty''4 200%+ Poverty''4 200%+ Poverty''4 200%+ Poverty''3 GT FMR''3 GT FMR''3 GT FMR''3 GT FMR''2 50.1 - 100% FMR''6 100 - 120% AMI''7 120% AMI +''7 120% AMI +''5 80 - 100% AMI''4 60 - 80% AMI''.''1 Less than 30%''-5''-5'
4'100007130148'26'1''3'609917371480124628394211549221980'1'1-6-6'2'10042314.524902296874'1'7595'2'146.00000012.500000759.000000759.000000759.000000759.0000009690006099114801246283942148792.816651.125000...3102.985075355.3087073195.9721153102.985075355.3087073195.9721153102.9850753'1 Adequate''Central City''1980-1989''5 50+ units''2 2BR''2 Renter''3 150-200% Poverty''3 150-200% Poverty''3 150-200% Poverty''3 150-200% Poverty''4 200%+ Poverty''3 GT FMR''3 GT FMR''3 GT FMR''3 GT FMR''3 GT FMR''3 50 - 60% AMI''3 50 - 60% AMI''3 50 - 60% AMI''3 50 - 60% AMI''7 120% AMI +''0 Not Assisted''1 Less than 30%''-5''-5'
\n", + "

5 rows × 99 columns

\n", + "
" + ], + "text/plain": [ + " CONTROL AGE1 METRO3 ... FMTBURDEN FMTREGION FMTSTATUS\n", + "0 '100003130103' 82 '3' ... '2 30% to 50%' '-5' '-5'\n", + "1 '100006110249' 50 '5' ... '1 Less than 30%' '-5' '-5'\n", + "2 '100006370140' 53 '5' ... '3 50% or More' '-5' '-5'\n", + "3 '100006520140' 67 '5' ... '1 Less than 30%' '-5' '-5'\n", + "4 '100007130148' 26 '1' ... '1 Less than 30%' '-5' '-5'\n", + "\n", + "[5 rows x 99 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 42 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "O5zrMTud2qFU", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 228 + }, + "outputId": "b59d21ca-2133-4dd6-b327-21d71325b43b" + }, + "source": [ + "# Look at datatypes\n", + "# a lot of object datatypes even though they seem to be strings of numbers.\n", + "national.dtypes" + ], + "execution_count": 43, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "CONTROL object\n", + "AGE1 int64\n", + "METRO3 object\n", + "REGION object\n", + "LMED int64\n", + " ... \n", + "FMTINCRELAMICAT object\n", + "FMTASSISTED object\n", + "FMTBURDEN object\n", + "FMTREGION object\n", + "FMTSTATUS object\n", + "Length: 99, dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 43 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yIrOjVmd2yLz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "b402d700-f729-4a65-b101-5962e3367769" + }, + "source": [ + "# check for null values\n", + "national.isnull().sum().any()" + ], + "execution_count": 44, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "False" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 44 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2u9tdmwX3KL_", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "1e43d6f9-ff44-40ad-bc04-c372cbe29263" + }, + "source": [ + "# check for number of categorical vs numeric columns\n", + "cat_cols = national.columns[national.dtypes=='object']\n", + "num_cols = national.columns[national.dtypes!='object']\n", + "\n", + "print(f'{len(cat_cols)} categorical columns')\n", + "print(f'{len(num_cols)} numerical columns')" + ], + "execution_count": 45, + "outputs": [ + { + "output_type": "stream", + "text": [ + "32 categorical columns\n", + "67 numerical columns\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UMHOtOs_3gcL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 228 + }, + "outputId": "ed2d286e-373c-4aba-c2cd-0b05c456d26d" + }, + "source": [ + "# We're making a copy of our data in case we mess something up.\n", + "national_processed = national.copy()\n", + "\n", + "# Categorically Encode our Variables:\n", + "# They need to all be numeric before we do PCA.\n", + "# https://pbpython.com/categorical-encoding.html\n", + "\n", + "# Cast categorical columns to \"category\" data type\n", + "national_processed[cat_cols] = national_processed[cat_cols].astype('category')\n", + "\n", + "national_processed.dtypes" + ], + "execution_count": 46, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "CONTROL category\n", + "AGE1 int64\n", + "METRO3 category\n", + "REGION category\n", + "LMED int64\n", + " ... \n", + "FMTINCRELAMICAT category\n", + "FMTASSISTED category\n", + "FMTBURDEN category\n", + "FMTREGION category\n", + "FMTSTATUS category\n", + "Length: 99, dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ymxU-aPtQ1eq", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 385 + }, + "outputId": "1678ff70-b055-4636-a8e9-a8b2acfcd333" + }, + "source": [ + "# Replace all category cell values with their numeric category codes\n", + "for col in cat_cols:\n", + " national_processed[col] = national_processed[col].cat.codes\n", + "\n", + "print(national_processed.shape)\n", + "national_processed.head()" + ], + "execution_count": 64, + "outputs": [ + { + "output_type": "error", + "ename": "AttributeError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Replace all category cell values with their numeric category codes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcol\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcat_cols\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mnational_processed\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcol\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnational_processed\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcol\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcat\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcodes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnational_processed\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m__getattr__\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m 5268\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_accessors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5269\u001b[0m ):\n\u001b[0;32m-> 5270\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5271\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5272\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/core/accessor.py\u001b[0m in \u001b[0;36m__get__\u001b[0;34m(self, obj, cls)\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;31m# we're accessing the attribute of the class, i.e., Dataset.geo\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_accessor\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 187\u001b[0;31m \u001b[0maccessor_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_accessor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 188\u001b[0m \u001b[0;31m# Replace the property with the accessor object. Inspired by:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0;31m# http://www.pydanny.com/cached-property.html\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/core/arrays/categorical.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 2532\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2533\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2534\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2535\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2536\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pandas/core/arrays/categorical.py\u001b[0m in \u001b[0;36m_validate\u001b[0;34m(data)\u001b[0m\n\u001b[1;32m 2541\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_validate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2542\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mis_categorical_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2543\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Can only use .cat accessor with a 'category' dtype\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2544\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2545\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_delegate_property_get\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: Can only use .cat accessor with a 'category' dtype" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6NS5AQpcQ8Je", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 228 + }, + "outputId": "6391c9f5-66b4-43f2-c92e-be0ce7a52272" + }, + "source": [ + "# Now we only ahve numeric columns (ints and floats)\n", + "national_processed.dtypes" + ], + "execution_count": 48, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "CONTROL int32\n", + "AGE1 int64\n", + "METRO3 int8\n", + "REGION int8\n", + "LMED int64\n", + " ... \n", + "FMTINCRELAMICAT int8\n", + "FMTASSISTED int8\n", + "FMTBURDEN int8\n", + "FMTREGION int8\n", + "FMTSTATUS int8\n", + "Length: 99, dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 48 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "WAJ8bjVcEwhA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "6d7c2ef8-ca89-42b1-d5c4-d861df3da804" + }, + "source": [ + "### Your Code Here\n", + "from sklearn.preprocessing import StandardScaler\n", + "feature_cols=national_processed.columns[1:]\n", + "feature_cols[:5]" + ], + "execution_count": 49, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['AGE1', 'METRO3', 'REGION', 'LMED', 'FMR'], dtype='object')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 49 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-OYC1DuSlAOG", + "colab_type": "code", + "colab": {} + }, + "source": [ + "x = national_processed.loc[:, feature_cols].values\n", + "x = StandardScaler().fit_transform(x) " + ], + "execution_count": 50, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "JM6o1fIvlAWG", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "0f846f7e-8028-4f5c-d631-20a892e00aca" + }, + "source": [ + "print('{:.2f}'.format(np.mean(x)))\n", + "print(np.std(x))" + ], + "execution_count": 51, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0.00\n", + "0.9948848769417227\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "eT6sBMWFlATi", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 406 + }, + "outputId": "2b15cac4-c334-4fbc-d5d3-71120537a435" + }, + "source": [ + "normal_nat = pd.DataFrame(x,columns=feature_cols)\n", + "normal_nat.head(10)" + ], + "execution_count": 65, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + "
AGE1METRO3REGIONLMEDFMRL30L50L80IPOVBEDRMSBUILTSTATUSTYPEVALUEVACANCYTENURENUNITSROOMSWEIGHTPERZINC2ZADEQZSMHCSTRUCTURETYPEOWNRENTUTILITYOTHERCOSTCOST06COST12COST08COSTMEDTOTSALASSISTEDGLMEDGL30GL50GL80APLMEDABL30ABL50...COST08RELPOVCATCOST08RELFMRPCTCOST08RELFMRCATCOST12RELAMIPCTCOST12RELAMICATCOST12RELPOVPCTCOST12RELPOVCATCOST12RELFMRPCTCOST12RELFMRCATCOSTMedRELAMIPCTCOSTMedRELAMICATCOSTMedRELPOVPCTCOSTMedRELPOVCATCOSTMedRELFMRPCTCOSTMedRELFMRCATFMTZADEQFMTMETRO3FMTBUILTFMTSTRUCTURETYPEFMTBEDRMSFMTOWNRENTFMTCOST06RELPOVCATFMTCOST08RELPOVCATFMTCOST12RELPOVCATFMTCOSTMEDRELPOVCATFMTINCRELPOVCATFMTCOST06RELFMRCATFMTCOST08RELFMRCATFMTCOST12RELFMRCATFMTCOSTMEDRELFMRCATFMTINCRELFMRCATFMTCOST06RELAMICATFMTCOST08RELAMICATFMTCOST12RELAMICATFMTCOSTMEDRELAMICATFMTINCRELAMICATFMTASSISTEDFMTBURDENFMTREGIONFMTSTATUS
01.4880750.608784-1.3278720.454953-0.528766-0.444470-0.445262-0.553127-0.681429-0.6037001.504196-0.271749-0.142292-0.409728-0.26814-0.518234-0.2537010.1936410.989256-0.345248-0.582421-0.001189-0.538157-0.626460-0.858681-0.1083181.002403-0.524572-0.489431-0.511002-0.535753-0.693001-0.7743030.454953-0.444470-0.445262-0.553127-0.100276-0.139349-0.140598...0.448213-0.508180-0.588115-0.524716-1.139197-0.2942000.432580-0.487463-0.685212-0.580668-0.896546-0.2728480.472927-0.526199-0.452728-0.001189-0.7066471.728565-0.627170-0.612264-0.8586810.6766100.6498380.6157310.7035410.071352-0.518776-0.588115-0.685212-0.452728-1.091609-0.956874-1.028145-1.139197-0.896546-0.779119-0.7092780.549473-0.4621070.0
10.0888122.1842700.576698-0.991324-0.163391-0.123184-0.122457-0.0435661.1401321.2248390.515773-0.271749-0.142292-0.048319-0.26814-0.518234-0.2537010.1936410.2131780.8237430.827974-0.001189-0.584987-0.626460-0.8586810.478101-0.065553-0.214100-0.155728-0.190289-0.2354101.204959-0.774303-0.991324-0.123184-0.122457-0.0435660.108920-0.207233-0.206327...0.448213-0.1351920.796007-0.1027320.682587-0.3165210.432580-0.0844200.716067-0.2034810.115986-0.3991990.167739-0.199905-0.452728-0.001189-0.7066470.467274-0.6271701.390040-0.858681-0.0809370.6498380.615731-0.0523820.7783500.8598200.7960070.716067-0.4527280.9260910.024966-0.0774780.6825870.1159861.171883-0.709278-0.544709-0.4621070.0
20.2199932.1842700.576698-0.991324-0.163391-0.892063-0.892949-0.901606-0.0715641.2248390.705854-0.271749-0.1422920.031993-0.26814-0.518234-0.2537010.7187080.2638080.044416-0.448652-0.0011890.349585-0.626460-0.858681-0.185141-0.208710-0.198696-0.116072-0.164791-0.229295-0.260945-0.774303-0.991324-0.892063-0.892949-0.901606-0.443533-0.201751-0.203806...0.448213-0.0995830.796007-0.0536690.682587-0.0351180.432580-0.0287530.716067-0.1960460.115986-0.1294880.472927-0.191508-0.452728-0.001189-0.7066470.467274-0.6271701.390040-0.8586810.6766100.6498380.6157310.7035410.0713520.8598200.7960070.716067-0.452728-0.0827590.0249660.3978560.6825870.1159860.001282-0.7092781.643655-0.4621070.0
30.8321702.1842700.576698-0.991324-0.546527-0.892063-0.892949-0.901606-0.2801620.3105700.705854-0.271749-0.1422920.232776-0.26814-0.518234-0.2537010.1936410.3848720.044416-0.391586-0.001189-0.796742-0.626460-0.858681-0.0314940.0191970.0318700.1067100.0629910.003272-0.693001-0.774303-0.991324-0.892063-0.892949-0.901606-0.443533-0.634993-0.636447...0.4482130.4251760.7960070.3512041.1380320.2965100.4325800.4861900.7160670.2206770.6222520.2121080.4729270.3365290.923669-0.001189-0.7066470.467274-0.6271700.388888-0.8586810.6766100.6498380.6157310.7035410.7783500.8598200.7960070.7160670.923669-0.0827591.0068071.3485231.1380320.6222520.001282-0.709278-0.544709-0.4621070.0
4-0.960634-0.9667020.576698-0.575434-1.084440-0.655433-0.659250-0.637803-0.068517-0.6037000.515773-0.271749-0.142292-0.570378-0.268141.0978991.554657-0.8564940.3446820.0444160.477364-0.001189-0.3080772.0944011.164576-0.285012-0.380500-0.458529-0.506394-0.479279-0.4384140.8022211.226057-0.575434-0.655433-0.659250-0.637803-0.239947-0.892076-0.895889...0.144074-0.2720580.796007-0.471430-0.683751-0.4395150.129067-0.3745850.716067-0.337774-0.390280-0.3430890.167739-0.1312890.923669-0.0011891.4151340.4672742.095949-0.6122641.164576-0.080937-0.110391-0.147898-0.0523820.7783500.8598200.7960070.7160670.9236690.926091-0.465954-0.552811-0.683751-0.3902801.1718830.773833-0.544709-0.4621070.0
50.351174-0.1789590.576698-0.488538-1.287426-1.022649-1.024312-1.046429-0.551505-1.5179690.705854-0.271749-0.142292-0.570378-0.268141.0978990.312553-1.3815610.479664-0.345248-0.623197-0.001189-0.3732321.4141861.164576-0.678732-0.466394-0.496811-0.531039-0.511975-0.481723-0.4615431.448319-0.488538-1.022649-1.024312-1.046429-0.504401-1.425706-1.427031...0.448213-0.2500930.796007-0.437383-0.683751-0.3846460.432580-0.3579440.716067-0.278984-0.390280-0.2482570.472927-0.1026830.923669-0.001189-0.7066470.4672741.415169-1.6134161.1645760.6766100.6498380.6157310.703541-0.6356460.8598200.7960070.7160670.923669-0.082759-0.465954-0.552811-0.683751-0.390280-0.7791192.2569441.643655-0.4621070.0
60.088812-0.9667020.576698-0.575434-0.447572-0.240036-0.242749-0.1755140.2857950.3105700.705854-0.271749-0.1422920.473715-0.26814-0.518234-0.2537010.1936411.7655330.4340800.115667-0.0011890.105253-0.626460-0.8586810.4063990.0489730.3070740.3730980.3350680.2806830.387154-0.774303-0.575434-0.240036-0.242749-0.1755140.061728-0.349236-0.352037...0.4482130.7887830.7960070.5824051.1380320.2978120.4325800.8443670.7160670.4558281.1285170.2102580.4729270.7005950.923669-0.0011891.4151340.467274-0.6271700.388888-0.8586810.6766100.6498380.6157310.7035410.7783500.8598200.7960070.7160670.9236690.9260911.4977271.3485231.1380321.1285171.171883-0.709278-0.544709-0.4621070.0
7-0.9606341.3965271.528983-1.276181-0.993096-0.950827-0.950462-0.9659820.000739-0.6037000.515773-0.271749-0.142292-0.570378-0.268141.097899-0.125837-0.3314260.7532230.044416-0.3945432.396032-0.0871590.7339711.164576-0.784364-0.466394-0.328730-0.422833-0.368418-0.291569-0.3843901.226057-1.276181-0.950827-0.950462-0.965982-0.582977-1.202120-1.201565...0.448213-0.0893860.796007-0.258502-0.228305-0.3653000.432580-0.2361860.7160670.0298990.115986-0.2148200.4729270.1066110.9236692.396032-0.7066470.4672740.734390-0.6122641.1645760.6766100.6498380.6157310.7035410.7783500.8598200.7960070.7160670.9236690.9260910.024966-0.077478-0.2283050.1159860.0012820.7738330.5494732.1640010.0
80.5260822.1842701.528983-1.439950-0.099958-1.035032-1.033087-1.059023-0.0740570.3105700.705854-0.271749-0.1422920.112306-0.26814-0.518234-0.2537010.7187080.5359480.0444160.774563-0.0011890.096090-0.626460-0.8586810.007558-0.139995-0.098205-0.021639-0.066619-0.1269180.958070-0.774303-1.439950-1.035032-1.033087-1.059023-0.663145-0.808395-0.806427...0.4482130.0126750.7960070.2924091.1380320.0635540.4325800.0795670.7160670.1676040.622252-0.0243020.472927-0.0761160.923669-0.001189-0.7066470.467274-0.6271700.388888-0.8586810.6766100.6498380.6157310.7035410.7783500.8598200.7960070.7160670.9236690.9260911.0068070.8731891.1380320.6222521.171883-0.709278-0.5447092.1640010.0
9-0.9606341.396527-0.375587-0.395175-1.553844-0.984824-0.987185-1.006206-0.551505-1.5179690.705854-0.271749-0.142292-0.570378-0.268141.0978990.166423-1.3815610.770932-0.345248-0.179677-0.0011890.0390791.4141861.164576-1.406634-0.466394-0.254559-0.375084-0.305069-0.2076570.0476661.226057-0.395175-0.984824-0.987185-1.006206-0.464411-1.387896-1.389915...0.4482130.4836270.796007-0.1821880.227141-0.1766520.4325800.1979500.7160670.1616740.6222520.1112270.4729270.8528680.923669-0.001189-0.7066470.4672741.415169-1.6134161.1645760.6766100.6498380.6157310.7035410.7783500.8598200.7960070.7160670.9236690.9260910.5158870.3978560.2271410.6222520.7816830.773833-0.544709-0.4621070.0
\n", + "

10 rows × 98 columns

\n", + "
" + ], + "text/plain": [ + " AGE1 METRO3 REGION ... FMTBURDEN FMTREGION FMTSTATUS\n", + "0 1.488075 0.608784 -1.327872 ... 0.549473 -0.462107 0.0\n", + "1 0.088812 2.184270 0.576698 ... -0.544709 -0.462107 0.0\n", + "2 0.219993 2.184270 0.576698 ... 1.643655 -0.462107 0.0\n", + "3 0.832170 2.184270 0.576698 ... -0.544709 -0.462107 0.0\n", + "4 -0.960634 -0.966702 0.576698 ... -0.544709 -0.462107 0.0\n", + "5 0.351174 -0.178959 0.576698 ... 1.643655 -0.462107 0.0\n", + "6 0.088812 -0.966702 0.576698 ... -0.544709 -0.462107 0.0\n", + "7 -0.960634 1.396527 1.528983 ... 0.549473 2.164001 0.0\n", + "8 0.526082 2.184270 1.528983 ... -0.544709 2.164001 0.0\n", + "9 -0.960634 1.396527 -0.375587 ... -0.544709 -0.462107 0.0\n", + "\n", + "[10 rows x 98 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 65 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Kqatwdb-lARo", + "colab_type": "code", + "colab": {} + }, + "source": [ + "pca_nat = PCA(n_components=2)" + ], + "execution_count": 54, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "VJL1dt8QlALs", + "colab_type": "code", + "colab": {} + }, + "source": [ + "pca_data = pca_nat.fit_transform(x)" + ], + "execution_count": 55, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Kz85vJzal8tv", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + }, + "outputId": "2d350a13-1ba6-41de-ba2f-a79208e7d7c9" + }, + "source": [ + "df_final = pd.DataFrame(data = pca_data, columns = ['Component_1', 'Component_2'])\n", + "df_final.head(5)" + ], + "execution_count": 57, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Component_1Component_2
0-2.607484-1.380332
12.010313-0.992019
21.1848490.366219
32.7917721.719967
4-1.600407-0.882243
\n", + "
" + ], + "text/plain": [ + " Component_1 Component_2\n", + "0 -2.607484 -1.380332\n", + "1 2.010313 -0.992019\n", + "2 1.184849 0.366219\n", + "3 2.791772 1.719967\n", + "4 -1.600407 -0.882243" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 57 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tZ-U7evfl80d", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "91786d16-13fd-4a91-dd84-010fa8a955c8" + }, + "source": [ + "1-sum(pca_nat.explained_variance_ratio_)" + ], + "execution_count": 58, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.5101780795900035" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 58 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cn-lBSFDmqnb", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 357 + }, + "outputId": "ff943a9d-e5c3-4e56-c837-311c5aebaa0a" + }, + "source": [ + "df_final['CONTROL'] = national_processed['CONTROL']\n", + "df_final.head(10)" + ], + "execution_count": 66, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Component_1Component_2CONTROL
0-2.607484-1.3803320
12.010313-0.9920191
21.1848490.3662192
32.7917721.7199673
4-1.600407-0.8822434
5-2.966745-0.3013345
64.8108020.8715716
7-0.755372-0.9711787
83.2620880.9231228
90.0474590.5080829
\n", + "
" + ], + "text/plain": [ + " Component_1 Component_2 CONTROL\n", + "0 -2.607484 -1.380332 0\n", + "1 2.010313 -0.992019 1\n", + "2 1.184849 0.366219 2\n", + "3 2.791772 1.719967 3\n", + "4 -1.600407 -0.882243 4\n", + "5 -2.966745 -0.301334 5\n", + "6 4.810802 0.871571 6\n", + "7 -0.755372 -0.971178 7\n", + "8 3.262088 0.923122 8\n", + "9 0.047459 0.508082 9" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 66 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4Pqr4GFjl8xt", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 606 + }, + "outputId": "5decbd85-d08a-4eb2-ff34-2067db8485df" + }, + "source": [ + "plt.figure(figsize=(10,10))\n", + "plt.xlabel('Component 1')\n", + "plt.ylabel('Component 2')\n", + "plt.scatter(x = df_final['Component_1'], y = df_final['Component_2'], c = df_final['CONTROL']);" + ], + "execution_count": 94, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RQx7UvsucIrL", + "colab_type": "text" + }, + "source": [ + "# Stretch Goals\n", + "\n", + "## 1) Perform further data exploration on the HADS national dataset (the version before we one-hot encoded it) Make scatterplots and see if you can see any resemblance between the original scatterplots and the plot of the principal components that you made in 7.1. \n", + "\n", + "(You may or may not not see very much resemblance depending on the variables you choose, and that's ok!)\n", + "\n", + "## 2) Study \"Scree Plots\" and then try and make one for your PCA dataset. How many principal conponents do you need to retain in order for your PCs to contain 90% of the explained variance? \n", + "\n", + "We will present this topic formally at the beginning of tomorrow's lecture, so if you figure this stretch goal out, you're ahead of the game. \n", + "\n", + "## 3) Explore further the intuition behind eigenvalues and eigenvectors by creating your very own eigenfaces:\n", + "\n", + "Prioritize self-study over this stretch goal if you are not semi-comfortable with the topics of PCA, Eigenvalues, and Eigenvectors.\n", + "\n", + "![Eigenfaces](https://i.pinimg.com/236x/1c/f1/01/1cf101a9859437a5d096a04b05be06b4--faces-tattoo.jpg)\n", + "\n", + "You don't necessarily have to use this resource, but this will get you started: \n", + "[Eigenface Tutorial](https://sandipanweb.wordpress.com/2018/01/06/eigenfaces-and-a-simple-face-detector-with-pca-svd-in-python/)" + ] + } + ] +} \ No newline at end of file diff --git a/Copy_of_LS_DS_134_Clustering_Assignment.ipynb b/Copy_of_LS_DS_134_Clustering_Assignment.ipynb new file mode 100644 index 00000000..47233231 --- /dev/null +++ b/Copy_of_LS_DS_134_Clustering_Assignment.ipynb @@ -0,0 +1,2467 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of LS_DS_134_Clustering_Assignment.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "y-3rVFtGLMJM", + "colab_type": "text" + }, + "source": [ + "# K-Means Clustering" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_VS3FFSFLR3a", + "colab_type": "text" + }, + "source": [ + "# 1) Use the \"Breast Cancer Wisconsin (Diagnostic) Data Set\" from Kaggle to try and cluster types of cancer cells. \n", + "\n", + "Here's the original dataset for your reference:\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "899RK3bBn4OE", + "colab_type": "text" + }, + "source": [ + "## This is a supervised learning dataset\n", + "\n", + "(Because it has **labels** - The \"diagnosis\" column.)" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ws5R9X6hLJQ2", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 257 + }, + "outputId": "519ce2be-92c2-4570-c90f-bbaa8a776ee2" + }, + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.decomposition import PCA # You don't necessarily have to use this\n", + "from sklearn.cluster import KMeans # You don't necessarily have to use this\n", + "from sklearn.preprocessing import StandardScaler # You don't necessarily have to use this\n", + "\n", + "df = pd.read_csv(\"https://raw.githubusercontent.com/ryanleeallred/datasets/master/Cancer_Cells.csv\")\n", + "print(df.shape)\n", + "df.head()" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(569, 33)\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \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", + "
iddiagnosisradius_meantexture_meanperimeter_meanarea_meansmoothness_meancompactness_meanconcavity_meanconcave points_meansymmetry_meanfractal_dimension_meanradius_setexture_seperimeter_searea_sesmoothness_secompactness_seconcavity_seconcave points_sesymmetry_sefractal_dimension_seradius_worsttexture_worstperimeter_worstarea_worstsmoothness_worstcompactness_worstconcavity_worstconcave points_worstsymmetry_worstfractal_dimension_worstUnnamed: 32
0842302M17.9910.38122.801001.00.118400.277600.30010.147100.24190.078711.09500.90538.589153.400.0063990.049040.053730.015870.030030.00619325.3817.33184.602019.00.16220.66560.71190.26540.46010.11890NaN
1842517M20.5717.77132.901326.00.084740.078640.08690.070170.18120.056670.54350.73393.39874.080.0052250.013080.018600.013400.013890.00353224.9923.41158.801956.00.12380.18660.24160.18600.27500.08902NaN
284300903M19.6921.25130.001203.00.109600.159900.19740.127900.20690.059990.74560.78694.58594.030.0061500.040060.038320.020580.022500.00457123.5725.53152.501709.00.14440.42450.45040.24300.36130.08758NaN
384348301M11.4220.3877.58386.10.142500.283900.24140.105200.25970.097440.49561.15603.44527.230.0091100.074580.056610.018670.059630.00920814.9126.5098.87567.70.20980.86630.68690.25750.66380.17300NaN
484358402M20.2914.34135.101297.00.100300.132800.19800.104300.18090.058830.75720.78135.43894.440.0114900.024610.056880.018850.017560.00511522.5416.67152.201575.00.13740.20500.40000.16250.23640.07678NaN
\n", + "
" + ], + "text/plain": [ + " id diagnosis ... fractal_dimension_worst Unnamed: 32\n", + "0 842302 M ... 0.11890 NaN\n", + "1 842517 M ... 0.08902 NaN\n", + "2 84300903 M ... 0.08758 NaN\n", + "3 84348301 M ... 0.17300 NaN\n", + "4 84358402 M ... 0.07678 NaN\n", + "\n", + "[5 rows x 33 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 1 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IHDDqaU-ove4", + "colab_type": "text" + }, + "source": [ + "## Now it's an unsupervised learning dataset\n", + "\n", + "(Because we've removed the diagnosis label) - Use this version." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "86MHoPJon_aC", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 240 + }, + "outputId": "03a4bb8d-1ecf-403e-c661-ae0999432f4d" + }, + "source": [ + "df = df.drop('diagnosis', axis=1)\n", + "df.head()" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \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", + "
idradius_meantexture_meanperimeter_meanarea_meansmoothness_meancompactness_meanconcavity_meanconcave points_meansymmetry_meanfractal_dimension_meanradius_setexture_seperimeter_searea_sesmoothness_secompactness_seconcavity_seconcave points_sesymmetry_sefractal_dimension_seradius_worsttexture_worstperimeter_worstarea_worstsmoothness_worstcompactness_worstconcavity_worstconcave points_worstsymmetry_worstfractal_dimension_worstUnnamed: 32
084230217.9910.38122.801001.00.118400.277600.30010.147100.24190.078711.09500.90538.589153.400.0063990.049040.053730.015870.030030.00619325.3817.33184.602019.00.16220.66560.71190.26540.46010.11890NaN
184251720.5717.77132.901326.00.084740.078640.08690.070170.18120.056670.54350.73393.39874.080.0052250.013080.018600.013400.013890.00353224.9923.41158.801956.00.12380.18660.24160.18600.27500.08902NaN
28430090319.6921.25130.001203.00.109600.159900.19740.127900.20690.059990.74560.78694.58594.030.0061500.040060.038320.020580.022500.00457123.5725.53152.501709.00.14440.42450.45040.24300.36130.08758NaN
38434830111.4220.3877.58386.10.142500.283900.24140.105200.25970.097440.49561.15603.44527.230.0091100.074580.056610.018670.059630.00920814.9126.5098.87567.70.20980.86630.68690.25750.66380.17300NaN
48435840220.2914.34135.101297.00.100300.132800.19800.104300.18090.058830.75720.78135.43894.440.0114900.024610.056880.018850.017560.00511522.5416.67152.201575.00.13740.20500.40000.16250.23640.07678NaN
\n", + "
" + ], + "text/plain": [ + " id radius_mean ... fractal_dimension_worst Unnamed: 32\n", + "0 842302 17.99 ... 0.11890 NaN\n", + "1 842517 20.57 ... 0.08902 NaN\n", + "2 84300903 19.69 ... 0.08758 NaN\n", + "3 84348301 11.42 ... 0.17300 NaN\n", + "4 84358402 20.29 ... 0.07678 NaN\n", + "\n", + "[5 rows x 32 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "55HnIOvaA3qw", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 240 + }, + "outputId": "ab5f1050-0c5f-432a-cfa5-257e351844bc" + }, + "source": [ + "df = df.drop('Unnamed: 32', axis = 1)\n", + "df.head()" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \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", + "
idradius_meantexture_meanperimeter_meanarea_meansmoothness_meancompactness_meanconcavity_meanconcave points_meansymmetry_meanfractal_dimension_meanradius_setexture_seperimeter_searea_sesmoothness_secompactness_seconcavity_seconcave points_sesymmetry_sefractal_dimension_seradius_worsttexture_worstperimeter_worstarea_worstsmoothness_worstcompactness_worstconcavity_worstconcave points_worstsymmetry_worstfractal_dimension_worst
084230217.9910.38122.801001.00.118400.277600.30010.147100.24190.078711.09500.90538.589153.400.0063990.049040.053730.015870.030030.00619325.3817.33184.602019.00.16220.66560.71190.26540.46010.11890
184251720.5717.77132.901326.00.084740.078640.08690.070170.18120.056670.54350.73393.39874.080.0052250.013080.018600.013400.013890.00353224.9923.41158.801956.00.12380.18660.24160.18600.27500.08902
28430090319.6921.25130.001203.00.109600.159900.19740.127900.20690.059990.74560.78694.58594.030.0061500.040060.038320.020580.022500.00457123.5725.53152.501709.00.14440.42450.45040.24300.36130.08758
38434830111.4220.3877.58386.10.142500.283900.24140.105200.25970.097440.49561.15603.44527.230.0091100.074580.056610.018670.059630.00920814.9126.5098.87567.70.20980.86630.68690.25750.66380.17300
48435840220.2914.34135.101297.00.100300.132800.19800.104300.18090.058830.75720.78135.43894.440.0114900.024610.056880.018850.017560.00511522.5416.67152.201575.00.13740.20500.40000.16250.23640.07678
\n", + "
" + ], + "text/plain": [ + " id radius_mean ... symmetry_worst fractal_dimension_worst\n", + "0 842302 17.99 ... 0.4601 0.11890\n", + "1 842517 20.57 ... 0.2750 0.08902\n", + "2 84300903 19.69 ... 0.3613 0.08758\n", + "3 84348301 11.42 ... 0.6638 0.17300\n", + "4 84358402 20.29 ... 0.2364 0.07678\n", + "\n", + "[5 rows x 31 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 11 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rskC80k3OKMA", + "colab_type": "text" + }, + "source": [ + "## Let's do it!\n", + "\n", + "- You might want to do some data exploration to see if you can find specific columns that will help you find distinct clusters of cells\n", + "- You might want to use the elbow method to decide on the number of clusters to use.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "U92Y3jNKPpjJ", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Perform K-Means Clustering on the Dataset\n", + "from sklearn.cluster import KMeans" + ], + "execution_count": 39, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Czem0fqUEhVN", + "colab_type": "code", + "colab": {} + }, + "source": [ + "features = ['texture_mean', 'symmetry_mean']" + ], + "execution_count": 40, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "HOBMe9ecAGzy", + "colab_type": "code", + "colab": {} + }, + "source": [ + "kmeans = KMeans(n_clusters = 3)" + ], + "execution_count": 48, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "jqU0J77MAG3u", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "4247690f-21fc-4657-fdb1-9d404803c220" + }, + "source": [ + "kmeans.fit(df[features].values)" + ], + "execution_count": 49, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n", + " n_clusters=3, n_init=10, n_jobs=None, precompute_distances='auto',\n", + " random_state=None, tol=0.0001, verbose=0)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 49 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3sDfVWypAGvn", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 228 + }, + "outputId": "793c50d6-501a-45c6-a9de-1b74d05c80d5" + }, + "source": [ + "df['clusters'] = kmeans.labels_\n", + "df['clusters']" + ], + "execution_count": 59, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 1\n", + "1 0\n", + "2 0\n", + "3 0\n", + "4 1\n", + " ..\n", + "564 0\n", + "565 2\n", + "566 2\n", + "567 2\n", + "568 2\n", + "Name: clusters, Length: 569, dtype: int32" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 59 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SQJxHvynB0s6", + "colab_type": "code", + "colab": {} + }, + "source": [ + "centroids = kmeans.cluster_centers_" + ], + "execution_count": 51, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "6ZOzx8R2GcZc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 141 + }, + "outputId": "a08027e3-906d-49aa-dd70-006960168b93" + }, + "source": [ + "cc = pd.DataFrame(centroids)\n", + "cc.head()" + ], + "execution_count": 52, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
01
020.2542800.183275
115.2480180.177549
226.5044440.184039
\n", + "
" + ], + "text/plain": [ + " 0 1\n", + "0 20.254280 0.183275\n", + "1 15.248018 0.177549\n", + "2 26.504444 0.184039" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 52 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "_xIRcbeLCnkc", + "colab_type": "code", + "colab": {} + }, + "source": [ + "base_colors = ['r', 'g', 'b']\n", + "colors = [base_colors[centroid]for centroid in kmeans.labels_]" + ], + "execution_count": 66, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "03IXjWI0AGtP", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "outputId": "73108030-acb2-4479-8f3c-bce068a9909b" + }, + "source": [ + "fig, ax = plt.subplots(figsize=(7,6))\n", + "ax.scatter(df[features[0]], df[features[1]], c=colors)\n", + "ax.scatter(cc[0], cc[1], c=base_colors, s=100);" + ], + "execution_count": 68, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7ghqYSxrP_FE", + "colab_type": "text" + }, + "source": [ + "## Check you work: \n", + "\n", + "This is something that in a truly unsupervised learning situation **WOULD NOT BE POSSIBLE**. But for educational purposes go back and grab the true diagnosis column (label) from the original dataset. Take your cluster labels and compare them to the original diagnosis column. You can make scatterplots for each to see how they compare or you can calculate a percent accuracy score like: \n", + "\\begin{align}\n", + "\\frac{\\text{Num Correct Labels}}{\\text{Num Total Observations}}\n", + "\\end{align}" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "CaciygR8YHbl", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BedOTS0eJ9_K", + "colab_type": "text" + }, + "source": [ + "# 2) Perform PCA on your dataset first and *then* use k-means clustering. \n", + "\n", + "- You need to standardize your data before PCA.\n", + "- First try clustering just on PC1 and PC2 so that you can make a scatterplot of your clustering.\n", + "- Then use use a scree plot to decide how many principal components to include in your clustering, and use however many principal components you need in order to retain 90% of the variation of the original dataset\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dW1AeAK8PNah", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 257 + }, + "outputId": "9064fb02-d9e3-4069-be4e-2ca5fe1a3dee" + }, + "source": [ + "##### Your Code Here #####\n", + "df = pd.read_csv(\"https://raw.githubusercontent.com/ryanleeallred/datasets/master/Cancer_Cells.csv\")\n", + "print(df.shape)\n", + "df.head()" + ], + "execution_count": 257, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(569, 33)\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \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", + "
iddiagnosisradius_meantexture_meanperimeter_meanarea_meansmoothness_meancompactness_meanconcavity_meanconcave points_meansymmetry_meanfractal_dimension_meanradius_setexture_seperimeter_searea_sesmoothness_secompactness_seconcavity_seconcave points_sesymmetry_sefractal_dimension_seradius_worsttexture_worstperimeter_worstarea_worstsmoothness_worstcompactness_worstconcavity_worstconcave points_worstsymmetry_worstfractal_dimension_worstUnnamed: 32
0842302M17.9910.38122.801001.00.118400.277600.30010.147100.24190.078711.09500.90538.589153.400.0063990.049040.053730.015870.030030.00619325.3817.33184.602019.00.16220.66560.71190.26540.46010.11890NaN
1842517M20.5717.77132.901326.00.084740.078640.08690.070170.18120.056670.54350.73393.39874.080.0052250.013080.018600.013400.013890.00353224.9923.41158.801956.00.12380.18660.24160.18600.27500.08902NaN
284300903M19.6921.25130.001203.00.109600.159900.19740.127900.20690.059990.74560.78694.58594.030.0061500.040060.038320.020580.022500.00457123.5725.53152.501709.00.14440.42450.45040.24300.36130.08758NaN
384348301M11.4220.3877.58386.10.142500.283900.24140.105200.25970.097440.49561.15603.44527.230.0091100.074580.056610.018670.059630.00920814.9126.5098.87567.70.20980.86630.68690.25750.66380.17300NaN
484358402M20.2914.34135.101297.00.100300.132800.19800.104300.18090.058830.75720.78135.43894.440.0114900.024610.056880.018850.017560.00511522.5416.67152.201575.00.13740.20500.40000.16250.23640.07678NaN
\n", + "
" + ], + "text/plain": [ + " id diagnosis ... fractal_dimension_worst Unnamed: 32\n", + "0 842302 M ... 0.11890 NaN\n", + "1 842517 M ... 0.08902 NaN\n", + "2 84300903 M ... 0.08758 NaN\n", + "3 84348301 M ... 0.17300 NaN\n", + "4 84358402 M ... 0.07678 NaN\n", + "\n", + "[5 rows x 33 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 257 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "diaWfoKXdnAu", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#df = df.drop('id', axis = 1)\n", + "#df = df.drop('Unnamed: 32', axis = 1)\n", + "#df = df.drop('diagnosis', axis = 1)" + ], + "execution_count": 261, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "bBiAUFpBhvOz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "4f47e3e1-1bab-4ffe-dbbd-c8f1d5a4dcd3" + }, + "source": [ + "#cat_cols = df.columns[df.dtypes=='object']\n", + "#cat_cols" + ], + "execution_count": 183, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['diagnosis'], dtype='object')" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 183 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "AdbaxelZhuw3", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#df[cat_cols] = df[cat_cols].astype('category')" + ], + "execution_count": 184, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "1lIH0HPFhujB", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#for col in cat_cols:\n", + " #df[col] = df[col].cat.codes" + ], + "execution_count": 185, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "7z_gynXhdCqc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 105 + }, + "outputId": "4d048e46-b920-4c27-c536-bc2f09781be8" + }, + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "feature_cols=list(df.columns)\n", + "feature_cols[:5]" + ], + "execution_count": 262, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "['radius_mean',\n", + " 'texture_mean',\n", + " 'perimeter_mean',\n", + " 'area_mean',\n", + " 'smoothness_mean']" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 262 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0uzeLzzhdCvG", + "colab_type": "code", + "colab": {} + }, + "source": [ + "x = df.loc[:, feature_cols].values\n", + "x = StandardScaler().fit_transform(x)" + ], + "execution_count": 263, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "fysXsc8WdCzQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "4f9cf9bb-d4f6-4e8a-eb48-37b3c8546347" + }, + "source": [ + "np.mean(x)" + ], + "execution_count": 264, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1.2487570048507913e-18" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 264 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0SQVKy_TdC8b", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 240 + }, + "outputId": "3169ec54-d083-4119-900b-606bb7f0eabf" + }, + "source": [ + "normal_df = pd.DataFrame(x, columns = feature_cols)\n", + "normal_df.head()" + ], + "execution_count": 265, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
radius_meantexture_meanperimeter_meanarea_meansmoothness_meancompactness_meanconcavity_meanconcave points_meansymmetry_meanfractal_dimension_meanradius_setexture_seperimeter_searea_sesmoothness_secompactness_seconcavity_seconcave points_sesymmetry_sefractal_dimension_seradius_worsttexture_worstperimeter_worstarea_worstsmoothness_worstcompactness_worstconcavity_worstconcave points_worstsymmetry_worstfractal_dimension_worst
01.097064-2.0733351.2699340.9843751.5684663.2835152.6528742.5324752.2175152.2557472.489734-0.5652652.8330312.487578-0.2140021.3168620.7240260.6608201.1487570.9070831.886690-1.3592932.3036012.0012371.3076862.6166652.1095262.2960762.7506221.937015
11.829821-0.3536321.6859551.908708-0.826962-0.487072-0.0238460.5481440.001392-0.8686520.499255-0.8762440.2633270.742402-0.605351-0.692926-0.4407800.260162-0.805450-0.0994441.805927-0.3692031.5351261.890489-0.375612-0.430444-0.1467491.087084-0.2438900.281190
21.5798880.4561871.5665031.5588840.9422101.0529261.3634782.0372310.939685-0.3980081.228676-0.7800830.8509281.181336-0.2970050.8149740.2130761.4248270.2370360.2935591.511870-0.0239741.3474751.4562850.5274071.0829320.8549741.9550001.1522550.201391
3-0.7689090.253732-0.592687-0.7644643.2835533.4029091.9158971.4517072.8673834.9109190.326373-0.1104090.286593-0.2883780.6897022.7442800.8195181.1150074.7326802.047511-0.2814640.133984-0.249939-0.5500213.3942753.8933971.9895882.1757866.0460414.935010
41.750297-1.1518161.7765731.8262290.2803720.5393401.3710111.428493-0.009560-0.5624501.270543-0.7902441.2731891.1903571.483067-0.0485200.8284711.144205-0.3610920.4993281.298575-1.4667701.3385391.2207240.220556-0.3133950.6131790.729259-0.868353-0.397100
\n", + "
" + ], + "text/plain": [ + " radius_mean texture_mean ... symmetry_worst fractal_dimension_worst\n", + "0 1.097064 -2.073335 ... 2.750622 1.937015\n", + "1 1.829821 -0.353632 ... -0.243890 0.281190\n", + "2 1.579888 0.456187 ... 1.152255 0.201391\n", + "3 -0.768909 0.253732 ... 6.046041 4.935010\n", + "4 1.750297 -1.151816 ... -0.868353 -0.397100\n", + "\n", + "[5 rows x 30 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 265 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4iz5-Okte77w", + "colab_type": "code", + "colab": {} + }, + "source": [ + "from sklearn.decomposition import PCA" + ], + "execution_count": 156, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "ZeGLSen-e75M", + "colab_type": "code", + "colab": {} + }, + "source": [ + "pca_df = PCA(n_components = 2)" + ], + "execution_count": 215, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "tPmI_sUMfFvq", + "colab_type": "code", + "colab": {} + }, + "source": [ + "pca_data = pca_df.fit_transform(normal_df)" + ], + "execution_count": 228, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "8pJ5mOy-fF0i", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + }, + "outputId": "9d1d0ced-a31b-4c73-bf55-d45e71e5d036" + }, + "source": [ + "df_final = pd.DataFrame(data = pca_data, columns = ['comp_1', 'comp_2'])\n", + "df_final.head()" + ], + "execution_count": 232, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
comp_1comp_2
09.1928371.948583
12.387802-3.768172
25.733896-1.075174
37.12295310.275589
43.935302-1.948072
\n", + "
" + ], + "text/plain": [ + " comp_1 comp_2\n", + "0 9.192837 1.948583\n", + "1 2.387802 -3.768172\n", + "2 5.733896 -1.075174\n", + "3 7.122953 10.275589\n", + "4 3.935302 -1.948072" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 232 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VUUO6imEfF57", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "ccbb8a5e-7cdd-4cea-9a2f-500e3057b760" + }, + "source": [ + "print(sum(pca_df.explained_variance_ratio_))\n", + "print(1-sum(pca_df.explained_variance_ratio_))" + ], + "execution_count": 230, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0.6324320765155946\n", + "0.36756792348440537\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Cpor37G1gYzQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + }, + "outputId": "2a81393c-a0fc-4405-a8ab-c3ce7fa5b01e" + }, + "source": [ + "df_final.sample(5)" + ], + "execution_count": 220, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
comp_1comp_2
564.648739-2.310333
206-3.4548951.306939
263-1.908769-3.121946
538-4.1970802.367392
416-2.6223392.502102
\n", + "
" + ], + "text/plain": [ + " comp_1 comp_2\n", + "56 4.648739 -2.310333\n", + "206 -3.454895 1.306939\n", + "263 -1.908769 -3.121946\n", + "538 -4.197080 2.367392\n", + "416 -2.622339 2.502102" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 220 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "jdKlnT2kg-t6", + "colab_type": "code", + "colab": {} + }, + "source": [ + "k = 3\n", + "my_kmeans = KMeans(n_clusters=k, max_iter=1)" + ], + "execution_count": 273, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "v3e4PyF9idfL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 70 + }, + "outputId": "4431fc92-4cf1-4ee2-e373-4b28852286dc" + }, + "source": [ + "my_kmeans.fit(df_final.values)" + ], + "execution_count": 274, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=1,\n", + " n_clusters=3, n_init=10, n_jobs=None, precompute_distances='auto',\n", + " random_state=None, tol=0.0001, verbose=0)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 274 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tZ38yvZpidmu", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df_final['cluster'] = my_kmeans.labels_" + ], + "execution_count": 275, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Au8H6AD-idjs", + "colab_type": "code", + "colab": {} + }, + "source": [ + "centroids1 = my_kmeans.cluster_centers_" + ], + "execution_count": 276, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "1w8EaNOEi6o0", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 141 + }, + "outputId": "13037a8d-5c8a-482f-b068-1dd39cade297" + }, + "source": [ + "cc1 = pd.DataFrame(centroids1)\n", + "cc1.head()" + ], + "execution_count": 277, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
012
01.5468213.2209191.644860
1-2.295230-0.4291510.959302
25.288553-1.6695780.389831
\n", + "
" + ], + "text/plain": [ + " 0 1 2\n", + "0 1.546821 3.220919 1.644860\n", + "1 -2.295230 -0.429151 0.959302\n", + "2 5.288553 -1.669578 0.389831" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 277 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "52Vm4CANi6uM", + "colab_type": "code", + "colab": {} + }, + "source": [ + "b_colors = ['r', 'g', 'b']\n", + "colors = [b_colors[centroid] for centroid in my_kmeans.labels_]" + ], + "execution_count": 278, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "bGuym9hJjOvR", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "outputId": "65e1d0ce-5d83-4862-e31c-e4c0fdfe59e9" + }, + "source": [ + "fig, ax = plt.subplots(figsize=(7,6))\n", + "ax.scatter(df_final['comp_1'], df_final['comp_2'], c=colors)\n", + "ax.scatter(cc1[0], cc1[1], c=b_colors, s=100);" + ], + "execution_count": 279, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "olx92yFijO0F", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PkrfbzfBROpP", + "colab_type": "text" + }, + "source": [ + "## Check your work: \n", + "\n", + "- Compare your PC1, PC2 clustering scatterplot to the clustering scatterplots you made on the raw data\n", + "- Calculate accuracy scores for both the PC1,PC2 Principal component clustering and the 90% of explained variance clustering.\n", + "\n", + "How do your accuracy scores -when preprocessing the data with PCA- compare to the accuracy when simply clustering on the raw data?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3BQYhR05mCUY", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "e860c838-6a85-42b0-ddc0-6c48b0daff50" + }, + "source": [ + "from sklearn import metrics\n", + "metrics.silhouette_score(df_final, my_kmeans.labels_, metric='euclidean')" + ], + "execution_count": 282, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.48516517912137136" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 282 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qQ94o-81m9eU", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "outputId": "c989883e-0141-40fb-967d-f317963752e3" + }, + "source": [ + "metrics.silhouette_score(df, kmeans.labels_, metric = 'euclidean')" + ], + "execution_count": 284, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "-0.022925094124505933" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 284 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wKBwVaGOOYsq", + "colab_type": "text" + }, + "source": [ + "# Stretch Goals:\n", + "\n", + "- Study for the Sprint Challenge\n", + "- Work on your Data Storytelling Project" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9p2djjY5LNWd", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file