diff --git a/ML0101EN-Clas-Decision-Trees-drug.ipynb b/ML0101EN-Clas-Decision-Trees-drug.ipynb new file mode 100644 index 0000000..ae9f816 --- /dev/null +++ b/ML0101EN-Clas-Decision-Trees-drug.ipynb @@ -0,0 +1,891 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

\n", + " \n", + " \"Skills\n", + " \n", + "

\n", + "\n", + "# Decision Trees\n", + "\n", + "Estimated time needed: **15** minutes\n", + "\n", + "## Objectives\n", + "\n", + "After completing this lab you will be able to:\n", + "\n", + "* Develop a classification model using Decision Tree Algorithm\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this lab exercise, you will learn a popular machine learning algorithm, Decision Trees. You will use this classification algorithm to build a model from the historical data of patients, and their response to different medications. Then you will use the trained decision tree to predict the class of an unknown patient, or to find a proper drug for a new patient.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Table of contents

\n", + "\n", + "
\n", + "
    \n", + "
  1. About the dataset
  2. \n", + "
  3. Downloading the Data
  4. \n", + "
  5. Pre-processing
  6. \n", + "
  7. Setting up the Decision Tree
  8. \n", + "
  9. Modeling
  10. \n", + "
  11. Prediction
  12. \n", + "
  13. Evaluation
  14. \n", + "
  15. Visualization
  16. \n", + "
\n", + "
\n", + "
\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Import the Following Libraries:\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "if you uisng you own version comment out\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Surpress warnings:\n", + "def warn(*args, **kwargs):\n", + " pass\n", + "import warnings\n", + "warnings.warn = warn" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import sys\n", + "import numpy as np \n", + "import pandas as pd\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "import sklearn.tree as tree" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

About the dataset

\n", + " Imagine that you are a medical researcher compiling data for a study. You have collected data about a set of patients, all of whom suffered from the same illness. During their course of treatment, each patient responded to one of 5 medications, Drug A, Drug B, Drug c, Drug x and y. \n", + "
\n", + "
\n", + " Part of your job is to build a model to find out which drug might be appropriate for a future patient with the same illness. The features of this dataset are Age, Sex, Blood Pressure, and the Cholesterol of the patients, and the target is the drug that each patient responded to.\n", + "
\n", + "
\n", + " It is a sample of multiclass classifier, and you can use the training part of the dataset \n", + " to build a decision tree, and then use it to predict the class of an unknown patient, or to prescribe a drug to a new patient.\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

Downloading the Data

\n", + " To download the data, we will use pandas library to read itdirectly into a dataframe from IBM Object Storage.\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeSexBPCholesterolNa_to_KDrug
023FHIGHHIGH25.355drugY
147MLOWHIGH13.093drugC
247MLOWHIGH10.114drugC
328FNORMALHIGH7.798drugX
461FLOWHIGH18.043drugY
522FNORMALHIGH8.607drugX
649FNORMALHIGH16.275drugY
741MLOWHIGH11.037drugC
860MNORMALHIGH15.171drugY
943MLOWNORMAL19.368drugY
1047FLOWHIGH11.767drugC
1134FHIGHNORMAL19.199drugY
1243MLOWHIGH15.376drugY
\n", + "
" + ], + "text/plain": [ + " Age Sex BP Cholesterol Na_to_K Drug\n", + "0 23 F HIGH HIGH 25.355 drugY\n", + "1 47 M LOW HIGH 13.093 drugC\n", + "2 47 M LOW HIGH 10.114 drugC\n", + "3 28 F NORMAL HIGH 7.798 drugX\n", + "4 61 F LOW HIGH 18.043 drugY\n", + "5 22 F NORMAL HIGH 8.607 drugX\n", + "6 49 F NORMAL HIGH 16.275 drugY\n", + "7 41 M LOW HIGH 11.037 drugC\n", + "8 60 M NORMAL HIGH 15.171 drugY\n", + "9 43 M LOW NORMAL 19.368 drugY\n", + "10 47 F LOW HIGH 11.767 drugC\n", + "11 34 F HIGH NORMAL 19.199 drugY\n", + "12 43 M LOW HIGH 15.376 drugY" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_data = pd.read_csv('https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%203/data/drug200.csv', delimiter=\",\")\n", + "my_data.head(13)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

Practice

\n", + " What is the size of data? \n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(200, 6)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_data.shape\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python\n", + "my_data.shape\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

Pre-processing

\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using my_data as the Drug.csv data read by pandas, declare the following variables:
\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remove the column containing the target name since it doesn't contain numeric values.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[23, 'F', 'HIGH', 'HIGH', 25.355],\n", + " [47, 'M', 'LOW', 'HIGH', 13.093],\n", + " [47, 'M', 'LOW', 'HIGH', 10.114],\n", + " [28, 'F', 'NORMAL', 'HIGH', 7.798],\n", + " [61, 'F', 'LOW', 'HIGH', 18.043]], dtype=object)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = my_data[['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K']].values\n", + "X[0:5]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you may figure out, some features in this dataset are categorical, such as **Sex** or **BP**. Unfortunately, Sklearn Decision Trees does not handle categorical variables. We can still convert these features to numerical values using the **LabelEncoder() method**\n", + "to convert the categorical variable into dummy/indicator variables.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[23, 0, 0, 0, 25.355],\n", + " [47, 1, 1, 0, 13.093],\n", + " [47, 1, 1, 0, 10.114],\n", + " [28, 0, 2, 0, 7.798],\n", + " [61, 0, 1, 0, 18.043]], dtype=object)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn import preprocessing\n", + "le_sex = preprocessing.LabelEncoder()\n", + "le_sex.fit(['F','M'])\n", + "X[:,1] = le_sex.transform(X[:,1]) \n", + "\n", + "\n", + "le_BP = preprocessing.LabelEncoder()\n", + "le_BP.fit([ 'LOW', 'NORMAL', 'HIGH'])\n", + "X[:,2] = le_BP.transform(X[:,2])\n", + "\n", + "\n", + "le_Chol = preprocessing.LabelEncoder()\n", + "le_Chol.fit([ 'NORMAL', 'HIGH'])\n", + "X[:,3] = le_Chol.transform(X[:,3]) \n", + "\n", + "X[0:5]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can fill the target variable.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 drugY\n", + "1 drugC\n", + "2 drugC\n", + "3 drugX\n", + "4 drugY\n", + "Name: Drug, dtype: object" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = my_data[\"Drug\"]\n", + "y[0:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "
\n", + "

Setting up the Decision Tree

\n", + " We will be using train/test split on our decision tree. Let's import train_test_split from sklearn.cross_validation.\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now train_test_split will return 4 different parameters. We will name them:
\n", + "X_trainset, X_testset, y_trainset, y_testset

\n", + "The train_test_split will need the parameters:
\n", + "X, y, test_size=0.3, and random_state=3.

\n", + "The X and y are the arrays required before the split, the test_size represents the ratio of the testing dataset, and the random_state ensures that we obtain the same splits.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "X_trainset, X_testset, y_trainset, y_testset = train_test_split(X, y, test_size=0.3, random_state=3)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "

Practice

\n", + "Print the shape of X_trainset and y_trainset. Ensure that the dimensions match.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shape of X training set (140, 5) & Size of Y training set (140,)\n" + ] + } + ], + "source": [ + "print('Shape of X training set {}'.format(X_trainset.shape),'&',' Size of Y training set {}'.format(y_trainset.shape))\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python\n", + "print('Shape of X training set {}'.format(X_trainset.shape),'&',' Size of Y training set {}'.format(y_trainset.shape))\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Print the shape of X_testset and y_testset. Ensure that the dimensions match.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shape of X test set (60, 5) & Size of y test set (60,)\n" + ] + } + ], + "source": [ + "print('Shape of X test set {}'.format(X_testset.shape),'&','Size of y test set {}'.format(y_testset.shape))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python\n", + "print('Shape of X test set {}'.format(X_testset.shape),'&','Size of y test set {}'.format(y_testset.shape))\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "
\n", + "

Modeling

\n", + " We will first create an instance of the DecisionTreeClassifier called drugTree.
\n", + " Inside of the classifier, specify criterion=\"entropy\" so we can see the information gain of each node.\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "DecisionTreeClassifier(criterion='entropy', max_depth=4)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "drugTree = DecisionTreeClassifier(criterion=\"entropy\", max_depth = 4)\n", + "drugTree # it shows the default parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will fit the data with the training feature matrix X_trainset and training response vector y_trainset \n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "DecisionTreeClassifier(criterion='entropy', max_depth=4)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "drugTree.fit(X_trainset,y_trainset)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "
\n", + "

Prediction

\n", + " Let's make some predictions on the testing dataset and store it into a variable called predTree.\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "predTree = drugTree.predict(X_testset)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can print out predTree and y_testset if you want to visually compare the predictions to the actual values.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['drugY' 'drugX' 'drugX' 'drugX' 'drugX']\n", + "40 drugY\n", + "51 drugX\n", + "139 drugX\n", + "197 drugX\n", + "170 drugX\n", + "Name: Drug, dtype: object\n" + ] + } + ], + "source": [ + "print (predTree [0:5])\n", + "print (y_testset [0:5])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "
\n", + "

Evaluation

\n", + " Next, let's import metrics from sklearn and check the accuracy of our model.\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DecisionTrees's Accuracy: 0.9833333333333333\n" + ] + } + ], + "source": [ + "from sklearn import metrics\n", + "import matplotlib.pyplot as plt\n", + "print(\"DecisionTrees's Accuracy: \", metrics.accuracy_score(y_testset, predTree))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Accuracy classification score** computes subset accuracy: the set of labels predicted for a sample must exactly match the corresponding set of labels in y_true.\n", + "\n", + "In multilabel classification, the function returns the subset accuracy. If the entire set of predicted labels for a sample strictly matches with the true set of labels, then the subset accuracy is 1.0; otherwise it is 0.0.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "
\n", + "

Visualization

\n", + "\n", + "Let's visualize the tree\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Notice: You might need to uncomment and install the pydotplus and graphviz libraries if you have not installed these before\n", + "#!conda install -c conda-forge pydotplus -y\n", + "#!conda install -c conda-forge python-graphviz -y\n", + "\n", + "#After executing the code below, a file named 'tree.png' would be generated which contains the decision tree image." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "from sklearn.tree import export_graphviz\n", + "export_graphviz(drugTree, out_file='tree.dot', filled=True, feature_names=['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K'])\n", + "!dot -Tpng tree.dot -o tree.png\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Thank you for completing this lab!\n", + "\n", + "## Author\n", + "\n", + "Saeed Aghabozorgi\n", + "\n", + "### Other Contributors\n", + "\n", + "Joseph Santarcangelo\n", + "\n", + "Richard Ye\n", + "\n", + "##

© IBM Corporation 2020. All rights reserved.

\n", + " \n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python", + "language": "python", + "name": "conda-env-python-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.12" + }, + "prev_pub_hash": "1228bf81fd1be0f6e7dda62256f4ffcb19b064217fc51f2e012abde9b84c2b0d" + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ML0101EN-Clas-K-Nearest-neighbors-CustCat.ipynb b/ML0101EN-Clas-K-Nearest-neighbors-CustCat.ipynb new file mode 100644 index 0000000..937fa1e --- /dev/null +++ b/ML0101EN-Clas-K-Nearest-neighbors-CustCat.ipynb @@ -0,0 +1,1088 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

\n", + " \n", + " \"Skills\n", + " \n", + "

\n", + "\n", + "# K-Nearest Neighbors\n", + "\n", + "Estimated time needed: **25** minutes\n", + "\n", + "## Objectives\n", + "\n", + "After completing this lab you will be able to:\n", + "\n", + "* Use K Nearest neighbors to classify data\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this Lab you will load a customer dataset, fit the data, and use K-Nearest Neighbors to predict a data point. But what is **K-Nearest Neighbors**?\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**K-Nearest Neighbors** is a supervised learning algorithm. Where the data is 'trained' with data points corresponding to their classification. To predict the class of a given data point, it takes into account the classes of the 'K' nearest data points and chooses the class in which the majority of the 'K' nearest data points belong to as the predicted class.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Here's an visualization of the K-Nearest Neighbors algorithm.\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, we have data points of Class A and B. We want to predict what the star (test data point) is. If we consider a k value of 3 (3 nearest data points), we will obtain a prediction of Class B. Yet if we consider a k value of 6, we will obtain a prediction of Class A.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this sense, it is important to consider the value of k. Hopefully from this diagram, you should get a sense of what the K-Nearest Neighbors algorithm is. It considers the 'K' Nearest Neighbors (data points) when it predicts the classification of the test point.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Table of contents

\n", + "\n", + "
\n", + "
    \n", + "
  1. About the dataset
  2. \n", + "
  3. Data Visualization and Analysis
  4. \n", + "
  5. Classification
  6. \n", + "
\n", + "
\n", + "
\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting scikit-learn==0.23.1\n", + " Downloading scikit_learn-0.23.1-cp37-cp37m-manylinux1_x86_64.whl (6.8 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.8/6.8 MB\u001b[0m \u001b[31m35.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0mm\n", + "\u001b[?25hRequirement already satisfied: numpy>=1.13.3 in /home/jupyterlab/conda/envs/python/lib/python3.7/site-packages (from scikit-learn==0.23.1) (1.21.6)\n", + "Requirement already satisfied: scipy>=0.19.1 in /home/jupyterlab/conda/envs/python/lib/python3.7/site-packages (from scikit-learn==0.23.1) (1.7.3)\n", + "Collecting joblib>=0.11 (from scikit-learn==0.23.1)\n", + " Downloading joblib-1.3.2-py3-none-any.whl (302 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m302.2/302.2 kB\u001b[0m \u001b[31m25.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting threadpoolctl>=2.0.0 (from scikit-learn==0.23.1)\n", + " Downloading threadpoolctl-3.1.0-py3-none-any.whl (14 kB)\n", + "Installing collected packages: threadpoolctl, joblib, scikit-learn\n", + " Attempting uninstall: scikit-learn\n", + " Found existing installation: scikit-learn 0.20.1\n", + " Uninstalling scikit-learn-0.20.1:\n", + " Successfully uninstalled scikit-learn-0.20.1\n", + "Successfully installed joblib-1.3.2 scikit-learn-0.23.1 threadpoolctl-3.1.0\n" + ] + } + ], + "source": [ + "!pip install scikit-learn==0.23.1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's load required libraries\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn import preprocessing\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

About the dataset

\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Imagine a telecommunications provider has segmented its customer base by service usage patterns, categorizing the customers into four groups. If demographic data can be used to predict group membership, the company can customize offers for individual prospective customers. It is a classification problem. That is, given the dataset, with predefined labels, we need to build a model to be used to predict class of a new or unknown case.\n", + "\n", + "The example focuses on using demographic data, such as region, age, and marital, to predict usage patterns.\n", + "\n", + "The target field, called **custcat**, has four possible values that correspond to the four customer groups, as follows:\n", + "1- Basic Service\n", + "2- E-Service\n", + "3- Plus Service\n", + "4- Total Service\n", + "\n", + "Our objective is to build a classifier, to predict the class of unknown cases. We will use a specific type of classification called K nearest neighbour.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load Data \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's read the data using pandas library and print the first five rows.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
regiontenureagemaritaladdressincomeedemployretiregenderresidecustcat
0213441964.0450.0021
13113317136.0550.0064
236852124116.01290.0123
32333301233.0200.0111
4223301930.0120.0043
52413901778.02160.0113
6345221219.0240.0152
7238350576.02100.0034
83455917166.04310.0053
91684112172.01220.0032
102533010125.0450.0111
11373501480.02150.0113
12141381837.0290.0131
\n", + "
" + ], + "text/plain": [ + " region tenure age marital address income ed employ retire gender \\\n", + "0 2 13 44 1 9 64.0 4 5 0.0 0 \n", + "1 3 11 33 1 7 136.0 5 5 0.0 0 \n", + "2 3 68 52 1 24 116.0 1 29 0.0 1 \n", + "3 2 33 33 0 12 33.0 2 0 0.0 1 \n", + "4 2 23 30 1 9 30.0 1 2 0.0 0 \n", + "5 2 41 39 0 17 78.0 2 16 0.0 1 \n", + "6 3 45 22 1 2 19.0 2 4 0.0 1 \n", + "7 2 38 35 0 5 76.0 2 10 0.0 0 \n", + "8 3 45 59 1 7 166.0 4 31 0.0 0 \n", + "9 1 68 41 1 21 72.0 1 22 0.0 0 \n", + "10 2 5 33 0 10 125.0 4 5 0.0 1 \n", + "11 3 7 35 0 14 80.0 2 15 0.0 1 \n", + "12 1 41 38 1 8 37.0 2 9 0.0 1 \n", + "\n", + " reside custcat \n", + "0 2 1 \n", + "1 6 4 \n", + "2 2 3 \n", + "3 1 1 \n", + "4 4 3 \n", + "5 1 3 \n", + "6 5 2 \n", + "7 3 4 \n", + "8 5 3 \n", + "9 3 2 \n", + "10 1 1 \n", + "11 1 3 \n", + "12 3 1 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv('https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%203/data/teleCust1000t.csv')\n", + "df.head(13)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

Data Visualization and Analysis

\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Let’s see how many of each class is in our data set\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "3 281\n", + "1 266\n", + "4 236\n", + "2 217\n", + "Name: custcat, dtype: int64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['custcat'].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 281 Plus Service, 266 Basic-service, 236 Total Service, and 217 E-Service customers\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can easily explore your data using visualization techniques:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[]], dtype=object)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAGxCAYAAACA4KdFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAoVElEQVR4nO3df1DU94H/8ddGlxUIUIHCQkRDUm2vAW2C0WiTSFQwJMZ0bGtyGmvubM6cPy6MOome03HttGjNt8YbbExytWpqPZKbi17utAZslJQSU4LaqLnapCUaGxAPEVBwWeH9/cNjx4/gD3QFefN8zOzovve9nx+vvte+8mGXdRljjAAAACxzS3cfAAAAwI1AyQEAAFai5AAAACtRcgAAgJUoOQAAwEqUHAAAYCVKDgAAsBIlBwAAWImSAwAArETJAXBZGzZskMvl0meffdbdhwIAneLiax0AXM6JEyf05z//WXfffbc8Hk93Hw4AXDVKDgAAsBI/rgJwWRf/uCozM1NpaWkqKyvTAw88oIiICN1xxx1asWKFWltbHc89deqUFixYoDvuuEMej0cJCQl65JFH9Mc//jE45+TJk5o9e7Zuu+02hYWF6Y477tCSJUvk9/sd23K5XJo7d67Wr1+vr371qwoPD9fw4cO1Z88eGWP04osvKjU1VbfeeqvGjh2rTz/9tN257Ny5U+PGjVN0dLQiIiL0zW9+U7/5zW9CHxqAmwIlB0CnVVVVadq0aXrqqaf09ttvKycnR4sXL9amTZuCcxoaGnT//ffr1Vdf1d/93d/pv/7rv/TKK69oyJAhqqyslCSdPXtWDz30kF5//XXNnz9f27Zt01NPPaWVK1dq8uTJ7fb73//93/r5z3+uFStW6N/+7d/U0NCgRx99VAsWLNDvfvc7rVmzRq+99po+/vhjffvb39aFF6o3bdqk7OxsRUdHa+PGjXrzzTcVGxurCRMmUHQAWxkAuIz169cbSaaiosIYY8yYMWOMJPPBBx845n396183EyZMCN7/4Q9/aCSZoqKiS277lVdeMZLMm2++6Rj/yU9+YiSZwsLC4Jgk4/V6zenTp4NjW7duNZLMN77xDdPa2hocX716tZFkPvroI2OMMWfOnDGxsbHmsccec+ynpaXFDBs2zIwYMeIq0wDQk3AlB0Cneb1ejRgxwjE2dOhQHTlyJHj/17/+tYYMGaLx48dfcjvvvvuuIiMj9Z3vfMcx/vTTT0tSuyssDz30kCIjI4P3/+Zv/kaSlJOTI5fL1W687XhKS0t18uRJzZgxQ+fOnQveWltb9fDDD6usrExnzpy52tMH0EP07e4DANDzxMXFtRvzeDxqamoK3j9x4oQGDhx42e3U1NTI6/U6CookJSQkqG/fvqqpqXGMx8bGOu6HhYVddvzs2bOSpOPHj0tSuzJ1oZMnTzoKFICej5ID4Ib48pe/rGPHjl12TlxcnD744AMZYxxFp7q6WufOnVN8fHxIjqVtO/n5+brvvvs6nJOYmBiSfQG4efDjKgA3RE5Ojv70pz/p3XffveSccePG6fTp09q6datj/PXXXw8+Hgrf/OY39aUvfUkff/yxhg8f3uGt7eoPAHtwJQfADZGbm6s33nhDjz/+uBYtWqQRI0aoqalJxcXFmjhxoh566CF973vf089+9jPNmDFDn332mdLT01VSUqK8vDw98sgjl30/T2fceuutys/P14wZM3Ty5El95zvfUUJCgk6cOKE//OEPOnHihNauXRuSfQG4eVByANwQUVFRKikpkc/n02uvvaZly5apf//+uvfee/UP//APkqR+/fpp165dWrJkiV588UWdOHFCt912mxYuXKilS5eG9HieeuopDRw4UCtXrtSsWbPU0NCghIQEfeMb3wi+0RmAXfiNxwAAwEq8JwcAAFiJkgMAAKxEyQEAAFai5AAAACtRcgAAgJUoOQAAwEo98vfktLa26osvvlBUVFS777wBAAA3J2OMGhoalJycrFtuufHXWXpkyfniiy+UkpLS3YcBAACuweeff64BAwbc8P30yJITFRUl6XxI0dHR1729QCCgwsJCZWdny+12X/f2ejrycCIPJ/JwIg8n8nAiD6eTJ08qNTU1+P/jN1qPLDltP6KKjo4OWcmJiIhQdHQ0i1DkcTHycCIPJ/JwIg8n8nAKBAKS1GVvNeGNxwAAwEqUHAAAYCVKDgAAsBIlBwAAWImSAwAArETJAQAAVqLkAAAAK1FyAACAlSg5AADASpQcAABgJUoOAACwEiUHAABYiZIDAACsRMkBAABW6tvdB3Azun3RtivO+WzFo11wJAAA4FpxJQcAAFiJkgMAAKxEyQEAAFai5AAAACtRcgAAgJUoOQAAwEqUHAAAYCVKDgAAsBIlBwAAWImSAwAA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jIzUpEmTdOzYsa48lZDw+XztztXr9QYfN8bI5/MpOTlZ4eHhyszM1KFDhxzbsCULSbr99tvb5eFyuTRnzhxJ9q+N9957T4899piSk5Plcrm0detWx+OhWg+1tbWaPn26YmJiFBMTo+nTp+vUqVM3+Ow673J5BAIBvfDCC0pPT1dkZKSSk5P1ve99T1988YVjG5mZme3WzJNPPumYY0MeUuheH7bk0dG/JS6XSy+++GJwTletj15fct544w3l5uZqyZIl2rdvnx544AHl5OTo6NGj3X1oIVVcXKw5c+Zoz549Kioq0rlz55Sdna0zZ5zfuP7www+rsrIyeNu+fbvj8dzcXG3ZskUFBQUqKSnR6dOnNXHiRLW0tHTl6YTEXXfd5TjXAwcOBB9buXKlVq1apTVr1qisrExer1dZWVlqaGgIzrEpi7KyMkcWbb+N/Lvf/W5wjs1r48yZMxo2bJjWrFnT4eOhWg9Tp07V/v37tWPHDu3YsUP79+/X9OnTb/j5ddbl8mhsbNTevXv1gx/8QHv37tVbb72lP/3pT5o0aVK7uc8884xjzbz66quOx23Io00oXh+25HFhDpWVlfrFL34hl8ulb3/72455XbI+uuRrQG9iI0aMMM8++6xj7Gtf+5pZtGhRNx1R16iurjaSTHFxcXBsxowZ5vHHH7/kc06dOmXcbrcpKCgIjv31r381t9xyi9mxY8eNPNyQW7p0qRk2bFiHj7W2thqv12tWrFgRHDt79qyJiYkxr7zyijHGriw68txzz5k777zTtLa2GmN619qQZLZs2RK8H6r18PHHHxtJZs+ePcE577//vpFk/vjHP97gs7p2F+fRkd///vdGkjly5EhwbMyYMea555675HNsyiMUrw+b8rjY448/bsaOHesY66r10auv5DQ3N6u8vFzZ2dmO8ezsbJWWlnbTUXWNuro6SWr3TbC7d+9WQkKChgwZomeeeUbV1dXBx8rLyxUIBBx5JScnKy0trUfm9cknnyg5OVmpqal68skn9Ze//EWSVFFRoaqqKsd5ejwejRkzJnietmVxoebmZm3atEl///d/L5fLFRzvTWvjQqFaD++//75iYmI0cuTI4Jz77rtPMTExPT6juro6uVyudl+c/Ktf/Urx8fG66667tHDhQseVL9vyuN7Xh215tDl+/Li2bdummTNntnusK9ZHt32tw83gf//3f9XS0tLum88TExPbfUO6TYwxmj9/vu6//36lpaUFx3NycvTd735XgwYNUkVFhX7wgx9o7NixKi8vl8fjUVVVlcLCwtS/f3/H9npiXiNHjtTrr7+uIUOG6Pjx4/rRj36k0aNH69ChQ8Fz6WhdHDlyRJKsyuJiW7du1alTp/T0008Hx3rT2rhYqNZDVVWVEhIS2m0/ISGhR2d09uxZLVq0SFOnTnV8y/a0adOUmpoqr9ergwcPavHixfrDH/4Q/FGoTXmE4vVhUx4X2rhxo6KiojR58mTHeFetj15dctpc+F+r0vkScPGYTebOnauPPvpIJSUljvEnnngi+Pe0tDQNHz5cgwYN0rZt29ot0Av1xLxycnKCf09PT9eoUaN05513auPGjcE3DF7LuuiJWVxs3bp1ysnJUXJycnCsN62NSwnFeuhofk/OKBAI6Mknn1Rra6tefvllx2PPPPNM8O9paWkaPHiwhg8frr179+qee+6RZE8eoXp92JLHhX7xi19o2rRp6tevn2O8q9ZHr/5xVXx8vPr06dOuFVZXV7f7rzZbzJs3T2+//bZ27dqlAQMGXHZuUlKSBg0apE8++USS5PV61dzcrNraWsc8G/KKjIxUenq6Pvnkk+CnrC63LmzN4siRI9q5c6e+//3vX3Zeb1oboVoPXq9Xx48fb7f9EydO9MiMAoGApkyZooqKChUVFTmu4nTknnvukdvtdqwZm/K40LW8PmzM47e//a0OHz58xX9PpBu3Pnp1yQkLC1NGRkbw8liboqIijR49upuO6sYwxmju3Ll666239O677yo1NfWKz6mpqdHnn3+upKQkSVJGRobcbrcjr8rKSh08eLDH5+X3+/U///M/SkpKCl5CvfA8m5ubVVxcHDxPW7NYv369EhIS9Oijj152Xm9aG6FaD6NGjVJdXZ1+//vfB+d88MEHqqur63EZtRWcTz75RDt37lRcXNwVn3Po0CEFAoHgmrEpj4tdy+vDxjzWrVunjIwMDRs27Ipzb9j6uOq3KFuqoKDAuN1us27dOvPxxx+b3NxcExkZaT777LPuPrSQ+sd//EcTExNjdu/ebSorK4O3xsZGY4wxDQ0NZsGCBaa0tNRUVFSYXbt2mVGjRpnbbrvN1NfXB7fz7LPPmgEDBpidO3eavXv3mrFjx5phw4aZc+fOddepXZMFCxaY3bt3m7/85S9mz549ZuLEiSYqKir4v/uKFStMTEyMeeutt8yBAwfM3/7t35qkpCQrs2jT0tJiBg4caF544QXHeG9YGw0NDWbfvn1m3759RpJZtWqV2bdvX/DTQqFaDw8//LAZOnSoef/99837779v0tPTzcSJE7v8fK/kcnkEAgEzadIkM2DAALN//37Hvyd+v98YY8ynn35qli1bZsrKykxFRYXZtm2b+drXvmbuvvtu6/II5evDhjza1NXVmYiICLN27dp2z+/K9dHrS44xxvzsZz8zgwYNMmFhYeaee+5xfKzaFpI6vK1fv94YY0xjY6PJzs42X/7yl43b7TYDBw40M2bMMEePHnVsp6mpycydO9fExsaa8PBwM3HixHZzeoInnnjCJCUlGbfbbZKTk83kyZPNoUOHgo+3traapUuXGq/Xazwej3nwwQfNgQMHHNuwJYs277zzjpFkDh8+7BjvDWtj165dHb4+ZsyYYYwJ3Xqoqakx06ZNM1FRUSYqKspMmzbN1NbWdtFZXr3L5VFRUXHJf0927dpljDHm6NGj5sEHHzSxsbEmLCzM3Hnnneaf/umfTE1NjWM/NuQRyteHDXm0efXVV014eLg5depUu+d35fpwGWPM1V/3AQAA6Bl69XtyAACAvSg5AADASpQcAABgJUoOAACwEiUHAABYiZIDAACsRMkBAABWouQAAAArUXIAAICVKDkAAMBKlBwAAGCl/w81p+JqPaH0LgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.hist(column='income', bins=50)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature set\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's define feature sets, X:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['region', 'tenure', 'age', 'marital', 'address', 'income', 'ed',\n", + " 'employ', 'retire', 'gender', 'reside', 'custcat'],\n", + " dtype='object')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To use scikit-learn library, we have to convert the Pandas data frame to a Numpy array:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 2., 13., 44., 1., 9., 64., 4., 5., 0., 0., 2.],\n", + " [ 3., 11., 33., 1., 7., 136., 5., 5., 0., 0., 6.],\n", + " [ 3., 68., 52., 1., 24., 116., 1., 29., 0., 1., 2.],\n", + " [ 2., 33., 33., 0., 12., 33., 2., 0., 0., 1., 1.],\n", + " [ 2., 23., 30., 1., 9., 30., 1., 2., 0., 0., 4.]])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = df[['region', 'tenure','age', 'marital', 'address', 'income', 'ed', 'employ','retire', 'gender', 'reside']] .values #.astype(float)\n", + "X[0:5]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What are our labels?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 4, 3, 1, 3])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = df['custcat'].values\n", + "y[0:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Normalize Data\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Data Standardization gives the data zero mean and unit variance, it is good practice, especially for algorithms such as KNN which is based on the distance of data points:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-0.02696767, -1.055125 , 0.18450456, 1.0100505 , -0.25303431,\n", + " -0.12650641, 1.0877526 , -0.5941226 , -0.22207644, -1.03459817,\n", + " -0.23065004],\n", + " [ 1.19883553, -1.14880563, -0.69181243, 1.0100505 , -0.4514148 ,\n", + " 0.54644972, 1.9062271 , -0.5941226 , -0.22207644, -1.03459817,\n", + " 2.55666158],\n", + " [ 1.19883553, 1.52109247, 0.82182601, 1.0100505 , 1.23481934,\n", + " 0.35951747, -1.36767088, 1.78752803, -0.22207644, 0.96655883,\n", + " -0.23065004],\n", + " [-0.02696767, -0.11831864, -0.69181243, -0.9900495 , 0.04453642,\n", + " -0.41625141, -0.54919639, -1.09029981, -0.22207644, 0.96655883,\n", + " -0.92747794],\n", + " [-0.02696767, -0.58672182, -0.93080797, 1.0100505 , -0.25303431,\n", + " -0.44429125, -1.36767088, -0.89182893, -0.22207644, -1.03459817,\n", + " 1.16300577]])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = preprocessing.StandardScaler().fit(X).transform(X.astype(float))\n", + "X[0:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Train Test Split\n", + "\n", + "Out of Sample Accuracy is the percentage of correct predictions that the model makes on data that the model has NOT been trained on. Doing a train and test on the same dataset will most likely have low out-of-sample accuracy, due to the likelihood of our model overfitting.\n", + "\n", + "It is important that our models have a high, out-of-sample accuracy, because the purpose of any model, of course, is to make correct predictions on unknown data. So how can we improve out-of-sample accuracy? One way is to use an evaluation approach called Train/Test Split.\n", + "Train/Test Split involves splitting the dataset into training and testing sets respectively, which are mutually exclusive. After which, you train with the training set and test with the testing set.\n", + "\n", + "This will provide a more accurate evaluation on out-of-sample accuracy because the testing dataset is not part of the dataset that has been used to train the model. It is more realistic for the real world problems.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train set: (800, 11) (800,)\n", + "Test set: (200, 11) (200,)\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=4)\n", + "print ('Train set:', X_train.shape, y_train.shape)\n", + "print ('Test set:', X_test.shape, y_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "
\n", + "

Classification

\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

K nearest neighbor (KNN)

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Import library\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Classifier implementing the k-nearest neighbors vote.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Training\n", + "\n", + "Let's start the algorithm with k=4 for now:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "KNeighborsClassifier(n_neighbors=4)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "k = 4\n", + "#Train Model and Predict \n", + "neigh = KNeighborsClassifier(n_neighbors = k).fit(X_train,y_train)\n", + "neigh" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Predicting\n", + "\n", + "We can use the model to make predictions on the test set:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 1, 3, 2, 4])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "yhat = neigh.predict(X_test)\n", + "yhat[0:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Accuracy evaluation\n", + "\n", + "In multilabel classification, **accuracy classification score** is a function that computes subset accuracy. This function is equal to the jaccard_score function. Essentially, it calculates how closely the actual labels and predicted labels are matched in the test set.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train set Accuracy: 0.5475\n", + "Test set Accuracy: 0.32\n" + ] + } + ], + "source": [ + "from sklearn import metrics\n", + "print(\"Train set Accuracy: \", metrics.accuracy_score(y_train, neigh.predict(X_train)))\n", + "print(\"Test set Accuracy: \", metrics.accuracy_score(y_test, yhat))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice\n", + "\n", + "Can you build the model again, but this time with k=6?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train set Accuracy: 0.51625\n", + "Test set Accuracy: 0.31\n" + ] + } + ], + "source": [ + "k = 6\n", + "neigh6 = KNeighborsClassifier(n_neighbors = k).fit(X_train,y_train)\n", + "yhat6 = neigh6.predict(X_test)\n", + "print(\"Train set Accuracy: \", metrics.accuracy_score(y_train, neigh6.predict(X_train)))\n", + "print(\"Test set Accuracy: \", metrics.accuracy_score(y_test, yhat6))\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python\n", + "k = 6\n", + "neigh6 = KNeighborsClassifier(n_neighbors = k).fit(X_train,y_train)\n", + "yhat6 = neigh6.predict(X_test)\n", + "print(\"Train set Accuracy: \", metrics.accuracy_score(y_train, neigh6.predict(X_train)))\n", + "print(\"Test set Accuracy: \", metrics.accuracy_score(y_test, yhat6))\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### What about other K?\n", + "\n", + "K in KNN, is the number of nearest neighbors to examine. It is supposed to be specified by the user. So, how can we choose right value for K?\n", + "The general solution is to reserve a part of your data for testing the accuracy of the model. Then choose k =1, use the training part for modeling, and calculate the accuracy of prediction using all samples in your test set. Repeat this process, increasing the k, and see which k is the best for your model.\n", + "\n", + "We can calculate the accuracy of KNN for different values of k.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.3 , 0.29 , 0.315, 0.32 , 0.315, 0.31 , 0.335, 0.325, 0.34 ])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Ks = 10\n", + "mean_acc = np.zeros((Ks-1))\n", + "std_acc = np.zeros((Ks-1))\n", + "\n", + "for n in range(1,Ks):\n", + " \n", + " #Train Model and Predict \n", + " neigh = KNeighborsClassifier(n_neighbors = n).fit(X_train,y_train)\n", + " yhat=neigh.predict(X_test)\n", + " mean_acc[n-1] = metrics.accuracy_score(y_test, yhat)\n", + "\n", + " \n", + " std_acc[n-1]=np.std(yhat==y_test)/np.sqrt(yhat.shape[0])\n", + "\n", + "mean_acc" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Plot the model accuracy for a different number of neighbors.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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NPEvzOi6jhMnTiAmJgaSJFXKe2RmZqJhw4Y4duwYYmNjK+U9AlW43nu43jcQvvcervcNhO+9h+t9A+F771Vx30IIZGVloV69epDli8+iY49dMWRZRoMGDarkvWJjY8PqG6CgcL33cL1vIHzvPVzvGwjfew/X+wbC994r+74v1VPnwcUTRERERCGCwY6IiIgoRDDYGcRqtWLGjBmwWq1GN6XKheu9h+t9A+F77+F630D43nu43jcQvvceaPfNxRNEREREIYI9dkREREQhgsGOiIiIKEQw2BERERGFCAY7IiIiohDBYFfF1qxZg2HDhqFevXqQJAnLli0zuklVYs6cOejWrRtiYmIQHx+PESNGYP/+/UY3q0q89dZbaN++vbd4Za9evfDtt98a3awqN2fOHEiShEmTJhndlEo3c+ZMSJLk86hTp47RzaoSx48fxx133IGaNWsiMjISHTt2xLZt24xuVqVr3LhxkT9zSZIwfvx4o5tWqVRVxfTp09GkSRNERESgadOmePbZZ6HrutFNq3RZWVmYNGkSEhMTERERgd69e2PLli1GN4s7T1S1nJwcdOjQAffccw9uvPFGo5tTZX755ReMHz8e3bp1g6qqmDZtGoYMGYI9e/YgKirK6OZVqgYNGuDFF19E8+bNAQAffPABhg8fjh07dqBNmzYGt65qbNmyBQsWLED79u2NbkqVadOmDVavXu39WlEUA1tTNc6fP48+ffpg4MCB+PbbbxEfH49Dhw6hWrVqRjet0m3ZsgWapnm//u233zB48GDcfPPNBraq8s2dOxdvv/02PvjgA7Rp0wZbt27FPffcg7i4OEycONHo5lWq++67D7/99hs++ugj1KtXDx9//DEGDRqEPXv2oH79+sY1TJBhAIilS5ca3QxDnD59WgAQv/zyi9FNMUT16tXFu+++a3QzqkRWVpZo0aKFWLVqlbj88svFxIkTjW5SpZsxY4bo0KGD0c2ock899ZTo27ev0c0ICBMnThTNmjUTuq4b3ZRKde2114qxY8f6HLvhhhvEHXfcYVCLqkZubq5QFEV88803Psc7dOggpk2bZlCrXDgUS4bIyMgAANSoUcPgllQtTdPw2WefIScnB7169TK6OVVi/PjxuPbaazFo0CCjm1KlDhw4gHr16qFJkyYYPXo0/vzzT6ObVOmWL1+Orl274uabb0Z8fDw6deqE//u//zO6WVXO4XDg448/xtixYyFJktHNqVR9+/bFDz/8gD/++AMAsHPnTqxbtw7XXHONwS2rXKqqQtM02Gw2n+MRERFYt26dQa1y4VAsVTkhBCZPnoy+ffuibdu2RjenSuzevRu9evVCfn4+oqOjsXTpUlx22WVGN6vSffbZZ9i+fXtAzDupSj169MCHH36Ili1b4tSpU5g9ezZ69+6N33//HTVr1jS6eZXmzz//xFtvvYXJkyfj6aefxubNm/Hoo4/CarXizjvvNLp5VWbZsmVIT0/H3XffbXRTKt1TTz2FjIwMJCUlQVEUaJqG559/HrfeeqvRTatUMTEx6NWrF5577jm0bt0aCQkJWLx4MTZt2oQWLVoY2zhD+wvDHMJ0KPbhhx8WiYmJ4tixY0Y3pcrY7XZx4MABsWXLFjFlyhRRq1Yt8fvvvxvdrEp19OhRER8fL1JSUrzHwmUotrDs7GyRkJAgXn75ZaObUqnMZrPo1auXz7EJEyaInj17GtQiYwwZMkRcd911RjejSixevFg0aNBALF68WOzatUt8+OGHokaNGmLRokVGN63SHTx4UPTv318AEIqiiG7duonbb79dtG7d2tB2sceOqtSECROwfPlyrFmzBg0aNDC6OVXGYrF4F0907doVW7ZswWuvvYZ33nnH4JZVnm3btuH06dPo0qWL95imaVizZg3+85//wG63h8WCAgCIiopCu3btcODAAaObUqnq1q1bpCe6devW+OKLLwxqUdU7cuQIVq9ejS+//NLoplSJJ554AlOmTMHo0aMBAO3atcORI0cwZ84c3HXXXQa3rnI1a9YMv/zyC3JycpCZmYm6deti1KhRaNKkiaHtYrCjKiGEwIQJE7B06VL8/PPPhv/FN5oQAna73ehmVKorr7wSu3fv9jl2zz33ICkpCU899VTYhDoAsNvt2Lt3L/r162d0UypVnz59ipQx+uOPP5CYmGhQi6rewoULER8fj2uvvdboplSJ3NxcyLLvdH1FUcKi3IlHVFQUoqKicP78eXz//feYN2+eoe1hsKti2dnZOHjwoPfrw4cPIyUlBTVq1ECjRo0MbFnlGj9+PD799FN89dVXiImJwcmTJwEAcXFxiIiIMLh1levpp5/G1VdfjYYNGyIrKwufffYZfv75Z3z33XdGN61SxcTEFJlDGRUVhZo1a4b83MrHH38cw4YNQ6NGjXD69GnMnj0bmZmZId+D8Y9//AO9e/fGCy+8gFtuuQWbN2/GggULsGDBAqObViV0XcfChQtx1113wWQKjx+vw4YNw/PPP49GjRqhTZs22LFjB1555RWMHTvW6KZVuu+//x5CCLRq1QoHDx7EE088gVatWuGee+4xtmGGDgSHoZ9++kkAKPK46667jG5apSrungGIhQsXGt20Sjd27FiRmJgoLBaLqF27trjyyivFypUrjW6WIcJljt2oUaNE3bp1hdlsFvXq1RM33HBDyM+p9Pj6669F27ZthdVqFUlJSWLBggVGN6nKfP/99wKA2L9/v9FNqTKZmZli4sSJolGjRsJms4mmTZuKadOmCbvdbnTTKl1ycrJo2rSpsFgsok6dOmL8+PEiPT3d6GYJSQghjImURERERORPrGNHREREFCIY7IiIiIhCBIMdERERUYhgsCMiIiIKEQx2RERERCGCwY6IiIgoRDDYEREREYUIBjsiIiKiEMFgR0QB46+//oIkSUhJSTG6KV779u1Dz549YbPZ0LFjx0p/v8aNG+PVV18t9fml+cwWLVqEatWqVbht/pKWlob4+Hj89ddfpX7N6dOnUbt2bRw/frzyGkYUAhjsiMjr7rvvhiRJePHFF32OL1u2DJIkGdQqY82YMQNRUVHYv38/fvjhh2LP8efntmXLFjzwwAPlbm8wmDNnDoYNG4bGjRsDKD6cZmVlYcCAAUhKSsKxY8cQHx+PMWPGYMaMGcY0mihIMNgRkQ+bzYa5c+fi/PnzRjfFbxwOR7lfe+jQIfTt2xeJiYmoWbNmief563OrXbs2IiMjK3SNquJ0Osv8mry8PLz33nu47777SjznzJkzGDhwILKzs7Fu3To0bNgQAHDPPffgk08+Cam/m0T+xmBHRD4GDRqEOnXqYM6cOSWeM3PmzCLDkq+++qq3BwZw9WKNGDECL7zwAhISElCtWjXMmjULqqriiSeeQI0aNdCgQQO8//77Ra6/b98+9O7dGzabDW3atMHPP//s8/yePXtwzTXXIDo6GgkJCRgzZgzOnj3rfX7AgAF45JFHMHnyZNSqVQuDBw8u9j50Xcezzz6LBg0awGq1omPHjvjuu++8z0uShG3btuHZZ5+FJEmYOXNmhT43ANiwYQP69++PiIgINGzYEI8++ihycnK8zxceit23bx/69u0Lm82Gyy67DKtXr4YkSVi2bJnPdf/8808MHDgQkZGR6NChAzZu3FjkvZctW4aWLVvCZrNh8ODBOHbsmM/zb731Fpo1awaLxYJWrVrho48+8nlekiS8/fbbGD58OKKiojB79mycP38et99+O2rXro2IiAi0aNECCxcuLPH+v/32W5hMJvTq1avY548dO4Z+/fohJiYGP/30E2rVquV9rl27dqhTpw6WLl1a4vWJwh2DHRH5UBQFL7zwAt544w38/fffFbrWjz/+iBMnTmDNmjV45ZVXMHPmTFx33XWoXr06Nm3ahHHjxmHcuHFFAsYTTzyBxx57DDt27EDv3r1x/fXXIy0tDQCQmpqKyy+/HB07dsTWrVvx3Xff4dSpU7jlllt8rvHBBx/AZDJh/fr1eOedd4pt32uvvYaXX34ZL730Enbt2oWhQ4fi+uuvx4EDB7zv1aZNGzz22GNITU3F448/XuK9luZz2717N4YOHYobbrgBu3btQnJyMtatW4dHHnmk2PN1XceIESMQGRmJTZs2YcGCBZg2bVqx506bNg2PP/44UlJS0LJlS9x6661QVdX7fG5uLp5//nl88MEHWL9+PTIzMzF69Gjv80uXLsXEiRPx2GOP4bfffsODDz6Ie+65Bz/99JPP+8yYMQPDhw/H7t27MXbsWDzzzDPYs2cPvv32W+zduxdvvfWWTxgrbM2aNejatWuxz+3fvx99+vRBUlISvvvuO8TExBQ5p3v37li7dm2J1ycKe4KIyO2uu+4Sw4cPF0II0bNnTzF27FghhBBLly4VBf+5mDFjhujQoYPPa//973+LxMREn2slJiYKTdO8x1q1aiX69evn/VpVVREVFSUWL14shBDi8OHDAoB48cUXvec4nU7RoEEDMXfuXCGEEM8884wYMmSIz3sfO3ZMABD79+8XQghx+eWXi44dO17yfuvVqyeef/55n2PdunUTDz/8sPfrDh06iBkzZlz0OqX93MaMGSMeeOABn9euXbtWyLIs8vLyhBBCJCYmin//+99CCCG+/fZbYTKZRGpqqvf8VatWCQBi6dKlQogLn9m7777rPef3338XAMTevXuFEEIsXLhQABC//vqr95y9e/cKAGLTpk1CCCF69+4t7r//fp+23XzzzeKaa67xfg1ATJo0yeecYcOGiXvuueein09Bw4cP934+Hp57sFgsYsCAAUJV1RJf/49//EMMGDCg1O9HFG7YY0dExZo7dy4++OAD7Nmzp9zXaNOmDWT5wj8zCQkJaNeunfdrRVFQs2ZNnD592ud1BYfpTCYTunbtir179wIAtm3bhp9++gnR0dHeR1JSEgDXfDiPknqFPDIzM3HixAn06dPH53ifPn2871UeF/vctm3bhkWLFvm0fejQodB1HYcPHy5y/v79+9GwYUPUqVPHe6x79+7Fvm/79u29v69bty4A+Hyuns/RIykpCdWqVfPe6969e0v1WRT+XB966CF89tln6NixI5588kls2LCh2PZ55OXlwWazFfvc8OHDsW7dOnzxxRclvj4iIgK5ubkXfQ+icGYyugFEFJj69++PoUOH4umnn8bdd9/t85wsyxBC+BwrbiK92Wz2+VqSpGKP6bp+yfZ4Vpfquo5hw4Zh7ty5Rc7xBBoAiIqKuuQ1C17XQwhRoRXAF/vcdF3Hgw8+iEcffbTI6xo1alTkWFnaUvBzLfhZFVTctQoeK81nUfhzvfrqq3HkyBH873//w+rVq3HllVdi/PjxeOmll4ptZ61atUpc/PD000+jffv2uP322yGEwKhRo4qcc+7cOdSuXbvY1xMR59gR0UW8+OKL+Prrr4v0wtSuXRsnT570CXf+rD3366+/en+vqiq2bdvm7ZXr3Lkzfv/9dzRu3BjNmzf3eZQ2zAFAbGws6tWrh3Xr1vkc37BhA1q3bl2h9pf0uXnaXrjdzZs3h8ViKXKdpKQkHD16FKdOnfIe27JlS7napKoqtm7d6v16//79SE9P936urVu3LvdnUbt2bdx99934+OOP8eqrr2LBggUlntupU6eL9gJPnz4dzz33HG6//XYsXry4yPO//fYbOnXqdMk2EYUrBjsiKlG7du1w++2344033vA5PmDAAJw5cwbz5s3DoUOH8Oabb+Lbb7/12/u++eabWLp0Kfbt24fx48fj/PnzGDt2LABg/PjxOHfuHG699VZs3rwZf/75J1auXImxY8dC07Qyvc8TTzyBuXPnIjk5Gfv378eUKVOQkpKCiRMnVqj9JX1uTz31FDZu3Ijx48cjJSUFBw4cwPLlyzFhwoRirzN48GA0a9YMd911F3bt2oX169d7F0+UtVfRbDZjwoQJ2LRpE7Zv34577rkHPXv29A7tPvHEE1i0aBHefvttHDhwAK+88gq+/PLLiy4YAYB//vOf+Oqrr3Dw4EH8/vvv+Oabby4aBocOHYrff//9oiVLpkyZgjlz5mDMmDH45JNPvMdzc3Oxbds2DBkypEz3ThROGOyI6KKee+65IsOurVu3xvz58/Hmm2+iQ4cO2Lx58yUDQFm8+OKLmDt3Ljp06IC1a9fiq6++8q60rFevHtavXw9N0zB06FC0bdsWEydORFxcnM98vtJ49NFH8dhjj+Gxxx5Du3bt8N1332H58uVo0aJFhe+huM+tffv2+OWXX3DgwAH069cPnTp1wjPPPOMzhFyQoihYtmwZsrOz0a1bN9x3332YPn06AJQ4T60kkZGReOqpp3DbbbehV69eiIiIwGeffeZ9fsSIEXjttdfwr3/9C23atME777yDhQsXYsCAARe9rsViwdSpU9G+fXv0798fiqL4XLewdu3aoWvXrliyZMlFr/vEE09g3rx5uOuuu7xlV7766is0atQI/fr1K/2NE4UZSRT+l4eIiALW+vXr0bdvXxw8eBDNmjUzujnlsmLFCjz++OP47bffyhTGu3fvjkmTJuG2226rxNYRBTcuniAiCmBLly5FdHQ0WrRogYMHD2LixIno06dP0IY6ALjmmmtw4MABHD9+3LurxKWcPn0aN910E2699dZKbh1RcGOPHRFRAPvwww/x3HPP4dixY6hVqxYGDRqEl19++aLbmxFR+GKwIyIiIgoRXDxBREREFCIY7IiIiIhCBIMdERERUYhgsCMiIiIKEQx2RERERCGCwY6IiIgoRDDYEREREYUIBjsiIiKiEPH/Xga8iJ1JBRAAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(range(1,Ks),mean_acc,'g')\n", + "plt.fill_between(range(1,Ks),mean_acc - 1 * std_acc,mean_acc + 1 * std_acc, alpha=0.10)\n", + "plt.fill_between(range(1,Ks),mean_acc - 3 * std_acc,mean_acc + 3 * std_acc, alpha=0.10,color=\"turquoise\")\n", + "plt.legend(('Accuracy ', '+/- 1xstd','+/- 3xstd'))\n", + "plt.ylabel('Accuracy ')\n", + "plt.xlabel('Number of Neighbors (K)')\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The best accuracy was with 0.34 with k= 9\n" + ] + } + ], + "source": [ + "print( \"The best accuracy was with\", mean_acc.max(), \"with k=\", mean_acc.argmax()+1) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Thank you for completing this lab!\n", + "\n", + "## Author\n", + "\n", + "Saeed Aghabozorgi\n", + "\n", + "### Other Contributors\n", + "\n", + "Joseph Santarcangelo\n", + "\n", + "##

© IBM Corporation 2020. All rights reserved.

\n", + "\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python", + "language": "python", + "name": "conda-env-python-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.12" + }, + "prev_pub_hash": "5363c84665c2ea4c62cd198411b6c0935cac4acc844e6f1b323a6313f712f535" + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ML0101EN-Clas-Logistic-Reg-churn.ipynb b/ML0101EN-Clas-Logistic-Reg-churn.ipynb new file mode 100644 index 0000000..42051fd --- /dev/null +++ b/ML0101EN-Clas-Logistic-Reg-churn.ipynb @@ -0,0 +1,2258 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

\n", + " \n", + " \"Skills\n", + " \n", + "

\n", + "\n", + "\n", + "# Logistic Regression with Python\n", + "\n", + "\n", + "Estimated time needed: **25** minutes\n", + " \n", + "\n", + "## Objectives\n", + "\n", + "After completing this lab you will be able to:\n", + "\n", + "* Use scikit Logistic Regression to classify\n", + "* Understand confusion matrix\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this notebook, you will learn Logistic Regression, and then, you'll create a model for a telecommunication company, to predict when its customers will leave for a competitor, so that they can take some action to retain the customers.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Table of contents

\n", + "\n", + "\n", + "
\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## What is the difference between Linear and Logistic Regression?\n", + "\n", + "While Linear Regression is suited for estimating continuous values (e.g. estimating house price), it is not the best tool for predicting the class of an observed data point. In order to estimate the class of a data point, we need some sort of guidance on what would be the most probable class for that data point. For this, we use Logistic Regression.\n", + "\n", + "
\n", + "Recall linear regression:\n", + "
\n", + "
\n", + " As you know, Linear regression finds a function that relates a continuous dependent variable, y, to some predictors (independent variables $x_1$, $x_2$, etc.). For example, simple linear regression assumes a function of the form:\n", + "

\n", + "$$\n", + "y = \\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 + \\cdots\n", + "$$\n", + "
\n", + "and finds the values of parameters $\\theta_0, \\theta_1, \\theta_2$, etc, where the term $\\theta_0$ is the \"intercept\". It can be generally shown as:\n", + "

\n", + "$$\n", + "ℎ_\\theta(𝑥) = \\theta^TX\n", + "$$\n", + "

\n", + "\n", + "
\n", + "\n", + "Logistic Regression is a variation of Linear Regression, used when the observed dependent variable, y, is categorical. It produces a formula that predicts the probability of the class label as a function of the independent variables.\n", + "\n", + "Logistic regression fits a special s-shaped curve by taking the linear regression function and transforming the numeric estimate into a probability with the following function, which is called the sigmoid function 𝜎:\n", + "\n", + "$$\n", + "ℎ_\\theta(𝑥) = \\sigma({\\theta^TX}) = \\frac {e^{(\\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 +...)}}{1 + e^{(\\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 +\\cdots)}}\n", + "$$\n", + "Or:\n", + "$$\n", + "ProbabilityOfaClass_1 = P(Y=1|X) = \\sigma({\\theta^TX}) = \\frac{e^{\\theta^TX}}{1+e^{\\theta^TX}} \n", + "$$\n", + "\n", + "In this equation, ${\\theta^TX}$ is the regression result (the sum of the variables weighted by the coefficients), `exp` is the exponential function and $\\sigma(\\theta^TX)$ is the sigmoid or [logistic function](http://en.wikipedia.org/wiki/Logistic_function), also called logistic curve. It is a common \"S\" shape (sigmoid curve).\n", + "\n", + "So, briefly, Logistic Regression passes the input through the logistic/sigmoid but then treats the result as a probability:\n", + "\n", + "\n", + "\n", + "\n", + "The objective of the __Logistic Regression__ algorithm, is to find the best parameters θ, for $ℎ_\\theta(𝑥)$ = $\\sigma({\\theta^TX})$, in such a way that the model best predicts the class of each case.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Customer churn with Logistic Regression\n", + "A telecommunications company is concerned about the number of customers leaving their land-line business for cable competitors. They need to understand who is leaving. Imagine that you are an analyst at this company and you have to find out who is leaving and why.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.12/site-packages (1.7.2)\n", + "Requirement already satisfied: numpy>=1.22.0 in /opt/conda/lib/python3.12/site-packages (from scikit-learn) (2.3.4)\n", + "Requirement already satisfied: scipy>=1.8.0 in /opt/conda/lib/python3.12/site-packages (from scikit-learn) (1.16.2)\n", + "Requirement already satisfied: joblib>=1.2.0 in /opt/conda/lib/python3.12/site-packages (from scikit-learn) (1.5.2)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /opt/conda/lib/python3.12/site-packages (from scikit-learn) (3.6.0)\n", + "Requirement already satisfied: matplotlib in /opt/conda/lib/python3.12/site-packages (3.10.7)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (1.3.3)\n", + "Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (4.60.1)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (1.4.9)\n", + "Requirement already satisfied: numpy>=1.23 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (2.3.4)\n", + "Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (24.2)\n", + "Requirement already satisfied: pillow>=8 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (12.0.0)\n", + "Requirement already satisfied: pyparsing>=3 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (3.2.5)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /opt/conda/lib/python3.12/site-packages (from matplotlib) (2.9.0.post0)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)\n", + "Requirement already satisfied: pandas in /opt/conda/lib/python3.12/site-packages (2.3.3)\n", + "Requirement already satisfied: numpy>=1.26.0 in /opt/conda/lib/python3.12/site-packages (from pandas) (2.3.4)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.12/site-packages (from pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /opt/conda/lib/python3.12/site-packages (from pandas) (2024.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /opt/conda/lib/python3.12/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)\n", + "Requirement already satisfied: numpy in /opt/conda/lib/python3.12/site-packages (2.3.4)\n" + ] + } + ], + "source": [ + "#!pip install scikit-learn==0.23.1\n", + "!pip install scikit-learn\n", + "!pip install matplotlib\n", + "!pip install pandas \n", + "!pip install numpy \n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first import required libraries:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import pylab as pl\n", + "import numpy as np\n", + "import scipy.optimize as opt\n", + "from sklearn import preprocessing\n", + "%matplotlib inline \n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

About the dataset

\n", + "We will use a telecommunications dataset for predicting customer churn. This is a historical customer dataset where each row represents one customer. The data is relatively easy to understand, and you may uncover insights you can use immediately. Typically it is less expensive to keep customers than acquire new ones, so the focus of this analysis is to predict the customers who will stay with the company. \n", + "\n", + "\n", + "This data set provides information to help you predict what behavior will help you to retain customers. You can analyze all relevant customer data and develop focused customer retention programs.\n", + "\n", + "\n", + "\n", + "The dataset includes information about:\n", + "\n", + "- Customers who left within the last month – the column is called Churn\n", + "- Services that each customer has signed up for – phone, multiple lines, internet, online security, online backup, device protection, tech support, and streaming TV and movies\n", + "- Customer account information – how long they had been a customer, contract, payment method, paperless billing, monthly charges, and total charges\n", + "- Demographic info about customers – gender, age range, and if they have partners and dependents\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load the Telco Churn data \n", + "Telco Churn is a hypothetical data file that concerns a telecommunications company's efforts to reduce turnover in its customer base. Each case corresponds to a separate customer and it records various demographic and service usage information. Before you can work with the data, you must use the URL to get the ChurnData.csv.\n", + "\n", + "To download the data, we will use `!wget` to download it from IBM Object Storage.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2025-10-20 14:53:44-- https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%203/data/ChurnData.csv\n", + "Resolving cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud (cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud)... 169.63.118.104\n", + "Connecting to cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud (cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud)|169.63.118.104|:443... connected.\n", + "200 OKequest sent, awaiting response... \n", + "Length: 35943 (35K) [text/csv]\n", + "Saving to: ‘ChurnData.csv’\n", + "\n", + "ChurnData.csv 100%[===================>] 35.10K --.-KB/s in 0.001s \n", + "\n", + "2025-10-20 14:53:44 (45.6 MB/s) - ‘ChurnData.csv’ saved [35943/35943]\n", + "\n" + ] + } + ], + "source": [ + "#Click here and press Shift+Enter\n", + "!wget -O ChurnData.csv https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%203/data/ChurnData.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load Data From CSV File \n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tenureageaddressincomeedemployequipcallcardwirelesslongmon...pagerinternetcallwaitconferebillloglonglogtolllninccustcatchurn
011.033.07.0136.05.05.00.01.01.04.40...1.00.01.01.00.01.4823.0334.9134.01.0
133.033.012.033.02.00.00.00.00.09.45...0.00.00.00.00.02.2463.2403.4971.01.0
223.030.09.030.01.02.00.00.00.06.30...0.00.00.01.00.01.8413.2403.4013.00.0
338.035.05.076.02.010.01.01.01.06.05...1.01.01.01.01.01.8003.8074.3314.00.0
47.035.014.080.02.015.00.01.00.07.10...0.00.01.01.00.01.9603.0914.3823.00.0
568.052.017.0120.01.024.00.01.00.020.70...0.00.00.00.00.03.0303.2404.7871.00.0
642.040.07.037.02.08.01.01.01.08.25...0.01.01.01.01.02.1103.1573.6114.00.0
79.021.01.017.02.02.00.00.00.02.90...0.00.00.00.00.01.0653.2402.8331.00.0
835.050.026.0140.02.021.00.01.00.06.50...0.00.01.01.00.01.8723.3144.9423.00.0
949.051.027.063.04.019.00.01.00.012.85...0.01.01.00.01.02.5533.2484.1432.00.0
1056.052.028.049.02.012.00.01.00.024.75...0.00.00.00.00.03.2093.2403.8922.00.0
1147.040.016.0127.04.012.01.01.00.019.70...0.01.00.00.01.02.9813.2404.8442.00.0
1256.050.01.080.02.024.00.01.01.028.80...1.00.01.01.00.03.3604.0164.3824.00.0
\n", + "

13 rows × 28 columns

\n", + "
" + ], + "text/plain": [ + " tenure age address income ed employ equip callcard wireless \\\n", + "0 11.0 33.0 7.0 136.0 5.0 5.0 0.0 1.0 1.0 \n", + "1 33.0 33.0 12.0 33.0 2.0 0.0 0.0 0.0 0.0 \n", + "2 23.0 30.0 9.0 30.0 1.0 2.0 0.0 0.0 0.0 \n", + "3 38.0 35.0 5.0 76.0 2.0 10.0 1.0 1.0 1.0 \n", + "4 7.0 35.0 14.0 80.0 2.0 15.0 0.0 1.0 0.0 \n", + "5 68.0 52.0 17.0 120.0 1.0 24.0 0.0 1.0 0.0 \n", + "6 42.0 40.0 7.0 37.0 2.0 8.0 1.0 1.0 1.0 \n", + "7 9.0 21.0 1.0 17.0 2.0 2.0 0.0 0.0 0.0 \n", + "8 35.0 50.0 26.0 140.0 2.0 21.0 0.0 1.0 0.0 \n", + "9 49.0 51.0 27.0 63.0 4.0 19.0 0.0 1.0 0.0 \n", + "10 56.0 52.0 28.0 49.0 2.0 12.0 0.0 1.0 0.0 \n", + "11 47.0 40.0 16.0 127.0 4.0 12.0 1.0 1.0 0.0 \n", + "12 56.0 50.0 1.0 80.0 2.0 24.0 0.0 1.0 1.0 \n", + "\n", + " longmon ... pager internet callwait confer ebill loglong logtoll \\\n", + "0 4.40 ... 1.0 0.0 1.0 1.0 0.0 1.482 3.033 \n", + "1 9.45 ... 0.0 0.0 0.0 0.0 0.0 2.246 3.240 \n", + "2 6.30 ... 0.0 0.0 0.0 1.0 0.0 1.841 3.240 \n", + "3 6.05 ... 1.0 1.0 1.0 1.0 1.0 1.800 3.807 \n", + "4 7.10 ... 0.0 0.0 1.0 1.0 0.0 1.960 3.091 \n", + "5 20.70 ... 0.0 0.0 0.0 0.0 0.0 3.030 3.240 \n", + "6 8.25 ... 0.0 1.0 1.0 1.0 1.0 2.110 3.157 \n", + "7 2.90 ... 0.0 0.0 0.0 0.0 0.0 1.065 3.240 \n", + "8 6.50 ... 0.0 0.0 1.0 1.0 0.0 1.872 3.314 \n", + "9 12.85 ... 0.0 1.0 1.0 0.0 1.0 2.553 3.248 \n", + "10 24.75 ... 0.0 0.0 0.0 0.0 0.0 3.209 3.240 \n", + "11 19.70 ... 0.0 1.0 0.0 0.0 1.0 2.981 3.240 \n", + "12 28.80 ... 1.0 0.0 1.0 1.0 0.0 3.360 4.016 \n", + "\n", + " lninc custcat churn \n", + "0 4.913 4.0 1.0 \n", + "1 3.497 1.0 1.0 \n", + "2 3.401 3.0 0.0 \n", + "3 4.331 4.0 0.0 \n", + "4 4.382 3.0 0.0 \n", + "5 4.787 1.0 0.0 \n", + "6 3.611 4.0 0.0 \n", + "7 2.833 1.0 0.0 \n", + "8 4.942 3.0 0.0 \n", + "9 4.143 2.0 0.0 \n", + "10 3.892 2.0 0.0 \n", + "11 4.844 2.0 0.0 \n", + "12 4.382 4.0 0.0 \n", + "\n", + "[13 rows x 28 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "churn_df = pd.read_csv(\"ChurnData.csv\")\n", + "churn_df.head(13)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Data pre-processing and selection

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's select some features for the modeling. Also, we change the target data type to be an integer, as it is a requirement by the skitlearn algorithm:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tenureageaddressincomeedemployequipcallcardwirelesschurn
011.033.07.0136.05.05.00.01.01.01
133.033.012.033.02.00.00.00.00.01
223.030.09.030.01.02.00.00.00.00
338.035.05.076.02.010.01.01.01.00
47.035.014.080.02.015.00.01.00.00
568.052.017.0120.01.024.00.01.00.00
642.040.07.037.02.08.01.01.01.00
79.021.01.017.02.02.00.00.00.00
835.050.026.0140.02.021.00.01.00.00
949.051.027.063.04.019.00.01.00.00
1056.052.028.049.02.012.00.01.00.00
1147.040.016.0127.04.012.01.01.00.00
1256.050.01.080.02.024.00.01.01.00
\n", + "
" + ], + "text/plain": [ + " tenure age address income ed employ equip callcard wireless \\\n", + "0 11.0 33.0 7.0 136.0 5.0 5.0 0.0 1.0 1.0 \n", + "1 33.0 33.0 12.0 33.0 2.0 0.0 0.0 0.0 0.0 \n", + "2 23.0 30.0 9.0 30.0 1.0 2.0 0.0 0.0 0.0 \n", + "3 38.0 35.0 5.0 76.0 2.0 10.0 1.0 1.0 1.0 \n", + "4 7.0 35.0 14.0 80.0 2.0 15.0 0.0 1.0 0.0 \n", + "5 68.0 52.0 17.0 120.0 1.0 24.0 0.0 1.0 0.0 \n", + "6 42.0 40.0 7.0 37.0 2.0 8.0 1.0 1.0 1.0 \n", + "7 9.0 21.0 1.0 17.0 2.0 2.0 0.0 0.0 0.0 \n", + "8 35.0 50.0 26.0 140.0 2.0 21.0 0.0 1.0 0.0 \n", + "9 49.0 51.0 27.0 63.0 4.0 19.0 0.0 1.0 0.0 \n", + "10 56.0 52.0 28.0 49.0 2.0 12.0 0.0 1.0 0.0 \n", + "11 47.0 40.0 16.0 127.0 4.0 12.0 1.0 1.0 0.0 \n", + "12 56.0 50.0 1.0 80.0 2.0 24.0 0.0 1.0 1.0 \n", + "\n", + " churn \n", + "0 1 \n", + "1 1 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "5 0 \n", + "6 0 \n", + "7 0 \n", + "8 0 \n", + "9 0 \n", + "10 0 \n", + "11 0 \n", + "12 0 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "churn_df = churn_df[['tenure', 'age', 'address', 'income', 'ed', 'employ', 'equip', 'callcard', 'wireless','churn']]\n", + "churn_df['churn'] = churn_df['churn'].astype('int')\n", + "churn_df.head(13)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice\n", + "How many rows and columns are in this dataset in total? What are the names of columns?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(200, 10)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "churn_df.shape\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python\n", + "churn_df.shape\n", + "\n", + "```\n", + "\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's define X, and y for our dataset:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 11., 33., 7., 136., 5., 5., 0.],\n", + " [ 33., 33., 12., 33., 2., 0., 0.],\n", + " [ 23., 30., 9., 30., 1., 2., 0.],\n", + " [ 38., 35., 5., 76., 2., 10., 1.],\n", + " [ 7., 35., 14., 80., 2., 15., 0.]])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = np.asarray(churn_df[['tenure', 'age', 'address', 'income', 'ed', 'employ', 'equip']])\n", + "X[0:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 1, 0, 0, 0])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = np.asarray(churn_df['churn'])\n", + "y [0:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Also, we normalize the dataset:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-1.13518441, -0.62595491, -0.4588971 , 0.4751423 , 1.6961288 ,\n", + " -0.58477841, -0.85972695],\n", + " [-0.11604313, -0.62595491, 0.03454064, -0.32886061, -0.6433592 ,\n", + " -1.14437497, -0.85972695],\n", + " [-0.57928917, -0.85594447, -0.261522 , -0.35227817, -1.42318853,\n", + " -0.92053635, -0.85972695],\n", + " [ 0.11557989, -0.47262854, -0.65627219, 0.00679109, -0.6433592 ,\n", + " -0.02518185, 1.16316 ],\n", + " [-1.32048283, -0.47262854, 0.23191574, 0.03801451, -0.6433592 ,\n", + " 0.53441472, -0.85972695]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn import preprocessing\n", + "X = preprocessing.StandardScaler().fit(X).transform(X)\n", + "X[0:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train/Test dataset\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We split our dataset into train and test set:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train set: (160, 7) (160,)\n", + "Test set: (40, 7) (40,)\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=4)\n", + "print ('Train set:', X_train.shape, y_train.shape)\n", + "print ('Test set:', X_test.shape, y_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Modeling (Logistic Regression with Scikit-learn)

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's build our model using __LogisticRegression__ from the Scikit-learn package. This function implements logistic regression and can use different numerical optimizers to find parameters, including ‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’ solvers. You can find extensive information about the pros and cons of these optimizers if you search it in the internet.\n", + "\n", + "The version of Logistic Regression in Scikit-learn, support regularization. Regularization is a technique used to solve the overfitting problem of machine learning models.\n", + "__C__ parameter indicates __inverse of regularization strength__ which must be a positive float. Smaller values specify stronger regularization. \n", + "Now let's fit our model with train set:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
LogisticRegression(C=0.01, solver='liblinear')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LogisticRegression(C=0.01, solver='liblinear')" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import confusion_matrix\n", + "LR = LogisticRegression(C=0.01, solver='liblinear').fit(X_train,y_train)\n", + "LR" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can predict using our test set:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "yhat = LR.predict(X_test)\n", + "yhat" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__predict_proba__ returns estimates for all classes, ordered by the label of classes. So, the first column is the probability of class 0, P(Y=0|X), and second column is probability of class 1, P(Y=1|X):\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.54132919, 0.45867081],\n", + " [0.60593357, 0.39406643],\n", + " [0.56277713, 0.43722287],\n", + " [0.63432489, 0.36567511],\n", + " [0.56431839, 0.43568161],\n", + " [0.55386646, 0.44613354],\n", + " [0.52237207, 0.47762793],\n", + " [0.60514349, 0.39485651],\n", + " [0.41069572, 0.58930428],\n", + " [0.6333873 , 0.3666127 ],\n", + " [0.58068791, 0.41931209],\n", + " [0.62768628, 0.37231372],\n", + " [0.47559883, 0.52440117],\n", + " [0.4267593 , 0.5732407 ],\n", + " [0.66172417, 0.33827583],\n", + " [0.55092315, 0.44907685],\n", + " [0.51749946, 0.48250054],\n", + " [0.485743 , 0.514257 ],\n", + " [0.49011451, 0.50988549],\n", + " [0.52423349, 0.47576651],\n", + " [0.61619519, 0.38380481],\n", + " [0.52696302, 0.47303698],\n", + " [0.63957168, 0.36042832],\n", + " [0.52205164, 0.47794836],\n", + " [0.50572852, 0.49427148],\n", + " [0.70706202, 0.29293798],\n", + " [0.55266286, 0.44733714],\n", + " [0.52271594, 0.47728406],\n", + " [0.51638863, 0.48361137],\n", + " [0.71331391, 0.28668609],\n", + " [0.67862111, 0.32137889],\n", + " [0.50896403, 0.49103597],\n", + " [0.42348082, 0.57651918],\n", + " [0.71495838, 0.28504162],\n", + " [0.59711064, 0.40288936],\n", + " [0.63808839, 0.36191161],\n", + " [0.39957895, 0.60042105],\n", + " [0.52127638, 0.47872362],\n", + " [0.65975464, 0.34024536],\n", + " [0.5114172 , 0.4885828 ]])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "yhat_prob = LR.predict_proba(X_test)\n", + "yhat_prob" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Evaluation

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### jaccard index\n", + "Let's try the jaccard index for accuracy evaluation. we can define jaccard as the size of the intersection divided by the size of the union of the two label sets. If the entire set of predicted labels for a sample strictly matches with the true set of labels, then the subset accuracy is 1.0; otherwise it is 0.0.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7058823529411765" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.metrics import jaccard_score\n", + "jaccard_score(y_test, yhat,pos_label=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### confusion matrix\n", + "Another way of looking at the accuracy of the classifier is to look at __confusion matrix__.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 6 9]\n", + " [ 1 24]]\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "import itertools\n", + "def plot_confusion_matrix(cm, classes,\n", + " normalize=False,\n", + " title='Confusion matrix',\n", + " cmap=plt.cm.Blues):\n", + " \"\"\"\n", + " This function prints and plots the confusion matrix.\n", + " Normalization can be applied by setting `normalize=True`.\n", + " \"\"\"\n", + " if normalize:\n", + " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n", + " print(\"Normalized confusion matrix\")\n", + " else:\n", + " print('Confusion matrix, without normalization')\n", + "\n", + " print(cm)\n", + "\n", + " plt.imshow(cm, interpolation='nearest', cmap=cmap)\n", + " plt.title(title)\n", + " plt.colorbar()\n", + " tick_marks = np.arange(len(classes))\n", + " plt.xticks(tick_marks, classes, rotation=45)\n", + " plt.yticks(tick_marks, classes)\n", + "\n", + " fmt = '.2f' if normalize else 'd'\n", + " thresh = cm.max() / 2.\n", + " for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n", + " plt.text(j, i, format(cm[i, j], fmt),\n", + " horizontalalignment=\"center\",\n", + " color=\"white\" if cm[i, j] > thresh else \"black\")\n", + "\n", + " plt.tight_layout()\n", + " plt.ylabel('True label')\n", + " plt.xlabel('Predicted label')\n", + "print(confusion_matrix(y_test, yhat, labels=[1,0]))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Confusion matrix, without normalization\n", + "[[ 6 9]\n", + " [ 1 24]]\n" + ] + }, + { + "data": { + "image/png": "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f/5ZDodDsbGxLvujoqJUokQJ/fzzzy77K1asmGeMkiVL6rfffrvKiPPq3r27mjZtqgEDBqhcuXLq0aOHFi1adNnkJDfOmjVr5jkWFxenX3/9Nc9cib9+lpIlS0qSW5+lQoUKeea9REREKCYmJs++v4559uxZjR07VjExMQoKClLp0qVVpkwZHT9+XCdOnLjitXNVqVLF7XMl6Y033tCZM2e0Y8cOJSUluSRGAC4gIQG8JDw8XNHR0fr+++89et9f/+V6KZdaYmu6sXL/UtfIzs52eR0SEqL169dr1apVuueee/Ttt9+qe/fuuuWWW/Kcmx/5+SyXeq87Yz766KOaNGmSunXrpkWLFunf//63Vq5cqVKlSrldEZLkcUKxdu1a50Tl7777zqP3AoUFCQngRbfffrt27typzZs3X/HcSpUqKScnRzt27HDZf+jQIR0/fty5YsYbSpYsqePHj+fZ/9cqjCQ5HA61bt1aL7zwgn788UdNmjRJq1ev1po1ay46dm6cKSkpeY799NNPKl26tM9M3vzggw+UkJCg559/3jlBuFmzZnn+btxNEt1x4MABPfroo2rbtq1uv/12DRs27KJ/70BhR0ICeNHw4cMVGhqqAQMG6NChQ3mO79y5UzNmzJAk3XrrrZKUZyXMCy+8IEm67bbbvBZXtWrVdOLECX377bfOfQcOHNCSJUtczjt27Fie9+auIPnrUuRc5cuXV/369fXWW2+5/Iv9+++/17///W/n5/QFAQEBeaowL774Yp7qT24CdbEkzlMDBw5UTk6O3njjDb322msqUqSI+vfv71Y1CChMeDAa4EXVqlXTggUL1L17d8XFxbk8qXXTpk16//33nc+piI+PV0JCgl577TUdP35cLVq00H/+8x+99dZb6tSpk1q1auW1uHr06KERI0borrvu0mOPPaYzZ85o9uzZqlGjhstkzokTJ2r9+vW67bbbVKlSJR0+fFgvv/yyKlSooGbNml1y/KlTp6pDhw5q0qSJ+vfvr7Nnz+rFF19URESExo8f77XPkV+333675s+fr4iICNWuXVubN2/WqlWrVKpUKZfz6tevr4CAAD377LM6ceKEgoKC9I9//ENly5b16Hpz587VJ598oqSkJFWoUEHShQSod+/emj17th566CGvfTbA7khIAC+788479e2332rq1Kn66KOPNHv2bAUF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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Compute confusion matrix\n", + "cnf_matrix = confusion_matrix(y_test, yhat, labels=[1,0])\n", + "np.set_printoptions(precision=2)\n", + "\n", + "\n", + "# Plot non-normalized confusion matrix\n", + "plt.figure()\n", + "plot_confusion_matrix(cnf_matrix, classes=['churn=1','churn=0'],normalize= False, title='Confusion matrix')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at first row. The first row is for customers whose actual churn value in the test set is 1.\n", + "As you can calculate, out of 40 customers, the churn value of 15 of them is 1. \n", + "Out of these 15 cases, the classifier correctly predicted 6 of them as 1, and 9 of them as 0. \n", + "\n", + "This means, for 6 customers, the actual churn value was 1 in test set and classifier also correctly predicted those as 1. However, while the actual label of 9 customers was 1, the classifier predicted those as 0, which is not very good. We can consider it as the error of the model for first row.\n", + "\n", + "What about the customers with churn value 0? Lets look at the second row.\n", + "It looks like there were 25 customers whom their churn value were 0. \n", + "\n", + "\n", + "The classifier correctly predicted 24 of them as 0, and one of them wrongly as 1. So, it has done a good job in predicting the customers with churn value 0. A good thing about the confusion matrix is that it shows the model’s ability to correctly predict or separate the classes. In a specific case of the binary classifier, such as this example, we can interpret these numbers as the count of true positives, false positives, true negatives, and false negatives. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.73 0.96 0.83 25\n", + " 1 0.86 0.40 0.55 15\n", + "\n", + " accuracy 0.75 40\n", + " macro avg 0.79 0.68 0.69 40\n", + "weighted avg 0.78 0.75 0.72 40\n", + "\n" + ] + } + ], + "source": [ + "print (classification_report(y_test, yhat))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Based on the count of each section, we can calculate precision and recall of each label:\n", + "\n", + "\n", + "- __Precision__ is a measure of the accuracy provided that a class label has been predicted. It is defined by: precision = TP / (TP + FP)\n", + "\n", + "- __Recall__ is the true positive rate. It is defined as: Recall =  TP / (TP + FN)\n", + "\n", + " \n", + "So, we can calculate the precision and recall of each class.\n", + "\n", + "__F1 score:__\n", + "Now we are in the position to calculate the F1 scores for each label based on the precision and recall of that label. \n", + "\n", + "The F1 score is the harmonic average of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0. It is a good way to show that a classifer has a good value for both recall and precision.\n", + "\n", + "\n", + "Finally, we can tell the average accuracy for this classifier is the average of the F1-score for both labels, which is 0.72 in our case.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### log loss\n", + "Now, let's try __log loss__ for evaluation. In logistic regression, the output can be the probability of customer churn is yes (or equals to 1). This probability is a value between 0 and 1.\n", + "Log loss( Logarithmic loss) measures the performance of a classifier where the predicted output is a probability value between 0 and 1. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6017092478101185" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.metrics import log_loss\n", + "log_loss(y_test, yhat_prob)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Practice

\n", + "Try to build Logistic Regression model again for the same dataset, but this time, use different __solver__ and __regularization__ values? What is new __logLoss__ value?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LogLoss: : 0.61\n" + ] + } + ], + "source": [ + "LR2 = LogisticRegression(C=0.01, solver='sag').fit(X_train,y_train)\n", + "yhat_prob2 = LR2.predict_proba(X_test)\n", + "print (\"LogLoss: : %.2f\" % log_loss(y_test, yhat_prob2))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python\n", + "LR2 = LogisticRegression(C=0.01, solver='sag').fit(X_train,y_train)\n", + "yhat_prob2 = LR2.predict_proba(X_test)\n", + "print (\"LogLoss: : %.2f\" % log_loss(y_test, yhat_prob2))\n", + "\n", + "```\n", + "\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Thank you for completing this lab!\n", + "\n", + "\n", + "## Author\n", + "\n", + "Saeed Aghabozorgi\n", + "\n", + "\n", + "### Other Contributors\n", + "\n", + "Joseph Santarcangelo\n", + "\n", + "##

© IBM Corporation 2020. All rights reserved.

\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + }, + "prev_pub_hash": "93c3096a9aa003ffd3856deed45478e9e7e2e1d7091dd85d842ce88e28b0a595" + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ML0101EN-Reg-NoneLinearRegression (1).ipynb b/ML0101EN-Reg-NoneLinearRegression (1).ipynb new file mode 100644 index 0000000..f7f47e3 --- /dev/null +++ b/ML0101EN-Reg-NoneLinearRegression (1).ipynb @@ -0,0 +1,887 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

\n", + " \n", + " \"Skills\n", + " \n", + "

\n", + "\n", + "\n", + "# Non Linear Regression Analysis\n", + "\n", + "\n", + "Estimated time needed: **20** minutes\n", + " \n", + "\n", + "## Objectives\n", + "\n", + "After completing this lab you will be able to:\n", + "\n", + "* Differentiate between linear and non-linear regression\n", + "* Use non-linear regression model in Python\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If the data shows a curvy trend, then linear regression will not produce very accurate results when compared to a non-linear regression since linear regression presumes that the data is linear. \n", + "Let's learn about non linear regressions and apply an example in python. In this notebook, we fit a non-linear model to the datapoints corrensponding to China's GDP from 1960 to 2014. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Importing required libraries

\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although linear regression can do a great job at modeling some datasets, it cannot be used for all datasets. First recall how linear regression, models a dataset. It models the linear relationship between a dependent variable y and the independent variables x. It has a simple equation, of degree 1, for example y = $2x$ + 3.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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5tr998OkSVClSmDXVkR2uxnS6ao839F1ODU1pOM28TOvBzUAK1eu5K233uKjjz4iMzOTxMREevfuTbt27byyaE+cOnWKevXqMXToUAYPHuzW76j6SUQC7uefoW9fWLnSPL7sMlPVFID/H/WFSKhiE//zSfXT3/72N958800OHDjA1KlT2blzJx06dKB+/fpMnDiRffv2FXnh7ipZsiSXX34527Zt89triogUWloaDBoELVqYgKZkSdODZt26sAloILz7DUnwK9SYhNjYWB588EGWL1/Otm3buPPOO5k0aRK1a9f28vJcS09PZ/PmzVTTOFgRCWaWZbr/Nmxosp3tdtMdeMsWGDLEzG7yErvd7JTMnWu+B2KkhCZ5SyAVafbTqVOnWLZsGcuWLePYsWPUq1fPW+vK4/HHH2fZsmWkpqby3//+l27dupGWlqYBmyISvDZvhuuvh7vvNlsT9evDV1/Bv/9tEku8KDnZ5LJ07GhermNH8zg52asvU6BI6DckwatQQc3y5ct58MEHqVq1KgMGDODSSy9lxYoVbN682dvry/LHH39w11130aBBAxITEylWrBirV6+mVq1aPntNEZFCOXUKhg83zfKWLIHixWHcONi4ETp18vrLOaqNcifnOqab+zOwKepcKZGicDtR+I8//uCdd95h9uzZ7Nixg1atWtGrVy969OhBqVKlfL1Or1CisIj4lGXBJ5+YBi27d5tr//gHTJkC/+vE7m3BWm3k0UgIkQJ4vfrpoosuokKFCtx333306tWLRo0aeW2x/qKgRsS3Iqa/jDO//w79+8OiReZxrVommOnSxacvG8zVRhH9z4N4lbuf3253FP73v/9Nly5duOgij5sQi0gEiNgOsmfPwvPPm6Z5Z8+axN/HH4enn4bYWJ+/fDBXG7kcCSHiI25HKIlh/f9KIlIUrjrIOnI6wraD7Ndfm54z27ebx3//O7z6qql08hNVG4lc4FHzvVCn4ycR7x8JBGtOh0/98YfpOTN/vnlcrRq8/DLceafrsh8fcbz/e/fmDSohTN9/iTg+ab4nIqHNF2W/K1a4DmjAfNDu2QNJSYHrneI158+bhnkNG5qAJjoaBg40PWe6d/d7QAOqNhLJTkGNSITwVdmvu7ka48d7v3eKX5vNLV8OV14JTzxhSrb/9jf46SezQxPgnV/HdPMaNXJej48P46M/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2Lp1a461TJw4kSpVqlC6dGl69erF2bNn86z37bffplGjRhQvXpyGDRsyffr0rJ/t3LkTm81GcnIyHTt2JDY2lqZNm7Jq1aqsdTz44IMcP34cm82GzWbL854BVKpUiVtuuYW33norz8/eeustunTpQqVKlRg2bBiXXnopsbGx1K1bl5EjR2YFLnDh+Oytt96ibt26xMTEYFlWnuOn999/n5YtW1K6dGmqVq3K3XffzcGDB/O89sqVK2natCnFixenVatWbNy4Mc892X322We0aNGC4sWLU7duXcaMGUNGRka+vyMS8iwRCXo9e/a0unbtmvW4ffv2VpkyZaykpCTrt99+s9555x3LZrNZX3/9tWVZlmW3260mTZpYHTp0sNatW2ctW7bMuvLKKy3AWrhwoWVZlnXq1Cmrfv361kMPPWRt2LDB+vXXX627777batCggZWenp71uqVKlbK6d+9u/fLLL9bnn39uVapUyRoxYkTWWkaMGGE1bNjQ+vLLL60dO3ZYb7/9thUTE2MtXbrUsizLSklJsQCrVatW1tKlS61NmzZZbdu2tdq0aZP1HPPmzbOKFStmzZw509qyZYv11FNPWaVLl7aaNm2adc8bb7xhVatWzVqwYIH1+++/WwsWLLDKly9vzZ4927Isy0pNTbUAq2HDhtbnn39ubd261erWrZtVq1Yt6/z581Z6ero1efJkq0yZMtb+/fut/fv3WydOnHD6fi9atMiy2WzW77//nnUtNTXVstls1uLFiy3Lsqxx48ZZK1eutFJTU61PP/3UqlKlivXcc89l3T969GirZMmSVufOna2ffvrJ+vnnn63MzEyrffv21oABA7Lue/PNN63FixdbO3bssFatWmVdc8011k033ZT1c8f716hRI+vrr7+2NmzYYP3jH/+wateubZ07d86yLMt6++23rbi4uKzf+fLLL60yZcpYs2fPtnbs2GF9/fXXVu3ata2kpCTn/4CJhAkFNSIhwFlQc+211+a456qrrrKGDRtmWZZlffXVV1Z0dLS1Z8+erJ9/8cUXOYKaN99802rQoIGVmZmZdU96erpVokQJ66uvvsp63fLly1unTp3KumfGjBlWqVKlLLvdbp08edIqXry49f333+dYS69evay77rrLsqwLH8rffvtt1s8XLVpkAdaZM2csy7Ks1q1bW4888kiO52jVqlWO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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "y = 2*(x) + 3\n", + "y_noise = 2 * np.random.normal(size=x.size)\n", + "ydata = y + y_noise\n", + "#plt.figure(figsize=(8,6))\n", + "plt.plot(x, ydata, 'bo')\n", + "plt.plot(x,y, 'r') \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Non-linear regression is a method to model the non-linear relationship between the independent variables $x$ and the dependent variable $y$. Essentially any relationship that is not linear can be termed as non-linear, and is usually represented by the polynomial of $k$ degrees (maximum power of $x$). For example:\n", + "\n", + "$$ \\ y = a x^3 + b x^2 + c x + d \\ $$\n", + "\n", + "Non-linear functions can have elements like exponentials, logarithms, fractions, and so on. For example: $$ y = \\log(x)$$\n", + " \n", + "We can have a function that's even more complicated such as :\n", + "$$ y = \\log(a x^3 + b x^2 + c x + d)$$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's take a look at a cubic function's graph.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAGwCAYAAACjPMHLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlxklEQVR4nO3dd3hUZdrH8e8kQGhJ6KEkdFQQBAFFXBBQBFkLGLGAq4DI6q4oiBUsFAWUVcRVsUsRKQoBCxYUQ1HkFREEARGQEoFIT6gJmTzvH2dnmEmdSWYyJb/Pdc2VzDlnztxT4Nx5yv3YjDEGEREREQEgItABiIiIiAQTJUciIiIiLpQciYiIiLhQciQiIiLiQsmRiIiIiAslRyIiIiIulByJiIiIuCgT6ABCUXZ2Nvv27SM6OhqbzRbocERERMQDxhiOHz9O3bp1iYjIv31IyVER7Nu3j4SEhECHISIiIkWQkpJCfHx8vvuVHBVBdHQ0YL25MTExAY5GREREPJGenk5CQoLzOp4fJUdF4OhKi4mJUXIkIiISYgobEqMB2SIiIiIulByJiIiIuFByJCIiIuJCyZGIiIiICyVHIiIiIi6UHImIiIi4UHIkIiIi4kLJkYiIiIgLJUciIiIiLlQhW0RERIKC3Q4rV8L+/VCnDnTuDJGRJR+HkiMREREJuKQkGDYM/vzz3Lb4eHj5ZUhMLNlY1K0mIiIiAZWUBH37uidGAHv3WtuTkko2HiVHIiIiEjB2u9ViZEzufY5tw4dbx5UUJUciIiISMCtX5m4xcmUMpKRYx5UUJUciIiISMPv3+/Y4X1ByJCIiIgFTp45vj/MFJUciIiISMJ07W7PSbLa899tskJBgHVdSlByJiIhIwERGWtP1IXeC5Lg/ZUrJ1jtSciQiIiIBlZgI8+dDvXru2+Pjre0lXedIRSBFREQk4BIToXdvVcgWERERcYqMhK5dAx2FutVERERE3Cg5EhEREXERUsnRihUruP7666lbty42m41Fixa57R84cCA2m83tdtlll7kdk5GRwf3330+NGjWoVKkSN9xwA38WVJpTRERESpWQSo5OnjxJ69atefXVV/M95pprrmH//v3O2+eff+62f/jw4SxcuJC5c+fy3XffceLECa677jrsJbloi4iISClnt8OyZTBnjvUzmC7DITUgu1evXvTq1avAY6Kioqhdu3ae+9LS0nj33Xd5//336d69OwCzZs0iISGBb775hp49e/o8ZhEREXGXlGQtNuvacRMfb9U7SuxxAipXDlxwhFjLkSeWLVtGrVq1OO+88xgyZAgHDhxw7lu7di1nz56lR48ezm1169alZcuWrFq1Kt9zZmRkkJ6e7nYTERER7yUlQd++uReb3bsXbr4pm/TmHeDaa2H37sAESJglR7169eKDDz7g22+/5cUXX2TNmjVceeWVZGRkAJCamkq5cuWoWrWq2+Pi4uJITU3N97wTJ04kNjbWeUtISPDr6xAREQlHdrvVYmRM7n3GQB8WEfPnZsz330OVKiUen0NIdasV5tZbb3X+3rJlS9q3b0+DBg1YvHgxiQWU1zTGYMtvURdg5MiRjBgxwnk/PT1dCZKIiIiXVq7M3WJ0jmEkEwDYc/1QGsTGllhcOYVVy1FOderUoUGDBmzbtg2A2rVrk5mZydGjR92OO3DgAHFxcfmeJyoqipiYGLebiIiIeGf//vz39WAJ7VnLSSryU6fhJRZTXsI6OTp8+DApKSnUqVMHgHbt2lG2bFm+/vpr5zH79+/n119/5fLLLw9UmCIiIqXC/y7HeXqC8QC8yT1UP79GCUWUt5DqVjtx4gTbt2933t+5cyfr16+nWrVqVKtWjTFjxnDTTTdRp04ddu3axahRo6hRowY33ngjALGxsQwePJiHHnqI6tWrU61aNR5++GFatWrlnL0mIiIi/tG5szUrbe9e93FHnVjJFawkg3LMqfMQwzoHLkYIseTop59+olu3bs77jnFAAwYM4PXXX2fjxo3MnDmTY8eOUadOHbp168a8efOIjo52Puall16iTJky3HLLLZw+fZqrrrqK6dOnExmIle1ERERKCbvdGnPUty9MmQI227kEadT/xhrNYCAjX60XkMVmXdmMyWvMuBQkPT2d2NhY0tLSNP5IRESkEHnVNYqMtBKmtqxlLe2xE8HXr23jmn839lscnl6/Q6rlSEREREKLo65RzqYYR0Xs95pOhO1g69/Pr4mRN8J6QLaIiIgETkF1jQCas4VW25MAiBg1sgQjK5iSIxEREfGLgusawUgmEIHhYOcb4cILSy6wQig5EhEREb8oqK5RM36nP7MBWNvziRKKyDNKjkRERMQvCqpr9CTPEkk2n3A95f/WruSC8oCSIxEREfELR12jnCt0NWUb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GJNrW06FHRMVFUVUVJRP4hMRESlprgvIOsTHw8svuwymPnsW7r4bsrOhf39w6WUpbcKm5ah27doAuVqADhw44GxNql27NpmZmRw9ejTfY0RERMJJzgVkHfbutbYnJf1vw4svwoYNUL26VbSoFAub5KhRo0bUrl2br7/+2rktMzOT5cuXc/nllwPQrl07ypYt63bM/v37+fXXX53HiIiIhIucC8i6cmwbPhzsv22DMWOsDZMnQ82aJRViUAqpbrUTJ06wfft25/2dO3eyfv16qlWrRv369Rk+fDgTJkygWbNmNGvWjAkTJlCxYkX69+8PQGxsLIMHD+ahhx6ievXqVKtWjYcffphWrVrRvXv3QL0sERERv8i5gGxOxkBKiiG93z+pmpEBV18Nd9xRcgEGqZBKjn766Se6devmvD9ixAgABgwYwPTp03n00Uc5ffo0//73vzl69CgdOnRgyZIlREefq+r50ksvUaZMGW655RZOnz7NVVddxfTp04kMx0INIiJSqrkuIJufu3iPquuXQYUK8MYb59YDKcVCts5RIHlaJ0FERCSQli0DlzaFXOJIZQvNqcoxeOEFeOihkgotIEpdnSMRERFx51hANu/GIMNU/k1VjmHatbMGJwmg5EhERCRsRUZa0/Uhd4LUj7kkspDsyDLY3nkHyoTUSBu/UnIkIiISxhITYf58qFfv3LY4UnktYigAEU89CW3aBCa4IKXkSEREJMwlJloLxiYnw+wPDBs7/Yuq2UespGjUqECHF3TUhiYiIlIKREZC167A7Dnw3SIoUwb7u9NZ+X1Z9u+HOnWsMUqavK3kSEREpPRITYX77wdg801P0bN364KXFCml1K0mIiJSGhgD994LR45wrNHFtJk3svAlRTzk0aK2IUTJkYiISGkwfTp8/DGmbFluPjmds5TNdYjbkiIeJjhJSdCwoVVPqX9/62fDht4nWMFEyZGIiEi427kTHnjA+nXAWL45cFG+h1pLilhLjxTG40VtQ4ySIxERkTDj1s211I75xx1w4gR06sSPXR/16ByFLT3i8aK2IdjFpuRIREQkjOTs5vqq+yRsq77nbIVomDmT2vU8m45Wp07B+z1b1NazFqhgo+RIREQkTOTs5rqYnxnH0wAMOf0KSesaFbKkiLU9IcGa1l8QTxa19ea4YKLkSEREJAzk7OYqz2lm8Q/KksV8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SoRcEyRfdn1FRkLXrsU7h4iISGmhbrUAU9eXiIhIcFHLURBITITevdX1JSIiEgyUHAUJdX2JiIgEB3WriYiIiLhQciQiIiLiQsmRiIiIiAslRyIiIiIulByJiIiIuFByJCIiIuJCyZGIiIiICyVHIiIiIi6UHImIiIi4UHIkIiIi4kLLh4QQu13rr4mIiPibkqMQkZQEw4bBn3+e2xYfDy+/bC1cKyIiIr6hbrUQkJQEffu6J0YAe/da25OSAhOXiIhIOFJyFOTsdqvFyJjc+xzbhg+3jhMREZHiU3IU5FauzN1i5MoYSEmxjhMREZHiU3IU5Pbv9+1xIiIiUjAlR0GuTh3fHiciIiIFU3IU5Dp3tmal2Wx577fZICHBOk5ERESKT8lRkIuMtKbrQ+4EyXF/yhTVOxIREfEVJUchIDER5s+HevXct8fHW9tV50hERMR3VAQyRCQmQu/eqpAtIiLib0qOQkhkJHTtGugoREREwpu61URERERcKDkSERERcaHkSERERMSFkiMRERERF0qORERERFwoORIRERFxoeRIRERExIWSIxEREREXSo5EREREXKhCdhEYYwBIT08PcCQiIiLiKcd123Edz4+SoyI4fvw4AAkJCQGORERERLx1/PhxYmNj891vM4WlT5JLdnY2+/btIzo6GpvNFuhwAi49PZ2EhARSUlKIiYkJdDhhTe91ydF7XXL0Xpec0v5eG2M4fvw4devWJSIi/5FFajkqgoiICOLj4wMdRtCJiYkplf/YAkHvdcnRe11y9F6XnNL8XhfUYuSgAdkiIiIiLpQciYiIiLhQciTFFhUVxejRo4mKigp0KGFP73XJ0XtdcvRelxy9157RgGwRERERF2o5EhEREXGh5EhERETEhZIjERERERdKjkRERERcKDkSv8jIyKBNmzbYbDbWr18f6HDCzq5duxg8eDCNGjWiQoUKNGnShNGjR5OZmRno0MLC1KlTadSoEeXLl6ddu3asXLky0CGFnYkTJ3LJJZcQHR1NrVq16NOnD1u3bg10WKXCxIkTsdlsDB8+PNChBC0lR+IXjz76KHXr1g10GGHrt99+Izs7mzfffJNNmzbx0ksv8cYbbzBq1KhAhxby5s2bx/Dhw3niiSdYt24dnTt3plevXuzZsyfQoYWV5cuXc99997F69Wq+/vprsrKy6NGjBydPngx0aGFtzZo1vPXWW1x00UWBDiWoaSq/+NwXX3zBiBEjWLBgARdeeCHr1q2jTZs2gQ4r7P3nP//h9ddf548//gh0KCGtQ4cOtG3bltdff925rXnz5vTp04eJEycGMLLwdvDgQWrVqsXy5cu54oorAh1OWDpx4gRt27Zl6tSpPPvss7Rp04YpU6YEOqygpJYj8am//vqLIUOG8P7771OxYsVAh1OqpKWlUa1atUCHEdIyMzNZu3YtPXr0cNveo0cPVq1aFaCoSoe0tDQAfYf96L777uPaa6+le/fugQ4l6GnhWfEZYwwDBw7k3nvvpX379uzatSvQIZUaO3bs4JVXXuHFF18MdCgh7dChQ9jtduLi4ty2x8XFkZqaGqCowp8xhhEjRtCpUydatmwZ6HDC0ty5c/n5559Zs2ZNoEMJCWo5kkKNGTMGm81W4O2nn37ilVdeIT09nZEjRwY65JDl6Xvtat++fVxzzTXcfPPN3H333QGKPLzYbDa3+8aYXNvEd4YOHcqGDRuYM2dOoEMJSykpKQwbNoxZs2ZRvnz5QIcTEjTmSAp16NAhDh06VOAxDRs25LbbbuPTTz91u4jY7XYiIyO5/fbbmTFjhr9DDXmevteO/+D27dtHt27d6NChA9OnTyciQn/vFEdmZiYVK1bko48+4sYbb3RuHzZsGOvXr2f58uUBjC483X///SxatIgVK1bQqFGjQIcTlhYtWsSNN95IZGSkc5vdbsdmsxEREUFGRobbPlFyJD60Z88e0tPTnff37dtHz549mT9/Ph06dCA+Pj6A0YWfvXv30q1bN9q1a8esWbP0n5uPdOjQgXbt2jF16lTnthYtWtC7d28NyPYhYwz3338/CxcuZNmyZTRr1izQIYWt48ePs3v3brdtgwYN4oILLuCxxx5TV2YeNOZIfKZ+/fpu9ytXrgxAkyZNlBj52L59++jatSv169fnhRde4ODBg859tWvXDmBkoW/EiBHccccdtG/fno4dO/LWW2+xZ88e7r333kCHFlbuu+8+Zs+ezccff0x0dLRzTFdsbCwVKlQIcHThJTo6OlcCVKlSJapXr67EKB9KjkRC0JIlS9i+fTvbt2/PlXiqMbh4br31Vg4fPsy4cePYv38/LVu25PPPP6dBgwaBDi2sOEoldO3a1W37tGnTGDhwYMkHJOJC3WoiIiIiLjR6U0RERMSFkiMRERERF0qORERERFwoORIRERFxoeRIRERExIWSIxEREREXSo5EREREXCg5EhEREXGh5EhEvGaz2Vi0aFGgw/DImDFjaNOmTaDD8LmuXbsyfPhwj49ftmwZNpuNY8eO5XvM9OnTqVKlSrFjEwl1So5ESpGBAwfSp0+fQIcR8jxJIl588UViY2M5depUrn1nzpyhSpUqTJ48ucgxJCUl8cwzzxT58SKSPyVHIiJ+cOedd3L69GkWLFiQa9+CBQs4deoUd9xxh9fnPXv2LADVqlUjOjq62HGKSG5KjkRKsa5du/LAAw/w6KOPUq1aNWrXrs2YMWPcjtm2bRtXXHEF5cuXp0WLFnz99de5zrN3715uvfVWqlatSvXq1enduze7du1y7ne0WI0dO5ZatWoRExPDPffcQ2ZmpvMYYwyTJk2icePGVKhQgdatWzN//nznfke30NKlS2nfvj0VK1bk8ssvZ+vWrW6xPPfcc8TFxREdHc3gwYM5c+ZMrninTZtG8+bNKV++PBdccAFTp0517tu1axc2m42kpCS6detGxYoVad26NT/88IMzjkGDBpGWlobNZsNms+V6zwBq1qzJ9ddfz3vvvZdr33vvvccNN9xAzZo1eeyxxzjvvPOoWLEijRs35qmnnnImQHCuW/C9996jcePGREVFYYzJ1a02a9Ys2rdvT3R0NLVr16Z///4cOHAg13N///33tG7dmvLly9OhQwc2btyY6xhXn376Ke3ataN8+fI0btyYsWPHkpWVVeBjREKeEZFSY8CAAaZ3797O+126dDExMTFmzJgx5vfffzczZswwNpvNLFmyxBhjjN1uNy1btjRdu3Y169atM8uXLzcXX3yxAczChQuNMcacPHnSNGvWzNx1111mw4YNZvPmzaZ///7m/PPPNxkZGc7nrVy5srn11lvNr7/+aj777DNTs2ZNM2rUKGcso0aNMhdccIH58ssvzY4dO8y0adNMVFSUWbZsmTHGmOTkZAOYDh06mGXLlplNmzaZzp07m8svv9x5jnnz5ply5cqZt99+2/z222/miSeeMNHR0aZ169bOY9566y1Tp04ds2DBAvPHH3+YBQsWmGrVqpnp06cbY4zZuXOnAcwFF1xgPvvsM7N161bTt29f06BBA3P27FmTkZFhpkyZYmJiYsz+/fvN/v37zfHjx/N8vxcvXmxsNpv5448/nNt27txpbDab+fzzz40xxjzzzDPm+++/Nzt37jSffPKJiYuLM88//7zz+NGjR5tKlSqZnj17mp9//tn88ssvJjs723Tp0sUMGzbMedy7775rPv/8c7Njxw7zww8/mMsuu8z06tXLud/x/jVv3twsWbLEbNiwwVx33XWmYcOGJjMz0xhjzLRp00xsbKzzMV9++aWJiYkx06dPNzt27DBLliwxDRs2NGPGjMn7CyYSJpQciZQieSVHnTp1cjvmkksuMY899pgxxpivvvrKREZGmpSUFOf+L774wi05evfdd835559vsrOzncdkZGSYChUqmK+++sr5vNWqVTMnT550HvP666+bypUrG7vdbk6cOGHKly9vVq1a5RbL4MGDTb9+/Ywx5y7u33zzjXP/4sWLDWBOnz5tjDGmY8eO5t5773U7R4cOHdySo4SEBDN79my3Y5555hnTsWNHY8y55Oidd95x7t+0aZMBzJYtW4wxuZOI/GRlZZl69eqZp59+2rnt6aefNvXq1TNZWVl5PmbSpEmmXbt2zvujR482ZcuWNQcOHHA7LmdylNOPP/5oAGfi5nj/5s6d6zzm8OHDpkKFCmbevHl5vq7OnTubCRMmuJ33/fffN3Xq1Cn4hYuEuDIBarASkSBx0UUXud2vU6eOsztmy5Yt1K9fn/j4eOf+jh07uh2/du1atm/fnmv8y5kzZ9ixY4fzfuvWralYsaLbeU6cOEFKSgoHDhzgzJkzXH311W7nyMzM5OKLL8433jp16gBw4MAB6tevz5YtW7j33nvdju/YsSPJyckAHDx4kJSUFAYPHsyQIUOcx2RlZREbG+vR81xwwQV4KjIykgEDBjB9+nRGjx6NzWZjxowZDBw4kMjISADmz5/PlClT2L59OydOnCArK4uYmBi38zRo0ICaNWsW+Fzr1q1jzJgxrF+/niNHjpCdnQ3Anj17aNGihdv74VCtWjXOP/98tmzZkuc5165dy5o1axg/frxzm91u58yZM5w6dcrt8xQJJ0qOREq5smXLut232WzOC6sxJtfxNpvN7X52djbt2rXjgw8+yHVsYRf0nM+3ePFi6tWr57Y/Kioq33gdsTgeXxjHcW+//TYdOnRw2+dIVnzxPK7uuusuJk6cyLfffgtYycqgQYMAWL16Nbfddhtjx46lZ8+exMbGMnfuXF588UW3c1SqVKnA5zh58iQ9evSgR48ezJo1i5o1a7Jnzx569uzpNq4rPzk/U4fs7GzGjh1LYmJirn3ly5cv9LwioUrJkYjkq0WLFuzZs4d9+/ZRt25dAOfAZIe2bdsyb94850Dr/Pzyyy+cPn2aChUqAFZiULlyZeLj46latSpRUVHs2bOHLl26FDne5s2bs3r1au68807nttWrVzt/j4uLo169evzxxx/cfvvtRX6ecuXKYbfbPTq2SZMmdOnShWnTpjkHUjdp0gSwBkc3aNCAJ554wnn87t27vY7nt99+49ChQzz33HMkJCQA8NNPP+V57OrVq6lfvz4AR48e5ffff8+3Naxt27Zs3bqVpk2beh2TSChTciQi+erevTvnn38+d955Jy+++CLp6eluF3KA22+/nf/85z/07t2bcePGER8fz549e0hKSuKRRx5xdsllZmYyePBgnnzySXbv3s3o0aMZOnQoERERREdH8/DDD/Pggw+SnZ1Np06dSE9PZ9WqVVSuXJkBAwZ4FO+wYcMYMGAA7du3p1OnTnzwwQds2rSJxo0bO48ZM2YMDzzwADExMfTq1YuMjAx++uknjh49yogRIzx6noYNG3LixAmWLl3q7C4sqIvJtRvvnXfecW5v2rQpe/bsYe7cuVxyySUsXryYhQsXehSDq/r161OuXDleeeUV7r33Xn799dd8ayCNGzeO6tWrExcXxxNPPEGNGjXyrX319NNPc91115GQkMDNN99MREQEGzZsYOPGjTz77LNexykSKjSVX0TyFRERwcKFC8nIyODSSy/l7rvvdht/AlCxYkVWrFhB/fr1SUxMpHnz5tx1112cPn3arSXpqquuolmzZlxxxRXccsstXH/99W5T4J955hmefvppJk6cSPPmzenZsyeffvopjRo18jjeW2+9laeffprHHnuMdu3asXv3bv71r3+5HXP33XfzzjvvMH36dFq1akWXLl2YPn26V89z+eWXc++993LrrbdSs2ZNJk2aVODxN910E1FRUURFRbl1UfXu3ZsHH3yQoUOH0qZNG1atWsVTTz3lcRwONWvWZPr06Xz00Ue0aNGC5557jhdeeCHPY5977jmGDRtGu3bt2L9/P5988gnlypXL89iePXvy2Wef8fXXX3PJJZdw2WWXMXnyZBo0aOB1jCKhxGbyGlQgIuJDAwcO5NixYyGz5IiIlG5qORIRERFxoeRIRERExIW61URERERcqOVIRERExIWSIxEREREXSo5EREREXCg5EhEREXGh5EhERETEhZIjERERERdKjkRERERcKDkSERERcfH/kkaTXZbod5IAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "\n", + "y = 1*(x**3) + 1*(x**2) + 1*x + 3\n", + "y_noise = 20 * np.random.normal(size=x.size)\n", + "ydata = y + y_noise\n", + "plt.plot(x, ydata, 'bo')\n", + "plt.plot(x,y, 'r') \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, this function has $x^3$ and $x^2$ as independent variables. Also, the graphic of this function is not a straight line over the 2D plane. So this is a non-linear function.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some other types of non-linear functions are:\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "### Quadratic\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$ Y = X^2 $$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGwCAYAAABcnuQpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtrklEQVR4nO3de5yM5f/H8dfsYh13nY+7LJJIqSQpp/qVQyfadMC3CJUipHMqVKKDUvrSAZEixVJKSuX0rXR2TEJOsXLKruOys9fvj6tZe5jdndmd2Tns+/l4zGNm7rnnno8xO/dnrsPnchhjDCIiIiIhKiLQAYiIiIgUhpIZERERCWlKZkRERCSkKZkRERGRkKZkRkREREKakhkREREJaUpmREREJKSVCHQA/paens7u3bupUKECDocj0OGIiIiIB4wxHD58mNq1axMRkXfbS9gnM7t37yYuLi7QYYiIiEgB7Ny5k9jY2Dz3CftkpkKFCoB9M6KjowMcjYiIiHgiJSWFuLi4jPN4XsI+mXF1LUVHRyuZERERCTGeDBHRAGAREREJaUpmREREJKQpmREREZGQpmRGREREQpqSGREREQlpSmZEREQkpCmZERERkZCmZEZERERCmpIZERERCWlhXwHYX5xOWLECkpKgVi1o2xYiIwMdlYiISPGjZKYAEhNhyBD466/T22Jj4ZVXICEhcHGJiIgUR+pm8lJiInTvnjWRAdi1y25PTAxMXCIiIsWVkhkvOJ22RcaYnI+5tg0davcTERGRoqFkxgsrVuRskcnMGNi50+4nIiIiRUPJjBeSkny7n4iIiBSekhkv1Krl2/1ERESk8JTMeKFtWztryeFw/7jDAXFxdj8REREpGgFNZsaMGUPLli2pUKEC1atXp1u3bmzcuDHLPn369MHhcGS5XHzxxQGJNzLSTr+GnAmN6/748afrzTidsHQpzJplrzUwWERExPcCmswsW7aMgQMHsnLlShYvXkxaWhodO3bk6NGjWfbr3LkzSUlJGZeFCxcGKGJbR2bOHKhTJ+v22Fi73VVnJjER4uPhssugZ097HR+vqdsiIiK+5jDG3UTjwNi3bx/Vq1dn2bJltGvXDrAtM4cOHWL+/PkFOmZKSgoxMTEkJycTHR3ts1idp9JZ9+rXbI9sQPR5DbJUAHbVosn+zrpabzInPSIiIpKTN+fvoBozk5ycDEDlypWzbF+6dCnVq1fnzDPP5I477mDv3r25HiM1NZWUlJQsF3+IvPcemj9wJddte5UOHbJ2LakWjYiISNEJmmTGGMOwYcNo06YNzZo1y9jepUsX3nvvPb7++mvGjRvHjz/+yOWXX05qaqrb44wZM4aYmJiMS1xcnH8C7trVXs+YASdOZGxWLRoREZGiFTTdTAMHDuTTTz/lf//7H7Gxsbnul5SURL169Xj//fdJcNNXk5qamiXRSUlJIS4uzufdTDid0KAB7NgB771nB8ZgB/v+ezNPM2dCjx6+C0dERCSchFw307333svHH3/MkiVL8kxkAGrVqkW9evXYtGmT28ejoqKIjo7OcvGLyEjo29fenjw5U3yePV21aERERHwjoMmMMYZBgwaRmJjI119/Tf369fN9zoEDB9i5cye1giEbuP12O6p3yRLYvBlQLRoREZGiFtBkZuDAgbz77rvMnDmTChUqsGfPHvbs2cPx48cBOHLkCA888ADfffcd27ZtY+nSpVx77bVUrVqV66+/PpChW3XrQufO9va/rTPe1qIRERGRwgloMjNp0iSSk5Pp0KEDtWrVyrjMnj0bgMjISNauXUvXrl0588wz6d27N2eeeSbfffcdFSpUCGTop91xh72eNg1OnQI8r0UjIiIihRc0A4D9xV91ZjKcOmX7jf7+2xaYydRi5HTaWUtJSXaMTOZaNCIiIpK7kBsAHNJKloQ+feztt97K8lBkJHToYGctZa5FIyIiIr6jZMYX+ve314sW2anaIiIiUmSUzPjCGWfYxZeMgalTAx2NiIhIsaJkxldcrTNTp2qtAhERCTtOJyxdaovDLl3676nu88+hSxf47LOAxlYioK8eThISoHJlu1bBokVw9dWBjkhERMQnEhPtuoOZl+uJjYXva79O7R8WQePGNqkJELXM+Erp0nDbbfb2m28GNhYREREfSUyE7t1zrjuY/tduqv+wwN65886iDywTJTO+5PrP/OSTvFebFBERCQFOp22RcVfEpS9TKIGTH0q1wdm4adEHl4mSGV9q0gTatYP0dJgyJdDRiIiIFMqKFe5/m0fg5A5sOZJXT97FihVFHFiOeMS37rrLXk+eDGlpgY1FRESkEJKS3G/vzCLqspODVGIO3XPdr6gomfG1hASoUsWmsosWBToaERGRAsttTec7sWNDp9ObVErnul9R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wlYJrlUL2rZV15I/+bVlplOnTvz0008FDk6KsT59oEULW3Pm4YcDHY2ISO727j1dK+uZZ6ByZSIjoUMHO2upQwclMsHE49lMLldffTUPPvggv/32G+eccw4ls419uO6663wWnISZyEiYOBEuvhimT4c77oBLLw10VCIiOT38MCQnwwUXnF6eRYKW191MeU3JdjgcOIOsDKK6mYLQHXfA5MnQvDn89BOU8DqnFhHxn2+/Pf1D67vv7A8wKXJ+7WZKT0/P9RJsiYwEqTFjoFIlWL0aJk0KdDQiIqc5neCqZt+3rxKZEFGoyncnTpzwVRxSnFStCs8+a28/8YRd7kBEJBi8/jqsWgUVK8LYsYGORjzkdTLjdDp5+umnqVOnDuXLl+fPP/8E4IknnmDKlCk+D1DC1B132L7o5GR45JFARyMiknXQ7+jRdsFcCQleJzOjR49m2rRpPP/885QqVSpj+znnnMPkyZN9GpyEMddgYIBp0+CbbwIajogIjzwChw7B+efDXXcFOhrxgtfJzDvvvMObb75Jr169iMw0L+3cc8/l999/9+pYy5cv59prr6V27do4HA7mz5+f5XFjDCNHjqR27dqUKVOGDh06sH79em9DlmDVqhX062dv3303nDoV2HhEpPj63//g7bft7f/+V/OuQ4zXycyuXbs444wzcmxPT0/nlJcno6NHj9K8eXNey6Ui7PPPP89LL73Ea6+9xo8//kjNmjW58sorOXz4sLdhS5Byjh7LqegqsHYtm4e8isaQi0iRO3UKBgywt/v3h9atAxuPeM3rZObss89mxYoVObZ/+OGHnH/++V4dq0uXLjzzzDMkuKkFbYxh/PjxDB8+nISEBJo1a8b06dM5duwYM2fOzPWYqamppKSkZLlIcEpMhPgLq3Jnil2NttakJ7kkdgeJiQEOTESKl5degvXr7eSEAA36dTph6VKYNcte64edd7xOZkaMGMGgQYN47rnnSE9PJzExkTvuuINnn32WJ5980meBbd26lT179tCxY8eMbVFRUbRv355vv/021+eNGTOGmJiYjEtcXJzPYhLfSUyE7t3hr79gOr1ZTlvKcYxH9wyme3eU0IhI0di2DUaNsrfHjYMqVYo8hMREiI+Hyy6Dnj3tdXy8vge94XUyc+211zJ79mwWLlyIw+HgySefZMOGDSxYsIArr7zSZ4Ht2bMH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TNWtWzfL/fLlywPQsGFDJTI+tnv3bjp06EDdunV58cUX2bdvX8ZjNWvWDGBk4WHYsGHceuutXHjhhbRu3Zo333yTHTt2MGDAgECHFlYGDhzIzJkz+eijj6hQoULGmKSYmBjKlCkT4OjCS4UKFXIkLOXKlaNKlSpKZHKhZEbEz7744gs2b97M5s2bcySKahgtvJtvvpkDBw7w1FNPkZSURLNmzVi4cCH16tULdGhhxTX1vUOHDlm2v/322/Tp06foAxLJRN1MIiIiEtI0AlFERERCmpIZERERCWlKZkRERCSkKZkRERGRkKZkRkREREKakhkREREJaUpmREREJKQpmREREZGQpmRGpBhwOBzMnz8/0GF4ZOTIkZx33nmBDsPnOnTowNChQz3ef+nSpTgcDg4dOpTrPtOmTaNixYqFjk0k1CmZEQliffr0oVu3boEOI+R5ctIfN24cMTExHDt2LMdjJ06coGLFirz00ksFjiExMZGnn366wM8XkdwpmRERAW677TaOHz/O3Llzczw2d+5cjh07xq233ur1cU+dOgVA5cqVqVChQqHjFJGclMyIhJAOHTowePBgHnroISpXrkzNmjUZOXJkln02bdpEu3btKF26NE2bNmXx4sU5jrNr1y5uvvlmKlWqRJUqVejatSvbtm3LeNzVIjRq1CiqV69OdHQ0d911FydPnszYxxjD888/T4MGDShTpgzNmzdnzpw5GY+7ukm++uorLrzwQsqWLcsll1zCxo0bs8QyduxYatSoQYUKFejXrx8nTpzIEe/bb79NkyZNKF26NGeddRYTJ07MeGzbtm04HA4SExO57LLLKFu2LM2bN+e7777LiOP2228nOTkZh8OBw+HI8Z4BVKtWjWuvvZapU6fmeGzq1Klcd911VKtWjYcffpgzzzyTsmXL0qBBA5544omMhAVOd5NNnTqVBg0aEBUVhTEmRzfTu+++y4UXXkiFChWoWbMmPXv2ZO/evTle+5tvvqF58+aULl2aVq1asXbt2hz7ZLZgwQJatGhB6dKladCgAaNGjSItLS3P54iEPCMiQat3796ma9euGffbt29voqOjzciRI80ff/xhpk+fbhwOh/niiy+MMcY4nU7TrFkz06FDB/Prr7+aZcuWmfPPP98AZt68ecYYY44ePWoaNWpk+vbta9asWWN+++0307NnT9O4cWOTmpqa8brly5c3N998s1m3bp355JNPTLVq1cxjjz2WEctjjz1mzjrrLLNo0SKzZcsW8/bbb5uoqCizdOlSY4wxS5YsMYBp1aqVWbp0qVm/fr1p27atueSSSzKOMXv2bFOqVCnz1ltvmd9//90MHz7cVKhQwTRv3jxjnzfffNPUqlXLzJ071/z5559m7ty5pnLlymbatGnGGGO2bt1qAHPWWWeZTz75xGzcuNF0797d1KtXz5w6dcqkpqaa8ePHm+joaJOUlGSSkpLM4cOH3b7fn376qXE4HObPP//M2LZ161bjcDjMwoULjTHGPP300+abb74xW7duNR9//LGpUaOGee655zL2HzFihClXrpzp1KmT+eWXX8zq1atNenq6ad++vRkyZEjGflOmTDELFy40W7ZsMd999525+OKLTZcuXTIed71/TZo0MV988YVZs2aNueaaa0x8fLw5efKkMcaYt99+28TExGQ8Z9GiRSY6OtpMmzbNbNmyxXzxxRcmPj7ejBw50v0HTCRMKJkRCWLukpk2bdpk2adly5bm4YcfNsYY8/nnn5vIyEizc+fOjMc/++yzLMnMlClTTOPGjU16enrGPqmpqaZMmTLm888/z3jdypUrm6NHj2bsM2nSJFO+fHnjdDrNkSNHTOnSpc23336bJZZ+/fqZHj16GGNOn4y//PLLjMc//fRTA5jjx48bY4xp3bq1GTBgQJZjtGrVKksyExcXZ2bOnJlln6efftq0bt3aGHM6mZk8eXLG4+vXrzeA2bBhgzEm50k/N2lpaaZOnTrmySefzNj25JNPmjp16pi0tDS3z3n++edNixYtMu6PGDHClCxZ0uzduzfLftmTmex++OEHA2QkWq737/3338/Y58CBA6ZMmTJm9uzZbv9dbdu2Nc8++2yW486YMcPUqlUr73+4SIgrEaAGIREpoHPPPTfL/Vq1amV0T2zYsIG6desSGxub8Xjr1q2z7P/zzz+zefPmHOM3Tpw4wZYtWzLuN2/enLJly2Y5zpEjR9i5cyd79+7lxIkTXHnllVmOcfLkSc4///xc461VqxYAe/fupW7dumzYsIEBAwZk2b9169YsWbIEgH379rFz50769evHHXfckbFPWloaMTExHr3OWWedhaciIyPp3bs306ZNY8SIETgcDqZPn06fPn2IjIwEYM6cOYwfP57Nmzdz5MgR0tLSiI6OznKcevXqUa1atTxf69dff2XkyJGsWrWKgwcPkp6eDsCOHTto2rRplvfDpXLlyjRu3JgNGza4PebPP//Mjz/+yOjRozO2OZ1OTpw4wbFjx7L8f4qEEyUzIiGmZMmSWe47HI6ME6ExJsf+Docjy/309HRatGjBe++9l2Pf/E7A2V/v008/pU6dOlkej4qKyjVeVyyu5+fHtd9bb71Fq1atsjzmSi588TqZ9e3blzFjxvD1118DNrm4/fbbAVi5ciW33HILo0aNolOnTsTExPD+++8zbty4LMcoV65cnq9x9OhROnbsSMeOHXn33XepVq0aO3bsoFOnTlnGJeUm+/+pS3p6OqNGjSIhISHHY6VLl873uCKhSsmMSBhp2rQpO3bsYPfu3dSuXRsgYyCsywUXXMDs2bMzBvbmZvXq1Rw/fpwyZcoA9kRevnx5YmNjqVSpElFRUezYsYP27dsXON4mTZqwcuVKbrvttoxtK1euzLhdo0YN6tSpw59//kmvXr0K/DqlSpXC6XR6tG/Dhg1p3749b7/9dsbA3YYNGwJ2MG69evUYPnx4xv7bt2/3Op7ff/+d/fv3M3bsWOLi4gD46aef3O67cuVK6tatC8A///zDH3/8kWtr0wUXXMDGjRs544wzvI5JJJQpmREJI1dccQWNGzfmtttuY9y4caSkpGQ58QL06tWLF154ga5du/LUU08RGxvLjh07SExM5MEHH8zoojp58iT9+vXj8ccfZ/v27YwYMYJBgwYRERFBhQoVeOCBB7jvvvtIT0+nTZs2pKSk8O2331K+fHl69+7tUbxDhgyhd+/eXHjhhbRp04b33nuP9evX06BBg4x9Ro4cyeDBg4mOjqZLly6kpqby008/8c8//zBs2DCPXic+Pp4jR47w1VdfZXSf5dXlkrlba/LkyRnbzzjjDHbs2MH7779Py5Yt+fTTT5k3b55HMWRWt25dSpUqxYQJExgwYADr1q3LtQbNU089RZUqVahRowbDhw+natWqudYeevLJJ7nmmmuIi4vjxhtvJCIigjVr1rB27VqeeeYZr+MUCRWami0SRiIiIpg3bx6pqalcdNFF9O/fP8v4CYCyZcuyfPly6tatS0JCAk2aNKFv374cP348S0vN//3f/9GoUSPatWvHTTfdxLXXXptlSvPTTz/Nk08+yZgxY2jSpAmdOnViwYIF1K9f3+N4b775Zp588kkefvhhWrRowfbt27n77ruz7NO/f38mT57MtGnTOOecc2jfvj3Tpk3z6nUuueQSBgwYwM0330y1atV4/vnn89z/hhtuICoqiqioqCxdNl27duW+++5j0KBBnHfeeXz77bc88cQTHsfhUq1aNaZNm8aHH35I06ZNGTt2LC+++KLbfceOHcuQIUNo0aIFSUlJfPzxx5QqVcrtvp06deKTTz5h8eLFtGzZkosvvpiXXnqJevXqeR2jSChxGHed7CJSrPXp04dDhw6FzBIIIlK8qWVGREREQpqSGREREQlp6mYSERGRkKaWGREREQlpSmZEREQkpCmZERERkZCmZEZERERCmpIZERERCWlKZkRERCSkKZkRERGRkKZkRkRERELa/wOcbyF7bm4KMAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "\n", + "\n", + "y = np.power(x,2)\n", + "y_noise = 2 * np.random.normal(size=x.size)\n", + "ydata = y + y_noise\n", + "plt.plot(x, ydata, 'bo')\n", + "plt.plot(x,y, 'r') \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exponential\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An exponential function with base c is defined by $$ Y = a + b c^X$$ where b ≠0, c > 0 , c ≠1, and x is any real number. The base, c, is constant and the exponent, x, is a variable. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "X = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "\n", + "\n", + "Y= np.exp(X)\n", + "\n", + "plt.plot(X,Y) \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Logarithmic\n", + "\n", + "The response $y$ is a results of applying the logarithmic map from the input $x$ to the output $y$. It is one of the simplest form of __log()__: i.e. $$ y = \\log(x)$$\n", + "\n", + "Please consider that instead of $x$, we can use $X$, which can be a polynomial representation of the $x$ values. In general form it would be written as \n", + "\\begin{equation}\n", + "y = \\log(X)\n", + "\\end{equation}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "X = np.arange(-5.0, 5.0, 0.1)\n", + "X_positif = X[X > 0] # Filter agar hanya menyertakan angka > 0\n", + "\n", + "Y = np.log(X_positif)\n", + "\n", + "plt.plot(X_positif, Y)\n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.title('Plot Logaritma (Hanya Nilai Positif)')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sigmoidal/Logistic\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$ Y = a + \\frac{b}{1+ c^{(X-d)}}$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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Z87g5MmTUkexCBwZojIWLlwImUxW6e3UqVNYvnw5NBoN5s6dK3Vki1XVz/p+KSkpGDhwIF544QVMmjRJouR1j0wmK/NYCFFuGZnOlClTcP78eXz77bdSR6mTkpKSMG3aNGzZsgX29vZSx7EIPGaIysjMzERmZmal6/j7+2PkyJHYtWtXmV8YOp0OCoUCL730EjZt2mTuqBavqp/1vX/MUlJSEBYWhpCQEGzcuBFyOf8vU11FRUVwdHTEDz/8gKFDhxqWT5s2DVFRUTh8+LCE6eqmN954Az/99BOOHDmCgIAAqePUST/99BOGDh0KhUJhWKbT6SCTySCXy6HVass8RyxD9IgSExOh0WgMj1NSUjBgwAD8+OOPCAkJQePGjSVMV/ckJycjLCwMwcHB2LJlC/8hM6GQkBAEBwdj5cqVhmWtW7fGc889xwOoTUgIgTfeeAM7d+5EZGQkmjdvLnWkOisnJwcJCQlllo0fPx6tWrXCnDlzuGuyAjxmiB5JkyZNyjx2cnICADRt2pRFyMRSUlLQp08fNGnSBEuWLEFGRobhOS8vLwmT1Q0zZ87E6NGj0aVLF4SGhmLNmjVITExEeHi41NHqlNdffx3/+c9/8N///hfOzs6GY7JUKhUcHBwkTle3ODs7lys89erVQ8OGDVmEHoBliKiW279/P2JjYxEbG1uuaHJgt/pGjBiB27dv47333kNqairatm2LvXv3ws/PT+podcq9qQv69OlTZvmGDRswbty4mg9EdB/uJiMiIiKrxiMwiYiIyKqxDBEREZFVYxkiIiIiq8YyRERERFaNZYiIiIisGssQERERWTWWISIiIrJqLENE9FAymQw//fST1DGqZOHChejYsaPUMUyuT58+mD59epXXj4yMhEwmQ3Z29gPX2bhxI+rXr1/tbESWjmWIqA4bN24chgwZInUMi1eV0rB06VKoVCrk5+eXe66wsBD169fHZ5999sgZduzYgffff/+RtyeiB2MZIiIygTFjxqCgoADbt28v99z27duRn5+P0aNHG/26xcXFAABXV1c4OztXOycRlccyRGRF+vTpg6lTp2L27NlwdXWFl5cXFi5cWGada9euoVevXrC3t0fr1q1x4MCBcq+TnJyMESNGoEGDBmjYsCGee+45xMfHG56/NyK1aNEieHh4wMXFBa+88gqKiooM6wghsHjxYgQG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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "X = np.arange(-5.0, 5.0, 0.1)\n", + "\n", + "\n", + "Y = 1-4/(1+np.power(3, X-2))\n", + "\n", + "plt.plot(X,Y) \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Non-Linear Regression example\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For an example, we're going to try and fit a non-linear model to the datapoints corresponding to China's GDP from 1960 to 2014. We download a dataset with two columns, the first, a year between 1960 and 2014, the second, China's corresponding annual gross domestic income in US dollars for that year. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2025-10-20 14:43:18 URL:https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/china_gdp.csv [1218/1218] -> \"china_gdp.csv\" [1]\n" + ] + }, + { + "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", + "
YearValue
019605.918412e+10
119614.955705e+10
219624.668518e+10
319635.009730e+10
419645.906225e+10
519656.970915e+10
619667.587943e+10
719677.205703e+10
819686.999350e+10
919697.871882e+10
\n", + "
" + ], + "text/plain": [ + " Year Value\n", + "0 1960 5.918412e+10\n", + "1 1961 4.955705e+10\n", + "2 1962 4.668518e+10\n", + "3 1963 5.009730e+10\n", + "4 1964 5.906225e+10\n", + "5 1965 6.970915e+10\n", + "6 1966 7.587943e+10\n", + "7 1967 7.205703e+10\n", + "8 1968 6.999350e+10\n", + "9 1969 7.871882e+10" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "#downloading dataset\n", + "!wget -nv -O china_gdp.csv https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/china_gdp.csv\n", + " \n", + "df = pd.read_csv(\"china_gdp.csv\")\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Did you know?__ When it comes to Machine Learning, you will likely be working with large datasets. As a business, where can you host your data? IBM is offering a unique opportunity for businesses, with 10 Tb of IBM Cloud Object Storage: [Sign up now for free](http://cocl.us/ML0101EN-IBM-Offer-CC)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plotting the Dataset ###\n", + "This is what the datapoints look like. It kind of looks like an either logistic or exponential function. The growth starts off slow, then from 2005 on forward, the growth is very significant. And finally, it decelerates slightly in the 2010s.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(8,5))\n", + "x_data, y_data = (df[\"Year\"].values, df[\"Value\"].values)\n", + "plt.plot(x_data, y_data, 'ro')\n", + "plt.ylabel('GDP')\n", + "plt.xlabel('Year')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Choosing a model ###\n", + "\n", + "From an initial look at the plot, we determine that the logistic function could be a good approximation,\n", + "since it has the property of starting with a slow growth, increasing growth in the middle, and then decreasing again at the end; as illustrated below:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "X = np.arange(-5.0, 5.0, 0.1)\n", + "Y = 1.0 / (1.0 + np.exp(-X))\n", + "\n", + "plt.plot(X,Y) \n", + "plt.ylabel('Dependent Variable')\n", + "plt.xlabel('Independent Variable')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "The formula for the logistic function is the following:\n", + "\n", + "$$ \\hat{Y} = \\frac1{1+e^{-\\beta_1(X-\\beta_2)}}$$\n", + "\n", + "$\\beta_1$: Controls the curve's steepness,\n", + "\n", + "$\\beta_2$: Slides the curve on the x-axis.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Building The Model ###\n", + "Now, let's build our regression model and initialize its parameters. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "def sigmoid(x, Beta_1, Beta_2):\n", + " y = 1 / (1 + np.exp(-Beta_1*(x-Beta_2)))\n", + " return y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lets look at a sample sigmoid line that might fit with the data:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "beta_1 = 0.10\n", + "beta_2 = 1990.0\n", + "\n", + "#logistic function\n", + "Y_pred = sigmoid(x_data, beta_1 , beta_2)\n", + "\n", + "#plot initial prediction against datapoints\n", + "plt.plot(x_data, Y_pred*15000000000000.)\n", + "plt.plot(x_data, y_data, 'ro')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our task here is to find the best parameters for our model. Lets first normalize our x and y:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Lets normalize our data\n", + "xdata =x_data/max(x_data)\n", + "ydata =y_data/max(y_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### How we find the best parameters for our fit line?\n", + "we can use __curve_fit__ which uses non-linear least squares to fit our sigmoid function, to data. Optimize values for the parameters so that the sum of the squared residuals of sigmoid(xdata, *popt) - ydata is minimized.\n", + "\n", + "popt are our optimized parameters.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " beta_1 = 690.451712, beta_2 = 0.997207\n" + ] + } + ], + "source": [ + "from scipy.optimize import curve_fit\n", + "popt, pcov = curve_fit(sigmoid, xdata, ydata)\n", + "#print the final parameters\n", + "print(\" beta_1 = %f, beta_2 = %f\" % (popt[0], popt[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we plot our resulting regression model.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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xsbq1ltv1X333adPP/1UGzZs0E033aSwMPcp7tq1qyIjI/XPf/5T27dv1wcffKBHHnnE9BrdunWTzWbTRx99pAMHDujIkSNq3769OnTooOeff15bt27Vv//9b9McZAAA0ILl5ko7dkhLl0pvvun+mZ8fNEFWsvgCsOzs7Ca/Hn/llVfqtV1yySX67rvv/FiVD+TmutddC/Ct3x577DEdOXJE11xzjeLi4vS73/1OJSUlkqROnTrplVde0R/+8Ac9+eSTuuCCC/T3v/9d11xzTe3+qampevjhhzV16lTdfPPNmjBhgl555RW99dZbuvvuu5WZmalevXrpySefrJ1vCwAAWji7XQri/+7bjOYmW7YwpaWlSkhIUElJSb2LwY4fP678/HxlZGQoOjraogpDH39HAABwJprKa3WF1AVgAAAAwKkIswAAAAhZhFkAAACELMIsAAAAQhZhFgAAACGLMAsAAICQRZgFAABAyCLMAgAAIGQRZlsIwzD0m9/8RomJibLZbGrXrp0mT55sdVkAAAB+ZentbOE7ixYt0iuvvKJly5apR48eCgsLU5s2bWqf7969uyZPnkzABQAALQphtoXYtm2bkpOTNXToUKtLAQAACBjCbBNcLkOHyistraF9TKTCwmxN9rnpppv06quvSpJsNpu6deum7t27a8CAAZo5c6ays7O1c+dO3XPPPbrnnnskuaclAAAAhDrCbBMOlVdq4F/+ZWkNq/94hTrERjXZZ9asWerZs6eef/55ffvtt7Lb7frlL39Z+3xeXp769++v3/zmN7r99tv9XTIAAEDAEGZbgISEBMXFxclut6tLly71nk9MTJTdbldcXFyDzwMAAIQqVjMAAABAyCLMAgAAIGQxzaAJ7WMitfqPV1hegy9ERkbK6XT65LUAAEAL4HRKK1ZIDoeUnCxlZUl2u9VVeY0w24SwMFuzF1+Fiu7du2v58uW64YYbFBUVpY4dO1pdEgAAsEpenjRpkrRnz8m2tDRp1iwpN9e6uk4D0wxaienTp2vHjh3q2bOnOnXqZHU5AADAKnl50tix5iArSXv3utvz8qyp6zTZjFa24GhpaakSEhJUUlKi+Ph403PHjx9Xfn6+MjIyFB0dbVGFoY+/IwAAQcrplLp3rx9ka9hs7hHa/HxLpxw0ldfqYmQWAACgtVixovEgK0mGIe3e7e4XIgiz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G+w/ZMgQ49577zW1TZo0ybj44osbPcY//vEPIy4uzjhy5Eht20MPPWT079//9AtvBfxxbu666y7jsssuM/WZMmWKMWzYsNM+bmtk1bnhc+MZf5yf5ORk46mnnjL1ycnJMf7jP/7jtI/bGll1bvjseMeTMPv73//e6N27t6ntjjvuMC666KLa7euvv974xS9+YeozYsQI44YbbqjdDtTnhmkGLVRlZaVWr16t4cOHm9qHDx+ulStXNrhPRUWFoqOjTW1t2rTRN998o6qqqgb3mTNnjm644Qa1bdvW1P7TTz8pJSVFGRkZuuGGG7R9+/YzeDcti7/OzbBhw7R69Wp98803kqTt27dr4cKFtVNATue4rY1V56YGn5um+ev8NNbn888/P+3jtjZWnZsafHZ868svv6x3LkeMGKFVq1bVnpvG+tSc70B+bgizLVRRUZGcTqeSkpJM7UlJSSooKGhwnxEjRujFF1/U6tWrZRiGVq1apZdeeklVVVUqKiqq1/+bb77Rhg0bdNttt5naL7zwQr322mv65JNP9MILL6igoEBDhw5VcXGx795gCPPXubnhhhv0yCOPaNiwYYqIiFDPnj116aWXaurUqad93NbGqnMj8bnxhL/Oz4gRI/TEE0/op59+ksvl0pIlS/T+++/L4XCc9nFbG6vOjcRnxx8KCgoaPJfV1dW156axPjXnO5CfG8JsC2ez2UzbhmHUa6vxpz/9SSNHjtRFF12kiIgI5eTk6KabbpIk2e32ev3nzJmjzMxMDR482NQ+cuRIXXfddTrvvPN0xRVX6OOPP5Ykvfrqqz54Ry2Hr8/NsmXL9P/+3//T7Nmz9d133ykvL08fffSRHnnkkdM+bmtlxbnhc+M5X5+fWbNm6eyzz1bv3r0VGRmp3/72t7r55pvr/XuPz07zrDg3fHb8o6FzWbfdk/MdiM8NYbaF6tixo+x2e73/+yksLKz3f0k12rRpo5deeknl5eXasWOHdu3ape7duysuLk4dO3Y09S0vL9dbb71Vb1S2IW3bttV5552nn3766fTfUAvir3Pzpz/9STfeeKNuu+02nXfeebr22mv16KOPasaMGXK5XKd13NbGqnPTED439fnr/HTq1Envvfeejh49qp07d+qHH35QbGysMjIyTvu4rY1V56YhfHbOXJcuXRo8l+Hh4erQoUOTfWrOdyA/N4TZFioyMlIDBw7UkiVLTO1LlizR0KFDm9w3IiJCaWlpstvteuuttzRq1CiFhZn/UXn77bdVUVGh//zP/2y2loqKCm3evFnJycnev5EWyF/npry8vN55stvtMtwXep7RcVsLq85NQ/jc1Ofvf69FR0crNTVV1dXVWrBggXJycs74uK2FVeemIXx2ztyQIUPqncvFixdr0KBBioiIaLJPzfkO6OfGp5eTIajULIkxZ84cY9OmTcbkyZONtm3bGjt27DAMwzCmTp1q3HjjjbX9t2zZYvzv//6v8eOPPxpff/21MW7cOCMxMdHIz8+v99rDhg0zxo0b1+Bxf/e73xnLli0ztm/fbnz11VfGqFGjjLi4uNrjwj/n5qGHHjLi4uKMuXPnGtu3bzcWL15s9OzZ07j++us9Pi6sOzd8bjzjj/Pz1VdfGQsWLDC2bdtmLF++3LjsssuMjIwM49ChQx4fF9adGz47zSsrKzPWrFljrFmzxpBkPPHEE8aaNWtql8iqe25qlua65557jE2bNhlz5syptzTXF198YdjtduOvf/2rsXnzZuOvf/1ro0tz+ftzQ5ht4Z5++mmjW7duRmRkpHHBBRcYn332We1zv/71r41LLrmkdnvTpk3GgAEDjDZt2hjx8fFGTk6O8cMPP9R7zS1bthiSjMWLFzd4zHHjxhnJyclGRESEkZKSYuTm5hobN270+XsLdb4+N1VVVcaf//xno2fPnkZ0dLSRnp5u3HnnnaZ/6Td3XLhZcW743HjO1+dn2bJlRp8+fYyoqCijQ4cOxo033mjs3bvXq+PCzYpzw2eneUuXLjUk1Xv8+te/Ngyj/rkxDPff/vzzzzciIyON7t27G88880y9133nnXeMXr16GREREUbv3r2NBQsW1OsTiM+NzTAa+Y4LAAAACHLMmQUAAEDIIswCAAAgZBFmAQAAELIIswAAAAhZhFkAAACELMIsAAAAQhZhFgAAACGLMAsAAICQRZgFgCBiGIauuOIKjRgxot5zs2fPVkJCgnbt2mVBZQAQnAizABBEbDabXn75ZX399dd67rnnatvz8/N1//33a9asWeratatPj1lVVeXT1wOAQCLMAkCQSU9P16xZs3TvvfcqPz9fhmHo1ltv1eWXX67BgwfrqquuUmxsrJKSknTjjTeqqKiodt9FixZp2LBhateunTp06KBRo0Zp27Zttc/v2LFDNptNb7/9trKzsxUdHa3XX3/dircJAD5hMwzDsLoIAEB9Y8aM0eHDh3XdddfpkUce0bfffqtBgwbp9ttv14QJE3Ts2DHdf//9qq6u1r///W9J0oIFC2Sz2XTeeefp6NGjevDBB7Vjxw6tXbtWYWFh2rFjhzIyMtS9e3c9/vjjOv/88xUVFaWUlBSL3y0AnB7CLAAEqcLCQmVmZqq4uFjz58/XmjVr9PXXX+uTTz6p7bNnzx6lp6dry5YtOuecc+q9xoEDB9S5c2d9//33yszMrA2zM2fO1KRJkwL5dgDAL5hmAABBqnPnzvrNb36jPn366Nprr9Xq1au1dOlSxcbG1j569+4tSbVTCbZt26bx48erR48eio+PV0ZGhiTVu2hs0KBBgX0zAOAn4VYXAABoXHh4uMLD3f+qdrlcGj16tP72t7/V65ecnCxJGj16tNLT0/XCCy8oJSVFLpdLmZmZqqysNPVv27at/4sHgAAgzAJAiLjgggu0YMECde/evTbgnqq4uFibN2/Wc889p6ysLEnS559/HugyASCgmGYAACHirrvu0sGDB/WrX/1K33zzjbZv367FixfrlltukdPpVPv27dWhQwc9//zz2rp1q/79739rypQpVpcNAH5FmAWAEJGSkqIvvvhCTqdTI0aMUGZmpiZNmqSEhASFhYUpLCxMb731llavXq3MzEzdc889euyxx6wuGwD8itUMAAAAELIYmQUAAEDIIswCAAAgZBFmAQAAELIIswAAAAhZhFkAAACELMIsAAAAQhZhFgAAACGLMAsAAICQRZgFAABAyCLMAgAAIGQRZgEAABCyCLMAAAAIWf8fXBoC3zSbYjgAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = np.linspace(1960, 2015, 55)\n", + "x = x/max(x)\n", + "plt.figure(figsize=(8,5))\n", + "y = sigmoid(x, *popt)\n", + "plt.plot(xdata, ydata, 'ro', label='data')\n", + "plt.plot(x,y, linewidth=3.0, label='fit')\n", + "plt.legend(loc='best')\n", + "plt.ylabel('GDP')\n", + "plt.xlabel('Year')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice\n", + "Can you calculate what is the accuracy of our model?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean absolute error: 0.04\n", + "Residual sum of squares (MSE): 0.00\n", + "R2-score: 0.92\n" + ] + } + ], + "source": [ + "# split data into train/test\n", + "msk = np.random.rand(len(df)) < 0.8\n", + "train_x = xdata[msk]\n", + "test_x = xdata[~msk]\n", + "train_y = ydata[msk]\n", + "test_y = ydata[~msk]\n", + "\n", + "# build the model using train set\n", + "popt, pcov = curve_fit(sigmoid, train_x, train_y)\n", + "\n", + "# predict using test set\n", + "y_hat = sigmoid(test_x, *popt)\n", + "\n", + "# evaluation\n", + "print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(y_hat - test_y)))\n", + "print(\"Residual sum of squares (MSE): %.2f\" % np.mean((y_hat - test_y) ** 2))\n", + "from sklearn.metrics import r2_score\n", + "print(\"R2-score: %.2f\" % r2_score(test_y,y_hat) )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python \n", + "# split data into train/test\n", + "msk = np.random.rand(len(df)) < 0.8\n", + "train_x = xdata[msk]\n", + "test_x = xdata[~msk]\n", + "train_y = ydata[msk]\n", + "test_y = ydata[~msk]\n", + "\n", + "# build the model using train set\n", + "popt, pcov = curve_fit(sigmoid, train_x, train_y)\n", + "\n", + "# predict using test set\n", + "y_hat = sigmoid(test_x, *popt)\n", + "\n", + "# evaluation\n", + "print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(y_hat - test_y)))\n", + "print(\"Residual sum of squares (MSE): %.2f\" % np.mean((y_hat - test_y) ** 2))\n", + "from sklearn.metrics import r2_score\n", + "print(\"R2-score: %.2f\" % r2_score(test_y,y_hat) )\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Want to learn more?

\n", + "\n", + "IBM SPSS Modeler is a comprehensive analytics platform that has many machine learning algorithms. It has been designed to bring predictive intelligence to decisions made by individuals, by groups, by systems – by your enterprise as a whole. A free trial is available through this course, available here: SPSS Modeler\n", + "\n", + "Also, you can use Watson Studio to run these notebooks faster with bigger datasets. Watson Studio is IBM's leading cloud solution for data scientists, built by data scientists. With Jupyter notebooks, RStudio, Apache Spark and popular libraries pre-packaged in the cloud, Watson Studio enables data scientists to collaborate on their projects without having to install anything. Join the fast-growing community of Watson Studio users today with a free account at Watson Studio\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Thank you for completing this lab!\n", + "\n", + "\n", + "## Author\n", + "\n", + "Saeed Aghabozorgi\n", + "\n", + "\n", + "### Other Contributors\n", + "\n", + "Joseph Santarcangelo\n", + "\n", + "\n", + "##

© IBM Corporation 2020. All rights reserved.

\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python", + "language": "python", + "name": "conda-env-python-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.12" + }, + "prev_pub_hash": "f873d3177bf529d2d648c46bab1627042a257e5ec6ce42ca68028520459f817e" + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ML0101EN-Reg-Simple-Linear-Regression-Co2 (1).ipynb b/ML0101EN-Reg-Simple-Linear-Regression-Co2 (1).ipynb new file mode 100644 index 0000000..d7aa461 --- /dev/null +++ b/ML0101EN-Reg-Simple-Linear-Regression-Co2 (1).ipynb @@ -0,0 +1,1383 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

\n", + " \n", + " \"Skills\n", + " \n", + "

\n", + "\n", + "\n", + "# Simple Linear Regression\n", + "\n", + "\n", + "Estimated time needed: **15** minutes\n", + " \n", + "\n", + "## Objectives\n", + "\n", + "After completing this lab you will be able to:\n", + "\n", + "* Use scikit-learn to implement simple Linear Regression\n", + "* Create a model, train it, test it and use the model\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Importing Needed packages\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import pylab as pl\n", + "import numpy as np\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "### Downloading Data\n", + "To download the data, we will use !wget to download it from IBM Object Storage.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2025-10-20 14:15:42-- https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/FuelConsumptionCo2.csv\n", + "Resolving cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud (cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud)... 169.63.118.104, 169.63.118.104\n", + "Connecting to cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud (cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud)|169.63.118.104|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 72629 (71K) [text/csv]\n", + "Saving to: ‘FuelConsumption.csv’\n", + "\n", + "FuelConsumption.csv 100%[===================>] 70.93K --.-KB/s in 0.002s \n", + "\n", + "2025-10-20 14:15:42 (41.3 MB/s) - ‘FuelConsumption.csv’ saved [72629/72629]\n", + "\n" + ] + } + ], + "source": [ + "!wget -O FuelConsumption.csv https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/FuelConsumptionCo2.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In case you're working **locally** uncomment the below line. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "#!curl https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%202/data/FuelConsumptionCo2.csv -o FuelConsumptionCo2.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jp-MarkdownHeadingCollapsed": true, + "tags": [] + }, + "source": [ + "\n", + "## Understanding the Data\n", + "\n", + "### `FuelConsumption.csv`:\n", + "We have downloaded a fuel consumption dataset, **`FuelConsumption.csv`**, which contains model-specific fuel consumption ratings and estimated carbon dioxide emissions for new light-duty vehicles for retail sale in Canada. [Dataset source](http://open.canada.ca/data/en/dataset/98f1a129-f628-4ce4-b24d-6f16bf24dd64)\n", + "\n", + "- **MODELYEAR** e.g. 2014\n", + "- **MAKE** e.g. Acura\n", + "- **MODEL** e.g. ILX\n", + "- **VEHICLE CLASS** e.g. SUV\n", + "- **ENGINE SIZE** e.g. 4.7\n", + "- **CYLINDERS** e.g 6\n", + "- **TRANSMISSION** e.g. A6\n", + "- **FUEL CONSUMPTION in CITY(L/100 km)** e.g. 9.9\n", + "- **FUEL CONSUMPTION in HWY (L/100 km)** e.g. 8.9\n", + "- **FUEL CONSUMPTION COMB (L/100 km)** e.g. 9.2\n", + "- **CO2 EMISSIONS (g/km)** e.g. 182 --> low --> 0\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading the data in\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MODELYEARMAKEMODELVEHICLECLASSENGINESIZECYLINDERSTRANSMISSIONFUELTYPEFUELCONSUMPTION_CITYFUELCONSUMPTION_HWYFUELCONSUMPTION_COMBFUELCONSUMPTION_COMB_MPGCO2EMISSIONS
02014ACURAILXCOMPACT2.04AS5Z9.96.78.533196
12014ACURAILXCOMPACT2.44M6Z11.27.79.629221
22014ACURAILX HYBRIDCOMPACT1.54AV7Z6.05.85.948136
32014ACURAMDX 4WDSUV - SMALL3.56AS6Z12.79.111.125255
42014ACURARDX AWDSUV - SMALL3.56AS6Z12.18.710.627244
52014ACURARLXMID-SIZE3.56AS6Z11.97.710.028230
62014ACURATLMID-SIZE3.56AS6Z11.88.110.128232
72014ACURATL AWDMID-SIZE3.76AS6Z12.89.011.125255
82014ACURATL AWDMID-SIZE3.76M6Z13.49.511.624267
92014ACURATSXCOMPACT2.44AS5Z10.67.59.231212
102014ACURATSXCOMPACT2.44M6Z11.28.19.829225
112014ACURATSXCOMPACT3.56AS5Z12.18.310.427239
122014ASTON MARTINDB9MINICOMPACT5.912A6Z18.012.615.618359
\n", + "
" + ], + "text/plain": [ + " MODELYEAR MAKE MODEL VEHICLECLASS ENGINESIZE CYLINDERS \\\n", + "0 2014 ACURA ILX COMPACT 2.0 4 \n", + "1 2014 ACURA ILX COMPACT 2.4 4 \n", + "2 2014 ACURA ILX HYBRID COMPACT 1.5 4 \n", + "3 2014 ACURA MDX 4WD SUV - SMALL 3.5 6 \n", + "4 2014 ACURA RDX AWD SUV - SMALL 3.5 6 \n", + "5 2014 ACURA RLX MID-SIZE 3.5 6 \n", + "6 2014 ACURA TL MID-SIZE 3.5 6 \n", + "7 2014 ACURA TL AWD MID-SIZE 3.7 6 \n", + "8 2014 ACURA TL AWD MID-SIZE 3.7 6 \n", + "9 2014 ACURA TSX COMPACT 2.4 4 \n", + "10 2014 ACURA TSX COMPACT 2.4 4 \n", + "11 2014 ACURA TSX COMPACT 3.5 6 \n", + "12 2014 ASTON MARTIN DB9 MINICOMPACT 5.9 12 \n", + "\n", + " TRANSMISSION FUELTYPE FUELCONSUMPTION_CITY FUELCONSUMPTION_HWY \\\n", + "0 AS5 Z 9.9 6.7 \n", + "1 M6 Z 11.2 7.7 \n", + "2 AV7 Z 6.0 5.8 \n", + "3 AS6 Z 12.7 9.1 \n", + "4 AS6 Z 12.1 8.7 \n", + "5 AS6 Z 11.9 7.7 \n", + "6 AS6 Z 11.8 8.1 \n", + "7 AS6 Z 12.8 9.0 \n", + "8 M6 Z 13.4 9.5 \n", + "9 AS5 Z 10.6 7.5 \n", + "10 M6 Z 11.2 8.1 \n", + "11 AS5 Z 12.1 8.3 \n", + "12 A6 Z 18.0 12.6 \n", + "\n", + " FUELCONSUMPTION_COMB FUELCONSUMPTION_COMB_MPG CO2EMISSIONS \n", + "0 8.5 33 196 \n", + "1 9.6 29 221 \n", + "2 5.9 48 136 \n", + "3 11.1 25 255 \n", + "4 10.6 27 244 \n", + "5 10.0 28 230 \n", + "6 10.1 28 232 \n", + "7 11.1 25 255 \n", + "8 11.6 24 267 \n", + "9 9.2 31 212 \n", + "10 9.8 29 225 \n", + "11 10.4 27 239 \n", + "12 15.6 18 359 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv(\"FuelConsumption.csv\")\n", + "\n", + "# take a look at the dataset\n", + "df.head(13)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Data Exploration\n", + "Let's first have a descriptive exploration on our data.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MODELYEARENGINESIZECYLINDERSFUELCONSUMPTION_CITYFUELCONSUMPTION_HWYFUELCONSUMPTION_COMBFUELCONSUMPTION_COMB_MPGCO2EMISSIONS
count1067.01067.0000001067.0000001067.0000001067.0000001067.0000001067.0000001067.000000
mean2014.03.3462985.79475213.2965329.47460211.58088126.441425256.228679
std0.01.4158951.7974474.1012532.7945103.4855957.46870263.372304
min2014.01.0000003.0000004.6000004.9000004.70000011.000000108.000000
25%2014.02.0000004.00000010.2500007.5000009.00000021.000000207.000000
50%2014.03.4000006.00000012.6000008.80000010.90000026.000000251.000000
75%2014.04.3000008.00000015.55000010.85000013.35000031.000000294.000000
max2014.08.40000012.00000030.20000020.50000025.80000060.000000488.000000
\n", + "
" + ], + "text/plain": [ + " MODELYEAR ENGINESIZE CYLINDERS FUELCONSUMPTION_CITY \\\n", + "count 1067.0 1067.000000 1067.000000 1067.000000 \n", + "mean 2014.0 3.346298 5.794752 13.296532 \n", + "std 0.0 1.415895 1.797447 4.101253 \n", + "min 2014.0 1.000000 3.000000 4.600000 \n", + "25% 2014.0 2.000000 4.000000 10.250000 \n", + "50% 2014.0 3.400000 6.000000 12.600000 \n", + "75% 2014.0 4.300000 8.000000 15.550000 \n", + "max 2014.0 8.400000 12.000000 30.200000 \n", + "\n", + " FUELCONSUMPTION_HWY FUELCONSUMPTION_COMB FUELCONSUMPTION_COMB_MPG \\\n", + "count 1067.000000 1067.000000 1067.000000 \n", + "mean 9.474602 11.580881 26.441425 \n", + "std 2.794510 3.485595 7.468702 \n", + "min 4.900000 4.700000 11.000000 \n", + "25% 7.500000 9.000000 21.000000 \n", + "50% 8.800000 10.900000 26.000000 \n", + "75% 10.850000 13.350000 31.000000 \n", + "max 20.500000 25.800000 60.000000 \n", + "\n", + " CO2EMISSIONS \n", + "count 1067.000000 \n", + "mean 256.228679 \n", + "std 63.372304 \n", + "min 108.000000 \n", + "25% 207.000000 \n", + "50% 251.000000 \n", + "75% 294.000000 \n", + "max 488.000000 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# summarize the data\n", + "df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's select some features to explore more.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ENGINESIZECYLINDERSFUELCONSUMPTION_COMBCO2EMISSIONS
02.048.5196
12.449.6221
21.545.9136
33.5611.1255
43.5610.6244
53.5610.0230
63.5610.1232
73.7611.1255
83.7611.6267
92.449.2212
102.449.8225
113.5610.4239
125.91215.6359
\n", + "
" + ], + "text/plain": [ + " ENGINESIZE CYLINDERS FUELCONSUMPTION_COMB CO2EMISSIONS\n", + "0 2.0 4 8.5 196\n", + "1 2.4 4 9.6 221\n", + "2 1.5 4 5.9 136\n", + "3 3.5 6 11.1 255\n", + "4 3.5 6 10.6 244\n", + "5 3.5 6 10.0 230\n", + "6 3.5 6 10.1 232\n", + "7 3.7 6 11.1 255\n", + "8 3.7 6 11.6 267\n", + "9 2.4 4 9.2 212\n", + "10 2.4 4 9.8 225\n", + "11 3.5 6 10.4 239\n", + "12 5.9 12 15.6 359" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cdf = df[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB','CO2EMISSIONS']]\n", + "cdf.head(13)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot each of these features:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "viz = cdf[['CYLINDERS','ENGINESIZE','CO2EMISSIONS','FUELCONSUMPTION_COMB']]\n", + "viz.hist(color='turquoise')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's plot each of these features against the Emission, to see how linear their relationship is:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(cdf.FUELCONSUMPTION_COMB, cdf.CO2EMISSIONS, color='turquoise')\n", + "plt.xlabel(\"FUELCONSUMPTION_COMB\")\n", + "plt.ylabel(\"Emission\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGwCAYAAABPSaTdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB2NklEQVR4nO3de3hTZbo3/m+Stml6SHo+QamoIEpB3ehWwAHlKKPgETzNDIrvKIoICqPjYUZwIzjuPaKvODA6bnDkVRx1cEDHA+gAF6C/gSpjwQOOIhba0lLSpukhaZP1+6MkJGkOz0rW6krS7+e6emmbu8mTtjR3n3U/962TJEkCERERUZLSa70AIiIiIjUx2SEiIqKkxmSHiIiIkhqTHSIiIkpqTHaIiIgoqTHZISIioqTGZIeIiIiSWorWC4gHbrcbtbW1yM7Ohk6n03o5REREJECSJLS2tqKsrAx6fej9GyY7AGpra1FeXq71MoiIiCgKNTU1GDhwYMjbmewAyM7OBtDzxTKbzRqvhoiIiETYbDaUl5d7X8dDYbIDeC9dmc1mJjtEREQJJlIJiqYFykuWLIFOp/N7Kykp8d4uSRKWLFmCsrIymEwmXHrppThw4IDffTgcDsyfPx8FBQXIzMzEjBkzcOTIkb5+KkRERBSnND+NNXz4cNTV1Xnfqqurvbc99dRTePrpp7Fq1Srs2bMHJSUlmDx5MlpbW70xCxcuxMaNG7Fhwwbs3LkTdrsdV155JVwulxZPh4iIiOKM5pexUlJS/HZzPCRJwjPPPINHHnkE1157LQDg5ZdfRnFxMV599VXceeedaGlpwUsvvYRXXnkFkyZNAgCsX78e5eXl2Lp1K6ZOnRr0MR0OBxwOh/d9m82mwjMjIiKieKD5zs63336LsrIyDB48GDfeeCO+//57AMChQ4dQX1+PKVOmeGONRiPGjx+P3bt3AwCqqqrQ1dXlF1NWVobKykpvTDArVqyAxWLxvvEkFhERUfLSNNm56KKL8Oc//xkffPABXnzxRdTX12PMmDFoampCfX09AKC4uNjvc4qLi7231dfXIy0tDbm5uSFjgnnooYfQ0tLifaupqVH4mREREVG80PQy1rRp07z/P2LECIwePRpnnHEGXn75ZVx88cUAeldYS5IUseo6UozRaITRaIxh5URERJQoNL+M5SszMxMjRozAt99+663jCdyhaWho8O72lJSUwOl0wmq1howhIiKi/i2ukh2Hw4GvvvoKpaWlGDx4MEpKSrBlyxbv7U6nE9u3b8eYMWMAAKNGjUJqaqpfTF1dHfbv3++NISIiov5N08tYixcvxvTp0zFo0CA0NDRg2bJlsNlsmD17NnQ6HRYuXIjly5djyJAhGDJkCJYvX46MjAzcfPPNAACLxYLbb78dixYtQn5+PvLy8rB48WKMGDHCezqLiIiI+jdNk50jR47gpptuwvHjx1FYWIiLL74Yn376KSoqKgAADzzwADo6OnD33XfDarXioosuwocffujXFnrlypVISUnBrFmz0NHRgYkTJ2LdunUwGAxaPS0iIooDLklCtaMNTa4u5BtSMcKYCQOHPfdLOkmSJK0XoTWbzQaLxYKWlhaOiyAiSgI72pux6kQtGl1d3o8VGlJxT14ZxmXkaLcwUpTo63dc1ewQERHFakd7Mx5rPOyX6ABAo6sLjzUexo72Zm0WRpphskNEREnDJUlYdaI2bMyqE7Vw8aJGv8Jkh4iIkka1o63Xjk6gRlcXqh1tfbQiigdMdoiIKGk0RUh05MZRcmCyQ0RESSPfkKpoHCUHJjtERJQ0RhgzURghkSk8eQyd+g8mO0RElDQMOh3uySsLG3NPXhn77fQzTHaIiCipjMvIwdLCil47PIWGVCwtrGCfnX5I0w7KREREahiXkYOxJgs7KBMAJjtERJSkDDodzkvP0noZFAd4GYuIiIiSGpMdIiIiSmpMdoiIiCipMdkhIiKipMZkh4iIiJIakx0iIiJKakx2iIiIKKkx2SEiIqKkxmSHiIiIkhqTHSIiIkpqTHaIiIgoqTHZISIioqTGZIeIiIiSGpMdIiIiSmpMdoiIiCipMdkhIiKipMZkh4iIiJIakx0iIiJKakx2iIiIKKkx2SEiIqKkxmSHiIiIkhqTHSIiIkpqTHaIiIgoqcVNsrNixQrodDosXLjQ+7Fbb70VOp3O7+3iiy/2+zyHw4H58+ejoKAAmZmZmDFjBo4cOdLHqyciIqJ4FRfJzp49e/DCCy9g5MiRvW67/PLLUVdX5337+9//7nf7woULsXHjRmzYsAE7d+6E3W7HlVdeCZfL1VfLJyIiojimebJjt9txyy234MUXX0Rubm6v241GI0pKSrxveXl53ttaWlrw0ksv4fe//z0mTZqE888/H+vXr0d1dTW2bt3al0+DiIiI4pTmyc68efNwxRVXYNKkSUFv37ZtG4qKijB06FD88pe/RENDg/e2qqoqdHV1YcqUKd6PlZWVobKyErt37w75mA6HAzabze+NiIiIklOKlg++YcMGfPbZZ9izZ0/Q26dNm4aZM2eioqIChw4dwm9+8xtMmDABVVVVMBqNqK+vR1paWq8doeLiYtTX14d83BUrVmDp0qWKPhciIiKKT5olOzU1NViwYAE+/PBDpKenB4254YYbvP9fWVmJCy64ABUVFXj33Xdx7bXXhrxvSZKg0+lC3v7QQw/h/vvv975vs9lQXl4exbMgIiKieKdZslNVVYWGhgaMGjXK+zGXy4UdO3Zg1apVcDgcMBgMfp9TWlqKiooKfPvttwCAkpISOJ1OWK1Wv92dhoYGjBkzJuRjG41GGI1GhZ8RERERxSPNanYmTpyI6upq7Nu3z/t2wQUX4JZbbsG+fft6JToA0NTUhJqaGpSWlgIARo0ahdTUVGzZssUbU1dXh/3794dNdoiIiKj/0GxnJzs7G5WVlX4fy8zMRH5+PiorK2G327FkyRJcd911KC0txQ8//ICHH34YBQUFuOaaawAAFosFt99+OxYtWoT8/Hzk5eVh8eLFGDFiRMiCZyIiIupfNC1QDsdgMKC6uhp//vOf0dzcjNLSUlx22WV4/fXXkZ2d7Y1buXIlUlJSMGvWLHR0dGDixIlYt25d0J0hIiIi6n90kiRJWi9CazabDRaLBS0tLTCbzVovh4iIFOCSJFQ72tDk6kK+IRUjjJkwhDm8QolH9PU7bnd2iIiIorWjvRmrTtSi0dXl/VihIRX35JVhXEaOdgsjTWjeVJCIiOKP0+3Gm7ZGPHviCN60NcLpdmu9JGE72pvxWONhv0QHABpdXXis8TB2tDdrszDSDHd2iIjIzxprLd6wNcI3vVltrcVMcyHm5pZpti4RLknCqhO1YWNWnajFWJOFl7T6Ee7sEBGR1xprLV4PSHQAwA3gdVsj1ljDJxJaq3a09drRCdTo6kK1o62PVkTxgMkOEREB6Ll09YatMWzMG3F+SaspQqIjN46SA5MdIiICAGyyN/Xa0QnkPhkXr/INqYrGUXJgskNERACAGmenonFaGGHMRGGERKbw5DF06j+Y7BAREQCgydWtaJwWDDod7skLX0R9T14Zi5P7GSY7REQEAMgX7DwvGqeVcRk5WFpY0WuHp9CQiqWFFeyz0w/x6DkREQEAytNMQJtVLC7OjcvIwViThR2UCQCTHSIiOmlGVj5WW2vDFinrT8YlAoNOh/PSs7ReBsUBXsYiIiIAQJpej5nmwrAxM82FSNPzpYMSC3d2iIjIy9MhObCDsh5IiA7KRMEw2SEiigPxNKF7bm4Z5lhKsMnehKPdDgxIMWJGVn6f7ejE09eCkgOTHSIijcXjhO40vR7XR7ikpYZ4/FpQ4tNJkiRpvQit2Ww2WCwWtLS0wGw2a70cIlKZ0+3WbNcikGdCdyiPFQxCjiG1X+xyRPpa8Ng4BRJ9/ebODhH1K/E00VtkQvd/Hf/Rb63JusvBaeWkJpbUE1G/EW8TvUUmdAeutdHVhccaD2NHe7Nq69ICp5WTmpjsEFG/EI8TvWOZvL3qRC1cSVSFwGnlpCYmO0TUL8TjRO9YJm/H2y6HS5Kwr9OOj9qs2Ndpl52IcVo5qYk1O0TULxztdigapwTPhO5Il29CUXOXQ04RtxInqES+FpxWTtHizg4R9QsDUoyKxilBZEJ3OGrtcqyx1mJaTTWet9bi7dYmPH/y/WA1TZ4TVIFJitzaIk4rJzUx2SGifuHyjFxF45QSakJ3pF/Oau1yyCniFj1BJXpJi9PKSS28jEVE/cL77ZGneXvi+rqZXrAJ3c2ubiw9HrrnjBq7HKJF3HMsJUjT62WdoBIdyMlp5aQGJjtE1C/0Zc1ONE0Lg03o1uvQp92E5RRxX28uVO0EFaeVk9KY7BBRv9BXNTtKNi3s612OGmenrDieoKJEwZodIlKV0+3Gm7ZGPHviCN7s4z42vmZk5Uf8hac/GReteGtaKFeTq1tWnOcEVTg8QUXxgDs7RKSaeBrNkKbXY6a5EK+HqUmZaS6MekaW3HoXEX09FDPfYJAV5zlBFW6eFU9QUTzgzg4RqSIedznm5pbhBnNhr198egA3xJiAKd20UKkj3XKUp5lkx/EEFSUC7uwQkeLU2OVQytzcMsyxlCg+9VzJAmithmLOyMrHamtt2KQt2KU+nqCieMedHSJSXDyOZvCVptfjenMhFuQNxPUxXLrypWQBtFZDMT2X+sKJ5VIfkVa4s0NEiovH0Qxqi3ZXJBgth2J6LuUF1lrpgZC1Vn1dW0QkF5MdIlJcPI5mUJuSBdBaH+mWc6nPU1sUyFNbtLQQTHhIc3GzF7lixQrodDosXLjQ+zFJkrBkyRKUlZXBZDLh0ksvxYEDB/w+z+FwYP78+SgoKEBmZiZmzJiBI0eO9PHqichXXxzzjkdzc8sw1mQOettYk1m4ADoejnSLXOpTelwEkVriItnZs2cPXnjhBYwcOdLv40899RSefvpprFq1Cnv27EFJSQkmT56M1tZWb8zChQuxceNGbNiwATt37oTdbseVV14Jl8vV10+DiE7qr7UfO9qbsavDFvS2XR02RYdi3p1bimpHGz5qs2Jfp12ThEKr2iIiuTT/TWO323HLLbfgxRdfRG7uqQF8kiThmWeewSOPPIJrr70WlZWVePnll9He3o5XX30VANDS0oKXXnoJv//97zFp0iScf/75WL9+Paqrq7F161atnhIRQd1j3vEo1l0OlyRhX6fdm7yMNVlCHum+wVyIP1jrcN+x77Ds+I+479h3uOnoV6ocRw9Hy9oiIjk0r9mZN28errjiCkyaNAnLli3zfvzQoUOor6/HlClTvB8zGo0YP348du/ejTvvvBNVVVXo6uryiykrK0NlZSV2796NqVOnBn1Mh8MBh+NUYaTNFvwvMSKKjVrHvONRLEMxwxX4vjbgbKEBoVrUyGhdW0QkStNkZ8OGDfjss8+wZ8+eXrfV19cDAIqLi/0+XlxcjMOHD3tj0tLS/HaEPDGezw9mxYoVWLp0aazLJyIBntqPZBftLkfkAt9TjflckoSbjn4V9v7V6L8Tiqe2KFySx3ERFA80+/OqpqYGCxYswPr165Genh4yThfwD1aSpF4fCxQp5qGHHkJLS4v3raamRt7iiYgCRLPLIffSV7zVyIjUFvXFuAh7dzcePXYIc2q/xqPHDsHeLTbji/oPzZKdqqoqNDQ0YNSoUUhJSUFKSgq2b9+O//t//y9SUlK8OzqBOzQNDQ3e20pKSuB0OmG1WkPGBGM0GmE2m/3eiIhiEc0JKrnJSzzWyGg9LuKuuoOYfvQAdnXacKjLgV2dNkw/egB31R1U9XEpsWiW7EycOBHV1dXYt2+f9+2CCy7ALbfcgn379uH0009HSUkJtmzZ4v0cp9OJ7du3Y8yYMQCAUaNGITU11S+mrq4O+/fv98YQEfWFaHY55CYv8VojMy4jB68NOBsri8/AowWDsLL4DLw24Ow+SXS+dnYEve1rZwcTHvLSrGYnOzsblZWVfh/LzMxEfn6+9+MLFy7E8uXLMWTIEAwZMgTLly9HRkYGbr75ZgCAxWLB7bffjkWLFiE/Px95eXlYvHgxRowYgUmTJvX5cyKi/q1nlwPC3YTlJi/xXCNj0Ol6FV6ryd7dHTLR8fja2QF7dzeyUjQ/i9NvOd3uuDigENc/AQ888AA6Ojpw9913w2q14qKLLsKHH36I7Oxsb8zKlSuRkpKCWbNmoaOjAxMnTsS6detgMBg0XDkR9VdyhmLKTV48u0fBCpo9+qJGJh482SRWa/lkUw2WFQ9WeTUUzBprba+xI6uttSHHjqhJJ0lsbWmz2WCxWNDS0sL6HSLqU6FOY3kEq3vhLCpgTu3XONQVebba4FQj/rdsWB+siHytsdaGHZ2iVK8t0dfvuN7ZISIS4ZIkoZ2UeCT30pfnc0R3j5JVmcEolOyUGZJn/lqicLrdeCNMogP0DJqdYynps0taTHaIKKElwy5HNMlLX9fIxJtf55dj+tEDQnHUtzbZm/wuXQXjPhnXVz24mOwQUcJKponbSiUvibzLJUdWSgqGpZnCFikPSzOxOFkDR7sj77jJiVMCfwqIKCGJNuTrq27C8SAZdrnkWF06NOTx82FpJqwuHarBqmhAitilQ9E4JTDZIaKEFMssqngU646M1rtc9u5uPNlUg1qXA2UGI36dX94nuyqrS4dq9tgU3IysfKy21oa9lKU/GddX+NNARAkpHrsJR3K0vR3/p/HfcECCETr8qfBMDMjIiGpHxjc5ytWn4DmFd7k6XC680FyHI90ODEwx4o6cUphCtPQI3F051OXA9KMH+mx3JSslhcfL40iaXo+Z5sKwp7Fmmgv7tN8Okx0iSkjx2k04lEmH/wWXz/udkPCzxm+hB4L+BRxuRyZYchSJnF2uRxsOYVeHzfv+Xtjxtr0JY01mLCvyTypEuhjzclL/4zlWHthnRw9o0meHyQ4RJaR47iYcKDDR8RXp1ErgjkykvjzhiOxyBSY6vnZ12PBowyFvwsMuxhTO3NwyzLGUxEUHZc1mYxERxSJeJm5HcrS9PWSiI8J3EKhIUXY4OfrwCUeHyxUy0fHY1WFDh6vnGa04/qPQ44rGUfJJ0+txvbkQC/IG4vo+vnTli8kOESUsrSdui/g/jf+O+T48OzIiRdnhREr7XmiuE7ofT9z33Z1C8aJxRGrhviIRJbR47ybsQOwTeTx1R7EWW1vd3WFvPyLY98QTZ9anoF5gTeYIO0pEauPODhElPE9DvomZuTgvPStuEh0AMEbcTwnPt+4o1mLrSJ8/ULDviSfulmyx7reicURqYbJDRAnPJUnY12nHR21W7Ou0wxVH843/VHhmTJ/vW3fkKcqOhkix9h05pUL35Ymrd4vtNInGEamFe4tElNDivWvwgIwMGICwRcp69Oy6RHoOnqLsaE5jiRRrmwwGjDWZwxYpjzWZvf126lxOoccWjSNSC5MdIoo7ot2Ete4aLGprxbkhj58bTt4u+pxDTUk36w2wuWM599VjWdHgkMfPA/vsxONYAKJgdJIUR/u9GrHZbLBYLGhpaYHZbNZ6OUT9muhOjUuScNPRryL22XltwNlxU8MTqoNyNAI7KK9oqsFxBb8WIh2UnW43ptVURxwL8F75CM2OHFNyE3395s4OEcUNOTs1iTgba0BGBt6rGBn0NqfbLav5mu+U9H2d9rCJDiD/a2EyGLAgf2DYmL4eCyD3a0TkwWSHiOKC3CnmiTgbK5Q11tpebfVXW2uF2+pr+bXoq7EAsX6NqH9jskNEcUHuTk2izcYCgu9M/G9LfdCdETfg/XikF3OtvxZzc8sw21wsPDhUrjXW2pi/RtS/Mdkhorggd3finLSMkEM0PfQn4+JBsJ2JP1hrI7YcfMPWiDmWkrCXa7SeExZYZ7UXduzqsClyIs7pduONMJfJALGvEfVv/Mkgorggd3fiS2d7xCGa7pNxWvPsTASuV+R0iBs9l2vC9RDSck6Yp84qMNHy1FntaG8O+nmivZE22ZuEvs+b7E3yF0/9Bnd2iCguyN2dSJSaHZGdiUjetjfh7ZMv5qF6CIU6kq5mzyG5dVYecnojHRUcYSEaR/0Tkx0iigsiDfN8dye0rlMJx/dY+P7Otog7E3KE6yHU13PCROusNrYeR64hBfmGVDS7urH0uHhvJPbyISUw2SGiuCFnd0LrOpVQgu1aqCHYjgngfyRdbaK7Zs9bT+3+RKqdCHxeM7LysdpaG7E2a0ZWvtBaqH9iskNEcUV0d0JkJ+ju3NI+nYYeqk+QGgJ3TKJ9biLNA0OJZtcs0i5XYD+gvu7lQ8mJyQ4RxR3R3YlwO0ETMnPwB2tdXNWvKM13xySa5xY4FmIv7Hjb3tRrLEQoZ6WaZK1XVOCO0dzcMhzpcoQcYcFj5xQJkx0iSmjBdoLk1oUoQaR+RU1yn1uo+VcAsKvDhkcbDkVMeN5tOxHNUiMK3DHa0d4cdq072pvjYgYaxS8mO0SU8Hx3gjwzs8IJVe8SC61PfXk813QUmToDmt3dIS9vdbhcYSebAz1JxKvWejRK3SFHM6hxAiqwziraE19EvpjsEFFSUWNmlshMpnjp1Hzc3Y3FDd973y8wpGJ+wOWtF5rrhO7rRdsx7/8HG82gxgmowH5AiTgDjeIPkx0iSipK998RnckkcjpMC8eDXN46EsWOTLDRDCInpUIJ7H4dquYoUfopUXxjskNESUXJ/jtyZjIZdDoMTTOhsUPei24KgG5ZnxGd3zcd8V7qGZhixF7Yo7of39EMaXo9hqaZ8LWzQ/b9/KZgEHIMqRFPysVzPyVKHDyrR0RJRfSEUKQ40ZlMTrfbG/9JhDoYABidnoXBqUaMTTdj84Dh+E1hhdB6Y2Vzu7CvsyfBuSOnNOr78R3N4HS7cVBmolNoSMXSwgpcmpmL89KzMPHkf0PV23h2zCLdZ1/3U6LEwp0dIkp4gR2LRbzbdgLXmwtD3i5nJtP15kKheAD4D5PZ73HHpQQ/Pq+Gf3XaMcqUDZPBgLEmc8Qi5VA8hcmiz/nqrHxUpmdG1Q9IbmdtomA03dlZvXo1Ro4cCbPZDLPZjNGjR+O9997z3n7rrbdCp9P5vV188cV+9+FwODB//nwUFBQgMzMTM2bMwJEjR/r6qRCRRna0N+Omo1/hvmPfYdnxH70zpCI50tUZ9na5M5limeE0LiMHrw04GyuLz8CjBYMwT6W+Mb6jNpcVDcZYkzmq+/EUJkf6Gp56XCniDk44Pf2UKnrt8Hh2iXjsnCLRdGdn4MCBePLJJ3HmmWcCAF5++WVcddVV+PzzzzF8+HAAwOWXX461a9d6PyctLc3vPhYuXIjNmzdjw4YNyM/Px6JFi3DllVeiqqoKBsEuoESUmGLpWKxD+BdduTOZYp3hFHh8/i+2xrA7PQX6FPy6YBCa3d1o6u7CaoETVucHnFZaVjTYr4NymT4V77RbhUczRPoaeojGhdPXc78ouWia7EyfPt3v/SeeeAKrV6/Gp59+6k12jEYjSkpKgn5+S0sLXnrpJbzyyiuYNGkSAGD9+vUoLy/H1q1bMXXqVHWfABHFRORIdyixdiweGqFmR+5MplhnOAV+LebmlOK/mn4MeV/z8wdglCkbQM/X4v/ZGmBzu0LGm/UGnBvkaLbJYMCC/IGn3remCI9mGJaWASDyTlpPXOz6cu4XJZe4qdlxuVx444030NbWhtGjR3s/vm3bNhQVFSEnJwfjx4/HE088gaKiIgBAVVUVurq6MGXKFG98WVkZKisrsXv37pDJjsPhgMNxaivZZovuujURRU/0SHcosXYsjjSLXO5MplhmOAX7WujRMwrhoLMj6MiLsSYL9nXavbsc9+UNDNo12mNR/kChXRDP1z7YegK/N8Wp/jvtoYjGEalF82Snuroao0ePRmdnJ7KysrBx40acc845AIBp06Zh5syZqKiowKFDh/Cb3/wGEyZMQFVVFYxGI+rr65GWlobc3Fy/+ywuLkZ9fX3Ix1yxYgWWLl2q6vMiotDkHOkOJda+Kha98pe5IyUKszILcNuRr9Hk7kK+PhW/Lzodf2k7HvJrsavDhpnZBRiTYfG7dLOrowU3Hf2qVxJ0g7kQH9mtOO4+dZi9QJ+C+fkDZNW1zM0twxxLScRdtxHGTJj1hog7SjwpRVrTSZIkRQ5Tj9PpxI8//ojm5ma89dZb+NOf/oTt27d7Ex5fdXV1qKiowIYNG3Dttdfi1VdfxW233ea3SwMAkydPxhlnnIE1a9YEfcxgOzvl5eVoaWmB2RxdwR4RiXG63ZhWUx3xcs975SPCXtL6rKMVi3w6Bcv1P0Wney8DhVrn5TXVCPcLUgfg/SDrDHZ57qajX+GEW35HncCvRaQ6pccE+9cowSVJuPbIgYjJzl8HDmdtDanCZrPBYrFEfP3WvM9OWloazjzzTFxwwQVYsWIFzj33XDz77LNBY0tLS1FRUYFvv/0WAFBSUgKn0wmr1eoX19DQgOLi4pCPaTQavSfAPG9E1DfkHOkOJ9a/0iK99L7dejziY0gn4wKl6fW43lyIBXkDcb25MOpEB/D/WojUKf3BWocRxsyYTj+Jqna0hU10gJ7+PtUOsXYARGrRPNkJJElSr50aj6amJtTU1KC0tKch1qhRo5CamootW7Z4Y+rq6rB//36MGTOmT9ZLRPLEckTbV3OUyYOHNcLnfyH4Ah0p7oTTGXWi4+H5WsiZE9UXOMqBEoWmNTsPP/wwpk2bhvLycrS2tmLDhg3Ytm0b3n//fdjtdixZsgTXXXcdSktL8cMPP+Dhhx9GQUEBrrnmGgCAxWLB7bffjkWLFiE/Px95eXlYvHgxRowY4T2dRUTxJdYj2h6xjgeI9PkmndjfgpHiYrnU5uH5WogmDe+2NmF7e7PsE25ycZQDJQpNk51jx47h5z//Oerq6mCxWDBy5Ei8//77mDx5Mjo6OlBdXY0///nPaG5uRmlpKS677DK8/vrryM4+dZ195cqVSElJwaxZs9DR0YGJEydi3bp17LFDFKdiPaLtEcvgTZHxAqcZxE4QRYprcse2q+H7tRBNGra2N3v/X84JN7lEvgcc5UDxQNNk56WXXgp5m8lkwgcffBDxPtLT0/Hcc8/hueeeU3JpRKQSkSPaV2fl4/HGw6h1OVBmMOLX+eXISvH/dSUyRiAUkfEChwQvt0WKy9enotUlf8q4h+9x9WgSPDkn3OQy6HRIi/B1TNPpWJxMmou7mh0iSi5Otxtv2hrx7IkjePPk4My5uWW4wVzY6xeQHkCePgV/tTdhV6cNh7oc2NVpw/SjB3BX3cFe9x1ujMCwtOBNA8eazELHsDsFS6Ajxf2+6HSh+wlMB/QAbgjYkfEkeNHwHVqqFHt3N452O8PGHO12wt7dF3PdiULTvM8OESWvSI0DA3u5bGltwsEQOyVfOztwV91BrC4d6vfxYGMEdre34I0gp6SAnt41a6y1EXc58vRivx4jxeWlpSFPnxK2SDlPn4LXBpwt1E26J8GTPzjUd2ipUp5sqhGOW1Y8WLHHJZKLyQ5RDHynbSfqrB61noNo40DPi6+9uxvPW8Mfq/7a2QF7d3fQS1qeMQJOtxuLjn0X9n7esDVijqUkbOHu2WkmbBY41HR2iB0kX2+VD8d1NQeCJjx5+hS8Vd4zHkc0EQlM8La1NWOnwARz0ZNwoo4KDgIVjSNSC5MdoijtaG/u9de1p5V/okxhVus5ON1uvBGmJgfonXAotUsgp49PuOSiJUL/GLlxk7NygyZ/k7Nyg0RH5pvgWV3dQsmO6Ek4caJJcWL9AUDJhzU7RFHwdLENvIzQ6OrCY42HscPnNEy8UvM5RNM4sFawiDdSnFJ9fL4T3I0QiQu1ywX07HKtibCjFcmMrPyIv8xFTrjJNTxdbMCnaByRWpjsEMkk0sV21YlauLSdxBKW2s8hmoSjzCC26xApTqk+Ph2COzaR4kR3uWIpHvaccAsn1BDSWJwmcAlPThyRWpjsEMkUb11so6H2c4gm4fh1frnQ50SKU2qXo0Cwp02kOKXGY0QyN7cMY03BR9+MNZlV6bOj1Y4SkVxMdohkSoYW+Wo/h2heBLNSUkIeF/cYlmbqVZwM9OxU7eu046M2K750tuO67IKw9yOyy3G2YCO8SHFKXVaLZEd7M3aFqNvZ1WFT5dKqVjtKRHKxQJlIpmRokR/LcxA5vSXSODDYi+Dq0qG4q+4gvnZ29IoflmbqdewcCF1kPdZkxu4Om18XHB2AWYLdhAtTxL5GkeKUuqwWjuhlybEmi/BJO9FTenNzy/CvTnvI75kaO0pEcjHZIZIpGVrkR/sc5Jze8rzIBfbZ0QNhxxesLh0Ke3c3nmyqCdtB2bOeYB2UG11daOzoQrbegFafmpp8QyrOMYoVy4pWK0WKU2o8RjhyLkt6TnCFI+f7vMZaGzTRAXpaBYj0NCJSG/cWiWQS6WIrMo5AS9E8h2hOb83NLcN75SMwL7cMV2fnY97J9yO9+GWlpGBZ8WD8b9kwLCseHPLSVaTdjNaA4uHjMk6aiU5VjxTXF5d6lLwsKef73BfF10RKYLJDFAXPmIKCgO65BfoULC2sSIg+O+FGLQQ+h1hOb6Xp9bjeXIgFeQNxveCLum8Nzr5Oe9D7FdnNkLtWX0pergw3HiNwJEQ0lFqr3O9zXxVfE8WKl7GIYhG4exPHuznBBBu1EKw2Q+nLJOGIXkKJpQBcZK1KX64MNh4j1EgIuZRaq9zvc18VXxPFKupkp7m5Gf/85z/R0NAAd8AW5S9+8YuYF0YUz0LVingukywtRELs7ojqqxNo4WpwAr+usRaAR1qryFR1uZcrPbtcSjPodJiQmRO2IHxCZk7Etcr9PvdF8TWREqJKdjZv3oxbbrkFbW1tyM7Ohs7nH5BOp2OyQ0lNjZMvWhHdRemLE2hyv64iuxnhWF3d+KjNGvakkWfo5nMnanE8jseCuCQJH7c1h435uK0Zv8wpDfszKff7fHlGbsR5Zp64QMkwV44SR1TJzqJFizBnzhwsX74cGRlsA079S19e0lGTnF2UEcZMmHR6dEihKzRMOn1MJ9Dkfl1Fdl5C0QN+L9IRk5eA+h4pzrpjK/UzKfdy2PvtVqH1vd9u9dvRSoa5cpRYorpYfPToUdx7771MdKhfSoamgnILUV2SFDbRAYAOyR3TiIy+/LoGPpNQJ8o8CeHxgBNXx93dcTUDTamvndxTejUhjpwH8o1LhrlylHiiSnamTp2KvXv3Kr0WooQQL00FRU4shSJ3XMRfIxwv9hCNCyZHL7bR7IkTSdiCnX4KJzDBU3p+2LHOTlz7435MOfwvXPvjfhzrFBs2GomSP5NyTuk1ucTmh3nikmGuHCWmqC5jXXHFFfjVr36FL7/8EiNGjEBqqv8/ihkzZiiyOKJ4FA9NBWO9DCB3JyDUGIJAuzpsuDGnWCg2kGi1hidOJGFzA5iXW4ZcQwqsru6I9SW+l3qUvlw57fAX6PRpQWiVXLjx2DdIhw7vVYyM+PnhKP0zKXpKL98g9hLiiUuWS8CUeKJKdn75y18CAB5//PFet+l0OrgEs32iRKTGKR055NTahBIvu1O+rIJN/DxxoglbriEFEzNz8VGbWH2J534bu51C8SJxgYmOr05ImHb4i5gSHjV+Jg06XcSEozwtHRCYFVuelg4gOS4BU2KK6jKW2+0O+cZEh/oDOVv9SlLqMoBnJyAc352AUNO0A4nGBZMh+OvIEyc3YZMb3+IW+10WKe5YZ2fIRMejE1LMl7S0+JmUO/A1S/B7LBpHJIpNBYmiJLrVryTRywAbW48j15ASck1ydwKuNRfijy31Edd3bQw9ZN5pFeuy+05rE0ZnWmRfuhlhzIRZb4AtTHJi1hu88Ra9QWg9keLuavi30P3c1fBv/HVQpVBsKOMycnBxulmVxoXByB34ulvwcujuDhsuyrQoskYiIIZkZ/v27fif//kffPXVV9DpdDj77LPxq1/9Cj/5yU+UXB9RXBPZ6leS6Pa+yLFqTw+ZeDkCXOcWu2zkiVP7cqJSuxB2SWyHSDQunGC1XH+xNar6/ZQz8LXWJfY9Fo0jEhVVur9+/XpMmjQJGRkZuPfee3HPPffAZDJh4sSJePXVV5VeIxGdFE0NTbgjveMycvDagLOxsvgMPFowCCuLz8BrA87u9cIoOtsolhlIZQaxLru+cXIu3VQ72sLu6gCAze3ynkB7p+2E0HoixWXpxHaIQsU53W68aWvEsyeO4M0wQzW1PNItOvB1oGAnZdE4IlE6KYruWGeffTbuuOMO3HfffX4ff/rpp/Hiiy/iq6++UmyBfcFms8FisaClpQVmc/Q1B0Rqc0kSbjr6VVRdgwsNqXhtwNlR7XQ8e+II3ha4zHR1dj4W5A2Uff8AYO/uxvSjByLGbR4wvNcUdJFuvB+1WbHs+I8R7//RgkGYmJmLObVf41BX5JlOg1ON+N+yYSFvP9bZiRuPfRPxfjYUn4Xi9HS/j62x1grtmIj8XMTy/VdKh8uFnx7ZHzHu7wMrYTKIJYnUv4m+fke1s/P9999j+vTpvT4+Y8YMHDp0KJq7JCIBIk3fQml0dWHViaMRdwiCiWUGkmg/oKyUFAxLM4W9/2Fppl6JDnDqcuLEzFxvd+VAcguUo9lpCqY4PR3pEQ7Wp0MXNNF5PSDRAXqO079ua8Qan0uVcvsmacVkMEQsYh9rMjPRIcVFleyUl5fjo48+6vXxjz76COXl5TEviohC6ymMjm4H8m17E95ubcLz1lpMq6n2e8EM54rMvKjidrQ346ajX+G+Y99h2fEfcd+x73DT0a9CXlJZXTo0ZMIzLM2E1aVDhdYRjNwTaPfnDhC6X5G49ypGhkx4gvXZcbrdeCNCg8Y3fBLWRDrSvaxocMif37EmM5YVDe7jFVF/EPVsrHvvvRf79u3DmDFjoNPpsHPnTqxbtw7PPvus0mskIh9rrLXCTf7C8ewQAOhVWxHomy6xsQDfdHXgPENPwXa0/YBWlw6FvbsbTzbVoNblQJnBiF/nlwfd0ZFDbkHzx50tQvf7cWcLrk+LfArtvYqRONbZibsa/g275EKWzoDVRWf22tEBemqfIu27uU/GXW8ujMu+SeEsKxqMDpcLLzTX4Ui3AwNTjLgjp5Q7OqSaqH573HXXXSgpKcHvf/97/OUvfwHQU8fz+uuv46qrrlJ0gUR0ishf/HK9YWvEHEtJ2OPJcncOYp0Mn5WSgmXFyv+FL+cE2tHuyPU6cuKAnktaIsfLj3SJ9dzxxJ2VGv7yn4doXF8wGQxYkB9dfReRXFH/qXTNNdfgmmuuUXItRAlHpDBWSSJ/8cvlu0MQitydg3gZCxDs+yPaHymWOqVY6QSHZ3ji3hU8OfZCcx0q0zP75GeVKJ6wqSBRlGKdTxUNObsISt7vOWk9fYvDJVr6k3GAsqMWohXp+xMpyfpJWjaeF3icn6Rlx7jS3iIVagfGif5cvG1vwtsn2wNo1U+JSAvCBcp5eXk4fvw4ACA3Nxd5eXkh34iSnVY9TdTYRRC53y+d7UI1JF862wEoN2ohWkp8f359/AehxxKNk6M4Vez77ImL5ueiL/rvEMUL4Z2dlStXIjs72/v/Om5/Uj8Vaz1KLGZk5WO1tVbRS1m+s4tCkVuzo9SohWgo9f1pcgs+Z8E4OeTupMXyc6HWzypRPBFOdmbPnu39/1tvvVWNtRAlBC3rUURmEcnlO7soFLk1O4UpaULxonFyKDU/LENnQKsUOX3IEOyQDPQUmIvMrZKzk3ZeehbS9HqMNpmjOqXXF7VTRFqLqs/OZ599hurqau/7f/vb33D11Vfj4YcfhtMpfg1+9erVGDlyJMxmM8xmM0aPHo333nvPe7skSViyZAnKyspgMplw6aWX4sAB/w6rDocD8+fPR0FBATIzMzFjxgwcOXIkmqdFJETrepS5uWUxTRf30AO4IaATbyhyT/vI7WmjJDnzw8L1/rlBsLeQaNyak72NnrfWRux1dKxL7GfHE+eSJBx0irUHCCYe+u8QqSmqZOfOO+/EwYMHAfR0U77hhhuQkZGBN954Aw888IDw/QwcOBBPPvkk9u7di71792LChAm46qqrvAnNU089haeffhqrVq3Cnj17UFJSgsmTJ6O1tdV7HwsXLsTGjRuxYcMG7Ny5E3a7HVdeeSVcLnVqAYjioR4l2j47V2fl95pdJNLhWPS0jydOpNNzLEM6A/nOj9rfKb9LcLD6FVeK2I6NSJycbsgA8PXJ2qdIPHEiu1nhxEv/HSK1RHUa6+DBgzjvvPMAAG+88QbGjx+PV199Fbt27cKNN96IZ555Ruh+AkdOPPHEE1i9ejU+/fRTnHPOOXjmmWfwyCOP4NprrwUAvPzyyyguLsarr76KO++8Ey0tLXjppZfwyiuvYNKkSQB6hpSWl5dj69atmDp1atDHdTgccDhOnV6w2WJv0Eb9R7zXo4RTmZ6JiZm53vdFT5RF03Omr6aqB5sfFS3f+hWlvs+i3ZB9ex1JEBtZ6ImLZWdGrR02ongS1c6OJElwn2xTvnXrVvz0pz8F0DNGwnNiSy6Xy4UNGzagra0No0ePxqFDh1BfX48pU6Z4Y4xGI8aPH4/du3cDAKqqqtDV1eUXU1ZWhsrKSm9MMCtWrIDFYvG+ccQFyRFrPYrorKhgYv0L3urq9j7utjbxE0vR9pwRnaoerVA7JtHynR+lVN2RnG7IHgNTe3dVDkYHHT5qs8Lq6haKD0apHbZYfq6J1BbVzs4FF1yAZcuWYdKkSdi+fTtWr14NADh06BCKi4tl3Vd1dTVGjx6Nzs5OZGVlYePGjTjnnHO8yUrg/RUXF+Pw4Z527/X19UhLS0Nubm6vmPr6+pCP+dBDD+H+++/3vm+z2ZjwkDBPPUqkCdPB/lqOtTdPrLUVz/tcLon0l47vLsd4oxnPI/KO0nhj71oiz5BOpanRTRo4VWsVy/fZVzS7Ypdn5Pp9r0Lx7ZsjcnrL93Yld9i06DlFJEdUyc4zzzyDW265BW+//TYeeeQRnHnmmQCAN998E2PGjJF1X2eddRb27duH5uZmvPXWW5g9eza2b9/uvT3wiLskSRGPvUeKMRqNMBrV6VdCyc+g02FCZk7YE1ETMnN6/bUc7awoX0rWVkTabfA9pfN4049C9/l40494rmxIzGtrdDgwv+E7tLi7YdGn4LmiM1AY8G9WtJv01Vn5qEzPxP7ONm9iEI6n1ira73OgaHbF3m+3Cn2Or0hfiyGp6ZibN0Dxbt9K/FwTqS2qZGfkyJF+p7E8/vu//xsGmYPc0tLSvMnSBRdcgD179uDZZ5/Fgw8+CKBn96a0tNQb39DQ4N3tKSkpgdPphNVq9dvdaWhokJ10EYlySRI+bmsOG/NxWzN+mVPqfTFRqvfLmSlilzeU4tlJOuYWPB0kGBfO9B+rYfc58t3p7sKs+q+RpdNj86AR3o8Ld5PWARMzc9HtlgBETnayTx4lj+b7HMzolEyhTsyjU07tEKnRKfubrk6clWqCScFdNi17ThHJEVXNTk1Njd/x7n/+859YuHAh/vznPyM1Nba/PCVJgsPhwODBg1FSUoItW7Z4b3M6ndi+fbs3kRk1ahRSU1P9Yurq6rB//34mO6QaOX12YvmcYF5qCX15Vg2enaRivVj9imich+8pqjdtjbji8L/8Eh1fdsmN6T+e+iNL7o5JqyR2Os4Tp9T3bP7x74Ue1zdOrU7ZLzTXKXp/Sn2NiNQW1c7OzTffjDvuuAM///nPUV9fj8mTJ2P48OFYv3496uvr8dvf/lbofh5++GFMmzYN5eXlaG1txYYNG7Bt2za8//770Ol0WLhwIZYvX44hQ4ZgyJAhWL58OTIyMnDzzTcDACwWC26//XYsWrQI+fn5yMvLw+LFizFixAjv6SwipdU5xSZS1zk7vbUqcjsQh1IjOA1bCb71KEsLKnBd3VcRP2dpQYXw/UdzisouudHocKDQaBTqGuzbHTpbJ/a3nSdOqX5KdsEkyzfuisw8oZoduY4ovGOkdc8pIlFRJTv79+/Hf/7nfwIA/vKXv6CyshK7du3Chx9+iLlz5wonO8eOHcPPf/5z1NXVwWKxYOTIkXj//fcxefJkAMADDzyAjo4O3H333bBarbjooovw4YcfesdWAD2jK1JSUjBr1ix0dHRg4sSJWLdunezLaRS7vp4A7ku0M60SdnW0Rg46GTfNXABAfgfiUNJldOuNle8pnR8FL0/96HYiD5F3dzynqKIxv+E7bCg/R6ibtG93aJFuyL5xSvVTMkCHLoGj5AafSeffdEXfIDCcgQrvGGndc4pIVFTJTldXl7fAd+vWrZgxYwYAYNiwYairE98mfemll8LertPpsGTJEixZsiRkTHp6Op577jk899xzwo9LytPyNEawHYLV1lrMFOwOLFen4F/qvnFKnewZa8rGrk51+0IF+74p+Rd8rKeoWtynjll7vr+B33890Ov7L7dvjknw5HSkuPFpmfjAaY94P+PTTn3v1epofEdOaeQgGbTsOUUkR1TJzvDhw7FmzRpcccUV2LJlC/7rv/4LAFBbW4v8/PADBSn5aHkaI9QOgaczLQDFE57y1HRUCdQglPv0SvF0FA72dfIQ6XdSmqZOgfK83LKwc6KU/Ate9BRVKBa9/6+tubllmGMpibizJ7dvziedkRMUT9wVlsKQt5+ZaRZKds7MPHVsX42OxmNNZpgU3vHWcgYakRxR7fP/7ne/wx//+EdceumluOmmm3DuuecCADZt2uS9vEX9g+hpDDUajIl2pnW6lZwRLv7XcWBcT0fhil4zowoNqVhaWCGUEHqmYSstW2fAxMxcnJeeFTThklvvEk6sJ42eKzqj18fS9Hpcby7EgryBuD7EYFO587qi2cELZkZWfsTvWeDkeZG1Bt5noSEVw9KCzzAbazJjWdHgCKuQT8sZaERyRLWzc+mll+L48eOw2Wx+R77vuOMOZGRkKLY4in9aTgCX05n2enPov7zlMhkMMAAI9xJnOBkXaFxGDsaaLFHXNolMw47G1852TEXogZZy613CieWkUZZO36vfDiBWLyZ3dy2aHbxg5NYWia71kfxBOOHu7rWb1eFy4YXmOhzpdmBgihF35JQqvqMjZ51KzkAjilZUyQ4AGAyGXp2LTzvttFjXQwlGqVNG0YimM60SGh2OsIkO0JMIeU4NBYqlo7Bap1oizWJSsjZDtDtwoMA+Ox5y6sXkzOu6I6dUqAmhyE6fnNoikbVOyMzBmuY6v4//xdbofQ4L8gdGXJNS+moGGlEshJOd//iP/8BHH32E3NxcnH/++WE7FH/22WeKLI7in1KnjKIR7bymWM1v+E44bkP5OYo+tlqnWiLNYlKyNkO0O3AqenbmTNDjhaIzUWrqfYkmmnox0d01k8GAsSZz2AnzcupgRGuLIq212dWFpcd7d7TWsmNxrDuWRGoTTnauuuoq7wmsq6++Wq31UILx1JBE6nVyTprylzdFe5FckRn68kw0mt1iu1SicXKodaplQrol7O1KnSYDxHfaPI9khxs/azjYawcklu69ortry4oG49GGQ0ETnmjqYDy1RXL4rtUlSbjpaPh+R1p1LFZrBhqREoSTncceeyzo/1P/JlJD4j4Zp/QvQtFeJN90deA8g3KPnQo9HAKVM6kqlBKrdarlaetRLCsO/cJt0OkwNM2Exo7Qyc7QNJPQC2w0O23BTtf1Vb3YwFQjEORHbWBq38/X07JGjiiRxfzb2G63w2az+b1R/6FlzY5Wj31xmtjJEtE4OUROv0TjSITE0el245Mwl3MA4JMOm9DJN5HTSaH4nq4T/b5WdbTiozYr9nXaZZ8KDNf88HVbI9bIrD0KHI8h96Sglv/eiBJZVL9zDh06hCuuuAKZmZmwWCzIzc1Fbm4ucnJyehUtU3LTsmZHq8euFzySLBonh+f0i9I6I+QAck6+ReI5nRQN38cQ/b6utzVg2fEfcd+x73DjkS+xo71Z6POUbm2wxlqLaTXVeN5ai7dbm/D8yfflJExa/nuLxCVJ2NdpjzqxJFJTVKexbrnlFgDA//7v/6K4uDhssTIlNyVrORLlsdP0Yj/vonFyfeloV/w+S1PCvzgqffIt1OkkOY8h8v0PdNzdLVzEq2RrA6WaX2r57y0cLTuoE4mIKtn54osvUFVVhbPOOkvp9VCC0bLPRiyPHcscr2K92F/NonFyON3uqGdKhVPX3YU5tV+jzGDEr/PLkZXi/6tBjZNvgaeTGru6hEZheB5D5Psfyu+bjkQs4lUqwRPdIZpjKYk4zy0e+9po2UGdSFRUl7EuvPBC1NTUKL0WSlDjMnJwg7mw1w+THsAN5kJVf9FF05V4R3szbjr6Fe479p338sZNR78Svrzxg1OsMFo0To6NKiQ6AHDM3YVDXQ7s6rRh+tEDuKvuoN/t0XQBFuHb+fi3hRWyHyPU9z8Sm9uFf0UYB6FUgqfkJUBAmU7cStGygzqRHFHt7PzpT3/C3LlzcfToUVRWViI11f8f3ciRIxVZHCWGHe3NYbfozzFmqJ7wiPb4UOKv0EapO+ztcuPk2BmhSFgpXzs7cFfdQawuHQogui7AckX7GIHf//+v3YYtAonr5512/IcpO+TtM7LysdpaG7GtQqQET43ml/HS14anwyhRRJXsNDY24rvvvsNtt93m/ZhOp4MkSdDpdHC51Gl8RvEnll4nShLp8aHUWjN1BhyP2EO5J06OWC6tqeFrZwfs3d3eS1rRdAGOxOl2+zXZm2MpieoxfL//h52dQo8d6SurVIKnVvPLeOhrw9NhlCiiSnbmzJmD888/H6+99hoLlPu5RPrLTqm1XpSejcNtkS85XJQeetcgkGiB5+AUI/Y7lS9QDuXJphq//jvRdAEOZY21tldSs9pai5nmQrxXPiLqxzg3PQuv2BqE4iJRIsFTaocoHsXz6TAiX1ElO4cPH8amTZtw5plnKr0eSjCJ9JedUmtNExwPIBon59La8PRMbBYct6CEWlfvSyvRdAEOpNTppGDOS8+CWW+ALcxoDbPeIJx8x5rg9cUlQK3E6+kwokBR/euaMGEC/vWvfym9FkpAifSXXa5eLLePFDdCcPRFqDjffiSfdbTiORkFnqLPQSllBuW7BCvdvyaQQafDogiDMBflD5R1idC3kPr6BE1M1CDS94lTzykeRPWbc/r06bjvvvtQXV2NESNG9CpQnjFjhiKLo/iXSH/ZiZ4HiRR3SLCQ9FC3A/8Z8LFgl6si8b201lcFyh6/zi9X/D6V7F8TSqReRF862vvs1JKSR8/jEaeeUyKIKtmZO3cuAODxxx/vdRsLlPsXJWcmqa3ZLXY6KlJcvcspdD+BcaEuV4nwXFqrlXFiJ1bD0ky9+u0ooUbwSL5oXCCn242/REgu/tKHyUVfJHdai5fTYUShRPWbzB3l9jIlHzkzk7T+q1WpS27RNBUUOQkWTs7Jy1dpur75Gg5LM3mPnSutSfCPIdG4QBtbj0fcnZNOxt1gKRK6z1hOyqlx9DwexcPpMKJQZP3m/OlPf4qWlhbv+0888QSam5u97zc1NeGcc85RbHEU/5RumKYmkSGaal1yEzkJFo7nZXVQFBPDRaQDGJxqxNh0MzYPGK5aogMA+Qaxv7FE4wLtd7QpGhdrE0q1jp4TkThZyc4HH3wAh+PUXx+/+93vcOLECe/73d3d+Oabb5RbHcW9RPqrValiymNusaTFNy7W02jWk5fWUlSat1VgSMX/lg3DsuLBqly68lWelq5oXKB0wd0vkTjPpcfARNVzUk4k4VGr+zQRiZOV7EgBLb8D36f+p8SQpmic2pRotV+oE0sGfONiPUXlubSWLqmT7JSpMMcrFLVf/CcJFsRGilNqFILIlPdEPXpOlCj69hwrJZ0zUsX++haNiyRU7YScmopYiymjKVCO5c8Cs97gvbT2uVPs0otcYs+oR6ydntXuO5Mq+HmR4pRsmKlG92kiEicr2dHpdL26JbN7cv9mFTzhJBoXTqguwxMyc7C19QSapFMFrfk6A+4tGBhypyaWYsqj3WKpgW+c6EmwSOwqHQ5ocHXhozZrxORFtNNzJGq++CvVPLJR8PssGqdk9+l4FG/jToh8yUp2JEnCrbfeCqOxp5Cus7MTc+fORWZmz1+dvvU81D+0hOlSG01cKOG6DAfbIWiSXMKDPeVyusX2aXzjYmmqaHO7vLsHw9JMONil/DT1WncXlh3/EUDo5EWJIaq+1HrxV+pnUo2fbSW6T8cjpZJgIrXISnZmz57t9/7PfvazXjG/+MUvYlsRJRSLXmwkgmhcMLEc237yeA3Glis7hHSQ3oD9gnEe56RlQIfoL2d5diFmm4uxqe1EhOjYBEte1Br4qsaLv1I/k33xs50MlE6CidQgK9lZu3atWuugBFWYIlZ4LBoXTCzHtjskNz7vaMUFGeaoHz/QIcHTWL5x1Y62mOp2PH121tnqY7gXeXyTl0Qa+KrUz2Rf/GwnOrWSYCKlJcfFYtJMX/SuifXY9gdtyg7OrO0Sq9HwjftXpz2mx/S8THzeqU6BcjCe5AVIrIGvSv1MatmXKVHISYKJtMRkh2LSF4MAYx0i2ikpW9TrEnwqvnGxNmn4/OTg0C6Fn0sknuQlkQa+KvUzySGXkSVSEkz9G5MdipkSvWvCGRzj5O3KIH95+04e39dpj9grxdc5erH1+MadH+OlnfW2Biw7/iOOKXSqS5Tn8lmi7XIo9TOp9s92okukJJj6N/bZIUWoOQjwv08cifpzdQCuyS7w+1isJ0dGZprxT1vkE1EjM0/VCZ2bngWTTo+OPt6ZiZXnu+fZ5Qg3yDTedjmU+pnkkMvQPElwuEtZ8ZQEU//FZIcUo9YgwKPdnVF/7qyA5nRKnByJdup5qk6HjgRrOu7bQ6ZnlwMJdcRYqZ9JDrkMLhGTYOqfNL2MtWLFClx44YXIzs5GUVERrr766l6ztW699VZvM0PP28UXX+wX43A4MH/+fBQUFCAzMxMzZszAkSPR7wZQdGK5NBROpk7+0V49gBsCmtMp1f7/O4dYnxvfuGpHG2wx9hrSwleOdr/3x2Xk4LUBZ2Nl8Rl4tGAQVhafgdcGnB2XiQ71DV7qo0Sg6c7O9u3bMW/ePFx44YXo7u7GI488gilTpuDLL7/0NioEgMsvv9zv2Htamv9Rz4ULF2Lz5s3YsGED8vPzsWjRIlx55ZWoqqqCwdC/e2D0FTWbilUaM3FAoJHeeakZOC3dFLI5nVLHp0WTFt+4RC3QPB5k3dzloEC81EfxTtNk5/333/d7f+3atSgqKkJVVRXGjRvn/bjRaERJSUnQ+2hpacFLL72EV155BZMmTQIArF+/HuXl5di6dSumTp3a63McDodft2ebzabE0+m31G4qJjrrqNKUhdtzS0PertTJkVS9HhAovfFdd6IWaGbwjwXNJcoYBibBFM/i6jRWS0sLACAvL8/v49u2bUNRURGGDh2KX/7yl2hoaPDeVlVVha6uLkyZMsX7sbKyMlRWVmL37t1BH2fFihWwWCzet/LychWeTf+g1KWhcERPMkWKU+rkyBTBxM037py0jPj6xyboMlOO1kvo13a0N+Omo1/hvmPfYdnxH3Hfse9w09GvsKO9WeulESWUuPn9K0kS7r//flxyySWorKz0fnzatGn4f//v/+Hjjz/G73//e+zZswcTJkzw7szU19cjLS0Nubm5fvdXXFyM+vrg3WYfeughtLS0eN9qamrUe2JJri+aip2bnoU0hP9LNg06nBsh2VHq+PR1lqKwtweL+9LZLrIZFHdqujnvTiueHdPAf1+eHVMmPETi4uY01j333IMvvvgCO3fu9Pv4DTfc4P3/yspKXHDBBaioqMC7776La6+9NuT9SZIUciK70Wj0DjOl2NQ5xU5K1Tk7o97idkkSuiK05euCBJckhd3eV+rkiOgulW9cotbs1DLZ0QTHMBApKy52dubPn49NmzbhH//4BwYOHBg2trS0FBUVFfj2228BACUlJXA6nbBa/UcCNDQ0oLi4WLU1U49dHa2KxgWzyd4UsQOxdDIuEiVOjrzQXBcxJjAuUWt2dBF21EgdHMNApCxNd3YkScL8+fOxceNGbNu2DYMHD474OU1NTaipqUFpaU8h6qhRo5CamootW7Zg1qxZAIC6ujrs378fTz31lKrrJ6BTEjuZJBoXTI3g7pFoXKwnR2q6BNfjEzfCmAmz3hD2JFe2To/HCk9Ds7sbb7Q04huBE2hqG5pm0noJ/RLHMBApS9NkZ968eXj11Vfxt7/9DdnZ2d4aG4vFApPJBLvdjiVLluC6665DaWkpfvjhBzz88MMoKCjANddc4429/fbbsWjRIuTn5yMvLw+LFy/GiBEjvKezSD0lhjQAkf+67ImLTpNLbETCF51tePbEkZBHz33FcnIkXbDvj2ich+7kmgw6Hb7osMdFstOWYB2fkwXHMBApS9PLWKtXr0ZLSwsuvfRSlJaWet9ef/11AIDBYEB1dTWuuuoqDB06FLNnz8bQoUPxySefIDs723s/K1euxNVXX41Zs2Zh7NixyMjIwObNm9ljpw/oBOtXROOCyRf8Pv7gcuDt1iY8b63FtJpqrLGGr3mI1tgMc+SggDiRpoI2t8t7WWKMSewx1GbR89+QFhJtFhlRvNP8MlY4JpMJH3zwQcT7SU9Px3PPPYfnnntOqaWRoHpJbNdFNC6Y8jQT0GaNHOjDDeB1WyMA+HVR9oild0lpqlhxu2+c3MsS9jg5u1WYEv2OHEWPYxiIlBU3p7EoMZUJXp4SjQtmRlY+Vltro3r5f8PWiDmWkl7zsWLp9hzN8EO5lyUsUYzIUBp3DrSViLPIiOIVkx2KyRiTGZvaTgjFRStNr8fQNBO+dsqvYXGj55TW9eZCAMp0ezbodMg3pIRNdvINKX5/dctNkL4TLIJWE3cOtMcxDETKiIuj55S4mt1il6dE44Jxut04GEWi43H0ZK8Ypbo9d7hcEROvr50d6HCdqtHxXJYIxze5qOuj/jYDUtI4wDHOeYrpJ2bmegvYiUge7uz0I2rM2BHdbfna2YHeU8rEbLI3xVTBMiClp3ZGqUGgcvrsLMgP3zcqlL7qb3O024mZ2QUYk2HhzgERJS0mO/2EWlPJnV1ihbeiccEcjmFXR4+emh8AONYltltyrMsBhEl2oumzI7cj7rA+7G/zVutx/J+c0rBH9YmIEhl/u/UDas7YqRLsBfOJsw0ftVmxr9MueyjoD87oL+kMTTN5X8Tl7EKFE02fHbkdcYsFT3wpwVPXRESUrJjsJDm1p5K7BJvOWSVX1FObU2K4onLQ2QGnu2eNUsShExCKu1CwGaFvnNyj52el9m3n4qOcgUVESYzJTpJTe8ZONEMg5O4odUffj9Bv12JgarrQ50SK29NpF7of3zi5R8/fFTjhpiRPXRMRUTJispPk1J6xU6aPvuxLdEepJMYfU8+uxRWZeULxkeLaBE+W+cbJ7YjblzstvnVNRETJiMlOklN7xk5tDEfKRXeUPu1qj/oxgFO7FqKzpiLFNbvE9rOaYzh63pc7LTPNhSxOJqKkxt9wSU7tGTvuGKaZA2I7So4YRydcnpELADjW5RSKjxRnETyWHRjX0xG3QqivzYysfNX/ceoB3GAuDDpOg4gomfDoeZIz6HSYkJnjnRMVzITMnKj7qjigAwQLf4MR2VEyQo+uGBKe99utuN5ciK+dYjtEXzvbMRWhL2V1CX6tgsWJdsSNpWt0OAMMqbgwwyw0GZ6IKFkw2UlyLknCx23NYWM+bmvGL3NKo0p4jJAQ7WAD0R2li4xZ+Mhhi/JRgMOdbYC5ULHTWBbBOqVQcZ6OuOHE2jU6lHtzB+A/My2K3y8RUTzjn3VJTu3TWK1RfVYP0dlL+wVrbUJ+vrMnHVPqNJZJcDdENC6YWLtGB5MGHUZlRD+jjIgoUTHZSXKN3WJ1KqJxgaK5+CV39lJ3jHVB3e6ezxepgxE5mZSlE/tnIxoXjBqnsS40ZXMMBBH1S7yMleRa3GKJgmhcIBP0sAvsQaRDh8UF5VHNXipNSUdTDCeyjp9MltL0esw0F4atXxI5maTTi61dNC4YNU5jfdJhg9PtZp0OEfU7/K2X5LIFdxdE4wLdmCHWu+ZnGflRT21eWlARzdK8DD41OHNzy3CDubDXD76ck0klhjShxxWNC0aN01gcC0FE/RV3dpJcq+A4h2BxTrcbm+xNONrtCHl6Z3Nni9D9b+5swS0YIBQb6Ed3dJfYPNICZlnNzS3DHEtJxOemJZFdqGhwLAQR9UdMdpKcRS82tDIwbo21Fm/YGv0uUK221mJmwO5HuyTWVFA0Lphouzt7XBzkxFeaXo/rzYVR3d8xt9h6RONC8XydA78PseBYCCLqj5jsJLk8wc7IvnFrrLVBdxTcgPfjnhfiPF0KWqXIL+p5uuh/1LJjvKAzyJgR0+cHEk0YlEgsAneh9rXb8YMrut0ZjoUgov4qfvbtSRWS4DRzT5zT7cYbES6dvGFr9E4SH23MFrp/0bhgPrbHNhSzy63sIW6lTnWJ8uxCLcgbiOdKzoz6fjgWgoj6K/7mS2AuScK+Tjs+arNiX6c96FDNfwn2z/HEifR38S10/YdDrNOOaFwwOztj6eYDfBykrsjpduNNWyOePXEEb/okbyLS9HqMNoXvVzPaZFYlschKScGAFHmFzxwLQUT9HS9jJagd7c1YdaLWr2FgoSEV9+SV+fWvER3k4IkTLWD1xDkEC6BF44JxxTCOAgC63f6fL1qPFHI9khSxCWO1ow0uSVK8r41LkuCMsFtXaEjF9dkFqHM547L4moior/E3YALa0d6MxxoP9+qM3OjqwmONh7Gjvdn7MbNggbInTm49Sqdgwz/RuGAGx1j7cn76qQJlTz1SYOrlqUdaY62NeH/7Ou2wRehLZHO7sK/THsVqwxPtiD3UmIEFeQNxPS9dEREx2Uk0LknCqhPhX5BXnaj1XtLKNYht3nni+roeRcTSgsExff5duT1H3uXWI4XyeYfYZTXRODlET6bFeoKNiCiZMNlJMHJnXRUK1nd44jz9XcLxLXQV3a+JZeDD9hiGgI41mWEy9Oxaya1HCuWYYCIhGieHyJR4OXFERP0Bk50EI/cv+xHGzIiXssx6g9/08bm5ZRgbogB3rMnsV9eSrRO7TCYaF0y0jfCydHosKzq1KyS3HimUYsEEUjROjmi+n0RE/R2TnQQTzV/2rRHqSwJv39HejF0dwXdTdnXY/GqCcgV/hETjgslHdImSXXLjrrqD3veV6o9zfnqW0P2IxhERkbqY7CSYc9IyhGpqzknraaT3/9mbI55lkk7GAfJrgr4TaCgoJy6YL2MYAvq1swP27p7uzUrVI52XniW0u3KeCslOtaNNqDg60mkxIqL+hMlOgvnS2S5Ud/KlsydB+ENLndD9euLk1gT1hfoYa1+ebKoBIL8eKRSDTodF+QPDxizKH6j4sXOABcpERNFgspNg5L7Y2QWb5XniGrvFhm6KximhzBDb0fMjXZ3e/1di6jkAjMvIwdLCChQEXFYsNKRiaWGFX68jJbFAmYhIPjYVTDByX+xy9Aa0uCKfhco5eVmmJcIlEg9PXAkMqBc4a1USZd0NAPw6vxzTjx6I+vM7A5rwKTX1fFxGDsaaLKh2tKHJ1YV8QypGGDNV2dHxGGHMRKEhNezuW+HJdRARUQ/u7CQYz4tdOL4vdtcJ9sPxxMmdkn6zpUgoXjQumKyUFOTpo8/Ly4L0GvKdNxVL4z2DTofz0rMwMTMX56VnqZroeB5vQmZO2JgJmTmqr4OIKJFomuysWLECF154IbKzs1FUVISrr74a33zzjV+MJElYsmQJysrKYDKZcOmll+LAAf+/8h0OB+bPn4+CggJkZmZixowZOHLkSF8+lT5j0OlwT174Sy335JV5X+zKjCah+/XEyZ2SHs1Udbmcbjea3d1Rf355mtjXIBG4JAkftzWHjfm4rTnonDQiov5K02Rn+/btmDdvHj799FNs2bIF3d3dmDJlCtraThW/PvXUU3j66aexatUq7NmzByUlJZg8eTJaW091p124cCE2btyIDRs2YOfOnbDb7bjyyivhErh8k+xE/77XBfxXNH5Da/iOxB6iccGINAMMZ0yEoZ2JJB4LyImI4p2mNTvvv/++3/tr165FUVERqqqqMG7cOEiShGeeeQaPPPIIrr32WgDAyy+/jOLiYrz66qu488470dLSgpdeegmvvPIKJk2aBABYv349ysvLsXXrVkydOrXPn5eaRI6GP9d0FJk6A5rd3fi2Q+xF71iXAzBlyy5QrhNs1CcaF8yPjuiPngOAPaZUKb7wNBYRkXxxVbPT0tICAMjLywMAHDp0CPX19ZgyZYo3xmg0Yvz48di9ezcAoKqqCl1dXX4xZWVlqKys9MYEcjgcsNlsfm+JQuQv++Pubixu+B7Ljv+I19vCjz7w8DQR/LJTLDnyxNkEp5mLxgXznbMzclAYGVLy1K/wNBYRkXxxk+xIkoT7778fl1xyCSorKwEA9fX1AIDi4mK/2OLiYu9t9fX1SEtLQ25ubsiYQCtWrIDFYvG+lZeXK/10VKPWX+yeBOr7LrHEwhMnupouAB+1WbGv0y67nkT0hFgo77SdiOnz44ncAnUiIoqjZOeee+7BF198gddee63XbbqAkyWSJPX6WKBwMQ899BBaWlq8bzU1NdEvvI/lxHAqKZz0k1U4omlINOWvy47/iPuOfYebjn7lN3IiklRdbD+mdX3YE0htcgvUiYgoTpKd+fPnY9OmTfjHP/6BgQNPdaYtKSkBgF47NA0NDd7dnpKSEjidTlit1pAxgYxGI8xms99bolDrJaz55M6O2SB29Fw0LphGVxceazwsnPAMN2ZE/VgAkBnDENJ45GloGLjDo3ZDQyKiRKVpsiNJEu655x789a9/xccff4zBgwf73T548GCUlJRgy5Yt3o85nU5s374dY8aMAQCMGjUKqampfjF1dXXYv3+/NyaZWGM4gh1O+8m9mkiXSDxE48LxnbEVzoj02C7JXB6hL00sXJKEfZ32qC/RRWtcRg7Wlw3DvNwyXJ2dj3m5ZVhfNoyJDhFREJqexpo3bx5effVV/O1vf0N2drZ3B8discBkMkGn02HhwoVYvnw5hgwZgiFDhmD58uXIyMjAzTff7I29/fbbsWjRIuTn5yMvLw+LFy/GiBEjvKezkolFpV2KkpMjGcrTTECbNUL0qd41KQCiTb88R6QjDcwsTo1tXMQAwV5Dcu1ob8aqE7V+BeOFhlTck1emetKxo70Z/7fpKJp8kt8NLQ24N38AEx4iogCaJjurV68GAFx66aV+H1+7di1uvfVWAMADDzyAjo4O3H333bBarbjooovw4YcfIjs72xu/cuVKpKSkYNasWejo6MDEiROxbt06GGK41BKvvhMsIJZrWeFpAHomfj9vDX+03RMHIOZD3SIF1yIjEkIx6w2qFOvuaG/GY42He33cc4luaSFUSzpCPXaTu1v1xyYiSkSaJjuSwJa/TqfDkiVLsGTJkpAx6enpeO655/Dcc88puLr4VNsVfb+acDpdLlhSU4Uvw3jiYk12RI5IG3Q6DE0zobFDfrLTpcJlJZFeR6tO1GKsyaJ4obBLkvBE449hY55o/BFjByn/2EREiSouCpRJXJNLnZqduxr+DQBYdVzsZJonLpYfINEj0k63G590RNcLqUNy41+d9qg+NxQtuxjvbbfBGeEsnBMS9rYnTu8oIiK1MdlJMPkqXZqzSz29bHY5WiNEwi+uQh99obLoEelYx0V8rnCyo2UX4zfsYmM3ROOIiPoDJjsJRq2hllknC59FkwpPXGkUxcNyj0gfjWHUBKD8cX0tuxi3usS+Q6JxRET9gaY1OyTfFZl5QgXEcj1XcDoAYHhaBj51RN4JGZ7W0/tmaKoJuwXipxnNGJWdg/yTl67k1JOUGtKEY4NRukBZpGBarS7Gw9JMONjVIRRHREQ9uLOTYL4ReKGLxifdPfUljxRUCMV74r7pFltPs86NiZm5OC89S3bh7ODUdFnxgZQu1NWyi/Hc3PCPKzeOiKg/YLKTYI51qTP64Ou2nhqcNL3Yj4Qn7qjgekTjgrFJsc3GUqN2RqsuxiaDAWNN4Tt+jzWZYUrCtgtERNHiZawEUx3lqaRItjlb8SiAN1sahOLfbGnAzbklaBUc0ikaF0ys88BiHSQayriMHIw1WVDtaEOTqyuqS3TRWFY0GI82HPJOqvc11mTGsqLBQT6LiKj/YrKTYPaqcJwZADzpwJaOZqH4LR3NuDm3BFk6PawCOy9ZMQzzjDV1sOjV2+Uw6HQRO0CrYVnRYHS4XHihuQ5Huh0YmGLEHTml3NEhIgqCyU6C6Ypq3nhknqnn3W6x+/fEGQSTGNG4YGKdB1aYEluBc7wyGQxYkD8wciARUT/Hmp0EM1ivzgv3/2T3vGieK3iCyBM3TPASk2hcMLEc4VbrVBQRESUOJjsJpkGlqee/sfccZ/9JhkUo3hP3teB6ROOC8Rz1jsaEzJykHZvgdLvxpq0Rz544gjdtjXC62VuHiCgYJjsJpjnGk0mhtJ68X9GTT544t+BlNdG4YESOeofycVuz8LyvRLLGWotpNdV43lqLt1ub8PzJ99eo0IOJiCjRMdlJMBk6dQpQPXsCoieXPHF6wfJh0bhQQh31jkStGVVaWmOtxeu2xl7drt0AXrc1MuEhIgrAZCfB3JRVoMr9eqpasgWTKU/ccKNYp17RuHDGZeTgtQFnY2XxGXi0YJDw1+KYSpPiteB0u/GGLfzcqzd4SYuIyA+TnQRTnq7OGICukzsvrYKXsTxxpxkzhOJF4yLxHPWemJmLDsFLY1871ek6rQWRoajuk3FERNSDyU6CUav+JPNksiPak8YTNyMrP+IPkf5knNIkwWRHNC4RHOnqVDSOiKg/YLKTYL5Qqf6k9OT8KdGeNJ64NL0eoyOMLxhtMguPoZBjoODMLNG4RKATrH0SjSMi6g+Y7CQYtV7ClhWeBgA4Jy1DaKfmnJNTz12ShIMRLhMddHaosiN1RWaeonGJQHSaOaeeExGdwmQnwZyrwmiCPH0KLKk9p5y+dLYL1YR86WwHAFQ72tAYYdCmWieiRCfAqzUpXgvFqUZF44iI+gMmOwnGs6OiJINO5915aewWm07uiROdKK7G5PE6p1hdimhcIhBpsMiu0URE/pjsJJh3204ofp++Oy9y++yIjnKIZeRDKLs6WhWNSwQiDRbvyStL2q7RRETRYLKTYNQ6ZePZeckWHNjpiTszRaz4VzROjk7BY/KicYkiVIPFQkMqlhZWYFxGjjYLIyKKU5x6nmDUOmXj2XlplcSa0XniXmgW69b7QnMt7i8YFN3iQihPTUeVQC1QeRKdxvIYl5GDsSYLqh1taHJ1If/kpSvu6BAR9cZkJ8EMVeGUjW+Nh9ydnc877ULxonFy3JFTircFmufdkVOq+GPHA0+DRSIiCo/JThxxut3YZG/C0W4HBqQYMSMrv1d/mjbBnRc5fCeDy93Z6RI8Ui4aJ4fJYMBYkxm7OmwhY8aazDAZ1JknRkREiYE1O3FCdIq1aIdjOXwng2cK7ux44kp0YvmyaJxcy4oGY2yIpoZjTWYsKxqsyuMSEVHi4M5OHPBMsQ7kmWINAHNze07giHY4lsNzGuu89KyIDQI9Djo7MA2A3mAABOp/9SruriwrGowOlwsvNNfhSLcDA1OMuCOnlDs6REQEgMmO5kSnWM+xlCBNr/f2WYnUyE8uz2kst+BlLE+cSXAMhGhctEwGAxbkD1T1MYiIKDHxMpbG5E6xNuh0mJCZo/g6PKex9IKXsTxxWvbZISIiEsFkR2NHux2y4lyShI/bmhVdg+9pLNHTXp644Uaxjs6icURERErjZSyVuCRJqAfKgBSxGUaeOJFZVHL5dtwVPe3lieOsJiIiindMdlSwo70Zq07U+iUlhYZU3JNX1qu77YysfKy21oa9lKU/GQcoO2NKD2CmudBvTaKnvTxxIjVEnNVERERa4mUshe1ob8ZjjYd7vfg3urrwWONh7Ghv9vt4ml6PmebCsPc501zo7bejZO2L57SX75pET3t54jiriYiI4p2myc6OHTswffp0lJWVQafT4e233/a7/dZbb4VOp/N7u/jii/1iHA4H5s+fj4KCAmRmZmLGjBk4cuRIHz6LU1yShFUnwo9PWHWi1tvTxmNubhluMBf2+mboAdxgLvQeOwfEpl4Hux/RNUUzVZuzmoiIKJ5pehmrra0N5557Lm677TZcd911QWMuv/xyrF271vt+Wpr/zsPChQuxefNmbNiwAfn5+Vi0aBGuvPJKVFVVwdDHfVZE6ml8e9r4mptbhtnm4oi9Yjw7KY81Hg75GL8pGIQcQyqaXF2wurrxvDV8Aua7JpH7D7ZTw1lNREQUrzRNdqZNm4Zp06aFjTEajSgpKQl6W0tLC1566SW88sormDRpEgBg/fr1KC8vx9atWzF16lTF1xyOaD1NsLjAOp+9sGNXhy1onU/PTgqE6oI+arPKXpOc+/fFWU1ERBSP4r5Aedu2bSgqKkJOTg7Gjx+PJ554AkVFRQCAqqoqdHV1YcqUKd74srIyVFZWYvfu3SGTHYfDAYfj1JFvmy30bCU5ou0546nzCeSp81laiKAJT6idFN+TYFZXd1RrimanRvQEWiz64jGIiCi5xHWyM23aNMycORMVFRU4dOgQfvOb32DChAmoqqqC0WhEfX090tLSkJub6/d5xcXFqK+vD3m/K1aswNKlSxVf71mpYj1qfONE63zGmiy9XtSD7aQEOwmmB8Ke9gp1WkrOTo2cE2jR6ovHICKi5BPXp7FuuOEGXHHFFaisrMT06dPx3nvv4eDBg3j33XfDfp4kSdCF+Wv/oYceQktLi/etpqZGkfW+23ZCdpxonc/G1uP4qM2KfZ32XgXOHqFOgkXqnBPraSm5J9Di9TGIiCg5xfXOTqDS0lJUVFTg22+/BQCUlJTA6XTCarX67e40NDRgzJgxIe/HaDTCaFS+yZ3cbsiAeJ2Pb5FxsN0MkR2iwB0eJXZFYtmZiqfHICKi5BXXOzuBmpqaUFNTg9LSUgDAqFGjkJqaii1btnhj6urqsH///rDJjlrkdkMGouubE2w3Q2SHyA1gXm4ZHi0YhJXFZ+C1AWfHfPlHzgm0eH4MIiJKXpru7Njtdvz73//2vn/o0CHs27cPeXl5yMvLw5IlS3DdddehtLQUP/zwAx5++GEUFBTgmmuuAQBYLBbcfvvtWLRoEfLz85GXl4fFixdjxIgR3tNZfUluN2RArANxKL67GaI7RLmGFEzMzI0cKCiWE2iiGrudisYREVH/ounOzt69e3H++efj/PPPBwDcf//9OP/88/Hb3/4WBoMB1dXVuOqqqzB06FDMnj0bQ4cOxSeffILs7GzvfaxcuRJXX301Zs2ahbFjxyIjIwObN2/u8x47gPxuyIBYB+JQfHcztJo+3heP2+J2CcVtb2vBsyeO4E1bI5xusRlfRESU/HSSFKLatR+x2WywWCxoaWmB2WyO+f7WWGvxhq3Rb4fHM4fKtxtypM8R8WjBIEzMzIVLknDT0a8izqh6bcDZita19MXjbrGfwPImeUXkkb7eRESU+ERfvxOqQDlRzM0twxxLCTbZm3C024EBKUbMyMr329HxtaO9Ga/bGqN6LM+OSbSdj2Nl0OkwITMn7PonZObE9Lii87p8eeZ+AWDCQ0TUzyVUgXIiSdPrcb25EAvyBuL6gEtXvkROGoUSbEZVuBlbavSicUkSPm5rDhvzcVtzyOPyIkTmdYXyBi9pERH1e0x2NCZy0iiUwJ0azw5R4Et7sOnmSumLk1Kx1DW5AWyyN0X92ERElPiY7GgsmlNKwaaJRztxPVZ9cRoLCD1ZXYRo/yMiIkpOrNnRmOgppXm5Zcg1pIScBxXLxPVY9OUpsMB5Xfs72/C2wK6NaP8jIiJKTkx2NCbSZ6fQkIprsgvCFvn21Q5LINH1B5u9FQ3feV0/MVmwyd4kq68RERH1P7yMpTGRehSRU1Rq7LC4JAn7Ou1hZ3Iptf5oRNPXiIiI+h/u7MSBnnoUxDTRW+kdFjkTxpVYf7TOMWbEdDsRESU/NhWE8k0Fo+WSJG89SqjanHA8k8FDCSxqVvp+Yl2/XFo1UiQiovgg+vrN/f044qlHmZiZi/PSs2S/QIc6sRTs9FYoWp3qigYHhBIRkQhexkoygSeW5O6wRHuqS85lL6VoVZRNRESJhclOAgt12cj3xJJc0SQQoS57Nbq68FjjYSwthCoJj1bDT4mIKLEw2UlQau2k5OrFfiQ8caKXvcaaLIrXzfT1sXciIkpMrNlJQJ6dlMAXec9OSixjIUQrcTxxWtbNaHnsnYiIEgeTnQSjdgFxs7tbVpzWdTNKFGUTEVFy42WsBKP2WAi5dTDxUDcTa1E2ERElNyY7CUbtnRS5dTDxUjcTS1E2ERElN17GSjBq76TIrYNh3QwREcU7JjsJxrOTEk6sOyly62BYN0NERPGMl7ESjGcnJdw4ByV2UuTWwbBuhoiI4hWTnQTUV4M35dbBsG6GiIjiEZOdBMWdFCIiIjFMdhIYd1KIiIgiY7JDIYWavaVUPBERUV9gskNByZ29pcXUcyIiIhE8ep6EXJKEfZ12fNRmxb5Ou+zREXJnb6k5q4uIiChW3NlJMrHusMidYq7l1HMiIiIR3NlJIkrssMidYq7l1HMiIiIRTHaShFLT0OXO3tJ66jkREVEkTHaShFI7LIk49ZyIiCgcJjtJQqkdFrmzt/piVhcREVEsmOwkCaV2WDj1nIiIkg2TnSSh5A4Lp54TEVEy0TTZ2bFjB6ZPn46ysjLodDq8/fbbfrdLkoQlS5agrKwMJpMJl156KQ4cOOAX43A4MH/+fBQUFCAzMxMzZszAkSNH+vBZxAeld1jGZeTgtQFnY2XxGXi0YBBWFp+B1wacHTJxkRtPRETUVzRNdtra2nDuuedi1apVQW9/6qmn8PTTT2PVqlXYs2cPSkpKMHnyZLS2tnpjFi5ciI0bN2LDhg3YuXMn7HY7rrzySrhcrr56GnFD6R0Wz+ytiZm5OC89K2KiJDeeiIioL+gkSWZ7XZXodDps3LgRV199NYCeXZ2ysjIsXLgQDz74IICeXZzi4mL87ne/w5133omWlhYUFhbilVdewQ033AAAqK2tRXl5Of7+979j6tSpQo9ts9lgsVjQ0tICs9msyvPrS5xRRURE/YHo63fc1uwcOnQI9fX1mDJlivdjRqMR48ePx+7duwEAVVVV6Orq8ospKytDZWWlNyYYh8MBm83m95ZMuMNCRER0StwmO/X19QCA4uJiv48XFxd7b6uvr0daWhpyc3NDxgSzYsUKWCwW71t5ebnCqyciIqJ4EbfJjocuYFdCkqReHwsUKeahhx5CS0uL962mpkaRtRIREVH8idtkp6SkBAB67dA0NDR4d3tKSkrgdDphtVpDxgRjNBphNpv93oiIiCg5xW2yM3jwYJSUlGDLli3ejzmdTmzfvh1jxowBAIwaNQqpqal+MXV1ddi/f783hoiIiPq3FC0f3G6349///rf3/UOHDmHfvn3Iy8vDoEGDsHDhQixfvhxDhgzBkCFDsHz5cmRkZODmm28GAFgsFtx+++1YtGgR8vPzkZeXh8WLF2PEiBGYNGmSVk+LiIiI4oimyc7evXtx2WWXed+///77AQCzZ8/GunXr8MADD6CjowN33303rFYrLrroInz44YfIzs72fs7KlSuRkpKCWbNmoaOjAxMnTsS6detgMBj6/PkQERFR/ImbPjtaSrY+O0RERP1BwvfZISIiIlICkx0iIiJKaprW7MQLz5W8ZOukTERElMw8r9uRKnKY7ADewaLspExERJR4WltbYbFYQt7OAmUAbrcbtbW1yM7OjtidWQ6bzYby8nLU1NT0m8JnPmc+52TF58znnKwS+TlLkoTW1laUlZVBrw9dmcOdHQB6vR4DBw5U7f77Y5dmPuf+gc+5f+Bz7h8S9TmH29HxYIEyERERJTUmO0RERJTUmOyoyGg04rHHHoPRaNR6KX2Gz7l/4HPuH/ic+4f+8JxZoExERERJjTs7RERElNSY7BAREVFSY7JDRERESY3JDhERESU1Jjsq2bFjB6ZPn46ysjLodDq8/fbbWi9JVStWrMCFF16I7OxsFBUV4eqrr8Y333yj9bJUtXr1aowcOdLbiGv06NF47733tF5Wn1mxYgV0Oh0WLlyo9VJUtWTJEuh0Or+3kpISrZeluqNHj+JnP/sZ8vPzkZGRgfPOOw9VVVVaL0s1p512Wq/vs06nw7x587Remmq6u7vx6KOPYvDgwTCZTDj99NPx+OOPw+12a700xbGDskra2tpw7rnn4rbbbsN1112n9XJUt337dsybNw8XXnghuru78cgjj2DKlCn48ssvkZmZqfXyVDFw4EA8+eSTOPPMMwEAL7/8Mq666ip8/vnnGD58uMarU9eePXvwwgsvYOTIkVovpU8MHz4cW7du9b5vMBg0XI36rFYrxo4di8suuwzvvfceioqK8N133yEnJ0frpalmz549cLlc3vf379+PyZMnY+bMmRquSl2/+93vsGbNGrz88ssYPnw49u7di9tuuw0WiwULFizQenmKYrKjkmnTpmHatGlaL6PPvP/++37vr127FkVFRaiqqsK4ceM0WpW6pk+f7vf+E088gdWrV+PTTz9N6mTHbrfjlltuwYsvvohly5ZpvZw+kZKS0i92czx+97vfoby8HGvXrvV+7LTTTtNuQX2gsLDQ7/0nn3wSZ5xxBsaPH6/RitT3ySef4KqrrsIVV1wBoOd7/Nprr2Hv3r0ar0x5vIxFqmhpaQEA5OXlabySvuFyubBhwwa0tbVh9OjRWi9HVfPmzcMVV1yBSZMmab2UPvPtt9+irKwMgwcPxo033ojvv/9e6yWpatOmTbjgggswc+ZMFBUV4fzzz8eLL76o9bL6jNPpxPr16zFnzhxFh0PHm0suuQQfffQRDh48CAD417/+hZ07d+KnP/2pxitTHnd2SHGSJOH+++/HJZdcgsrKSq2Xo6rq6mqMHj0anZ2dyMrKwsaNG3HOOedovSzVbNiwAZ999hn27Nmj9VL6zEUXXYQ///nPGDp0KI4dO4Zly5ZhzJgxOHDgAPLz87Veniq+//57rF69Gvfffz8efvhh/POf/8S9994Lo9GIX/ziF1ovT3Vvv/02mpubceutt2q9FFU9+OCDaGlpwbBhw2AwGOByufDEE0/gpptu0nppimOyQ4q755578MUXX2Dnzp1aL0V1Z511Fvbt24fm5ma89dZbmD17NrZv356UCU9NTQ0WLFiADz/8EOnp6Vovp8/4Xo4eMWIERo8ejTPOOAMvv/wy7r//fg1Xph63240LLrgAy5cvBwCcf/75OHDgAFavXt0vkp2XXnoJ06ZNQ1lZmdZLUdXrr7+O9evX49VXX8Xw4cOxb98+LFy4EGVlZZg9e7bWy1MUkx1S1Pz587Fp0ybs2LEDAwcO1Ho5qktLS/MWKF9wwQXYs2cPnn32Wfzxj3/UeGXKq6qqQkNDA0aNGuX9mMvlwo4dO7Bq1So4HI6kL9wFgMzMTIwYMQLffvut1ktRTWlpaa+E/eyzz8Zbb72l0Yr6zuHDh7F161b89a9/1XopqvvVr36FX//617jxxhsB9CTzhw8fxooVK5jsEAUjSRLmz5+PjRs3Ytu2bRg8eLDWS9KEJElwOBxaL0MVEydORHV1td/HbrvtNgwbNgwPPvhgv0h0AMDhcOCrr77CT37yE62XopqxY8f2ah1x8OBBVFRUaLSivuM5XOEp2k1m7e3t0Ov9S3cNBgOPnpM4u92Of//73973Dx06hH379iEvLw+DBg3ScGXqmDdvHl599VX87W9/Q3Z2Nurr6wEAFosFJpNJ49Wp4+GHH8a0adNQXl6O1tZWbNiwAdu2bet1Mi1ZZGdn96rByszMRH5+flLXZi1evBjTp0/HoEGD0NDQgGXLlsFmsyXdX76+7rvvPowZMwbLly/HrFmz8M9//hMvvPACXnjhBa2Xpiq32421a9di9uzZSElJ/pfH6dOn44knnsCgQYMwfPhwfP7553j66acxZ84crZemPIlU8Y9//EMC0Ott9uzZWi9NFcGeKwBp7dq1Wi9NNXPmzJEqKiqktLQ0qbCwUJo4caL04Ycfar2sPjV+/HhpwYIFWi9DVTfccINUWloqpaamSmVlZdK1114rHThwQOtlqW7z5s1SZWWlZDQapWHDhkkvvPCC1ktS3QcffCABkL755hutl9InbDabtGDBAmnQoEFSenq6dPrpp0uPPPKI5HA4tF6a4nSSJEnapFlERERE6mOfHSIiIkpqTHaIiIgoqTHZISIioqTGZIeIiIiSGpMdIiIiSmpMdoiIiCipMdkhIiKipMZkh4iIiJIakx0iSjjr1q1DTk6Opmu49NJLsXDhQk3XQERi2EGZiBRz66234uWXX+718alTpyo6M6yjowOtra0oKipS7D7lOnHiBFJTU5Gdna3ZGohITPJPOiOiPnX55Zdj7dq1fh8zGo2KPobJZNJ8wGxeXp6mj09E4ngZi4gUZTQaUVJS4veWm5vrvV2n0+FPf/oTrrnmGmRkZGDIkCHYtGmT331s2rQJQ4YMgclkwmWXXYaXX34ZOp0Ozc3NAHpfxlqyZAnOO+88vPLKKzjttNNgsVhw4403orW11RsjSRKeeuopnH766TCZTDj33HPx5ptvhn0uf/jDHzBkyBCkp6ejuLgY119/vfc238tY27Ztg06n6/V26623euM3b96MUaNGIT09HaeffjqWLl2K7u5umV9dIooGkx0i6nNLly7FrFmz8MUXX+CnP/0pbrnlFpw4cQIA8MMPP+D666/H1VdfjX379uHOO+/EI488EvE+v/vuO7z99tt455138M4772D79u148sknvbc/+uijWLt2LVavXo0DBw7gvvvuw89+9jNs37496P3t3bsX9957Lx5//HF88803eP/99zFu3LigsWPGjEFdXZ337eOPP0Z6ero3/oMPPsDPfvYz3Hvvvfjyyy/xxz/+EevWrcMTTzwh90tHRNHQdOY6ESWV2bNnSwaDQcrMzPR7e/zxx70xAKRHH33U+77dbpd0Op303nvvSZIkSQ8++KBUWVnpd7+PPPKIBECyWq2SJEnS2rVrJYvF4r39sccekzIyMiSbzeb92K9+9Svpoosu8j5Genq6tHv3br/7vf3226Wbbrop6HN56623JLPZ7HefvsaPHy8tWLCg18ePHz8unXHGGdLdd9/t/dhPfvITafny5X5xr7zyilRaWhr0volIWazZISJFXXbZZVi9erXfxwLrW0aOHOn9/8zMTGRnZ6OhoQEA8M033+DCCy/0i//P//zPiI972mmn+RULl5aWeu/zyy+/RGdnJyZPnuz3OU6nE+eff37Q+5s8eTIqKipw+umn4/LLL8fll1/uvfQWSldXF6677joMGjQIzz77rPfjVVVV2LNnj99OjsvlQmdnJ9rb28PeJxHFjskOESkqMzMTZ555ZtiY1NRUv/d1Oh3cbjeAntoanU7nd7skcGg03H16/vvuu+9iwIABfnGhiqezs7Px2WefYdu2bfjwww/x29/+FkuWLMGePXtCHnu/66678OOPP2LPnj1ISTn169XtdmPp0qW49tpre31Oenp6xOdGRLFhskNEcWXYsGH4+9//7vexvXv3xnSf55xzDoxGI3788UeMHz9e+PNSUlIwadIkTJo0CY899hhycnLw8ccfB01ann76abz++uv45JNPkJ+f73fbf/zHf+Cbb76JmAQSkTqY7BCRohwOB+rr6/0+lpKSgoKCAqHPv/POO/H000/jwQcfxO233459+/Zh3bp1ANBrx0dUdnY2Fi9ejPvuuw9utxuXXHIJbDYbdu/ejaysLMyePbvX57zzzjv4/vvvMW7cOOTm5uLvf/873G43zjrrrF6xW7duxQMPPIDnn38eBQUF3udvMplgsVjw29/+FldeeSXKy8sxc+ZM6PV6fPHFF6iursayZcuiek5EJI6nsYhIUe+//z5KS0v93i655BLhzx88eDDefPNN/PWvf8XIkSOxevVq72msWPr1/Nd//Rd++9vfYsWKFTj77LMxdepUbN68GYMHDw4an5OTg7/+9a+YMGECzj77bKxZswavvfYahg8f3it2586dcLlcmDt3rt/zXrBgAYCeporvvPMOtmzZggsvvBAXX3wxnn76aVRUVET9fIhIHDsoE1Hce+KJJ7BmzRrU1NRovRQiSkC8jEVEcecPf/gDLrzwQuTn52PXrl347//+b9xzzz1aL4uIEhSTHSKKO99++y2WLVuGEydOYNCgQVi0aBEeeughrZdFRAmKl7GIiIgoqbFAmYiIiJIakx0iIiJKakx2iIiIKKkx2SEiIqKkxmSHiIiIkhqTHSIiIkpqTHaIiIgoqTHZISIioqT2/wNpd7WAxpqAlwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(cdf.ENGINESIZE, cdf.CO2EMISSIONS, color='turquoise')\n", + "plt.xlabel(\"Engine size\")\n", + "plt.ylabel(\"Emission\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice\n", + "Plot __CYLINDER__ vs the Emission, to see how linear is their relationship is:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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N+PAgQMytowusFqtUCgUYemd5kagFFBpaSkOHTqEsrIyuZsS87799lusX78eixcvxooVK/Dpp5/i4Ycfhkajwb333it382LSsmXLYLVaceWVV0KpVMLtduPpp5/GPffcI3fTYp7FYgEAZGZm+hzPzMzEiRMn5GgSXeTs2bP47W9/i5kzZ4Zls1YWO9Sh6upqPPLII9i1axd69eold3NinsfjwZAhQ1BYWAgAuO6663DkyBGsX7+exY5MtmzZgs2bN+O1117D1VdfjYqKChQUFMBsNmP27NlyN48AKBQKn/uCILQ7RuHV2tqKu+++Gx6PB3/+85/D8pwsdqhD5eXlqKurw+DBg73H3G439u3bh+LiYjidTiiVShlbGFtMJhOuuuoqn2M//vGP8frrr8vUIvrNb36D3/72t7j77rsBAHl5eThx4gSKiopY7MjMaDQCONfDYzKZvMfr6ura9fZQ+LS2tmL69OmoqqrC+++/H5ZeHYCzsSiAMWPGoLKyEhUVFd7bkCFDMGvWLFRUVLDQCbPhw4fj66+/9jl29OhRZGdny9QiamlpQVyc78eoUqnk1PMI0K9fPxiNRuzevdt7zOVyYe/evRg2bJiMLYtdFwqdY8eOYc+ePTAYDGF7bvbsUIeSk5ORm5vrcywxMREGg6HdcQq9X//61xg2bBgKCwsxffp0fPrpp9i4cSM2btwod9Ni1pQpU/D000+jb9++uPrqq/F///d/WLt2LebOnSt302KC3W7HN998471fVVWFiooKpKWloW/fvigoKEBhYSFycnKQk5ODwsJCJCQkYObMmTK2OnoFej/MZjPuuusuHDp0CP/7v/8Lt9vtHVeVlpYGtVod2saFfL4XRRVOPZfXW2+9JeTm5goajUa48sorhY0bN8rdpJhms9mERx55ROjbt6/Qq1cv4YorrhAee+wxwel0yt20mPDBBx8IANrdZs+eLQjCuennTz75pGA0GgWNRiOMGDFCqKyslLfRUSzQ+1FVVeX3HADhgw8+CHnbFIIgCKEtp4iIiIjkwzE7REREFNVY7BAREVFUY7FDREREUY3FDhEREUU1FjtEREQU1VjsEBERUVRjsUNERERRjcUOERERRTUWO0TUY4wcORIFBQXe+5dffjmef/75bj3mhx9+CIVCgaampm49DhFFLhY7RBQ2FosFixYtwhVXXAGNRoOsrCxMmTIF7733Xpcer6ysDA888IDErSSiaMONQIkoLI4fP47hw4cjJSUFa9aswaBBg9Da2op3330XCxYswFdffRX0Y2ZkZISgpcFzuVyh38iQiLqMPTtEFBYPPfQQFAoFPv30U9x1110YMGAArr76aixevBiffPIJ5s6di8mTJ/v8TFtbG4xGI/72t7/5fcxLL2MpFAr89a9/xR133IGEhATk5ORg+/btPj+zY8cODBgwAFqtFqNGjcLx48fbPe6BAwcwYsQIaLVaZGVl4eGHH0Zzc7PP8z711FOYM2cO9Ho97r//frhcLixcuBAmkwm9evXC5ZdfjqKioq7/gxGRZFjsEFHInT59Gjt37sSCBQuQmJjY7nxKSgruu+8+7Ny5E7W1td7jO3bsgN1ux/Tp00U/16pVqzB9+nR8/vnnuPXWWzFr1iycPn0aAFBdXY2pU6fi1ltvRUVFBe677z789re/9fn5yspKTJgwAVOnTsXnn3+OLVu2YP/+/Vi4cKFP7tlnn0Vubi7Ky8vxxBNP4A9/+AO2b9+Of/7zn/j666+xefNmXH755UH8KxFRqLDYIaKQ++abbyAIAq688soOM8OGDcPAgQOxadMm77GXX34Z06ZNQ1JSkujnmjNnDu655x70798fhYWFaG5uxqeffgoAWL9+Pa644gqsW7cOAwcOxKxZszBnzhyfn3/22Wcxc+ZMFBQUICcnB8OGDcMf/vAHvPrqqzh79qw3N3r0aCxduhT9+/dH//798d133yEnJwc33XQTsrOzcdNNN+Gee+4R3W4iCh0WO0QUcoIgADh3mSmQ++67Dy+//DIAoK6uDm+//Tbmzp0b1HMNGjTI+9+JiYlITk5GXV0dAODLL7/EjTfe6NOOoUOH+vx8eXk5SkpKkJSU5L1NmDABHo8HVVVV3tyQIUN8fm7OnDmoqKjAwIED8fDDD2PXrl1BtZuIQofFDhGFXE5ODhQKBb788suAuXvvvRfffvstPv74Y+9loJ/97GdBPZdKpfK5r1Ao4PF4APy36ArE4/HgwQcfREVFhff22Wef4dixY/jRj37kzV16Oe4nP/kJqqqq8Pvf/x4OhwPTp0/HXXfdFVTbiSg0OBuLiEIuLS0NEyZMwJ/+9Cc8/PDD7QqFpqYmpKSkwGAw4Pbbb8fLL7+Mjz/+GL/85S8lbcdVV12FN954w+fYJ5984nP/Jz/5CY4cOYL+/fsH/fg6nQ4zZszAjBkzcNddd+GWW27B6dOnkZaW1p1mE1E3sWeHiMLiz3/+M9xuN37605/i9ddfx7Fjx/Dll1/iD3/4g8+lpPvuuw+vvPIKvvzyS8yePVvSNsyfPx//+c9/sHjxYnz99dd47bXXUFJS4pNZtmwZPv74YyxYsAAVFRU4duwYtm/fjkWLFgV87HXr1qG0tBRfffUVjh49iq1bt8JoNCIlJUXS10BEwWOxQ0Rh0a9fPxw6dAijRo3CkiVLkJubi3HjxuG9997D+vXrvbmxY8fCZDJhwoQJMJvNkrahb9++eP311/HWW2/hmmuuwYYNG1BYWOiTGTRoEPbu3Ytjx47hZz/7Ga677jo88cQTMJlMAR87KSkJq1evxpAhQ3D99dfj+PHj2LFjB+Li+DFLJDeFIOYiNhFRmLS0tMBsNuNvf/sbpk6dKndziCgKcMwOEUUEj8cDi8WC5557Dnq9Hvn5+XI3iYiiBIsdIooI3333Hfr164c+ffqgpKQE8fH8eCIiafAyFhEREUU1jpwjIiKiqMZih4iIiKIaix0iIiKKaix2iIiIKKqx2CEiIqKoxmKHiIiIohqLHSIiIopqLHaIiIgoqv3/DP/Air7+8BIAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(cdf.CYLINDERS, cdf.CO2EMISSIONS, color='turquoise')\n", + "plt.xlabel(\"Cylinders\")\n", + "plt.ylabel(\"Emission\")\n", + "plt.show()\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python \n", + "plt.scatter(cdf.CYLINDERS, cdf.CO2EMISSIONS, color='blue')\n", + "plt.xlabel(\"Cylinders\")\n", + "plt.ylabel(\"Emission\")\n", + "plt.show()\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Creating train and test dataset\n", + "Train/Test Split involves splitting the dataset into training and testing sets that are mutually exclusive. After which, you train with the training set and test with the testing set. \n", + "This will provide a more accurate evaluation on out-of-sample accuracy because the testing dataset is not part of the dataset that have been used to train the model. Therefore, it gives us a better understanding of how well our model generalizes on new data.\n", + "\n", + "This means that we know the outcome of each data point in the testing dataset, making it great to test with! Since this data has not been used to train the model, the model has no knowledge of the outcome of these data points. So, in essence, it is truly an out-of-sample testing.\n", + "\n", + "Let's split our dataset into train and test sets. 80% of the entire dataset will be used for training and 20% for testing. We create a mask to select random rows using __np.random.rand()__ function: \n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "msk = np.random.rand(len(df)) < 0.8\n", + "train = cdf[msk]\n", + "test = cdf[~msk]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Simple Regression Model\n", + "Linear Regression fits a linear model with coefficients B = (B1, ..., Bn) to minimize the 'residual sum of squares' between the actual value y in the dataset, and the predicted value yhat using linear approximation. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Train data distribution\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(train.ENGINESIZE, train.CO2EMISSIONS, color='turquoise')\n", + "plt.xlabel(\"Engine size\")\n", + "plt.ylabel(\"Emission\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Modeling\n", + "Using sklearn package to model data.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Coefficients: [[39.64157726]]\n", + "Intercept: [123.40260366]\n" + ] + } + ], + "source": [ + "from sklearn import linear_model\n", + "regr = linear_model.LinearRegression()\n", + "train_x = np.asanyarray(train[['ENGINESIZE']])\n", + "train_y = np.asanyarray(train[['CO2EMISSIONS']])\n", + "regr.fit(train_x, train_y)\n", + "# The coefficients\n", + "print ('Coefficients: ', regr.coef_)\n", + "print ('Intercept: ',regr.intercept_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As mentioned before, __Coefficient__ and __Intercept__ in the simple linear regression, are the parameters of the fit line. \n", + "Given that it is a simple linear regression, with only 2 parameters, and knowing that the parameters are the intercept and slope of the line, sklearn can estimate them directly from our data. \n", + "Notice that all of the data must be available to traverse and calculate the parameters.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "#### Plot outputs\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the fit line over the data:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Emission')" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(train.ENGINESIZE, train.CO2EMISSIONS, color='turquoise')\n", + "plt.plot(train_x, regr.coef_[0][0]*train_x + regr.intercept_[0], '-r')\n", + "plt.xlabel(\"Engine size\")\n", + "plt.ylabel(\"Emission\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "#### Evaluation\n", + "We compare the actual values and predicted values to calculate the accuracy of a regression model. Evaluation metrics provide a key role in the development of a model, as it provides insight to areas that require improvement.\n", + "\n", + "There are different model evaluation metrics, lets use MSE here to calculate the accuracy of our model based on the test set: \n", + "* Mean Absolute Error: It is the mean of the absolute value of the errors. This is the easiest of the metrics to understand since it’s just average error.\n", + "\n", + "* Mean Squared Error (MSE): Mean Squared Error (MSE) is the mean of the squared error. It’s more popular than Mean Absolute Error because the focus is geared more towards large errors. This is due to the squared term exponentially increasing larger errors in comparison to smaller ones.\n", + "\n", + "* Root Mean Squared Error (RMSE). \n", + "\n", + "* R-squared is not an error, but rather a popular metric to measure the performance of your regression model. It represents how close the data points are to the fitted regression line. The higher the R-squared value, the better the model fits your data. The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean absolute error: 22.34\n", + "Residual sum of squares (MSE): 822.19\n", + "R2-score: 0.75\n" + ] + } + ], + "source": [ + "from sklearn.metrics import r2_score\n", + "\n", + "test_x = np.asanyarray(test[['ENGINESIZE']])\n", + "test_y = np.asanyarray(test[['CO2EMISSIONS']])\n", + "test_y_ = regr.predict(test_x)\n", + "\n", + "print(\"Mean absolute error: %.2f\" % np.mean(np.absolute(test_y_ - test_y)))\n", + "print(\"Residual sum of squares (MSE): %.2f\" % np.mean((test_y_ - test_y) ** 2))\n", + "print(\"R2-score: %.2f\" % r2_score(test_y , test_y_) )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lets see what the evaluation metrics are if we trained a regression model using the `FUELCONSUMPTION_COMB` feature.\n", + "\n", + "Start by selecting `FUELCONSUMPTION_COMB` as the train_x data from the `train` dataframe, then select `FUELCONSUMPTION_COMB` as the test_x data from the `test` dataframe\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "## Exercise\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python \n", + "train_x = train[[\"FUELCONSUMPTION_COMB\"]]\n", + "\n", + "test_x = test[[\"FUELCONSUMPTION_COMB\"]]\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "train_x = train[[\"FUELCONSUMPTION_COMB\"]]\n", + "\n", + "test_x = test[[\"FUELCONSUMPTION_COMB\"]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now train a Linear Regression Model using the `train_x` you created and the `train_y` created previously\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,\n", + " normalize=False)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "regr = linear_model.LinearRegression()\n", + "\n", + "regr.fit(train_x, train_y)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python \n", + "regr = linear_model.LinearRegression()\n", + "\n", + "regr.fit(train_x, train_y)\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Find the predictions using the model's `predict` function and the `test_x` data\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "predictions = regr.predict(test_x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python \n", + "predictions = regr.predict(test_x)\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally use the `predictions` and the `test_y` data and find the Mean Absolute Error value using the `np.absolute` and `np.mean` function like done previously\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean Absolute Error: 20.46\n" + ] + } + ], + "source": [ + "print(\"Mean Absolute Error: %.2f\" % np.mean(np.absolute(predictions - test_y)))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Click here for the solution\n", + "\n", + "```python \n", + "print(\"Mean Absolute Error: %.2f\" % np.mean(np.absolute(predictions - test_y)))\n", + "\n", + "```\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the MAE is much worse when we train using `ENGINESIZE` than `FUELCONSUMPTION_COMB`\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Thank you for completing this lab!\n", + "\n", + "\n", + "## Author\n", + "\n", + "Saeed Aghabozorgi\n", + "\n", + "\n", + "### Other Contributors\n", + "\n", + "Joseph Santarcangelo\n", + "\n", + "Azim Hirjani\n", + "\n", + "##

© IBM Corporation. All rights reserved.

\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python", + "language": "python", + "name": "conda-env-python-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.12" + }, + "prev_pub_hash": "20d6dc1d9e74df451be22381c972d7921c93657bea402a00c749dca52bb85996" + }, + "nbformat": 4, + "nbformat_minor": 4 +}