From 692d08063385846bebc4f037bc2226ef86d9f8f3 Mon Sep 17 00:00:00 2001 From: kakoozatrevor Date: Thu, 12 Mar 2020 10:42:19 +0300 Subject: [PATCH 1/5] Added my first notebook --- Assignment Colab/kakooza trevor Starter Kernel.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment Colab/kakooza trevor Starter Kernel.ipynb diff --git a/Assignment Colab/kakooza trevor Starter Kernel.ipynb b/Assignment Colab/kakooza trevor Starter Kernel.ipynb new file mode 100644 index 0000000..13504c0 --- /dev/null +++ b/Assignment Colab/kakooza trevor Starter Kernel.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":" # KAKOOZA TREVOR\n## Kaggle assignment\n### started on the 28th /feb/2020"},{"metadata":{},"cell_type":"markdown","source":"# 1. Prepare Problem\n### a) Load libraries\n### b) Load dataset"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Import the necessary tools required to work on the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#import the necessary libraries you are going to use\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# -----> Put your code here below:\n\n\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"\n# This first session is about loading the give dataset and viewing them. \n\n* The two data set provided are\n1. test.csv\n2. AMP_TrainSet.csv \n\n### Now load the data set using.\n```\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")\nTest = pd.read_csv(\"../input/amp-data-set/Test.csv\")\n```\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#using pandas we call the data set\nTest = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 2. Summarize Data\n\n## View the first five raws of the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#head.() is ued to view the first five raws of the data set.\nTest.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.head()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Shape function\n* This function helps to view the total raws and columns (dimension) of the dataset. "},{"metadata":{"trusted":true},"cell_type":"code","source":"# check the dimensions of your data\n\nTrain.shape, Test.shape\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Data type\n* This returns a Series with the data type of each column.\n* The result’s index is the original DataFrame’s columns"},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.dtypes","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.dtypes","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## isnull().sum\n* This function helps to see if the dataset has any missing values."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.isnull().sum","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"* When we look at the data ,it shows that both the test and train dataset does not have any missing values"},{"metadata":{},"cell_type":"markdown","source":"## Then in column of class we check and find out,\n* How is the data divied into.\n* Here the unique function does that."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train['CLASS'].unique()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# a) Descriptive statistics\n## Descriptive statistics of the data\n* Generate descriptive statistics that summarize the central tendency,\ndispersion and shape of a dataset's distribution, excluding\n``NaN`` values.\n\nAnalyzes both numeric and object series, as well\nas ``DataFrame`` column sets of mixed data types. The output\nwill vary depending on what is provided.\n\n### For example this function will provide the following summary\n* Count.\n* Mean.\n* Standard Deviation.\n* Minimum Value.\n* 25th Percentile.\n* 75th Percentile(Median).\n* Maximum Value.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.describe()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# (c)Check the dataset info"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.info()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# b) Data visualizations\n## Class Distribution\n\nA groupby operation involves some combination of splitting the\nobject, applying a function, and combining the results. This can be\nused to group large amounts of data and compute operations on these\ngroups."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.groupby('CLASS').size().plot(kind='bar')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Correlations Between Attributes\nIs the a mutual relationship or connection between two or more things.\n\nNote: Correlation refers to the relationship between two variables and how they may or may notchange together. The most common method for calculating correlation is Pearson's Correlation Coefficient, that assumes a normal distribution of the attributes involved.\n\nA correlation of -1 or 1 shows a full negative or positive correlation respectively. Whereas a value of 0 shows no correlation at all. "},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.corr(method='pearson')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Plotting to show the correlation\n\nplot a heat map to show us the correlation of the data.\n\nWith the help of ; seaborn\nthe we can use spearman or pearson method.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#The first step is to choose the figure size then use the heatmap to plot.\nplt.figure(figsize=(7,7))\nsns.heatmap(Train.corr(method='pearson'))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## we can also check the correlation in regards to the CLASS"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.corr(method='pearson')['CLASS']","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Skew of Univariate Distributions\n### Definition of skew.\n* Is the suddenly change direction or position.\n* or Skew refers to a distribution that is assumed Gaussian (normal or bell curve) that is shifted or squashed in one direction or another. \n\n\nYou can calculate the skew of each attribute using the skew() function on the Pandas DataFrame.\n\n#### NOTE: If skewness value lies above +1 or below -1, data is highly skewed. If it lies between +0.5 to -0.5, it is moderately skewed. If the value is 0, then the data is symmetric\n\n### Positively skewed data:\nIf tail is on the right as that of the second image in the figure, it is right skewed data. It is also called positive skewed data. Common transformations of this data include square root, cube root, and log.\n\n### Cube root transformation:\nThe cube root transformation involves converting x to 𝑥(1/3) . This is a fairly strong transformation with a substantial effect on distribution shape: but is weaker than the logarithm. It can be applied to negative and zero values too. Negatively skewed data.\n\n### Square root transformation:\nApplied to positive values only. Hence, observe the values of column before applying.\n\n### Logarithm transformation:\nThe logarithm, x to log base 10 of x, or x to log base e of x (ln x), or x to log base 2 of x, is a strong transformation and can be used to reduce right skewness.\n\n### Negatively skewed data:\nIf the tail is to the left of data, then it is called left skewed data. It is also called negatively skewed data. Common transformations include square , cube root and logarithmic. We will discuss what square transformation is as others are already discussed."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.skew().plot(kind='bar')\n#When we look to the data its highly positively skewed","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Data visualization\n## Understand Your Data With Visualization\nYou must understand your data in order to get the best results from machine learning algorithms. The fastest way to learn more about your data is to use data visualization.\n\n### Univariate Plots\nIn this section we will look at three techniques that you can use to understand each attribute of your dataset independently.\n\nHistograms.\nDensity Plots.\nBox and Whisker Plots.\n\n\n# Histograms"},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(16,16))\nTrain.hist()\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Density Plots\nDensity plots are another way of getting a quick idea of the distribution of each attribute. The plots look like an abstracted histogram with a smooth curve drawn through the top of each bin, much like your eye tried to do with the histograms.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.plot(kind='density', subplots=True, layout=(3,4), sharex=False)\nplt.show","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Box and Whisker Plots\nAnother useful way to review the distribution of each attribute is to use Box and Whisker Plots or boxplots for short."},{"metadata":{"trusted":true},"cell_type":"code","source":"#boxplots help to represent outlies\nTrain.plot(kind='box', subplots=True, layout=(3,4), sharex=False, sharey=False)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Multivariate Plots\nThis section provides examples of two plots that show the interactions between multiple variables in your dataset.\n\n* Correlation Matrix Plot.\n* Scatter Plot Matrix.\n* Correlation Matrix Plot\n\nCorrelation gives an indication of how related the changes are between two variables. If two variables change in the same direction they are positively correlated. If they change in opposite directions together (one goes up, one goes down), then they are negatively correlated. You can calculate the correlation between each pair of attributes. This is called a correlation matrix. You can then plot the correlation matrix and get an idea of which variables have a high correlation with each other. This is useful to know, because some machine learning algorithms like linear and logistic regression can have poor performance if there are highly correlated input variables in your data."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.columns","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"correlations = Train.corr()\n# plot correlation matrix\nfig = plt.figure()\nax = fig.add_subplot(111)\ncax = ax.matshow(correlations, vmin=-1, vmax=1)\nfig.colorbar(cax)\nticks = np.arange(0,9,1)\nax.set_xticks(ticks)\nax.set_yticks(ticks)\nax.set_xticklabels(Train.columns)\nax.set_yticklabels(Train.columns)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Scatter Plot Matrix\n\nA scatter plot shows the relationship between two variables as dots in two dimensions, one axis for each attribute. You can create a scatter plot for each pair of attributes in your data. Drawing all these scatter plots together is called a scatter plot matrix. Scatter plots are useful for spotting structured relationships between variables, like whether you could summarize the relationship between two variables with a line. Attributes with structured relationships may also be correlated and good candidates for removal from your dataset."},{"metadata":{"trusted":true},"cell_type":"code","source":"#you can use vars to compare two variable and hue to put colours\nsns.pairplot(Train,hue='CLASS',vars=['FULL_Charge','FULL_AcidicMolPerc'])\n#check on the seaborn(seaborn.pydata.org-dev/generated/seaborn.boxplot.html)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"```mo = pd.DataFrame(out_model)\nmo.to_csv(\"xyz.csv\")\n```"},{"metadata":{},"cell_type":"markdown","source":"# 3. Prepare Data\n\n# Prepare Your Data For Machine Learning\nMany machine learning algorithms make assumptions about your data. It is often a very good idea to prepare your data in such way to best expose the structure of the problem to the machine learning algorithms that you intend to use. In this chapter you will discover how to prepare your data for machine learning in Python using scikit-learn. After completing this lesson you will know how to:\n\n1. Rescale data.\n2. Standardize data.\n3. Normalize data.\n4. Binarize data.\n### Need For Data Pre-processing\nYou almost always need to pre-process your data. It is a required step. A difficulty is that different algorithms make different assumptions about your data and may require different transforms. Further, when you follow all of the rules and prepare your data, sometimes algorithms can deliver better results without pre-processing. Generally, I would recommend creating many different views and transforms of your data, then exercise a handful of algorithms on each view of your dataset. This will help you to ush out which data transforms might be better at exposing the structure of your problem in general.\n\n### The steps involved are as below:\n\nSplit the dataset into the input and output variables for machine learning.\nApply a pre-processing transform to the input variables.\nSummarize the data to show the change.\nThe scikit-learn library provides two standard idioms for transforming data. Each are useful in di\u000berent circumstances. The transforms are calculated in such a way that they can be applied to your training data and any samples of data you may have in the future. The scikit-learn documentation has some information on how to use various di\u000berent pre-processing methods:\n\nThe Fit and Multiple Transform method is the preferred approach. You call the fit() function to prepare the parameters of the transform once on your data. Then later you can use the transform() function on the same data to prepare it for modeling and again on the test or validation dataset or new data that you may see in the future. The Combined Fit-And-Transform is a convenience that you can use for one o\u000b tasks. This might be useful if you are interested in plotting or summarizing the transformed data.\n\n### Rescale Data\nWhen your data is comprised of attributes with varying scales, many machine learning algorithms can bene\ft from rescaling the attributes to all have the same scale. Often this is referred to as normalization and attributes are often rescaled into the range between 0 and 1. This is useful for optimization algorithms used in the core of machine learning algorithms like gradient descent. It is also useful for algorithms that weight inputs like regression and neural networks and algorithms that use distance measures like k-Nearest Neighbors. You can rescale your data using scikit-learn using the MinMaxScaler class\n\n### NOTE: Since my graph and summary data shows varying means and Gaussian distribution. i would use Standardize data method\n\n\n\n### Standardize of Data\nStandardization is a useful technique to transform attributes with a Gaussian distribution and differing means and standard deviations to a standard Gaussian distribution with a mean of 0 and a standard deviation of 1. It is most suitable for techniques that assume a Gaussian distribution in the input variables and work better with rescaled data, such as linear regression, logistic regression and linear discriminate analysis. You can standardize data using scikit-learn with the StandardScaler class3."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import StandardScaler\n\narray2 = Train.values\n# separate array into input and output components\nX = array2[:,0:11]\nY = array2[:,11]\nscaler = StandardScaler().fit(X)\nrescaledX = scaler.transform(X)\n# summarize transformed data\n#set_printoptions(precision=3)\nprint(rescaledX[0:5,:])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# a) Data Cleaning(not done)\n# b) Feature Selection\n\n## Feature Selection For Machine\nLearning The data features that you use to train your machine learning models have a huge in uence on the performance you can achieve. Irrelevant or partially relevant features can negatively impact model performance. In this chapter you will discover automatic feature selection techniques that you can use to prepare your machine learning data in Python with scikit-learn. After completing this lesson you will know how to use:\n\n## Univariate Selection.\nRecursive Feature Elimination.\nPrinciple Component Analysis.\nFeature Importance.\nFeature Selection\nFeature selection is a process where you automatically select those features in your data that contribute most to the prediction variable or output in which you are interested. Having irrelevant features in your data can decrease the accuracy of many models, especially linear algorithms like linear and logistic regression. Three benets of performing feature selection before modeling your data are:\n\nReduces Overffitting: Less redundant data means less opportunity to make decisions based on noise.\nImproves Accuracy: Less misleading data means modeling accuracy improves.\nReduces Training Time: Less data means that algorithms train faster.\nUnivariate Selection\nStatistical tests can be used to select those features that have the strongest relationship with the output variable. The scikit-learn library provides the SelectKBest class2 that can be used with a suite of different statistical tests to select a specific number of features. The example below uses the chi-squared (𝑐ℎ𝑖2) statistical test for non-negative features to select 4 of the best features from the Pima Indians onset of diabetes dataset.\n\nYou can see the scores for each attribute and the 4 attributes chosen (those with the highest scores): plas, test, mass and age. I got the names for the chosen attributes by manually mapping the index of the 4 highest scores to the index of the attribute names.\n\n# Recursive Feature Elimination method.\nThe Recursive Feature Elimination (or RFE) works by recursively removing attributes and building a model on those attributes that remain. It uses the model accuracy to identify which attributes (and combination of attributes) contribute the most to predicting the target attribute. You can learn more about the RFE class3 in the scikit-learn documentation. The example below uses RFE with the logistic regression algorithm to select the top 3 features. The choice of algorithm does not matter too much as long as it is skillful and consistent.\n\n### NOTE: Since i dont have much information about the interpretetion of my varaibles, Recursive Feature Elimination method would be the best. \n\n# c) Data Transforms"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.feature_selection import RFE\nfrom sklearn.linear_model import LogisticRegression\n\narray_1 = Train.values\nX = array_1[:,0:11]\nY = array_1[:,11]\n# feature extraction\nmodel = LogisticRegression()\nrfe = RFE(model, 10)\nfit = rfe.fit(X, Y)\nprint(\"Num Features: \", fit.n_features_)\nprint(\"Selected Features:\", fit.support_)\nprint(\"Feature Ranking: \", fit.ranking_)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Feature Importance\nBagged decision trees like Random Forest and Extra Trees can be used to estimate the importance\nof features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.ensemble import ExtraTreesClassifier\nimport warnings\nwarnings.filterwarnings('ignore')\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n# feature extraction\nmodel = ExtraTreesClassifier()\nmodel.fit(X, Y)\nprint(model.feature_importances_)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 4. Evaluate Algorithms\n\n\n## Evaluate the Performance of Machine Learning Algorithms with Resampling\nYou need to know how well your algorithms perform on unseen data. The best way to evaluate the performance of an algorithm would be to make predictions for new data to which you already know the answers. The second best way is to use clever techniques from statistics called resampling methods that allow you to make accurate estimates for how well your algorithm will perform on new data. In this chapter you will discover how you can estimate the accuracy of your machine learning algorithms using resampling methods in Python and scikit-learn on the Pima Indians dataset. Let's get started.\n\n## Evaluate Machine Learning Algorithms\nWhy can't you train your machine learning algorithm on your dataset and use predictions from this same dataset to evaluate machine learning algorithms? The simple answer is overffitting. Imagine an algorithm that remembers every observation it is shown during training. If you evaluated your machine learning algorithm on the same dataset used to train the algorithm, then an algorithm like this would have a perfect score on the training dataset. But the predictions it made on new data would be terrible. We must evaluate our machine learning algorithms on data that is not used to train the algorithm. The evaluation is an estimate that we can use to talk about how well we think the algorithm may actually do in practice. It is not a guarantee of performance. Once we estimate the performance of our algorithm, we can then re-train the final algorithm on the entire training dataset and get it ready for operational use. Next up we are going to look at four different techniques that we can use to split up our training dataset and create useful estimates of performance for our machine learning algorithms:\n\n* Train and Test Sets.\n* k-fold Cross Validation.\n* Leave One Out Cross Validation.\n* Repeated Random Test-Train Splits.\n\n# a) Split-out validation dataset\n\n### Split into Train and Test Sets\nThe simplest method that we can use to evaluate the performance of a machine learning algorithm is to use different training and testing datasets. We can take our original dataset and split it into two parts. Train the algorithm on the train part, make predictions on the second part and evaluate the predictions against the expected results. The size of the split can depend on the size and species of your dataset, although it is common to use 67% of the data for training and the remaining 33% for testing. This algorithm evaluation technique is very fast. It is ideal for large datasets (millions of records) where there is strong evidence that both splits of the data are representative of the underlying problem. Because of the speed, it is useful to use this approach when the algorithm you are investigating is slow to train. A downside of this technique is that it can have a high variance. This means that di\u000berences in the training and test dataset can result in meaningful diferences in the estimate of accuracy. In the example below we split the Pima Indians dataset into 70%/30% splits for training and test and evaluate the accuracy of a Logistic Regression model."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\nrandom_state=seed)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresult = model.score(X_test, Y_test)\nprint(\"Accuracy: \", (result*100.0))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# b) Test options and evaluation metric"},{"metadata":{},"cell_type":"markdown","source":"# K-fold Cross Validation\nCross validation is an approach that you can use to estimate the performance of a machine learning algorithm with less variance than a single train-test set split. It works by splitting the dataset into k-parts (e.g. k = 5 or k = 10). Each split of the data is called a fold. The algorithm is trained on k 1 folds with one held back and tested on the held back fold. This is repeated so that each fold of the dataset is given a chance to be the held back test set. After running cross validation you end up with k diferent performance scores that you can summarize using a mean and a standard deviation. The result is a more reliable estimate of the performance of the algorithm on new data. It is more accurate because the algorithm is trained and evaluated multiple times on different data. The choice of k must allow the size of each test partition to be large enough to be a reasonable sample of the problem, whilst allowing enough repetitions of the train-test evaluation of the algorithm to provide a fair estimate of the algorithms performance on unseen data. For modest sized datasets in the thousands or tens of thousands of records, k values of 3, 5 and 10 are common."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10 #number of folds to use are 10\nseed = 7 #reproducibility\n\nkfold = KFold(n_splits=num_folds, random_state=seed)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(f\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Leave One Out Cross Validation\nYou can configure cross validation so that the size of the fold is 1 (k is set to the number of observations in your dataset). This variation of cross validation is called leave-one-out cross validation. The result is a large number of performance measures that can be summarized in an effort to give a more reasonable estimate of the accuracy of your model on unseen data. A downside is that it can be a computationally more expensive procedure than k-fold cross validation. In the example below we use leave-one-out cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import LeaveOneOut\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nloocv = LeaveOneOut()\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=loocv)\nprint(\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Repeated Random Test-Train Splits\nAnother variation on k-fold cross validation is to create a random split of the data like the train/test split described above, but repeat the process of splitting and evaluation of the algorithm multiple times, like cross validation. This has the speed of using a train/test split and the reduction in variance in the estimated performance of k-fold cross validation. You can also repeat the process many more times as needed to improve the accuracy. A down side is that repetitions may include much of the same data in the train or the test split from run to run, introducing redundancy into the evaluation. The example below splits the data into a 70%/30% train/test split and repeats the process 10 times."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import ShuffleSplit\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nn_splits = 10\ntest_size = 0.30\nseed = 7\nkfold = ShuffleSplit(n_splits=n_splits, test_size=test_size, random_state=seed)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(\"Accuracy: \" , (results.mean()*100.0, results.std()*100.0))\n\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\ncross_validation_report = pd.DataFrame(output)\ncross_validation_report.columns = ['CLASS']\ncross_validation_report.index.name = 'Index'\ncross_validation_report['CLASS'] = cross_validation_report['CLASS'].map({0.0:False, 1.0:True})\n\ncross_validation_report.to_csv('cross_validation_report.csv')\n\nprint(cross_validation_report['CLASS'].unique())\nprint('False: ',cross_validation_report.groupby('CLASS').size()[0].sum())\nprint('True: ',cross_validation_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# NOTE: What Techniques to Use When\nThis section lists some tips to consider what resampling technique to use in diferent circum- stances.\n\nGenerally k-fold cross validation is the gold standard for evaluating the performance of amachine learning algorithm on unseen data with k set to 3, 5, or 10.\nUsing a train/test split is good for speed when using a slow algorithm and producesperformance estimates with lower bias when using large datasets.\nTechniques like leave-one-out cross validation and repeated random splits can be usefulintermediates when trying to balance variance in the estimated performance, modeltraining speed and dataset size.\nThe best advice is to experiment and find a technique for your problem that is fast and produces reasonable estimates of performance that you can use to make decisions. If in doubt, use 10-fold cross validation.\n# Machine Learning Algorithm Performance Metrics\n\nThe metrics that you choose to evaluate your machine learning algorithms are very important.\nChoice of metrics in\nuences how the performance of machine learning algorithms is measured\nand compared. They in\nuence how you weight the importance of different characteristics in\nthe results and your ultimate choice of which algorithm to choose.\n\n## Algorithm Evaluation Metrics\nIn this lesson, various different algorithm evaluation metrics are demonstrated for both classification and regression type machine learning problems. In each recipe, the dataset is downloaded\ndirectly from the Machine Learning repository.\n\n## Classiffication Metrics\nClassiffication problems are perhaps the most common type of machine learning problem and as such there are a myriad of metrics that can be used to evaluate predictions for these problems. In this section we will review how to use the following metrics:\n\n* Classiffication Accuracy.\n* Logarithmic Loss.\n* Area Under ROC Curve.\n* Confusion Matrix.\n* Classiffication Report.\n\n## Classiffication Accuracy\nClassiffication accuracy is the number of correct predictions made as a ratio of all predictions made. This is the most common evaluation metric for classi\fcation problems, it is also the most misused. It is really only suitable when there are an equal number of observations in each class (which is rarely the case) and that all predictions and prediction errors are equally important, which is often not the case. Below is an example of calculating classiffication accuracy."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import matthews_corrcoef\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LogisticRegression()\nscoring = 'accuracy'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"Accuracy:\", (results.mean(), results.std()))\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nclassification_accuracy_report = pd.DataFrame(output)\nclassification_accuracy_report.columns = ['CLASS']\nclassification_accuracy_report.index.name = 'Index'\nclassification_accuracy_report['CLASS'] = classification_accuracy_report['CLASS'].map({0.0:False, 1.0:True})\n\nclassification_accuracy_report.to_csv('classification_accuracy_report.cp.csv')\n\nprint(classification_accuracy_report['CLASS'].unique())\nprint('False: ',classification_accuracy_report.groupby('CLASS').size()[0].sum())\nprint('True: ',classification_accuracy_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Confusion Matrix\nThe confusion matrix is a handy presentation of the accuracy of a model with two or more classes. The table presents predictions on the x-axis and accuracy outcomes on the y-axis. The cells of the table are the number of predictions made by a machine learning algorithm. For example, a machine learning algorithm can predict 0 or 1 and each prediction may actually have been a 0 or 1. Predictions for 0 that were actually 0 appear in the cell for prediction = 0 and actual = 0, whereas predictions for 0 that were actually 1 appear in the cell for prediction = 0 and actual = 1. And so on."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import confusion_matrix\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\nrandom_state=seed)\n\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\npredicted = model.predict(X_test)\nmatrix = confusion_matrix(Y_test, predicted)\nprint(matrix)\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nconfusion_matrix_report = pd.DataFrame(output)\nconfusion_matrix_report.columns = ['CLASS']\nconfusion_matrix_report.index.name = 'Index'\nconfusion_matrix_report['CLASS'] = confusion_matrix_report['CLASS'].map({0.0:False, 1.0:True})\n\nconfusion_matrix_report.to_csv('confusion_matrix_report.csv')\n\nprint(confusion_matrix_report['CLASS'].unique())\nprint('False: ',confusion_matrix_report.groupby('CLASS').size()[0].sum())\nprint('True: ',confusion_matrix_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication Report\nThe scikit-learn library provides a convenience report when working on classiffication problems to give you a quick idea of the accuracy of a model using a number of measures. The classification report() function displays the precision, recall, F1-score and support for each class. "},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import classification_report\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\nrandom_state=seed)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\npredicted = model.predict(X_test)\nreport = classification_report(Y_test, predicted)\nprint(report)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nClassification_report = pd.DataFrame(output)\nClassification_report.columns = ['CLASS']\nClassification_report.index.name = 'Index'\nClassification_report['CLASS'] = Classification_report['CLASS'].map({0.0:False, 1.0:True})\n\nClassification_report.to_csv('Classification_report.csv')\n\nprint(Classification_report['CLASS'].unique())\nprint('False: ',Classification_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Classification_report.groupby('CLASS').size()[1].sum())\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Spot-Check Classiffication Algorithms.\nSpot-checking is a way of discovering which algorithms perform well on your machine learning problem. You cannot know which algorithms are best suited to your problem beforehand. You must trial a number of \nmethods and focus attention on those that prove themselves the most promising.\n\n1. How to spot-check machine learning algorithms on a classification problem.\n2. How to spot-check two linear classification algorithms.\n3. How to spot-check four nonlinear classification algorithms.\n\n## Algorithm Spot-Checking\nYou cannot know which algorithm will work best on your dataset beforehand. You must use trial and error to discover a shortlist of algorithms that do well on your problem that you can then double down on and tune further. I call this process spot-checking. The question is not: What algorithm should I use on my dataset? Instead it is: What algorithms should I spot-check on my dataset? You can guess at what algorithms might do well on your dataset, and this can be a good starting point. I recommend trying a mixture of algorithms and see what is good at picking out the structure in your data. Below are some suggestions when spot-checking algorithms on your dataset:\n\nTry a mixture of algorithm representations (e.g. instances and trees).\n\nTry a mixture of learning algorithms (e.g. di\u000berent algorithms for learning the same type of representation).\n\nTry a mixture of modeling types (e.g. linear and nonlinear functions or parametric and nonparametric).\n\nAlgorithms Overview\nWe are going to take a look at six classi\fcation algorithms that you can spot-check on your dataset. Starting with two linear machine learning algorithms:\n\nLogistic Regression.\nLinear Discriminant Analysis.\nThen looking at four nonlinear machine learning algorithms:\n\nk-Nearest Neighbors.\nNaive Bayes.\nClassi\fcation and Regression Trees.\nSupport Vector Machines.\nLinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use two linear machine learning algorithms: logistic regression and linear discriminant analysis.\n\nLogistic Regression\nLogistic regression assumes a Gaussian distribution for the numeric input variables and can model binary classiffication problems. You can construct a logistic regression model using the LogisticRegression class."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Logistic Regression Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLogisticRegression = pd.DataFrame(output)\nLogisticRegression.columns = ['CLASS']\nLogisticRegression.index.name = 'Index'\nLogisticRegression['CLASS'] = LogisticRegression['CLASS'].map({0.0:False, 1.0:True})\n\nLogisticRegression.to_csv('LogisticRegression.csv')\n\nprint(LogisticRegression['CLASS'].unique())\nprint('False: ',LogisticRegression.groupby('CLASS').size()[0].sum())\nprint('True: ',LogisticRegression.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Linear Discriminant Analysis\nLinear Discriminant Analysis or LDA is a statistical technique for binary and multiclass classiffication. It too assumes a Gaussian distribution for the numerical input variables. You can construct an LDA model using the LinearDiscriminantAnalysis class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearDiscriminantAnalysis()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLinearDiscriminantAnalysis = pd.DataFrame(output)\nLinearDiscriminantAnalysis.columns = ['CLASS']\nLinearDiscriminantAnalysis.index.name = 'Index'\nLinearDiscriminantAnalysis['CLASS'] = LinearDiscriminantAnalysis['CLASS'].map({0.0:False, 1.0:True})\n\nLinearDiscriminantAnalysis.to_csv('LinearDiscriminantAnalysis.csv')\n\nprint(LinearDiscriminantAnalysis['CLASS'].unique())\nprint('False: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[0].sum())\nprint('True: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Nonlinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use 4 nonlinear machine learning algorithms.\n\n## k-Nearest Neighbors\nThe k-Nearest Neighbors algorithm (or KNN) uses a distance metric to find the k most similar instances in the training data for a new instance and takes the mean outcome of the neighbors as the prediction. You can construct a KNN model using the KNeighborsClassifier class."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = KNeighborsClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nk_nearest = pd.DataFrame(output)\nk_nearest.columns = ['CLASS']\nk_nearest.index.name = 'Index'\nk_nearest['CLASS'] = k_nearest['CLASS'].map({0.0:False, 1.0:True})\n\nk_nearest.to_csv('k_nearest.csv')\n\nprint(k_nearest['CLASS'].unique())\nprint('False: ',k_nearest.groupby('CLASS').size()[0].sum())\nprint('True: ',k_nearest.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Naive Bayes\nNaive Bayes calculates the probability of each class and the conditional probability of each class given each input value. These probabilities are estimated for new data and multiplied together, assuming that they are all independent (a simple or naive assumption). When working with real-valued data, a Gaussian distribution is assumed to easily estimate the probabilities for input variables using the Gaussian Probability Density Function. You can construct a Naive Bayes model using the GaussianNB class4."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.naive_bayes import GaussianNB\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = GaussianNB()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nnaive_bayes = pd.DataFrame(output)\nnaive_bayes.columns = ['CLASS']\nnaive_bayes.index.name = 'Index'\nnaive_bayes['CLASS'] = naive_bayes['CLASS'].map({0.0:False, 1.0:True})\n\nnaive_bayes.to_csv('naive_bayes_nb.csv')\n\nprint(naive_bayes['CLASS'].unique())\nprint('False: ',naive_bayes.groupby('CLASS').size()[0].sum())\nprint('True: ',naive_bayes.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nDecisionTree_report = pd.DataFrame(output)\nDecisionTree_report.columns = ['CLASS']\nDecisionTree_report.index.name = 'Index'\nDecisionTree_report['CLASS'] = DecisionTree_report['CLASS'].map({0.0:False, 1.0:True})\n\nDecisionTree_report.to_csv('DecisionTree_report_dt.csv')\n\nprint(DecisionTree_report['CLASS'].unique())\nprint('False: ',DecisionTree_report.groupby('CLASS').size()[0].sum())\nprint('True: ',DecisionTree_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Support Vector Machines\nSupport Vector Machines (or SVM) seek a line that best separates two classes. Those data instances that are closest to the line that best separates the classes are called support vectors and in uence where the line is placed. SVM has been extended to support multiple classes. Of particular importance is the use of di\u000berent kernel functions via the kernel parameter."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10)\nmodel = SVC()\nscoring = 'acuracy'\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nfinalreport1 = pd.DataFrame(output)\nfinalreport1.columns = ['CLASS']\nfinalreport1.index.name = 'Index'\nfinalreport1['CLASS'] = finalreport1['CLASS'].map({0.0:False, 1.0:True})\n\nfinalreport1.to_csv('finalreport1_sv.csv')\n\nprint(finalreport1['CLASS'].unique())\nprint('False: ',finalreport1.groupby('CLASS').size()[0].sum())\nprint('True: ',finalreport1.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Regression Metrics\nIn this section will review 3 of the most common metrics for evaluating predictions on regression\nmachine learning problems:\n- Mean Absolute Error.\n- Mean Squared Error.\n- R2.\n\n## Mean Absolute Error\nThe Mean Absolute Error (or MAE) is the sum of the absolute di\u000berences between predictions\nand actual values. It gives an idea of how wrong the predictions were. The measure gives an\nidea of the magnitude of the error, but no idea of the direction (e.g. over or under predicting).\nThe example below demonstrates calculating mean absolute error on the Boston house price\ndataset."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearRegression()\nscoring = 'neg_mean_absolute_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MAE:\",(results.mean(), results.std()))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Mean Squared Error\nThe Mean Squared Error (or MSE) is much like the mean absolute error in that it provides a gross idea of the magnitude of error. Taking the square root of the mean squared error converts the units back to the original units of the output variable and can be meaningful for description and presentation. This is called the Root Mean Squared Error (or RMSE). The example below provides a demonstration of calculating mean squared error."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression MSE\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearRegression()\nscoring = 'neg_mean_squared_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MSE:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"This metric too is inverted so that the results are increasing. Remember to take the absolute value before taking the square root if you are interested in calculating the RMSE.\n\n## R2 Metric\nThe R2 (or R Squared) metric provides an indication of the goodness of fit of a set of predictions to the actual values. In statistical literature this measure is called the coefficient of determination. This is a value between 0 and 1 for no-fit and perfect fit respectively. The example below provides a demonstration of calculating the mean R2 for a set of predictions."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression R^2\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearRegression()\nscoring = 'r2'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"R^2:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# d) Compare Algorithms\n## Compare Machine Learning Algorithms\nIt is important to compare the performance of multiple di\u000berent machine learning algorithms\nconsistently. In this chapter you will discover how you can create a test harness to compare\nmultiple different machine learning algorithms in Python with scikit-learn. You can use this\ntest harness as a template on your own machine learning problems and add more and different\nalgorithms to compare. After completing this lesson you will know:\n\n1. How to formulate an experiment to directly compare machine learning algorithms.\n2. A reusable template for evaluating the performance of multiple algorithms on one dataset.\n3. How to report and visualize the results when comparing algorithm performance.\n\n\n### Choose The Best Machine Learning Model\nWhen you work on a machine learning project, you often end up with multiple good models\nto choose from. Each model will have different performance characteristics. Using resampling\nmethods like cross validation, you can get an estimate for how accurate each model may be on\nunseen data. You need to be able to use these estimates to choose one or two best models from\nthe suite of models that you have created.\nWhen you have a new dataset, it is a good idea to visualize the data using different techniques\nin order to look at the data from di\u000berent perspectives. The same idea applies to model selection.\nYou should use a number of di\u000berent ways of looking at the estimated accuracy of your machine\nlearning algorithms in order to choose the one or two algorithm to finalize. A way to do this is\nto use visualization methods to show the average accuracy, variance and other properties of the\ndistribution of model accuracies. In the next section you will discover exactly how you can do\nthat in Python with scikit-learn.\n\n\n### Compare Machine Learning Algorithms Consistently\nThe key to a fair comparison of machine learning algorithms is ensuring that each algorithm is\nevaluated in the same way on the same data. You can achieve this by forcing each algorithm to be evaluated on a consistent test harness. In the example below six different classiffication\nalgorithms are compared on a single dataset:\n\n- Logistic Regression.\n- Linear Discriminant Analysis.\n- k-Nearest Neighbors.\n- Classiffication and Regression Trees.\n- Naive Bayes.\n- Support Vector Machines.\n\nThe dataset is the Pima Indians onset of diabetes problem. The problem has two classes and\neight numeric input variables of varying scales. The 10-fold cross validation procedure is used to\nevaluate each algorithm, importantly con\fgured with the same random seed to ensure that the\nsame splits to the training data are performed and that each algorithm is evaluated in precisely\nthe same way. Each algorithm is given a short name, useful for summarizing results afterward."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Compare Algorithms\nfrom pandas import read_csv\nfrom matplotlib import pyplot\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n# load dataset\narray = Train.values\n\n#split the dataset \nX = array[:,0:11]\nY = array[:,11]\n\n# prepare models and add them to a list\nmodels = []\nmodels.append(('LR', LogisticRegression()))\nmodels.append(('LDA', LinearDiscriminantAnalysis()))\nmodels.append(('KNN', KNeighborsClassifier()))\nmodels.append(('CART', DecisionTreeClassifier()))\nmodels.append(('NB', GaussianNB()))\nmodels.append(('SVM', SVC()))\n\n# evaluate each model in turn\nresults = []\nnames = []\nscoring = 'accuracy'\n\nfor name, model in models:\n kfold = KFold(n_splits=10, random_state=7)\n cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n results.append(cv_results)\n names.append(name)\n msg = (name, cv_results.mean(), cv_results.std())\n print(msg)\n\n# boxplot algorithm comparison\nfig = pyplot.figure()\nfig.suptitle('Algorithm Comparison')\nax = fig.add_subplot(111)\npyplot.boxplot(results)\nax.set_xticklabels(names)\npyplot.show()\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\ncompare_testmethods_report = pd.DataFrame(output)\ncompare_testmethods_report.columns = ['CLASS']\ncompare_testmethods_report.index.name = 'Index'\ncompare_testmethods_report['CLASS'] = compare_testmethods_report['CLASS'].map({0.0:False, 1.0:True})\n\ncompare_testmethods_report.to_csv('compare_testmethods_report.csv')\n\nprint(compare_testmethods_report['CLASS'].unique())\nprint('False: ',compare_testmethods_report.groupby('CLASS').size()[0].sum())\nprint('True: ',compare_testmethods_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Automate Machine Learning Workflows with Pipelines\n\nThere are standard work\nows in a machine learning project that can be automated. In Python\nscikit-learn, Pipelines help to clearly define and automate these work\nows. In this chapter you\nwill discover Pipelines in scikit-learn and how you can automate common machine learning\nwork\nows. After completing this lesson you will know:\n\n1. How to use pipelines to minimize data leakage.\n2. How to construct a data preparation and modeling pipeline.\n3. How to construct a feature extraction and modeling pipeline.\n\n### Automating Machine Learning Workflows\nThere are standard work\nows in applied machine learning. Standard because they overcome\ncommon problems like data leakage in your test harness. Python scikit-learn provides a Pipeline\nutility to help automate machine learning work\nows. Pipelines work by allowing for a linear\nsequence of data transforms to be chained together culminating in a modeling process that can\nbe evaluated.\n\nThe goal is to ensure that all of the steps in the pipeline are constrained to the data available\nfor the evaluation, such as the training dataset or each fold of the cross validation procedure.\nYou can learn more about Pipelines in scikit-learn by reading the Pipeline section1 of the user\nguide. You can also review the API documentation for the Pipeline and FeatureUnion classes\nand the pipeline module2.\n\n### Data Preparation and Modeling Pipeline\nAn easy trap to fall into in applied machine learning is leaking data from your training dataset\nto your test dataset. To avoid this trap you need a robust test harness with strong separation of training and testing. This includes data preparation. Data preparation is one easy way to leak\nknowledge of the whole training dataset to the algorithm. For example, preparing your data\nusing normalization or standardization on the entire training dataset before learning would not\nbe a valid test because the training dataset would have been in\nuenced by the scale of the data\nin the test set.\n\n\nPipelines help you prevent data leakage in your test harness by ensuring that data preparation\nlike standardization is constrained to each fold of your cross validation procedure. The example\nbelow demonstrates this important data preparation and model evaluation work\now on the\nPima Indians onset of diabetes dataset. The pipeline is de\fned with two steps:\n\n1. Standardize the data.\n2. Learn a Linear Discriminant Analysis model.\n\nThe pipeline is then evaluated using 10-fold cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Create a pipeline that standardizes the data then creates a model\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\n# load data\n\n#dataframe = read_csv('diabetes.csv')\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\n# create pipeline\nestimators = []\nestimators.append(('standardize', StandardScaler()))\nestimators.append(('lda', LinearDiscriminantAnalysis()))\nmodel = Pipeline(estimators)\n\n\n# evaluate pipeline\nkfold = KFold(n_splits=10, random_state=7)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nstandarzied_pipeline_report = pd.DataFrame(output)\nstandarzied_pipeline_report.columns = ['CLASS']\nstandarzied_pipeline_report.index.name = 'Index'\nstandarzied_pipeline_report['CLASS'] = standarzied_pipeline_report['CLASS'].map({0.0:False, 1.0:True})\n\nstandarzied_pipeline_report.to_csv('standarzied_pipeline_report.csv')\n\nprint(standarzied_pipeline_report['CLASS'].unique())\nprint('False: ',standarzied_pipeline_report.groupby('CLASS').size()[0].sum())\nprint('True: ',standarzied_pipeline_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 5. Improve Accuracy\n# a) Algorithm Tuning\n# b) Ensembles\n\n# Improve Performance with Ensembles\n\nEnsembles can give you a boost in accuracy on your dataset. In this chapter you will discover\nhow you can create some of the most powerful types of ensembles in Python using scikit-learn.\nThis lesson will step you through Boosting, Bagging and Majority Voting and show you how you\ncan continue to ratchet up the accuracy of the models on your own datasets. After completing\nthis lesson you will know:\n\n1. How to use bagging ensemble methods such as bagged decision trees, random forest and extra trees.\n2. How to use boosting ensemble methods such as AdaBoost and stochastic gradient boosting.\n3. How to use voting ensemble methods to combine the predictions from multiple algorithms.\n\n### Combine Models Into Ensemble Predictions\nThe three most popular methods for combining the predictions from different models are:\n\n- Bagging. Building multiple models (typically of the same type) from different subsamples of the training dataset.\n- Boosting. Building multiple models (typically of the same type) each of which learns to fix the prediction errors of a prior model in the sequence of models.\n- Voting. Building multiple models (typically of di\u000bering types) and simple statistics (like calculating the mean) are used to combine predictions.\n\nThis assumes you are generally familiar with machine learning algorithms and ensemble\nmethods and will not go into the details of how the algorithms work or their parameters.\nThe Pima Indians onset of Diabetes dataset is used to demonstrate each algorithm. Each\nensemble algorithm is demonstrated using 10-fold cross validation and the classiffication accuracy\nperformance metric.\n"},{"metadata":{},"cell_type":"markdown","source":"# Boosting Algorithms\nBoosting ensemble algorithms creates a sequence of models that attempt to correct the mistakes\nof the models before them in the sequence. Once created, the models make predictions which\nmay be weighted by their demonstrated accuracy and the results are combined to create a final\noutput prediction. The two most common boosting ensemble machine learning algorithms are:\n\n- AdaBoost.\n- Stochastic Gradient Boosting.\n\n\n### AdaBoost\nAdaBoost was perhaps the \frst successful boosting ensemble algorithm. It generally works\nby weighting instances in the dataset by how easy or di\u000ecult they are to classify, allowing\nthe algorithm to pay or less attention to them in the construction of subsequent models. You\ncan construct an AdaBoost model for classi\fcation using the AdaBoostClassifier class4. The\nexample below demonstrates the construction of 30 decision trees in sequence using the AdaBoost\nalgorithm."},{"metadata":{"trusted":true},"cell_type":"code","source":"# AdaBoost Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 30\nseed=7\n\nkfold = KFold(n_splits=10, random_state=seed)\n\nmodel = AdaBoostClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nAdaBoost_report = pd.DataFrame(output)\nAdaBoost_report.columns = ['CLASS']\nAdaBoost_report.index.name = 'Index'\nAdaBoost_report['CLASS'] = AdaBoost_report['CLASS'].map({0.0:False, 1.0:True})\n\nAdaBoost_report.to_csv('AdaBoost_report.csv')\n\nprint(AdaBoost_report['CLASS'].unique())\nprint('False: ',AdaBoost_report.groupby('CLASS').size()[0].sum())\nprint('True: ',AdaBoost_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles. You can construct a\nGradient Boosting model for classiffication using the GradientBoostingClassifier class5. The\nexample below demonstrates Stochastic Gradient Boosting for classification with 100 trees"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 7\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## XGB"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic X Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom xgboost import XGBClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 7\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = XGBClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Voting Ensemble\nVoting is one of the simplest ways of combining the predictions from multiple machine learning\nalgorithms. It works by first creating two or more standalone models from your training dataset.\nA Voting Classiffier can then be used to wrap your models and average the predictions of the\nsub-models when asked to make predictions for new data. The predictions of the sub-models can\nbe weighted, but specifying the weights for classiffiers manually or even heuristically is difficult.\nMore advanced methods can learn how to best weight the predictions from sub-models, but this\nis called stacking (stacked aggregation) and is currently not provided in scikit-learn.\nYou can create a voting ensemble model for classiffication using the VotingClassifier\nclass6. The code below provides an example of combining the predictions of logistic regression,\nclassiffication and regression trees and support vector machines together for a classiffication\nproblem."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Voting Ensemble for Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom xgboost import XGBClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import VotingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\n\n# create the sub models\nestimators = []\nmodel1 = LogisticRegression()\nestimators.append(('logistic', model1))\n\nmodel2 = DecisionTreeClassifier()\nestimators.append(('cart', model2))\n\nmodel3 = SVC()\nestimators.append(('svm', model3))\n\nmodel4 = XGBClassifier()\nestimators.append(('xgb', model4))\n\nmodel5 = RandomForestClassifier()\nestimators.append(('rfc', model5))\n\n# create the ensemble model\nensemble = VotingClassifier(estimators)\nresults = cross_val_score(ensemble, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nVoting_Ensemble_report = pd.DataFrame(output)\nVoting_Ensemble_report.columns = ['CLASS']\nVoting_Ensemble_report.index.name = 'Index'\nVoting_Ensemble_report['CLASS'] = Voting_Ensemble_report['CLASS'].map({0.0:False, 1.0:True})\n\nVoting_Ensemble_report.to_csv('Voting_Ensemble_report.csv')\n\nprint(Voting_Ensemble_report['CLASS'].unique())\nprint('False: ',Voting_Ensemble_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Voting_Ensemble_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Extra Trees\nExtra Trees are another modi\fcation of bagging where random trees are constructed from\nsamples of the training dataset. You can construct an Extra Trees model for classiffication using\nthe ExtraTreesClassifier class3. The example below provides a demonstration of extra trees\nwith the number of trees set to 100 and splits chosen from 7 random features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import ExtraTreesClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n#let's read the data\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 100\nmax_features = 7\n\nkfold = KFold(n_splits=10, random_state=7)\n\nmodel = ExtraTreesClassifier(n_estimators=num_trees, max_features=max_features)\n\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nExtra_tree_report = pd.DataFrame(output)\nExtra_tree_report.columns = ['CLASS']\nExtra_tree_report.index.name = 'Index'\nExtra_tree_report['CLASS'] = Extra_tree_report['CLASS'].map({0.0:False, 1.0:True})\n\nExtra_tree_report.to_csv('Extra_tree_report.csv')\n\nprint(Extra_tree_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 7\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nStochastic_report = pd.DataFrame(output)\nStochastic_report.columns = ['CLASS']\nStochastic_report.index.name = 'Index'\nStochastic_report['CLASS'] = Stochastic_report['CLASS'].map({0.0:False, 1.0:True})\n\nStochastic_report.to_csv('Stochastic_report.csv')\n\nprint(Stochastic_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with pickle\nPickle is the standard way of serializing objects in Python. You can use the pickle1 operation\nto serialize your machine learning algorithms and save the serialized format to a file. Later you\ncan load this file to deserialize your model and use it to make new predictions. The example\nbelow demonstrates how you can train a logistic regression model on data set and save the model to file and load it to make predictions on the unseen test set."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using Pickle\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom pickle import dump\nfrom pickle import load\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\nfilename = 'finalized_model2.sav'\ndump(model, open(filename, 'wb'))\n\n# some time later...\n# load the model from disk\nloaded_model = load(open(filename, 'rb'))\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\npickle_report = pd.DataFrame(output)\npickle_report.columns = ['CLASS']\npickle_report.index.name = 'Index'\npickle_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n\npickle_report.to_csv('pickle.csv')\n\nprint(pickle_report['CLASS'].unique())\nprint('False: ',pickle_report.groupby('CLASS').size()[0].sum())\nprint('True: ',pickle_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with Joblib\nThe Joblib2 library is part of the SciPy ecosystem and provides utilities for pipelining Python\njobs. It provides utilities for saving and loading Python objects that make use of NumPy data\nstructures, efficiently3. This can be useful for some machine learning algorithms that require a\nlot of parameters or store the entire dataset (e.g. k-Nearest Neighbors). The example below\ndemonstrates how you can train a logistic regression model on the dataset, save the model to file using Joblib and load it to make predictions on the unseen test\nset."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using joblib\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.externals.joblib import dump\nfrom sklearn.externals.joblib import load\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\n\ndump(model, filename)\n\n# some time later...\n# load the model from disk\nloaded_model = load(filename)\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\njoblib_report = pd.DataFrame(output)\njoblib_report.columns = ['CLASS']\njoblib_report.index.name = 'Index'\npicklej_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n\npickle_report.to_csv('pickle.csv')\n\nprint(pickle_report['CLASS'].unique())\nprint('False: ',pickle_report.groupby('CLASS').size()[0].sum())\nprint('True: ',pickle_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4} \ No newline at end of file From 518b41f4554859f703fcae4c3d4256bdc7ed2569 Mon Sep 17 00:00:00 2001 From: Atwine Date: Thu, 12 Mar 2020 14:40:29 +0300 Subject: [PATCH 2/5] Make corrections --- ...oza trevor Starter Kernel-checkpoint.ipynb | 2308 ++++++++++++++++ .../kakooza trevor Starter Kernel.ipynb | 2309 ++++++++++++++++- 2 files changed, 4616 insertions(+), 1 deletion(-) create mode 100644 Assignment Colab/.ipynb_checkpoints/kakooza trevor Starter Kernel-checkpoint.ipynb diff --git a/Assignment Colab/.ipynb_checkpoints/kakooza trevor Starter Kernel-checkpoint.ipynb b/Assignment Colab/.ipynb_checkpoints/kakooza trevor Starter Kernel-checkpoint.ipynb new file mode 100644 index 0000000..1324121 --- /dev/null +++ b/Assignment Colab/.ipynb_checkpoints/kakooza trevor Starter Kernel-checkpoint.ipynb @@ -0,0 +1,2308 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # KAKOOZA TREVOR\n", + "## Kaggle assignment\n", + "### started on the 28th /feb/2020" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1. Prepare Problem\n", + "### a) Load libraries\n", + "### b) Load dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5" + }, + "outputs": [], + "source": [ + "# This Python 3 environment comes with many helpful analytics libraries installed\n", + "# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n", + "# For example, here's several helpful packages to load in \n", + "\n", + "import numpy as np # linear algebra\n", + "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n", + "\n", + "# Input data files are available in the \"../input/\" directory.\n", + "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n", + "\n", + "import os\n", + "for dirname, _, filenames in os.walk('/kaggle/input'):\n", + " for filename in filenames:\n", + " print(os.path.join(dirname, filename))\n", + "\n", + "# Any results you write to the current directory are saved as output." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Import the necessary tools required to work on the datasets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#import the necessary libraries you are going to use\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "# -----> Put your code here below:\n", + "\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# This first session is about loading the give dataset and viewing them. \n", + "\n", + "* The two data set provided are\n", + "1. test.csv\n", + "2. AMP_TrainSet.csv \n", + "\n", + "### Now load the data set using.\n", + "```\n", + "Train = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")\n", + "Test = pd.read_csv(\"../input/amp-data-set/Test.csv\")\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#using pandas we call the data set\n", + "Test = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\n", + "Train = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Summarize Data\n", + "\n", + "## View the first five raws of the datasets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#head.() is ued to view the first five raws of the data set.\n", + "Test.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Shape function\n", + "* This function helps to view the total raws and columns (dimension) of the dataset. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check the dimensions of your data\n", + "\n", + "Train.shape, Test.shape\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data type\n", + "* This returns a Series with the data type of each column.\n", + "* The result’s index is the original DataFrame’s columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Test.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.dtypes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## isnull().sum\n", + "* This function helps to see if the dataset has any missing values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.isnull().sum" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Test.isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* When we look at the data ,it shows that both the test and train dataset does not have any missing values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Then in column of class we check and find out,\n", + "* How is the data divied into.\n", + "* Here the unique function does that." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train['CLASS'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# a) Descriptive statistics\n", + "## Descriptive statistics of the data\n", + "* Generate descriptive statistics that summarize the central tendency,\n", + "dispersion and shape of a dataset's distribution, excluding\n", + "``NaN`` values.\n", + "\n", + "Analyzes both numeric and object series, as well\n", + "as ``DataFrame`` column sets of mixed data types. The output\n", + "will vary depending on what is provided.\n", + "\n", + "### For example this function will provide the following summary\n", + "* Count.\n", + "* Mean.\n", + "* Standard Deviation.\n", + "* Minimum Value.\n", + "* 25th Percentile.\n", + "* 75th Percentile(Median).\n", + "* Maximum Value.\n", + "\n", + "
\n", + "This is good,\n", + " can you keep all the explanations like this?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# (c)Check the dataset info" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Test.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# b) Data visualizations\n", + "## Class Distribution\n", + "\n", + "A groupby operation involves some combination of splitting the\n", + "object, applying a function, and combining the results. This can be\n", + "used to group large amounts of data and compute operations on these\n", + "groups." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.groupby('CLASS').size().plot(kind='bar')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Correlations Between Attributes\n", + "Is the a mutual relationship or connection between two or more things.\n", + "\n", + "Note: Correlation refers to the relationship between two variables and how they may or may notchange together. The most common method for calculating correlation is Pearson's Correlation Coefficient, that assumes a normal distribution of the attributes involved.\n", + "\n", + "A correlation of -1 or 1 shows a full negative or positive correlation respectively. Whereas a value of 0 shows no correlation at all. \n", + "\n", + "
\n", + "What did you learn from this?\n", + " \n", + " Please explain." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.corr(method='pearson')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting to show the correlation\n", + "\n", + "plot a heat map to show us the correlation of the data.\n", + "\n", + "With the help of ; seaborn\n", + "the we can use spearman or pearson method.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#The first step is to choose the figure size then use the heatmap to plot.\n", + "plt.figure(figsize=(7,7))\n", + "sns.heatmap(Train.corr(method='pearson'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## we can also check the correlation in regards to the CLASS" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.corr(method='pearson')['CLASS']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Skew of Univariate Distributions\n", + "### Definition of skew.\n", + "* Is the suddenly change direction or position.\n", + "* or Skew refers to a distribution that is assumed Gaussian (normal or bell curve) that is shifted or squashed in one direction or another. \n", + "\n", + "\n", + "You can calculate the skew of each attribute using the skew() function on the Pandas DataFrame.\n", + "\n", + "#### NOTE: If skewness value lies above +1 or below -1, data is highly skewed. If it lies between +0.5 to -0.5, it is moderately skewed. If the value is 0, then the data is symmetric\n", + "\n", + "### Positively skewed data:\n", + "If tail is on the right as that of the second image in the figure, it is right skewed data. It is also called positive skewed data. Common transformations of this data include square root, cube root, and log.\n", + "\n", + "### Cube root transformation:\n", + "The cube root transformation involves converting x to 𝑥(1/3) . This is a fairly strong transformation with a substantial effect on distribution shape: but is weaker than the logarithm. It can be applied to negative and zero values too. Negatively skewed data.\n", + "\n", + "### Square root transformation:\n", + "Applied to positive values only. Hence, observe the values of column before applying.\n", + "\n", + "### Logarithm transformation:\n", + "The logarithm, x to log base 10 of x, or x to log base e of x (ln x), or x to log base 2 of x, is a strong transformation and can be used to reduce right skewness.\n", + "\n", + "### Negatively skewed data:\n", + "If the tail is to the left of data, then it is called left skewed data. It is also called negatively skewed data. Common transformations include square , cube root and logarithmic. We will discuss what square transformation is as others are already discussed.\n", + "\n", + "
\n", + "What did you learn from this and how did you apply it?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.skew().plot(kind='bar')\n", + "#When we look to the data its highly positively skewed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data visualization\n", + "## Understand Your Data With Visualization\n", + "You must understand your data in order to get the best results from machine learning algorithms. The fastest way to learn more about your data is to use data visualization.\n", + "\n", + "### Univariate Plots\n", + "In this section we will look at three techniques that you can use to understand each attribute of your dataset independently.\n", + "\n", + "Histograms.\n", + "Density Plots.\n", + "Box and Whisker Plots.\n", + "\n", + "\n", + "# Histograms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(16,16))\n", + "Train.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Density Plots\n", + "Density plots are another way of getting a quick idea of the distribution of each attribute. The plots look like an abstracted histogram with a smooth curve drawn through the top of each bin, much like your eye tried to do with the histograms.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.plot(kind='density', subplots=True, layout=(3,4), sharex=False)\n", + "plt.show" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Box and Whisker Plots\n", + "Another useful way to review the distribution of each attribute is to use Box and Whisker Plots or boxplots for short." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#boxplots help to represent outlies\n", + "Train.plot(kind='box', subplots=True, layout=(3,4), sharex=False, sharey=False)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multivariate Plots\n", + "This section provides examples of two plots that show the interactions between multiple variables in your dataset.\n", + "\n", + "* Correlation Matrix Plot.\n", + "* Scatter Plot Matrix.\n", + "* Correlation Matrix Plot\n", + "\n", + "Correlation gives an indication of how related the changes are between two variables. If two variables change in the same direction they are positively correlated. If they change in opposite directions together (one goes up, one goes down), then they are negatively correlated. You can calculate the correlation between each pair of attributes. This is called a correlation matrix. You can then plot the correlation matrix and get an idea of which variables have a high correlation with each other. This is useful to know, because some machine learning algorithms like linear and logistic regression can have poor performance if there are highly correlated input variables in your data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "correlations = Train.corr()\n", + "# plot correlation matrix\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "cax = ax.matshow(correlations, vmin=-1, vmax=1)\n", + "fig.colorbar(cax)\n", + "ticks = np.arange(0,9,1)\n", + "ax.set_xticks(ticks)\n", + "ax.set_yticks(ticks)\n", + "ax.set_xticklabels(Train.columns)\n", + "ax.set_yticklabels(Train.columns)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Scatter Plot Matrix\n", + "\n", + "A scatter plot shows the relationship between two variables as dots in two dimensions, one axis for each attribute. You can create a scatter plot for each pair of attributes in your data. Drawing all these scatter plots together is called a scatter plot matrix. Scatter plots are useful for spotting structured relationships between variables, like whether you could summarize the relationship between two variables with a line. Attributes with structured relationships may also be correlated and good candidates for removal from your dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#you can use vars to compare two variable and hue to put colours\n", + "sns.pairplot(Train,hue='CLASS',vars=['FULL_Charge','FULL_AcidicMolPerc'])\n", + "#check on the seaborn(seaborn.pydata.org-dev/generated/seaborn.boxplot.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```mo = pd.DataFrame(out_model)\n", + "mo.to_csv(\"xyz.csv\")\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3. Prepare Data\n", + "\n", + "# Prepare Your Data For Machine Learning\n", + "Many machine learning algorithms make assumptions about your data. It is often a very good idea to prepare your data in such way to best expose the structure of the problem to the machine learning algorithms that you intend to use. In this chapter you will discover how to prepare your data for machine learning in Python using scikit-learn. After completing this lesson you will know how to:\n", + "\n", + "1. Rescale data.\n", + "2. Standardize data.\n", + "3. Normalize data.\n", + "4. Binarize data.\n", + "### Need For Data Pre-processing\n", + "You almost always need to pre-process your data. It is a required step. A difficulty is that different algorithms make different assumptions about your data and may require different transforms. Further, when you follow all of the rules and prepare your data, sometimes algorithms can deliver better results without pre-processing. Generally, I would recommend creating many different views and transforms of your data, then exercise a handful of algorithms on each view of your dataset. This will help you to ush out which data transforms might be better at exposing the structure of your problem in general.\n", + "\n", + "### The steps involved are as below:\n", + "\n", + "Split the dataset into the input and output variables for machine learning.\n", + "Apply a pre-processing transform to the input variables.\n", + "Summarize the data to show the change.\n", + "The scikit-learn library provides two standard idioms for transforming data. Each are useful in di\u000b", + "erent circumstances. The transforms are calculated in such a way that they can be applied to your training data and any samples of data you may have in the future. The scikit-learn documentation has some information on how to use various di\u000b", + "erent pre-processing methods:\n", + "\n", + "The Fit and Multiple Transform method is the preferred approach. You call the fit() function to prepare the parameters of the transform once on your data. Then later you can use the transform() function on the same data to prepare it for modeling and again on the test or validation dataset or new data that you may see in the future. The Combined Fit-And-Transform is a convenience that you can use for one o\u000b", + " tasks. This might be useful if you are interested in plotting or summarizing the transformed data.\n", + "\n", + "### Rescale Data\n", + "When your data is comprised of attributes with varying scales, many machine learning algorithms can bene\f", + "t from rescaling the attributes to all have the same scale. Often this is referred to as normalization and attributes are often rescaled into the range between 0 and 1. This is useful for optimization algorithms used in the core of machine learning algorithms like gradient descent. It is also useful for algorithms that weight inputs like regression and neural networks and algorithms that use distance measures like k-Nearest Neighbors. You can rescale your data using scikit-learn using the MinMaxScaler class\n", + "\n", + "### NOTE: Since my graph and summary data shows varying means and Gaussian distribution. i would use Standardize data method\n", + "\n", + "\n", + "\n", + "### Standardize of Data\n", + "Standardization is a useful technique to transform attributes with a Gaussian distribution and differing means and standard deviations to a standard Gaussian distribution with a mean of 0 and a standard deviation of 1. It is most suitable for techniques that assume a Gaussian distribution in the input variables and work better with rescaled data, such as linear regression, logistic regression and linear discriminate analysis. You can standardize data using scikit-learn with the StandardScaler class3.\n", + "\n", + "
\n", + "Good work here." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "array2 = Train.values\n", + "# separate array into input and output components\n", + "X = array2[:,0:11]\n", + "Y = array2[:,11]\n", + "scaler = StandardScaler().fit(X)\n", + "rescaledX = scaler.transform(X)\n", + "# summarize transformed data\n", + "#set_printoptions(precision=3)\n", + "print(rescaledX[0:5,:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# a) Data Cleaning(not done)\n", + "# b) Feature Selection\n", + "\n", + "## Feature Selection For Machine\n", + "Learning The data features that you use to train your machine learning models have a huge in uence on the performance you can achieve. Irrelevant or partially relevant features can negatively impact model performance. In this chapter you will discover automatic feature selection techniques that you can use to prepare your machine learning data in Python with scikit-learn. After completing this lesson you will know how to use:\n", + "\n", + "## Univariate Selection.\n", + "Recursive Feature Elimination.\n", + "Principle Component Analysis.\n", + "Feature Importance.\n", + "Feature Selection\n", + "Feature selection is a process where you automatically select those features in your data that contribute most to the prediction variable or output in which you are interested. Having irrelevant features in your data can decrease the accuracy of many models, especially linear algorithms like linear and logistic regression. Three benets of performing feature selection before modeling your data are:\n", + "\n", + "Reduces Overffitting: Less redundant data means less opportunity to make decisions based on noise.\n", + "Improves Accuracy: Less misleading data means modeling accuracy improves.\n", + "Reduces Training Time: Less data means that algorithms train faster.\n", + "Univariate Selection\n", + "Statistical tests can be used to select those features that have the strongest relationship with the output variable. The scikit-learn library provides the SelectKBest class2 that can be used with a suite of different statistical tests to select a specific number of features. The example below uses the chi-squared (𝑐ℎ𝑖2) statistical test for non-negative features to select 4 of the best features from the Pima Indians onset of diabetes dataset.\n", + "\n", + "You can see the scores for each attribute and the 4 attributes chosen (those with the highest scores): plas, test, mass and age. I got the names for the chosen attributes by manually mapping the index of the 4 highest scores to the index of the attribute names.\n", + "\n", + "# Recursive Feature Elimination method.\n", + "The Recursive Feature Elimination (or RFE) works by recursively removing attributes and building a model on those attributes that remain. It uses the model accuracy to identify which attributes (and combination of attributes) contribute the most to predicting the target attribute. You can learn more about the RFE class3 in the scikit-learn documentation. The example below uses RFE with the logistic regression algorithm to select the top 3 features. The choice of algorithm does not matter too much as long as it is skillful and consistent.\n", + "\n", + "### NOTE: Since i dont have much information about the interpretetion of my varaibles, Recursive Feature Elimination method would be the best. \n", + "\n", + "# c) Data Transforms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.feature_selection import RFE\n", + "from sklearn.linear_model import LogisticRegression\n", + "\n", + "array_1 = Train.values\n", + "X = array_1[:,0:11]\n", + "Y = array_1[:,11]\n", + "# feature extraction\n", + "model = LogisticRegression()\n", + "rfe = RFE(model, 10)\n", + "fit = rfe.fit(X, Y)\n", + "print(\"Num Features: \", fit.n_features_)\n", + "print(\"Selected Features:\", fit.support_)\n", + "print(\"Feature Ranking: \", fit.ranking_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature Importance\n", + "Bagged decision trees like Random Forest and Extra Trees can be used to estimate the importance\n", + "of features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.ensemble import ExtraTreesClassifier\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "# feature extraction\n", + "model = ExtraTreesClassifier()\n", + "model.fit(X, Y)\n", + "print(model.feature_importances_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. Evaluate Algorithms\n", + "\n", + "\n", + "## Evaluate the Performance of Machine Learning Algorithms with Resampling\n", + "You need to know how well your algorithms perform on unseen data. The best way to evaluate the performance of an algorithm would be to make predictions for new data to which you already know the answers. The second best way is to use clever techniques from statistics called resampling methods that allow you to make accurate estimates for how well your algorithm will perform on new data. In this chapter you will discover how you can estimate the accuracy of your machine learning algorithms using resampling methods in Python and scikit-learn on the Pima Indians dataset. Let's get started.\n", + "\n", + "## Evaluate Machine Learning Algorithms\n", + "Why can't you train your machine learning algorithm on your dataset and use predictions from this same dataset to evaluate machine learning algorithms? The simple answer is overffitting. Imagine an algorithm that remembers every observation it is shown during training. If you evaluated your machine learning algorithm on the same dataset used to train the algorithm, then an algorithm like this would have a perfect score on the training dataset. But the predictions it made on new data would be terrible. We must evaluate our machine learning algorithms on data that is not used to train the algorithm. The evaluation is an estimate that we can use to talk about how well we think the algorithm may actually do in practice. It is not a guarantee of performance. Once we estimate the performance of our algorithm, we can then re-train the final algorithm on the entire training dataset and get it ready for operational use. Next up we are going to look at four different techniques that we can use to split up our training dataset and create useful estimates of performance for our machine learning algorithms:\n", + "\n", + "* Train and Test Sets.\n", + "* k-fold Cross Validation.\n", + "* Leave One Out Cross Validation.\n", + "* Repeated Random Test-Train Splits.\n", + "\n", + "# a) Split-out validation dataset\n", + "\n", + "### Split into Train and Test Sets\n", + "The simplest method that we can use to evaluate the performance of a machine learning algorithm is to use different training and testing datasets. We can take our original dataset and split it into two parts. Train the algorithm on the train part, make predictions on the second part and evaluate the predictions against the expected results. The size of the split can depend on the size and species of your dataset, although it is common to use 67% of the data for training and the remaining 33% for testing. This algorithm evaluation technique is very fast. It is ideal for large datasets (millions of records) where there is strong evidence that both splits of the data are representative of the underlying problem. Because of the speed, it is useful to use this approach when the algorithm you are investigating is slow to train. A downside of this technique is that it can have a high variance. This means that di\u000b", + "erences in the training and test dataset can result in meaningful diferences in the estimate of accuracy. In the example below we split the Pima Indians dataset into 70%/30% splits for training and test and evaluate the accuracy of a Logistic Regression model.\n", + "\n", + "
\n", + "Good explanation here." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LogisticRegression\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "test_size = 0.30\n", + "seed = 7\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\n", + "random_state=seed)\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "result = model.score(X_test, Y_test)\n", + "print(\"Accuracy: \", (result*100.0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# b) Test options and evaluation metric" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# K-fold Cross Validation\n", + "Cross validation is an approach that you can use to estimate the performance of a machine learning algorithm with less variance than a single train-test set split. It works by splitting the dataset into k-parts (e.g. k = 5 or k = 10). Each split of the data is called a fold. The algorithm is trained on k 1 folds with one held back and tested on the held back fold. This is repeated so that each fold of the dataset is given a chance to be the held back test set. After running cross validation you end up with k diferent performance scores that you can summarize using a mean and a standard deviation. The result is a more reliable estimate of the performance of the algorithm on new data. It is more accurate because the algorithm is trained and evaluated multiple times on different data. The choice of k must allow the size of each test partition to be large enough to be a reasonable sample of the problem, whilst allowing enough repetitions of the train-test evaluation of the algorithm to provide a fair estimate of the algorithms performance on unseen data. For modest sized datasets in the thousands or tens of thousands of records, k values of 3, 5 and 10 are common." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "num_folds = 10 #number of folds to use are 10\n", + "seed = 7 #reproducibility\n", + "\n", + "kfold = KFold(n_splits=num_folds, random_state=seed)\n", + "model = LogisticRegression()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "\n", + "print(f\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Leave One Out Cross Validation\n", + "You can configure cross validation so that the size of the fold is 1 (k is set to the number of observations in your dataset). This variation of cross validation is called leave-one-out cross validation. The result is a large number of performance measures that can be summarized in an effort to give a more reasonable estimate of the accuracy of your model on unseen data. A downside is that it can be a computationally more expensive procedure than k-fold cross validation. In the example below we use leave-one-out cross validation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import LeaveOneOut\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "loocv = LeaveOneOut()\n", + "model = LogisticRegression()\n", + "results = cross_val_score(model, X, Y, cv=loocv)\n", + "print(\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Repeated Random Test-Train Splits\n", + "Another variation on k-fold cross validation is to create a random split of the data like the train/test split described above, but repeat the process of splitting and evaluation of the algorithm multiple times, like cross validation. This has the speed of using a train/test split and the reduction in variance in the estimated performance of k-fold cross validation. You can also repeat the process many more times as needed to improve the accuracy. A down side is that repetitions may include much of the same data in the train or the test split from run to run, introducing redundancy into the evaluation. The example below splits the data into a 70%/30% train/test split and repeats the process 10 times." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import ShuffleSplit\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "n_splits = 10\n", + "test_size = 0.30\n", + "seed = 7\n", + "kfold = ShuffleSplit(n_splits=n_splits, test_size=test_size, random_state=seed)\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(\"Accuracy: \" , (results.mean()*100.0, results.std()*100.0))\n", + "\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "cross_validation_report = pd.DataFrame(output)\n", + "cross_validation_report.columns = ['CLASS']\n", + "cross_validation_report.index.name = 'Index'\n", + "cross_validation_report['CLASS'] = cross_validation_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "cross_validation_report.to_csv('cross_validation_report.csv')\n", + "\n", + "print(cross_validation_report['CLASS'].unique())\n", + "print('False: ',cross_validation_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',cross_validation_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# NOTE: What Techniques to Use When\n", + "This section lists some tips to consider what resampling technique to use in diferent circum- stances.\n", + "\n", + "Generally k-fold cross validation is the gold standard for evaluating the performance of amachine learning algorithm on unseen data with k set to 3, 5, or 10.\n", + "Using a train/test split is good for speed when using a slow algorithm and producesperformance estimates with lower bias when using large datasets.\n", + "Techniques like leave-one-out cross validation and repeated random splits can be usefulintermediates when trying to balance variance in the estimated performance, modeltraining speed and dataset size.\n", + "The best advice is to experiment and find a technique for your problem that is fast and produces reasonable estimates of performance that you can use to make decisions. If in doubt, use 10-fold cross validation.\n", + "# Machine Learning Algorithm Performance Metrics\n", + "\n", + "The metrics that you choose to evaluate your machine learning algorithms are very important.\n", + "Choice of metrics in\n", + "uences how the performance of machine learning algorithms is measured\n", + "and compared. They in\n", + "uence how you weight the importance of different characteristics in\n", + "the results and your ultimate choice of which algorithm to choose.\n", + "\n", + "## Algorithm Evaluation Metrics\n", + "In this lesson, various different algorithm evaluation metrics are demonstrated for both classification and regression type machine learning problems. In each recipe, the dataset is downloaded\n", + "directly from the Machine Learning repository.\n", + "\n", + "## Classiffication Metrics\n", + "Classiffication problems are perhaps the most common type of machine learning problem and as such there are a myriad of metrics that can be used to evaluate predictions for these problems. In this section we will review how to use the following metrics:\n", + "\n", + "* Classiffication Accuracy.\n", + "* Logarithmic Loss.\n", + "* Area Under ROC Curve.\n", + "* Confusion Matrix.\n", + "* Classiffication Report.\n", + "\n", + "## Classiffication Accuracy\n", + "Classiffication accuracy is the number of correct predictions made as a ratio of all predictions made. This is the most common evaluation metric for classi\f", + "cation problems, it is also the most misused. It is really only suitable when there are an equal number of observations in each class (which is rarely the case) and that all predictions and prediction errors are equally important, which is often not the case. Below is an example of calculating classiffication accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import matthews_corrcoef\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LogisticRegression()\n", + "scoring = 'accuracy'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"Accuracy:\", (results.mean(), results.std()))\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "classification_accuracy_report = pd.DataFrame(output)\n", + "classification_accuracy_report.columns = ['CLASS']\n", + "classification_accuracy_report.index.name = 'Index'\n", + "classification_accuracy_report['CLASS'] = classification_accuracy_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "classification_accuracy_report.to_csv('classification_accuracy_report.cp.csv')\n", + "\n", + "print(classification_accuracy_report['CLASS'].unique())\n", + "print('False: ',classification_accuracy_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',classification_accuracy_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Confusion Matrix\n", + "The confusion matrix is a handy presentation of the accuracy of a model with two or more classes. The table presents predictions on the x-axis and accuracy outcomes on the y-axis. The cells of the table are the number of predictions made by a machine learning algorithm. For example, a machine learning algorithm can predict 0 or 1 and each prediction may actually have been a 0 or 1. Predictions for 0 that were actually 0 appear in the cell for prediction = 0 and actual = 0, whereas predictions for 0 that were actually 1 appear in the cell for prediction = 0 and actual = 1. And so on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "test_size = 0.30\n", + "seed = 7\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\n", + "random_state=seed)\n", + "\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "\n", + "predicted = model.predict(X_test)\n", + "matrix = confusion_matrix(Y_test, predicted)\n", + "print(matrix)\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "confusion_matrix_report = pd.DataFrame(output)\n", + "confusion_matrix_report.columns = ['CLASS']\n", + "confusion_matrix_report.index.name = 'Index'\n", + "confusion_matrix_report['CLASS'] = confusion_matrix_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "confusion_matrix_report.to_csv('confusion_matrix_report.csv')\n", + "\n", + "print(confusion_matrix_report['CLASS'].unique())\n", + "print('False: ',confusion_matrix_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',confusion_matrix_report.groupby('CLASS').size()[1].sum())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Classiffication Report\n", + "The scikit-learn library provides a convenience report when working on classiffication problems to give you a quick idea of the accuracy of a model using a number of measures. The classification report() function displays the precision, recall, F1-score and support for each class. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "test_size = 0.30\n", + "seed = 7\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\n", + "random_state=seed)\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "predicted = model.predict(X_test)\n", + "report = classification_report(Y_test, predicted)\n", + "print(report)\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Classification_report = pd.DataFrame(output)\n", + "Classification_report.columns = ['CLASS']\n", + "Classification_report.index.name = 'Index'\n", + "Classification_report['CLASS'] = Classification_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Classification_report.to_csv('Classification_report.csv')\n", + "\n", + "print(Classification_report['CLASS'].unique())\n", + "print('False: ',Classification_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',Classification_report.groupby('CLASS').size()[1].sum())\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Spot-Check Classiffication Algorithms.\n", + "Spot-checking is a way of discovering which algorithms perform well on your machine learning problem. You cannot know which algorithms are best suited to your problem beforehand. You must trial a number of \n", + "methods and focus attention on those that prove themselves the most promising.\n", + "\n", + "1. How to spot-check machine learning algorithms on a classification problem.\n", + "2. How to spot-check two linear classification algorithms.\n", + "3. How to spot-check four nonlinear classification algorithms.\n", + "\n", + "## Algorithm Spot-Checking\n", + "You cannot know which algorithm will work best on your dataset beforehand. You must use trial and error to discover a shortlist of algorithms that do well on your problem that you can then double down on and tune further. I call this process spot-checking. The question is not: What algorithm should I use on my dataset? Instead it is: What algorithms should I spot-check on my dataset? You can guess at what algorithms might do well on your dataset, and this can be a good starting point. I recommend trying a mixture of algorithms and see what is good at picking out the structure in your data. Below are some suggestions when spot-checking algorithms on your dataset:\n", + "\n", + "Try a mixture of algorithm representations (e.g. instances and trees).\n", + "\n", + "Try a mixture of learning algorithms (e.g. di\u000b", + "erent algorithms for learning the same type of representation).\n", + "\n", + "Try a mixture of modeling types (e.g. linear and nonlinear functions or parametric and nonparametric).\n", + "\n", + "Algorithms Overview\n", + "We are going to take a look at six classi\f", + "cation algorithms that you can spot-check on your dataset. Starting with two linear machine learning algorithms:\n", + "\n", + "Logistic Regression.\n", + "Linear Discriminant Analysis.\n", + "Then looking at four nonlinear machine learning algorithms:\n", + "\n", + "k-Nearest Neighbors.\n", + "Naive Bayes.\n", + "Classiffication and Regression Trees.\n", + "Support Vector Machines.\n", + "Linear Machine Learning Algorithms\n", + "This section demonstrates minimal recipes for how to use two linear machine learning algorithms: logistic regression and linear discriminant analysis.\n", + "\n", + "Logistic Regression\n", + "Logistic regression assumes a Gaussian distribution for the numeric input variables and can model binary classiffication problems. You can construct a logistic regression model using the LogisticRegression class.\n", + "\n", + "
\n", + "Great information there." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Logistic Regression Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LogisticRegression()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "LogisticRegression = pd.DataFrame(output)\n", + "LogisticRegression.columns = ['CLASS']\n", + "LogisticRegression.index.name = 'Index'\n", + "LogisticRegression['CLASS'] = LogisticRegression['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "LogisticRegression.to_csv('LogisticRegression.csv')\n", + "\n", + "print(LogisticRegression['CLASS'].unique())\n", + "print('False: ',LogisticRegression.groupby('CLASS').size()[0].sum())\n", + "print('True: ',LogisticRegression.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Linear Discriminant Analysis\n", + "Linear Discriminant Analysis or LDA is a statistical technique for binary and multiclass classiffication. It too assumes a Gaussian distribution for the numerical input variables. You can construct an LDA model using the LinearDiscriminantAnalysis class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearDiscriminantAnalysis()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "LinearDiscriminantAnalysis = pd.DataFrame(output)\n", + "LinearDiscriminantAnalysis.columns = ['CLASS']\n", + "LinearDiscriminantAnalysis.index.name = 'Index'\n", + "LinearDiscriminantAnalysis['CLASS'] = LinearDiscriminantAnalysis['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "LinearDiscriminantAnalysis.to_csv('LinearDiscriminantAnalysis.csv')\n", + "\n", + "print(LinearDiscriminantAnalysis['CLASS'].unique())\n", + "print('False: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[0].sum())\n", + "print('True: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nonlinear Machine Learning Algorithms\n", + "This section demonstrates minimal recipes for how to use 4 nonlinear machine learning algorithms.\n", + "\n", + "## k-Nearest Neighbors\n", + "The k-Nearest Neighbors algorithm (or KNN) uses a distance metric to find the k most similar instances in the training data for a new instance and takes the mean outcome of the neighbors as the prediction. You can construct a KNN model using the KNeighborsClassifier class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = KNeighborsClassifier()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "k_nearest = pd.DataFrame(output)\n", + "k_nearest.columns = ['CLASS']\n", + "k_nearest.index.name = 'Index'\n", + "k_nearest['CLASS'] = k_nearest['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "k_nearest.to_csv('k_nearest.csv')\n", + "\n", + "print(k_nearest['CLASS'].unique())\n", + "print('False: ',k_nearest.groupby('CLASS').size()[0].sum())\n", + "print('True: ',k_nearest.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Naive Bayes\n", + "Naive Bayes calculates the probability of each class and the conditional probability of each class given each input value. These probabilities are estimated for new data and multiplied together, assuming that they are all independent (a simple or naive assumption). When working with real-valued data, a Gaussian distribution is assumed to easily estimate the probabilities for input variables using the Gaussian Probability Density Function. You can construct a Naive Bayes model using the GaussianNB class4." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.naive_bayes import GaussianNB\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = GaussianNB()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "naive_bayes = pd.DataFrame(output)\n", + "naive_bayes.columns = ['CLASS']\n", + "naive_bayes.index.name = 'Index'\n", + "naive_bayes['CLASS'] = naive_bayes['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "naive_bayes.to_csv('naive_bayes_nb.csv')\n", + "\n", + "print(naive_bayes['CLASS'].unique())\n", + "print('False: ',naive_bayes.groupby('CLASS').size()[0].sum())\n", + "print('True: ',naive_bayes.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Classiffication and Regression Trees\n", + "Classiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = DecisionTreeClassifier()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "DecisionTree_report = pd.DataFrame(output)\n", + "DecisionTree_report.columns = ['CLASS']\n", + "DecisionTree_report.index.name = 'Index'\n", + "DecisionTree_report['CLASS'] = DecisionTree_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "DecisionTree_report.to_csv('DecisionTree_report_dt.csv')\n", + "\n", + "print(DecisionTree_report['CLASS'].unique())\n", + "print('False: ',DecisionTree_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',DecisionTree_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Support Vector Machines\n", + "Support Vector Machines (or SVM) seek a line that best separates two classes. Those data instances that are closest to the line that best separates the classes are called support vectors and in uence where the line is placed. SVM has been extended to support multiple classes. Of particular importance is the use of di\u000b", + "erent kernel functions via the kernel parameter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.svm import SVC\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10)\n", + "model = SVC()\n", + "scoring = 'acuracy'\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "finalreport1 = pd.DataFrame(output)\n", + "finalreport1.columns = ['CLASS']\n", + "finalreport1.index.name = 'Index'\n", + "finalreport1['CLASS'] = finalreport1['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "finalreport1.to_csv('finalreport1_sv.csv')\n", + "\n", + "print(finalreport1['CLASS'].unique())\n", + "print('False: ',finalreport1.groupby('CLASS').size()[0].sum())\n", + "print('True: ',finalreport1.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Regression Metrics\n", + "In this section will review 3 of the most common metrics for evaluating predictions on regression\n", + "machine learning problems:\n", + "- Mean Absolute Error.\n", + "- Mean Squared Error.\n", + "- R2.\n", + "\n", + "## Mean Absolute Error\n", + "The Mean Absolute Error (or MAE) is the sum of the absolute di\u000b", + "erences between predictions\n", + "and actual values. It gives an idea of how wrong the predictions were. The measure gives an\n", + "idea of the magnitude of the error, but no idea of the direction (e.g. over or under predicting).\n", + "The example below demonstrates calculating mean absolute error on the Boston house price\n", + "dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_csv\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearRegression()\n", + "scoring = 'neg_mean_absolute_error'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"MAE:\",(results.mean(), results.std()))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mean Squared Error\n", + "The Mean Squared Error (or MSE) is much like the mean absolute error in that it provides a gross idea of the magnitude of error. Taking the square root of the mean squared error converts the units back to the original units of the output variable and can be meaningful for description and presentation. This is called the Root Mean Squared Error (or RMSE). The example below provides a demonstration of calculating mean squared error." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross Validation Regression MSE\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearRegression()\n", + "scoring = 'neg_mean_squared_error'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"MSE:\",(results.mean(), results.std()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This metric too is inverted so that the results are increasing. Remember to take the absolute value before taking the square root if you are interested in calculating the RMSE.\n", + "\n", + "## R2 Metric\n", + "The R2 (or R Squared) metric provides an indication of the goodness of fit of a set of predictions to the actual values. In statistical literature this measure is called the coefficient of determination. This is a value between 0 and 1 for no-fit and perfect fit respectively. The example below provides a demonstration of calculating the mean R2 for a set of predictions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross Validation Regression R^2\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearRegression()\n", + "scoring = 'r2'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"R^2:\",(results.mean(), results.std()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Classiffication and Regression Trees\n", + "Classiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = DecisionTreeClassifier()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# d) Compare Algorithms\n", + "## Compare Machine Learning Algorithms\n", + "It is important to compare the performance of multiple di\u000b", + "erent machine learning algorithms\n", + "consistently. In this chapter you will discover how you can create a test harness to compare\n", + "multiple different machine learning algorithms in Python with scikit-learn. You can use this\n", + "test harness as a template on your own machine learning problems and add more and different\n", + "algorithms to compare. After completing this lesson you will know:\n", + "\n", + "1. How to formulate an experiment to directly compare machine learning algorithms.\n", + "2. A reusable template for evaluating the performance of multiple algorithms on one dataset.\n", + "3. How to report and visualize the results when comparing algorithm performance.\n", + "\n", + "\n", + "### Choose The Best Machine Learning Model\n", + "When you work on a machine learning project, you often end up with multiple good models\n", + "to choose from. Each model will have different performance characteristics. Using resampling\n", + "methods like cross validation, you can get an estimate for how accurate each model may be on\n", + "unseen data. You need to be able to use these estimates to choose one or two best models from\n", + "the suite of models that you have created.\n", + "When you have a new dataset, it is a good idea to visualize the data using different techniques\n", + "in order to look at the data from di\u000b", + "erent perspectives. The same idea applies to model selection.\n", + "You should use a number of di\u000b", + "erent ways of looking at the estimated accuracy of your machine\n", + "learning algorithms in order to choose the one or two algorithm to finalize. A way to do this is\n", + "to use visualization methods to show the average accuracy, variance and other properties of the\n", + "distribution of model accuracies. In the next section you will discover exactly how you can do\n", + "that in Python with scikit-learn.\n", + "\n", + "\n", + "### Compare Machine Learning Algorithms Consistently\n", + "The key to a fair comparison of machine learning algorithms is ensuring that each algorithm is\n", + "evaluated in the same way on the same data. You can achieve this by forcing each algorithm to be evaluated on a consistent test harness. In the example below six different classiffication\n", + "algorithms are compared on a single dataset:\n", + "\n", + "- Logistic Regression.\n", + "- Linear Discriminant Analysis.\n", + "- k-Nearest Neighbors.\n", + "- Classiffication and Regression Trees.\n", + "- Naive Bayes.\n", + "- Support Vector Machines.\n", + "\n", + "The dataset is the Pima Indians onset of diabetes problem. The problem has two classes and\n", + "eight numeric input variables of varying scales. The 10-fold cross validation procedure is used to\n", + "evaluate each algorithm, importantly con\f", + "gured with the same random seed to ensure that the\n", + "same splits to the training data are performed and that each algorithm is evaluated in precisely\n", + "the same way. Each algorithm is given a short name, useful for summarizing results afterward." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Compare Algorithms\n", + "from pandas import read_csv\n", + "from matplotlib import pyplot\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "from sklearn.naive_bayes import GaussianNB\n", + "from sklearn.svm import SVC\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "# load dataset\n", + "array = Train.values\n", + "\n", + "#split the dataset \n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "# prepare models and add them to a list\n", + "models = []\n", + "models.append(('LR', LogisticRegression()))\n", + "models.append(('LDA', LinearDiscriminantAnalysis()))\n", + "models.append(('KNN', KNeighborsClassifier()))\n", + "models.append(('CART', DecisionTreeClassifier()))\n", + "models.append(('NB', GaussianNB()))\n", + "models.append(('SVM', SVC()))\n", + "\n", + "# evaluate each model in turn\n", + "results = []\n", + "names = []\n", + "scoring = 'accuracy'\n", + "\n", + "for name, model in models:\n", + " kfold = KFold(n_splits=10, random_state=7)\n", + " cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + " results.append(cv_results)\n", + " names.append(name)\n", + " msg = (name, cv_results.mean(), cv_results.std())\n", + " print(msg)\n", + "\n", + "# boxplot algorithm comparison\n", + "fig = pyplot.figure()\n", + "fig.suptitle('Algorithm Comparison')\n", + "ax = fig.add_subplot(111)\n", + "pyplot.boxplot(results)\n", + "ax.set_xticklabels(names)\n", + "pyplot.show()\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "compare_testmethods_report = pd.DataFrame(output)\n", + "compare_testmethods_report.columns = ['CLASS']\n", + "compare_testmethods_report.index.name = 'Index'\n", + "compare_testmethods_report['CLASS'] = compare_testmethods_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "compare_testmethods_report.to_csv('compare_testmethods_report.csv')\n", + "\n", + "print(compare_testmethods_report['CLASS'].unique())\n", + "print('False: ',compare_testmethods_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',compare_testmethods_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Automate Machine Learning Workflows with Pipelines\n", + "\n", + "There are standard work\n", + "ows in a machine learning project that can be automated. In Python\n", + "scikit-learn, Pipelines help to clearly define and automate these work\n", + "ows. In this chapter you\n", + "will discover Pipelines in scikit-learn and how you can automate common machine learning\n", + "work\n", + "ows. After completing this lesson you will know:\n", + "\n", + "1. How to use pipelines to minimize data leakage.\n", + "2. How to construct a data preparation and modeling pipeline.\n", + "3. How to construct a feature extraction and modeling pipeline.\n", + "\n", + "### Automating Machine Learning Workflows\n", + "There are standard work\n", + "ows in applied machine learning. Standard because they overcome\n", + "common problems like data leakage in your test harness. Python scikit-learn provides a Pipeline\n", + "utility to help automate machine learning work\n", + "ows. Pipelines work by allowing for a linear\n", + "sequence of data transforms to be chained together culminating in a modeling process that can\n", + "be evaluated.\n", + "\n", + "The goal is to ensure that all of the steps in the pipeline are constrained to the data available\n", + "for the evaluation, such as the training dataset or each fold of the cross validation procedure.\n", + "You can learn more about Pipelines in scikit-learn by reading the Pipeline section1 of the user\n", + "guide. You can also review the API documentation for the Pipeline and FeatureUnion classes\n", + "and the pipeline module2.\n", + "\n", + "### Data Preparation and Modeling Pipeline\n", + "An easy trap to fall into in applied machine learning is leaking data from your training dataset\n", + "to your test dataset. To avoid this trap you need a robust test harness with strong separation of training and testing. This includes data preparation. Data preparation is one easy way to leak\n", + "knowledge of the whole training dataset to the algorithm. For example, preparing your data\n", + "using normalization or standardization on the entire training dataset before learning would not\n", + "be a valid test because the training dataset would have been in\n", + "uenced by the scale of the data\n", + "in the test set.\n", + "\n", + "\n", + "Pipelines help you prevent data leakage in your test harness by ensuring that data preparation\n", + "like standardization is constrained to each fold of your cross validation procedure. The example\n", + "below demonstrates this important data preparation and model evaluation work\n", + "ow on the\n", + "Pima Indians onset of diabetes dataset. The pipeline is de\f", + "ned with two steps:\n", + "\n", + "1. Standardize the data.\n", + "2. Learn a Linear Discriminant Analysis model.\n", + "\n", + "The pipeline is then evaluated using 10-fold cross validation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a pipeline that standardizes the data then creates a model\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "# load data\n", + "\n", + "#dataframe = read_csv('diabetes.csv')\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "# create pipeline\n", + "estimators = []\n", + "estimators.append(('standardize', StandardScaler()))\n", + "estimators.append(('lda', LinearDiscriminantAnalysis()))\n", + "model = Pipeline(estimators)\n", + "\n", + "\n", + "# evaluate pipeline\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "standarzied_pipeline_report = pd.DataFrame(output)\n", + "standarzied_pipeline_report.columns = ['CLASS']\n", + "standarzied_pipeline_report.index.name = 'Index'\n", + "standarzied_pipeline_report['CLASS'] = standarzied_pipeline_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "standarzied_pipeline_report.to_csv('standarzied_pipeline_report.csv')\n", + "\n", + "print(standarzied_pipeline_report['CLASS'].unique())\n", + "print('False: ',standarzied_pipeline_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',standarzied_pipeline_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 5. Improve Accuracy\n", + "# a) Algorithm Tuning\n", + "# b) Ensembles\n", + "\n", + "# Improve Performance with Ensembles\n", + "\n", + "Ensembles can give you a boost in accuracy on your dataset. In this chapter you will discover\n", + "how you can create some of the most powerful types of ensembles in Python using scikit-learn.\n", + "This lesson will step you through Boosting, Bagging and Majority Voting and show you how you\n", + "can continue to ratchet up the accuracy of the models on your own datasets. After completing\n", + "this lesson you will know:\n", + "\n", + "1. How to use bagging ensemble methods such as bagged decision trees, random forest and extra trees.\n", + "2. How to use boosting ensemble methods such as AdaBoost and stochastic gradient boosting.\n", + "3. How to use voting ensemble methods to combine the predictions from multiple algorithms.\n", + "\n", + "### Combine Models Into Ensemble Predictions\n", + "The three most popular methods for combining the predictions from different models are:\n", + "\n", + "- Bagging. Building multiple models (typically of the same type) from different subsamples of the training dataset.\n", + "- Boosting. Building multiple models (typically of the same type) each of which learns to fix the prediction errors of a prior model in the sequence of models.\n", + "- Voting. Building multiple models (typically of di\u000b", + "ering types) and simple statistics (like calculating the mean) are used to combine predictions.\n", + "\n", + "This assumes you are generally familiar with machine learning algorithms and ensemble\n", + "methods and will not go into the details of how the algorithms work or their parameters.\n", + "The Pima Indians onset of Diabetes dataset is used to demonstrate each algorithm. Each\n", + "ensemble algorithm is demonstrated using 10-fold cross validation and the classiffication accuracy\n", + "performance metric.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Boosting Algorithms\n", + "Boosting ensemble algorithms creates a sequence of models that attempt to correct the mistakes\n", + "of the models before them in the sequence. Once created, the models make predictions which\n", + "may be weighted by their demonstrated accuracy and the results are combined to create a final\n", + "output prediction. The two most common boosting ensemble machine learning algorithms are:\n", + "\n", + "- AdaBoost.\n", + "- Stochastic Gradient Boosting.\n", + "\n", + "\n", + "### AdaBoost\n", + "AdaBoost was perhaps the \f", + "rst successful boosting ensemble algorithm. It generally works\n", + "by weighting instances in the dataset by how easy or di\u000ecult they are to classify, allowing\n", + "the algorithm to pay or less attention to them in the construction of subsequent models. You\n", + "can construct an AdaBoost model for classi\f", + "cation using the AdaBoostClassifier class4. The\n", + "example below demonstrates the construction of 30 decision trees in sequence using the AdaBoost\n", + "algorithm." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# AdaBoost Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import AdaBoostClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "num_trees = 30\n", + "seed=7\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "\n", + "model = AdaBoostClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "\n", + "print(results.mean())\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "AdaBoost_report = pd.DataFrame(output)\n", + "AdaBoost_report.columns = ['CLASS']\n", + "AdaBoost_report.index.name = 'Index'\n", + "AdaBoost_report['CLASS'] = AdaBoost_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "AdaBoost_report.to_csv('AdaBoost_report.csv')\n", + "\n", + "print(AdaBoost_report['CLASS'].unique())\n", + "print('False: ',AdaBoost_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',AdaBoost_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stochastic Gradient Boosting\n", + "Stochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\n", + "sophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\n", + "the best techniques available for improving performance via ensembles. You can construct a\n", + "Gradient Boosting model for classiffication using the GradientBoostingClassifier class5. The\n", + "example below demonstrates Stochastic Gradient Boosting for classification with 100 trees" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stochastic Gradient Boosting Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import GradientBoostingClassifier\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "seed = 7\n", + "num_trees = 100\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "model = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## XGB" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stochastic X Gradient Boosting Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from xgboost import XGBClassifier\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "seed = 7\n", + "num_trees = 100\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "model = XGBClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Voting Ensemble\n", + "Voting is one of the simplest ways of combining the predictions from multiple machine learning\n", + "algorithms. It works by first creating two or more standalone models from your training dataset.\n", + "A Voting Classiffier can then be used to wrap your models and average the predictions of the\n", + "sub-models when asked to make predictions for new data. The predictions of the sub-models can\n", + "be weighted, but specifying the weights for classiffiers manually or even heuristically is difficult.\n", + "More advanced methods can learn how to best weight the predictions from sub-models, but this\n", + "is called stacking (stacked aggregation) and is currently not provided in scikit-learn.\n", + "You can create a voting ensemble model for classiffication using the VotingClassifier\n", + "class6. The code below provides an example of combining the predictions of logistic regression,\n", + "classiffication and regression trees and support vector machines together for a classiffication\n", + "problem." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Voting Ensemble for Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from xgboost import XGBClassifier\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.svm import SVC\n", + "from sklearn.ensemble import VotingClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "\n", + "# create the sub models\n", + "estimators = []\n", + "model1 = LogisticRegression()\n", + "estimators.append(('logistic', model1))\n", + "\n", + "model2 = DecisionTreeClassifier()\n", + "estimators.append(('cart', model2))\n", + "\n", + "model3 = SVC()\n", + "estimators.append(('svm', model3))\n", + "\n", + "model4 = XGBClassifier()\n", + "estimators.append(('xgb', model4))\n", + "\n", + "model5 = RandomForestClassifier()\n", + "estimators.append(('rfc', model5))\n", + "\n", + "# create the ensemble model\n", + "ensemble = VotingClassifier(estimators)\n", + "results = cross_val_score(ensemble, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Voting_Ensemble_report = pd.DataFrame(output)\n", + "Voting_Ensemble_report.columns = ['CLASS']\n", + "Voting_Ensemble_report.index.name = 'Index'\n", + "Voting_Ensemble_report['CLASS'] = Voting_Ensemble_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Voting_Ensemble_report.to_csv('Voting_Ensemble_report.csv')\n", + "\n", + "print(Voting_Ensemble_report['CLASS'].unique())\n", + "print('False: ',Voting_Ensemble_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',Voting_Ensemble_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Extra Trees\n", + "Extra Trees are another modi\f", + "cation of bagging where random trees are constructed from\n", + "samples of the training dataset. You can construct an Extra Trees model for classiffication using\n", + "the ExtraTreesClassifier class3. The example below provides a demonstration of extra trees\n", + "with the number of trees set to 100 and splits chosen from 7 random features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import ExtraTreesClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "#let's read the data\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "num_trees = 100\n", + "max_features = 7\n", + "\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "\n", + "model = ExtraTreesClassifier(n_estimators=num_trees, max_features=max_features)\n", + "\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Extra_tree_report = pd.DataFrame(output)\n", + "Extra_tree_report.columns = ['CLASS']\n", + "Extra_tree_report.index.name = 'Index'\n", + "Extra_tree_report['CLASS'] = Extra_tree_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Extra_tree_report.to_csv('Extra_tree_report.csv')\n", + "\n", + "print(Extra_tree_report.groupby('CLASS').size()[1].sum())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stochastic Gradient Boosting\n", + "Stochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\n", + "sophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\n", + "the best techniques available for improving performance via ensembles." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stochastic Gradient Boosting Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import GradientBoostingClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "seed = 7\n", + "num_trees = 100\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "model = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Stochastic_report = pd.DataFrame(output)\n", + "Stochastic_report.columns = ['CLASS']\n", + "Stochastic_report.index.name = 'Index'\n", + "Stochastic_report['CLASS'] = Stochastic_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Stochastic_report.to_csv('Stochastic_report.csv')\n", + "\n", + "print(Stochastic_report.groupby('CLASS').size()[1].sum())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finalize Your Model with pickle\n", + "Pickle is the standard way of serializing objects in Python. You can use the pickle1 operation\n", + "to serialize your machine learning algorithms and save the serialized format to a file. Later you\n", + "can load this file to deserialize your model and use it to make new predictions. The example\n", + "below demonstrates how you can train a logistic regression model on data set and save the model to file and load it to make predictions on the unseen test set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Save Model Using Pickle\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LogisticRegression\n", + "from pickle import dump\n", + "from pickle import load\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n", + "# Fit the model on 30%\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "\n", + "# save the model to disk\n", + "filename = 'finalized_model2.sav'\n", + "dump(model, open(filename, 'wb'))\n", + "\n", + "# some time later...\n", + "# load the model from disk\n", + "loaded_model = load(open(filename, 'rb'))\n", + "result = loaded_model.score(X_test, Y_test)\n", + "print(result)\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "pickle_report = pd.DataFrame(output)\n", + "pickle_report.columns = ['CLASS']\n", + "pickle_report.index.name = 'Index'\n", + "pickle_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "pickle_report.to_csv('pickle.csv')\n", + "\n", + "print(pickle_report['CLASS'].unique())\n", + "print('False: ',pickle_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',pickle_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finalize Your Model with Joblib\n", + "The Joblib2 library is part of the SciPy ecosystem and provides utilities for pipelining Python\n", + "jobs. It provides utilities for saving and loading Python objects that make use of NumPy data\n", + "structures, efficiently3. This can be useful for some machine learning algorithms that require a\n", + "lot of parameters or store the entire dataset (e.g. k-Nearest Neighbors). The example below\n", + "demonstrates how you can train a logistic regression model on the dataset, save the model to file using Joblib and load it to make predictions on the unseen test\n", + "set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Save Model Using joblib\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.externals.joblib import dump\n", + "from sklearn.externals.joblib import load\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n", + "\n", + "# Fit the model on 30%\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "\n", + "# save the model to disk\n", + "\n", + "dump(model, filename)\n", + "\n", + "# some time later...\n", + "# load the model from disk\n", + "loaded_model = load(filename)\n", + "result = loaded_model.score(X_test, Y_test)\n", + "print(result)\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "joblib_report = pd.DataFrame(output)\n", + "joblib_report.columns = ['CLASS']\n", + "joblib_report.index.name = 'Index'\n", + "picklej_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "pickle_report.to_csv('pickle.csv')\n", + "\n", + "print(pickle_report['CLASS'].unique())\n", + "print('False: ',pickle_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',pickle_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.4" + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Assignment Colab/kakooza trevor Starter Kernel.ipynb b/Assignment Colab/kakooza trevor Starter Kernel.ipynb index 13504c0..1324121 100644 --- a/Assignment Colab/kakooza trevor Starter Kernel.ipynb +++ b/Assignment Colab/kakooza trevor Starter Kernel.ipynb @@ -1 +1,2308 @@ -{"cells":[{"metadata":{},"cell_type":"markdown","source":" # KAKOOZA TREVOR\n## Kaggle assignment\n### started on the 28th /feb/2020"},{"metadata":{},"cell_type":"markdown","source":"# 1. Prepare Problem\n### a) Load libraries\n### b) Load dataset"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Import the necessary tools required to work on the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#import the necessary libraries you are going to use\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# -----> Put your code here below:\n\n\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"\n# This first session is about loading the give dataset and viewing them. \n\n* The two data set provided are\n1. test.csv\n2. AMP_TrainSet.csv \n\n### Now load the data set using.\n```\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")\nTest = pd.read_csv(\"../input/amp-data-set/Test.csv\")\n```\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#using pandas we call the data set\nTest = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 2. Summarize Data\n\n## View the first five raws of the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#head.() is ued to view the first five raws of the data set.\nTest.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.head()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Shape function\n* This function helps to view the total raws and columns (dimension) of the dataset. "},{"metadata":{"trusted":true},"cell_type":"code","source":"# check the dimensions of your data\n\nTrain.shape, Test.shape\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Data type\n* This returns a Series with the data type of each column.\n* The result’s index is the original DataFrame’s columns"},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.dtypes","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.dtypes","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## isnull().sum\n* This function helps to see if the dataset has any missing values."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.isnull().sum","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"* When we look at the data ,it shows that both the test and train dataset does not have any missing values"},{"metadata":{},"cell_type":"markdown","source":"## Then in column of class we check and find out,\n* How is the data divied into.\n* Here the unique function does that."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train['CLASS'].unique()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# a) Descriptive statistics\n## Descriptive statistics of the data\n* Generate descriptive statistics that summarize the central tendency,\ndispersion and shape of a dataset's distribution, excluding\n``NaN`` values.\n\nAnalyzes both numeric and object series, as well\nas ``DataFrame`` column sets of mixed data types. The output\nwill vary depending on what is provided.\n\n### For example this function will provide the following summary\n* Count.\n* Mean.\n* Standard Deviation.\n* Minimum Value.\n* 25th Percentile.\n* 75th Percentile(Median).\n* Maximum Value.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.describe()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# (c)Check the dataset info"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.info()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# b) Data visualizations\n## Class Distribution\n\nA groupby operation involves some combination of splitting the\nobject, applying a function, and combining the results. This can be\nused to group large amounts of data and compute operations on these\ngroups."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.groupby('CLASS').size().plot(kind='bar')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Correlations Between Attributes\nIs the a mutual relationship or connection between two or more things.\n\nNote: Correlation refers to the relationship between two variables and how they may or may notchange together. The most common method for calculating correlation is Pearson's Correlation Coefficient, that assumes a normal distribution of the attributes involved.\n\nA correlation of -1 or 1 shows a full negative or positive correlation respectively. Whereas a value of 0 shows no correlation at all. "},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.corr(method='pearson')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Plotting to show the correlation\n\nplot a heat map to show us the correlation of the data.\n\nWith the help of ; seaborn\nthe we can use spearman or pearson method.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#The first step is to choose the figure size then use the heatmap to plot.\nplt.figure(figsize=(7,7))\nsns.heatmap(Train.corr(method='pearson'))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## we can also check the correlation in regards to the CLASS"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.corr(method='pearson')['CLASS']","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Skew of Univariate Distributions\n### Definition of skew.\n* Is the suddenly change direction or position.\n* or Skew refers to a distribution that is assumed Gaussian (normal or bell curve) that is shifted or squashed in one direction or another. \n\n\nYou can calculate the skew of each attribute using the skew() function on the Pandas DataFrame.\n\n#### NOTE: If skewness value lies above +1 or below -1, data is highly skewed. If it lies between +0.5 to -0.5, it is moderately skewed. If the value is 0, then the data is symmetric\n\n### Positively skewed data:\nIf tail is on the right as that of the second image in the figure, it is right skewed data. It is also called positive skewed data. Common transformations of this data include square root, cube root, and log.\n\n### Cube root transformation:\nThe cube root transformation involves converting x to 𝑥(1/3) . This is a fairly strong transformation with a substantial effect on distribution shape: but is weaker than the logarithm. It can be applied to negative and zero values too. Negatively skewed data.\n\n### Square root transformation:\nApplied to positive values only. Hence, observe the values of column before applying.\n\n### Logarithm transformation:\nThe logarithm, x to log base 10 of x, or x to log base e of x (ln x), or x to log base 2 of x, is a strong transformation and can be used to reduce right skewness.\n\n### Negatively skewed data:\nIf the tail is to the left of data, then it is called left skewed data. It is also called negatively skewed data. Common transformations include square , cube root and logarithmic. We will discuss what square transformation is as others are already discussed."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.skew().plot(kind='bar')\n#When we look to the data its highly positively skewed","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Data visualization\n## Understand Your Data With Visualization\nYou must understand your data in order to get the best results from machine learning algorithms. The fastest way to learn more about your data is to use data visualization.\n\n### Univariate Plots\nIn this section we will look at three techniques that you can use to understand each attribute of your dataset independently.\n\nHistograms.\nDensity Plots.\nBox and Whisker Plots.\n\n\n# Histograms"},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(16,16))\nTrain.hist()\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Density Plots\nDensity plots are another way of getting a quick idea of the distribution of each attribute. The plots look like an abstracted histogram with a smooth curve drawn through the top of each bin, much like your eye tried to do with the histograms.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.plot(kind='density', subplots=True, layout=(3,4), sharex=False)\nplt.show","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Box and Whisker Plots\nAnother useful way to review the distribution of each attribute is to use Box and Whisker Plots or boxplots for short."},{"metadata":{"trusted":true},"cell_type":"code","source":"#boxplots help to represent outlies\nTrain.plot(kind='box', subplots=True, layout=(3,4), sharex=False, sharey=False)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Multivariate Plots\nThis section provides examples of two plots that show the interactions between multiple variables in your dataset.\n\n* Correlation Matrix Plot.\n* Scatter Plot Matrix.\n* Correlation Matrix Plot\n\nCorrelation gives an indication of how related the changes are between two variables. If two variables change in the same direction they are positively correlated. If they change in opposite directions together (one goes up, one goes down), then they are negatively correlated. You can calculate the correlation between each pair of attributes. This is called a correlation matrix. You can then plot the correlation matrix and get an idea of which variables have a high correlation with each other. This is useful to know, because some machine learning algorithms like linear and logistic regression can have poor performance if there are highly correlated input variables in your data."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.columns","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"correlations = Train.corr()\n# plot correlation matrix\nfig = plt.figure()\nax = fig.add_subplot(111)\ncax = ax.matshow(correlations, vmin=-1, vmax=1)\nfig.colorbar(cax)\nticks = np.arange(0,9,1)\nax.set_xticks(ticks)\nax.set_yticks(ticks)\nax.set_xticklabels(Train.columns)\nax.set_yticklabels(Train.columns)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Scatter Plot Matrix\n\nA scatter plot shows the relationship between two variables as dots in two dimensions, one axis for each attribute. You can create a scatter plot for each pair of attributes in your data. Drawing all these scatter plots together is called a scatter plot matrix. Scatter plots are useful for spotting structured relationships between variables, like whether you could summarize the relationship between two variables with a line. Attributes with structured relationships may also be correlated and good candidates for removal from your dataset."},{"metadata":{"trusted":true},"cell_type":"code","source":"#you can use vars to compare two variable and hue to put colours\nsns.pairplot(Train,hue='CLASS',vars=['FULL_Charge','FULL_AcidicMolPerc'])\n#check on the seaborn(seaborn.pydata.org-dev/generated/seaborn.boxplot.html)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"```mo = pd.DataFrame(out_model)\nmo.to_csv(\"xyz.csv\")\n```"},{"metadata":{},"cell_type":"markdown","source":"# 3. Prepare Data\n\n# Prepare Your Data For Machine Learning\nMany machine learning algorithms make assumptions about your data. It is often a very good idea to prepare your data in such way to best expose the structure of the problem to the machine learning algorithms that you intend to use. In this chapter you will discover how to prepare your data for machine learning in Python using scikit-learn. After completing this lesson you will know how to:\n\n1. Rescale data.\n2. Standardize data.\n3. Normalize data.\n4. Binarize data.\n### Need For Data Pre-processing\nYou almost always need to pre-process your data. It is a required step. A difficulty is that different algorithms make different assumptions about your data and may require different transforms. Further, when you follow all of the rules and prepare your data, sometimes algorithms can deliver better results without pre-processing. Generally, I would recommend creating many different views and transforms of your data, then exercise a handful of algorithms on each view of your dataset. This will help you to ush out which data transforms might be better at exposing the structure of your problem in general.\n\n### The steps involved are as below:\n\nSplit the dataset into the input and output variables for machine learning.\nApply a pre-processing transform to the input variables.\nSummarize the data to show the change.\nThe scikit-learn library provides two standard idioms for transforming data. Each are useful in di\u000berent circumstances. The transforms are calculated in such a way that they can be applied to your training data and any samples of data you may have in the future. The scikit-learn documentation has some information on how to use various di\u000berent pre-processing methods:\n\nThe Fit and Multiple Transform method is the preferred approach. You call the fit() function to prepare the parameters of the transform once on your data. Then later you can use the transform() function on the same data to prepare it for modeling and again on the test or validation dataset or new data that you may see in the future. The Combined Fit-And-Transform is a convenience that you can use for one o\u000b tasks. This might be useful if you are interested in plotting or summarizing the transformed data.\n\n### Rescale Data\nWhen your data is comprised of attributes with varying scales, many machine learning algorithms can bene\ft from rescaling the attributes to all have the same scale. Often this is referred to as normalization and attributes are often rescaled into the range between 0 and 1. This is useful for optimization algorithms used in the core of machine learning algorithms like gradient descent. It is also useful for algorithms that weight inputs like regression and neural networks and algorithms that use distance measures like k-Nearest Neighbors. You can rescale your data using scikit-learn using the MinMaxScaler class\n\n### NOTE: Since my graph and summary data shows varying means and Gaussian distribution. i would use Standardize data method\n\n\n\n### Standardize of Data\nStandardization is a useful technique to transform attributes with a Gaussian distribution and differing means and standard deviations to a standard Gaussian distribution with a mean of 0 and a standard deviation of 1. It is most suitable for techniques that assume a Gaussian distribution in the input variables and work better with rescaled data, such as linear regression, logistic regression and linear discriminate analysis. You can standardize data using scikit-learn with the StandardScaler class3."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import StandardScaler\n\narray2 = Train.values\n# separate array into input and output components\nX = array2[:,0:11]\nY = array2[:,11]\nscaler = StandardScaler().fit(X)\nrescaledX = scaler.transform(X)\n# summarize transformed data\n#set_printoptions(precision=3)\nprint(rescaledX[0:5,:])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# a) Data Cleaning(not done)\n# b) Feature Selection\n\n## Feature Selection For Machine\nLearning The data features that you use to train your machine learning models have a huge in uence on the performance you can achieve. Irrelevant or partially relevant features can negatively impact model performance. In this chapter you will discover automatic feature selection techniques that you can use to prepare your machine learning data in Python with scikit-learn. After completing this lesson you will know how to use:\n\n## Univariate Selection.\nRecursive Feature Elimination.\nPrinciple Component Analysis.\nFeature Importance.\nFeature Selection\nFeature selection is a process where you automatically select those features in your data that contribute most to the prediction variable or output in which you are interested. Having irrelevant features in your data can decrease the accuracy of many models, especially linear algorithms like linear and logistic regression. Three benets of performing feature selection before modeling your data are:\n\nReduces Overffitting: Less redundant data means less opportunity to make decisions based on noise.\nImproves Accuracy: Less misleading data means modeling accuracy improves.\nReduces Training Time: Less data means that algorithms train faster.\nUnivariate Selection\nStatistical tests can be used to select those features that have the strongest relationship with the output variable. The scikit-learn library provides the SelectKBest class2 that can be used with a suite of different statistical tests to select a specific number of features. The example below uses the chi-squared (𝑐ℎ𝑖2) statistical test for non-negative features to select 4 of the best features from the Pima Indians onset of diabetes dataset.\n\nYou can see the scores for each attribute and the 4 attributes chosen (those with the highest scores): plas, test, mass and age. I got the names for the chosen attributes by manually mapping the index of the 4 highest scores to the index of the attribute names.\n\n# Recursive Feature Elimination method.\nThe Recursive Feature Elimination (or RFE) works by recursively removing attributes and building a model on those attributes that remain. It uses the model accuracy to identify which attributes (and combination of attributes) contribute the most to predicting the target attribute. You can learn more about the RFE class3 in the scikit-learn documentation. The example below uses RFE with the logistic regression algorithm to select the top 3 features. The choice of algorithm does not matter too much as long as it is skillful and consistent.\n\n### NOTE: Since i dont have much information about the interpretetion of my varaibles, Recursive Feature Elimination method would be the best. \n\n# c) Data Transforms"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.feature_selection import RFE\nfrom sklearn.linear_model import LogisticRegression\n\narray_1 = Train.values\nX = array_1[:,0:11]\nY = array_1[:,11]\n# feature extraction\nmodel = LogisticRegression()\nrfe = RFE(model, 10)\nfit = rfe.fit(X, Y)\nprint(\"Num Features: \", fit.n_features_)\nprint(\"Selected Features:\", fit.support_)\nprint(\"Feature Ranking: \", fit.ranking_)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Feature Importance\nBagged decision trees like Random Forest and Extra Trees can be used to estimate the importance\nof features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.ensemble import ExtraTreesClassifier\nimport warnings\nwarnings.filterwarnings('ignore')\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n# feature extraction\nmodel = ExtraTreesClassifier()\nmodel.fit(X, Y)\nprint(model.feature_importances_)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 4. Evaluate Algorithms\n\n\n## Evaluate the Performance of Machine Learning Algorithms with Resampling\nYou need to know how well your algorithms perform on unseen data. The best way to evaluate the performance of an algorithm would be to make predictions for new data to which you already know the answers. The second best way is to use clever techniques from statistics called resampling methods that allow you to make accurate estimates for how well your algorithm will perform on new data. In this chapter you will discover how you can estimate the accuracy of your machine learning algorithms using resampling methods in Python and scikit-learn on the Pima Indians dataset. Let's get started.\n\n## Evaluate Machine Learning Algorithms\nWhy can't you train your machine learning algorithm on your dataset and use predictions from this same dataset to evaluate machine learning algorithms? The simple answer is overffitting. Imagine an algorithm that remembers every observation it is shown during training. If you evaluated your machine learning algorithm on the same dataset used to train the algorithm, then an algorithm like this would have a perfect score on the training dataset. But the predictions it made on new data would be terrible. We must evaluate our machine learning algorithms on data that is not used to train the algorithm. The evaluation is an estimate that we can use to talk about how well we think the algorithm may actually do in practice. It is not a guarantee of performance. Once we estimate the performance of our algorithm, we can then re-train the final algorithm on the entire training dataset and get it ready for operational use. Next up we are going to look at four different techniques that we can use to split up our training dataset and create useful estimates of performance for our machine learning algorithms:\n\n* Train and Test Sets.\n* k-fold Cross Validation.\n* Leave One Out Cross Validation.\n* Repeated Random Test-Train Splits.\n\n# a) Split-out validation dataset\n\n### Split into Train and Test Sets\nThe simplest method that we can use to evaluate the performance of a machine learning algorithm is to use different training and testing datasets. We can take our original dataset and split it into two parts. Train the algorithm on the train part, make predictions on the second part and evaluate the predictions against the expected results. The size of the split can depend on the size and species of your dataset, although it is common to use 67% of the data for training and the remaining 33% for testing. This algorithm evaluation technique is very fast. It is ideal for large datasets (millions of records) where there is strong evidence that both splits of the data are representative of the underlying problem. Because of the speed, it is useful to use this approach when the algorithm you are investigating is slow to train. A downside of this technique is that it can have a high variance. This means that di\u000berences in the training and test dataset can result in meaningful diferences in the estimate of accuracy. In the example below we split the Pima Indians dataset into 70%/30% splits for training and test and evaluate the accuracy of a Logistic Regression model."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\nrandom_state=seed)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresult = model.score(X_test, Y_test)\nprint(\"Accuracy: \", (result*100.0))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# b) Test options and evaluation metric"},{"metadata":{},"cell_type":"markdown","source":"# K-fold Cross Validation\nCross validation is an approach that you can use to estimate the performance of a machine learning algorithm with less variance than a single train-test set split. It works by splitting the dataset into k-parts (e.g. k = 5 or k = 10). Each split of the data is called a fold. The algorithm is trained on k 1 folds with one held back and tested on the held back fold. This is repeated so that each fold of the dataset is given a chance to be the held back test set. After running cross validation you end up with k diferent performance scores that you can summarize using a mean and a standard deviation. The result is a more reliable estimate of the performance of the algorithm on new data. It is more accurate because the algorithm is trained and evaluated multiple times on different data. The choice of k must allow the size of each test partition to be large enough to be a reasonable sample of the problem, whilst allowing enough repetitions of the train-test evaluation of the algorithm to provide a fair estimate of the algorithms performance on unseen data. For modest sized datasets in the thousands or tens of thousands of records, k values of 3, 5 and 10 are common."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10 #number of folds to use are 10\nseed = 7 #reproducibility\n\nkfold = KFold(n_splits=num_folds, random_state=seed)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(f\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Leave One Out Cross Validation\nYou can configure cross validation so that the size of the fold is 1 (k is set to the number of observations in your dataset). This variation of cross validation is called leave-one-out cross validation. The result is a large number of performance measures that can be summarized in an effort to give a more reasonable estimate of the accuracy of your model on unseen data. A downside is that it can be a computationally more expensive procedure than k-fold cross validation. In the example below we use leave-one-out cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import LeaveOneOut\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nloocv = LeaveOneOut()\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=loocv)\nprint(\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Repeated Random Test-Train Splits\nAnother variation on k-fold cross validation is to create a random split of the data like the train/test split described above, but repeat the process of splitting and evaluation of the algorithm multiple times, like cross validation. This has the speed of using a train/test split and the reduction in variance in the estimated performance of k-fold cross validation. You can also repeat the process many more times as needed to improve the accuracy. A down side is that repetitions may include much of the same data in the train or the test split from run to run, introducing redundancy into the evaluation. The example below splits the data into a 70%/30% train/test split and repeats the process 10 times."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import ShuffleSplit\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nn_splits = 10\ntest_size = 0.30\nseed = 7\nkfold = ShuffleSplit(n_splits=n_splits, test_size=test_size, random_state=seed)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(\"Accuracy: \" , (results.mean()*100.0, results.std()*100.0))\n\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\ncross_validation_report = pd.DataFrame(output)\ncross_validation_report.columns = ['CLASS']\ncross_validation_report.index.name = 'Index'\ncross_validation_report['CLASS'] = cross_validation_report['CLASS'].map({0.0:False, 1.0:True})\n\ncross_validation_report.to_csv('cross_validation_report.csv')\n\nprint(cross_validation_report['CLASS'].unique())\nprint('False: ',cross_validation_report.groupby('CLASS').size()[0].sum())\nprint('True: ',cross_validation_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# NOTE: What Techniques to Use When\nThis section lists some tips to consider what resampling technique to use in diferent circum- stances.\n\nGenerally k-fold cross validation is the gold standard for evaluating the performance of amachine learning algorithm on unseen data with k set to 3, 5, or 10.\nUsing a train/test split is good for speed when using a slow algorithm and producesperformance estimates with lower bias when using large datasets.\nTechniques like leave-one-out cross validation and repeated random splits can be usefulintermediates when trying to balance variance in the estimated performance, modeltraining speed and dataset size.\nThe best advice is to experiment and find a technique for your problem that is fast and produces reasonable estimates of performance that you can use to make decisions. If in doubt, use 10-fold cross validation.\n# Machine Learning Algorithm Performance Metrics\n\nThe metrics that you choose to evaluate your machine learning algorithms are very important.\nChoice of metrics in\nuences how the performance of machine learning algorithms is measured\nand compared. They in\nuence how you weight the importance of different characteristics in\nthe results and your ultimate choice of which algorithm to choose.\n\n## Algorithm Evaluation Metrics\nIn this lesson, various different algorithm evaluation metrics are demonstrated for both classification and regression type machine learning problems. In each recipe, the dataset is downloaded\ndirectly from the Machine Learning repository.\n\n## Classiffication Metrics\nClassiffication problems are perhaps the most common type of machine learning problem and as such there are a myriad of metrics that can be used to evaluate predictions for these problems. In this section we will review how to use the following metrics:\n\n* Classiffication Accuracy.\n* Logarithmic Loss.\n* Area Under ROC Curve.\n* Confusion Matrix.\n* Classiffication Report.\n\n## Classiffication Accuracy\nClassiffication accuracy is the number of correct predictions made as a ratio of all predictions made. This is the most common evaluation metric for classi\fcation problems, it is also the most misused. It is really only suitable when there are an equal number of observations in each class (which is rarely the case) and that all predictions and prediction errors are equally important, which is often not the case. Below is an example of calculating classiffication accuracy."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import matthews_corrcoef\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LogisticRegression()\nscoring = 'accuracy'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"Accuracy:\", (results.mean(), results.std()))\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nclassification_accuracy_report = pd.DataFrame(output)\nclassification_accuracy_report.columns = ['CLASS']\nclassification_accuracy_report.index.name = 'Index'\nclassification_accuracy_report['CLASS'] = classification_accuracy_report['CLASS'].map({0.0:False, 1.0:True})\n\nclassification_accuracy_report.to_csv('classification_accuracy_report.cp.csv')\n\nprint(classification_accuracy_report['CLASS'].unique())\nprint('False: ',classification_accuracy_report.groupby('CLASS').size()[0].sum())\nprint('True: ',classification_accuracy_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Confusion Matrix\nThe confusion matrix is a handy presentation of the accuracy of a model with two or more classes. The table presents predictions on the x-axis and accuracy outcomes on the y-axis. The cells of the table are the number of predictions made by a machine learning algorithm. For example, a machine learning algorithm can predict 0 or 1 and each prediction may actually have been a 0 or 1. Predictions for 0 that were actually 0 appear in the cell for prediction = 0 and actual = 0, whereas predictions for 0 that were actually 1 appear in the cell for prediction = 0 and actual = 1. And so on."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import confusion_matrix\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\nrandom_state=seed)\n\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\npredicted = model.predict(X_test)\nmatrix = confusion_matrix(Y_test, predicted)\nprint(matrix)\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nconfusion_matrix_report = pd.DataFrame(output)\nconfusion_matrix_report.columns = ['CLASS']\nconfusion_matrix_report.index.name = 'Index'\nconfusion_matrix_report['CLASS'] = confusion_matrix_report['CLASS'].map({0.0:False, 1.0:True})\n\nconfusion_matrix_report.to_csv('confusion_matrix_report.csv')\n\nprint(confusion_matrix_report['CLASS'].unique())\nprint('False: ',confusion_matrix_report.groupby('CLASS').size()[0].sum())\nprint('True: ',confusion_matrix_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication Report\nThe scikit-learn library provides a convenience report when working on classiffication problems to give you a quick idea of the accuracy of a model using a number of measures. The classification report() function displays the precision, recall, F1-score and support for each class. "},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import classification_report\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\nrandom_state=seed)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\npredicted = model.predict(X_test)\nreport = classification_report(Y_test, predicted)\nprint(report)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nClassification_report = pd.DataFrame(output)\nClassification_report.columns = ['CLASS']\nClassification_report.index.name = 'Index'\nClassification_report['CLASS'] = Classification_report['CLASS'].map({0.0:False, 1.0:True})\n\nClassification_report.to_csv('Classification_report.csv')\n\nprint(Classification_report['CLASS'].unique())\nprint('False: ',Classification_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Classification_report.groupby('CLASS').size()[1].sum())\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Spot-Check Classiffication Algorithms.\nSpot-checking is a way of discovering which algorithms perform well on your machine learning problem. You cannot know which algorithms are best suited to your problem beforehand. You must trial a number of \nmethods and focus attention on those that prove themselves the most promising.\n\n1. How to spot-check machine learning algorithms on a classification problem.\n2. How to spot-check two linear classification algorithms.\n3. How to spot-check four nonlinear classification algorithms.\n\n## Algorithm Spot-Checking\nYou cannot know which algorithm will work best on your dataset beforehand. You must use trial and error to discover a shortlist of algorithms that do well on your problem that you can then double down on and tune further. I call this process spot-checking. The question is not: What algorithm should I use on my dataset? Instead it is: What algorithms should I spot-check on my dataset? You can guess at what algorithms might do well on your dataset, and this can be a good starting point. I recommend trying a mixture of algorithms and see what is good at picking out the structure in your data. Below are some suggestions when spot-checking algorithms on your dataset:\n\nTry a mixture of algorithm representations (e.g. instances and trees).\n\nTry a mixture of learning algorithms (e.g. di\u000berent algorithms for learning the same type of representation).\n\nTry a mixture of modeling types (e.g. linear and nonlinear functions or parametric and nonparametric).\n\nAlgorithms Overview\nWe are going to take a look at six classi\fcation algorithms that you can spot-check on your dataset. Starting with two linear machine learning algorithms:\n\nLogistic Regression.\nLinear Discriminant Analysis.\nThen looking at four nonlinear machine learning algorithms:\n\nk-Nearest Neighbors.\nNaive Bayes.\nClassi\fcation and Regression Trees.\nSupport Vector Machines.\nLinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use two linear machine learning algorithms: logistic regression and linear discriminant analysis.\n\nLogistic Regression\nLogistic regression assumes a Gaussian distribution for the numeric input variables and can model binary classiffication problems. You can construct a logistic regression model using the LogisticRegression class."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Logistic Regression Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLogisticRegression = pd.DataFrame(output)\nLogisticRegression.columns = ['CLASS']\nLogisticRegression.index.name = 'Index'\nLogisticRegression['CLASS'] = LogisticRegression['CLASS'].map({0.0:False, 1.0:True})\n\nLogisticRegression.to_csv('LogisticRegression.csv')\n\nprint(LogisticRegression['CLASS'].unique())\nprint('False: ',LogisticRegression.groupby('CLASS').size()[0].sum())\nprint('True: ',LogisticRegression.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Linear Discriminant Analysis\nLinear Discriminant Analysis or LDA is a statistical technique for binary and multiclass classiffication. It too assumes a Gaussian distribution for the numerical input variables. You can construct an LDA model using the LinearDiscriminantAnalysis class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearDiscriminantAnalysis()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLinearDiscriminantAnalysis = pd.DataFrame(output)\nLinearDiscriminantAnalysis.columns = ['CLASS']\nLinearDiscriminantAnalysis.index.name = 'Index'\nLinearDiscriminantAnalysis['CLASS'] = LinearDiscriminantAnalysis['CLASS'].map({0.0:False, 1.0:True})\n\nLinearDiscriminantAnalysis.to_csv('LinearDiscriminantAnalysis.csv')\n\nprint(LinearDiscriminantAnalysis['CLASS'].unique())\nprint('False: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[0].sum())\nprint('True: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Nonlinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use 4 nonlinear machine learning algorithms.\n\n## k-Nearest Neighbors\nThe k-Nearest Neighbors algorithm (or KNN) uses a distance metric to find the k most similar instances in the training data for a new instance and takes the mean outcome of the neighbors as the prediction. You can construct a KNN model using the KNeighborsClassifier class."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = KNeighborsClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nk_nearest = pd.DataFrame(output)\nk_nearest.columns = ['CLASS']\nk_nearest.index.name = 'Index'\nk_nearest['CLASS'] = k_nearest['CLASS'].map({0.0:False, 1.0:True})\n\nk_nearest.to_csv('k_nearest.csv')\n\nprint(k_nearest['CLASS'].unique())\nprint('False: ',k_nearest.groupby('CLASS').size()[0].sum())\nprint('True: ',k_nearest.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Naive Bayes\nNaive Bayes calculates the probability of each class and the conditional probability of each class given each input value. These probabilities are estimated for new data and multiplied together, assuming that they are all independent (a simple or naive assumption). When working with real-valued data, a Gaussian distribution is assumed to easily estimate the probabilities for input variables using the Gaussian Probability Density Function. You can construct a Naive Bayes model using the GaussianNB class4."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.naive_bayes import GaussianNB\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = GaussianNB()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nnaive_bayes = pd.DataFrame(output)\nnaive_bayes.columns = ['CLASS']\nnaive_bayes.index.name = 'Index'\nnaive_bayes['CLASS'] = naive_bayes['CLASS'].map({0.0:False, 1.0:True})\n\nnaive_bayes.to_csv('naive_bayes_nb.csv')\n\nprint(naive_bayes['CLASS'].unique())\nprint('False: ',naive_bayes.groupby('CLASS').size()[0].sum())\nprint('True: ',naive_bayes.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nDecisionTree_report = pd.DataFrame(output)\nDecisionTree_report.columns = ['CLASS']\nDecisionTree_report.index.name = 'Index'\nDecisionTree_report['CLASS'] = DecisionTree_report['CLASS'].map({0.0:False, 1.0:True})\n\nDecisionTree_report.to_csv('DecisionTree_report_dt.csv')\n\nprint(DecisionTree_report['CLASS'].unique())\nprint('False: ',DecisionTree_report.groupby('CLASS').size()[0].sum())\nprint('True: ',DecisionTree_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Support Vector Machines\nSupport Vector Machines (or SVM) seek a line that best separates two classes. Those data instances that are closest to the line that best separates the classes are called support vectors and in uence where the line is placed. SVM has been extended to support multiple classes. Of particular importance is the use of di\u000berent kernel functions via the kernel parameter."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10)\nmodel = SVC()\nscoring = 'acuracy'\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nfinalreport1 = pd.DataFrame(output)\nfinalreport1.columns = ['CLASS']\nfinalreport1.index.name = 'Index'\nfinalreport1['CLASS'] = finalreport1['CLASS'].map({0.0:False, 1.0:True})\n\nfinalreport1.to_csv('finalreport1_sv.csv')\n\nprint(finalreport1['CLASS'].unique())\nprint('False: ',finalreport1.groupby('CLASS').size()[0].sum())\nprint('True: ',finalreport1.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Regression Metrics\nIn this section will review 3 of the most common metrics for evaluating predictions on regression\nmachine learning problems:\n- Mean Absolute Error.\n- Mean Squared Error.\n- R2.\n\n## Mean Absolute Error\nThe Mean Absolute Error (or MAE) is the sum of the absolute di\u000berences between predictions\nand actual values. It gives an idea of how wrong the predictions were. The measure gives an\nidea of the magnitude of the error, but no idea of the direction (e.g. over or under predicting).\nThe example below demonstrates calculating mean absolute error on the Boston house price\ndataset."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearRegression()\nscoring = 'neg_mean_absolute_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MAE:\",(results.mean(), results.std()))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Mean Squared Error\nThe Mean Squared Error (or MSE) is much like the mean absolute error in that it provides a gross idea of the magnitude of error. Taking the square root of the mean squared error converts the units back to the original units of the output variable and can be meaningful for description and presentation. This is called the Root Mean Squared Error (or RMSE). The example below provides a demonstration of calculating mean squared error."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression MSE\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearRegression()\nscoring = 'neg_mean_squared_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MSE:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"This metric too is inverted so that the results are increasing. Remember to take the absolute value before taking the square root if you are interested in calculating the RMSE.\n\n## R2 Metric\nThe R2 (or R Squared) metric provides an indication of the goodness of fit of a set of predictions to the actual values. In statistical literature this measure is called the coefficient of determination. This is a value between 0 and 1 for no-fit and perfect fit respectively. The example below provides a demonstration of calculating the mean R2 for a set of predictions."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression R^2\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=7)\nmodel = LinearRegression()\nscoring = 'r2'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"R^2:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# d) Compare Algorithms\n## Compare Machine Learning Algorithms\nIt is important to compare the performance of multiple di\u000berent machine learning algorithms\nconsistently. In this chapter you will discover how you can create a test harness to compare\nmultiple different machine learning algorithms in Python with scikit-learn. You can use this\ntest harness as a template on your own machine learning problems and add more and different\nalgorithms to compare. After completing this lesson you will know:\n\n1. How to formulate an experiment to directly compare machine learning algorithms.\n2. A reusable template for evaluating the performance of multiple algorithms on one dataset.\n3. How to report and visualize the results when comparing algorithm performance.\n\n\n### Choose The Best Machine Learning Model\nWhen you work on a machine learning project, you often end up with multiple good models\nto choose from. Each model will have different performance characteristics. Using resampling\nmethods like cross validation, you can get an estimate for how accurate each model may be on\nunseen data. You need to be able to use these estimates to choose one or two best models from\nthe suite of models that you have created.\nWhen you have a new dataset, it is a good idea to visualize the data using different techniques\nin order to look at the data from di\u000berent perspectives. The same idea applies to model selection.\nYou should use a number of di\u000berent ways of looking at the estimated accuracy of your machine\nlearning algorithms in order to choose the one or two algorithm to finalize. A way to do this is\nto use visualization methods to show the average accuracy, variance and other properties of the\ndistribution of model accuracies. In the next section you will discover exactly how you can do\nthat in Python with scikit-learn.\n\n\n### Compare Machine Learning Algorithms Consistently\nThe key to a fair comparison of machine learning algorithms is ensuring that each algorithm is\nevaluated in the same way on the same data. You can achieve this by forcing each algorithm to be evaluated on a consistent test harness. In the example below six different classiffication\nalgorithms are compared on a single dataset:\n\n- Logistic Regression.\n- Linear Discriminant Analysis.\n- k-Nearest Neighbors.\n- Classiffication and Regression Trees.\n- Naive Bayes.\n- Support Vector Machines.\n\nThe dataset is the Pima Indians onset of diabetes problem. The problem has two classes and\neight numeric input variables of varying scales. The 10-fold cross validation procedure is used to\nevaluate each algorithm, importantly con\fgured with the same random seed to ensure that the\nsame splits to the training data are performed and that each algorithm is evaluated in precisely\nthe same way. Each algorithm is given a short name, useful for summarizing results afterward."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Compare Algorithms\nfrom pandas import read_csv\nfrom matplotlib import pyplot\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n# load dataset\narray = Train.values\n\n#split the dataset \nX = array[:,0:11]\nY = array[:,11]\n\n# prepare models and add them to a list\nmodels = []\nmodels.append(('LR', LogisticRegression()))\nmodels.append(('LDA', LinearDiscriminantAnalysis()))\nmodels.append(('KNN', KNeighborsClassifier()))\nmodels.append(('CART', DecisionTreeClassifier()))\nmodels.append(('NB', GaussianNB()))\nmodels.append(('SVM', SVC()))\n\n# evaluate each model in turn\nresults = []\nnames = []\nscoring = 'accuracy'\n\nfor name, model in models:\n kfold = KFold(n_splits=10, random_state=7)\n cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n results.append(cv_results)\n names.append(name)\n msg = (name, cv_results.mean(), cv_results.std())\n print(msg)\n\n# boxplot algorithm comparison\nfig = pyplot.figure()\nfig.suptitle('Algorithm Comparison')\nax = fig.add_subplot(111)\npyplot.boxplot(results)\nax.set_xticklabels(names)\npyplot.show()\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\ncompare_testmethods_report = pd.DataFrame(output)\ncompare_testmethods_report.columns = ['CLASS']\ncompare_testmethods_report.index.name = 'Index'\ncompare_testmethods_report['CLASS'] = compare_testmethods_report['CLASS'].map({0.0:False, 1.0:True})\n\ncompare_testmethods_report.to_csv('compare_testmethods_report.csv')\n\nprint(compare_testmethods_report['CLASS'].unique())\nprint('False: ',compare_testmethods_report.groupby('CLASS').size()[0].sum())\nprint('True: ',compare_testmethods_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Automate Machine Learning Workflows with Pipelines\n\nThere are standard work\nows in a machine learning project that can be automated. In Python\nscikit-learn, Pipelines help to clearly define and automate these work\nows. In this chapter you\nwill discover Pipelines in scikit-learn and how you can automate common machine learning\nwork\nows. After completing this lesson you will know:\n\n1. How to use pipelines to minimize data leakage.\n2. How to construct a data preparation and modeling pipeline.\n3. How to construct a feature extraction and modeling pipeline.\n\n### Automating Machine Learning Workflows\nThere are standard work\nows in applied machine learning. Standard because they overcome\ncommon problems like data leakage in your test harness. Python scikit-learn provides a Pipeline\nutility to help automate machine learning work\nows. Pipelines work by allowing for a linear\nsequence of data transforms to be chained together culminating in a modeling process that can\nbe evaluated.\n\nThe goal is to ensure that all of the steps in the pipeline are constrained to the data available\nfor the evaluation, such as the training dataset or each fold of the cross validation procedure.\nYou can learn more about Pipelines in scikit-learn by reading the Pipeline section1 of the user\nguide. You can also review the API documentation for the Pipeline and FeatureUnion classes\nand the pipeline module2.\n\n### Data Preparation and Modeling Pipeline\nAn easy trap to fall into in applied machine learning is leaking data from your training dataset\nto your test dataset. To avoid this trap you need a robust test harness with strong separation of training and testing. This includes data preparation. Data preparation is one easy way to leak\nknowledge of the whole training dataset to the algorithm. For example, preparing your data\nusing normalization or standardization on the entire training dataset before learning would not\nbe a valid test because the training dataset would have been in\nuenced by the scale of the data\nin the test set.\n\n\nPipelines help you prevent data leakage in your test harness by ensuring that data preparation\nlike standardization is constrained to each fold of your cross validation procedure. The example\nbelow demonstrates this important data preparation and model evaluation work\now on the\nPima Indians onset of diabetes dataset. The pipeline is de\fned with two steps:\n\n1. Standardize the data.\n2. Learn a Linear Discriminant Analysis model.\n\nThe pipeline is then evaluated using 10-fold cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Create a pipeline that standardizes the data then creates a model\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\n# load data\n\n#dataframe = read_csv('diabetes.csv')\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\n# create pipeline\nestimators = []\nestimators.append(('standardize', StandardScaler()))\nestimators.append(('lda', LinearDiscriminantAnalysis()))\nmodel = Pipeline(estimators)\n\n\n# evaluate pipeline\nkfold = KFold(n_splits=10, random_state=7)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nstandarzied_pipeline_report = pd.DataFrame(output)\nstandarzied_pipeline_report.columns = ['CLASS']\nstandarzied_pipeline_report.index.name = 'Index'\nstandarzied_pipeline_report['CLASS'] = standarzied_pipeline_report['CLASS'].map({0.0:False, 1.0:True})\n\nstandarzied_pipeline_report.to_csv('standarzied_pipeline_report.csv')\n\nprint(standarzied_pipeline_report['CLASS'].unique())\nprint('False: ',standarzied_pipeline_report.groupby('CLASS').size()[0].sum())\nprint('True: ',standarzied_pipeline_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 5. Improve Accuracy\n# a) Algorithm Tuning\n# b) Ensembles\n\n# Improve Performance with Ensembles\n\nEnsembles can give you a boost in accuracy on your dataset. In this chapter you will discover\nhow you can create some of the most powerful types of ensembles in Python using scikit-learn.\nThis lesson will step you through Boosting, Bagging and Majority Voting and show you how you\ncan continue to ratchet up the accuracy of the models on your own datasets. After completing\nthis lesson you will know:\n\n1. How to use bagging ensemble methods such as bagged decision trees, random forest and extra trees.\n2. How to use boosting ensemble methods such as AdaBoost and stochastic gradient boosting.\n3. How to use voting ensemble methods to combine the predictions from multiple algorithms.\n\n### Combine Models Into Ensemble Predictions\nThe three most popular methods for combining the predictions from different models are:\n\n- Bagging. Building multiple models (typically of the same type) from different subsamples of the training dataset.\n- Boosting. Building multiple models (typically of the same type) each of which learns to fix the prediction errors of a prior model in the sequence of models.\n- Voting. Building multiple models (typically of di\u000bering types) and simple statistics (like calculating the mean) are used to combine predictions.\n\nThis assumes you are generally familiar with machine learning algorithms and ensemble\nmethods and will not go into the details of how the algorithms work or their parameters.\nThe Pima Indians onset of Diabetes dataset is used to demonstrate each algorithm. Each\nensemble algorithm is demonstrated using 10-fold cross validation and the classiffication accuracy\nperformance metric.\n"},{"metadata":{},"cell_type":"markdown","source":"# Boosting Algorithms\nBoosting ensemble algorithms creates a sequence of models that attempt to correct the mistakes\nof the models before them in the sequence. Once created, the models make predictions which\nmay be weighted by their demonstrated accuracy and the results are combined to create a final\noutput prediction. The two most common boosting ensemble machine learning algorithms are:\n\n- AdaBoost.\n- Stochastic Gradient Boosting.\n\n\n### AdaBoost\nAdaBoost was perhaps the \frst successful boosting ensemble algorithm. It generally works\nby weighting instances in the dataset by how easy or di\u000ecult they are to classify, allowing\nthe algorithm to pay or less attention to them in the construction of subsequent models. You\ncan construct an AdaBoost model for classi\fcation using the AdaBoostClassifier class4. The\nexample below demonstrates the construction of 30 decision trees in sequence using the AdaBoost\nalgorithm."},{"metadata":{"trusted":true},"cell_type":"code","source":"# AdaBoost Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 30\nseed=7\n\nkfold = KFold(n_splits=10, random_state=seed)\n\nmodel = AdaBoostClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nAdaBoost_report = pd.DataFrame(output)\nAdaBoost_report.columns = ['CLASS']\nAdaBoost_report.index.name = 'Index'\nAdaBoost_report['CLASS'] = AdaBoost_report['CLASS'].map({0.0:False, 1.0:True})\n\nAdaBoost_report.to_csv('AdaBoost_report.csv')\n\nprint(AdaBoost_report['CLASS'].unique())\nprint('False: ',AdaBoost_report.groupby('CLASS').size()[0].sum())\nprint('True: ',AdaBoost_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles. You can construct a\nGradient Boosting model for classiffication using the GradientBoostingClassifier class5. The\nexample below demonstrates Stochastic Gradient Boosting for classification with 100 trees"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 7\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## XGB"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic X Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom xgboost import XGBClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 7\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = XGBClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Voting Ensemble\nVoting is one of the simplest ways of combining the predictions from multiple machine learning\nalgorithms. It works by first creating two or more standalone models from your training dataset.\nA Voting Classiffier can then be used to wrap your models and average the predictions of the\nsub-models when asked to make predictions for new data. The predictions of the sub-models can\nbe weighted, but specifying the weights for classiffiers manually or even heuristically is difficult.\nMore advanced methods can learn how to best weight the predictions from sub-models, but this\nis called stacking (stacked aggregation) and is currently not provided in scikit-learn.\nYou can create a voting ensemble model for classiffication using the VotingClassifier\nclass6. The code below provides an example of combining the predictions of logistic regression,\nclassiffication and regression trees and support vector machines together for a classiffication\nproblem."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Voting Ensemble for Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom xgboost import XGBClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import VotingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=7)\n\n# create the sub models\nestimators = []\nmodel1 = LogisticRegression()\nestimators.append(('logistic', model1))\n\nmodel2 = DecisionTreeClassifier()\nestimators.append(('cart', model2))\n\nmodel3 = SVC()\nestimators.append(('svm', model3))\n\nmodel4 = XGBClassifier()\nestimators.append(('xgb', model4))\n\nmodel5 = RandomForestClassifier()\nestimators.append(('rfc', model5))\n\n# create the ensemble model\nensemble = VotingClassifier(estimators)\nresults = cross_val_score(ensemble, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nVoting_Ensemble_report = pd.DataFrame(output)\nVoting_Ensemble_report.columns = ['CLASS']\nVoting_Ensemble_report.index.name = 'Index'\nVoting_Ensemble_report['CLASS'] = Voting_Ensemble_report['CLASS'].map({0.0:False, 1.0:True})\n\nVoting_Ensemble_report.to_csv('Voting_Ensemble_report.csv')\n\nprint(Voting_Ensemble_report['CLASS'].unique())\nprint('False: ',Voting_Ensemble_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Voting_Ensemble_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Extra Trees\nExtra Trees are another modi\fcation of bagging where random trees are constructed from\nsamples of the training dataset. You can construct an Extra Trees model for classiffication using\nthe ExtraTreesClassifier class3. The example below provides a demonstration of extra trees\nwith the number of trees set to 100 and splits chosen from 7 random features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import ExtraTreesClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n#let's read the data\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 100\nmax_features = 7\n\nkfold = KFold(n_splits=10, random_state=7)\n\nmodel = ExtraTreesClassifier(n_estimators=num_trees, max_features=max_features)\n\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nExtra_tree_report = pd.DataFrame(output)\nExtra_tree_report.columns = ['CLASS']\nExtra_tree_report.index.name = 'Index'\nExtra_tree_report['CLASS'] = Extra_tree_report['CLASS'].map({0.0:False, 1.0:True})\n\nExtra_tree_report.to_csv('Extra_tree_report.csv')\n\nprint(Extra_tree_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 7\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nStochastic_report = pd.DataFrame(output)\nStochastic_report.columns = ['CLASS']\nStochastic_report.index.name = 'Index'\nStochastic_report['CLASS'] = Stochastic_report['CLASS'].map({0.0:False, 1.0:True})\n\nStochastic_report.to_csv('Stochastic_report.csv')\n\nprint(Stochastic_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with pickle\nPickle is the standard way of serializing objects in Python. You can use the pickle1 operation\nto serialize your machine learning algorithms and save the serialized format to a file. Later you\ncan load this file to deserialize your model and use it to make new predictions. The example\nbelow demonstrates how you can train a logistic regression model on data set and save the model to file and load it to make predictions on the unseen test set."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using Pickle\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom pickle import dump\nfrom pickle import load\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\nfilename = 'finalized_model2.sav'\ndump(model, open(filename, 'wb'))\n\n# some time later...\n# load the model from disk\nloaded_model = load(open(filename, 'rb'))\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\npickle_report = pd.DataFrame(output)\npickle_report.columns = ['CLASS']\npickle_report.index.name = 'Index'\npickle_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n\npickle_report.to_csv('pickle.csv')\n\nprint(pickle_report['CLASS'].unique())\nprint('False: ',pickle_report.groupby('CLASS').size()[0].sum())\nprint('True: ',pickle_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with Joblib\nThe Joblib2 library is part of the SciPy ecosystem and provides utilities for pipelining Python\njobs. It provides utilities for saving and loading Python objects that make use of NumPy data\nstructures, efficiently3. This can be useful for some machine learning algorithms that require a\nlot of parameters or store the entire dataset (e.g. k-Nearest Neighbors). The example below\ndemonstrates how you can train a logistic regression model on the dataset, save the model to file using Joblib and load it to make predictions on the unseen test\nset."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using joblib\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.externals.joblib import dump\nfrom sklearn.externals.joblib import load\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\n\ndump(model, filename)\n\n# some time later...\n# load the model from disk\nloaded_model = load(filename)\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\njoblib_report = pd.DataFrame(output)\njoblib_report.columns = ['CLASS']\njoblib_report.index.name = 'Index'\npicklej_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n\npickle_report.to_csv('pickle.csv')\n\nprint(pickle_report['CLASS'].unique())\nprint('False: ',pickle_report.groupby('CLASS').size()[0].sum())\nprint('True: ',pickle_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # KAKOOZA TREVOR\n", + "## Kaggle assignment\n", + "### started on the 28th /feb/2020" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1. Prepare Problem\n", + "### a) Load libraries\n", + "### b) Load dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5" + }, + "outputs": [], + "source": [ + "# This Python 3 environment comes with many helpful analytics libraries installed\n", + "# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n", + "# For example, here's several helpful packages to load in \n", + "\n", + "import numpy as np # linear algebra\n", + "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n", + "\n", + "# Input data files are available in the \"../input/\" directory.\n", + "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n", + "\n", + "import os\n", + "for dirname, _, filenames in os.walk('/kaggle/input'):\n", + " for filename in filenames:\n", + " print(os.path.join(dirname, filename))\n", + "\n", + "# Any results you write to the current directory are saved as output." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Import the necessary tools required to work on the datasets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#import the necessary libraries you are going to use\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "# -----> Put your code here below:\n", + "\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# This first session is about loading the give dataset and viewing them. \n", + "\n", + "* The two data set provided are\n", + "1. test.csv\n", + "2. AMP_TrainSet.csv \n", + "\n", + "### Now load the data set using.\n", + "```\n", + "Train = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")\n", + "Test = pd.read_csv(\"../input/amp-data-set/Test.csv\")\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#using pandas we call the data set\n", + "Test = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\n", + "Train = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Summarize Data\n", + "\n", + "## View the first five raws of the datasets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#head.() is ued to view the first five raws of the data set.\n", + "Test.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Shape function\n", + "* This function helps to view the total raws and columns (dimension) of the dataset. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check the dimensions of your data\n", + "\n", + "Train.shape, Test.shape\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data type\n", + "* This returns a Series with the data type of each column.\n", + "* The result’s index is the original DataFrame’s columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Test.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.dtypes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## isnull().sum\n", + "* This function helps to see if the dataset has any missing values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.isnull().sum" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Test.isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* When we look at the data ,it shows that both the test and train dataset does not have any missing values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Then in column of class we check and find out,\n", + "* How is the data divied into.\n", + "* Here the unique function does that." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train['CLASS'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# a) Descriptive statistics\n", + "## Descriptive statistics of the data\n", + "* Generate descriptive statistics that summarize the central tendency,\n", + "dispersion and shape of a dataset's distribution, excluding\n", + "``NaN`` values.\n", + "\n", + "Analyzes both numeric and object series, as well\n", + "as ``DataFrame`` column sets of mixed data types. The output\n", + "will vary depending on what is provided.\n", + "\n", + "### For example this function will provide the following summary\n", + "* Count.\n", + "* Mean.\n", + "* Standard Deviation.\n", + "* Minimum Value.\n", + "* 25th Percentile.\n", + "* 75th Percentile(Median).\n", + "* Maximum Value.\n", + "\n", + "
\n", + "This is good,\n", + " can you keep all the explanations like this?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# (c)Check the dataset info" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Test.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# b) Data visualizations\n", + "## Class Distribution\n", + "\n", + "A groupby operation involves some combination of splitting the\n", + "object, applying a function, and combining the results. This can be\n", + "used to group large amounts of data and compute operations on these\n", + "groups." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.groupby('CLASS').size().plot(kind='bar')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Correlations Between Attributes\n", + "Is the a mutual relationship or connection between two or more things.\n", + "\n", + "Note: Correlation refers to the relationship between two variables and how they may or may notchange together. The most common method for calculating correlation is Pearson's Correlation Coefficient, that assumes a normal distribution of the attributes involved.\n", + "\n", + "A correlation of -1 or 1 shows a full negative or positive correlation respectively. Whereas a value of 0 shows no correlation at all. \n", + "\n", + "
\n", + "What did you learn from this?\n", + " \n", + " Please explain." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.corr(method='pearson')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting to show the correlation\n", + "\n", + "plot a heat map to show us the correlation of the data.\n", + "\n", + "With the help of ; seaborn\n", + "the we can use spearman or pearson method.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#The first step is to choose the figure size then use the heatmap to plot.\n", + "plt.figure(figsize=(7,7))\n", + "sns.heatmap(Train.corr(method='pearson'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## we can also check the correlation in regards to the CLASS" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.corr(method='pearson')['CLASS']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Skew of Univariate Distributions\n", + "### Definition of skew.\n", + "* Is the suddenly change direction or position.\n", + "* or Skew refers to a distribution that is assumed Gaussian (normal or bell curve) that is shifted or squashed in one direction or another. \n", + "\n", + "\n", + "You can calculate the skew of each attribute using the skew() function on the Pandas DataFrame.\n", + "\n", + "#### NOTE: If skewness value lies above +1 or below -1, data is highly skewed. If it lies between +0.5 to -0.5, it is moderately skewed. If the value is 0, then the data is symmetric\n", + "\n", + "### Positively skewed data:\n", + "If tail is on the right as that of the second image in the figure, it is right skewed data. It is also called positive skewed data. Common transformations of this data include square root, cube root, and log.\n", + "\n", + "### Cube root transformation:\n", + "The cube root transformation involves converting x to 𝑥(1/3) . This is a fairly strong transformation with a substantial effect on distribution shape: but is weaker than the logarithm. It can be applied to negative and zero values too. Negatively skewed data.\n", + "\n", + "### Square root transformation:\n", + "Applied to positive values only. Hence, observe the values of column before applying.\n", + "\n", + "### Logarithm transformation:\n", + "The logarithm, x to log base 10 of x, or x to log base e of x (ln x), or x to log base 2 of x, is a strong transformation and can be used to reduce right skewness.\n", + "\n", + "### Negatively skewed data:\n", + "If the tail is to the left of data, then it is called left skewed data. It is also called negatively skewed data. Common transformations include square , cube root and logarithmic. We will discuss what square transformation is as others are already discussed.\n", + "\n", + "
\n", + "What did you learn from this and how did you apply it?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.skew().plot(kind='bar')\n", + "#When we look to the data its highly positively skewed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data visualization\n", + "## Understand Your Data With Visualization\n", + "You must understand your data in order to get the best results from machine learning algorithms. The fastest way to learn more about your data is to use data visualization.\n", + "\n", + "### Univariate Plots\n", + "In this section we will look at three techniques that you can use to understand each attribute of your dataset independently.\n", + "\n", + "Histograms.\n", + "Density Plots.\n", + "Box and Whisker Plots.\n", + "\n", + "\n", + "# Histograms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(16,16))\n", + "Train.hist()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Density Plots\n", + "Density plots are another way of getting a quick idea of the distribution of each attribute. The plots look like an abstracted histogram with a smooth curve drawn through the top of each bin, much like your eye tried to do with the histograms.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.plot(kind='density', subplots=True, layout=(3,4), sharex=False)\n", + "plt.show" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Box and Whisker Plots\n", + "Another useful way to review the distribution of each attribute is to use Box and Whisker Plots or boxplots for short." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#boxplots help to represent outlies\n", + "Train.plot(kind='box', subplots=True, layout=(3,4), sharex=False, sharey=False)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multivariate Plots\n", + "This section provides examples of two plots that show the interactions between multiple variables in your dataset.\n", + "\n", + "* Correlation Matrix Plot.\n", + "* Scatter Plot Matrix.\n", + "* Correlation Matrix Plot\n", + "\n", + "Correlation gives an indication of how related the changes are between two variables. If two variables change in the same direction they are positively correlated. If they change in opposite directions together (one goes up, one goes down), then they are negatively correlated. You can calculate the correlation between each pair of attributes. This is called a correlation matrix. You can then plot the correlation matrix and get an idea of which variables have a high correlation with each other. This is useful to know, because some machine learning algorithms like linear and logistic regression can have poor performance if there are highly correlated input variables in your data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Train.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "correlations = Train.corr()\n", + "# plot correlation matrix\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "cax = ax.matshow(correlations, vmin=-1, vmax=1)\n", + "fig.colorbar(cax)\n", + "ticks = np.arange(0,9,1)\n", + "ax.set_xticks(ticks)\n", + "ax.set_yticks(ticks)\n", + "ax.set_xticklabels(Train.columns)\n", + "ax.set_yticklabels(Train.columns)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Scatter Plot Matrix\n", + "\n", + "A scatter plot shows the relationship between two variables as dots in two dimensions, one axis for each attribute. You can create a scatter plot for each pair of attributes in your data. Drawing all these scatter plots together is called a scatter plot matrix. Scatter plots are useful for spotting structured relationships between variables, like whether you could summarize the relationship between two variables with a line. Attributes with structured relationships may also be correlated and good candidates for removal from your dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#you can use vars to compare two variable and hue to put colours\n", + "sns.pairplot(Train,hue='CLASS',vars=['FULL_Charge','FULL_AcidicMolPerc'])\n", + "#check on the seaborn(seaborn.pydata.org-dev/generated/seaborn.boxplot.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```mo = pd.DataFrame(out_model)\n", + "mo.to_csv(\"xyz.csv\")\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3. Prepare Data\n", + "\n", + "# Prepare Your Data For Machine Learning\n", + "Many machine learning algorithms make assumptions about your data. It is often a very good idea to prepare your data in such way to best expose the structure of the problem to the machine learning algorithms that you intend to use. In this chapter you will discover how to prepare your data for machine learning in Python using scikit-learn. After completing this lesson you will know how to:\n", + "\n", + "1. Rescale data.\n", + "2. Standardize data.\n", + "3. Normalize data.\n", + "4. Binarize data.\n", + "### Need For Data Pre-processing\n", + "You almost always need to pre-process your data. It is a required step. A difficulty is that different algorithms make different assumptions about your data and may require different transforms. Further, when you follow all of the rules and prepare your data, sometimes algorithms can deliver better results without pre-processing. Generally, I would recommend creating many different views and transforms of your data, then exercise a handful of algorithms on each view of your dataset. This will help you to ush out which data transforms might be better at exposing the structure of your problem in general.\n", + "\n", + "### The steps involved are as below:\n", + "\n", + "Split the dataset into the input and output variables for machine learning.\n", + "Apply a pre-processing transform to the input variables.\n", + "Summarize the data to show the change.\n", + "The scikit-learn library provides two standard idioms for transforming data. Each are useful in di\u000b", + "erent circumstances. The transforms are calculated in such a way that they can be applied to your training data and any samples of data you may have in the future. The scikit-learn documentation has some information on how to use various di\u000b", + "erent pre-processing methods:\n", + "\n", + "The Fit and Multiple Transform method is the preferred approach. You call the fit() function to prepare the parameters of the transform once on your data. Then later you can use the transform() function on the same data to prepare it for modeling and again on the test or validation dataset or new data that you may see in the future. The Combined Fit-And-Transform is a convenience that you can use for one o\u000b", + " tasks. This might be useful if you are interested in plotting or summarizing the transformed data.\n", + "\n", + "### Rescale Data\n", + "When your data is comprised of attributes with varying scales, many machine learning algorithms can bene\f", + "t from rescaling the attributes to all have the same scale. Often this is referred to as normalization and attributes are often rescaled into the range between 0 and 1. This is useful for optimization algorithms used in the core of machine learning algorithms like gradient descent. It is also useful for algorithms that weight inputs like regression and neural networks and algorithms that use distance measures like k-Nearest Neighbors. You can rescale your data using scikit-learn using the MinMaxScaler class\n", + "\n", + "### NOTE: Since my graph and summary data shows varying means and Gaussian distribution. i would use Standardize data method\n", + "\n", + "\n", + "\n", + "### Standardize of Data\n", + "Standardization is a useful technique to transform attributes with a Gaussian distribution and differing means and standard deviations to a standard Gaussian distribution with a mean of 0 and a standard deviation of 1. It is most suitable for techniques that assume a Gaussian distribution in the input variables and work better with rescaled data, such as linear regression, logistic regression and linear discriminate analysis. You can standardize data using scikit-learn with the StandardScaler class3.\n", + "\n", + "
\n", + "Good work here." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "array2 = Train.values\n", + "# separate array into input and output components\n", + "X = array2[:,0:11]\n", + "Y = array2[:,11]\n", + "scaler = StandardScaler().fit(X)\n", + "rescaledX = scaler.transform(X)\n", + "# summarize transformed data\n", + "#set_printoptions(precision=3)\n", + "print(rescaledX[0:5,:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# a) Data Cleaning(not done)\n", + "# b) Feature Selection\n", + "\n", + "## Feature Selection For Machine\n", + "Learning The data features that you use to train your machine learning models have a huge in uence on the performance you can achieve. Irrelevant or partially relevant features can negatively impact model performance. In this chapter you will discover automatic feature selection techniques that you can use to prepare your machine learning data in Python with scikit-learn. After completing this lesson you will know how to use:\n", + "\n", + "## Univariate Selection.\n", + "Recursive Feature Elimination.\n", + "Principle Component Analysis.\n", + "Feature Importance.\n", + "Feature Selection\n", + "Feature selection is a process where you automatically select those features in your data that contribute most to the prediction variable or output in which you are interested. Having irrelevant features in your data can decrease the accuracy of many models, especially linear algorithms like linear and logistic regression. Three benets of performing feature selection before modeling your data are:\n", + "\n", + "Reduces Overffitting: Less redundant data means less opportunity to make decisions based on noise.\n", + "Improves Accuracy: Less misleading data means modeling accuracy improves.\n", + "Reduces Training Time: Less data means that algorithms train faster.\n", + "Univariate Selection\n", + "Statistical tests can be used to select those features that have the strongest relationship with the output variable. The scikit-learn library provides the SelectKBest class2 that can be used with a suite of different statistical tests to select a specific number of features. The example below uses the chi-squared (𝑐ℎ𝑖2) statistical test for non-negative features to select 4 of the best features from the Pima Indians onset of diabetes dataset.\n", + "\n", + "You can see the scores for each attribute and the 4 attributes chosen (those with the highest scores): plas, test, mass and age. I got the names for the chosen attributes by manually mapping the index of the 4 highest scores to the index of the attribute names.\n", + "\n", + "# Recursive Feature Elimination method.\n", + "The Recursive Feature Elimination (or RFE) works by recursively removing attributes and building a model on those attributes that remain. It uses the model accuracy to identify which attributes (and combination of attributes) contribute the most to predicting the target attribute. You can learn more about the RFE class3 in the scikit-learn documentation. The example below uses RFE with the logistic regression algorithm to select the top 3 features. The choice of algorithm does not matter too much as long as it is skillful and consistent.\n", + "\n", + "### NOTE: Since i dont have much information about the interpretetion of my varaibles, Recursive Feature Elimination method would be the best. \n", + "\n", + "# c) Data Transforms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.feature_selection import RFE\n", + "from sklearn.linear_model import LogisticRegression\n", + "\n", + "array_1 = Train.values\n", + "X = array_1[:,0:11]\n", + "Y = array_1[:,11]\n", + "# feature extraction\n", + "model = LogisticRegression()\n", + "rfe = RFE(model, 10)\n", + "fit = rfe.fit(X, Y)\n", + "print(\"Num Features: \", fit.n_features_)\n", + "print(\"Selected Features:\", fit.support_)\n", + "print(\"Feature Ranking: \", fit.ranking_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feature Importance\n", + "Bagged decision trees like Random Forest and Extra Trees can be used to estimate the importance\n", + "of features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.ensemble import ExtraTreesClassifier\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "# feature extraction\n", + "model = ExtraTreesClassifier()\n", + "model.fit(X, Y)\n", + "print(model.feature_importances_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. Evaluate Algorithms\n", + "\n", + "\n", + "## Evaluate the Performance of Machine Learning Algorithms with Resampling\n", + "You need to know how well your algorithms perform on unseen data. The best way to evaluate the performance of an algorithm would be to make predictions for new data to which you already know the answers. The second best way is to use clever techniques from statistics called resampling methods that allow you to make accurate estimates for how well your algorithm will perform on new data. In this chapter you will discover how you can estimate the accuracy of your machine learning algorithms using resampling methods in Python and scikit-learn on the Pima Indians dataset. Let's get started.\n", + "\n", + "## Evaluate Machine Learning Algorithms\n", + "Why can't you train your machine learning algorithm on your dataset and use predictions from this same dataset to evaluate machine learning algorithms? The simple answer is overffitting. Imagine an algorithm that remembers every observation it is shown during training. If you evaluated your machine learning algorithm on the same dataset used to train the algorithm, then an algorithm like this would have a perfect score on the training dataset. But the predictions it made on new data would be terrible. We must evaluate our machine learning algorithms on data that is not used to train the algorithm. The evaluation is an estimate that we can use to talk about how well we think the algorithm may actually do in practice. It is not a guarantee of performance. Once we estimate the performance of our algorithm, we can then re-train the final algorithm on the entire training dataset and get it ready for operational use. Next up we are going to look at four different techniques that we can use to split up our training dataset and create useful estimates of performance for our machine learning algorithms:\n", + "\n", + "* Train and Test Sets.\n", + "* k-fold Cross Validation.\n", + "* Leave One Out Cross Validation.\n", + "* Repeated Random Test-Train Splits.\n", + "\n", + "# a) Split-out validation dataset\n", + "\n", + "### Split into Train and Test Sets\n", + "The simplest method that we can use to evaluate the performance of a machine learning algorithm is to use different training and testing datasets. We can take our original dataset and split it into two parts. Train the algorithm on the train part, make predictions on the second part and evaluate the predictions against the expected results. The size of the split can depend on the size and species of your dataset, although it is common to use 67% of the data for training and the remaining 33% for testing. This algorithm evaluation technique is very fast. It is ideal for large datasets (millions of records) where there is strong evidence that both splits of the data are representative of the underlying problem. Because of the speed, it is useful to use this approach when the algorithm you are investigating is slow to train. A downside of this technique is that it can have a high variance. This means that di\u000b", + "erences in the training and test dataset can result in meaningful diferences in the estimate of accuracy. In the example below we split the Pima Indians dataset into 70%/30% splits for training and test and evaluate the accuracy of a Logistic Regression model.\n", + "\n", + "
\n", + "Good explanation here." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LogisticRegression\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "test_size = 0.30\n", + "seed = 7\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\n", + "random_state=seed)\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "result = model.score(X_test, Y_test)\n", + "print(\"Accuracy: \", (result*100.0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# b) Test options and evaluation metric" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# K-fold Cross Validation\n", + "Cross validation is an approach that you can use to estimate the performance of a machine learning algorithm with less variance than a single train-test set split. It works by splitting the dataset into k-parts (e.g. k = 5 or k = 10). Each split of the data is called a fold. The algorithm is trained on k 1 folds with one held back and tested on the held back fold. This is repeated so that each fold of the dataset is given a chance to be the held back test set. After running cross validation you end up with k diferent performance scores that you can summarize using a mean and a standard deviation. The result is a more reliable estimate of the performance of the algorithm on new data. It is more accurate because the algorithm is trained and evaluated multiple times on different data. The choice of k must allow the size of each test partition to be large enough to be a reasonable sample of the problem, whilst allowing enough repetitions of the train-test evaluation of the algorithm to provide a fair estimate of the algorithms performance on unseen data. For modest sized datasets in the thousands or tens of thousands of records, k values of 3, 5 and 10 are common." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "num_folds = 10 #number of folds to use are 10\n", + "seed = 7 #reproducibility\n", + "\n", + "kfold = KFold(n_splits=num_folds, random_state=seed)\n", + "model = LogisticRegression()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "\n", + "print(f\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Leave One Out Cross Validation\n", + "You can configure cross validation so that the size of the fold is 1 (k is set to the number of observations in your dataset). This variation of cross validation is called leave-one-out cross validation. The result is a large number of performance measures that can be summarized in an effort to give a more reasonable estimate of the accuracy of your model on unseen data. A downside is that it can be a computationally more expensive procedure than k-fold cross validation. In the example below we use leave-one-out cross validation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import LeaveOneOut\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "loocv = LeaveOneOut()\n", + "model = LogisticRegression()\n", + "results = cross_val_score(model, X, Y, cv=loocv)\n", + "print(\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Repeated Random Test-Train Splits\n", + "Another variation on k-fold cross validation is to create a random split of the data like the train/test split described above, but repeat the process of splitting and evaluation of the algorithm multiple times, like cross validation. This has the speed of using a train/test split and the reduction in variance in the estimated performance of k-fold cross validation. You can also repeat the process many more times as needed to improve the accuracy. A down side is that repetitions may include much of the same data in the train or the test split from run to run, introducing redundancy into the evaluation. The example below splits the data into a 70%/30% train/test split and repeats the process 10 times." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import ShuffleSplit\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "n_splits = 10\n", + "test_size = 0.30\n", + "seed = 7\n", + "kfold = ShuffleSplit(n_splits=n_splits, test_size=test_size, random_state=seed)\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(\"Accuracy: \" , (results.mean()*100.0, results.std()*100.0))\n", + "\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "cross_validation_report = pd.DataFrame(output)\n", + "cross_validation_report.columns = ['CLASS']\n", + "cross_validation_report.index.name = 'Index'\n", + "cross_validation_report['CLASS'] = cross_validation_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "cross_validation_report.to_csv('cross_validation_report.csv')\n", + "\n", + "print(cross_validation_report['CLASS'].unique())\n", + "print('False: ',cross_validation_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',cross_validation_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# NOTE: What Techniques to Use When\n", + "This section lists some tips to consider what resampling technique to use in diferent circum- stances.\n", + "\n", + "Generally k-fold cross validation is the gold standard for evaluating the performance of amachine learning algorithm on unseen data with k set to 3, 5, or 10.\n", + "Using a train/test split is good for speed when using a slow algorithm and producesperformance estimates with lower bias when using large datasets.\n", + "Techniques like leave-one-out cross validation and repeated random splits can be usefulintermediates when trying to balance variance in the estimated performance, modeltraining speed and dataset size.\n", + "The best advice is to experiment and find a technique for your problem that is fast and produces reasonable estimates of performance that you can use to make decisions. If in doubt, use 10-fold cross validation.\n", + "# Machine Learning Algorithm Performance Metrics\n", + "\n", + "The metrics that you choose to evaluate your machine learning algorithms are very important.\n", + "Choice of metrics in\n", + "uences how the performance of machine learning algorithms is measured\n", + "and compared. They in\n", + "uence how you weight the importance of different characteristics in\n", + "the results and your ultimate choice of which algorithm to choose.\n", + "\n", + "## Algorithm Evaluation Metrics\n", + "In this lesson, various different algorithm evaluation metrics are demonstrated for both classification and regression type machine learning problems. In each recipe, the dataset is downloaded\n", + "directly from the Machine Learning repository.\n", + "\n", + "## Classiffication Metrics\n", + "Classiffication problems are perhaps the most common type of machine learning problem and as such there are a myriad of metrics that can be used to evaluate predictions for these problems. In this section we will review how to use the following metrics:\n", + "\n", + "* Classiffication Accuracy.\n", + "* Logarithmic Loss.\n", + "* Area Under ROC Curve.\n", + "* Confusion Matrix.\n", + "* Classiffication Report.\n", + "\n", + "## Classiffication Accuracy\n", + "Classiffication accuracy is the number of correct predictions made as a ratio of all predictions made. This is the most common evaluation metric for classi\f", + "cation problems, it is also the most misused. It is really only suitable when there are an equal number of observations in each class (which is rarely the case) and that all predictions and prediction errors are equally important, which is often not the case. Below is an example of calculating classiffication accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import matthews_corrcoef\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LogisticRegression()\n", + "scoring = 'accuracy'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"Accuracy:\", (results.mean(), results.std()))\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "classification_accuracy_report = pd.DataFrame(output)\n", + "classification_accuracy_report.columns = ['CLASS']\n", + "classification_accuracy_report.index.name = 'Index'\n", + "classification_accuracy_report['CLASS'] = classification_accuracy_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "classification_accuracy_report.to_csv('classification_accuracy_report.cp.csv')\n", + "\n", + "print(classification_accuracy_report['CLASS'].unique())\n", + "print('False: ',classification_accuracy_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',classification_accuracy_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Confusion Matrix\n", + "The confusion matrix is a handy presentation of the accuracy of a model with two or more classes. The table presents predictions on the x-axis and accuracy outcomes on the y-axis. The cells of the table are the number of predictions made by a machine learning algorithm. For example, a machine learning algorithm can predict 0 or 1 and each prediction may actually have been a 0 or 1. Predictions for 0 that were actually 0 appear in the cell for prediction = 0 and actual = 0, whereas predictions for 0 that were actually 1 appear in the cell for prediction = 0 and actual = 1. And so on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import confusion_matrix\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "test_size = 0.30\n", + "seed = 7\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\n", + "random_state=seed)\n", + "\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "\n", + "predicted = model.predict(X_test)\n", + "matrix = confusion_matrix(Y_test, predicted)\n", + "print(matrix)\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "confusion_matrix_report = pd.DataFrame(output)\n", + "confusion_matrix_report.columns = ['CLASS']\n", + "confusion_matrix_report.index.name = 'Index'\n", + "confusion_matrix_report['CLASS'] = confusion_matrix_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "confusion_matrix_report.to_csv('confusion_matrix_report.csv')\n", + "\n", + "print(confusion_matrix_report['CLASS'].unique())\n", + "print('False: ',confusion_matrix_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',confusion_matrix_report.groupby('CLASS').size()[1].sum())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Classiffication Report\n", + "The scikit-learn library provides a convenience report when working on classiffication problems to give you a quick idea of the accuracy of a model using a number of measures. The classification report() function displays the precision, recall, F1-score and support for each class. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "test_size = 0.30\n", + "seed = 7\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,\n", + "random_state=seed)\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "predicted = model.predict(X_test)\n", + "report = classification_report(Y_test, predicted)\n", + "print(report)\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Classification_report = pd.DataFrame(output)\n", + "Classification_report.columns = ['CLASS']\n", + "Classification_report.index.name = 'Index'\n", + "Classification_report['CLASS'] = Classification_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Classification_report.to_csv('Classification_report.csv')\n", + "\n", + "print(Classification_report['CLASS'].unique())\n", + "print('False: ',Classification_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',Classification_report.groupby('CLASS').size()[1].sum())\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Spot-Check Classiffication Algorithms.\n", + "Spot-checking is a way of discovering which algorithms perform well on your machine learning problem. You cannot know which algorithms are best suited to your problem beforehand. You must trial a number of \n", + "methods and focus attention on those that prove themselves the most promising.\n", + "\n", + "1. How to spot-check machine learning algorithms on a classification problem.\n", + "2. How to spot-check two linear classification algorithms.\n", + "3. How to spot-check four nonlinear classification algorithms.\n", + "\n", + "## Algorithm Spot-Checking\n", + "You cannot know which algorithm will work best on your dataset beforehand. You must use trial and error to discover a shortlist of algorithms that do well on your problem that you can then double down on and tune further. I call this process spot-checking. The question is not: What algorithm should I use on my dataset? Instead it is: What algorithms should I spot-check on my dataset? You can guess at what algorithms might do well on your dataset, and this can be a good starting point. I recommend trying a mixture of algorithms and see what is good at picking out the structure in your data. Below are some suggestions when spot-checking algorithms on your dataset:\n", + "\n", + "Try a mixture of algorithm representations (e.g. instances and trees).\n", + "\n", + "Try a mixture of learning algorithms (e.g. di\u000b", + "erent algorithms for learning the same type of representation).\n", + "\n", + "Try a mixture of modeling types (e.g. linear and nonlinear functions or parametric and nonparametric).\n", + "\n", + "Algorithms Overview\n", + "We are going to take a look at six classi\f", + "cation algorithms that you can spot-check on your dataset. Starting with two linear machine learning algorithms:\n", + "\n", + "Logistic Regression.\n", + "Linear Discriminant Analysis.\n", + "Then looking at four nonlinear machine learning algorithms:\n", + "\n", + "k-Nearest Neighbors.\n", + "Naive Bayes.\n", + "Classiffication and Regression Trees.\n", + "Support Vector Machines.\n", + "Linear Machine Learning Algorithms\n", + "This section demonstrates minimal recipes for how to use two linear machine learning algorithms: logistic regression and linear discriminant analysis.\n", + "\n", + "Logistic Regression\n", + "Logistic regression assumes a Gaussian distribution for the numeric input variables and can model binary classiffication problems. You can construct a logistic regression model using the LogisticRegression class.\n", + "\n", + "
\n", + "Great information there." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Logistic Regression Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LogisticRegression()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "LogisticRegression = pd.DataFrame(output)\n", + "LogisticRegression.columns = ['CLASS']\n", + "LogisticRegression.index.name = 'Index'\n", + "LogisticRegression['CLASS'] = LogisticRegression['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "LogisticRegression.to_csv('LogisticRegression.csv')\n", + "\n", + "print(LogisticRegression['CLASS'].unique())\n", + "print('False: ',LogisticRegression.groupby('CLASS').size()[0].sum())\n", + "print('True: ',LogisticRegression.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Linear Discriminant Analysis\n", + "Linear Discriminant Analysis or LDA is a statistical technique for binary and multiclass classiffication. It too assumes a Gaussian distribution for the numerical input variables. You can construct an LDA model using the LinearDiscriminantAnalysis class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearDiscriminantAnalysis()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "LinearDiscriminantAnalysis = pd.DataFrame(output)\n", + "LinearDiscriminantAnalysis.columns = ['CLASS']\n", + "LinearDiscriminantAnalysis.index.name = 'Index'\n", + "LinearDiscriminantAnalysis['CLASS'] = LinearDiscriminantAnalysis['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "LinearDiscriminantAnalysis.to_csv('LinearDiscriminantAnalysis.csv')\n", + "\n", + "print(LinearDiscriminantAnalysis['CLASS'].unique())\n", + "print('False: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[0].sum())\n", + "print('True: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nonlinear Machine Learning Algorithms\n", + "This section demonstrates minimal recipes for how to use 4 nonlinear machine learning algorithms.\n", + "\n", + "## k-Nearest Neighbors\n", + "The k-Nearest Neighbors algorithm (or KNN) uses a distance metric to find the k most similar instances in the training data for a new instance and takes the mean outcome of the neighbors as the prediction. You can construct a KNN model using the KNeighborsClassifier class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = KNeighborsClassifier()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "k_nearest = pd.DataFrame(output)\n", + "k_nearest.columns = ['CLASS']\n", + "k_nearest.index.name = 'Index'\n", + "k_nearest['CLASS'] = k_nearest['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "k_nearest.to_csv('k_nearest.csv')\n", + "\n", + "print(k_nearest['CLASS'].unique())\n", + "print('False: ',k_nearest.groupby('CLASS').size()[0].sum())\n", + "print('True: ',k_nearest.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Naive Bayes\n", + "Naive Bayes calculates the probability of each class and the conditional probability of each class given each input value. These probabilities are estimated for new data and multiplied together, assuming that they are all independent (a simple or naive assumption). When working with real-valued data, a Gaussian distribution is assumed to easily estimate the probabilities for input variables using the Gaussian Probability Density Function. You can construct a Naive Bayes model using the GaussianNB class4." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.naive_bayes import GaussianNB\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = GaussianNB()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "naive_bayes = pd.DataFrame(output)\n", + "naive_bayes.columns = ['CLASS']\n", + "naive_bayes.index.name = 'Index'\n", + "naive_bayes['CLASS'] = naive_bayes['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "naive_bayes.to_csv('naive_bayes_nb.csv')\n", + "\n", + "print(naive_bayes['CLASS'].unique())\n", + "print('False: ',naive_bayes.groupby('CLASS').size()[0].sum())\n", + "print('True: ',naive_bayes.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Classiffication and Regression Trees\n", + "Classiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = DecisionTreeClassifier()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "DecisionTree_report = pd.DataFrame(output)\n", + "DecisionTree_report.columns = ['CLASS']\n", + "DecisionTree_report.index.name = 'Index'\n", + "DecisionTree_report['CLASS'] = DecisionTree_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "DecisionTree_report.to_csv('DecisionTree_report_dt.csv')\n", + "\n", + "print(DecisionTree_report['CLASS'].unique())\n", + "print('False: ',DecisionTree_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',DecisionTree_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Support Vector Machines\n", + "Support Vector Machines (or SVM) seek a line that best separates two classes. Those data instances that are closest to the line that best separates the classes are called support vectors and in uence where the line is placed. SVM has been extended to support multiple classes. Of particular importance is the use of di\u000b", + "erent kernel functions via the kernel parameter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.svm import SVC\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10)\n", + "model = SVC()\n", + "scoring = 'acuracy'\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "finalreport1 = pd.DataFrame(output)\n", + "finalreport1.columns = ['CLASS']\n", + "finalreport1.index.name = 'Index'\n", + "finalreport1['CLASS'] = finalreport1['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "finalreport1.to_csv('finalreport1_sv.csv')\n", + "\n", + "print(finalreport1['CLASS'].unique())\n", + "print('False: ',finalreport1.groupby('CLASS').size()[0].sum())\n", + "print('True: ',finalreport1.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Regression Metrics\n", + "In this section will review 3 of the most common metrics for evaluating predictions on regression\n", + "machine learning problems:\n", + "- Mean Absolute Error.\n", + "- Mean Squared Error.\n", + "- R2.\n", + "\n", + "## Mean Absolute Error\n", + "The Mean Absolute Error (or MAE) is the sum of the absolute di\u000b", + "erences between predictions\n", + "and actual values. It gives an idea of how wrong the predictions were. The measure gives an\n", + "idea of the magnitude of the error, but no idea of the direction (e.g. over or under predicting).\n", + "The example below demonstrates calculating mean absolute error on the Boston house price\n", + "dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_csv\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearRegression()\n", + "scoring = 'neg_mean_absolute_error'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"MAE:\",(results.mean(), results.std()))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mean Squared Error\n", + "The Mean Squared Error (or MSE) is much like the mean absolute error in that it provides a gross idea of the magnitude of error. Taking the square root of the mean squared error converts the units back to the original units of the output variable and can be meaningful for description and presentation. This is called the Root Mean Squared Error (or RMSE). The example below provides a demonstration of calculating mean squared error." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross Validation Regression MSE\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "num_folds = 10\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearRegression()\n", + "scoring = 'neg_mean_squared_error'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"MSE:\",(results.mean(), results.std()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This metric too is inverted so that the results are increasing. Remember to take the absolute value before taking the square root if you are interested in calculating the RMSE.\n", + "\n", + "## R2 Metric\n", + "The R2 (or R Squared) metric provides an indication of the goodness of fit of a set of predictions to the actual values. In statistical literature this measure is called the coefficient of determination. This is a value between 0 and 1 for no-fit and perfect fit respectively. The example below provides a demonstration of calculating the mean R2 for a set of predictions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross Validation Regression R^2\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = LinearRegression()\n", + "scoring = 'r2'\n", + "results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + "print(\"R^2:\",(results.mean(), results.std()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Classiffication and Regression Trees\n", + "Classiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "model = DecisionTreeClassifier()\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# d) Compare Algorithms\n", + "## Compare Machine Learning Algorithms\n", + "It is important to compare the performance of multiple di\u000b", + "erent machine learning algorithms\n", + "consistently. In this chapter you will discover how you can create a test harness to compare\n", + "multiple different machine learning algorithms in Python with scikit-learn. You can use this\n", + "test harness as a template on your own machine learning problems and add more and different\n", + "algorithms to compare. After completing this lesson you will know:\n", + "\n", + "1. How to formulate an experiment to directly compare machine learning algorithms.\n", + "2. A reusable template for evaluating the performance of multiple algorithms on one dataset.\n", + "3. How to report and visualize the results when comparing algorithm performance.\n", + "\n", + "\n", + "### Choose The Best Machine Learning Model\n", + "When you work on a machine learning project, you often end up with multiple good models\n", + "to choose from. Each model will have different performance characteristics. Using resampling\n", + "methods like cross validation, you can get an estimate for how accurate each model may be on\n", + "unseen data. You need to be able to use these estimates to choose one or two best models from\n", + "the suite of models that you have created.\n", + "When you have a new dataset, it is a good idea to visualize the data using different techniques\n", + "in order to look at the data from di\u000b", + "erent perspectives. The same idea applies to model selection.\n", + "You should use a number of di\u000b", + "erent ways of looking at the estimated accuracy of your machine\n", + "learning algorithms in order to choose the one or two algorithm to finalize. A way to do this is\n", + "to use visualization methods to show the average accuracy, variance and other properties of the\n", + "distribution of model accuracies. In the next section you will discover exactly how you can do\n", + "that in Python with scikit-learn.\n", + "\n", + "\n", + "### Compare Machine Learning Algorithms Consistently\n", + "The key to a fair comparison of machine learning algorithms is ensuring that each algorithm is\n", + "evaluated in the same way on the same data. You can achieve this by forcing each algorithm to be evaluated on a consistent test harness. In the example below six different classiffication\n", + "algorithms are compared on a single dataset:\n", + "\n", + "- Logistic Regression.\n", + "- Linear Discriminant Analysis.\n", + "- k-Nearest Neighbors.\n", + "- Classiffication and Regression Trees.\n", + "- Naive Bayes.\n", + "- Support Vector Machines.\n", + "\n", + "The dataset is the Pima Indians onset of diabetes problem. The problem has two classes and\n", + "eight numeric input variables of varying scales. The 10-fold cross validation procedure is used to\n", + "evaluate each algorithm, importantly con\f", + "gured with the same random seed to ensure that the\n", + "same splits to the training data are performed and that each algorithm is evaluated in precisely\n", + "the same way. Each algorithm is given a short name, useful for summarizing results afterward." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Compare Algorithms\n", + "from pandas import read_csv\n", + "from matplotlib import pyplot\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "from sklearn.naive_bayes import GaussianNB\n", + "from sklearn.svm import SVC\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "# load dataset\n", + "array = Train.values\n", + "\n", + "#split the dataset \n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "# prepare models and add them to a list\n", + "models = []\n", + "models.append(('LR', LogisticRegression()))\n", + "models.append(('LDA', LinearDiscriminantAnalysis()))\n", + "models.append(('KNN', KNeighborsClassifier()))\n", + "models.append(('CART', DecisionTreeClassifier()))\n", + "models.append(('NB', GaussianNB()))\n", + "models.append(('SVM', SVC()))\n", + "\n", + "# evaluate each model in turn\n", + "results = []\n", + "names = []\n", + "scoring = 'accuracy'\n", + "\n", + "for name, model in models:\n", + " kfold = KFold(n_splits=10, random_state=7)\n", + " cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n", + " results.append(cv_results)\n", + " names.append(name)\n", + " msg = (name, cv_results.mean(), cv_results.std())\n", + " print(msg)\n", + "\n", + "# boxplot algorithm comparison\n", + "fig = pyplot.figure()\n", + "fig.suptitle('Algorithm Comparison')\n", + "ax = fig.add_subplot(111)\n", + "pyplot.boxplot(results)\n", + "ax.set_xticklabels(names)\n", + "pyplot.show()\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "compare_testmethods_report = pd.DataFrame(output)\n", + "compare_testmethods_report.columns = ['CLASS']\n", + "compare_testmethods_report.index.name = 'Index'\n", + "compare_testmethods_report['CLASS'] = compare_testmethods_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "compare_testmethods_report.to_csv('compare_testmethods_report.csv')\n", + "\n", + "print(compare_testmethods_report['CLASS'].unique())\n", + "print('False: ',compare_testmethods_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',compare_testmethods_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Automate Machine Learning Workflows with Pipelines\n", + "\n", + "There are standard work\n", + "ows in a machine learning project that can be automated. In Python\n", + "scikit-learn, Pipelines help to clearly define and automate these work\n", + "ows. In this chapter you\n", + "will discover Pipelines in scikit-learn and how you can automate common machine learning\n", + "work\n", + "ows. After completing this lesson you will know:\n", + "\n", + "1. How to use pipelines to minimize data leakage.\n", + "2. How to construct a data preparation and modeling pipeline.\n", + "3. How to construct a feature extraction and modeling pipeline.\n", + "\n", + "### Automating Machine Learning Workflows\n", + "There are standard work\n", + "ows in applied machine learning. Standard because they overcome\n", + "common problems like data leakage in your test harness. Python scikit-learn provides a Pipeline\n", + "utility to help automate machine learning work\n", + "ows. Pipelines work by allowing for a linear\n", + "sequence of data transforms to be chained together culminating in a modeling process that can\n", + "be evaluated.\n", + "\n", + "The goal is to ensure that all of the steps in the pipeline are constrained to the data available\n", + "for the evaluation, such as the training dataset or each fold of the cross validation procedure.\n", + "You can learn more about Pipelines in scikit-learn by reading the Pipeline section1 of the user\n", + "guide. You can also review the API documentation for the Pipeline and FeatureUnion classes\n", + "and the pipeline module2.\n", + "\n", + "### Data Preparation and Modeling Pipeline\n", + "An easy trap to fall into in applied machine learning is leaking data from your training dataset\n", + "to your test dataset. To avoid this trap you need a robust test harness with strong separation of training and testing. This includes data preparation. Data preparation is one easy way to leak\n", + "knowledge of the whole training dataset to the algorithm. For example, preparing your data\n", + "using normalization or standardization on the entire training dataset before learning would not\n", + "be a valid test because the training dataset would have been in\n", + "uenced by the scale of the data\n", + "in the test set.\n", + "\n", + "\n", + "Pipelines help you prevent data leakage in your test harness by ensuring that data preparation\n", + "like standardization is constrained to each fold of your cross validation procedure. The example\n", + "below demonstrates this important data preparation and model evaluation work\n", + "ow on the\n", + "Pima Indians onset of diabetes dataset. The pipeline is de\f", + "ned with two steps:\n", + "\n", + "1. Standardize the data.\n", + "2. Learn a Linear Discriminant Analysis model.\n", + "\n", + "The pipeline is then evaluated using 10-fold cross validation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a pipeline that standardizes the data then creates a model\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "# load data\n", + "\n", + "#dataframe = read_csv('diabetes.csv')\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "# create pipeline\n", + "estimators = []\n", + "estimators.append(('standardize', StandardScaler()))\n", + "estimators.append(('lda', LinearDiscriminantAnalysis()))\n", + "model = Pipeline(estimators)\n", + "\n", + "\n", + "# evaluate pipeline\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "standarzied_pipeline_report = pd.DataFrame(output)\n", + "standarzied_pipeline_report.columns = ['CLASS']\n", + "standarzied_pipeline_report.index.name = 'Index'\n", + "standarzied_pipeline_report['CLASS'] = standarzied_pipeline_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "standarzied_pipeline_report.to_csv('standarzied_pipeline_report.csv')\n", + "\n", + "print(standarzied_pipeline_report['CLASS'].unique())\n", + "print('False: ',standarzied_pipeline_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',standarzied_pipeline_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 5. Improve Accuracy\n", + "# a) Algorithm Tuning\n", + "# b) Ensembles\n", + "\n", + "# Improve Performance with Ensembles\n", + "\n", + "Ensembles can give you a boost in accuracy on your dataset. In this chapter you will discover\n", + "how you can create some of the most powerful types of ensembles in Python using scikit-learn.\n", + "This lesson will step you through Boosting, Bagging and Majority Voting and show you how you\n", + "can continue to ratchet up the accuracy of the models on your own datasets. After completing\n", + "this lesson you will know:\n", + "\n", + "1. How to use bagging ensemble methods such as bagged decision trees, random forest and extra trees.\n", + "2. How to use boosting ensemble methods such as AdaBoost and stochastic gradient boosting.\n", + "3. How to use voting ensemble methods to combine the predictions from multiple algorithms.\n", + "\n", + "### Combine Models Into Ensemble Predictions\n", + "The three most popular methods for combining the predictions from different models are:\n", + "\n", + "- Bagging. Building multiple models (typically of the same type) from different subsamples of the training dataset.\n", + "- Boosting. Building multiple models (typically of the same type) each of which learns to fix the prediction errors of a prior model in the sequence of models.\n", + "- Voting. Building multiple models (typically of di\u000b", + "ering types) and simple statistics (like calculating the mean) are used to combine predictions.\n", + "\n", + "This assumes you are generally familiar with machine learning algorithms and ensemble\n", + "methods and will not go into the details of how the algorithms work or their parameters.\n", + "The Pima Indians onset of Diabetes dataset is used to demonstrate each algorithm. Each\n", + "ensemble algorithm is demonstrated using 10-fold cross validation and the classiffication accuracy\n", + "performance metric.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Boosting Algorithms\n", + "Boosting ensemble algorithms creates a sequence of models that attempt to correct the mistakes\n", + "of the models before them in the sequence. Once created, the models make predictions which\n", + "may be weighted by their demonstrated accuracy and the results are combined to create a final\n", + "output prediction. The two most common boosting ensemble machine learning algorithms are:\n", + "\n", + "- AdaBoost.\n", + "- Stochastic Gradient Boosting.\n", + "\n", + "\n", + "### AdaBoost\n", + "AdaBoost was perhaps the \f", + "rst successful boosting ensemble algorithm. It generally works\n", + "by weighting instances in the dataset by how easy or di\u000ecult they are to classify, allowing\n", + "the algorithm to pay or less attention to them in the construction of subsequent models. You\n", + "can construct an AdaBoost model for classi\f", + "cation using the AdaBoostClassifier class4. The\n", + "example below demonstrates the construction of 30 decision trees in sequence using the AdaBoost\n", + "algorithm." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# AdaBoost Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import AdaBoostClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "num_trees = 30\n", + "seed=7\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "\n", + "model = AdaBoostClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "\n", + "print(results.mean())\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "AdaBoost_report = pd.DataFrame(output)\n", + "AdaBoost_report.columns = ['CLASS']\n", + "AdaBoost_report.index.name = 'Index'\n", + "AdaBoost_report['CLASS'] = AdaBoost_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "AdaBoost_report.to_csv('AdaBoost_report.csv')\n", + "\n", + "print(AdaBoost_report['CLASS'].unique())\n", + "print('False: ',AdaBoost_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',AdaBoost_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stochastic Gradient Boosting\n", + "Stochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\n", + "sophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\n", + "the best techniques available for improving performance via ensembles. You can construct a\n", + "Gradient Boosting model for classiffication using the GradientBoostingClassifier class5. The\n", + "example below demonstrates Stochastic Gradient Boosting for classification with 100 trees" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stochastic Gradient Boosting Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import GradientBoostingClassifier\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "seed = 7\n", + "num_trees = 100\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "model = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## XGB" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stochastic X Gradient Boosting Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from xgboost import XGBClassifier\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "seed = 7\n", + "num_trees = 100\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "model = XGBClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Voting Ensemble\n", + "Voting is one of the simplest ways of combining the predictions from multiple machine learning\n", + "algorithms. It works by first creating two or more standalone models from your training dataset.\n", + "A Voting Classiffier can then be used to wrap your models and average the predictions of the\n", + "sub-models when asked to make predictions for new data. The predictions of the sub-models can\n", + "be weighted, but specifying the weights for classiffiers manually or even heuristically is difficult.\n", + "More advanced methods can learn how to best weight the predictions from sub-models, but this\n", + "is called stacking (stacked aggregation) and is currently not provided in scikit-learn.\n", + "You can create a voting ensemble model for classiffication using the VotingClassifier\n", + "class6. The code below provides an example of combining the predictions of logistic regression,\n", + "classiffication and regression trees and support vector machines together for a classiffication\n", + "problem." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Voting Ensemble for Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from xgboost import XGBClassifier\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.svm import SVC\n", + "from sklearn.ensemble import VotingClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "\n", + "# create the sub models\n", + "estimators = []\n", + "model1 = LogisticRegression()\n", + "estimators.append(('logistic', model1))\n", + "\n", + "model2 = DecisionTreeClassifier()\n", + "estimators.append(('cart', model2))\n", + "\n", + "model3 = SVC()\n", + "estimators.append(('svm', model3))\n", + "\n", + "model4 = XGBClassifier()\n", + "estimators.append(('xgb', model4))\n", + "\n", + "model5 = RandomForestClassifier()\n", + "estimators.append(('rfc', model5))\n", + "\n", + "# create the ensemble model\n", + "ensemble = VotingClassifier(estimators)\n", + "results = cross_val_score(ensemble, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Voting_Ensemble_report = pd.DataFrame(output)\n", + "Voting_Ensemble_report.columns = ['CLASS']\n", + "Voting_Ensemble_report.index.name = 'Index'\n", + "Voting_Ensemble_report['CLASS'] = Voting_Ensemble_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Voting_Ensemble_report.to_csv('Voting_Ensemble_report.csv')\n", + "\n", + "print(Voting_Ensemble_report['CLASS'].unique())\n", + "print('False: ',Voting_Ensemble_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',Voting_Ensemble_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Extra Trees\n", + "Extra Trees are another modi\f", + "cation of bagging where random trees are constructed from\n", + "samples of the training dataset. You can construct an Extra Trees model for classiffication using\n", + "the ExtraTreesClassifier class3. The example below provides a demonstration of extra trees\n", + "with the number of trees set to 100 and splits chosen from 7 random features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import ExtraTreesClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "#let's read the data\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "num_trees = 100\n", + "max_features = 7\n", + "\n", + "kfold = KFold(n_splits=10, random_state=7)\n", + "\n", + "model = ExtraTreesClassifier(n_estimators=num_trees, max_features=max_features)\n", + "\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "\n", + "print(results.mean())\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Extra_tree_report = pd.DataFrame(output)\n", + "Extra_tree_report.columns = ['CLASS']\n", + "Extra_tree_report.index.name = 'Index'\n", + "Extra_tree_report['CLASS'] = Extra_tree_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Extra_tree_report.to_csv('Extra_tree_report.csv')\n", + "\n", + "print(Extra_tree_report.groupby('CLASS').size()[1].sum())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stochastic Gradient Boosting\n", + "Stochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\n", + "sophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\n", + "the best techniques available for improving performance via ensembles." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stochastic Gradient Boosting Classification\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.ensemble import GradientBoostingClassifier\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "array = Train.values\n", + "\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "seed = 7\n", + "num_trees = 100\n", + "\n", + "kfold = KFold(n_splits=10, random_state=seed)\n", + "model = GradientBoostingClassifier(n_estimators=num_trees, random_state=seed)\n", + "results = cross_val_score(model, X, Y, cv=kfold)\n", + "print(results.mean())\n", + "\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "Stochastic_report = pd.DataFrame(output)\n", + "Stochastic_report.columns = ['CLASS']\n", + "Stochastic_report.index.name = 'Index'\n", + "Stochastic_report['CLASS'] = Stochastic_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "Stochastic_report.to_csv('Stochastic_report.csv')\n", + "\n", + "print(Stochastic_report.groupby('CLASS').size()[1].sum())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finalize Your Model with pickle\n", + "Pickle is the standard way of serializing objects in Python. You can use the pickle1 operation\n", + "to serialize your machine learning algorithms and save the serialized format to a file. Later you\n", + "can load this file to deserialize your model and use it to make new predictions. The example\n", + "below demonstrates how you can train a logistic regression model on data set and save the model to file and load it to make predictions on the unseen test set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Save Model Using Pickle\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LogisticRegression\n", + "from pickle import dump\n", + "from pickle import load\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n", + "# Fit the model on 30%\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "\n", + "# save the model to disk\n", + "filename = 'finalized_model2.sav'\n", + "dump(model, open(filename, 'wb'))\n", + "\n", + "# some time later...\n", + "# load the model from disk\n", + "loaded_model = load(open(filename, 'rb'))\n", + "result = loaded_model.score(X_test, Y_test)\n", + "print(result)\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "pickle_report = pd.DataFrame(output)\n", + "pickle_report.columns = ['CLASS']\n", + "pickle_report.index.name = 'Index'\n", + "pickle_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "pickle_report.to_csv('pickle.csv')\n", + "\n", + "print(pickle_report['CLASS'].unique())\n", + "print('False: ',pickle_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',pickle_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finalize Your Model with Joblib\n", + "The Joblib2 library is part of the SciPy ecosystem and provides utilities for pipelining Python\n", + "jobs. It provides utilities for saving and loading Python objects that make use of NumPy data\n", + "structures, efficiently3. This can be useful for some machine learning algorithms that require a\n", + "lot of parameters or store the entire dataset (e.g. k-Nearest Neighbors). The example below\n", + "demonstrates how you can train a logistic regression model on the dataset, save the model to file using Joblib and load it to make predictions on the unseen test\n", + "set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Save Model Using joblib\n", + "from pandas import read_csv\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.externals.joblib import dump\n", + "from sklearn.externals.joblib import load\n", + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "\n", + "array = Train.values\n", + "X = array[:,0:11]\n", + "Y = array[:,11]\n", + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=7)\n", + "\n", + "# Fit the model on 30%\n", + "model = LogisticRegression()\n", + "model.fit(X_train, Y_train)\n", + "\n", + "# save the model to disk\n", + "\n", + "dump(model, filename)\n", + "\n", + "# some time later...\n", + "# load the model from disk\n", + "loaded_model = load(filename)\n", + "result = loaded_model.score(X_test, Y_test)\n", + "print(result)\n", + "\n", + "\n", + "test_set = Test.values\n", + "model.fit(X, Y)\n", + "output = model.predict(test_set)\n", + "\n", + "mcc = matthews_corrcoef(model.predict(X), Y)\n", + "print('MCC: ',mcc)\n", + "\n", + "joblib_report = pd.DataFrame(output)\n", + "joblib_report.columns = ['CLASS']\n", + "joblib_report.index.name = 'Index'\n", + "picklej_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n", + "\n", + "pickle_report.to_csv('pickle.csv')\n", + "\n", + "print(pickle_report['CLASS'].unique())\n", + "print('False: ',pickle_report.groupby('CLASS').size()[0].sum())\n", + "print('True: ',pickle_report.groupby('CLASS').size()[1].sum())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.4" + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 841f23ce10357a2cb0fce343858f503af03ba7a8 Mon Sep 17 00:00:00 2001 From: kakoozatrevor Date: Fri, 13 Mar 2020 12:14:17 +0300 Subject: [PATCH 3/5] this is my final work --- .../kakooza trevor Starter Kernel.ipynb | 67 +++++++++++++++---- .../kakooza trevor Starter Kernel2.ipynb | 1 + 2 files changed, 56 insertions(+), 12 deletions(-) create mode 100644 Assignment Colab/kakooza trevor Starter Kernel2.ipynb diff --git a/Assignment Colab/kakooza trevor Starter Kernel.ipynb b/Assignment Colab/kakooza trevor Starter Kernel.ipynb index 1324121..ad115b5 100644 --- a/Assignment Colab/kakooza trevor Starter Kernel.ipynb +++ b/Assignment Colab/kakooza trevor Starter Kernel.ipynb @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5" @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -91,9 +91,28 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] File /kaggle/input/amp-data-set/Test.csv does not exist: '/kaggle/input/amp-data-set/Test.csv'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m#using pandas we call the data set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mTest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'/kaggle/input/amp-data-set/Test.csv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mTrain\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"../input/amp-data-set/AMP_TrainSet.csv\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mparser_f\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)\u001b[0m\n\u001b[1;32m 674\u001b[0m )\n\u001b[1;32m 675\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 676\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 677\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 678\u001b[0m \u001b[0mparser_f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 446\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[0;31m# Create the parser.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 448\u001b[0;31m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfp_or_buf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 449\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 450\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 878\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"has_index_names\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 879\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 880\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 881\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 882\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[0;34m(self, engine)\u001b[0m\n\u001b[1;32m 1112\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_make_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"c\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1113\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"c\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1114\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mCParserWrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1115\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1116\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"python\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, src, **kwds)\u001b[0m\n\u001b[1;32m 1889\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"usecols\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0musecols\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1890\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1891\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mparsers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTextReader\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1892\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munnamed_cols\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munnamed_cols\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1893\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader.__cinit__\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._setup_parser_source\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] File /kaggle/input/amp-data-set/Test.csv does not exist: '/kaggle/input/amp-data-set/Test.csv'" + ] + } + ], "source": [ "#using pandas we call the data set\n", "Test = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\n", @@ -121,9 +140,21 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'Train' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mTrain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'Train' is not defined" + ] + } + ], "source": [ "Train.head()" ] @@ -328,9 +359,21 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'Train' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mTrain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcorr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'pearson'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'Train' is not defined" + ] + } + ], "source": [ "Train.corr(method='pearson')" ] @@ -2271,7 +2314,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.7.3" }, "varInspector": { "cols": { diff --git a/Assignment Colab/kakooza trevor Starter Kernel2.ipynb b/Assignment Colab/kakooza trevor Starter Kernel2.ipynb new file mode 100644 index 0000000..2663c1b --- /dev/null +++ b/Assignment Colab/kakooza trevor Starter Kernel2.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":" # KAKOOZA TREVOR\n## Kaggle assignment\n### started on the 28th /feb/2020"},{"metadata":{},"cell_type":"markdown","source":"# 1. Prepare Problem\n### a) Load libraries\n### b) Load dataset"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# Any results you write to the current directory are saved as output.","execution_count":1,"outputs":[{"output_type":"stream","text":"/kaggle/input/amp-data-set/Test.csv\n/kaggle/input/amp-data-set/AMP_TrainSet.csv\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Import the necessary tools required to work on the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#import the necessary libraries you are going to use\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# -----> Put your code here below:\n\n\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns","execution_count":2,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"\n# This first session is about loading the give dataset and viewing them. \n\n* The two data set provided are\n1. test.csv\n2. AMP_TrainSet.csv \n\n### Now load the data set using.\n```\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")\nTest = pd.read_csv(\"../input/amp-data-set/Test.csv\")\n```\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#using pandas we call the data set\nTest = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")","execution_count":3,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 2. Summarize Data\n\n## View the first five raws of the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#head.() is ued to view the first five raws of the data set.\nTest.head()","execution_count":4,"outputs":[{"output_type":"execute_result","execution_count":4,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\n0 4.0 3.704 0.873 73.519 \n1 4.0 4.444 0.892 62.444 \n2 2.0 0.000 0.901 47.000 \n3 4.5 0.000 0.869 69.222 \n4 -4.0 21.591 1.061 71.682 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\n0 0.987 -4.833 0 0.382 \n1 0.931 -0.584 0 0.320 \n2 1.039 -5.664 0 0.164 \n3 0.982 -5.423 0 2.010 \n4 0.976 -2.002 0 2.758 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 \n0 74.556 7.225 1.234 \n1 56.056 4.942 1.853 \n2 47.000 5.969 1.174 \n3 69.222 5.462 1.138 \n4 66.000 5.582 1.453 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104
04.03.7040.87373.5190.987-4.83300.38274.5567.2251.234
14.04.4440.89262.4440.931-0.58400.32056.0564.9421.853
22.00.0000.90147.0001.039-5.66400.16447.0005.9691.174
34.50.0000.86969.2220.982-5.42302.01069.2225.4621.138
4-4.021.5911.06171.6820.976-2.00202.75866.0005.5821.453
\n
"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.head()","execution_count":5,"outputs":[{"output_type":"execute_result","execution_count":5,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\n0 5.0 0.000 0.951 74.842 \n1 4.0 5.405 0.931 71.595 \n2 5.5 5.405 0.873 73.595 \n3 5.0 4.167 0.895 66.250 \n4 7.5 8.537 0.932 64.720 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\n0 0.975 -3.663 0 0.282 \n1 0.957 -4.011 1 0.600 \n2 0.961 -2.512 0 0.593 \n3 0.999 -1.362 0 0.614 \n4 0.979 -2.091 0 0.616 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 CLASS \n0 73.444 5.661 1.041 1 \n1 68.222 6.537 1.453 1 \n2 69.444 4.934 1.722 1 \n3 67.222 4.316 1.382 1 \n4 72.944 4.540 1.539 1 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
05.00.0000.95174.8420.975-3.66300.28273.4445.6611.0411
14.05.4050.93171.5950.957-4.01110.60068.2226.5371.4531
25.55.4050.87373.5950.961-2.51200.59369.4444.9341.7221
35.04.1670.89566.2500.999-1.36200.61467.2224.3161.3821
47.58.5370.93264.7200.979-2.09100.61672.9444.5401.5391
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Shape function\n* This function helps to view the total raws and columns (dimension) of the dataset. "},{"metadata":{"trusted":true},"cell_type":"code","source":"# check the dimensions of your data\n\nTrain.shape, Test.shape\n","execution_count":6,"outputs":[{"output_type":"execute_result","execution_count":6,"data":{"text/plain":"((3038, 12), (758, 11))"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# Data type\n* This returns a Series with the data type of each column."},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.dtypes","execution_count":7,"outputs":[{"output_type":"execute_result","execution_count":7,"data":{"text/plain":"FULL_Charge float64\nFULL_AcidicMolPerc float64\nFULL_AURR980107 float64\nFULL_DAYM780201 float64\nFULL_GEOR030101 float64\nFULL_OOBM850104 float64\nNT_EFC195 int64\nAS_MeanAmphiMoment float64\nAS_DAYM780201 float64\nAS_FUKS010112 float64\nCT_RACS820104 float64\ndtype: object"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.dtypes","execution_count":8,"outputs":[{"output_type":"execute_result","execution_count":8,"data":{"text/plain":"FULL_Charge float64\nFULL_AcidicMolPerc float64\nFULL_AURR980107 float64\nFULL_DAYM780201 float64\nFULL_GEOR030101 float64\nFULL_OOBM850104 float64\nNT_EFC195 int64\nAS_MeanAmphiMoment float64\nAS_DAYM780201 float64\nAS_FUKS010112 float64\nCT_RACS820104 float64\nCLASS int64\ndtype: object"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## isnull().sum\n* This function helps to see if the dataset has any missing values."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.isnull().sum","execution_count":9,"outputs":[{"output_type":"execute_result","execution_count":9,"data":{"text/plain":""},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.isnull().sum()","execution_count":10,"outputs":[{"output_type":"execute_result","execution_count":10,"data":{"text/plain":"FULL_Charge 0\nFULL_AcidicMolPerc 0\nFULL_AURR980107 0\nFULL_DAYM780201 0\nFULL_GEOR030101 0\nFULL_OOBM850104 0\nNT_EFC195 0\nAS_MeanAmphiMoment 0\nAS_DAYM780201 0\nAS_FUKS010112 0\nCT_RACS820104 0\ndtype: int64"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"* When we look at the data ,it shows that both the test and train dataset does not have any missing values"},{"metadata":{},"cell_type":"markdown","source":"## Then in column of class we check and find out,\n* How is the data divied and classified \n* Here the unique function does that."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train['CLASS'].unique()","execution_count":11,"outputs":[{"output_type":"execute_result","execution_count":11,"data":{"text/plain":"array([1, 0])"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# a) Descriptive statistics\n## Descriptive statistics of the data\n* Generate descriptive statistics that summarize the central tendency,\ndispersion and shape of a dataset's distribution, excluding\n``NaN`` values.\n\nAnalyzes both numeric and object series, as well\nas ``DataFrame`` column sets of mixed data types. The output\nwill vary depending on what is provided.\n\n### For example this function will provide the following summary\n* Count.\n* Mean.\n* Standard Deviation.\n* Minimum Value.\n* 25th Percentile.\n* 75th Percentile(Median).\n* Maximum Value.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.describe()","execution_count":12,"outputs":[{"output_type":"execute_result","execution_count":12,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 2.060237 8.521520 0.971410 73.668760 \nstd 3.819929 7.586652 0.107413 8.527489 \nmin -16.000000 0.000000 0.684000 42.750000 \n25% 0.000000 2.516000 0.895000 68.294000 \n50% 2.000000 7.143000 0.963000 74.059500 \n75% 4.000000 13.158000 1.041000 79.343750 \nmax 30.000000 46.667000 1.451000 101.682000 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 0.994007 -2.432927 0.088545 15.683233 \nstd 0.031333 1.707223 0.284133 11.575665 \nmin 0.866000 -10.432000 0.000000 0.041000 \n25% 0.974000 -3.606000 0.000000 5.587500 \n50% 0.994000 -2.296500 0.000000 14.988500 \n75% 1.011000 -1.283250 0.000000 26.807750 \nmax 1.196000 3.576000 1.000000 51.280000 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 CLASS \ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 73.650828 5.911361 1.235255 0.500000 \nstd 9.166092 0.693689 0.210012 0.500082 \nmin 42.778000 3.533000 0.785000 0.000000 \n25% 67.556000 5.459250 1.082000 0.000000 \n50% 73.697000 5.925500 1.184000 0.500000 \n75% 79.778000 6.382000 1.351000 1.000000 \nmax 103.167000 8.662000 2.192000 1.000000 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
count3038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.000000
mean2.0602378.5215200.97141073.6687600.994007-2.4329270.08854515.68323373.6508285.9113611.2352550.500000
std3.8199297.5866520.1074138.5274890.0313331.7072230.28413311.5756659.1660920.6936890.2100120.500082
min-16.0000000.0000000.68400042.7500000.866000-10.4320000.0000000.04100042.7780003.5330000.7850000.000000
25%0.0000002.5160000.89500068.2940000.974000-3.6060000.0000005.58750067.5560005.4592501.0820000.000000
50%2.0000007.1430000.96300074.0595000.994000-2.2965000.00000014.98850073.6970005.9255001.1840000.500000
75%4.00000013.1580001.04100079.3437501.011000-1.2832500.00000026.80775079.7780006.3820001.3510001.000000
max30.00000046.6670001.451000101.6820001.1960003.5760001.00000051.280000103.1670008.6620002.1920001.000000
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# (c)Check the dataset info\n* It gives more information about the number of columns of each variable and the type like float and integers and size of the memory ocuppied."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.info()","execution_count":13,"outputs":[{"output_type":"stream","text":"\nRangeIndex: 3038 entries, 0 to 3037\nData columns (total 12 columns):\nFULL_Charge 3038 non-null float64\nFULL_AcidicMolPerc 3038 non-null float64\nFULL_AURR980107 3038 non-null float64\nFULL_DAYM780201 3038 non-null float64\nFULL_GEOR030101 3038 non-null float64\nFULL_OOBM850104 3038 non-null float64\nNT_EFC195 3038 non-null int64\nAS_MeanAmphiMoment 3038 non-null float64\nAS_DAYM780201 3038 non-null float64\nAS_FUKS010112 3038 non-null float64\nCT_RACS820104 3038 non-null float64\nCLASS 3038 non-null int64\ndtypes: float64(10), int64(2)\nmemory usage: 284.9 KB\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.info()","execution_count":14,"outputs":[{"output_type":"stream","text":"\nRangeIndex: 758 entries, 0 to 757\nData columns (total 11 columns):\nFULL_Charge 758 non-null float64\nFULL_AcidicMolPerc 758 non-null float64\nFULL_AURR980107 758 non-null float64\nFULL_DAYM780201 758 non-null float64\nFULL_GEOR030101 758 non-null float64\nFULL_OOBM850104 758 non-null float64\nNT_EFC195 758 non-null int64\nAS_MeanAmphiMoment 758 non-null float64\nAS_DAYM780201 758 non-null float64\nAS_FUKS010112 758 non-null float64\nCT_RACS820104 758 non-null float64\ndtypes: float64(10), int64(1)\nmemory usage: 65.3 KB\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# b) Data visualizations\n* Here we visualize our data so that ,we can get much meaning out of it.\n* for the class colunm.\n\n\n## Class Distribution\n\nA groupby operation involves some combination of splitting the\nobject, applying a function, and combining the results. This can be\nused to group large amounts of data and compute operations on these\ngroups.\n\n* The type of graph used below is the bar.\n* Then change the color as well using;\n```\ncolor='purple'\n```"},{"metadata":{"trusted":true},"cell_type":"code","source":"\nTrain.groupby('CLASS').size().plot(kind='bar',color='purple') ","execution_count":15,"outputs":[{"output_type":"execute_result","execution_count":15,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Correlations Between Attributes\nIs the a mutual relationship or connection between two or more things.\n\nNote: Correlation refers to the relationship between two variables and how they may or may notchange together. The most common method for calculating correlation is Pearson's Correlation Coefficient, that assumes a normal distribution of the attributes involved.\n\nA correlation of -1 or 1 shows a full negative or positive correlation respectively. Whereas a value of 0 shows no correlation at all. \n\n\nnote: Correlation is a statistical technique that can show whether and how strongly pairs of variables are related. For example, height and weight are related; taller people tend to be heavier than shorter people. The relationship isn't perfect."},{"metadata":{},"cell_type":"markdown","source":"# Explanation on the train data as far as correlation is concerned.\n\n## For example;\n ## * full_charge has a slight correlation with full_charge but then there is no correlation with full_acidicmolperc(negative)."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.corr(method='pearson')","execution_count":16,"outputs":[{"output_type":"execute_result","execution_count":16,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 \\\nFULL_Charge 1.000000 -0.612996 -0.490977 \nFULL_AcidicMolPerc -0.612996 1.000000 0.794796 \nFULL_AURR980107 -0.490977 0.794796 1.000000 \nFULL_DAYM780201 -0.434603 0.541481 0.548253 \nFULL_GEOR030101 -0.058725 0.115201 0.346139 \nFULL_OOBM850104 -0.283758 0.513344 0.462712 \nNT_EFC195 0.088068 -0.143168 -0.169540 \nAS_MeanAmphiMoment 0.355477 -0.431590 -0.426097 \nAS_DAYM780201 -0.365374 0.449621 0.456260 \nAS_FUKS010112 -0.090570 0.002334 0.032958 \nCT_RACS820104 0.232929 -0.213543 -0.403599 \nCLASS 0.534602 -0.598816 -0.584111 \n\n FULL_DAYM780201 FULL_GEOR030101 FULL_OOBM850104 \\\nFULL_Charge -0.434603 -0.058725 -0.283758 \nFULL_AcidicMolPerc 0.541481 0.115201 0.513344 \nFULL_AURR980107 0.548253 0.346139 0.462712 \nFULL_DAYM780201 1.000000 0.010118 0.334778 \nFULL_GEOR030101 0.010118 1.000000 0.319157 \nFULL_OOBM850104 0.334778 0.319157 1.000000 \nNT_EFC195 -0.090058 -0.230417 -0.230561 \nAS_MeanAmphiMoment -0.408793 -0.160269 -0.336297 \nAS_DAYM780201 0.894191 -0.029085 0.275640 \nAS_FUKS010112 0.055915 0.040480 -0.452769 \nCT_RACS820104 -0.326792 -0.151935 0.155304 \nCLASS -0.554838 -0.260470 -0.453287 \n\n NT_EFC195 AS_MeanAmphiMoment AS_DAYM780201 \\\nFULL_Charge 0.088068 0.355477 -0.365374 \nFULL_AcidicMolPerc -0.143168 -0.431590 0.449621 \nFULL_AURR980107 -0.169540 -0.426097 0.456260 \nFULL_DAYM780201 -0.090058 -0.408793 0.894191 \nFULL_GEOR030101 -0.230417 -0.160269 -0.029085 \nFULL_OOBM850104 -0.230561 -0.336297 0.275640 \nNT_EFC195 1.000000 0.178683 -0.036844 \nAS_MeanAmphiMoment 0.178683 1.000000 -0.322378 \nAS_DAYM780201 -0.036844 -0.322378 1.000000 \nAS_FUKS010112 0.145924 0.025580 0.045562 \nCT_RACS820104 0.080898 0.171524 -0.256060 \nCLASS 0.260702 0.693552 -0.437168 \n\n AS_FUKS010112 CT_RACS820104 CLASS \nFULL_Charge -0.090570 0.232929 0.534602 \nFULL_AcidicMolPerc 0.002334 -0.213543 -0.598816 \nFULL_AURR980107 0.032958 -0.403599 -0.584111 \nFULL_DAYM780201 0.055915 -0.326792 -0.554838 \nFULL_GEOR030101 0.040480 -0.151935 -0.260470 \nFULL_OOBM850104 -0.452769 0.155304 -0.453287 \nNT_EFC195 0.145924 0.080898 0.260702 \nAS_MeanAmphiMoment 0.025580 0.171524 0.693552 \nAS_DAYM780201 0.045562 -0.256060 -0.437168 \nAS_FUKS010112 1.000000 -0.445284 0.033432 \nCT_RACS820104 -0.445284 1.000000 0.267652 \nCLASS 0.033432 0.267652 1.000000 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
FULL_Charge1.000000-0.612996-0.490977-0.434603-0.058725-0.2837580.0880680.355477-0.365374-0.0905700.2329290.534602
FULL_AcidicMolPerc-0.6129961.0000000.7947960.5414810.1152010.513344-0.143168-0.4315900.4496210.002334-0.213543-0.598816
FULL_AURR980107-0.4909770.7947961.0000000.5482530.3461390.462712-0.169540-0.4260970.4562600.032958-0.403599-0.584111
FULL_DAYM780201-0.4346030.5414810.5482531.0000000.0101180.334778-0.090058-0.4087930.8941910.055915-0.326792-0.554838
FULL_GEOR030101-0.0587250.1152010.3461390.0101181.0000000.319157-0.230417-0.160269-0.0290850.040480-0.151935-0.260470
FULL_OOBM850104-0.2837580.5133440.4627120.3347780.3191571.000000-0.230561-0.3362970.275640-0.4527690.155304-0.453287
NT_EFC1950.088068-0.143168-0.169540-0.090058-0.230417-0.2305611.0000000.178683-0.0368440.1459240.0808980.260702
AS_MeanAmphiMoment0.355477-0.431590-0.426097-0.408793-0.160269-0.3362970.1786831.000000-0.3223780.0255800.1715240.693552
AS_DAYM780201-0.3653740.4496210.4562600.894191-0.0290850.275640-0.036844-0.3223781.0000000.045562-0.256060-0.437168
AS_FUKS010112-0.0905700.0023340.0329580.0559150.040480-0.4527690.1459240.0255800.0455621.000000-0.4452840.033432
CT_RACS8201040.232929-0.213543-0.403599-0.326792-0.1519350.1553040.0808980.171524-0.256060-0.4452841.0000000.267652
CLASS0.534602-0.598816-0.584111-0.554838-0.260470-0.4532870.2607020.693552-0.4371680.0334320.2676521.000000
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Plotting to show the correlation\n\nplot a heat map to show us the correlation of the data.\n\nWith the help of ; seaborn\nthe we can use spearman or pearson method.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns\n#The first step is to choose the figure size then use the heatmap to plot.\nplt.figure(figsize=(9,9)) #the size choosen is 9,9\nsns.heatmap(Train.corr(method='pearson'))","execution_count":17,"outputs":[{"output_type":"execute_result","execution_count":17,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## We can also check the correlation in regards to the CLASS"},{"metadata":{"trusted":true},"cell_type":"code","source":"\nTrain.corr(method='pearson')['CLASS'].sort_values","execution_count":18,"outputs":[{"output_type":"execute_result","execution_count":18,"data":{"text/plain":""},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# Skew of Univariate Distributions\n### Definition of skew.\n* Is the suddenly change direction or position.\n* or Skew refers to a distribution that is assumed Gaussian (normal or bell curve) that is shifted or squashed in one direction or another. \n\n\nYou can calculate the skew of each attribute using the skew() function on the Pandas DataFrame.\n\n#### NOTE: If skewness value lies above +1 or below -1, data is highly skewed. If it lies between +0.5 to -0.5, it is moderately skewed. If the value is 0, then the data is symmetric\n\n### Positively skewed data:\nIf tail is on the right as that of the second image in the figure, it is right skewed data. It is also called positive skewed data. Common transformations of this data include square root, cube root, and log.\n\n### Cube root transformation:\nThe cube root transformation involves converting x to 𝑥(1/3) . This is a fairly strong transformation with a substantial effect on distribution shape: but is weaker than the logarithm. It can be applied to negative and zero values too. Negatively skewed data.\n\n### Square root transformation:\nApplied to positive values only. Hence, observe the values of column before applying.\n\n### Logarithm transformation:\nThe logarithm, x to log base 10 of x, or x to log base e of x (ln x), or x to log base 2 of x, is a strong transformation and can be used to reduce right skewness.\n\n### Negatively skewed data:\nIf the tail is to the left of data, then it is called left skewed data. It is also called negatively skewed data. Common transformations include square , cube root and logarithmic. We will discuss what square transformation is as others are already discussed."},{"metadata":{},"cell_type":"markdown","source":"# We can you several graphs like bar and line as shown below.\n# BAR GRAPH FOR SKEWNESS"},{"metadata":{"trusted":true},"cell_type":"code","source":"#the below command help to increase the size of the figure for better view\nfrom pylab import rcParams\nrcParams['figure.figsize'] = 10, 11\n\n#Train.skew().plot(kind='line', color='green')\nTrain.skew().plot(kind='bar', color='green')\n#When we look to the data its highly positively skewed mostly at the NT_EFC195\n\n","execution_count":19,"outputs":[{"output_type":"execute_result","execution_count":19,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# LINE GRAPH FOR SKEWNESS\n\n### A distribution is positively skewed if the scores fall toward the lower side of the scale and there are very few higher scores. Positively skewed data is also referred to as skewed to the right because that is the direction of the 'long tail end' of the chart.\n\n## NOTE:since my data is highly positively skewed it means, it highly import to use\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#the below command help to increase the size of the figure for better view\nfrom pylab import rcParams\nrcParams['figure.figsize'] = 10, 11\n\nTrain.skew().plot(kind='line', color='RED')\n#When we look to the data its highly positively skewed mostly at the NT_EFC195\n","execution_count":20,"outputs":[{"output_type":"execute_result","execution_count":20,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Data With Visualization using;.\n1. Histograms.\n2. Density Plots.\n3. Box and Whisker Plots.\n\n\n\n# Histograms.\nis only used to plot the frequency of score occurrences in a continuous data set that has been divided into classes, called bins."},{"metadata":{"trusted":true},"cell_type":"code","source":"#Histogram\nplt.figure(figsize=(16,16)) #Size change\nTrain.hist()#type of graph\nplt.subplots_adjust(bottom=1, right=3, top=3)\nplt.show()","execution_count":21,"outputs":[{"output_type":"display_data","data":{"text/plain":"
"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Density Plots\n\nA Density Plot visualises the distribution of data over a continuous interval or time period. This chart is a variation of a Histogram that uses kernel smoothing to plot values, allowing for smoother distributions by smoothing out the noise.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# we plot 3 by 4 i tems\nTrain.plot(kind='density', subplots=True, layout=(3,4), sharex=False,)\nplt.show\n","execution_count":22,"outputs":[{"output_type":"execute_result","execution_count":22,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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ZeTIkc1kvPnmmyU9Pb2FnOXl5TJ9+nTJzs6W6dOnS0VFhYiIPPXUU56/7dixY8VkMkl5eXmLv1Mga5F7/gT6E4w5FOr544shQ4ZIbm6u5ObmypgxY+TXv/61NDQ0iIiI7fgJqdu9W55++mmJi4uT06eNeXfy5EnJysqSEydOeM7zk5/8RH7729/KJ598IoAsWbLEOMex4/L5m28K4Jl7c+bM8dzjkCFDJC8vzxhrs8kPfvADyc3NldGjR8sTTzzhOf+6detk5MiRMnz4cPntb3/r2f7d735XRo4cKWPHjpWbb75ZbDabiBjP35/97GcyfPhwGTdunGzdutVzzIwZMyQlJUX+8z//s82/TWeeaf42cn9KKdVbKRWjlPpIKVWmlPp+yDTIKCUhIYE33v8XH2/czI4dO8jKymq2XymFQkEQDWu33HILqampFBUVUVBQwNKlSykr63zLOrvrDaop9957L9XV1TQ2NnLZZZfRr18/Xn311U5fKyJwBMENajLBgFw4odtOtca9994LYOrIWlZdXZ18+vTptDNnzvTavXt3zu7du3MqKioCa6TZQRISEtixY4fnx3tN6CwOMdxJ3jFry5cv56KLLmL58uV+n8uEifsevo8dO3bwxz/+kdtuu63Z/tdee42dO3dy++23c8899wBGF4F77rmHjz76iIKCAk6ePMlHH30EwGOPPcacOXPYvn07K1as4PbbbwegsLCQFStWUFBQwPr167n99ttxuNxiCxYsYP369S1ke/LJJ7nssssoKirisssuY+bMmVRXV/OLX/yCtLQ0jh49yhVXXMG0adNITY2cotKhnj+t8cknn7Br1y42b97MwYMHufXWWwHDDapiYlixYgWTJk3irbfeAqB///7cd9993H333QBs27aNzz77jLvuuguAcePGsXLlSuPkZjOr3n2XvLw8z/VWrlzpucfZs2e7i1+zatUqrFYru3btYuvWrTz33HMUFxfjcDhYuHAh69ato7CwkOXLl1NYWAjA9773Pfbu3cuuXbuor69nyZIlAKxbt46ioiKKiop4/vnn3X2GAbjnnntYtmxZCP+i/hfFvUJE7lVKXQscBW4APgEi8kn78DsFFB5vs4xSh8k5tzcPXTnWr7GtxazB2bi1YHDgwAE2bdrEa6+9hsmVgTps2DCGDRvmmdA//vGP+fe//83AgQNZs2YN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c+/evZ1TU3joah0bBuwBUEr5gEagrFObc4H14YSaiFwpImtFZG0m4+S8Xm9KVr/269cP0L/T4QjGrHVGRHK+5FSshdz/R0SKRcQqIn8XkcMiclESrn8qsFMp9UUSzpUUHA4HGzZsCP1VVlam/JqXX345paWlfPTeetau/pjly5d3GMyjR4/u0Kf5538XpRSXXXYZo0aNYufOnezcuZORI0dy+eWXdznu008/paamhr/85S8AbN68meeff57q6mqWL1/ONddcg9/vx2az8c4777Bx40Y2bNjA8uXL+eijjwD46U9/yg033MD27dvp168fjz+uFwMYMWIES5Ys4bvf/W6H11RXV8ddd93FqlWrWL16NXfddRc/+clPaGpq4pvf/CaVlZW0trby9NNPp/rtTSuZGD/RxoHT6WTevHnceuutbNu2jX+sXMHadRv43e9+Fzp+/vz5bNiwgerqavLy8njhhSOG78mTJ/P8888D+oT5t+UrmBBYMefz+bjuuut49913+eSTT5gyZQqLFy8OHXvDDTeE3odgTqtIYw/g+9//PsuXL+/y+u677z5OPfVUtm/fzqmnnsp9990X2uf3+/npT3/KnDlzYnqvbrnlFgBTCuayzBJt7UAoZi25as1ms/HKK690udH42c9+Fvrc238ffvKTn0Q8V/uxsmHDhpAF5sQTTwxte/vttwF48803eeihh3jrrbeorq5m3bp1lJSUADBp0iReeeUVTjrppA7nD978fvrpp6xcuZL58+fT0NCA1+tl48aNHDhwgJtvvpkNGzZ0KJ3Ungjxmp03hvsUQm1EZCK6a/RHEa7xB6XUDKXUjPLy8rD9SAepEmv9+/fHZDKFFcRKqYgxa2CUnIE6htUAACAASURBVIrVF3K6UuoWETkHCNZgfBdI9Jd2AfBcuB3VKw8Xr3nh4HRBlMVidZvEFHYZms/vs/o1X2BUKbYWrIt4sQHDCznxgvClMDLFzp07Wb16NY//YQmt9R7EJJSXl/PTn/404jEiws6dO/n44487/LD+/Oc/p6qqip07d2I2m0PbzWYzs2bNYu/evQAsXbqUBQsWYLPZGDlyJFVVVaxevZrjjz8+VBLE6/Xi9Xr1+DileOedd3j22WcBPUh30aJFXH311SEx0tlcvmLFCmbPnh0yac+ePZtly5bx8MMPc+jQIUaNGsW6dev41a9+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l1xyidbW1uqkSZP01ltvjZ3jueee0wkTJujBBx+sv/zlL2Pbv/a1r+mECRN06tSpevnll2sgEFBV1Ugkot/5znf04BLB7SoAACAASURBVIMP1mnTpumKFStix5x++uk6YMAAPeuss5K+t2vXru2yDVhu3XEeVujTngx8MXCPduonWGHQT4DNwPjO+6NtrnrppZf877//fsuqVauS2tQX9LZPHTR6tB4yZYpOi37Gr7/+ui5durTL+33ppZfqokWLVFX1hBNO0GXLlqmq6saNG/XgQw7R3/71Kf18T6N+7Wtf09raWp06dap+8Ytf1H379qlq4j7xm9/8Rg8++GAFdNeuXbHtPekTic716KOP6rRp03TatGl6zDHH6MqVK+O+F8n6UDZu9riUi7HIZtu2bXrhhRfquHHjdPLkyXriiSdqeXm5Tp8+XQcNGqRjxozRiVOm6XFfOjHu8Rs3btSysjKdPn26Tp48WS+++GL9dMde/WBrY6zNf//3f+sBBxyg4XC4w7FLlizRI444QidNmqQTJ07UG264QVVV169fryeccIJOnz5dJ02apP/5n/+pqonHnM8//1xPPPFEnTRpkk6ZMkXvvvvu2GvU19frqaeeqocccoieeuqp2tDQoKqq69at06OPPlo9Hk9srLNJ1Fdtrr32Wq2srEz4nnbXj4A/AjuBNRp/jBGscmUbgNXAF+K1a3874ogjEtqTUR46R/X+k9M75udDVV/4cbfN4r1vfcrezbpt5T86fB9mzZqlH374oU6dOjXuIcEtq3Vw9SC96aabOmx/5pln9LDDDtNDDz1UJ0+erL/73e9UNXHfjkdvxqOUBiDgdqwVoKXAP4DdwDdSOTZbN6eItfPPP1+PO+44/elPf6qqqo8//rjOmTMnNoht3rw5NpjEY/To0bEfoX379uncuXN17tyzta1tS6zNkUceqccdd5z+6U9/im2777779Otf/7qqqq5YsUKnTZumgUBAly5dqtOmTdPTTjst1vb667+t06ZN7DKAWfuu15/97GeqqvrYY4/phRdeqKqqLS0tOnr0aN24caOGQiEdN26cfvLJJ+r3+/XQQw9V+71+9tlnNRKJaCQS0Ysuukh/+9vfxrafccYZGolE9M0339SZM2fGXvPll1/WxYsXx36Yb7zxRm1sbNRAIKAnn3yyDh48WB955JHuxNr5ccTabzRBf8GqbftQov1O+JG16W2fOmj0aF366WcaaPdDmqpY27x5s06YMEGffOopXdnYoj+65ef6ve99L3bM+vXr1efzJe0T7777rm7cuLFD31ZNr0/YJDrX66+/HnsPlixZojNnzozbj+bNm9fl/SlksRaJRPToo4/W++67L7btvffe01dffVVV93/ma7bs1bo9rXHPsXHjxtgPWSgU0pNOOknvuf+PunrzXo1EIhoOh/Wggw7So446SpcuXRo77v3339dx48bF/mQEg0G99957VVX1y1/+sj711FOxtqtXr1bVxGPO1q1bY2K+qalJx48fH+tfN954Y0xw/fKXv9Qf/OAHqmr9iX3nnXf0Rz/6UYexLllfVVVdtmyZfuMb39DKysoejUXWQ76ElcoqkVg7E3guKtqOBt6O1679rc/E2v0nqT58bnrH3DFe9envdNss12ItUr9Rjz5ietzvQyKx9uzj9+uxR35Bx40bp5FIRFWtPxUjRozQzZs3q6qqz+fT9evXq2rivh2P3oi1VGNtX1bVH4jIV7HmB50PLAUeTfH4rLJ23Q8Pamn+qMLni7Di3cruD0iBqn6TmTDh/yVt09zczOuvv87SpUs5++yzufnmm9m2bRsjRoyIzQcZOTL1PDT9+vXjvvt+y6hRB7Fnzz5GjIBPPvmE5uZm7rjjDm699VYuu+wyAK666ioeeughli5dyo9//GPuueee2JLgUaNG0dTUxI4dOxg6dCgvvfRPTj31OFQ7hjFUlb/85S+88sorgBVTb2lpIRQK0dbWhsfjoX///rzzzjsccsghjBs3DoCLLrqIp59+milTpnRIIDlz5kzq6uoAePrpp7nkkksQEY4++mj27t0be29OOeUU/vnPf8aOe/HFF7n99tt58sknGTlyJIsWLeKkk05i4cKFyd6uOuCgds9HAluTtF8I3JfshDb/7+M61jS3pdI0ZWr7lfPz8d33hUz0KY1GLtNdYLB9+3YuueQSfvGLX3DuOeewel8r27dtY8rB42JtJk6cCMCbb76ZsE8cfvjhcc+fTp+wSXSuY489Nvb46KOPpq6uLm4/OvbYY/nhD3+Y1vuQKX72zAes3ZrZ1CFTDujPT78yNeH+pUuXUlpaytVXXx3bdthhh3VppykuMCgpKWHmzJns3L4NRQlHlH/9cym1tbVceOGFLFiwgBNPPBGw8lz++Mc/ZtKkSQC43W6+/e1vA7Bt27YO/XbatGlA4jGnuro6Vj2gqqqKyZMns2XLFqZMmcLTTz8d6yuXXnopJ554IrfddhtDhw5l6NChPPvssx2uIdn4FQ6HufHGG3n88cd58sknezoWoaqvisiYJE3OAR6O/ji/JSIDRWSE7q8GlDt8jTBwVHrHeHtQzP25m2D7++kd0x3Dp8GseQl3L/3Xa5SWurt8HzZt2pTwmAVPPst1V13MfY89zVtvvcUxxxzDvn37CIVCDB48GACv1xsbCxP17UyT6gxTOzHImcACVW3IijV5xlNPPcUZZ5zBhAkTqK6u5t133+WCCy7gmWee4bDDDuOGG25IOyFnVVUFo0cfyCeffAbAggULmDt3LscffzwffvghO3da1Q1cLhf33Xcfc+bMYcKECXzpS1/qcJ7zzjuPRYsW8cYbb3D44dPxeku7iLV///vfDBs2jPHjx8eOqaysZMSIEYwaNYrvf//7VFdXs2XLFg46aL8uGjlyJFu2bOlwrmAwyCOPPMIZZ1jz91M5pv2xAEuWLGHu3LlUV6eUD24ZMF5ExoqIB7gIWNy+gYiMb/f0LODjVE6cSzLTp5Sr/uNMDj/8cI466qiUX/uSSy7h2muv5fzzzwcssXfeJZdy2223ccwxx/C///u/fPyx9Ram8/na9OSYVHjggQeYNWtWT/tRQbFmzRqOOOKIpG1UNeXUHT6fj7fffpvTvnw6YKWEscekr371q/z973+Pve/JXvt73/seJ598MrNmzeKuu+5i715rvlOiMac9mzZt4r333ov15R07dsSE3IgRI2JjYiKS9bt77rmHs88+O3a+LPahA7GmYtjURbd1QESuEpHlIrK8NysH08LXlN4CA9hfH9ThrFn3IUdMT108tbW18Y9X3+Q/TjmeuXPnsmDBAgCqq6s5++yzGT16NHPnzuWxxx4jEl2EkKhvZ5pUPWvPiMh6oA34togMARyTeGbK5Ns2A6xdu/aIKVOm9NnrLliwgO9+97uA9W9twYIF3HHHHXz44Ye88sorvPLKK5xyyiksWrSIU045JaVzRiJBVDW2wGDhwoU8+eSTuFwuZs+ezaJFi7jmmmsA6x9CbW1t7N9rey644AIuvPBC1q9fz0UXXcCrr74AdBRr9qBr884771BSUsLWrVvZs2cPxx9/PKeeeqrtxu9A55Ut3/72t/nSl77E8ccfD5DSMTZf+cpXmDRpEuXl5fz2t79l165dlJUlT76pqiERuRZ4ASt1xx9V9QMRuQXLrbwYuFZETgWCWNl2Lk160iipeMCyRSb6lAIPL3meo0fvv45E73377aeeeiqPPPIIl112GRUVFbhFmHjodD799FNefPFFXn75ZY488kjefPPNtD7fmF09OKY7li5dygMPPMBrr73GHXfc0aUfeTyeXp2/NyTzgOUS+2NI5ln75JNPOOyww/j4448577zzOGz6oXy6u4XWNj9LlizhrrvuoqqqiqOOOooXX3yRs846K+lrXn755Zx++uk8//zzPP300/z+979n1apVLF++PO6YY3vBmpubmTNnDnfffTf9+/estFGifrd161YWLVrUwaPbk7EoReK9210MU9X7gfsBZsyY0Tere3yN6S0wAEuspbvAIIkHLGtohPhvfXz+/ve/c9Lxx1JR7mHOnDn8/Oc/56677qKkpIT58+fz/vvv8/LLL/N///d/vPTSSzz44IMJ+7bX27uE9p1JSayp6k0ichvQpKphEWnBcusmJYU8WF7gYeAIoB64UFU3ichpwDzAAwSAG1X1lTSuK+vU19fzyiuvsGbNGkSEcDiMiHD77bfj9XqZNWsWs2bNYtiwYTz11FMpi7Wmpj18/vlWJk6cxOrVq/n444857bTTAAgEAowbNy4m1sDysMVbgj98+HBKS0t56aWXuPPOebz66gsdPGuhUIi//e1vrFixIrbt8ccf54wzzqC0tJShQ4fyxS9+keXLl3PQQQexefP+P4V1dXUccMD+OqM/+9nP2LVrF7///e9j20aOHJn0mPbMmzePH/7wh/Tv35+SkhIqKyt5+umn2bNnT9L3Sq16tUs6bftJu8d9nhG1N2SqTyldQ6CDBw/u8n42NDRQU1MTe/6DH/yARx99lPPPP5+nn34at1irQfv168fs2bOZPXs2LpeLJUuWcOyxx6b8+dqk0ydSYfXq1Xzzm9/kueeeY/DgwXH70T333NPj8+cjU6dO5YknnkjaRqMaIZlQPvjgg1m5ciXbtm3jxBNP5PklzzJh5ok8/8JzNDY2xkI9ra2tVFRUcNZZZzF16lRWrFjB9OnT457zgAMO4IorruCKK66gtraWNWvWJBxzxo0bRzAYZM6cOXz9619n9uzZsfMMGzYsFj7ftm0bQ4cmT16a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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Box Plots\nAnother useful way to review the distribution of each attribute is to use Box and Whisker Plots or boxplots for short."},{"metadata":{"trusted":true},"cell_type":"code","source":"#boxplots help to represent outlies\nTrain.plot(kind='box', subplots=True, layout=(3,4), sharex=False, sharey=False)\nplt.show()","execution_count":23,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Multivariate Plots\nit provides examples of two plots that show the interactions between multiple variables in your dataset.\n\n* Correlation Matrix Plot.\n* Scatter Plot Matrix.\n* Correlation Matrix Plot\n\nCorrelation gives an indication of how related the changes are between two variables. If two variables change in the same direction they are positively correlated. If they change in opposite directions together (one goes up, one goes down), then they are negatively correlated. You can calculate the correlation between each pair of attributes. This is called a correlation matrix. You can then plot the correlation matrix and get an idea of which variables have a high correlation with each other. This is useful to know, because some machine learning algorithms like linear and logistic regression can have poor performance if there are highly correlated input variables in your data."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.columns","execution_count":24,"outputs":[{"output_type":"execute_result","execution_count":24,"data":{"text/plain":"Index(['FULL_Charge', 'FULL_AcidicMolPerc', 'FULL_AURR980107',\n 'FULL_DAYM780201', 'FULL_GEOR030101', 'FULL_OOBM850104', 'NT_EFC195',\n 'AS_MeanAmphiMoment', 'AS_DAYM780201', 'AS_FUKS010112', 'CT_RACS820104',\n 'CLASS'],\n dtype='object')"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Plot correlation matrix\nIt is very useful to highlight the most correlated variables in a data table.\n\n## Note: \n### Positive correlations are displayed in yellow and negative correlations in blue color. Color intensity and the size of the circle are proportional to the correlation coefficients."},{"metadata":{"trusted":true},"cell_type":"code","source":"# plot correlation matrix\n\ncorrelations = Train.corr()\n\nfig = plt.figure()\nax = fig.add_subplot(111)\ncax = ax.matshow(correlations, vmin=-1, vmax=1)\nfig.colorbar(cax)\nticks = np.arange(0,9,1)\nax.set_xticks(ticks)\nax.set_yticks(ticks)\nax.set_xticklabels(Train.columns)\nax.set_yticklabels(Train.columns)\nplt.show()","execution_count":25,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAqkAAAJuCAYAAACTy5vLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xu8VXWd//HXW+SOFxDNCyhKWGoqJKmNNqNmXpqZ0HISakwmyy7aNF2cdHLUrOZnF5tumlEZ1pTgeEmcHNFMshovYHIRryCkJwkV8AqBnPP5/fH9bs5in33O2cJx73Xg/Xw89oO9v2t9v+u71l6H/dmf73etrYjAzMzMzKxMtml2B8zMzMzMqjlINTMzM7PScZBqZmZmZqXjINXMzMzMSsdBqpmZmZmVjoNUMzMzMysdB6lmZmZmhqQrJT0t6YFOlkvStyUtkjRf0psLy06X9Fh+nN4T/XGQamZmZmYAU4ETulh+IjAmP84EvgcgaRhwIXAYcChwoaShm9sZB6lmZmZmRkTcCazsYpUJwE8iuRvYUdJuwPHAbRGxMiJWAbfRdbBbFwepZmZmZlaPPYAnC69bclln5Ztl281twMzMzMzqd/zRg2PFytaGbvO++WsXAn8pFE2JiCmvshnVKIsuyjeLg1QzMzOzBlqxspV7Z+7Z0G322e2xv0TE+M1spgUYWXg9Angqlx9VVT5rM7fl4X4zMzMzq8sM4AP5Kv/DgecjYhkwEzhO0tB8wdRxuWyzOJNqZmZm1kABtNHW7G50IOlqUkZ0uKQW0hX7fQEi4grgZuCdwCJgNfBPedlKSV8EZuemLo6Iri7AqouDVDMzMzMjIiZ1szyAszpZdiVwZU/2x0GqmZmZWUMFrVG+TGrZeE6qmZmZmZWOM6lmZmZmDZTmpG72HZq2eM6kmpmZmVnpOEg1MzMzs9LxcL+ZmZlZg5XxFlRl40yqmZmZmZWOM6lmZmZmDRQEreELp7rjTKqZmZmZlY4zqWZmZmYN5ltQdc+ZVDMzMzMrHQepZmZmZlY6Hu43MzMza6AAWj3c3y1nUs3MzMysdJxJNTMzM2swXzjVPWdSzczMzKx0nEk1MzMza6AA38y/Ds6kmpmZmVnpOEg1MzMzs9LxcL+ZmZlZg7U1uwO9gDOpZmZmZlY6zqSamZmZNVAQvpl/HZxJNTMzM7PScSbVzMzMrJECWp1I7ZYzqWZmZmZWOg5SzczMzKx0PNxvZmZm1kCBb0FVD2dSzczMzKx0nEk1MzMzayjRiprdidJzJtXMzMzMSseZVDMzM7MGCqDNt6DqljOpZmZmZlY6DlLNzMzMrHQ83G9mZmbWYL5wqnvOpJqZmZlZ6TiTamZmZtZAgTOp9XAm1czMzMxKx5lUMzMzswZrC2dSu+NMqpmZmZmVjoNUMzMzMysdD/ebmZmZNZAvnKqPM6lmZmZmVjrOpJqZmZk1UCBanSfslo+QmZmZmZWOM6lmZmZmDeZbUHXPmVQzMzMzKx0HqWZmZmZWOh7uNzMzM2sg34KqPs6kmpmZmVnpOJNqZmZm1lCiNZwn7I6PkJmZmZmVjjOpZmZmZg0UQJvzhN3yETIzMzOz0nGQamZmZmal4yB1CyapVdLcwmOUpMmSvlu13ixJ4/PzpZKGVy3fUKe7NiUNkfR9SWskLZZ0p6SnJI2T9ECtNuvcl3GSQtLxdezvk5L+WKNvoyQ9kPf3NEnf7mp/87LfVi2bW9yPWn2TdJSk23PZE5LW5+OxQtK9ue2pkpbk9l6S9LHC8f+9pEckzZM0W9IFhX04VdJ8SQslfbXQhz0l3SFpbd7WUkkPSvqSpPMlLcptHi+pLT9WSnolL3tG0pW5rWH5GL6S2whJz0q6MPf3kVzWJukHkqYXzoelkubmdvpKukrSAkkPS7o7nxP3S3pM0p/ztiv9WZOP1drctwcl7STpJ7ne+nysHiicU2skvZDf+5WSLi8ck/OK+53LBuT3YIGk53KdxXkbB0m6J/ftf/PxfDQfi6fy9k/J58czeX9bJL2Yt3O6pIvysbk813tJ0qdyWUi6VNKkvP2ncr0v53Ohss6a/FiQ93VB3s7SvC8/lfSnvP0V+X1al8+L53P5gsKxvE3SR3NbC/Nx/WY+Zpfmsjbl/wPyceon6ce5nXmSjiosm5X7sV7Sckm7dPE3eXLepzfm19so/d1V9mu2pL0L679UVX9pXu9P+fGl/F6tlrRdXudTuS8habikXfLx3LXQzuWSzlX62wxJZ9T4+/1sfl3P+fyQpPMKbfw4H5NFks4tlP8slz8g6UpJfXO58nFYlN+3Nxfq3KJ0bv5PZ8fVtgytqKGP3shB6pZtTUSMLTyWNqDNHwIrgXuAU4HJQJ8e2O77gN8Bk+ro28iI2Kub/X0oIv65ju1uJ2kkgKT9OllnUid9awMuAK6IiIHAlcBBwMC8/JyIGAssAs6rqvt+4BDgcuC9efs7AV8D3h4RBwCvk/T2vP75wDXAMqBSdigwFvg0cABwQm4vgN8DVwCHAX8BbgaOyPX+kzRf/f+Ah4FngMHAZbm/vwCWAE8DayPi1Mr5AFwHXJ/b+Qegf0QcCCwA3ggcC4zP7V8F7J/XXZyP0buAAbnP2wK3AY8DnwCeB34OLAd2qtQDTgbeDfQFXp+P1f7AxOJ+S+oDrAWOAR4Bvg08lo/1EuCXed8PAv4KWBAR+wLvyH24r/D+TM/trANm5noX5r4vIP3femhe9xTgwbzuu/N2jwa+kfflFWA28ATQmo/DB3MfDyL9Hb2Q36sTgL8FvpmP98m5HGAQMDuX35Pfn8eAJ4GLgOPyeTM+tzMzb/PdwJ1s7MMA+b17B3CppOLnxWV5Gy+Rzo/OVP42JubXpwK7Awfltk8GnuuiPsDREbEH8AZgH9J7swiYUNjGWmBV7vPTwFeArwPkAPBI4NK8/oLcj4qJwLzKizrP50OAjyh98e0DnA6cSDqfJ+XzD+BnpPP+QNLf/Ydy+YnAmPw4E/heoT9fA07r5piYbRUcpFqPkTSa9IF5fqUsIh4H1uSXfZQybwuBz5KDV0kfzhmVeZKukzQol0+V9A1Jd5A+ND8NTFTKxH1fKVv68ZyJ+CMwOGc/5kg6J29zr1znLuCsQncPKWQqBheyRvNJH0AV19D+gTYJuLqwvwMk/Rj4F2AY8HeSBnRxiF4mfahvRwrAPi5pNimwqmR9hgD7kgKYW4G7gJF523cBbRFRCQp+BbyncqiB7fPz7YGnIuIlYA4peBkcEUuAPwEivUeHkL5QAMwCtpd0NCko/lhu865cX8DOkkQKcNaQApwN8rL3Fo5RkI7tvsBbSEHT86Tg7dGI+FxErAPW52NCRNwcEZHrv0AKSr5ICkiWk74E7UP6v2unXOf23O5qUjBNXn9aRKzN+70IODS3vWve96+SAtsALiYFT38gfSH6PSkoIiIeJgUhb2Jjx+f3oG8+rreR3stfAIdExLJ83J4nBXKtuf+DCv3sD6wgfUGYQfv/ybsByyKiLe/LTyNied6XlcCeuW930v4e3pH3AeAk0pciSIHTK8Cn8vm2KO/n03nbl+fjMU1SJfA7DDhO0g9yu6No/xJT2fdvkc6BwyuFOfP4H5LukvQH4Ki86N8kfTTv1zbALEk3kM7x/1cMgJUyy/Mk3V05HpIuAj6aH3vmY3xq/j9nl3zsK1/+yMf33ZKWkALNs4E9gJ8AOwJH5P9rjs3L9iT9nSFpcM56ziZ9OXo6t/k24G8kzSQFutuTztEfk97n6/Pzafk923A+5/PuXmBEbmsC8JO86G5gR0m75Tq3Ay9iW7SIdAuqRj56o97Za6vXwMKw1Q0NaPMAYG5EtHZSdwwpG3cAKaAYncuvj4i3RMTBwEPAGYU6+5IyVPeRAoWHSUHLDaQPlk8DHwHmkzKXkD6UK1nSDwF3RsRbu9inzwDPR8SBEXFQ7kPFtaRME8DfAzcVlp1F+oD8LSlYHEh7dgfS39fFpA/TG4ChpA/P50kZsgUR8RbSB/06SZXAZXvgoog4BvgUKbj5b1Lg0Ddnb7YlBSIjc52LgH8kfQhOI324AgwnBXdj8utB+d9vkbJ5P86vA/gN6QO9T0T8Ipe/APQjBdjvImWx5pECxZaq4/g2YHlEPFY4di+TsoQjgK9HxEpSsPBkod62pKzwmjzMOZeUfRoDzM/n0x6kbFkbMDf3tzjM3C/vWyVwrt5GSy6DFGwOBf4M3BYR9+TXa/J2DyBlCSvrExGLcz8rgdCppEzd+0hfUG7K26gELk9KelOuM73Qj+/kY7KAlGXfmZRJvIUUMErSo6RAfkI+Fu9l4/+rXwDeV/k7pP1LwW+AfXPZTqQvPJD+hoaRzruTSEHqvnn5OlI28z7S39Gl+cvGQ6SA8grg70hfIk7J7W0DHAd8PvelegThyfz3tjzv/ztJ79l/kL70/RUps7mClDEcTfvf2GDg7vx/wZ15uxtExAukL3qr87H7J+BZ4JukLwvDJR1CGsE5BtiBFJRWgr49SFnzfyN9cfqX3KeZtI9AfB74Nen/hYXAp/Pf5pzcn0NIX3Qi93cGsD5nX9/PxucakKYK5H29pdCPzs5PM8scpG7ZikPzJ+ey6GTdzsp7ss0lETE3P19Ke+bvTZJ+K2kBaej1gEKd/yYFBNNIH2zfBSZFxC2kD6oZpA+NYvZzNfCQpB1IgctTufynnfTtr0nDl8X6FSuBVZImkj64i8uOJGWopuVs21I2DrArw/0Ae5MC2dmkYGt34GOS1gL7kQKkPfO6q4DvSWrJx+NW0ofgKlImaTopMF5KykJCChSmkj7sJgI/zdmp6olI+wCv5KHM75I+jCvH41nggdy/6uO0mhSkTiJ9uD5BCnCKNso0kwKtVlLAMBP4jKR98nE4WVLlfXkFWBkRAyNix9y3w0nH/tm8TmU/omqfRueg7MbcnxVV6xdF4d9fkwLnQ3MwWd1+UPu8rpRNJwVGl5ACznOqlk8jvQ/bkr5QVawhBak/JH2BWU7Kak8jDfmuy/uyOPexMg3kvMLUDoD/KQxJV4LEF/P+X0I6pt8srN8X+AAp6NqVFMRun/f1P0hTAC4nBUqvIwVuzwM/yu08TvsUi5/l5UfmNt6fh7wrZuR/dycFnC8C/5WPxUukYG0h6Ty/jRTAHpnrrAMqIxz30fVtEq8nTYsYQgpoK1+kjgRuyBnKB/J6b8t1luXjNJ30xaYf6Zx9mvRFBVIAfm6utwtpCseepL/hP5OC971JWfC30vW5VnE56ctyZY57PXVsC9eGGvrojRykbn1W0P6fccUw2oOBzWlzIXBwDo5qtVkMftpoP/+mAmfnuV5fIH0oVKwhBTUXkDKkFwEnKl80QXtQcRU5gCYFX7fm8lZq7+/zhdeVoKQz00lB7NVV5SIFuBdIWkrKCB1Jyrato/2DaHru1/WkbEylP5/N6y4D/hwRlQxukILTvUmZ4w3DqRFxU0QcljNVj5DmHEIKjq/Jz+eQjuFw0ofv64BHJR1Eyir1zf2dSPpQh/b3sA1YkYceh+V9WEc6jutJ8xP3J334tx+IlNl9NxtnDd9HyhwtIAXivycFQ9/Ofax8SREpqKq0dSEpAFgAjMvnU0vuzwrg4FznadJc1rH5eA0mDUuT169kmSEFpJWgeCEwjpQFnEWavrCC9F48mpcfXlifHFyvJ83frahs4ybSeTCC9ozdTaRgLHL2r2Is7fNAB5Oymq8nBa33kILJU4EfAOMj4n9J7+udpCwotGdra3mKdK4+Tco0kvdpPSm7vooUmImU0fxB7tN9pGO4nHTutAJ/yoHwhFxW+Zs5njS3eAFpruX2pKx8xdo8f3o/4Mh8rp1D+sK4Le1fSs4hBcjjaP/7e6Uw3aOVqmAu/90PIf3NzCUFjLuRgujB+bgW67Sx8d/2KwAR8ee87ADg9rxO5f+jyrSVVuCwiNgz/22+lfRF+5U873Ul6W+hpWqbxXOtcj7vTBr1qejq/DSzzEHq1mc2aT7WrgBKV/T2Z+Ohp01qk5TJmANMqbQpaQwbzxWrZTtgWR4Se3/VsgOBeRExkvSB+h3SkPT5pA+9CXmbp9D+QTEQ2DEiniMFysfk/X0/6cO2P+3zzCAFKmcXXg9iYzeQ5i/OrCpfDqzOfTsuv76OFKi2kj749oN0xTwpGJpGOlZPky6eeDMpsOmrqjsXRMQrpGzbCFLASZ7fiaShwMdJwQ2kwKeSaRuT93M1KcO8Oj8+ShpaXh0RoyJid1JWrS/t72E/UkD0b/k4HULKHkHK0H0B+BtS8Fx0LPBwRBSnADxBGnJdDNxPmi7xaN7WvsA2kvqRApcX8359iBQETSRNiXiQ9F4/SMrknU7KILfRnjWFFDAsoz2jPoM0F7m/0tXjY4B7Je1MOifuJ33hOTbvy/m5/jhSpvDIyj5KGkgKrBdU7fNM0vt+LCnoOC7vKxGxBvgcHbPNf8r7fhPpi8V44IGI2IsUBK0mDUd/lhTAktc9HGjJ+7ITVfOBC/5MOlen0z48/xApOPuXvO03kEYVfkGaknE/6Vw9hDSHG9L5o7z/7yAd72fyefc2UmZxDOlv5+d0HPI/hfSl5Cf5XBtJCpT/Kvf/0Bz4H0QK1n7Xyf4U9SNlJJ8g/V9zdN6HN0fEKNJ7sBvpHDspz23fhjQv9rc12rsf+K8a05Nmks71hyOiRdK4XL4CGKFkMOlL3ROk81mSxuTzeSI5m1w4nyfl+cUVM4AP5LYOJ003WlbHMTDbqvgXp7YyEbFc0ieBm3OG6iU6/gc6X1Ll9TWk+Z6TJZ0EDMrD0IdXApJim6RzahfSh+I80n/sraSM2rBct5LxG5tf9yFlEWbTPu+r4kjas3NfIGUzR5E+fJYB/48UvPbNfZtPCuiuzXVOy88X0X7R0ttoz+JByppsL+ksUhA3jTREPYD2ua6HR8S6NF1vg0GkQHwB6QN4cm7/86QLZf5CylQOz/vxhYi4Nx+rK0nB52/yfjwH/Gtudxfgl5JeycdqIWle67vZcH0SS4ALIuLRXOcz+TjsThomXk66UOMGUpbsQVIwcBbpSnQkXU36oN09r3ND3oddcp9fIAUui0mBzY/yMRlACj7/SPt5MZQ0r3ZEIVC9jDTn9QHSe7w4b2MlKRh7iRRArSd9+M8lZUnXkQKcdXn7byV98VhPCt6eIJ1XlXNqLekc25YU7D9H+3v9CCmDf1ZEtOYM8VWkgOeYXO9bpAvE/jYfwy/l12MlPZLf5+1z+9/P72u//J5uSwr+nyZ9odgrH9uvkjLJA/I5vh4gIp6S9AVSVm1Ebuv0fLy+mvfz9aTgdZHab3e2hDRn9IOkuxD8i6T35+0Nyf34ESn7+ZWcyZxBCiQrUwouoD3T+yTp/HiZdHV5X9Kc55fz8uHA6yU9RAqsf57L/yG/l7Pzv78izRF/SFJ/2k0inVPFspdJXzL/ko/7/aS/rWvZeEpEtTtIowFB+5cySMHgiXm+cMUvSV9sp+b925t0d437JY2qaveZvB/VvkjK0g7Jx38paV7u7aQvlQ+QAvgngccjYr2k63P5OuCSiFiY27qC9HdyV/67vT4iLib9X/lO0v9Lq0lzawFQuu3dG/P2W4AzIqL6C7L1cgG0Ok/YLbWPrJiVW/4QbM0fCm8FvpeHes2sl1C65+pnI+Lvmt0Xs2YZc+DA+NaM0d2v2IP+dp+F90XE+O7XLA9nUq032RO4JmeA15Hv5WhmZta7qNfeFqqRHKTaJpF0DxsP5QGcFhHV8/Z6rM18a6NxHSo2wGuxv1tSfyrK1q+y9efVkPR50vB60U5sPBcXesn+VETELNJc1g168/tkZq8dD/ebmZmZNdDrDxwUl964b0O3edLoeb1uuN+5ZjMzMzND0gmSHpG0SNK5NZb/p9p/0OfRfKFqZVlrYdmM6rqbwsP9ZmZmZlu5/KMcl5Huh90CzJY0IyIerKwTEZ8qrP8JNp6Ct6anL2Z2JtVeM5LObHYfqrlP9Sljn6Cc/XKf6uM+mW2sNdTQRx0OBRZFxOMRsY50O8YJXaxf/SuDPc5Bqr2WyvgB4D7Vp4x9gnL2y32qj/tkVm57sPEP+7Tksg4k7UW6D/GvC8UDJM2RdHe+f/Zm83C/mZmZWQMFasbN/IdLmlN4PSUiphRe10q3dnZ1/UTg2qpfbNsz/2DJPsCvJS2o+rGNV81Bqm1k+LA+MWpk3x5pa889tmX8wQM2+/YRjy4Z3hPdAaB//x3ZfvsRm92ntj51DZ3Upd/AHRkydGSP3Gajp26712/QUAbv1DN9au3uR3FfhW13HMqAEZvfr21e6YneJH23G8qg121+n1oH9tydVvoM25H+ozb/PAfo2299TzRDv122Z8i+u/bMeb6qZ/6P6jd4KIN37qHzvF9PtNLDBrR1v04TbNf/L83uQgfPPrTy2YjYudn9eI09283V/S2kXyasGEH6NchaJpJ+wXCDiHgq//u4pFmk+aoOUq3njBrZl3tnjux+xQY69n0fbHYXOlg7rGc+JHva+v49Fzz3lBUHl69Pg1vK16fnDuzByLkH7bFX9W1Zm2/tNa9rdhc6eGGfZvegI+37UrO7UNMxez/W7C508P3x//XHRm+zrXw3858NjJG0N+nnkCeSft55I5LeQPop7LsKZUOB1RGxVtJw4AjSTz1vFgepZmZmZlu5/JPjZwMzgT7AlRGxUNLFwJyIqNxWahIwLTa+0f5+wPcltZGud7qkeFeATeUg1czMzMyIiJuBm6vKLqh6fVGNev8HHNjT/XGQamZmZtZAAc24cKrX8REyMzMzs9JxJtXMzMysgYK6b7C/VXMm1czMzMxKx5lUMzMzswZrc56wWz5CZmZmZlY6DlLNzMzMrHQ83G9mZmbWQBHQWr5fnCodHyEzMzMzKx1nUs3MzMwaSrThW1B1x5lUMzMzMyudrTJIldQqaW7hMUrSZEnfrVpvlqTx+flSScOrlneo08U2h0j6vqTFkhZKulPSYXnbD/Tc3pmZmVmZBWlOaiMfvdHWOty/JiLGFguk1zzt/kNgCTAmItok7QPsByzfnEYlbRsR63uig2ZmZmZl0TtD615G0mjgMOD8iGgDiIjHI+KXeZU+kn6QM6y3ShqY631Y0mxJ8yRdJ2lQLp8q6RuS7gC+ImlnSbdJ+kPO1v6xkvWV9I+S7s0Z4+9L6tP4I2BmZmb26mytQerAwlD/DQ3Y3gHA3Iho7WT5GOCyiDgAeA54Ty6/PiLeEhEHAw8BZxTq7AscGxGfAS4Efh0RbwZuAPYEkLQfcCpwRM4ctwLvr964pDMlzZE055kVnXXRzMzMekor2zT00Rt5uL9ddLJuZ+U9aUlEzM3P7wNG5edvkvQlYEdgCDCzUOe/C0HvkcDJABFxi6RVufztwCHA7DydYSDwdPXGI2IKMAVg/MEDGrG/ZmZmZl3aWoPUWlYAQ6vKhgHP9kDbC4GDJW1TGe6vsrbwvJUUTAJMBU6KiHmSJgNHFdZ7ufC8swm1Aq6KiPM2pdNmZmbW8wLRFr4FVXd6Z/73tTEbOELSrgD5qv7+wJOb23BELAbmAF9QTmlKGiNpQjdVtwOWSepLjWH6gt8B783tHkd7sH07cIqkXfKyYZL22vQ9MTMzM2sMZ1KziFgu6ZPAzZK2AV4CJlVlPudLqry+BpgPTJZ0UmGdwyOipcYmPgRcCiyStJqUuT2nm279O3AP8EdgASloreULwNWSTgV+AywDXoyIZyWdD9ya9+kV4KzcnpmZmTVJb50n2khbZZAaEUM6Kb8RuLGTZaM6aW5qndt8AfhwJ4vfVFjv64Xn3wO+V6OtyVVFzwPHR8R6SW8Fjo6ItXnd6cD0evpoZmZmVhZbZZC6BdoTuCZnS9fReTBsZmZm1is4SO1hku4hzWUtOi0iFrxW24yIx4Bxr1X7ZmZm1nMCaOulvwLVSA5Se1hEHNbsPpiZmZn1dg5SzczMzBpKtHZ690ircK7ZzMzMzErHmVQzMzOzBvKc1Pr4CJmZmZlZ6ThINTMzM7PS8XC/mZmZWYP5wqnuOZNqZmZmZqXjTKqZmZlZA0XIF07VwUfIzMzMzErHmVTbyKNLhnPs+z7Y7G5s5Fc/v7LZXejg9jV9mt2Fmm5YOb7ZXejgl/MObHYXOnjzUQ83uwsd3PXLg5rdhZpaZ+3S7C50MPJji5rdhQ7m3Te62V3oYNDs7ZrdhZoeueKAZnehFFqdSe2Wj5CZmZmZlY6DVDMzMzMrHQ/3m5mZmTVQAG2+BVW3nEk1MzMzs9JxJtXMzMysoeQLp+rgI2RmZmZmpeNMqpmZmVkDBdAWnpPaHWdSzczMzKx0HKSamZmZWel4uN/MzMyswVqdJ+yWj5CZmZmZlY4zqWZmZmYNFMgXTtXBmVQzMzMzKx1nUs3MzMwarM15wm75CJmZmZlZ6ThINTMzM7PSaXiQKqlV0tzCY5SkyZK+W7XeLEnj8/OlkoZXLe9Qp5vtjpMUko6vY92PSvpAjfJRkh7Iz8dL+nY37SyV9NuqsrmVNrqod5Sk/8nPJ0t6Jtd7UNKHu+u/mZmZlVcEtIYa+uiNmjEndU1EjC0WSA05eJOA3+V/Z3a1YkRc0V1jETEHmFPHdreTNDIinpS0X1097Wh6RJwtaRdgoaQZEbG8u0qSto2I9Zu4TTMzM7Om2SqG+5Wi4FOAycBxkgYUln1A0nxJ8yT9NJddJOmz+fkhedldwFmFesVs5xBJP5a0ILf1nsLmrwFOzc8nAVcX2hhQqHe/pKO72o+IeBpYDOwlabCkKyXNznUn5DYnS/pvSTcBt+ayf83bmCfpkhrH50xJcyTNWbfu5foOqpmZmW2ytlBDH71RMzKpAyXNzc+XRMTJDdjmEXlbiyXNAt4JXC/pAODzwBER8aykYTXq/hj4RET8RtLXOmn/34HnI+JAAElDC8uuBaYCXwf+Hng/cFpedhZARBwo6Y3ArZL27WwnJO0D7AMsyv3+dUR8UNKOwL2SfpVXfStwUESslHQicBJwWESsrrWPETEFmAKw/fYjorPtm5mZmTVKKYb7gc4Co54KmCYB0/LzaaQg8XrgGODaiHgWICJWFitJ2gHYMSJ+k4t+CpxYo/1jgYkbOh2xqrBsJbBK0kTgIWB1YdmRwHfsjhXAAAAgAElEQVRynYcl/RGoFaSeKulIYC3wkRx8Hge8q5LxBQYAe+bntxX25VjgxxGxutY+mpmZWWOlm/lvFYPZm6Us90ldAQytKhsGPLu5DUvqA7yHFNB9HhCwk6Tt8vOuAuHulte73nTgMtJ0g+p69ZgeEWfXqPueiHhko0LpMODlqvWcHTUzM7NepSxh/GzgCEm7QrpyHugPPNkDbR8LzIuIkRExKiL2Aq4jDYHfDrxX0k55uxsNhUfEc8DzOYsJaai+lluBDUFk1XA/wA3AV+l4wdadlTbzMP+ewCPUZybwiTzfFknjuujbByUNyuvVmtJgZmZmViqlCFLzleqfBG7O81W/CUyKiLbCavMlteTHN3LZ5EJZi6QRNZqfRAoSi64D3hcRC4EvA7+RNA/4RnVl4J+Ay/KFU2s62YUvAUMlPZDb2egCqIh4MSK+EhHrqupdDvSRtICUbZ0cEWs72Ua1LwJ9Scflgfy6g4i4BZgBzMnH9rO11jMzM7PGaUUNffRGDR/uj4ghnZTfCNzYybJRnTQ3tY7tTa5RNoMUuBERVwFXVS2/qPD8PuDgwuKLcvksYFZ+/hJwej39joilwJvy87/QcQpAddtTqbGfEbEG+EiN8g7rR8QlQIer+s3MzMzKqixzUs3MzMy2CgG99rZQjbRFBamS7iHNZS06LSIWNKM/ZmZmZrZptqggNSIOa3YfzMzMzLrmW1DVw0fIzMzMzErHQaqZmZmZlc4WNdxvZmZm1hu09dLbQjWSM6lmZmZmVjrOpJqZmZk1UAS0+hZU3XIm1czMzMyQdIKkRyQtknRujeWTJT0jaW5+fKiw7HRJj+VHhx842hTOpJqZmZk1WNluQSWpD3AZ8A6gBZgtaUZEPFi16vSIOLuq7jDgQmA86bcK7st1V21On8p1hMzMzMysGQ4FFkXE4xGxDpgGTKiz7vHAbRGxMgemtwEnbG6HnEm1jbT1EWuH9W12NzZy+5o+ze5CB28f2NrsLtR0o9qa3YUOdh+xstld6ODF9dU/TNd8KucpRRkvQN5G0ewudBDblq9Pg/5cvj4BlCyBuDUZLmlO4fWUiJhSeL0H8GThdQtQ60eS3iPpr4FHgU9FxJOd1N1jczvsINXMzMysgQLR1vgLp56NiPFdLK/VoepvOjcBV0fEWkkfBa4Cjqmz7qvm7zNmZmZm1gKMLLweATxVXCEiVkTE2vzyB8Ah9dbdFA5SzczMzBqsDTX0UYfZwBhJe0vqB0wEZhRXkLRb4eW7gIfy85nAcZKGShoKHJfLNouH+83MzMy2chGxXtLZpOCyD3BlRCyUdDEwJyJmAP8s6V3AemAlMDnXXSnpi6RAF+DiiNjsCxIcpJqZmZk1UEAz5qR2KyJuBm6uKrug8Pw84LxO6l4JXNmT/fFwv5mZmZmVjoNUMzMzMysdD/ebmZmZNVjZfnGqjHyEzMzMzKx0nEk1MzMza6Roys38ex1nUs3MzMysdBykmpmZmVnpeLjfzMzMrIEC6v0VqK2aM6lmZmZmVjrOpJqZmZk1mC+c6p4zqWZmZmZWOk0NUiW1SppbeIySNFnSd6vWmyVpfH6+VNLwquUd6nSz3XGSQtLxhbJRkh6oWu8iSZ/Nz6dKWpL7OU/S26v690guny1pbGHZqZLmS1oo6auF8j0l3SHp/rz8nYVl50lalNss9vFKSU/X6OcwSbdJeiz/OzSXn1M4tg/k4z2s3uNkZmZmPS9ImdRGPnqjZmdS10TE2MJjaYO2Own4Xf731TgnIsYC/wJcUbXs/RFxMHA58DUASTvl52+PiAOA1xWC2/OBayJiHDAx10PS/vn1AcAJwOWS+uQ6U3NZtXOB2yNiDHB7fk1EfK1ybIHzgN9ExMpXuc9mZmZmDdfsILXhJAk4BZgMHCdpwCY0cxewRx3L9gEejYhn8utfAe/JzwPYPj/fAXgqP58ATIuItRGxBFgEHAoQEXcCtYLMCcBV+flVwEk11pkEXN31bpmZmZmVQ7MvnBooaW5+viQiTm7ANo/I21osaRbwTuD6V9nGCcAv6li2CHijpFFACyl47JeXXQTcKukTwGDg2Fy+B3B3ob0WOg+IK14XEcsAImKZpF2KCyUNyv06u1ZlSWcCZwL0G7hjN5syMzOzzdVbh+AbqdlB6po8FF0UnazbWfmrNQmYlp9PA04jBan1bPdreV7pLsDhVev9TNJgoA/wZoCIWCXpY8B0oA34P1J2tdKPqRFxqaS3Aj+V9CaoeeO0zd33vwd+39lQf0RMAaYADBk6sqeOs5mZmdkmK+Nw/wpgaFXZMODZzW04z+18D3CBpKXAd4ATJW1X53bPAV5Pmk96VdW67wf2Bn4OXFYpjIibIuKwiHgr8AjwWF50BnBNXucuYAAwnJQ5HVlodwTtUwE6s1zSbnkfdwOerlo+EQ/1m5mZlULQ2IumemvWtoxB6mzgCEm7AuSr+vsDT/ZA28cC8yJiZESMioi9gOuAkyLiJWBZ5cKmfBX8CaQLrDaIiDbgW8A2xSvv87JXSAHs4ZL2y+3skv8dCnwc+GFe/Qmgsq39SEHqM8AMYKKk/pL2BsYA93azXzOA0/Pz04EbKwsk7QD8TbHMzMzMrOxKF6RGxHLgk8DNeb7qN4FJOTismC+pJT++kcsmF8paJI2o0fwk4IaqsuuA9+XnHwDOz9v9NfCFiFhco48BfAn41xrL1gCXAp/NRd+S9CDwe+CSiHg0l38G+LCkeaQs5+RIFpIyrA8CtwBnRUQrgKSrSRdmvSHv4xm5rUuAd0h6DHhHfl1xMnBrRLxc43iYmZlZE7Shhj56o6bOSY2IIZ2U30gnmb+IGNVJc1Pr2N7kGmUzSJlIIuJB4Oh66kbEdaQAl4g4qmrZpYXnNW9zlbd1RCfLvgx8uUZ5Z22tIGdlayybSh3HxszMzKxMSpdJNTMzMzNr9tX9rxlJ95DmshadFhELmtEfMzMzMwDCt6CqxxYbpEbEYc3ug5mZmZltmi02SDUzMzMro8CZ1Hp4TqqZmZmZlY4zqWZmZmYN5kxq95xJNTMzM7PScZBqZmZmZqXj4X4zMzOzBgrk4f46OJNqZmZmZqXjTKqZmZlZg4Uzqd1yJtXMzMzMSseZVNtIbAPr+5fr290NK8c3uwsd3Ki2Znehpm/vPrvZXehg9O8OaXYXOmjdt3zfz9cPimZ3oaYo36Hia3v+otld6OCYBZ9udhc6WD+o2T2oLbYt4UnVBG2U67O2jHymmJmZmVnpOEg1MzMzs9LxcL+ZmZlZA0X4F6fq4UyqmZmZmZWOM6lmZmZmDeZbUHXPmVQzMzMzKx1nUs3MzMwayj+LWg9nUs3MzMysdBykmpmZmVnpeLjfzMzMrMF84VT3nEk1MzMzs9JxJtXMzMysgQLfzL8ezqSamZmZWek4k2pmZmbWSJF+GtW65kyqmZmZmZVO04JUSa2S5hYeoyRNlvTdqvVmSRqfny+VNLxqeYc6XWxzqaQF+fGgpC9J6l+1zqck/UXSDvn1LpKWSNq1sM7lks6VdJSkkHRGYdm4XPbZ/Hp6YR+XSpqby/tKuir35SFJ5xXaOEHSI5IWSTq3UP6zXP6ApCsl9c3lkvTtvP58SW8u1LlF0nOS/qeeY2RmZmZWBs3MpK6JiLGFx9IGbffoiDgQOBTYB5hStXwSMBs4GSAinga+AnwdIAeARwKX5vUXAKcW6k8E5lVeRMSplX0ErgOuz4v+Aeif+3II8JEcqPcBLgNOBPYHJknaP9f5GfBG4EBgIPChXH4iMCY/zgS+V+jP14DT6j04ZmZm9tprQw199EZb7XB/RLwEfBQ4SdIwAEmjgSHA+aRgtWIKMFrS0cB3gbMj4pW87AlggKTXSRJwAvC/1dvLy94LXF3pAjBY0rakgHMd8AIpeF4UEY9HxDpgGjAh9/nmyIB7gRG5rQnAT/Kiu4EdJe2W69wOvLg5x8rMzMys0ZoZpA4sDIPf0IwORMQLwBJSBhJSYHo18FvgDZJ2yeu1AR8jZUIfjYg7q5q6lpQZ/SvgD8DaGpt7G7A8Ih4r1HkZWEYKdL8eESuBPYAnC/VactkGeZj/NOCWXNRtna5IOlPSHElz1v/l5XqrmZmZ2SYI0s38G/nojZp5df+aPARe1Nm1bq/lNXDFd24icHJEtEm6nhR4XgYQEXMlPQBcXqONa4DppKH4q0nBarVKAFxxKNAK7A4MBX4r6VdV/amo3v/LgTsj4rc19qGzOp2KiCnkaQ+Ddxrp6w3NzMys6cp2C6oVpICtaBjw7GuxMUnbAaOARyUdRMqo3pZG5ukHPE4OUrO2/NhIRPxZ0ivAO4BPUhWk5iH9d5Pmnla8D7glTxt4WtLvgfGkjOjIwnojgKcKbV0I7Ax8pLBOS1d1zMzMrEzkm/nXoWxzUmcDR1SupM9X9fdn46HsHiFpCCkj+YuIWEXKdF4UEaPyY3dgD0l71dnkBcDnIqK1xrJjgYcjoqVQ9gRwTL4yfzBwOPAw6RiMkbS3pH6k7O6M3OcPAccDk/IUhIoZwAdyW4cDz0fEsjr7bWZmZlY6pcqkRsRySZ8Ebpa0DfASHQOy+ZIqr68B5gOTJZ1UWOfwqoCw6I58EdM2wA3AF3P5RNJV8kU35PKv1NH3/+ti8UQ2HuqHlKH9MfAAabj+xxExH0DS2cBMoA9wZUQszHWuAP4I3JWzvddHxMXAzcA7gUXAauCfKhuR9FvSNIQhklqAMyJiZnf7Y2ZmZtZMTQtSI2JIJ+U3Ajd2smxUJ81NrXObndUnIvauUfbpqtdHVb2eBcyqUe+iqteTa6zzEmnOa62+3EwKPKvLa75f+Wr/szpZ9rZa5WZmZtY8/sWp7pVtuN/MzMzMrFzD/T1F0j2kuaxFp0XEgmb0x8zMzKyot94WqpG2yCA1Ig5rdh/MzMzMbNNtkUGqmZmZWVlFOJNaD89JNTMzM7PScZBqZmZmZqXj4X4zMzOzBvMvTnXPmVQzMzMzKx0HqWZmZmYNli6eatyjHpJOkPSIpEWSzq2x/NOSHpQ0X9LtxZ+Ol9QqaW5+zOiJY+ThfjMzM7OtnKQ+pJ9sfwfQAsyWNCMiHiysdj8wPiJWS/oY8FXg1LxsTUSM7ck+OZNqZmZm1mARauijDocCiyLi8YhYB0wDJmzc57gjIlbnl3cDI3r0oFRxkGpmZmZmewBPFl635LLOnAH8b+H1AElzJN0t6aSe6JCH+20jrQNhxcHluuLwl/MObHYXOth9xMpmd6Gm0b87pNld6GDxe69odhc6eMsf3tvsLnTQf1W5/u4qXtirfP16xzXnNLsLHWhgW7O70MGancv33gGsH9C32V3o6H+7X2ULMFzSnMLrKRExpfC61glTczarpH8ExgN/UyjeMyKekrQP8GtJCyJi8eZ02EGqmZmZWQMFdQ/B96RnI2J8F8tbgJGF1yOAp6pXknQs8HngbyJibaU8Ip7K/z4uaRYwDtisINXD/WZmZmY2GxgjaW9J/YCJwEZX6UsaB3wfeFdEPF0oHyqpf34+HDgCKF5wtUmcSTUzMzNrsDrvCtUwEbFe0tnATKAPcGVELJR0MTAnImYAXwOGAP8tCeCJiHgXsB/wfUltpAToJVV3BdgkDlLNzMzMjIi4Gbi5quyCwvNjO6n3f0CPX0DiINXMzMyskYJmzEntdTwn1czMzMxKx0GqmZmZmZWOh/vNzMzMGq1sV06VkDOpZmZmZlY6zqSamZmZNZgvnOqeM6lmZmZmVjrOpJqZmZk1WHhOarecSTUzMzOz0nGQamZmZmal4+F+MzMzswYKfOFUPZqaSZXUKmlu4TFK0mRJ361ab5ak8fn5UknDq5Z3qNPFNodI+p6kxZLul3SfpA/nZaMkranq0wfysh0k/STXW5yf71Cj3oN5Wd/CNs+TtEjSI5KOz2UDJN0raZ6khZK+UFh/b0n3SHpM0nRJ/XL5X0v6g6T1kk6p2q/T8/qPSTq9UP5lSU9Keqme42NmZmZWBs0e7l8TEWMLj6UN2OYPgVXAmIgYB5wADCssX1zVp5/k8h8Bj0fE6IgYDSzJbW1UDzgQGAG8F0DS/sBE4IC8rcsl9QHWAsdExMHAWOAESYfntr4C/GdEjMl9PSOXPwFMBn5e3CFJw4ALgcOAQ4ELJQ3Ni2/KZWZmZlYGAYQa++iFmh2kNpSk0aSA7fyIaAOIiGci4ivd1Hs9cAjwxULxxcD43OYGEdEK3AvskYsmANMiYm1ELAEWAYdGUslu9s2PkCTgGODavOwq4KTc9tKImA+0VXXxeOC2iFgZEauA20gBMRFxd0Qs6+7YmJmZmZVJs4PUgYVh9RsasL0DgHmVALUTo6uG+98G7A/MzQEosCEYnZvb3EDSAFJG85ZctAfwZGGVllyGpD6S5gJPk4LMe4CdgOciYn31+l3odBv1kHSmpDmS5rS+/HK91czMzGwTRTT20Rs1+8KpNXmIvKizQ9njh1jS54F/AHaJiN1z8eLqPkma0Mn2VSgfnQPOMcC1OeNZWadawIZAd6ykHYEbJL0JWN7Z+l3tyibUaV8xYgowBWDAiJG99FQ2MzOzLUmzM6m1rACGVpUNA57tgbYfBA6WtA1ARHw5B6Tbd1NvITCuUg8gPz8YeCgXVYLb1wOHS3pXLm8BRhbaGgE8VWw8Ip4DZpGG6J8FdpS0bWfr19DtNszMzMx6kzIGqbOBIyTtCpCv6u/PxsPZmyQiFgFzgC/li5cqw/NdzijO9e4Hzi8Unw/8IS8rrrsMOBc4LxfNACZK6i9pb1Km9V5JO+cMKpIGAscCD0dEAHcAlav3Twdu7GbXZgLHSRqaL5g6LpeZmZlZGUWDH71Q6YLUiFgOfBK4OQ+ffxOYVDWPdL6klvz4Ri6bXChrkTSik018iDTvc5Gk+4BfAZ8rLK+ek/rPufwMYN98K6nFwL60X3Vf7RfAIElvi4iFwDWkLO4twFl5mH834A5J80mB+W0R8T+5/ueAT0talPv6IwBJb5HUQpqi8H1JC/MxW0m6qGt2flycy5D01VxnUD4uF3XSZzMzM7PSaOqc1IgY0kn5jXSSPYyIUZ00N7XObb4AfKSTZUuBgZ0sWwX8Yxf13lR4HaSpAJXXXwa+XFVnPjCuk/Yep8ZtoyJiNmkov1adK4Era5T/K/CvteqYmZlZM8g3869D6TKpZmZmZmbNvrr/NSPpHtJc1qLTImJBM/pjZmZmtkEvnSfaSFtskBoRhzW7D2ZmZma2aTzcb2ZmZmals8VmUs3MzMxKKfCFU3VwJtXMzMzMSseZVDMzM7NG84VT3XIm1czMzMxKx5lUMzMzs4bznNTuOJNqZmZmZqXjINXMzMzMSsfD/WZmZmaN5gunuuUg1TayzSswuKVc82TefNTDze5CBy+ur/7F3XJo3bd8gyNv+cN7m92FDma/+Zpmd6GDg+74eLO7UNOgp8v3SbrtW55rdhc6GHL1Ds3uQgd/fudfmt2Fmob+sl+zu2C9hINUMzMzs0Yr3/e/0ilf2sXMzMzMtnrOpJqZmZk1UgD+WdRuOZNqZmZmZqXjINXMzMzMSsfD/WZmZmYNFr5wqlvOpJqZmZlZ6TiTamZmZtZozqR2y5lUMzMzMysdZ1LNzMzMGs23oOqWM6lmZmZmVjoOUs3MzMysdDzcb2ZmZtZg8oVT3XIm1czMzMxKx5lUMzMzs0YKfAuqOjQ8kyqpVdLcwmOUpMmSvlu13ixJ4/PzpZKGVy3vUKeLbe4g6SeSFufHTyTtUFh+gKRfS3pU0mOS/l2SCtt5Jvd1oaRrJQ3Kyy6SFJJeX2jrU7ms0vdJkhZImi/plsp+5Lp/KhyHdxbaOE/SIkmPSDq+UH6lpKclPVC1f8Mk3Zb7fpukoVXL35KP+yn1HC8zMzOzZmvGcP+aiBhbeCxtwDZ/BDweEaMjYjSwBPghgKSBwAzgkojYFzgY+Cvg44X603NfDwDWAacWli0AJhZenwI8mNveFvgWcHREHATMB84urPufheNwc66zf27vAOAE4HJJffL6U3NZtXOB2yNiDHB7fk1urw/wFWBmt0fJzMzMGkDpFlSNfPRCW/yc1JzlPAT4YqH4YmC8pNHA+4DfR8StABGxmhRInlujrW2BwcCqQvEvgAl5+T7A88AzlSr5MThnZrcHnuqmyxOAaRGxNiKWAIuAQ3Pf7gRWdlLnqvz8KuCkwrJPANcBT3ezXTMzM7PSaEaQOrAwxH1DA7a3PzA3IlorBfn5XFK28gDgvmKFiFgMDJG0fS46VdJc4E/AMOCmwuovAE9KehMwCZheaOcV4GOkbOtTuS8/KtQ9O08DuLIwRL8H8GRhnZZc1pXXRcSyvM1lwC4AkvYATgau6KqypDMlzZE0Z/2al7vZlJmZmdlrr9nD/Sfnss6mD/fEtGJ10k6lvLPlxe1Pj4ixwK6kgPOcqvWmkYboTwI2BN6S+pKC1HHA7qTh/vPy4u8Bo4GxwDLg0kK/OuvHq/VN4HPFAL2WiJgSEeMjYvy2Awdv4qbMzMysbtHgRy9UluH+FcDQqrJhwLM90PZCYJykDfuanx8MPJSXjy9WyMP2L0XEi8XyiAhSFvWvq7ZxE3Aa8EREvFAoH5vrLc51ryHNdyUilkdEa0S0AT8gD+mTMqcjC22MoPspAssl7Zb7vhvtQ/vjgWmSlpLmyl4u6aTaTZiZmZmVR1mC1NnAEZJ2BchXxvdn42HvTRIRi4D7gfMLxecDf8jLfgYcKenYvO2BwLeBr3bS5JHA4qptrAE+B3y5at0/AftL2jm/fgcpMK4EkxUnA5Ur9mcAEyX1l7Q3MAa4t5vdnAGcnp+fDtyY+7V3RIyKiFHAtcDHI+IX3bRlZmZmrzVnUrtVivukRsRySZ8Ebs5ZzpeASTnLWDFfUuX1NaSh88lVmcHDI6KlxibOAL4jaRFpOP2uXEZErJE0IS+/DOgD/BQo3t7qVElHkoL6FmByjX2YVqPsKUlfAO6U9Arwx0Ldr0oaSzp1lgIfyXUWSrqGdIeA9cBZleF6SVcDRwHDJbUAF0bEj4BLgGsknQE8AfxDjWNgZmZm1ms0PEiNiCGdlN9IzgDWWDaqk+am1rnNVcA/drF8ASn4q7VsamfbiYiLOik/qvD8CmpcuBQRp3XRny/TMStLREzqZP0VwNs7ay+vM7mr5WZmZtZAvTS72UhlGe43MzMzM9ugFMP9PUXSPaS5rEWn5UypmZmZmfUSW1SQGhGHNbsPZmZmZl0Keu2vQDWSh/vNzMzMrHS2qEyqmZmZWW8gXzjVLWdSzczMzKx0nEk1MzMzazRnUrvlTKqZmZmZlY6DVDMzMzMrHQepZmZmZoakEyQ9ImmRpHNrLO8vaXpefo+kUYVl5+XyRyQd3xP9cZBqZmZmtpWT1Ae4DDgR2B+YJGn/qtXOAFZFxOuB/wS+kuvuD0wEDgBOAC7P7W0WB6lmZmZmDaZo7KMOhwKLIuLxiFgHTAMmVK0zAbgqP78WeLsk5fJpEbE2IpYAi3J7m8VX99tGWgcGzx34SrO7sZG7fnlQs7vQgVqb3YPa1g8q3+Wi/VeV71dVDrrj483uQgfzP3N5s7tQ0+hf/1Ozu9DBNo/u2OwudPDSieua3YUOYk05P+Kfn/his7vQ0fRmd6AU9gCeLLxuAap/yXPDOhGxXtLzwE65/O6quntsbofKeQabmZmZbcka/7OowyXNKbyeEhFTCq9rdag689HZOvXUfdUcpJqZmZlt+Z6NiPFdLG8BRhZe///27jzMsrq+8/j7w9LsAZStVWQxuAamlRZj1AygGM0TwxJU2oxiBhd4YpxISMAhkxATEtSYxYnGtEbABBeiEElEO9LCYKKijWltQBFENMgWAgjITn3nj3tKb1fdqnOLLs49je/X89yn7ll/33uB5tuf3zmnngBcP8c+1yXZDNgeuHXMYxfMa1IlSZL0FWCfJHslWcLgRqjzZuxzHnB08/5I4HNVVc36o5q7//cC9gG+vKEFmaRKkiR1qejdb5xqrjF9E7AK2BT4YFVdnuRtwJqqOg/4W+DvklzNIEE9qjn28iRnA1cADwK/XlUbfPeGTaokSZKoqvOB82es+72h9/cCL5/j2FOBUxezHptUSZKkrvUsSe0jr0mVJElS75ikSpIkdWzMB+z/RDNJlSRJUu/YpEqSJKl3nO6XJEnqmtP9rUxSJUmS1DsmqZIkSV0zSW1lkipJkqTeMUmVJEnqUMpHUI3DJFWSJEm9Y5M6hySV5F1DyyckOSXJyUnWNq+Hht6/eY7znJLk+0P7rU2yQ5IDk/xgaN0FQ8e8JsllSS5PckWSE5r1L2/WTSVZPrT/kiSnJ1mX5GtJDhzadlGSK4fG2eUR+cIkSZIWkdP9c7sPOCLJn1TVLdMrq+pU4FSAJHdV1bIxzvXnVfWnwyuSAHy+qn5pxvqXAr8JvLiqrk+yJfDqZvNlwBHA38w4/+ub2vZtmtBPJ3l2VU0123+1qtaMUackSepCZdIV9J5J6tweBFYCb+l43LcCJ1TV9QBVdW9Vvb95/42qunLEMU8HVjf73AzcDiwfsd9ISd6QZE2SNQ/d+cMN/gCSJEkbyiZ1fu8BfjXJ9ht4nrcMTbdfOLT+BUPrT27W/Qxw6QLP/zXg0CSbJdkL2B/YfWj76c0Y/ydNhDusqlZW1fKqWr7pdtsscGhJkrRg1fFrI+R0/zyq6o4kHwLeDNyzAaeaNd3fmDXd/zB9EHgasAb4LvAFBkkwDKb6v59kO+ATDC4d+NAijClJkvSIMUlt9xfAMUBXEePlDJLQsVXVg1X1lqpaVlWHAjsAVzXbvt/8vBP4MHDAItcrSZIWaPoxVF29NkY2qS2q6lbgbAaNahf+BHhHkt0Akmwx15MDpiXZOsk2zftDgAer6opm+n+nZv3mwC8xuPlKkiSp15zuH8+7gDdtwPFvSfI/hpYPm2vHqjo/ya7ABc31o8VgOp8khwP/FxhT48MAABpRSURBVNgZ+FSStVX1C8AuwKokU8D3+fHTALZo1m8ObApcALx/Az6HJElSJ2xS51BV2w69vwnYer595jnPKcApIzZdC1w0xzGnA6ePWH8ucO6I9dcCTxmx/ocs8NIBSZLUgY10Cr5LTvdLkiSpd0xSF0nzCKmXz1j9D83D/yVJkgY24puZumSTukiGfxOVJEmSNoxNqiRJUtdMUlt5TaokSZJ6xyZVkiRJveN0vyRJUtec7m9lkipJkqTeMUmVJEnqmI+gameSKkmSpN6xSZUkSVLv2KRKkiSpd7wmVevZfMmDPH6P/5p0Get56KJdJl3CbJl0AaNVD//aecce/fuytr65fxeDPelzvzbpEkb69sGnT7qEWfb/g+MmXcIst23Zv/+dbrLj/ZMuYaQ3P+3CSZcwS//+jRLYpEqSJHWvf39X7p0e5i6SJEn6SWeSKkmS1KXyEVTjMEmVJElS75ikSpIkdc0ktZVJqiRJknrHJlWSJEm943S/JElS15zub2WSKkmSpN4xSZUkSepQ8BFU4zBJlSRJUu+YpEqSJHXNJLWVSaokSZJ6xyZVkiRJveN0vyRJUpfKG6fGMVaSmuTwJJXkqc3yJkneneSyJOuSfCXJXvMcf22Sz89YtzbJZRtW/pzjbZbkliR/ssjnvWuO9ccmeU3z/owkdyfZbmj7Xzbf306LWc+4kvzvSYwrSZL0cI073b8C+FfgqGb5lcDjgP2qal/gcOD2lnNsl2R3gCRPexi1LsSLgSuBVyTJIzwWVfW+qvrQ0KqrgUNh0NADBwHff6TrmIdNqiRJfVIdvzZCrU1qkm2B5wHH8OMmdSlwQ1VNAVTVdVV1W8upzmbQ3MKg6f3I0BibJnlnk8h+Pckbp8dOsjrJV5vEdrrx2zPJN5K8P8nlSf4lyVZDY60A/hL4HvCzQ+Ncm+SPk3wxyZokz0qyKsm3kxzb7HNgkouTnJvkiiTvaxrN6XOcmuRrSb6UZNdm3SlJThga/yNDn/VA4N+AB4fOcXyTQl+W5DeHPtM3k3ygWX9Wkhcl+bckVyU5oNlvmyQfbL6rfx/6Tl6b5Jwkn2n2f0ez/jRgqya5Pqvln5EkSVIvjJOkHgZ8pqq+Bdya5FkMGs6XNY3Pu5I8c4zzfBw4onn/MuCfhrYdA/ygqp4NPBt4fXP5wL3A4VX1LAZp5LuGktF9gPdU1TMYpLi/AtA0qy8E/plBs7hiRh3/UVXPBT4PnAEcyaCRfdvQPgcAvwXsCzxpqO5tgC9V1X8DLgZeP8dnvQrYOcmOzfgfnd6QZH/g14DnNOO+fuj7+2kGzfV+wFOBVwHPB07gx2noycDnmu/qIOCdSbZpti1j0BzvC7wyye5VdRJwT1Utq6pfHVVskjc0TfuaB35wzxwfSZIkLRqT1FbjNKnDTdZHgRVVdR3wFOCtwBSwOskLW85zK3BbkqOAbwB3D217MfCaJGuBS4DHMmhCA/xxkq8DFwCPB3ZtjvlOVa1t3l8K7Nm8/yXgwqq6G/gEcHiSTYfGOq/5uQ64pKrurKr/BO5NskOz7ctVdU1VPcSg0X1+s/5+Bs3vzDFHOYdB8vwcBg3xtOcD51bVD6vqrma/Fwx9pnVNQn05sLqqqql1eqwXAyc139VFwJbAE5ttq6vqB1V1L3AFsMc89f1IVa2squVVtXzz7bdqP0CSJOkRNu/d/UkeCxwM/EySAjYFKsnvVNV9wKeBTye5iUHiurplvI8B7wFeO3Mo4DeqatWM8V8L7AzsX1UPJLmWQVMGcN/Qrg8B093VCuB5zb4waHgPYtDkDh83NeMcU/z4+5j5d47p5QeapnF6zPm+v48CXwXOrKqpoUtj57tGdmY9w7VOjxXgV6rqyuEDkzyH2d+JT2+QJEkbpbYk9UjgQ1W1R1XtWVW7A98Bfj7J4+BHNwbtB3x3jPHOBd4BrJqxfhVwXJLNm3M+uZnC3h64uWlQD6IlGUzyUwySyic29e4J/Dqzp/zbHJBkr+azvZLBTWMLUlXfYzA1/94Zmy4GDkuydfMZD2f9pLXNKuA3pi97GPNSiwemv1tJkjR5qW5fG6O2pG0FcNqMdZ9gcC3nrUm2aNZ9GfirtsGq6k7g7QAzbrr/AIPp7K82zdd/MkhmzwL+KckaYC3wzZYhjmBwveZwovhJ4B1DtY7jiww+974MmspzF3Dsj1TV34xY99UkZzD4zgA+UFX/nmTPMU/7h8BfAF9vvqtrGVziMJ+Vzf5fneu6VEmSpD7Jj2evBYO7+4ETqqqt8XtU2vbJu9V+f3X0pMtYz0Nn7jLpEmZ7xB9s9vBUD3+H3B179K+orW/u3597t/33eyddwkjfPvj0SZcwy/5/cNykS5jltmdMTbqEWbLj/ZMuYaQTl8+cTJ2845568aVVtbyr8bZaunvtffTxXQ0HwBVvP77Tz7gY+vd/D0mSJP3EW9Qba5JcAsycVn91Va1bzHEeSVV1EYO75iVJkhbfRvxYqC4tapNaVc9ZzPNJkiTpJ5PT/ZIkSeodn6MpSZLUsY31sVBdMkmVJElS75ikSpIkdc0ktZVJqiRJknrHJFWSJKljXpPaziRVkiRJ80rymCSfTXJV83PHEfssS/LFJJcn+XqSVw5tOyPJd5KsbV7L2sa0SZUkSVKbk4DVVbUPsLpZnulu4DVV9QzgJcBfJNlhaPtvV9Wy5rW2bUCbVEmSpK5Vx68NdyhwZvP+TOCwWR+p6ltVdVXz/nrgZmDnhzug16RqPXXb5tx39q6TLmM9ux939aRLmGWTnl5M9M4n/uOkS5jlkLN/e9IlzLLZs2+fdAmzbPKtHdp3moD9/+C4SZcwy6W//9eTLmGWvc9546RLmGXbS7eadAkjnX7+L0+6hBEunnQBG4Ndq+oGgKq6Icku8+2c5ABgCfDtodWnJvk9miS2qu6b7xw2qZIkSV1avHRzIXZKsmZoeWVVrRzeIckFwG4jjj15IQMlWQr8HXB0VU01q98K3MigcV0JnAi8bb7z2KRKkiQ9+t1SVcvn26GqXjTXtiQ3JVnapKhLGUzlj9rvp4BPAb9bVV8aOvcNzdv7kpwOnNBWsNekSpIkdSgTeC2C84Cjm/dHA5+c9bmSJcC5wIeq6h9mbFva/AyD61kvaxvQJlWSJEltTgMOSXIVcEizTJLlST7Q7PMK4OeB14541NRZSdYB64CdgD9qG9DpfkmSJM2rqv4LeOGI9WuA1zXv/x74+zmOP3ihY9qkSpIkda2fD4npFaf7JUmS1DsmqZIkSR3r6eO2e8UkVZIkSb1jkipJktQ1k9RWJqmSJEnqHZtUSZIk9Y7T/ZIkSV1zur+VSaokSZJ6xyRVkiSpS+UjqMax0SSpSQ5PUkme2ixvkuTdSS5Lsi7JV5LsNc/x1zb7rUtyRZI/SrLFjH3ekuTeJNs3y7sk+U6S3Yb2eW+Sk5Ic2NRzzNC2ZzbrTmiWPzb0u2uvTbK2Wb95kjObWr6R5K1D53hJkiuTXJ3kpKH1ZzXrL0vywSSbN+vTfA9XJ/l6kmcNHfOZJLcn+eeH/81LkiR1b6NpUoEVwL8CRzXLrwQeB+xXVfsChwO3t5zjoGbfA4C9gZUjxvhKcy6q6mbg7cCfAjQN4POBdzX7r2vqmHYU8LXphap6ZVUtq6plwCeAc5pNLwe2aGrZH3hjkj2TbAq8B3gp8HRgRZKnN8ecBTwV2BfYiub35Db77tO83gD89VA97wRe3fKdSJKkrlXHr43QRtGkJtkWeB5wDD9uUpcCN1TVFEBVXVdVt41zvqq6CzgWOCzJY5oxngRsC/wug2Z12krgSUkOAv4KeFNVPdBs+x6wZZJdkwR4CfDpEfUHeAXwkekSgG2SbMag4bwfuINB83x1VV1TVfcDHwUObWo+vxrAl4EnNOc6FPhQs+lLwA5JljbHrAbuHOc7kSRJ6pONokkFDgM+U1XfAm5tEs2zgZc1U+nvSvLMhZywqu4AvsMggYRBY/oR4PPAU5Ls0uw3BRzHIAn9VlVdPONUH2eQjP4c8FXgvhHDvQC4qaquGjrmh8ANDBrdP62qW4HHA/8xdNx1zbofaab5Xw18plnVekybJG9IsibJmgfv+eFCDpUkSXpEbCxN6goGqSLNzxVVdR3wFOCtwBSwOskLF3jeDL0/Cvho05Sew6DxBKCq1gKXAe8dcY6zm32nm9y56h/edgDwEIPLFfYCfivJ3jPq+dHwM5bfC1xcVZ8f8RnmOmZeVbWyqpZX1fLNttpmIYdKkqSHIdXta2PU+7v7kzwWOBj4mSQFbApUkt+pqvsYTK9/OslNDBLX1WOedztgT+BbSfZjkKh+djAzzxLgGgbXh06bal7rqaobkzwAHAL8LwaJ6vA4mwFHMLj2dNqrGCTDDwA3J/k3YDmDRHT3of2eAFw/dK7fB3YG3ji0z3XzHSNJkrQx2hiS1CMZXHO5R1XtWVW7M5im//kkj4PBnf7AfsB3xzlhc43re4F/bK5jXQGc0px/z6p6HPD4JHuMWePvASdW1UMjtr0I+GaT/E77HnBwc2f+NsDPAt9kcNPWPkn2SrKEQbp7XlPz64BfYJAiDzfL5wGvac71s8APquqGMeuWJEmT4I1TrXqfpDJoIE+bse4TwBkMrk+dfozUlxnc2DSfC5ubmDYBzgX+sFl/FIO75Ied26x/e1uBVfWFeTYfxezLAN4DnM7gEoIAp1fV1wGSvAlYxSAx/mBVXd4c8z4GTfgXm7T3nKp6G3A+8IvA1cDdwK9ND5Lk8wyeCLBtkuuAY6pqVdvnkSRJmrTeN6lVdeCIde8G3r3A8+w5z7ZZz1etquPnq6OqLgIuGnHcKTOWXztin7sYuuZ1xrbzGTSeM9eP/GfV3O3/63Nse8Go9ZIkabI21utEu7QxTPdLkiTpJ0zvk9SFSnIJsMWM1a+uqnWTqEeSJEkL96hrUqvqOZOuQZIkaU4b8c1MXXK6X5IkSb3zqEtSJUmSes8ktZVJqiRJknrHJFWSJKlDwUdQjcMkVZIkSb1jkypJkqTecbpfkiSpa073tzJJlSRJUu+YpEqSJHUsZZTaxiZV63loCdyx96SrWN/XLn3SpEuYpTbr5x8uB687ftIlzJKtpiZdwizbfmT7SZcwy10vvX/SJYx025b9+9/E3ue8cdIlzHLNEX8z6RJm+bnjj510CSPd+Lwe/vn54UkXoFH696ePJEnSo5m/FnUsXpMqSZKk3rFJlSRJUu843S9JktQxf+NUO5NUSZIk9Y5JqiRJUtdMUluZpEqSJKl3TFIlSZI65jWp7UxSJUmS1Ds2qZIkSeodp/slSZK65nR/K5NUSZIk9Y5JqiRJUpfKG6fGYZIqSZKk3jFJlSRJ6ppJaiuTVEmSJPWOTaokSZJ6x+l+SZKkDgVvnBqHSaokSZJ6xyRVkiSpa2WU2sYkVZIkSb1jkipJktQxr0ltZ5IqSZKk3rFJlSRJUu843S9JktSlwt84NQaTVEmSJPWOSaokSVLHMjXpCvrPJFWSJEm9Y5IqSZLUNa9JbWWSKkmSpN6xSZUkSVLvON0vSZLUMX/jVDuTVEmSJPWOSaokSVKXCiij1DYmqZIkSZpXksck+WySq5qfO86x30NJ1jav84bW75Xkkub4jyVZ0jamTaokSVLHUt2+FsFJwOqq2gdY3SyPck9VLWtevzy0/u3AnzfH3wYc0zag0/1a35ZT5Ml3TbqK9Wz9le0mXcIsW9/Yz2maB7eedAWz3bNzJl3CLDf+4r2TLmGWuqeffxxvsuP9ky5hlm0v3WrSJczyc8cfO+kSZvnCn71v0iWMtO8lr5p0CXp4DgUObN6fCVwEnDjOgUkCHAxM/8M/EzgF+Ov5jjNJlSRJevTbKcmaodcbFnj8rlV1A0Dzc5c59tuyOf+XkhzWrHsscHtVPdgsXwc8vm3Afv7VXZIk6dGs+wm5W6pq+Xw7JLkA2G3EppMXMM4Tq+r6JHsDn0uyDrhjxH6t34BNqiRJkqiqF821LclNSZZW1Q1JlgI3z3GO65uf1yS5CHgm8AlghySbNWnqE4Dr2+pxul+SJKlDYaO8ceo84Ojm/dHAJ2d9rmTHJFs073cCngdcUVUFXAgcOd/xM9mkSpIkqc1pwCFJrgIOaZZJsjzJB5p9ngasSfI1Bk3paVV1RbPtROD4JFczuEb1b9sGdLpfkiSpS1Ub3cP8q+q/gBeOWL8GeF3z/gvAvnMcfw1wwELGNEmVJElS79ikSpIkqXec7pckSerYIt3M9KhmkipJkqTeMUmVJEnqmklqK5NUSZIk9Y5JqiRJUse8JrWdSaokSZJ6xyZVkiRJveN0vyRJUpcKmHK+v41JqiRJknrHJFWSJKlrBqmtTFIlSZLUOyapkiRJHfMRVO1MUiVJktQ7NqmSJEnqHaf7JUmSulbO97cxSZUkSVLvmKRKkiR1zBun2pmkSpIkqXdsUiVJktQ7TvdLkiR1qfA3To3BJFWSJEm9Y5IqSZLUoQDxEVStTFIlSZLUOyapkiRJXZuadAH9Z5IqSZKk3rFJlSRJUu843S9JktQxb5xqZ5IqSZKk3jFJlSRJ6pIP8x+LTarWs90W93LwXldNuoz1XPm+Z0y6hFmqp3MQtVn/Cntwy80nXcIsO35qyaRLmOUHR9056RJGevPTLpx0CbOcfv4vT7qEWW58Xv86jn0vedWkSxhp3XM+POkSZtl00gVoJJtUSZKkThV4TWqr/sUukiRJ+olnkypJkqTecbpfkiSpY3G2v5VJqiRJknrHJFWSJKlr3jjVyiRVkiRJvWOSKkmS1KWCTE26iP4zSZUkSVLv2KRKkiSpd5zulyRJ6po3TrUySZUkSVLvmKRKkiR1zSC1lUmqJEmSesckVZIkqWPxmtRWJqmSJEnqHZtUSZIk9Y7T/ZIkSV1zur+VSaokSZJ6xyRVkiSpSwVMTbqI/jNJlSRJUu+YpEqSJHUolI+gGoNJqiRJknrHJlWSJEm943S/JElS15zub2WSKkmSpN4xSZUkSeqaSWork1RJkiT1jkmqJElSl3yY/1hMUiVJktQ7NqmSJEnqHaf7JUmSOuZvnGpnkipJkqTesUmVJEnqWlW3rw2U5DFJPpvkqubnjiP2OSjJ2qHXvUkOa7adkeQ7Q9uWtY1pkypJkqQ2JwGrq2ofYHWzvJ6qurCqllXVMuBg4G7gX4Z2+e3p7VW1tm1Am1RJkqROdZyiLs71r4cCZzbvzwQOa9n/SODTVXX3wx0w5YW7GpLkP4HvLtLpdgJuWaRzLRZrGk8fa4J+1mVN47Em9dkeVbVzV4Ntv/XSeu5PH9PVcACsWnfqpVW1/OEen+T2qtphaPm2qpo15T+0/XPAn1XVPzfLZwDPBe6jSWKr6r75xvTufq1nMf8jTbJmQ/6DeCRY03j6WBP0sy5rGo81SRO3U5I1Q8srq2rl8A5JLgB2G3HsyQsZKMlSYF9g1dDqtwI3AkuAlcCJwNvmO49NqiRJUpeKxZqCX4hb2v5SVlUvmmtbkpuSLK2qG5om9OZ5TvUK4NyqemDo3Dc0b+9LcjpwQlvBXpMqSZKkNucBRzfvjwY+Oc++K4CPDK9oGluShMH1rJe1DWiSqkfSyvZdOmdN4+ljTdDPuqxpPNYkDZuadAELdhpwdpJjgO8BLwdIshw4tqpe1yzvCewO/L8Zx5+VZGcgwFrg2LYBvXFKkiSpQ9tvtbSeu/f/7HTMVVf88QbdODUJJqmSJEkd89eitvOaVEmSJPWOTaokSZJ6x+l+SZKkrjnd38okVZIkSb1jkipJktSlAqZMUtuYpEqSJKl3TFIlSZI6VV6TOgaTVEmSJPWOTaokSZJ6x+l+SZKkrjnd38okVZIkSb1jkipJktQ1k9RWJqmSJEnqHZNUSZKkLvkw/7GYpEqSJKl3bFIlSZLUO073S5IkdaqgpiZdRO+ZpEqSJKl3TFIlSZK65iOoWpmkSpIkqXdMUiVJkrrkI6jGYpIqSZKk3rFJlSRJUu843S9JktQ1b5xqZZIqSZKk3jFJlSRJ6ppJaiuTVEmSJPWOSaokSVKnyiR1DCapkiRJ6h2bVEmSJPWO0/2SJEldKmBqatJV9J5JqiRJknrHJFWSJKlr3jjVyiRVkiRJvWOSKkmS1DWT1FYmqZIkSeodm1RJkiT1jtP9kiRJnSqYcrq/jUmqJEmSesckVZIkqUsFVT7Mv41JqiRJknrHJFWSJKlrXpPayiRVkiRJvWOTKkmSpN5xul+SJKlr/sapViapkiRJ6h2TVEmSpC5VwZSPoGpjkipJkqTeMUmVJEnqmtektjJJlSRJUu/YpEqSJKl3nO6XJEnqWHnjVCuTVEmSJPWOSaokSVKnyhunxmCSKkmSpN4xSZUkSepSAVMmqW1MUiVJktQ7NqmSJEnqHaf7JUmSulY+gqqNSaokSZJ6xyRVkiSpQwWUN061MkmVJElS75ikSpIkdanKa1LHYJIqSZKk3rFJlSRJUu/YpEqSJHWspqrT14ZK8vIklyeZSrJ8nv1ekuTKJFcnOWlo/V5JLklyVZKPJVnSNqZNqiRJktpcBhwBXDzXDkk2Bd4DvBR4OrAiydObzW8H/ryq9gFuA45pG9AmVZIkqWs11e1rQ8ut+kZVXdmy2wHA1VV1TVXdD3wUODRJgIOBjzf7nQkc1jamTaokSZIWw+OB/xhavq5Z91jg9qp6cMb6efkIKkmSpA7dyW2rLqiP79TxsFsmWTO0vLKqVg7vkOQCYLcRx55cVZ8cY4yMWFfzrJ+XTaokSVKHquolk65hlKp60Qae4jpg96HlJwDXA7cAOyTZrElTp9fPy+l+SZIkLYavAPs0d/IvAY4CzquqAi4Ejmz2OxpoTWZtUiVJkjSvJIcnuQ54LvCpJKua9Y9Lcj5Ak5K+CVgFfAM4u6oub05xInB8kqsZXKP6t61jDppbSZIkqT9MUiVJktQ7NqmSJEnqHZtUSZIk9Y5NqiRJknrHJlWSJEm9Y5MqSZKk3rFJlSRJUu/YpEqSJKl3/j9rAXFqmuSCegAAAABJRU5ErkJggg==\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# Scatter Plot Matrix\n\n1. A scatter plot shows the relationship between two variables as dots in two dimensions, one axis for each attribute. You can create a scatter plot for each pair of attributes in your data. Drawing all these scatter plots together is called a scatter plot matrix. Scatter plots are useful for spotting structured relationships between variables, like whether you could summarize the relationship between two variables with a line. Attributes with structured relationships may also be correlated and good candidates for removal from your dataset.\n\n2. A scatter plot matrix is a grid (or matrix) of scatter plots used to visualize bivariate relationships between combinations of variables. Each scatter plot in the matrix visualizes the relationship between a pair of variables, allowing many relationships to be explored in one chart.\n\n3. Variables\nA scatter plot matrix is made up of three or more Numeric fields. A scatter plot will be created for every pairwise combination of variables.\n\n* . Statistics\nA regression equation is calculated for every scatter plot in the matrix. The associated trend lines can be added to the scatter plots by checking Show linear trend in the Chart Properties pane. Alternatively, the mini-plots in the grid can be viewed as R² values with a color gradient corresponding to the strength of the R² value by checking Show as R2 in the Chart Properties pane.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns\n\n#you can use vars to compare two variable and hue to put colours\nsns.pairplot(Train,hue='CLASS',vars=['FULL_Charge','FULL_AcidicMolPerc'])\n#check on the seaborn(seaborn.pydata.org-dev/generated/seaborn.boxplot.html)\n\n","execution_count":26,"outputs":[{"output_type":"execute_result","execution_count":26,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# 3. Prepare Data\n(Prepare Your Data For Machine Learning)\n\nMany machine learning algorithms make assumptions about your data. It is often a very good idea to prepare your data in such way to best expose the structure of the problem to the machine learning algorithms that you intend to use. It involes the following;\n\n1. Rescale data.\n2. Standardize data.\n3. Normalize data.\n4. Binarize data.\n\n### The steps involved are as below:\n\n* Split the dataset into the input and output variables for machine learning.\n* Apply a pre-processing transform to the input variables.\n* Summarize the data to show the change.\n\nThe scikit-learn library provides two standard idioms for transforming data. Each are useful in diferent circumstances. The transforms are calculated in such a way that they can be applied to your training data and any samples of data you may have in the future. The scikit-learn documentation has some information on how to use various diferent pre-processing methods:\n\nThe Fit and Multiple Transform method is the preferred approach. You call the fit() function to prepare the parameters of the transform once on your data. Then later you can use the transform() function on the same data to prepare it for modeling and again on the test or validation dataset or new data that you may see in the future. The Combined Fit-And-Transform is a convenience that you can use for one of tasks. This might be useful if you are interested in plotting or summarizing the transformed data.\n\n### Rescale Data\nWhen your data is comprised of attributes with varying scales, many machine learning algorithms can benefit from rescaling the attributes to all have the same scale. Often this is referred to as normalization and attributes are often rescaled into the range between 0 and 1. This is useful for optimization algorithms used in the core of machine learning algorithms like gradient descent. It is also useful for algorithms that weight inputs like regression and neural networks and algorithms that use distance measures like k-Nearest Neighbors. You can rescale your data using scikit-learn using the MinMaxScaler class\n\n### NOTE: Since my graph and summary data shows varying means and Gaussian distribution. i would use Standardize data method\n\n\n\n### Standardize of Data\nStandardization is a useful technique to transform attributes with a Gaussian distribution and differing means and standard deviations to a standard Gaussian distribution with a mean of 0 and a standard deviation of 1. It is most suitable for techniques that assume a Gaussian distribution in the input variables and work better with rescaled data, such as linear regression, logistic regression and linear discriminate analysis. You can standardize data using scikit-learn with the StandardScaler class3."},{"metadata":{"trusted":true},"cell_type":"code","source":"#using Standardize data method\nfrom sklearn.preprocessing import StandardScaler\n\narray2 = Train.values\n# separate array into input and output components\nX = array2[:,0:11]\nY = array2[:,11]\nscaler = StandardScaler().fit(X)\nrescaledX = scaler.transform(X)\n# summarize transformed data\n#set_printoptions(precision=3)\nprint(rescaledX[0:11,:])","execution_count":27,"outputs":[{"output_type":"stream","text":"[[ 7.69712416e-01 -1.12341031e+00 -1.90047029e-01 1.37605977e-01\n -6.06718766e-01 -7.20629784e-01 -3.11684110e-01 -1.33070267e+00\n -2.25681314e-02 -3.60971652e-01 -9.25122883e-01]\n [ 5.07884366e-01 -4.10857567e-01 -3.76275096e-01 -2.43225309e-01\n -1.18128598e+00 -9.24503172e-01 3.20837658e+00 -1.30322672e+00\n -5.92370366e-01 9.02050407e-01 1.03699430e+00]\n [ 9.00626442e-01 -4.10857567e-01 -9.16336490e-01 -8.65106417e-03\n -1.05360437e+00 -4.63244125e-02 -3.11684110e-01 -1.30383154e+00\n -4.59030969e-01 -1.40916462e+00 2.31808537e+00]\n [ 7.69712416e-01 -5.74065761e-01 -7.11485617e-01 -8.70124978e-01\n 1.59370848e-01 6.27395116e-01 -3.11684110e-01 -1.30201709e+00\n -7.01486075e-01 -2.30020073e+00 6.98862456e-01]\n [ 1.42428254e+00 2.04070778e-03 -3.66963693e-01 -1.04957427e+00\n -4.79037163e-01 2.00315519e-01 -3.11684110e-01 -1.30184429e+00\n -7.71259861e-02 -1.97723618e+00 1.44656245e+00]\n [ 7.69712416e-01 -1.09357454e-01 5.45553834e-01 6.19304189e-01\n -5.74798365e-01 -3.85527549e-01 3.20837658e+00 -1.31091653e+00\n 5.59455063e-01 1.16266135e-01 -6.87001866e-01]\n [ 2.46056315e-01 -2.14164008e-01 -3.85586500e-01 5.76728963e-01\n -1.18128598e+00 -6.50914459e-01 3.20837658e+00 -1.32180323e+00\n 4.98786728e-01 5.37273488e-01 1.10366819e+00]\n [-1.57717358e-02 -3.47973635e-01 -9.62893507e-01 3.42389293e-01\n -1.43664918e+00 -1.99132340e+00 -3.11684110e-01 -1.34176217e+00\n 3.20491659e-01 8.18425659e-01 -7.10813967e-01]\n [ 1.29336852e+00 -7.76428102e-01 -1.06531894e+00 -1.55074215e+00\n 5.74336055e-01 1.25424720e+00 -3.11684110e-01 -1.33882449e+00\n -1.01672136e+00 -2.97352413e+00 3.28485670e+00]\n [ 1.81702462e+00 -1.12341031e+00 -5.62503163e-01 -9.21965886e-01\n 1.75539088e+00 -8.52444475e-01 -3.11684110e-01 -1.32387688e+00\n -1.13794891e+00 5.99271146e-01 -9.16993221e-02]\n [-1.57717358e-02 -6.68853073e-01 1.82409104e-01 -2.92837762e-01\n -1.27912757e-01 -7.49336095e-01 -3.11684110e-01 -1.31100293e+00\n 2.98777633e-01 -7.34399407e-01 2.36907682e-01]]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# a) Data Cleaning(not done)\n# b) Feature Selection\n\n## Feature Selection For Machine\nLearning The data features that you use to train your machine learning models have a huge in uence on the performance you can achieve. Irrelevant or partially relevant features can negatively impact model performance. \n\n## Univariate Selection.\nRecursive Feature Elimination.\nPrinciple Component Analysis.\nFeature Importance.\nFeature Selection\nFeature selection is a process where you automatically select those features in your data that contribute most to the prediction variable or output in which you are interested. Having irrelevant features in your data can decrease the accuracy of many models, especially linear algorithms like linear and logistic regression. Three benets of performing feature selection before modeling your data are:\n\nReduces Overffitting: Less redundant data means less opportunity to make decisions based on noise.\nImproves Accuracy: Less misleading data means modeling accuracy improves.\nReduces Training Time: Less data means that algorithms train faster.\nUnivariate Selection\nStatistical tests can be used to select those features that have the strongest relationship with the output variable. The scikit-learn library provides the SelectKBest class2 that can be used with a suite of different statistical tests to select a specific number of features. The example below uses the chi-squared (𝑐ℎ𝑖2) statistical test for non-negative features to select 4 of the best features from the Pima Indians onset of diabetes dataset.\n\nYou can see the scores for each attribute and the 4 attributes chosen (those with the highest scores): plas, test, mass and age. I got the names for the chosen attributes by manually mapping the index of the 4 highest scores to the index of the attribute names.\n\n# Recursive Feature Elimination method.\nThe Recursive Feature Elimination (or RFE) works by recursively removing attributes and building a model on those attributes that remain. It uses the model accuracy to identify which attributes (and combination of attributes) contribute the most to predicting the target attribute. You can learn more about the RFE class3 in the scikit-learn documentation. The example below uses RFE with the logistic regression algorithm to select the top 3 features. The choice of algorithm does not matter too much as long as it is skillful and consistent.\n\n### NOTE: Since i dont have much information about the interpretetion of my varaibles, Recursive Feature Elimination method would be the best. \n\n# c) Data Transforms"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.feature_selection import RFE\nfrom sklearn.linear_model import LogisticRegression\n\narray_1 = Train.values\nX = array_1[:,0:11]\nY = array_1[:,11]\n# feature extraction\nmodel = LogisticRegression()\nrfe = RFE(model, 10)\nfit = rfe.fit(X, Y)\nprint(\"Num Features: \", fit.n_features_)\nprint(\"Selected Features:\", fit.support_)\nprint(\"Feature Ranking: \", fit.ranking_)","execution_count":28,"outputs":[{"output_type":"stream","text":"Num Features: 10\nSelected Features: [ True True True True True True True True False True True]\nFeature Ranking: [1 1 1 1 1 1 1 1 2 1 1]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"### Feature Importance\nBagged decision trees like Random Forest and Extra Trees can be used to estimate the importance\nof features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.ensemble import ExtraTreesClassifier\nimport warnings\nwarnings.filterwarnings('ignore')\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n# feature extraction\nmodel = ExtraTreesClassifier()\nmodel.fit(X, Y)\nprint(model.feature_importances_)","execution_count":29,"outputs":[{"output_type":"stream","text":"[0.07786559 0.13938072 0.09666796 0.08041298 0.05690231 0.07347888\n 0.03259099 0.30650126 0.0532572 0.03200225 0.05093986]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# 4. Evaluate Algorithms\n\n\n## Evaluate the Performance of Machine Learning Algorithms with Resampling\nYou need to know how well your algorithms perform on unseen data. \n\n1. The best way to evaluate the performance of an algorithm would be to make predictions for new data to which you already know the answers. 2. The second best way is to use clever techniques from statistics called resampling methods that allow you to make accurate estimates for how well your algorithm will perform on new data. In this chapter you will discover how you can estimate the accuracy of your machine learning algorithms using resampling methods in Python and scikit-learn.\n\n## Evaluate Machine Learning Algorithms\nWhy can't you train your machine learning algorithm on your dataset and use predictions from this same dataset to evaluate machine learning algorithms? The simple answer is overffitting. Imagine an algorithm that remembers every observation it is shown during training. If you evaluated your machine learning algorithm on the same dataset used to train the algorithm, then an algorithm like this would have a perfect score on the training dataset. But the predictions it made on new data would be terrible. We must evaluate our machine learning algorithms on data that is not used to train the algorithm. The evaluation is an estimate that we can use to talk about how well we think the algorithm may actually do in practice. It is not a guarantee of performance. Once we estimate the performance of our algorithm, we can then re-train the final algorithm on the entire training dataset and get it ready for operational use. Next up we are going to look at four different techniques that we can use to split up our training dataset and create useful estimates of performance for our machine learning algorithms:\n\n* Train and Test Sets.\n* k-fold Cross Validation.\n* Leave One Out Cross Validation.\n* Repeated Random Test-Train Splits.\n\n# a) Split-out validation dataset\n\n### Split into Train and Test Sets\nThe simplest method that we can use to evaluate the performance of a machine learning algorithm is to use different training and testing datasets. \n\nWe can take our original dataset and split it into two parts. Train the algorithm on the train part, make predictions on the second part and evaluate the predictions against the expected results.\n\nThis algorithm evaluation technique is very fast. It is ideal for large datasets (millions of records) where there is strong evidence that both splits of the data are representative of the underlying problem. Because of the speed, it is useful to use this approach when the algorithm you are investigating is slow to train. A downside of this technique is that it can have a high variance. \n\nThis means that diferences in the training and test dataset can result in meaningful diferences in the estimate of accuracy. In the example below we split the train dataset into 70%/30% splits for training and test and evaluate the accuracy of a Logistic Regression model."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split #spliting the dataset to train and test.\nfrom sklearn.linear_model import LogisticRegression #statisctical method used\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresult = model.score(X_test, Y_test)\nprint(\"Accuracy: \", (result*100.0))\n","execution_count":30,"outputs":[{"output_type":"stream","text":"Accuracy: 91.77631578947368\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# b) Test options and evaluation metric"},{"metadata":{},"cell_type":"markdown","source":"# K-fold Cross Validation\nCross validation is an approach that you can use to estimate the performance of a machine learning algorithm with less variance than a single train-test set split. It works by splitting the dataset into k-parts (e.g. k = 5 or k = 10). Each split of the data is called a fold. The algorithm is trained on k 1 folds with one held back and tested on the held back fold. This is repeated so that each fold of the dataset is given a chance to be the held back test set. After running cross validation you end up with k diferent performance scores that you can summarize using a mean and a standard deviation. The result is a more reliable estimate of the performance of the algorithm on new data. It is more accurate because the algorithm is trained and evaluated multiple times on different data. The choice of k must allow the size of each test partition to be large enough to be a reasonable sample of the problem, whilst allowing enough repetitions of the train-test evaluation of the algorithm to provide a fair estimate of the algorithms performance on unseen data. For modest sized datasets in the thousands or tens of thousands of records, k values of 3, 5 and 10 are common."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10 #number of folds to use are 10\nseed = 42 #reproducibility\n\nkfold = KFold(n_splits=num_folds, random_state=seed)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(f\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))","execution_count":31,"outputs":[{"output_type":"stream","text":"Accuracy: (83.5359128018065, 27.08521320979506)\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Leave One Out Cross Validation\nYou can configure cross validation so that the size of the fold is 1 (k is set to the number of observations in your dataset). This variation of cross validation is called leave-one-out cross validation. The result is a large number of performance measures that can be summarized in an effort to give a more reasonable estimate of the accuracy of your model on unseen data. A downside is that it can be a computationally more expensive procedure than k-fold cross validation. In the example below we use leave-one-out cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import LeaveOneOut\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nloocv = LeaveOneOut()\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=loocv)\nprint(\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))\n","execution_count":32,"outputs":[{"output_type":"stream","text":"Accuracy: (91.4417379855168, 27.974673416141517)\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Repeated Random Test-Train Splits\nAnother variation on k-fold cross validation is to create a random split of the data like the train/test split described above, but repeat the process of splitting and evaluation of the algorithm multiple times, like cross validation. This has the speed of using a train/test split and the reduction in variance in the estimated performance of k-fold cross validation. You can also repeat the process many more times as needed to improve the accuracy. A down side is that repetitions may include much of the same data in the train or the test split from run to run, introducing redundancy into the evaluation. The example below splits the data into a 70%/30% train/test split and repeats the process 10 times."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import ShuffleSplit\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nn_splits = 10\ntest_size = 0.30\n\nkfold = ShuffleSplit(n_splits=n_splits, test_size=test_size, random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(\"Accuracy: \" , (results.mean()*100.0, results.std()*100.0))\n\n\nmcc = matthews_corrcoef(model.predict(X), Y)\noutput = model.predict(test_set)\nprint('MCC: ',mcc)\n\ncross_validation_report = pd.DataFrame(output)\ncross_validation_report.columns = ['CLASS']\ncross_validation_report.index.name = 'Index'\ncross_validation_report['CLASS'] = cross_validation_report['CLASS'].map({0.0:False, 1.0:True})\n\ncross_validation_report.to_csv('cross_validation_report.csv')\n\nprint(cross_validation_report['CLASS'].unique())\nprint('False: ',cross_validation_report.groupby('CLASS').size()[0].sum())\nprint('True: ',cross_validation_report.groupby('CLASS').size()[1].sum())","execution_count":33,"outputs":[{"output_type":"stream","text":"Accuracy: (91.26096491228068, 0.8132535807363438)\n","name":"stdout"},{"output_type":"error","ename":"NameError","evalue":"name 'test_set' is not defined","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)","\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mmcc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmatthews_corrcoef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_set\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'MCC: '\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmcc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mNameError\u001b[0m: name 'test_set' is not defined"]}]},{"metadata":{},"cell_type":"markdown","source":"# NOTE: What Techniques to Use When\nThis section lists some tips to consider what resampling technique to use in diferent circum- stances.\n\nGenerally k-fold cross validation is the gold standard for evaluating the performance of amachine learning algorithm on unseen data with k set to 3, 5, or 10.\nUsing a train/test split is good for speed when using a slow algorithm and producesperformance estimates with lower bias when using large datasets.\n\nTechniques like leave-one-out cross validation and repeated random splits can be usefulintermediates when trying to balance variance in the estimated performance, modeltraining speed and dataset size.\n\nThe best advice is to experiment and find a technique for your problem that is fast and produces reasonable estimates of performance that you can use to make decisions. If in doubt, use 10-fold cross validation.\n\n# Machine Learning Algorithm Performance Metrics\n\nThe metrics that you choose to evaluate your machine learning algorithms are very important.\n\n\n## Classiffication Metrics\nClassiffication problems are perhaps the most common type of machine learning problem and as such there are a myriad of metrics that can be used to evaluate predictions for these problems. In this section we will review how to use the following metrics:\n\n* Classiffication Accuracy.\n* Logarithmic Loss.\n* Area Under ROC Curve.\n* Confusion Matrix.\n* Classiffication Report.\n\n## Classiffication Accuracy\nClassiffication accuracy is the number of correct predictions made as a ratio of all predictions made. This is the most common evaluation metric for classification problems, it is also the most misused. It is really only suitable when there are an equal number of observations in each class (which is rarely the case) and that all predictions and prediction errors are equally important, which is often not the case. Below is an example of calculating classiffication accuracy."},{"metadata":{"trusted":true},"cell_type":"code","source":"#classiffication accuracy.\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LogisticRegression()\nscoring = 'accuracy'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"Accuracy:\", (results.mean(), results.std()))\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nclassification_accuracy_report = pd.DataFrame(output)\nclassification_accuracy_report.columns = ['CLASS']\nclassification_accuracy_report.index.name = 'Index'\nclassification_accuracy_report['CLASS'] = classification_accuracy_report['CLASS'].map({0.0:False, 1.0:True})\n\nclassification_accuracy_report.to_csv('classification_accuracy_report.cp.csv')\n\nprint(classification_accuracy_report['CLASS'].unique())\nprint('False: ',classification_accuracy_report.groupby('CLASS').size()[0].sum())\nprint('True: ',classification_accuracy_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Confusion Matrix\nThe confusion matrix is a handy presentation of the accuracy of a model with two or more classes. The table presents predictions on the x-axis and accuracy outcomes on the y-axis. The cells of the table are the number of predictions made by a machine learning algorithm. For example, a machine learning algorithm can predict 0 or 1 and each prediction may actually have been a 0 or 1. Predictions for 0 that were actually 0 appear in the cell for prediction = 0 and actual = 0, whereas predictions for 0 that were actually 1 appear in the cell for prediction = 0 and actual = 1. And so on."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import confusion_matrix\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\n\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\npredicted = model.predict(X_test)\nmatrix = confusion_matrix(Y_test, predicted)\nprint(matrix)\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nconfusion_matrix_report = pd.DataFrame(output)\nconfusion_matrix_report.columns = ['CLASS']\nconfusion_matrix_report.index.name = 'Index'\nconfusion_matrix_report['CLASS'] = confusion_matrix_report['CLASS'].map({0.0:False, 1.0:True})\n\nconfusion_matrix_report.to_csv('confusion_matrix_report.csv')\n\nprint(confusion_matrix_report['CLASS'].unique())\nprint('False: ',confusion_matrix_report.groupby('CLASS').size()[0].sum())\nprint('True: ',confusion_matrix_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication Report\nThe scikit-learn library provides a convenience report when working on classiffication problems to give you a quick idea of the accuracy of a model using a number of measures. The classification report() function displays the precision, recall, F1-score and support for each class. "},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import classification_report\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\npredicted = model.predict(X_test)\nreport = classification_report(Y_test, predicted)\nprint(report)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nClassification_report = pd.DataFrame(output)\nClassification_report.columns = ['CLASS']\nClassification_report.index.name = 'Index'\nClassification_report['CLASS'] = Classification_report['CLASS'].map({0.0:False, 1.0:True})\n\nClassification_report.to_csv('Classification_report.csv')\n\nprint(Classification_report['CLASS'].unique())\nprint('False: ',Classification_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Classification_report.groupby('CLASS').size()[1].sum())\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Spot-Check Classiffication Algorithms.\nSpot-checking is a way of discovering which algorithms perform well on your machine learning problem. You cannot know which algorithms are best suited to your problem beforehand. You must trial a number of \nmethods and focus attention on those that prove themselves the most promising.\n\n1. How to spot-check machine learning algorithms on a classification problem.\n2. How to spot-check two linear classification algorithms.\n3. How to spot-check four nonlinear classification algorithms.\n\n## Algorithm Spot-Checking\nYou cannot know which algorithm will work best on your dataset beforehand. You must use trial and error to discover a shortlist of algorithms that do well on your problem that you can then double down on and tune further. I call this process spot-checking. The question is not: What algorithm should I use on my dataset? Instead it is: What algorithms should I spot-check on my dataset? You can guess at what algorithms might do well on your dataset, and this can be a good starting point. I recommend trying a mixture of algorithms and see what is good at picking out the structure in your data. Below are some suggestions when spot-checking algorithms on your dataset:\n\nTry a mixture of algorithm representations (e.g. instances and trees).\n\nTry a mixture of learning algorithms (e.g. di\u000berent algorithms for learning the same type of representation).\n\nTry a mixture of modeling types (e.g. linear and nonlinear functions or parametric and nonparametric).\n\nAlgorithms Overview\nWe are going to take a look at six classification algorithms that you can spot-check on your dataset. Starting with two linear machine learning algorithms:\n\nLogistic Regression.\nLinear Discriminant Analysis.\nThen looking at four nonlinear machine learning algorithms:\n\nk-Nearest Neighbors.\nNaive Bayes.\nClassi\fcation and Regression Trees.\nSupport Vector Machines.\nLinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use two linear machine learning algorithms: logistic regression and linear discriminant analysis.\n\nLogistic Regression\nLogistic regression assumes a Gaussian distribution for the numeric input variables and can model binary classiffication problems. You can construct a logistic regression model using the LogisticRegression class."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Logistic Regression Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLogisticRegression = pd.DataFrame(output)\nLogisticRegression.columns = ['CLASS']\nLogisticRegression.index.name = 'Index'\nLogisticRegression['CLASS'] = LogisticRegression['CLASS'].map({0.0:False, 1.0:True})\n\nLogisticRegression.to_csv('LogisticRegression.csv')\n\nprint(LogisticRegression['CLASS'].unique())\nprint('False: ',LogisticRegression.groupby('CLASS').size()[0].sum())\nprint('True: ',LogisticRegression.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Linear Discriminant Analysis\nLinear Discriminant Analysis or LDA is a statistical technique for binary and multiclass classiffication. It too assumes a Gaussian distribution for the numerical input variables. You can construct an LDA model using the LinearDiscriminantAnalysis class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearDiscriminantAnalysis()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLinearDiscriminantAnalysis = pd.DataFrame(output)\nLinearDiscriminantAnalysis.columns = ['CLASS']\nLinearDiscriminantAnalysis.index.name = 'Index'\nLinearDiscriminantAnalysis['CLASS'] = LinearDiscriminantAnalysis['CLASS'].map({0.0:False, 1.0:True})\n\nLinearDiscriminantAnalysis.to_csv('LinearDiscriminantAnalysis.csv')\n\nprint(LinearDiscriminantAnalysis['CLASS'].unique())\nprint('False: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[0].sum())\nprint('True: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Nonlinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use 4 nonlinear machine learning algorithms.\n\n## k-Nearest Neighbors\nThe k-Nearest Neighbors algorithm (or KNN) uses a distance metric to find the k most similar instances in the training data for a new instance and takes the mean outcome of the neighbors as the prediction. You can construct a KNN model using the KNeighborsClassifier class."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = KNeighborsClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nk_nearest = pd.DataFrame(output)\nk_nearest.columns = ['CLASS']\nk_nearest.index.name = 'Index'\nk_nearest['CLASS'] = k_nearest['CLASS'].map({0.0:False, 1.0:True})\n\nk_nearest.to_csv('k_nearest.csv')\n\nprint(k_nearest['CLASS'].unique())\nprint('False: ',k_nearest.groupby('CLASS').size()[0].sum())\nprint('True: ',k_nearest.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Naive Bayes\nNaive Bayes calculates the probability of each class and the conditional probability of each class given each input value. These probabilities are estimated for new data and multiplied together, assuming that they are all independent (a simple or naive assumption). When working with real-valued data, a Gaussian distribution is assumed to easily estimate the probabilities for input variables using the Gaussian Probability Density Function. You can construct a Naive Bayes model using the GaussianNB class4."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.naive_bayes import GaussianNB\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = GaussianNB()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nnaive_bayes = pd.DataFrame(output)\nnaive_bayes.columns = ['CLASS']\nnaive_bayes.index.name = 'Index'\nnaive_bayes['CLASS'] = naive_bayes['CLASS'].map({0.0:False, 1.0:True})\n\nnaive_bayes.to_csv('naive_bayes_nb.csv')\n\nprint(naive_bayes['CLASS'].unique())\nprint('False: ',naive_bayes.groupby('CLASS').size()[0].sum())\nprint('True: ',naive_bayes.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nDecisionTree_report = pd.DataFrame(output)\nDecisionTree_report.columns = ['CLASS']\nDecisionTree_report.index.name = 'Index'\nDecisionTree_report['CLASS'] = DecisionTree_report['CLASS'].map({0.0:False, 1.0:True})\n\nDecisionTree_report.to_csv('DecisionTree_report_dt.csv')\n\nprint(DecisionTree_report['CLASS'].unique())\nprint('False: ',DecisionTree_report.groupby('CLASS').size()[0].sum())\nprint('True: ',DecisionTree_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Support Vector Machines\nSupport Vector Machines (or SVM) seek a line that best separates two classes. Those data instances that are closest to the line that best separates the classes are called support vectors and in uence where the line is placed. SVM has been extended to support multiple classes. Of particular importance is the use of di\u000berent kernel functions via the kernel parameter."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10)\nmodel = SVC()\nscoring = 'acuracy'\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nfinalreport1 = pd.DataFrame(output)\nfinalreport1.columns = ['CLASS']\nfinalreport1.index.name = 'Index'\nfinalreport1['CLASS'] = finalreport1['CLASS'].map({0.0:False, 1.0:True})\n\nfinalreport1.to_csv('finalreport1_sv.csv')\n\nprint(finalreport1['CLASS'].unique())\nprint('False: ',finalreport1.groupby('CLASS').size()[0].sum())\nprint('True: ',finalreport1.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Regression Metrics\nIn this section will review 3 of the most common metrics for evaluating predictions on regression\nmachine learning problems:\n- Mean Absolute Error.\n- Mean Squared Error.\n- R2.\n\n## Mean Absolute Error\nThe Mean Absolute Error (or MAE) is the sum of the absolute di\u000berences between predictions\nand actual values. It gives an idea of how wrong the predictions were. The measure gives an\nidea of the magnitude of the error, but no idea of the direction (e.g. over or under predicting).\nThe example below demonstrates calculating mean absolute error on the Boston house price\ndataset."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'neg_mean_absolute_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MAE:\",(results.mean(), results.std()))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Mean Squared Error\nThe Mean Squared Error (or MSE) is much like the mean absolute error in that it provides a gross idea of the magnitude of error. Taking the square root of the mean squared error converts the units back to the original units of the output variable and can be meaningful for description and presentation. This is called the Root Mean Squared Error (or RMSE). The example below provides a demonstration of calculating mean squared error."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression MSE\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'neg_mean_squared_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MSE:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"This metric too is inverted so that the results are increasing. Remember to take the absolute value before taking the square root if you are interested in calculating the RMSE.\n\n## R2 Metric\nThe R2 (or R Squared) metric provides an indication of the goodness of fit of a set of predictions to the actual values. In statistical literature this measure is called the coefficient of determination. This is a value between 0 and 1 for no-fit and perfect fit respectively. The example below provides a demonstration of calculating the mean R2 for a set of predictions."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression R^2\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'r2'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"R^2M:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# d) Compare Algorithms\n## Compare Machine Learning Algorithms\nIt is important to compare the performance of multiple di\u000berent machine learning algorithms\nconsistently. In this chapter you will discover how you can create a test harness to compare\nmultiple different machine learning algorithms in Python with scikit-learn. You can use this\ntest harness as a template on your own machine learning problems and add more and different\nalgorithms to compare. After completing this lesson you will know:\n\n1. How to formulate an experiment to directly compare machine learning algorithms.\n2. A reusable template for evaluating the performance of multiple algorithms on one dataset.\n3. How to report and visualize the results when comparing algorithm performance.\n\n\n### Choose The Best Machine Learning Model\nWhen you work on a machine learning project, you often end up with multiple good models\nto choose from. Each model will have different performance characteristics. Using resampling\nmethods like cross validation, you can get an estimate for how accurate each model may be on\nunseen data. You need to be able to use these estimates to choose one or two best models from\nthe suite of models that you have created.\nWhen you have a new dataset, it is a good idea to visualize the data using different techniques\nin order to look at the data from diferent perspectives. The same idea applies to model selection.\nYou should use a number of di\u000berent ways of looking at the estimated accuracy of your machine\nlearning algorithms in order to choose the one or two algorithm to finalize. A way to do this is\nto use visualization methods to show the average accuracy, variance and other properties of the\ndistribution of model accuracies. In the next section you will discover exactly how you can do\nthat in Python with scikit-learn.\n\n\n### Compare Machine Learning Algorithms Consistently\nThe key to a fair comparison of machine learning algorithms is ensuring that each algorithm is\nevaluated in the same way on the same data. You can achieve this by forcing each algorithm to be evaluated on a consistent test harness. In the example below six different classiffication\nalgorithms are compared on a single dataset:\n\n- Logistic Regression.\n- Linear Discriminant Analysis.\n- k-Nearest Neighbors.\n- Classiffication and Regression Trees.\n- Naive Bayes.\n- Support Vector Machines.\n\nThe dataset is the Pima Indians onset of diabetes problem. The problem has two classes and\neight numeric input variables of varying scales. The 10-fold cross validation procedure is used to\nevaluate each algorithm, importantly con\fgured with the same random seed to ensure that the\nsame splits to the training data are performed and that each algorithm is evaluated in precisely\nthe same way. Each algorithm is given a short name, useful for summarizing results afterward."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Compare Algorithms\nfrom pandas import read_csv\nfrom matplotlib import pyplot\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n# load dataset\narray = Train.values\n\n#split the dataset \nX = array[:,0:11]\nY = array[:,11]\n\n# prepare models and add them to a list\nmodels = []\nmodels.append(('LR', LogisticRegression()))\nmodels.append(('LDA', LinearDiscriminantAnalysis()))\nmodels.append(('KNN', KNeighborsClassifier()))\nmodels.append(('CART', DecisionTreeClassifier()))\nmodels.append(('NB', GaussianNB()))\nmodels.append(('SVM', SVC()))\n\n# evaluate each model in turn\nresults = []\nnames = []\nscoring = 'accuracy'\n\nfor name, model in models:\n kfold = KFold(n_splits=10, random_state=42)\n cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n results.append(cv_results)\n names.append(name)\n msg = (name, cv_results.mean(), cv_results.std())\n print(msg)\n\n# boxplot algorithm comparison\nfig = pyplot.figure()\nfig.suptitle('Algorithm Comparison')\nax = fig.add_subplot(111)\npyplot.boxplot(results)\nax.set_xticklabels(names)\npyplot.show()\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\ncompare_testmethods_report = pd.DataFrame(output)\ncompare_testmethods_report.columns = ['CLASS']\ncompare_testmethods_report.index.name = 'Index'\ncompare_testmethods_report['CLASS'] = compare_testmethods_report['CLASS'].map({0.0:False, 1.0:True})\n\ncompare_testmethods_report.to_csv('compare_testmethods_report.csv')\n\nprint(compare_testmethods_report['CLASS'].unique())\nprint('False: ',compare_testmethods_report.groupby('CLASS').size()[0].sum())\nprint('True: ',compare_testmethods_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Automate Machine Learning Workflows with Pipelines\n\nThere are standard work\nows in a machine learning project that can be automated. In Python\nscikit-learn, Pipelines help to clearly define and automate these work\nows. In this chapter you\nwill discover Pipelines in scikit-learn and how you can automate common machine learning\nwork\nows. After completing this lesson you will know:\n\n1. How to use pipelines to minimize data leakage.\n2. How to construct a data preparation and modeling pipeline.\n3. How to construct a feature extraction and modeling pipeline.\n\n### Automating Machine Learning Workflows\nThere are standard work\nows in applied machine learning. Standard because they overcome\ncommon problems like data leakage in your test harness. Python scikit-learn provides a Pipeline\nutility to help automate machine learning work\nows. Pipelines work by allowing for a linear\nsequence of data transforms to be chained together culminating in a modeling process that can\nbe evaluated.\n\nThe goal is to ensure that all of the steps in the pipeline are constrained to the data available\nfor the evaluation, such as the training dataset or each fold of the cross validation procedure.\nYou can learn more about Pipelines in scikit-learn by reading the Pipeline section1 of the user\nguide. You can also review the API documentation for the Pipeline and FeatureUnion classes\nand the pipeline module2.\n\n### Data Preparation and Modeling Pipeline\nAn easy trap to fall into in applied machine learning is leaking data from your training dataset\nto your test dataset. To avoid this trap you need a robust test harness with strong separation of training and testing. This includes data preparation. Data preparation is one easy way to leak\nknowledge of the whole training dataset to the algorithm. For example, preparing your data\nusing normalization or standardization on the entire training dataset before learning would not\nbe a valid test because the training dataset would have been in\nuenced by the scale of the data\nin the test set.\n\n\nPipelines help you prevent data leakage in your test harness by ensuring that data preparation\nlike standardization is constrained to each fold of your cross validation procedure. \n1. Standardize the data.\n2. Learn a Linear Discriminant Analysis model.\n\nThe pipeline is then evaluated using 10-fold cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Create a pipeline that standardizes the data then creates a model\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\n# load data\n\n#dataframe = read_csv('diabetes.csv')\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\n# create pipeline\nestimators = []\nestimators.append(('standardize', StandardScaler()))\nestimators.append(('lda', LinearDiscriminantAnalysis()))\nmodel = Pipeline(estimators)\n\n\n# evaluate pipeline\nkfold = KFold(n_splits=10, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nstandarzied_pipeline_report = pd.DataFrame(output)\nstandarzied_pipeline_report.columns = ['CLASS']\nstandarzied_pipeline_report.index.name = 'Index'\nstandarzied_pipeline_report['CLASS'] = standarzied_pipeline_report['CLASS'].map({0.0:False, 1.0:True})\n\nstandarzied_pipeline_report.to_csv('standarzied_pipeline_report.csv')\n\nprint(standarzied_pipeline_report['CLASS'].unique())\nprint('False: ',standarzied_pipeline_report.groupby('CLASS').size()[0].sum())\nprint('True: ',standarzied_pipeline_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 5. Improve Accuracy\n# a) Algorithm Tuning\n# b) Ensembles\n\n# Improve Performance with Ensembles\n\nEnsembles can give you a boost in accuracy on your dataset. In this chapter you will discover\nhow you can create some of the most powerful types of ensembles in Python using scikit-learn.\nThis lesson will step you through Boosting, Bagging and Majority Voting and show you how you\ncan continue to ratchet up the accuracy of the models on your own datasets. After completing\nthis lesson you will know:\n\n1. How to use bagging ensemble methods such as bagged decision trees, random forest and extra trees.\n2. How to use boosting ensemble methods such as AdaBoost and stochastic gradient boosting.\n3. How to use voting ensemble methods to combine the predictions from multiple algorithms.\n\n### Combine Models Into Ensemble Predictions\nThe three most popular methods for combining the predictions from different models are:\n\n- Bagging. Building multiple models (typically of the same type) from different subsamples of the training dataset.\n- Boosting. Building multiple models (typically of the same type) each of which learns to fix the prediction errors of a prior model in the sequence of models.\n- Voting. Building multiple models (typically of di\u000bering types) and simple statistics (like calculating the mean) are used to combine predictions.\n\nThis assumes you are generally familiar with machine learning algorithms and ensemble\nmethods and will not go into the details of how the algorithms work or their parameters.\nThe Pima Indians onset of Diabetes dataset is used to demonstrate each algorithm. Each\nensemble algorithm is demonstrated using 10-fold cross validation and the classiffication accuracy\nperformance metric.\n"},{"metadata":{},"cell_type":"markdown","source":"# Boosting Algorithms\nBoosting ensemble algorithms creates a sequence of models that attempt to correct the mistakes\nof the models before them in the sequence. Once created, the models make predictions which\nmay be weighted by their demonstrated accuracy and the results are combined to create a final\noutput prediction. The two most common boosting ensemble machine learning algorithms are:\n\n- AdaBoost.\n- Stochastic Gradient Boosting.\n\n\n### AdaBoost\nAdaBoost was perhaps the \frst successful boosting ensemble algorithm. It generally works\nby weighting instances in the dataset by how easy or dificult they are to classify, allowing\nthe algorithm to pay or less attention to them in the construction of subsequent models. You\ncan construct an AdaBoost model for classi\fcation using the AdaBoostClassifier class4. The\nexample below demonstrates the construction of 30 decision trees in sequence using the AdaBoost\nalgorithm."},{"metadata":{"trusted":true},"cell_type":"code","source":"# AdaBoost Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 30\n\n\nkfold = KFold(n_splits=10, random_state=seed)\n\nmodel = AdaBoostClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nAdaBoost_report = pd.DataFrame(output)\nAdaBoost_report.columns = ['CLASS']\nAdaBoost_report.index.name = 'Index'\nAdaBoost_report['CLASS'] = AdaBoost_report['CLASS'].map({0.0:False, 1.0:True})\n\nAdaBoost_report.to_csv('AdaBoost_report.csv')\n\nprint(AdaBoost_report['CLASS'].unique())\nprint('False: ',AdaBoost_report.groupby('CLASS').size()[0].sum())\nprint('True: ',AdaBoost_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles. You can construct a\nGradient Boosting model for classiffication using the GradientBoostingClassifier class5. The\nexample below demonstrates Stochastic Gradient Boosting for classification with 100 trees"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## XGB"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic X Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom xgboost import XGBClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = XGBClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Voting Ensemble\nVoting is one of the simplest ways of combining the predictions from multiple machine learning\nalgorithms. It works by first creating two or more standalone models from your training dataset.\nA Voting Classiffier can then be used to wrap your models and average the predictions of the\nsub-models when asked to make predictions for new data. The predictions of the sub-models can\nbe weighted, but specifying the weights for classiffiers manually or even heuristically is difficult.\nMore advanced methods can learn how to best weight the predictions from sub-models, but this\nis called stacking (stacked aggregation) and is currently not provided in scikit-learn.\nYou can create a voting ensemble model for classiffication using the VotingClassifier\nclass6. The code below provides an example of combining the predictions of logistic regression,\nclassiffication and regression trees and support vector machines together for a classiffication\nproblem."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Voting Ensemble for Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom xgboost import XGBClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import VotingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\n\n# create the sub models\nestimators = []\nmodel1 = LogisticRegression()\nestimators.append(('logistic', model1))\n\nmodel2 = DecisionTreeClassifier()\nestimators.append(('cart', model2))\n\nmodel3 = SVC()\nestimators.append(('svm', model3))\n\nmodel4 = XGBClassifier()\nestimators.append(('xgb', model4))\n\nmodel5 = RandomForestClassifier()\nestimators.append(('rfc', model5))\n\n# create the ensemble model\nensemble = VotingClassifier(estimators)\nresults = cross_val_score(ensemble, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nVoting_Ensemble_report = pd.DataFrame(output)\nVoting_Ensemble_report.columns = ['CLASS']\nVoting_Ensemble_report.index.name = 'Index'\nVoting_Ensemble_report['CLASS'] = Voting_Ensemble_report['CLASS'].map({0.0:False, 1.0:True})\n\nVoting_Ensemble_report.to_csv('Voting_Ensemble_report.csv')\n\nprint(Voting_Ensemble_report['CLASS'].unique())\nprint('False: ',Voting_Ensemble_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Voting_Ensemble_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Extra Trees\nExtra Trees are another modi\fcation of bagging where random trees are constructed from\nsamples of the training dataset. You can construct an Extra Trees model for classiffication using\nthe ExtraTreesClassifier class3. The example below provides a demonstration of extra trees\nwith the number of trees set to 100 and splits chosen from 7 random features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import ExtraTreesClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n#let's read the data\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 100\nmax_features = 7\n\nkfold = KFold(n_splits=10, random_state=42)\n\nmodel = ExtraTreesClassifier(n_estimators=num_trees, max_features=max_features)\n\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nExtra_tree_report = pd.DataFrame(output)\nExtra_tree_report.columns = ['CLASS']\nExtra_tree_report.index.name = 'Index'\nExtra_tree_report['CLASS'] = Extra_tree_report['CLASS'].map({0.0:False, 1.0:True})\n\nExtra_tree_report.to_csv('Extra_tree_report.csv')\n\nprint(Extra_tree_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed =42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nStochastic_report = pd.DataFrame(output)\nStochastic_report.columns = ['CLASS']\nStochastic_report.index.name = 'Index'\nStochastic_report['CLASS'] = Stochastic_report['CLASS'].map({0.0:False, 1.0:True})\n\nStochastic_report.to_csv('Stochastic_report.csv')\n\nprint(Stochastic_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with pickle\nPickle is the standard way of serializing objects in Python. You can use the pickle1 operation\nto serialize your machine learning algorithms and save the serialized format to a file. Later you\ncan load this file to deserialize your model and use it to make new predictions. The example\nbelow demonstrates how you can train a logistic regression model on data set and save the model to file and load it to make predictions on the unseen test set."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using Pickle\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom pickle import dump\nfrom pickle import load\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=42)\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\nfilename = 'finalized_model2.sav'\ndump(model, open(filename, 'wb'))\n\n# some time later...\n# load the model from disk\nloaded_model = load(open(filename, 'rb'))\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\npickle_report = pd.DataFrame(output)\npickle_report.columns = ['CLASS']\npickle_report.index.name = 'Index'\npickle_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n\npickle_report.to_csv('pickle.csv')\n\nprint(pickle_report['CLASS'].unique())\nprint('False: ',pickle_report.groupby('CLASS').size()[0].sum())\nprint('True: ',pickle_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with Joblib\nThe Joblib2 library is part of the SciPy ecosystem and provides utilities for pipelining Python\njobs. It provides utilities for saving and loading Python objects that make use of NumPy data\nstructures, efficiently3. This can be useful for some machine learning algorithms that require a\nlot of parameters or store the entire dataset (e.g. k-Nearest Neighbors). The example below\ndemonstrates how you can train a logistic regression model on the dataset, save the model to file using Joblib and load it to make predictions on the unseen test\nset."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using joblib\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.externals.joblib import dump\nfrom sklearn.externals.joblib import load\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=42)\n\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\n\ndump(model, filename)\n\n# some time later...\n# load the model from disk\nloaded_model = load(filename)\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\njoblib_report = pd.DataFrame(output)\njoblib_report.columns = ['CLASS']\njoblib_report.index.name = 'Index'\njoblib_report['CLASS'] = joblib_report['CLASS'].map({0.0:False, 1.0:True})\n\njoblib_report.to_csv('joblib_report.csv')\n\nprint(joblib_report['CLASS'].unique())\nprint('False: ',joblib_report.groupby('CLASS').size()[0].sum())\nprint('True: ',joblib_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# END OF THE WORK"}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4} \ No newline at end of file From db594ba397a67b63522c19197c6d789c39e89140 Mon Sep 17 00:00:00 2001 From: kakoozatrevor <54304427+kakoozaTrevor@users.noreply.github.com> Date: Mon, 16 Mar 2020 17:00:19 +0300 Subject: [PATCH 4/5] Add files via upload Good evening , have added another file from kaggle notebook withe the following changes made. 1. References. 2. Registration number. in case of any changes let me know . thanks. --- Assignment Colab/kakooza trevor Starter Kernel3.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment Colab/kakooza trevor Starter Kernel3.ipynb diff --git a/Assignment Colab/kakooza trevor Starter Kernel3.ipynb b/Assignment Colab/kakooza trevor Starter Kernel3.ipynb new file mode 100644 index 0000000..9ebf664 --- /dev/null +++ b/Assignment Colab/kakooza trevor Starter Kernel3.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":" # KAKOOZA TREVOR\n## Kaggle assignment\n### started on the 28th /feb/2020\n# Regestration number:2019/HDO7/24847U"},{"metadata":{},"cell_type":"markdown","source":"# 1. Prepare Problem\n### a) Load libraries\n### b) Load dataset"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# Any results you write to the current directory are saved as output.","execution_count":34,"outputs":[{"output_type":"stream","text":"/kaggle/input/amp-data-set/Test.csv\n/kaggle/input/amp-data-set/AMP_TrainSet.csv\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Import the necessary tools required to work on the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#import the necessary libraries you are going to use\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# -----> Put your code here below:\n\n\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns","execution_count":35,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"\n# This first session is about loading the give dataset and viewing them. \n\n* The two data set provided are\n1. test.csv\n2. AMP_TrainSet.csv \n\n### Now load the data set using.\n```\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")\nTest = pd.read_csv(\"../input/amp-data-set/Test.csv\")\n```\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#using pandas we call the data set\nTest = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")","execution_count":36,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 2. Summarize Data\n\n## View the first five raws of the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#head.() is ued to view the first five raws of the data set.\nTest.head()","execution_count":37,"outputs":[{"output_type":"execute_result","execution_count":37,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\n0 4.0 3.704 0.873 73.519 \n1 4.0 4.444 0.892 62.444 \n2 2.0 0.000 0.901 47.000 \n3 4.5 0.000 0.869 69.222 \n4 -4.0 21.591 1.061 71.682 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\n0 0.987 -4.833 0 0.382 \n1 0.931 -0.584 0 0.320 \n2 1.039 -5.664 0 0.164 \n3 0.982 -5.423 0 2.010 \n4 0.976 -2.002 0 2.758 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 \n0 74.556 7.225 1.234 \n1 56.056 4.942 1.853 \n2 47.000 5.969 1.174 \n3 69.222 5.462 1.138 \n4 66.000 5.582 1.453 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104
04.03.7040.87373.5190.987-4.83300.38274.5567.2251.234
14.04.4440.89262.4440.931-0.58400.32056.0564.9421.853
22.00.0000.90147.0001.039-5.66400.16447.0005.9691.174
34.50.0000.86969.2220.982-5.42302.01069.2225.4621.138
4-4.021.5911.06171.6820.976-2.00202.75866.0005.5821.453
\n
"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.head()","execution_count":38,"outputs":[{"output_type":"execute_result","execution_count":38,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\n0 5.0 0.000 0.951 74.842 \n1 4.0 5.405 0.931 71.595 \n2 5.5 5.405 0.873 73.595 \n3 5.0 4.167 0.895 66.250 \n4 7.5 8.537 0.932 64.720 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\n0 0.975 -3.663 0 0.282 \n1 0.957 -4.011 1 0.600 \n2 0.961 -2.512 0 0.593 \n3 0.999 -1.362 0 0.614 \n4 0.979 -2.091 0 0.616 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 CLASS \n0 73.444 5.661 1.041 1 \n1 68.222 6.537 1.453 1 \n2 69.444 4.934 1.722 1 \n3 67.222 4.316 1.382 1 \n4 72.944 4.540 1.539 1 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
05.00.0000.95174.8420.975-3.66300.28273.4445.6611.0411
14.05.4050.93171.5950.957-4.01110.60068.2226.5371.4531
25.55.4050.87373.5950.961-2.51200.59369.4444.9341.7221
35.04.1670.89566.2500.999-1.36200.61467.2224.3161.3821
47.58.5370.93264.7200.979-2.09100.61672.9444.5401.5391
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Shape function\n* This function helps to view the total raws and columns (dimension) of the dataset. "},{"metadata":{"trusted":true},"cell_type":"code","source":"# check the dimensions of your data\n\nTrain.shape, Test.shape\n","execution_count":39,"outputs":[{"output_type":"execute_result","execution_count":39,"data":{"text/plain":"((3038, 12), (758, 11))"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# Data type\n* This returns a Series with the data type of each column."},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.dtypes","execution_count":40,"outputs":[{"output_type":"execute_result","execution_count":40,"data":{"text/plain":"FULL_Charge float64\nFULL_AcidicMolPerc float64\nFULL_AURR980107 float64\nFULL_DAYM780201 float64\nFULL_GEOR030101 float64\nFULL_OOBM850104 float64\nNT_EFC195 int64\nAS_MeanAmphiMoment float64\nAS_DAYM780201 float64\nAS_FUKS010112 float64\nCT_RACS820104 float64\ndtype: object"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.dtypes","execution_count":41,"outputs":[{"output_type":"execute_result","execution_count":41,"data":{"text/plain":"FULL_Charge float64\nFULL_AcidicMolPerc float64\nFULL_AURR980107 float64\nFULL_DAYM780201 float64\nFULL_GEOR030101 float64\nFULL_OOBM850104 float64\nNT_EFC195 int64\nAS_MeanAmphiMoment float64\nAS_DAYM780201 float64\nAS_FUKS010112 float64\nCT_RACS820104 float64\nCLASS int64\ndtype: object"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## isnull().sum\n* This function helps to see if the dataset has any missing values."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.isnull().sum","execution_count":42,"outputs":[{"output_type":"execute_result","execution_count":42,"data":{"text/plain":""},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.isnull().sum()","execution_count":43,"outputs":[{"output_type":"execute_result","execution_count":43,"data":{"text/plain":"FULL_Charge 0\nFULL_AcidicMolPerc 0\nFULL_AURR980107 0\nFULL_DAYM780201 0\nFULL_GEOR030101 0\nFULL_OOBM850104 0\nNT_EFC195 0\nAS_MeanAmphiMoment 0\nAS_DAYM780201 0\nAS_FUKS010112 0\nCT_RACS820104 0\ndtype: int64"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"* When we look at the data ,it shows that both the test and train dataset does not have any missing values"},{"metadata":{},"cell_type":"markdown","source":"## Then in column of class we check and find out,\n* How is the data divied and classified \n* Here the unique function does that."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train['CLASS'].unique()","execution_count":44,"outputs":[{"output_type":"execute_result","execution_count":44,"data":{"text/plain":"array([1, 0])"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# a) Descriptive statistics\n## Descriptive statistics of the data\n* Generate descriptive statistics that summarize the central tendency,\ndispersion and shape of a dataset's distribution, excluding\n``NaN`` values.\n\nAnalyzes both numeric and object series, as well\nas ``DataFrame`` column sets of mixed data types. The output\nwill vary depending on what is provided.\n\n### For example this function will provide the following summary\n* Count.\n* Mean.\n* Standard Deviation.\n* Minimum Value.\n* 25th Percentile.\n* 75th Percentile(Median).\n* Maximum Value.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.describe()","execution_count":45,"outputs":[{"output_type":"execute_result","execution_count":45,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 2.060237 8.521520 0.971410 73.668760 \nstd 3.819929 7.586652 0.107413 8.527489 \nmin -16.000000 0.000000 0.684000 42.750000 \n25% 0.000000 2.516000 0.895000 68.294000 \n50% 2.000000 7.143000 0.963000 74.059500 \n75% 4.000000 13.158000 1.041000 79.343750 \nmax 30.000000 46.667000 1.451000 101.682000 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 0.994007 -2.432927 0.088545 15.683233 \nstd 0.031333 1.707223 0.284133 11.575665 \nmin 0.866000 -10.432000 0.000000 0.041000 \n25% 0.974000 -3.606000 0.000000 5.587500 \n50% 0.994000 -2.296500 0.000000 14.988500 \n75% 1.011000 -1.283250 0.000000 26.807750 \nmax 1.196000 3.576000 1.000000 51.280000 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 CLASS \ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 73.650828 5.911361 1.235255 0.500000 \nstd 9.166092 0.693689 0.210012 0.500082 \nmin 42.778000 3.533000 0.785000 0.000000 \n25% 67.556000 5.459250 1.082000 0.000000 \n50% 73.697000 5.925500 1.184000 0.500000 \n75% 79.778000 6.382000 1.351000 1.000000 \nmax 103.167000 8.662000 2.192000 1.000000 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
count3038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.000000
mean2.0602378.5215200.97141073.6687600.994007-2.4329270.08854515.68323373.6508285.9113611.2352550.500000
std3.8199297.5866520.1074138.5274890.0313331.7072230.28413311.5756659.1660920.6936890.2100120.500082
min-16.0000000.0000000.68400042.7500000.866000-10.4320000.0000000.04100042.7780003.5330000.7850000.000000
25%0.0000002.5160000.89500068.2940000.974000-3.6060000.0000005.58750067.5560005.4592501.0820000.000000
50%2.0000007.1430000.96300074.0595000.994000-2.2965000.00000014.98850073.6970005.9255001.1840000.500000
75%4.00000013.1580001.04100079.3437501.011000-1.2832500.00000026.80775079.7780006.3820001.3510001.000000
max30.00000046.6670001.451000101.6820001.1960003.5760001.00000051.280000103.1670008.6620002.1920001.000000
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# (c)Check the dataset info\n* It gives more information about the number of columns of each variable and the type like float and integers and size of the memory ocuppied."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.info()","execution_count":46,"outputs":[{"output_type":"stream","text":"\nRangeIndex: 3038 entries, 0 to 3037\nData columns (total 12 columns):\nFULL_Charge 3038 non-null float64\nFULL_AcidicMolPerc 3038 non-null float64\nFULL_AURR980107 3038 non-null float64\nFULL_DAYM780201 3038 non-null float64\nFULL_GEOR030101 3038 non-null float64\nFULL_OOBM850104 3038 non-null float64\nNT_EFC195 3038 non-null int64\nAS_MeanAmphiMoment 3038 non-null float64\nAS_DAYM780201 3038 non-null float64\nAS_FUKS010112 3038 non-null float64\nCT_RACS820104 3038 non-null float64\nCLASS 3038 non-null int64\ndtypes: float64(10), int64(2)\nmemory usage: 284.9 KB\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.info()","execution_count":47,"outputs":[{"output_type":"stream","text":"\nRangeIndex: 758 entries, 0 to 757\nData columns (total 11 columns):\nFULL_Charge 758 non-null float64\nFULL_AcidicMolPerc 758 non-null float64\nFULL_AURR980107 758 non-null float64\nFULL_DAYM780201 758 non-null float64\nFULL_GEOR030101 758 non-null float64\nFULL_OOBM850104 758 non-null float64\nNT_EFC195 758 non-null int64\nAS_MeanAmphiMoment 758 non-null float64\nAS_DAYM780201 758 non-null float64\nAS_FUKS010112 758 non-null float64\nCT_RACS820104 758 non-null float64\ndtypes: float64(10), int64(1)\nmemory usage: 65.3 KB\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# b) Data visualizations\n* Here we visualize our data so that ,we can get much meaning out of it.\n* for the class colunm.\n\n\n## Class Distribution\n\nA groupby operation involves some combination of splitting the\nobject, applying a function, and combining the results. This can be\nused to group large amounts of data and compute operations on these\ngroups.\n\n* The type of graph used below is the bar.\n* Then change the color as well using;\n```\ncolor='purple'\n```"},{"metadata":{"trusted":true},"cell_type":"code","source":"\nTrain.groupby('CLASS').size().plot(kind='bar',color='purple') ","execution_count":48,"outputs":[{"output_type":"execute_result","execution_count":48,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Correlations Between Attributes\nIs the a mutual relationship or connection between two or more things.\n\nNote: Correlation refers to the relationship between two variables and how they may or may notchange together. The most common method for calculating correlation is Pearson's Correlation Coefficient, that assumes a normal distribution of the attributes involved.\n\nA correlation of -1 or 1 shows a full negative or positive correlation respectively. Whereas a value of 0 shows no correlation at all. \n\n\nnote: Correlation is a statistical technique that can show whether and how strongly pairs of variables are related. For example, height and weight are related; taller people tend to be heavier than shorter people. The relationship isn't perfect."},{"metadata":{},"cell_type":"markdown","source":"# Explanation on the train data as far as correlation is concerned.\n\n## For example;\n ## * full_charge has a slight correlation with full_charge but then there is no correlation with full_acidicmolperc(negative)."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.corr(method='pearson')","execution_count":49,"outputs":[{"output_type":"execute_result","execution_count":49,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 \\\nFULL_Charge 1.000000 -0.612996 -0.490977 \nFULL_AcidicMolPerc -0.612996 1.000000 0.794796 \nFULL_AURR980107 -0.490977 0.794796 1.000000 \nFULL_DAYM780201 -0.434603 0.541481 0.548253 \nFULL_GEOR030101 -0.058725 0.115201 0.346139 \nFULL_OOBM850104 -0.283758 0.513344 0.462712 \nNT_EFC195 0.088068 -0.143168 -0.169540 \nAS_MeanAmphiMoment 0.355477 -0.431590 -0.426097 \nAS_DAYM780201 -0.365374 0.449621 0.456260 \nAS_FUKS010112 -0.090570 0.002334 0.032958 \nCT_RACS820104 0.232929 -0.213543 -0.403599 \nCLASS 0.534602 -0.598816 -0.584111 \n\n FULL_DAYM780201 FULL_GEOR030101 FULL_OOBM850104 \\\nFULL_Charge -0.434603 -0.058725 -0.283758 \nFULL_AcidicMolPerc 0.541481 0.115201 0.513344 \nFULL_AURR980107 0.548253 0.346139 0.462712 \nFULL_DAYM780201 1.000000 0.010118 0.334778 \nFULL_GEOR030101 0.010118 1.000000 0.319157 \nFULL_OOBM850104 0.334778 0.319157 1.000000 \nNT_EFC195 -0.090058 -0.230417 -0.230561 \nAS_MeanAmphiMoment -0.408793 -0.160269 -0.336297 \nAS_DAYM780201 0.894191 -0.029085 0.275640 \nAS_FUKS010112 0.055915 0.040480 -0.452769 \nCT_RACS820104 -0.326792 -0.151935 0.155304 \nCLASS -0.554838 -0.260470 -0.453287 \n\n NT_EFC195 AS_MeanAmphiMoment AS_DAYM780201 \\\nFULL_Charge 0.088068 0.355477 -0.365374 \nFULL_AcidicMolPerc -0.143168 -0.431590 0.449621 \nFULL_AURR980107 -0.169540 -0.426097 0.456260 \nFULL_DAYM780201 -0.090058 -0.408793 0.894191 \nFULL_GEOR030101 -0.230417 -0.160269 -0.029085 \nFULL_OOBM850104 -0.230561 -0.336297 0.275640 \nNT_EFC195 1.000000 0.178683 -0.036844 \nAS_MeanAmphiMoment 0.178683 1.000000 -0.322378 \nAS_DAYM780201 -0.036844 -0.322378 1.000000 \nAS_FUKS010112 0.145924 0.025580 0.045562 \nCT_RACS820104 0.080898 0.171524 -0.256060 \nCLASS 0.260702 0.693552 -0.437168 \n\n AS_FUKS010112 CT_RACS820104 CLASS \nFULL_Charge -0.090570 0.232929 0.534602 \nFULL_AcidicMolPerc 0.002334 -0.213543 -0.598816 \nFULL_AURR980107 0.032958 -0.403599 -0.584111 \nFULL_DAYM780201 0.055915 -0.326792 -0.554838 \nFULL_GEOR030101 0.040480 -0.151935 -0.260470 \nFULL_OOBM850104 -0.452769 0.155304 -0.453287 \nNT_EFC195 0.145924 0.080898 0.260702 \nAS_MeanAmphiMoment 0.025580 0.171524 0.693552 \nAS_DAYM780201 0.045562 -0.256060 -0.437168 \nAS_FUKS010112 1.000000 -0.445284 0.033432 \nCT_RACS820104 -0.445284 1.000000 0.267652 \nCLASS 0.033432 0.267652 1.000000 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
FULL_Charge1.000000-0.612996-0.490977-0.434603-0.058725-0.2837580.0880680.355477-0.365374-0.0905700.2329290.534602
FULL_AcidicMolPerc-0.6129961.0000000.7947960.5414810.1152010.513344-0.143168-0.4315900.4496210.002334-0.213543-0.598816
FULL_AURR980107-0.4909770.7947961.0000000.5482530.3461390.462712-0.169540-0.4260970.4562600.032958-0.403599-0.584111
FULL_DAYM780201-0.4346030.5414810.5482531.0000000.0101180.334778-0.090058-0.4087930.8941910.055915-0.326792-0.554838
FULL_GEOR030101-0.0587250.1152010.3461390.0101181.0000000.319157-0.230417-0.160269-0.0290850.040480-0.151935-0.260470
FULL_OOBM850104-0.2837580.5133440.4627120.3347780.3191571.000000-0.230561-0.3362970.275640-0.4527690.155304-0.453287
NT_EFC1950.088068-0.143168-0.169540-0.090058-0.230417-0.2305611.0000000.178683-0.0368440.1459240.0808980.260702
AS_MeanAmphiMoment0.355477-0.431590-0.426097-0.408793-0.160269-0.3362970.1786831.000000-0.3223780.0255800.1715240.693552
AS_DAYM780201-0.3653740.4496210.4562600.894191-0.0290850.275640-0.036844-0.3223781.0000000.045562-0.256060-0.437168
AS_FUKS010112-0.0905700.0023340.0329580.0559150.040480-0.4527690.1459240.0255800.0455621.000000-0.4452840.033432
CT_RACS8201040.232929-0.213543-0.403599-0.326792-0.1519350.1553040.0808980.171524-0.256060-0.4452841.0000000.267652
CLASS0.534602-0.598816-0.584111-0.554838-0.260470-0.4532870.2607020.693552-0.4371680.0334320.2676521.000000
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Plotting to show the correlation\n\nplot a heat map to show us the correlation of the data.\n\nWith the help of ; seaborn\nthe we can use spearman or pearson method.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns\n#The first step is to choose the figure size then use the heatmap to plot.\nplt.figure(figsize=(9,9)) #the size choosen is 9,9\nsns.heatmap(Train.corr(method='pearson'))","execution_count":50,"outputs":[{"output_type":"execute_result","execution_count":50,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## We can also check the correlation in regards to the CLASS"},{"metadata":{"trusted":true},"cell_type":"code","source":"\nTrain.corr(method='pearson')['CLASS'].sort_values","execution_count":51,"outputs":[{"output_type":"execute_result","execution_count":51,"data":{"text/plain":""},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# Skew of Univariate Distributions\n### Definition of skew.\n* Is the suddenly change direction or position.\n* or Skew refers to a distribution that is assumed Gaussian (normal or bell curve) that is shifted or squashed in one direction or another. \n\n\nYou can calculate the skew of each attribute using the skew() function on the Pandas DataFrame.\n\n#### NOTE: If skewness value lies above +1 or below -1, data is highly skewed. If it lies between +0.5 to -0.5, it is moderately skewed. If the value is 0, then the data is symmetric\n\n### Positively skewed data:\nIf tail is on the right as that of the second image in the figure, it is right skewed data. It is also called positive skewed data. Common transformations of this data include square root, cube root, and log.\n\n### Cube root transformation:\nThe cube root transformation involves converting x to 𝑥(1/3) . This is a fairly strong transformation with a substantial effect on distribution shape: but is weaker than the logarithm. It can be applied to negative and zero values too. Negatively skewed data.\n\n### Square root transformation:\nApplied to positive values only. Hence, observe the values of column before applying.\n\n### Logarithm transformation:\nThe logarithm, x to log base 10 of x, or x to log base e of x (ln x), or x to log base 2 of x, is a strong transformation and can be used to reduce right skewness.\n\n### Negatively skewed data:\nIf the tail is to the left of data, then it is called left skewed data. It is also called negatively skewed data. Common transformations include square , cube root and logarithmic. We will discuss what square transformation is as others are already discussed."},{"metadata":{},"cell_type":"markdown","source":"# We can you several graphs like bar and line as shown below.\n# BAR GRAPH FOR SKEWNESS"},{"metadata":{"trusted":true},"cell_type":"code","source":"#the below command help to increase the size of the figure for better view\nfrom pylab import rcParams\nrcParams['figure.figsize'] = 10, 11\n\n#Train.skew().plot(kind='line', color='green')\nTrain.skew().plot(kind='bar', color='green')\n#When we look to the data its highly positively skewed mostly at the NT_EFC195\n\n","execution_count":52,"outputs":[{"output_type":"execute_result","execution_count":52,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# LINE GRAPH FOR SKEWNESS\n\n### A distribution is positively skewed if the scores fall toward the lower side of the scale and there are very few higher scores. Positively skewed data is also referred to as skewed to the right because that is the direction of the 'long tail end' of the chart.\n\n## NOTE:since my data is highly positively skewed it means, it highly import to use\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#the below command help to increase the size of the figure for better view\nfrom pylab import rcParams\nrcParams['figure.figsize'] = 10, 11\n\nTrain.skew().plot(kind='line', color='RED')\n#When we look to the data its highly positively skewed mostly at the NT_EFC195\n","execution_count":53,"outputs":[{"output_type":"execute_result","execution_count":53,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Data With Visualization using;.\n1. Histograms.\n2. Density Plots.\n3. Box and Whisker Plots.\n\n\n\n# Histograms.\nis only used to plot the frequency of score occurrences in a continuous data set that has been divided into classes, called bins."},{"metadata":{"trusted":true},"cell_type":"code","source":"#Histogram\nplt.figure(figsize=(16,16)) #Size change\nTrain.hist()#type of graph\nplt.subplots_adjust(bottom=1, right=3, top=3)\nplt.show()","execution_count":54,"outputs":[{"output_type":"display_data","data":{"text/plain":"
"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Density Plots\n\nA Density Plot visualises the distribution of data over a continuous interval or time period. This chart is a variation of a Histogram that uses kernel smoothing to plot values, allowing for smoother distributions by smoothing out the noise.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# we plot 3 by 4 i tems\nTrain.plot(kind='density', subplots=True, layout=(3,4), sharex=False,)\nplt.show\n","execution_count":55,"outputs":[{"output_type":"execute_result","execution_count":55,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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ZeTIkc1kvPnmmyU9Pb2FnOXl5TJ9+nTJzs6W6dOnS0VFhYiIPPXUU56/7dixY8VkMkl5eXmLv1Mga5F7/gT6E4w5FOr544shQ4ZIbm6u5ObmypgxY+TXv/61NDQ0iIiI7fgJqdu9W55++mmJi4uT06eNeXfy5EnJysqSEydOeM7zk5/8RH7729/KJ598IoAsWbLEOMex4/L5m28K4Jl7c+bM8dzjkCFDJC8vzxhrs8kPfvADyc3NldGjR8sTTzzhOf+6detk5MiRMnz4cPntb3/r2f7d735XRo4cKWPHjpWbb75ZbDabiBjP35/97GcyfPhwGTdunGzdutVzzIwZMyQlJUX+8z//s82/TWeeaf42cn9KKdVbKRWjlPpIKVWmlPp+yDTIKCUhIYE33v8XH2/czI4dO8jKymq2XymFQkEQDWu33HILqampFBUVUVBQwNKlSykr63zLOrvrDaop9957L9XV1TQ2NnLZZZfRr18/Xn311U5fKyJwBMENajLBgFw4odtOtca9994LYOrIWlZdXZ18+vTptDNnzvTavXt3zu7du3MqKioCa6TZQRISEtixY4fnx3tN6CwOMdxJ3jFry5cv56KLLmL58uV+n8uEifsevo8dO3bwxz/+kdtuu63Z/tdee42dO3dy++23c8899wBGF4F77rmHjz76iIKCAk6ePMlHH30EwGOPPcacOXPYvn07K1as4PbbbwegsLCQFStWUFBQwPr167n99ttxuNxiCxYsYP369S1ke/LJJ7nssssoKirisssuY+bMmVRXV/OLX/yCtLQ0jh49yhVXXMG0adNITY2cotKhnj+t8cknn7Br1y42b97MwYMHufXWWwHDDapiYlixYgWTJk3irbfeAqB///7cd9993H333QBs27aNzz77jLvuuguAcePGsXLlSuPkZjOr3n2XvLw8z/VWrlzpucfZs2e7i1+zatUqrFYru3btYuvWrTz33HMUFxfjcDhYuHAh69ato7CwkOXLl1NYWAjA9773Pfbu3cuuXbuor69nyZIlAKxbt46ioiKKiop4/vnn3X2GAbjnnntYtmxZCP+i/hfFvUJE7lVKXQscBW4APgEi8kn78DsFFB5vs4xSh8k5tzcPXTnWr7GtxazB2bi1YHDgwAE2bdrEa6+9hsmVgTps2DCGDRvmmdA//vGP+fe//83AgQNZs2YN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c+/evZ1TU3joah0bBuwBUEr5gEagrFObc4H14YSaiFwpImtFZG0m4+S8Xm9KVr/269cP0L/T4QjGrHVGRHK+5FSshdz/R0SKRcQqIn8XkcMiclESrn8qsFMp9UUSzpUUHA4HGzZsCP1VVlam/JqXX345paWlfPTeetau/pjly5d3GMyjR4/u0Kf5538XpRSXXXYZo0aNYufOnezcuZORI0dy+eWXdznu008/paamhr/85S8AbN68meeff57q6mqWL1/ONddcg9/vx2az8c4777Bx40Y2bNjA8uXL+eijjwD46U9/yg033MD27dvp168fjz+uFwMYMWIES5Ys4bvf/W6H11RXV8ddd93FqlWrWL16NXfddRc/+clPaGpq4pvf/CaVlZW0trby9NNPp/rtTSuZGD/RxoHT6WTevHnceuutbNu2jX+sXMHadRv43e9+Fzp+/vz5bNiwgerqavLy8njhhSOG78mTJ/P8888D+oT5t+UrmBBYMefz+bjuuut49913+eSTT5gyZQqLFy8OHXvDDTeE3odgTqtIYw/g+9//PsuXL+/y+u677z5OPfVUtm/fzqmnnsp9990X2uf3+/npT3/KnDlzYnqvbrnlFgBTCuayzBJt7UAoZi25as1ms/HKK690udH42c9+Fvrc238ffvKTn0Q8V/uxsmHDhpAF5sQTTwxte/vttwF48803eeihh3jrrbeorq5m3bp1lJSUADBp0iReeeUVTjrppA7nD978fvrpp6xcuZL58+fT0NCA1+tl48aNHDhwgJtvvpkNGzZ0KJ3Ungjxmp03hvsUQm1EZCK6a/RHEa7xB6XUDKXUjPLy8rD9SAepEmv9+/fHZDKFFcRKqYgxa2CUnIE6htUAACAASURBVIrVF3K6UuoWETkHCNZgfBdI9Jd2AfBcuB3VKw8Xr3nh4HRBlMVidZvEFHYZms/vs/o1X2BUKbYWrIt4sQHDCznxgvClMDLFzp07Wb16NY//YQmt9R7EJJSXl/PTn/404jEiws6dO/n44487/LD+/Oc/p6qqip07d2I2m0PbzWYzs2bNYu/evQAsXbqUBQsWYLPZGDlyJFVVVaxevZrjjz8+VBLE6/Xi9Xr1+DileOedd3j22WcBPUh30aJFXH311SEx0tlcvmLFCmbPnh0yac+ePZtly5bx8MMPc+jQIUaNGsW6dev41a9+xUUXJf+3csUjDw0/vOeLuFMyeHx+Pi0If9jAo0bx9e9fmXDfksmOHTuijoP33nuPE044gdNPPx0Am9XKA/fdy5nnnc/ChQs7nMvn89Ha2hq6+wU4++yzWbp0Kbfffju7v/iCoqJCHIHklkoplFK0trZSVlZGU1MTVVVVUfsbbeyddNJJwZiyLse89957gD72TjnlFO6//34AfvOb33DuueeyZs2amN6vt956C0ADvk1y57KM0fDaTtxfNoEGkmfu2kAplMePWM0QY+qOvKEFlJ45Omobi8XClVdeyYMPPsg999zTk673iHvvvZcHHniAoUP11DN2u50rrrgCoEvqjSCbN2/m1FNPBfTSSG1tbWzbto29e/dis9l45plnuPHGG6PORRUVFezZs6f9pjzgq07NatBXG9eIiAUoQXeXIiIV6F6kS5RSO+N82WklVWLNbDZTXl7OgQMHuuzzeDz4/f6ISW/tdrvhBo2B4Kc2F3hOKRXehhkHIpIHzANe7LyvsLCwtbiw9LDNam8zmy0ej9cdXmoDFrPFa7Pa22xWe1sy4micTmfI7H7OOeckfL7uqK6uZurUqUjghizcatCdO3d2cBF8tOpDPtu6JeRmCBJ0OVRXV3c43uVysWrVKs444wygqzm/oqIiJOT8fj/Tpk1j4MCBzJ49m+OOO47a2lpKS0tDwabt20ci3DWCd0VvvPEGF154YdbFPcVCusfP5s2bo46D6upqjj32WEAXV36fl9FjxtDS0hJKTvnCCy8wbdo0hg0bRl1dHWeeeWboXMXFxQwfPpxNmzbxl5de5qxvHcn6brVaeeSRR5g8eTJDhw5l8+bNXHbZZaH9ixcvZsqUKfzwhz8MuS6jjb1IHDhwIFQOaMiQIaG78r179/Lqq69y1VVXxfx+tQsFSNpc1iuIKStH8uNcFy5cyDPPPNPB7d4THnzwwdD35utfP7JQ9/333w9tDwrCTZs2hcZ0rEydOpWlS5fi8/nYtWsXbW1t7NmzhzfeeIOBAwdy/fXXs23bNv77v/874ornmTNnsn37dnbt2hUMA+kPLOvUbBlwaeDxecA7SiklIqXA34DblFIfxtX5DJAqsQZ6ofdwYi0YRxg0GHQm192gsVrWXhORzwAncI2IlAOJvmvfBNYppbp8ahaLRTvt+xO/DD7fuHHj5AkTJuy0Wq2+aCfcvHnzsRMmTEioU0GzfXsiiYpkio1g+qpf/vIeXnrpJQ4ePMhXX+k3bUF3ZpCGg228/rfXwl6/ffB3UORt376d8847jylTpoTaRHotZrOZDRs20NDQwDnnnMOmTZsYNGhQxPaRCHeNCRMmcPTRR+NwOPjd736HUiq0yifZzLn6+j3dt+pKomMo3eMnUrB/cHv7/ZrfD4qQsAtunz9/PosXL0YpxcKFC/nVr37FrbfeGjrXggULeP7551n+5ps89/hjvPTa64A+oT/yyCOsX7+eUaNGce2113Lvvfdy++23c/XVV3PHHXcgItxxxx3cdNNN/OlPf4o69uLl+uuv5/777+8gVLvjzDPPZPPmzRPRi7knay7LKKVnjsZ72Amawjqwq1VC8/rxHWjD3N+OOT+5P8DFxcVccsklPPzwwxHdV7Fwww03cPPNN3fZfuKJJ/L6668n0kVAj4fcsmULM2bM4KijjqKyspLrrruO8vJyli1bRkFBAd/85jd5//33eeqpp7jkkku6nMNisbB48WLmzJkTdN3XKaWqReRuYK1SahnwOPCUiOxAt6gtCBz+Y6AKuENE7ghsO10pFT5ALsOkUqwNGTKETz75hMbGxpD7GroXaw6HI+GbgmwmJsuaUupW4HhghlLKC7Sir3pJhAuJ4AL1eDyWdpml8wEsFktUoZZKysrKugQ119XVMWDAgITPPWHCBDZu3Ijf50dMwu23386GDRuiluQQEcaNPZr169ejtUtSqmkaGzduDLkCgiJvx44dfPTRRyxbpt8Edjbn19TUhFwKQUpLSznllFNYvnw5AwYMoKGhAZ/PF7F9Z8Jd44orruDf//43a9euDU0ES5cujeVtympSOX4mTpwYdRxMnDgxFGitBWLDvvhyD4WFhV1WY4kIZ555Jv/85z87bD/zzDN56qmnGD5iBEVFhSEDTVCUjh49GhHhggsu4F//+heg3z2bzWZMJhNXXHEFq1evBmIbe50ZNGgQ+/bpa4z27dsXiilau3YtCxYsoLKykpdeeolrrrmGv/71r1HPFYh3+4w45jIRsYvIahHZKCLVItL7FiRkYIFBkOuvv57HH388as3HZDJx4kQ+/vjjuI6xWCw8+OCDbNiwgaVLlzJo0CBefPFF1q5dS2VlJQUFBbz++ut897vfDY3VcMydO5dt27axc+dOgP0ASqmfB4QaSimXUup8pVSVUmqWUurzwPZfKKUKgovrAn+9UqhBasVaMHTmiy86hqoHx49hWQtPPOtyxwPzReQSdPPu6T29qIjkA7OBV9ptu6q1tbUIoLa2tt+mTZsmbtq0acKePXtGjBw58vNMusxmzpzJhx9+GMq8vHbtWtxud9SitbFSVVXFjBkzuPsXd4Z+cNuXQQmHCIw8ajTTp0/nF7/4RWj7L37xC4455pgucUNDhgzhvvvu49579drV8+bN4/nnn8ftdrNr1y62b9/OrFmzOHToUKgUiNPp5O233+boo49GRPj6178eWm33xBNPcNZZ0bX6nDlzeOutt6ivr6e+vp633nqLOXPmsGXLFl544QWefPJJfD5fMIaoT5Pq8RNtHHzve9/jgw8+4O2330bz+3C6XNx0yy3BQPsufPDBB4we3TFWyeFwcP/993Pbbbd12D5s2DA2b94cyu6+cuXK0I1CUFwBvPrqq6EVnpHGXjTmzZvHE088AXQce7t27WL37t3s3r2b8847j9/97necffbZ3b5ngJ345jI38A2l1FRgGnCGiHwtlguljRhSd6Qq3U///v254IILQouOUs1tt93GLbfcEvo+ud3uiCtNg7S1tYXEwMqVK7FYLCilePbZZ/ntb3/LSy+9xBtvvMHrr7/eZTVyLpJqN6jdbu8Snxq0rAULvncmGLOWTYm5k0lMblAReQoYDWwA/IHNCj1Tc9wopdrotJxZKfX7jRs33gowZMiQQ0OGDOk19T0GDRrE//3f/zF37lw0TaOwsJDnnnuuQ1D9lClTQs8vuOACpkyZwpIlSzrc6X/00UdUVFR0Of9jjz3GdT++gVknTmVAeVnoxzFI0J0Z5LvzL+YHF13J448/zrXXXktVVRVKKY4//viIE+bZZ5/NokWLeP/99znxxBO54IILmDBhAhaLhd/+9reYzWb27dvHpZdeit/vR9M0LrjgAr797W8DcP/997NgwQJuv/12pk+fHopNWrNmDeeccw719fW89tpr3HnnnVRXV9O/f3/uuOMOZs6cCehB79dddx07d+7E6XSyfft2PB4P11xzDZ9//jmLFi3q4afT+0n1+Ik2DhwOB0uXLuXaa6/lq7178Xo8XHLppR3Sgrzwwgt88MEHaJpGRUUFS5Ys6XKNBQsW4Pf7OLR7V+hHf+jQodx5552cdNJJWK1WjjrqqNCxt9xyCxs2bEBEqKys5NFHHwV0q0i4sQdw4YUX8t5773H48GEqKiq46667uOyyy7j11ltDYmDEiBG8+GKXMNeYufjii0EPAP9/xDiXKf3XIZiYyxr4612/GNFKSaUhKe5NN93UYSVwvDz44IMdVoZHs5DOnTuXAwcOcNppp4Xc/D/84Q8B/cbg2muv5dChQ3zrW99i2rRprFixgoMHDzJnzhxMJhPDhg1jwIAB3HzzzUycOJGlS5eiBZI9X3TRRaHFCrlMKsWayWSisrKSHTt2dAjTaGlpQUSiijVN0/B6veTlZUdd7GQisahUEdkCTFAplrQbN27cPXXq1MPdtwxPMmLWMkX9fv2ur9/g8AO1PS31LpzNXspHZFdez/Hjx7N58+aYY5S2bNnSZXWXiHyslJoRrn2i4weyewx1R2tDHc21tQwcObpHyS41TePgrp0UlZVRUNo1cWVvpPMYGj9+PJ999lnEMRQJETEDH6PHHf1WKdVlubaIXAlcCTBixIhjO7t5kknn1+Xd34pYTVjKusaNKaXw7m3BXJyHuTj+MmN9kVTPRclgxowZqn2uuHTyv//7v1RVVXXrQekp69atY9myZVx11VUMHqxX7Vq2bBlbt27lP//zP8Mes3btWl5//XVuvPFGiouLU9KvTBDrOIp1xt5EmDpoBslDqRjqggYIBo5nmzl40qRJUYv4GqQWzedHTKYeZyUP/rBlU6mzzgRcXHGbDJRS/kAi7wpgVqBkUOc2GcuRpZSK6AYVEZCsKnqScoy5KDqptKwBjBkzBoCtW7eGtjU3N0eMVwOj5FSsq0EHAJtFZDV6/AYASql5KelVH+W4447D7e6YtPqpp55i8uTJaJrCYo3xR7RdMfdsyn5x+PBhJkyYwKxZs7C1KyQeXPhgEJ1o4ycW/H4/pjhWTnZGRBCTqcNihmwjkMB1ooisoAdzmVKqQUTeA85Av4ntHXSbuiPzau2ee+7p4sI+//zz+dnPfpb2vhhzUXRSLdaKiooYNmwY27Zt4+STTwagvr4+6qKroFjL1VxrsYq1RansRDs0TdPEZDL1yXvAVatWRdynNBWXZU0/KKbkSr2GeOLSemg1zNnxEwua34fZnFhhZpPJhFLZIdbCjaFFixZxyimn7AB+Get5Auk9vAGh5gBOQ89Cn1E6pG2JtsAA9Gkiw9+Kn/3sZxkRZuFIw1yUtWiaht/vT6lYAxg7dizvvvtuyKLW0NAQsriFI9cta7Gm7vgHsBuwBh6vASKXCug5mw4dOlSiaVr2KJAkoJQKiLXY2gfbZdsccvLJJ1NZWYnX6+Xkk09m5syZHHPMMV3aKaWora3tSQ62nBw/saIlaFkDEDFlhRs00hgK3MV7iG8uGwK8KyKfBNqvVEolnvwrAex2O7W1tUfCIaKk7gB0Idf7P7a0kYa5KGsJJo5OtVgbN24cANu3b6elpQWfzxcqMxaOYB6/XBVrsa4GvQI9cLY/+qrQYcDv0Wt7Jg2fz3f5/v37H9u/f/8k4ksrAkBtbW1WZsVXStFS58ZWayHP0f1H4nX7cbV4OdSch8ncs/ijTPDiiy/y4osv0tjYyIoVK9i9ezd33XUXf/7zn7u0tdvtYVc+RiPR8QPZO4Ziobn2EFabHXt9Q4/P0VJfh8lkIr+uvvvGGSbcGArUiBwNPEqMc5lS6hNgeso62gMqKiqoqanR06Yoha/BjclhwWQPP3/4m9xgNmE+kNof4Gwh1XNRNpMusTZo0CBKSkrYunUrZWV6coj2pe46k+uWtVh9IguBWcAqAKXUdhEJX+02AY499tiD6CWoekQmV88kQku9iyce/henfG8c448Z1m373Z8c5v2nP+H822Yw8KjsWRXzyiuv8PHHH3Pccccxfvx4xo8fzy233BKxnl+8JDp+IHvHUHf4vF7+b9F/csIFFzH93AXdHxCBFxbdqifAvfPeJPYuffz2t78FPSmuCVI3l6Uaq9XKyJEjAdBcPr5a9G9K5o6kaHp4UXHg4XWYi60M+H5yvmvZTqrnomwmXWJNRBg7diwbNmwIieFgWblw5HrMWqzWB7dSyhN8EihQaxjVk4S7Ta8MYIuxFIwlT//YvG5/Ny17FzabrUN+HJ/PF5MVa/ny5YwbNy6Y7LfLqmQROUlE1omIT0TO67TvUhHZHvi7tPOxuUJbo24Jyy+NfOcaC1a7HU8W39kGgslDc1dfmMuUT48hlCgLlMRqDrUz6PlclAukS6yB7gr1er38/e9/p7i4uEtVlfaYzWby8vJy1rIWq1j7h4j8F+AQkdnoxddfS123cguPUxdreY7Y4oksNr2dz5Ndk+/JJ5/ML3/5S5xOJytXruT888/vUDQ8HH6/n4ULF/Lmm2+yefNmgP4i0jkR2pfA94Fn228Ukf7AncBx6JbhO0UkMbWSpbQFKlMUJCzWHHhd2XtnG4hZG0wfmsuUNyDWLNHEminUzqBnc1GukE6xNnLkSPr313M2xmLVzOWSU7GKtVuBQ8CnwI+AN4DbU9WpXMMdEGs2R2xfDmueLtayzbJ23333UV5ezuTJk3n00UeZO3duhzJJ4Vi9ejVVVVWMGjUqeCdcR6dajkqp3YG4os6/RnPQg8HrlFL1wEr0lAs5R2vAspaoWMuz2/G4s3eyDNQG9dGH5rKYLGsWE8qbXfNFKunJXJQrpFOsmc1m5s+fz8knn8wpp5zSbftcFmsxxawppTQR+SvwV6VUrykD1VeI27IWEGu+LJt8TSYTZ599NmeffTaxJg3du3dv5xqaHvSg8FgYBuxp97wmjmP7FK0NyRFrVps9qy1rgYTADcA1fWUuMyxr8dOTuShXSKdYA32hwaBBg2JqG6wPmotEtayJziIROYwelLtVRA6JyM/T073coKcxa9niBlVKsWjRIgYMGMDRRx/NuHHjKC8v5+67747p2HCbY7x0uCCULseKyJUislZE1gaLkvc1gmItv6QkofNY7Xa8Lnf3DXsZ7ccgMIk+NJeFxFrUmDVDrEFic1GukG6xFg8OhyNnLWvduUGvB04AZiqlypRS/dHjf04QkRtS3rscweOKz7KWbW7Qhx56iA8//JA1a9ZQW1tLXV0dq1at4sMPP+TBBx+MemxFRQV79rQ3jpEHfBXjpWvQi3aHThfu2EyWCUoXrQ0N2IuKMVsSm4Dz7A40vw+/z5uknqWH9mMQ2NCX5rKQCOvOsmYsMEhoLsoVfD7996g3irVcdoN2J9YuAS5USu0KblBKfQ5cFNhnkAQ8Th8mi2CxxuoGDVrWskOsPfnkkzz33HOhVAMAo0aN4umnn+bJJ5+MeuzMmTPZvn07u3btwuPxgJ7rL9aaMCuA00WkX2BhwemBbTlHW0M9BSWRE07GitWuJ6Z0t7UlfK50Em4M9pW5LBiLZsqLPH/oMWuGWEtkLsoVerNlzXCDRsaqlDrceWMg1qP3fZJZirvNhy2GZLhBTGYTJotkjVjzer1ha76Vl5eHJoZIWCwWFi9ezJw5c4KrheqUUtUicreIzAMQkZkiUgOcDzwqItUASqk64L/Rs86vAe4ObMs5WhvqE45XA7AHCi2721oTPlc6iTQG+8JcpgLhEJLXTeoOQ6wlNBflCr1drHk8Hvz+7PjtSybdKQRPD/cZxIHH6YupckF7rHlmvO7smHzb5zOKZ1+QuXPnMnfuXABEZD+AUioUa6SUWoPu4uyCUupPwJ/i6nAfpLWxniFV4xI+j71AF2uuluaEz5VOuhlnWT2XBS1rEsUyL1YTaArlV4g5d/OJJToX5QK9WawFS0653W7y8/Mz3Jv00p1CmCoiTWG2C5A7xdJSjNsZn2UNwGo34w3EuvV2Nm7cSHFx10oLSqmcjT9IN8m2rLlaWhI+VzrpNAant5vXsn4uCy0wiGpZ0/cpnx8xxzfX9CWMuah7vF4vIoI5wTrCqaB9ySlDrLVDKdX7Pq0+SE8sa/YCK6627BBruWiy7k14XE58bndSxJotaFlrzS6x1n4Mish6pdSMDHYnqahAOIREi1kLijWvBra0dKtXYsxF3eP1erFarb2yokMul5zKWBVwEdktIp+KyAYR6VKMMZA25GER2SEin4jIMZnoZzpwt/mw5ccn1mz5FtxtRoyFQfckK8cagKNQLweTbW7QvozmiSHPmqWdWDMwiILH4+mVLlA44gbNRStopu3hXw+3gCHAN4Exgb/jgEcC//Y5emJZs+VbaTiQXSvyDDJDKMdaMi1rhljrNSivBhYTYopsCelgWTMwiELQstYbae8GzTUyZlmLgbOAJ5XOR0CpiAzJdKdSgdvljztmzZZvwdVqWNYMuqctiZY1s8WC1e7AnWVu0L6M8vgxRYlXA0OsGcSO1+vttYstDLGWGRTwloh8LCJXhtkfU6mgbM8+7/dr+Nz++GPW8q2hygcGBtFIphsU9EUG2bbAoC+jvFrUlaBwZKWokRjXoDt6sxvUiFnLDCcopY5Bd3cuFJGTOu2PqVRQtmef9zr1gNe43aAFFvxeLWtyrRlkjtaGBsRkCsWbJYq9oDDrFhgkgogMF5F3RWSLiFSLyHWZ7lN7lNcfdSUotI9ZM+YLg+j0ZjdoXl4eJpPJsKylE6XUV4F/DwKvArM6NYmpVFC243bqrsz4FxjoXybDumbQHa0N9eSXlCKm5Hzd7YVFuRaz5gNuUkqNB76GfnM5IcN9CqE8WtSVoGC4QQ1ipze7QUUkZ0tOZUSsiUiBiBQFH6OXAdrUqdky4JLAqtCvAY1KqX1p7mrKCRVx70HMGoDLWBFq0A1tjfUUlCTHBQoBy1oOuUGVUvuUUusCj5uBLYQJycgUyuOPWsQdDLFmEDu92bIGuVsfNFOrQQcBrwbyuFiAZ5VSy0XkKgCl1O+BN4C5wA6gDfhBhvqaUjzOgFiL07JmNyxrBjGiJ8RNvC5oEHthbrlB2yMilcB0YFVme3IEzath6uZmzxBrBrHSm2PWIHfrg2ZErAUKKE8Ns/337R4rYGE6+5UJ3AGx1pOYNQC3sSLUoBtaGxsYMKIyaeezFxXjam5CKdUrE2emChEpBF4GrldKdansElgodSXAiBEj0tYv5fEjxdHdVkcqGBhizSA6vd2y5nA4ctKy1ptTd+QEQctYT/KstT/ewCAcStNoa2hI2kpQgPziEvw+X9YVc08EEbGiC7VnlFKvhGuTqcVOyqth6s4NaiTFNYiR3hyzBrnrBjXEWoY54gaN704m6DY1xJpBNFytLWh+X1LFWkGJ7lJta2xI2jl7M6KbDx8Htiilfp3p/nRGefwxLDAIpO4wxJpBFDRNw+fz9WrLWq66QQ2xlmHcTh8I5NniK8Nqc1hAMBLjGkQl2TnWABxBsdaQG2INOAG4GPhGoDzeBhGZm+lOBdHzrHUzlVsExEjdYRAdr1f/PenNYi3oBtUjpXKHTJebynk8bT7y7JaopWLCISbB5rAYMWsGUQmJtSSuBg1a1lpzxLKmlPqA8HkfM45SKpBnrRvLmghiMRmWNYOoBMVab3eDaprW6921ycawrGUYj9MXd9qOIPZCK05DrBlEoS1UFzR5q0HzQ27Q+qSd06CH+BVodJsUF0BsZpTbsKwlwvLlyxk3bhxVVVUAgzvvFxGbiLwgIjtEZFVg9TAiUhZIrNwiIovT2+vYyQbLWq6WnDLEWoZx96CIexBHYR7OZkOsGUQmJW7Q4mJETDkTs9abUYEKJt2VmwIw2cxohljrMX6/n4ULF/Lmm2+yefNmgP5hkiNfBtQrpaqAB4H7A9tdwB3AzWnrcA/weDxAdoi1XItbM8RahnG3+eLOsRbEUWTF1eJJco8M+hKtjQ1YrHnkOfKTdk6TyYyjuJi2xsakndOgZ2gBt2a3MWsYlrVEWb16NVVVVYwaNSrofqsDzurU7CzgicDjl4BTRUSUUq0Bd3qvNgdlg2XN4XAAhmXNIM14XIlY1qyGZc0gKq0N9eSX9kt6PrT8ktKciVnrzQTFlymGBUpiWNYSYu/evQwf3r4CIh66VrIYBuwBUEr5gEagLNZriMiVIrJWRNYeOnQowR7HT7bErIEh1gzSjLstgZi1ojxcLd6cWxVjEDttjQ1JrV4QJL+k1IhZ6wUExZrEINZMNkvIbWoQPxHm2c4bw90VxTxBZypXX5BscoMaYs0grXicPvJ66gYttKJpysi1ZhARvdRU8uLVghSW9qOlvi7p5zWID82tf/djtawZbtCeU1FRwZ49e9pvygO+6tSsBhgOICIWoATdXZoVZJMb1IhZM0gbSlMJrQZ1FOmmaleL4Qo1CE/KxFrZAFrqatE048c/kxyxrHU/h5jyDDdoIsycOZPt27eza9euoAWqP7CsU7NlwKWBx+cB76gscn1kixvUZDLR0pJb9YmNPGsZxOv2o1T8paaCOAr1ux9ns4fSQckLIDfoG/h9PpzNTeQnMcdakOIB5ShNo7WhnqL+A5J+foPY0FzxxawZlrWeY7FYWLx4MXPmzMHv9wPUKaWqReRuYK1Sahl6pYunRGQHukVtQfB4EdkNFAN5InI2cLpSanPaX0gUssENajKZKCgoMMSaQfpwh0pNJWZZcxqWNYMwOJsaQamUxKwVlenxNM2HDxtiLYOEUnfYYxRrHj9KU3En4TbQmTt3LnPn6sUrRGQ/gFLq58H9SikXcH64Y5VSlWnoYkJkgxsUoLCwMOfEmuEGzSDuNv2LkUhSXNAta32ZBBJRVoqIs12JoN+nt+eZpTWUEDf5lrWiMl2gNdceTvq5DWInHstasI1RcsogEm63GxHp9WKtqKgo58SaYVnLIEGLWFB0xYujKCjW+q5lLZiIcuXKlVRUVGCz2fqLyIRO7oNQIkoRWYCeiHJ+YN9OpdS0tHe8F9DamPxSU0FClrXa9KcXMDiCcvvBJGCJLc9a6JgYYtwMcg+Px4PNZkt6qp9kU1hYyFdfdV7b0bcxLGsZxJWgWLNYzVhtZpx9ODFuIoko09jNXsmR6gXJd4PaCgqw2h2GZS3DaG4fYjPH9OMatKwZiwwMIuF2u7HZbJnuRrcUFhbS2tqKpuVO2Cd8bwAAIABJREFUrVtDrGWQkFgr6LnJ2VHUtxPjJiER5UgRWS8i/xCRE8NdI9OJKFNFa31QrPVP+rlFhKKyAYZlLcMotz8mFygQKvZuLDIwiITb7e7VK0GDFBYWopSira0t011JG4ZYyyCu1sQsa/qxeX265FSCiSj3ASOUUtOBG4FnRaQ4zDUymogyVbTU12EvLMKSoslXF2uGZS2TaC5/TAlx4Ygb1LCsGUQimyxrAM3NzRnuSfpIu1gTkeEi8q6IbBGRahG5LkybU0SksV1g+M/DnSvbcbV4ybObMZt7/jHkF1lp68OWtUQSUSql3EqpWgCl1MfATmBsyjvdS2itr6WwX/KtakGKysppPmxY1jKJ8vgx2WOLPzPZDMuaQXSyRawVFRUB5NQig0xY1nzATUqp8cDXgIUiMiFMu/eVUtMCf3ent4vpwdXqTciqBpBfaqO1wZ2kHvU+EklEKSLlImIGEJFRwBjg8zR1PeO01NdRkEKxVjJwEK0N9XjduVX2pTehuXxxW9YMsWYQiWwRa8XFuoOkqakpwz1JH2kXa0qpfUqpdYHHzcAWusYg5QSuFm9C8WoAhaU2XC1e/N6+GWjZPhHl+PHjoV0iShGZF2j2OFAWSER5I3BrYPtJwCcishF94cFVSqmsKf2SKC31dRT2i7mGdNyUDh4CQOOB/Sm7Rm9ARP4kIgdFZFOm+9KZeGLWTIEVoMESVQYGnQmuBu3tFBUVYTKZqK/PnfrEGV2/HciHNR1YFWb38YEf2a+Am5VS1RHOcSVwJcCIESNS09EUoVvWEosnKijVv1itjW6KBziS0a1eR08TUSqlXgZeTlM3exVK02hrqKewf+osa6WDdLFWf2AfA0ZUpuw6vYAlwGLgyQz3owvxxKyZHIGYNadhWTMIT7YsMDCZTJSUlNDQ0JDprqSNjC0wEJFC9B/S65VSnW2Z64CjlFJTgd8Af410nmwODne2eLEXJqaXg2KtpQ+7Qg3ix9nchOb3p9QNGhRrjfv3pewavQGl1D/ppcW4NacPU4wVUMRqRqwmtLa+G+Nq0HOUUlnjBgUoLS01xFqqERErulB7Rin1Suf9SqkmpVRL4PEbgFVE+lRNG6UUzhYvjgQta4VBy5oh1gza0VKva4tULjCwFxZiLyqm4UDfFmu9FeX1g0/D5Ig9lMKUb0FrM9ygBl0J1gU1xFrvJBOrQQU9xmiLUurXEdoMDiY1FZFZ6P2sTV8vU4/H5cfn9ocsYz2lwBBrBmFoqde/LqmMWQMoHTSY+j5uWYuVdOfrC4quWC1rACaHFc1piDWDrrjd+m9INom1lpaWUD3Tvk4mLGsnABcD32iXmmOuiFwlIlcF2pwHbArErD0MLFAREm5lK0FxVVCamGXNlm/BYjUZblCDDrTU6WKtoF/yS021p3TQEBoMsQakPyTD3xOxlm8x3KAGYXG59FXd2SLW+gficWtr+5QdJyJpX2CglPqA8ElM27dZjB7Q22cJirXCBC1rIkJBH0/fYRA/TYcOYjKbU29ZGzyUrf96H5/Xi6WXF3/uawRFV1xuUIcF7yFnqrpkkMU4nfq4yM/Pz3BPYmPgwIEAHDx4kMGDB2e4N6nHqGCQIYLiKr8k8buYglIbrfWGWDM4QuPBAxSVDcBkjm2lYE8pqxiOUhp1e/d03zhLEZHngH8D40SkRkQuy3SfAJSzB5a1Aiua07CsGXQlKNYcjuzIKlBWVobJZOLgwYOZ7kpayGjqjlymtTHoBk1crBUPsLNnc69crGaQIRoPHaBk4KCUX6d8xEgADn2xi4GVo1J+vUyglLow030Ix5GYtfgsa1qbD6VUTMXfDXKHYJ3NbBFrFouFsrKynBFrhmUtQ7TUu7HlW7DmJW75KCnPp7XRg9fITG4QoOngAYrLUy/W+g0ZisWax6EvdqX8WgYd8QfdoHHGrOFXKE/fTKJt0HOyzQ0KMGjQIPbv79tJuYMYYi1DNB12Ji2JbclAR+icBgZej5vWhnpK0iDWTGYzZcOP4tCXu1N+LYOOaE4fmAWxxj6NB+PbDFeoQWecTicmkykrkuIGGT58OE1NTTlRycAQaxmi8aAzJLISpXRgfuicBgZNh3S3QHEa3KAA5UeN5ODuz+ljC7Z7PVqzB3OhNS53ZtAKp7Ua6TsMOuJ0OnE4HFnlHq+srARg9+7dGe1HOjDEWgbw+zWaa12UlCdHrBUHztNwsC0p5zPIbhoP6m6BdFjWAIYdPQFXcxO1e75Iy/UMdPzNHkxF8VlBTMV5oWOzEeXXaFm9j7YNB42bgyQTFGvZRHl5Ofn5+Xz++eeZ7krKMRYYZIDmWheapigpT05sgM1hwVFkpdEQawZAXY2+MrP/sIq0XG/ExCkAfFn9SV+vEdqr0Jo9mPvZ4zrGXKwvaPI3Zufq8Ya/7qR1TeBmpNFN0cnDM9yjvkNbW1vWiTWTycS4ceOorq7G6/Vi7cPpgwzLWgZoDOQ5SpYbFKDf4AJqv2pN2vkMspfavTXkl5TiKCpOy/WKywdSMmgwX3yyPi3XM9DxN3swF8dnWTMXWUHA35R9ljXP3hZa1+yn8P8Nwz6xjMaVX+Jvyb7X0VtpbW3NqsUFQSZPnozH42HLli2Z7kpKMcRaBqjfp4uqYKxZMig/qojDNS34/cYqr1yndu+XabOqBama8TV2b1yPq6UlrdfNVZRPQ2v1YY7TDSpmk55rLQvFWsuHexGbmeLTRlByRiX4NFo/MqpnJIvm5maKi9Nzg5dMKisrGTBgAB9++CGa1nd//wyxlgFqa1rIL84jP8674mgMPKoIv1ejzrCu5TRKKer27qFsWHrdQ0efcDKa38f21f9K63VzlaBFKd6YNQBzcR7+puxyg2oeP85NtTgmD8Bkt2Atz8c2ppTWjw8YsWtJwOv14nK5KCoqynRX4sZkMnHSSSdx4MABPv3000x3J2UYYi0DHN7bQllFYVLPOaiyBICvtjUk9bwG2UVz7WHcra2UVYxI63UHjaqidPAQtrz/blqvm6v46/Q6jpb+8cWsgR63lm1uUNeWWpTHT/70gaFt+dMH4q934/myOYM96xs0N+vvYTaKNYBJkyYxbNgwVqxYQWtr3zRYGGItzWh+jbp9rZQNS65YKyl30G9IAbs+OZzU8xpkF/t3bgNgcNXYtF5XRJh40qns2fypUdg9DfgSEWv9bPjqXFllkWpbfwhzSR62kSWhbY6JZYjVRNv63Mhgn0qCYi0b3aCgW9fmzZuHy+Xir3/9a590hxpiLc3UH2hD8ykGJNmyBjBq2gC+2t4QWsBgkHvs37kdk9lC+VHpL/008ZTTEDGx6b23037tXMNX5wITmHtQrs5ano9y+9GyJH2Hv8WDa1sdjmkDEdORHGAmmwX7+P44Pz2EMmJ1E6KxsRHIXssa6NUMzjjjDLZv387777+f6e4kHUOspZkDu5oAKB+e/C/F5JMrMJmENa8bpX9ylb2fbWZg5UgsGVjCXlQ2gMppx1D9j7fRNKP0WSrx1bowl9oRc/xTuCWQl9GbJTd1zk8Ogwb50wZ22Zc/fSBaqw/XdiP8IxHq6vTa0v369ctwTxJj5syZTJ48mXfffZcNGzZkujtJxRBraWb/zkZsBRb6DU7+EumCUhtTvlHB1lX72f95Y9LPb9C7cbY0s2/bZ1ROPSZjfZj89dNpqatl98Z1GetDLuDd14J1UM/mkKBY82WJWGtbfxDr4ALyhhR02Wcf2w9TvsVwhSbI4cOHKS0tzfo8ZSLCvHnzGDlyJEuXLuWTTz7JdJeShiHW0sy+nY0MGVXSwZyfTGbMraSgJI9/Pr8NpWVPTIpB4mz79/sopTH62OMy1odRx87EUVzCp39/K2N96OtoHj++Q06sQ3sWSmEutiE2M959vT/NivewE8+e5g4LC9ojZhOOKeU4q2vRXEYJrZ5SW1tLWVlZpruRFKxWKwsWLGDEiBG88sorrFy5Ep8v+8eGIdbSSEu9i4YDbQypKk3ZNfLsFo4/ZzSHvmxm5/pDKbuOQe+gpa6Wd5f8gbf+8Bs+eOFpBo8ew6DRYzLWH7PFyoSTvsHn61bT2tD3iytnAu9XLaAIa2mKBTEJeUcV497dlOSeJZ/WVfvABPnTyiO2yZ8+EHya7i41iBufz8ehQ4cYODC8IM5GbDYbF198Mcceeywffvghf/jDH9i7d2+mu5UQhlhLI7s26pPJyKkDUnqdMbMG029wPqtf+xzNsK71WbwuF6/ct4j1K15nx5qPyC8u4Yxrbsh4IebJ3zgdze9n/fLXM9qPvoprewMI2EaVdN84AraRxfgOtOFv9SaxZ8lFc/loXb0fx+RyzCWRF1LkjSjCOrSA5n/WGN6EHnDgwAF8Ph8VFelNpJ1qLBYLZ555JhdeeCFOp5M//vGP/O1vf8PpzA73f2cMsZZGtq7aT7/B+fQb3LM74lgxmYTj5o2ifn8brz28ga0f7cNplGXpUyilWP7IQxz+8gu+89M7ueaPz/CDXz+S9vxq4SgbNpxxx5/IujeW0lxnWDuSiVIK56bD5A0vwpTf8/gi+9j+ADg/7b2fT9M7e1BuP0UnDovaTkQoOmU4vsNO2j4+kKbe9R127NgBwIgRmZ87UsG4ceNYuHAhs2bNYu3atSxevJhPP/00q1LXQIbEmoicISJbRWSHiNwaZr9NRF4I7F8lIpXp72Vy+aK6lgO7mph0cvSJJ1mMPmYg/++CMdR91crbS7bw5G3/4l8v78DV0nvvpCOxfPlyxo0bR1VVFcDgzvujjRcRuS2wfauIzElfr1OHUor3n13Cto8+4MTvfZ/KacdmuktdOGHBxQC8ev/dfL5uDW2N2b1ar7s5K124ttbjO9BGwcwuX4O4sA4twDq4gJYP96J8vS/thWtbPS0f1JA/YxB5Fd2vnHdMGkBeZTENf/sc7/7UJUXta3OR3+9n48aNjBgxIqvTdnSH3W5n7ty5XHHFFZSUlPDyyy/z5JNPcvhw771Z6YykW12KiBnYBswGaoA1wIVKqc3t2lwDTFFKXSUiC4BzlFLzuzv3jBkz1Nq1ayPuV0qB/h8oFfi383aOKO72bYNvkwIV2BFqphRKU7jbfGh+hcks7NvRwNZV+3G1+ijsZ2P/riaK+tu54LYZWPLMcbxjiaE0xaE9zXzyTg1bV+/HYjFROjifPLsFMYHPo4X67PNouJ1ePG0+xCTY8i0MHlVCxdH9KRnowJZvwV5gxZZvwWJNz2vw+/2MHTuWlStXUlFRgc1mcwIzYhkvIjIBeA6YBQwF3gbGKqUi5pWIbQypdmNAAfr4UErTB0VojATHjWo3xhQqmLBRqdBYU0qh+Xy0NTbQ2lhPW2MjJrMZe2ER9oJC7IWFWPLyaDx4kI//9iqfr1vDlNPO4LTLF2bc7RmJz9ev4Y3fPIA7kFG8sH8Zg0ePZfjEyQyfMJnSwUOwWPMQU3rvGUXkY6XUjDjadztndSbSOAqOg8AT/XGHOefIttD4UQr8CvcXTTQs3Ykp38KgnxyDWBN735yf1VG7pBr7+P4Un3YUlv52xGYGIeqYUu37SPvXo/9PdXreYX9ovLd7D0L7wNfgwrW5jub3a7CWOyi/aiomuyWm1+Orc3HwkY0or5/ir4/ANqYUS6kNyTODWRL+nvSmuUh1mjuiPY60z+Px8MEHH7Bu3ToWLFjA0UcfncjbkzVomsbatWv5+9//jsfjYfTo0YwbN46hQ4dSVFSEw+HAZDIhIqG/VBLrfBTbtyC5zAJ2KKU+BxCR54GzgPYT31nAosDjl4DFIiIqTmW54rFN7Pj44JHJIs30H1pA2dACmutcVE4q44TzxqRVqIEeTDzwqGJO+8EEjplzFNXv76XxsBOf24/mV9gcFkxmwe9X5BebsOUXkuewoDRwNnvYs6WObavDuBaSOH4jnerie/6DTVvXU1VVxahRoSSvdcQ4XgLbn1dKuYFdIrIDffz9O9a+tdTX8ejVl7b7dck8eQ4HJ130Q2Z86+xeK9QARk2fyY9+/yT7tm3l4O6dHNy1k6+2bWHHmk5vfwpfw5hZxzPvxv9K9DSxzFlRaVy+i+Z/1CQ8F1nKHZRdMiFhoQbgOLo/JWeOovGNXbi21EVuGPx40vUVEHBMKaffWaNjFmqgV3MYeNUU6l/dQeObu+DN+K4ZjfIrJrPuwJaMzkUA99xzD15vcr0jJ5xwQs4INdCrHcyaNYvx48ezatUqPv3005ArOBLJmGcHDRrEVVdd1ePjMyHWhgF72j2vATrnGgi1UUr5RKQRKAO62CxF5ErgSujqcx81rZzSgYFcRBL4PoqEfhv0fwUxhc7Vrq0E7jDD7Ase1+48uiXKqgsfn0a/wfmUDSvsVT+m/YcWcOL8+MoQKU1Rv7+N1gY3rjYv7jYfrlYvfm/qXSd5djN79+5l+PAORck96OOjPZHGyzDgo3btasIcG3UM5dntfO2cCwIfurT77KXdOAk+P3IXFnquPwlsDxwvpsC/0u54MJkt5JeUUFDSj/ySUjS/H1dLs/7X2oLP4yG/pJRhR0/Elp/8PH2pwJpnY8SkKYyYNCW0renQQWq2bKKlvg6v203KVIBS9E9OQftY5qyo48g2qhRMRz7r0ORhOvI4OKaQ9tsC/zOBpTwfW2UJYk7enFJ0wjDyp5Tj/rwBf5MH5fZ3vC/pfJPSuV9wpM+hSfbIHBkSQWGeB78b7beZC/PIG1GEuTj+ygwAljIH5ZdPxnfYiaemGX+LF+X1o3xRxlgMN2LmUjt712V2LgJdWGma1sHi09kCFOtjs9nM8OHD+9Qq0HgoKiritNNO49RTT6WhoYH9+/fT2tqK0+lE07QulslEKSxMrGpRJsRauJmm87sRSxt9o1J/AP4Autm4/b4xMwb1pH8G7RCT0H9oAf2HpnZRRCQifFFiHS8xjaNoYyjPkc8J8y+Oqa+pYUgGr50aissHMqH8G5nuRjwkPI7sY/thH9s7s8Obi/LIn9q3frAtAxxYBjiSes5Mz0UAp5xySnfdNIgTEaFfv369vnpDJhYY1ADtb08qgK8itRERC1CCbnI2yDEqKirYs6e9UYM8Yh8vsYw1A4PuMMaRgTEXGWSUTIi1NcAYERkpInnAAmBZpzbLgEsDj88D3ok3Xs2gbzBz5ky2b9/Orl278Hg8AP2JfbwsAxYEVmiNBMYAq9PUdYO+QyxzlkEfx5iLDDJJ2t2gAT/+j4EVgBn4k1KqWkTuBtYqpZYBjwNPBYIw69AnR4McxGKxsHjxYubMmYPf7weoi3W8BNr9BT0A2AcsjLb6ysAgHJHmrAx3yyDNGHORQSZJe+qOVNJd2gWD7CfetAvxYoyhvk+qxxAY4ygXMOYig2QQ6zgyKhgYGBgYGBgYGPRiDLFmYGBgYGBgYNCL6VNuUBE5BHzx/9l78zi3yrL//31lMsksnS7T6QalG3SfUpBSFkF2ofAI2LJVZffhQcEHBVEefb6K6AsLPD9ABVEsyt5qUaBIWaWK7G2hLaUtUGih070z7UxnyX79/jg56SxJJplJJifJ/X698kpyzn1OrpPcufPJdd33dWXh1DXEyfHWxxgbLEar6pBsnTyLfagnOOH9ToSTbYPk9mW1D4Fj+pHTP6Pe4IRrK4axyAnvczZw0nWl1I8KSqxlCxFZnu05LsYGQ2ec/H472TZwvn19QSG/B4V8bU6iUN/nfLwuEwY1GAwGg8FgcDBGrBkMBoPBYDA4GCPWUuP+XBuAsaEYcfL77WTbwPn29QWF/B4U8rU5iUJ9n/PuusycNYPBYDAYDAYHYzxrBoPBYDAYDA7GiDWDwWAwGAwGB2PEWhQROUNEPhSRDSJyU5z9o0RkqYi8JyKrReTMLNjwRxHZKSJrEuwXEfl11MbVIvKFTNuQoh1fj77+ahF5Q0SmZ8OOYkVEzheRD0QkIiIzOu37n+jn/6GInJ4j+5J+V/rYli59VUSqReQlEfk4ej8olzb2NU76fDJNd2OTIXMUUj8SkU0i8r6IrBSR5dFteTVOGLEGiEgJcC8wC5gCzBWRKZ2a/S/wF1U9HKs472+zYMqDwBlJ9s8CxkdvVwH3ZcGGVOzYCJygqocCPycPJ2s6nDXAbODV9hujffIiYCrW5/PbaN/tM1L8rvQlD9K1r94E/ENVxwP/iD4vChz4+WSaB0k+NhkyQIH2o5NU9bB2+dXyapwwYs1iJrBBVT9V1QCwEDinUxsF+kcfDwC2ZtoIVX0VaEjS5BzgYbV4CxgoIiP62g5VfUNV90SfvgWMzLQNxYyqrlPVD+PsOgdYqKp+Vd0IbMDqu31JKt+VPiNBXz0HeCj6+CHg3D41Krc46vPJNCmMkYbMUND9KEpejRNGrFkcCGxu97wuuq09NwPfEJE6YAnwnb4xrQOp2NnXXAk8l2MbigUnfP5OsKE7hqnqNoDo/dAc29OX5MPnY3A+hdaPFHhRRFaIyFXRbXk1TrhzbYBDkDjbOuc0mQs8qKr/n4gcAzwiIrWqGsm+eTFSsbPPEJGTsMTacbmyIV8RkZeB4XF2/VhVn050WJxtff35O8EGQ2LM52PIBIXWj76oqltFZCjwkoisz7VB6WLEmkUdcFC75yPpGua8kuhcCVV9U0TKsIrB7uwTCy1SsbNPEJFDgfnALFWtz4UN+YyqntqDw5zw+TvBhu7YISIjVHVbdJpAX35Hc00+fD4G51NQ/UhVt0bvd4rIk1hh3rwaJ0wY1GIZMF5ExoqIB2sS9+JObT4HTgEQkclAGbCrT620bLokuir0aKDRduP2JSIyCvgbcLGqftTXr1/ELAYuEhGviIzFWmjyTh/bkMp3JdcsBi6NPr4USOSpLETy4fMxOJ+C6UciUikiVfZj4MtYi7jyapwwnjVAVUMici3wAlAC/FFVPxCRW4DlqroYuAH4g4h8D8sdfJlmuPyDiCwATgRqonPjfgqURm38HdZcuTOxJpa3Apdn8vXTsOMnwGCs1YgAoXYrbAy9RES+CvwGGAI8KyIrVfX0aJ/8C7AWCAHXqGq4L21L9F3pSxvak6CvzgP+IiJXYv3JOj9X9vU1Tvt8Mk28z1tVH8itVYVHgfWjYcCT0d8qN/C4qj4vIsvIo3HClJsyGAwGg8FgcDAmDGowGAwGg8HgYIxYMxgMBoPBYHAwRqwZDAaDwWAwOBgj1gwGg8FgMBgcjBFrBoPBYDAYDA7GiDWDwWAwGAwGB2PEmsFgMBgMBoODMWLNYDAYDAaDwcEYsWYwGAwGg8HgYIxYMxgMBoPBYHAwRqwZDAaDwWAwOBgj1gwGg8FgMBgcjBFrBoPBYDAYDA7GiDWDwWAwGAwGB2PEmsFgMBgMBoODMWLNkLeIyBki8qGIbBCRmxK0uUBE1orIByLyeF/baDAYDAZDbxFVzbUNBkPaiEgJ8BFwGlAHLAPmquradm3GA38BTlbVPSIyVFV35sRgg8FgMBh6iPGsGfKVmcAGVf1UVQPAQuCcTm3+E7hXVfcAGKFmMBgMhnzEnWsDMklNTY2OGTMm12YYssiKFSt2q+oQ4EBgc7tddcBRnZpPABCR14ES4GZVfb7zOUXkKuAqgMrKyiMmTZqUDdMNDsHuQyJyEPAwMByIAPer6q/atxWRE4GngY3RTX9T1Vu6ew0zFhU+7cairGD6UHGQaj8qKLE2ZswYli9fnmszDFlERD6zH8bZ3Tmm7wbGAycCI4F/i0itqu7tcJDq/cD9ADNmzFDThwqbdn0oBNygqu+KSBWwQkReah9Kj/JvVf2PdF7DjEWFT7t+lBVMHyoOUu1HJgxqyFfqgIPaPR8JbI3T5mlVDarqRuBDLPFmMKCq21T13ejjfcA6LI+twWAwOAoj1gz5yjJgvIiMFREPcBGwuFObp4CTAESkBiss+mmfWmnIC0RkDHA48Hac3ceIyCoReU5EpiY5x1UislxElu/atStLlhqchogcJCJLRWRddNX5dXHaiIj8OrpyfbWIfCEXthryFyPWDHmJqoaAa4EXsDwif1HVD0TkFhE5O9rsBaBeRNYCS4EbVbU+NxYbnIqI9AP+CnxXVZs67X4XGK2q04HfYP0BiIuq3q+qM1R1xpAhWZvKZHAedjh9MnA0cI2ITOnUZhaWV3881vzY+/rWREO+U1Bz1gzFhaouAZZ02vaTdo8VuD56Mxi6ICKlWELtMVX9W+f97cWbqi4Rkd+KSI2q7u5LOw3ORVW3Aduij/eJiB1Obz/38Rzg4eiY9JaIDBSREdFjDYZuMZ41g8FQlIiIAA8A61T1zgRthkfbISIzscZM4501xCVJOD3e6nUzP9KQMkas5Tnbtj/FylVX0tZWl2tTDHnErkCQy97/lLs2bc+1Kbnki8DFwMkisjJ6O1NErhaRq6NtzgPWiMgq4NfARVqAmcTXb2/igt+/yVufGh3aU7oJp6eyet1Z8x4/egEenQMNG7tvm29sfgce+SrU5c9qWxMGzTN8/u28v/pblHoG06/fJD77zJr68Mknd1Bb+6tujjYYLG7esJXndzfx/O4mzhoykAmVZbk2qc9R1deI/yPavs09wD19Y1Hu+NXLH/POxgZ+8vQaXvzeCbk2J+/oLpxOaqvXu6QRyoKpqaEKf/8eNG2B1+6Cs3+dM1Oywks/hc/fgHAQLvt7rq1JCeNZyzM+/3w+TftWs3fv23z22X3U1JzKiOFz2F3/CpFIKNfmGfKArb4AT+3cw1eHDgTgxd2NObbIkEvCEeW1j60peB/taGbj7pYcW5RfpBJOx1qpfkl0VejRQKOj56vtWGMJNYAN/8itLZkm0AKbo1Hqz163nucBRqzlGbt2vUxNzSkce8y/+MIXFnLotPuorj6OcLiVlpYPc22eIQ/42449hBVuGjeCUWUeVu1ry7VJhhyydW8b+/whvnncWACWb2rIsUV5Ryrh9CVYaYM2AH8Avp0jW1Nj63vW/ZH/CU11sK+ApktseRc0DDOuAI3A9vdzbVFKGLFqF2z4AAAgAElEQVSWRwSDjfh8mxk44Ag8nmoGDTwSERf9+08HoGnfmhxbaMgHntvdyKFV5Ywu9zKtqpw1za25NsmQQ2xP2smThlLhKeGDrZ2nWxmSoaqvqaqo6qGqelj0tkRVf6eqv4u2UVW9RlUPVtVpqursyVI710FpBUw913q+vYB+W2xxNuMK637bqtzZkgZZFWsicoaIfBhNBHhTnP1eEflzdP/b0ZU07fePEpFmEfl+Nu3MF5qbLc9Zv34da1eWl4/E5fLQ2mryvRqSsysQZEVTK7NqBgAwoaKMz9oCBCMFN2fekCKb6i2xdvDQfkwe0Z+1RqwZdnwAQybB4GjBl4YC+m3ZsxG8/WFYLZRW5s21ZU2siUgJcC9WMsApwNw4iQKvBPao6iHAXcBtnfbfBTyXLRvzjeZomLOy38QO20VKKC8fTWvrphxYZcgnljVaP8zHD6oCYFS5hwiwxR/IoVWGXLK90UeJSxjSz8shQ/qxsT4/5vAYssiejTD4EOg3FDz98kbQpETDRhg0BkSgemzerHbNpmdtJrBBVT9V1QCwECsxYHvOAR6KPn4COKVdTqNzsWL8H2TRxrzC56vD5fLi9Qzrsq+iYpzxrBm6ZXljKx4RplWVAzCqzAPAZ21GrBUru5v9DK704HIJowZXsGufn9aAWaxUtETC0LQVBoxsJ2g+ybVVmWPPRuuawBJte4xYSyUJYKxNtHxQIzBYRCqBHwI/y6J9eYfPtxWvdzhRPduB8vKD8Pm2UIApoAwZZHlTC4dWleN1WV/90eVeAD73+XNpliGH7G4OUNPP6gcHVVcAsLnBLDopWpp3QCRkiTWAgaNh7+e5tSlTRMLWtQwaYz2vHgt7PrNSlTicbIq1VJIAJmrzM+AuVW3u9kWclEQwy/h92yjzjoi7z+sdTiTiJxTa28dWGfIFVWVNcxvTqypi20Z4SykR2OIL5tAyQy6pb/ZTU2WJtdFRsfaZCYUWL43RlB22WKsaUTirQVt2QTgAA6Ip76oOgLAf2vbk1q4UyKZYSyUJYKyNiLiBAUADcBRwu4hsAr4L/EhEro33IsVUPNnn30ZZ2QFx99kizucrkC+VIeNs8wdpDUc6JMAtEaGm1M2OgBFrxYrlWbPC4SMGWn1je5MvlyYZckljNCAWE2vDwbcXggXgbbVFZ9Xwjvf7nJvyziabYm0ZMF5ExoqIB7gIKzFgexYDl0Yfnwe8El3ifLyqjlHVMcDdwK3RTOJFSyQSwu/fibcssWcNwO83Ys0Qn49brVDnIRXeDtuHeUrZ4TdirRhRVXY1+xkSDYMOrvRS4hJ2NpmweNFiJ8PtH521VBX9zSkE71rzTuu+X2ex5vxry5pYi85BuxZ4AVgH/EVVPxCRW0Tk7GizB7DmqG0Arge6pPcwWAQCu4BITJR1xltmbff5nf8PwZAbPm61vCXjKzqWlhrqLWWnmVBelLQFwwRCEQZWWJ61EpdQ08/Dzn3Gs1a0NO8EdxmUWel96F9IYi16Df2GWvd5JNayWhtUVZdgZW5uv+0n7R77gPO7OcfNWTEuzwgGraziXk9N3P1ezxBESoxnzZCQja1++pW4GOLp+LUf5nGzap9JjFuM7PNZIr2qbH+fGNa/jB3Gs1a8tOyGyiHWSlBo51nrUso0/9i3w7rvF82oYHvYmp3/u2kqGOQJgYAl1kpLq+PuFynB4xmC32c8a4b4bPUHObDM02U18VBPKbsDIUImMW7RsS+6sKS9WBta5WXnPiPWipaWXVAxeP9zW9jkgfepW5p3QNlAKI1GFzwV4B2QF9dmxFqeYHvWEok1AK9nKP5AYa+INfScrf4AB3hLu2wf7i1Fgd1BEwotNpqinrX+Zfv7xZCqMnaZMGjx0rLL8qzZlA8CKYHW+tzZlCmat+8Xnzb9hloizuEYsZYnBKJizeNJLNY8nhoCgd19ZZIhz9jqD8YVa8M81jazIrT4iBcGHVrlZXdzgFA4kiuzDLnEDoPaiFietoIQazuhqpNYqxgMrQ25sScNjFjLE4KBekRKcLv7J2xjxJohEf5IhF2BEAd4PV32DY3OYdtpVoQWHXYYtH/5fhFvp/HY22b6Q9GhCq27obLT3OhCEWstu6Ei3rUZsWbIEIHgHtzugYgk/sg8nsEEgw2oFsc/YhE5Q0Q+FJENItJlJbGIXCYiu0RkZfT2zVzY6QS2R4XYAWVdPWuDo2Kt3oRBi46mtq6eNXtl6J4WU4Ks6Ag0Q8jX0bMGlnhrKQCx5muE8oEdt1VU54UQzepqUEPmCAYbkoZAwfKsqYYJBvfg8QxO2jbfEZES4F7gNKzkystEZLGqru3U9M+qGjehcjGxNSrWDozjWauJirXdJn1H0bF/gcF+EV9dafWRBiPWio+W6JznzmKtohp2ru97ezKJqiXW7JQkNrbXUHX/ClgHYjxreUIg0JB0cQGAxzMk2rYoQqEzgQ2q+qmqBoCFwDk5tsmx2Elvh8WZs1ZZUkK5y2UWGBQh+3whXAKVnpLYtkG2Z63ViLWioyX621GIYdBgG0SC8cVaJGh5FR2MEWt5guVZS+4t80RzsBWJWDsQ2NzueV10W2fmiMhqEXlCRA6Ks78o6svaIc7BpfGd6TUet/GsFSH7fEH6ed0d0rns96yZOWtFR8yzFkestTVAJI+n2PibrHtvp3nfdpoSh4tRI9byhGBwD6Wlg5K22S/WnN3pMkQ8f3XnRGHPAGNU9VDgZeCheCcqhvqy9cEQAgwqLYm7v6bUbeasFSH7fKEOIVCAgRXWc+NZK0LsifblnaI4FYNBI1aN0HzF12jdd/GsRa/ViDVDb7Hmoe3F020YtKg8a3VAe0/ZSKBDim1VrVdVO7vnH4Aj+sg2x9EQDDOotISSBHMyjGetONnnD3VYXABQVlpChafELDAoRmzvU7xQIeTFqsmExMRa5wUG+XFtRqzlAcHgHkAp7WaBgdvdHxFPsYi1ZcB4ERkrIh7gImBx+wYi0r7q/dlYNWqLkoZgiOoEIVCIijXjWSs62gJhyj1dva2DKjw0GM9a8eFrBCROqND2PuXxb0tCz1p+iDWzGjQPsEtNdedZExE8nupo0ffCRlVDInIt8AJQAvxRVT8QkVuA5aq6GPhvETkbCAENwGU5MzjH1Ae6EWullmdNVbuUozIULm3BMBVxxFp1pcd41ooRXxN4q8DVyY+TJ/O6kpLnYVAj1vKA/aWmks9Zg+JKjKuqS4Alnbb9pN3j/wH+p6/tciINwRBjyr0J99d43ARVaQqFGZBE1BUa0UUnDwPDgQhwv6r+qlMbAX4FnAm0Apep6rt9bWs2aA2EY6s/2zOwopSGVrPAoOiIl9oCrJJTAG35PGctanvn6/MOyItyWiYMmgcEgnsAKE0hd5ol1pzd6Qx9T30wRHWCxQVgedagKOuDhoAbVHUycDRwjYhM6dRmFjA+ersKuK9vTcwebYGQ8awZ9uNv6hoChf3zvPJ6gUGC+Xgul7XN4ddmxFoeEEwxDApWrrVi8awZUkNVaQiGEqbtAKiJ1gcttkUGqrrN9pKp6j6seY2dU8CcAzysFm8BAzvNh8xbWgPxw6CDKjxmNWgxksiz5u0PyP5QYj7ia4QSD5SWdd1XNsDx12bEWh4QSDcMGqwvmpJThu5pCoUJKd0uMICi9KzFEJExwOHA2512pZTTLx/z9SVaYFBd6WGfL0QgZMaRosK3F8rieNZcLkuwOVzQJCWREAUj1gyZIRisx+2uwuXqmn2+Mx7PYFRDhELO7niGvqMhGAb21wCNh+11KzbPmo2I9AP+CnxXVZs6745zSOecfnmXr09VaQ2GKY8THh8UzbW2t81414oKX1NiQVM+IM/nrBmxZsgyqZSasrFzrflNKNQQxU52m8yzZs9nK0axJiKlWELtMVX9W5wm3eb0y0cC4QjhiMYNg9rF3PeaRQbFha8x/pw1yAtBk5RkYq18oOOFqBFreUAwuCel+WpQdIlxDSnQ0E2pKQCPy8VAd0nRhUGjKz0fANap6p0Jmi0GLhGLo4FGVd3WZ0ZmCV/ACnGWx/G4xuqDmkUGxYOqtcAgofdpoOMn4Sclzz1rxbNGP48JBhsoK4tX9rIrXruYuz8/5swYss/umGct8WpQKNoqBl8ELgbeF5GV0W0/AkYBqOrvsNLDnAlswErdcXkO7Mw4rdF+EXeBQaUpOVV0BJqtklLJBE3Dp31rUybxNcLAuOWhjVgzZIZAoIGqqmkptfV6hwHgD+zMpkmGPKIh0L1nDaKJcYPFFfZS1deIPyetfRsFrukbi/qO1oA1lzHRalCAPSYMWjzEUlskCoMOdLygSUp3XsNQG4T84E6cjzKXmDCow1HVtMKgJSX9cLnKCfiNWDNY1AdDlLmEipLkX/fBxelZK1raomIt/gIDW6wZz1rRkCjDv01ZASwwSDYfz27jUIxYczjhcDOqwW7rgtqICF7vMHz+7Vm2zJAvNATDVJe6uy0jVVPqji1GMBQ++z1rXT2u5Z4SykpdZs5aMWELlUSCpnwgBFsgnIfe1qAPQr7knjUwYs3Qc/bXBe0+x5qN1zvMeNYMMeq7SYhrU+Nx0xAME4p0yUphKEBao17UeHnWwE6Mm4c/zH2MiPxRRHaKyJoE+08UkUYRWRm9/SReu5zjt8OgA+PvzwPvU0L8CaoX2OTBtRmx5nD21wVNzbMG4PUOxR/YkS2TDHlGQzB5EXcbu4rBnpDxrhUDbUnmrIGVvmOvCYOmwoPAGd20+beqHha93dIHNqVPLAyav6HChMSuLYEQLY9ud3CY14g1h2NXL/CkUBfUxusZit+/E2tetKHYaeimLqhNTZEnxi02ki0wAKiuLKXBhEG7RVVfBRpybUev6XbOWh7XB01lPh44+tqMWHM4wUC0iHuaYdBIxEco1DkRu6EYqQ+EklYvsImVnDJirShoCyZeYAC2Z82EQTPEMSKySkSeE5GpiRrltGRZd3PWbEHjYO9TQmwRZsKghmwRDNYD6YZBo+k7/CYUWuwEIhH2hSOphUFLTX3QYiK2GjThnLVSsxo0M7wLjFbV6cBvgKcSNcxpyTJ/E5R44xc6h7wQNAnxdTdnzSwwMPSSQLABl8tDSUlFysd4TK41Q5Q9dl3QFBcYgPGsFQvJVoMCVFd4aGwLEjYLTnqFqjapanP08RKgVERqcmxWV5Jl+If987ocHCpMSHfz8UrLLKHq4GszYs3hBAN7KC2t7jbtQnu8nqEABIxnrehJpS6ozQB3CW4xnrVioTUYwuN2UeKKP7YMrPAQUWhqM6HQ3iAiw6NlzRCRmVi/u/W5tSoOvqbEYgby3LPWzZw1e5+Dry2rYk1EzhCRD0Vkg4jcFGe/V0T+HN3/toiMiW6f2W6Z8yoR+Wo27XQygWADntLUFxfA/jCoybVmSKUuqI1LhMGlbnYHzI9zMdAWCCdcXACm5FSqiMgC4E1goojUiciVInK1iFwdbXIesEZEVgG/Bi5SJ67+6s6zVloBLneezllrtGwvTRKhcrhYy1q5KREpAe4FTgPqgGUislhV17ZrdiWwR1UPEZGLgNuAC4E1wAxVDYnICGCViDyjqkX3lz8YbEhrcQFASUkZbvdAM2fNsN+zluRHuT01HrfxrBUJrYEwFUlWCQ80JadSQlXndrP/HuCePjKn5yTL8A8gYgkafx4uXLOFaLIIVflARwvRbHrWZgIbVPVTVQ0AC4FzOrU5B3go+vgJ4BQREVVtbSfMygDn/QvpI4KBPSlXL2hPWdlw/AXuWevOc9uu3XkioiIyoy/tcwL1KdYFtakpLTVz1oqEtkA44eICsOasAaaKQbGQrHamjcO9TwnpzmsIllB1sBDNplg7ENjc7nlddFvcNlFx1ggMBhCRo0TkA+B94OpEXrWcLnXuA6wwaPpizesdjt9XuGKtned2FjAFmCsiU+K0qwL+G3i7by10Bg3RBQaD3CmKNVMftGhoC4YTLi4AUx+06PA1Jp+zBlGx5lxBk5BUxJrDhWg2xVo8f2NnD1nCNqr6tqpOBY4E/kdE4q4nzulS5ywTifgJh5vTDoOCJdYKfM5aKp5bgJ8DtwO+vjTOKTQEQwx0l+BOMIm8MzWlJgxaLLQGQkk9awOjc9ZMrrUiwZeCZ83b39GCJiEpew2dK0SzKdbqgIPaPR8JbE3URkTcwAA6ZYJW1XVAC1CbNUsdil0XtEdhUO9wgsF6IhF/ps1yCt16bkXkcOAgVf17shMVsnc21bqgNjUeNy3hCK3hSBatMjiBtmAkYUJcgCqvG7dLaDCetcInFIBQG3jz2/uUkO7m44HlVXTwtWVTrC0DxovIWBHxABcBizu1WQxcGn18HvCKqmr0GDeAiIwGJgKbsmirIwkELOFgp+JIB693OAD+wi3ontRzKyIu4C7ghu5OVMje2VTrgtrYlQ7qjXet4PF1sxpUREx90GKhu0LnNmXOnteVkFTDoGE/BJ0ZhMmaWIvOMbsWeAFYB/xFVT8QkVtE5OxosweAwSKyAbgesCeJH4e1AnQl8CTwbVXdnS1bnYottLzenou1Ag6Fdue5rcLyxv5TRDYBRwOLi22RQUMwlPJKUDD1QYuJ1mAoqWcNolUMWkwYtODpLmmsTdlAR3ufEpLqAgNwrBjNWuoOiGVrXtJp20/aPfYB58c57hHgkWzalg/YFQg8nvS9Pd6yqGfNty2jNjmImOcW2ILluf2avVNVG4FYlnAR+SfwfVVd3sd25pT6QJjpVemFQQGTa60IaAtEKOtGyA+q9JgwaDHQXe1Mm7IBEGyFcBBKSrNvVyYIBSyb7ZJSiWhfcqpf+g6SbGMqGDiYgH8nIHg86VcmKbPDoIHCzLWWoue2qFFV6tMNg5r6oEWDLxhOybNmwqBFQHe1M21s75ODJ+J3IZ0QLzj22rLqWTP0Dn9gJ6Wlg3C50v8H43ZXUVLSr6DTd3Tnue20/cS+sMlJ7AmFCaoyzJN6/zH1QYsDVaUtJbHm4d1W5yYKNWQIO7TZ7SR8u+TUXqhMr7JOzkil1FT7/Q6tD2o8aw4m4N8VKx3VE7zeYYU8Z83QDTv8VihzqDf1/2SVJSWUu1zGs1bgBMNKOKJJU3eAFQbd2xrAidWRDBkkXe+TQ+d1xSVtsebMOXlGrDkYf2An3h7MV7Mp8xZ+FQNDYnZGvWPpeNbA8q7VG89aQdMWTZZc1o1nbXClh2BYafKZ/lDQpLzAwNmCJi6pXpvDFxgYseZgAv5deHqwEtTGa8RaUbMjukhgaLpirdRUMSh0fFGx1l0YdHA/q4pBfXPB5ms0QHSeloCnKnm7mFhzpqCJi/GsGbKJaphAcHevPGvesuEEAruIRMwPbzFih0GHJSkpFA9TzL3waQtExZon+U9ATT8vALubzSKDgsZOGuvqRhLEFhg4U9DEJVWx5qkEKXGsEDVizaEEgntQDffas2aLPkPxsSsQorLERaU79TxrUFz1QUXkjyKyU0TWJNh/oog0isjK6C3uApZ8oy1Vz1qlJdaMZ63ASSUPGTje+xSXVMWaiKOrGBix5lACdkLcHlQvsIml7yjgFaGGxOwIBNOerwZ2fdBgsUwqfxA4o5s2/1bVw6K3W/rApqyT6py1miorDLrbiLXCxt/U/ZwuiHrWxLHzuuLiawRxgadf9229zq3QYMSaQ7ET4vakeoHN/pJTRqwVIzv8QYamGQIFy7MWUmgMhbNglbNQ1VfpVI+4GPAFUvOsVVfYYs2EQQuaVD1rLhd4qxzrfYqLfW0Sr0JhJxxc+9SINYdie9Y8vfCsGbFW3OwMhBjm7ZlnDUxi3HYcIyKrROQ5EZmaqJGIXCUiy0Vk+a5du/rSvrSJhUG7Sd3hLnExqKKU+hbjWStofE2piTWIChpnep/i4k/32oxYM6SB39/zUlM2VkJdj8m1VqT0OAwaPaZY5q11w7vAaFWdDvwGeCpRQ1W9X1VnqOqMIUN6/r3tC1KdswbWIoPd+4xnraCxFxikgte587riks61OViIGrHmUPyBXbjdAygp8fb4HCKC12PSdxQjLaEwLeEIQ3oYBgUj1gBUtUlVm6OPlwClIpJ+/TeHYa8G7W7OGljpO4xnrcDxpxgGBUd7n+KSaogXHH1tKYk1EfmriJwlIkbc9RGBwM5ezVez8XhrCAScvRp0zpw5PPvss0QikVybUjDssBPiFlEYNBv9SESGi1iTXURkJtaYWZ+xF8gRvhTDoBD1rBXJnLWiHIsikWgYNA3vk9+ZgiYu6Yi1AlhgcB/wNeBjEZknIpOyaJMB8Pt39SoEauPxDHG8WPvWt77F448/zvjx47nppptYv359rk3Ke+yEuD0Jg9qF3/PNs9aTfiQiC4A3gYkiUiciV4rI1SJydbTJecAaEVkF/Bq4SAtgmWzaYdAiWQ1alGNRYB+gaXif8jAMWjYwtbZlAyyxFnHe4qqUxJqqvqyqXwe+AGwCXhKRN0TkchFJ/9fA0C2BwM5epe2w8XiG4Pc7e7LzqaeeymOPPca7777LmDFjOO200zj22GP505/+RDAYzLV5eUmsLmgPwqClLmGQuyTvPGs96UeqOldVR6hqqaqOVNUHVPV3qvq76P57VHWqqk5X1aNV9Y0+vags0RawPEephEFr+nnY5wvFvHGFTFGORfYcrQKY1xWXdMOgAP592bOnh6Qc1hSRwcBlwDeB94BfYYm3l7JiWRGjqvj9uzISBvV6agiF9hKJOPufcX19PQ8++CDz58/n8MMP57rrruPdd9/ltNNOy7VpeclO27PWgzAo2Ilx8+/HyfSj1GgNhvC4XZS4uk9nMDhaxaChpThCoUXXh1JNGmsT8z7lQag4HIJAc3peQ3Ck5zClv90i8jdgEvAI8BVV3Rbd9WcRWZ4t44qVUKgR1UCvqhfY2KHUQKCesrIDen2+bDB79mzWr1/PxRdfzDPPPMOIESMAuPDCC5kxY0aOrctPdgRCeMTykPWEwXlYH9T0o9TxBcIphUDBKuYOUN8c4ICB5dk0K+cUZR+y52ilOmfN2x80EhVBKR6TK2LXlqZnLV/FGjA/uhIqhoh4VdWvqgXag3OHP1a9IANz1ry2WNvtWLH2zW9+kzPPPLPDNr/fj9frZfly81+gJ+zwBxnicSOpJIKMw2CPm4/zbAWg6Uep0xZMXazVVNn1QfOrP/SEouxDPfGsQepVD3JJ7NrSEKLgyEUGqYq1XwBLOm17EysMmhNWrFgx1O12zwdqiYZzb7/9dtatW5crkzJGJOKnetDv2b27hoaG3l1PJFJD9aDf8/nnYUpKnPnefP/732fs2LEdtp1//vm89957lJb2zZRIuz/ddtttBdGHLggGOb+SHl/LlZEQbZ5IXr0XnftRWVkZs2fP5r333uszG/KlH50zBs48qDolG0vDEf5w9giqfDtYty7vF8ImxQljUZ9jzz9LeRJ+u1DhgJHZsSlT9FSI5ptnTUSGAwcC5SJyOGD/Te8PVGTZtqS43e75w4cPnzxkyJA9LpdLAdauXTt68uTJuTQrIwSCe/C1lVBZOaFXedYAIpEAzc0uysoOxOOpzpCFmWH79u1s2bIFVcXn88VqUTY2NuL3+6mrq+sycGYLuz+53W4KoQ9JSxtecTG2omf9Z5s/wE5/iElV5T32zvUV8fqRqvLRRx/R1NS3/5DzpR9t2t1CIBxhwrCqbtuGI4pubWT4gDKGVpX1gXV9j5PGoj7HFibpLDBof1wSgsEgdXV1+Hy+HhrXS0IKp/8FgkMhlT9PkRKrvX9wau3ToKysjJEjR/ZY9HfnWTsda1HBSODOdtv3AT/q0Stmjtr2Qq2Q0Ig1V8jlSn8lX2dErHOoOm/+0QsvvMCDDz5IXV0d119/fWx7VVUV8+bN6+sveO2QIUP21NcXhucgFFH6lfZcZLmjAi2s4Ha2Vkvaj6677rq+Nicv+lFEFVeKIrzEJbhECIULbqiN4bCxqG/xpxkqjIm17v8I1dXVUVVVxZgxY3Lzp69tL+wBhkyE0hT8S+EQ7AhB/wOhX+/njNuoKvX19b0S/UnVgKo+BDwkInNU9a89eoXs4SpEoQZRYSUuMlFgQsSFSIkjxdqll17KpZdeyl//+lfmzJnTZX93IRoROQNrVXIJ1rzKeZ32Xw1cA4SBZuAqVV2b4HQF058iqlGR1XuxFlLFjbPVWrJ+lINQZF70o4hCCgtBY7hLhFDE8ZfVY3o7FuU1vkZwl4E7RS+8N3XPms/ny51Qg/350iTFhVauaDvNbJoaEWHw4MH0pmZwd2HQb6jqo8AYEbm+835VvTPOYYZeohrEJT2fHN4ZETeRiPPSMDz66KN84xvfYNOmTdx5Z9euNGvWrITHikgJcC9wGlAHLBORxZ3E2ON2viwRORvLO3xGBi/BkYSiIZzSXvSfkphnzfk/0Mn60Y4dO7jttttyZJlzUVVcrtT/DLpdLkLhPEjV0EN6MxblPenkIYOOCwxSIKfTKGzR5UpRrIlYjpIspCXp7fvQXZytMnrfr1evYkiLSCQUC19mAhG3Iz1rLS0tADQ3N/fk8JnABlX9FEBEFgLnADGxpqrtR5NKwPnKIwMEI7ZY6/k57NBnKA/EWrJ+ZO8zdMTyrKXeQdwuIVDAYq2XY1F+42tKfb4atFtgsDc79mSSdD1rdlsH/l7GJuPm223lypWbVHV5+9sHH3ygfc3f/vY3BXTdunWqqhoOh/U73/mOTp06VWtra3XGjBn66aefJjx+9OjRWltbq7W1tTp58mT98Y9/rLt3v68tLZ/F2tx5553q9Xp17969qqq6Y8cOHTNmjG7bti3W5lvf+pb+8pe/1KVLlyqg8+fPj+17441nFdA77rhDVVUvuOACnT59uk6fPl1Hjx6t06dPV1XVQCCgl1xyidbW1uqkSZP01ltvjZ3jueee0wkTJujBBx+sv/zlL2Pbv/a1r+mECRN06tSpevnll2sgEFBV1Ugkot/5znf04BLB7SoAACAASURBVIMP1mnTpumKFStix5x++uk6YMAAPeuss5K+t2vXru2yDVhu3XEeVujTngx8MXCPduonWGHQT4DNwPjO+6NtrnrppZf877//fsuqVauS2tQX9LZPHTR6tB4yZYpOi37Gr7/+ui5durTL+33ppZfqokWLVFX1hBNO0GXLlqmq6saNG/XgQw7R3/71Kf18T6N+7Wtf09raWp06dap+8Ytf1H379qlq4j7xm9/8Rg8++GAFdNeuXbHtPekTic716KOP6rRp03TatGl6zDHH6MqVK+O+F8n6UDZu9riUi7HIZtu2bXrhhRfquHHjdPLkyXriiSdqeXm5Tp8+XQcNGqRjxozRiVOm6XFfOjHu8Rs3btSysjKdPn26Tp48WS+++GL9dMde/WBrY6zNf//3f+sBBxyg4XC4w7FLlizRI444QidNmqQTJ07UG264QVVV169fryeccIJOnz5dJ02apP/5n/+pqonHnM8//1xPPPFEnTRpkk6ZMkXvvvvu2GvU19frqaeeqocccoieeuqp2tDQoKqq69at06OPPlo9Hk9srLNJ1Fdtrr32Wq2srEz4nnbXj4A/AjuBNRp/jBGscmUbgNXAF+K1a3874ogjEtqTUR46R/X+k9M75udDVV/4cbfN4r1vfcrezbpt5T86fB9mzZqlH374oU6dOjXuIcEtq3Vw9SC96aabOmx/5pln9LDDDtNDDz1UJ0+erL/73e9UNXHfjkdvxqOUBiDgdqwVoKXAP4DdwDdSOTZbN6eItfPPP1+PO+44/elPf6qqqo8//rjOmTMnNoht3rw5NpjEY/To0bEfoX379uncuXN17tyzta1tS6zNkUceqccdd5z+6U9/im2777779Otf/7qqqq5YsUKnTZumgUBAly5dqtOmTdPTTjst1vb667+t06ZN7DKAWfuu15/97GeqqvrYY4/phRdeqKqqLS0tOnr0aN24caOGQiEdN26cfvLJJ+r3+/XQQw9V+71+9tlnNRKJaCQS0Ysuukh/+9vfxrafccYZGolE9M0339SZM2fGXvPll1/WxYsXx36Yb7zxRm1sbNRAIKAnn3yyDh48WB955JHuxNr5ccTabzRBf8GqbftQov1O+JG16W2fOmj0aF366WcaaPdDmqpY27x5s06YMEGffOopXdnYoj+65ef6ve99L3bM+vXr1efzJe0T7777rm7cuLFD31ZNr0/YJDrX66+/HnsPlixZojNnzozbj+bNm9fl/SlksRaJRPToo4/W++67L7btvffe01dffVVV93/ma7bs1bo9rXHPsXHjxtgPWSgU0pNOOknvuf+PunrzXo1EIhoOh/Wggw7So446SpcuXRo77v3339dx48bF/mQEg0G99957VVX1y1/+sj711FOxtqtXr1bVxGPO1q1bY2K+qalJx48fH+tfN954Y0xw/fKXv9Qf/OAHqmr9iX3nnXf0Rz/6UYexLllfVVVdtmyZfuMb39DKysoejUXWQ76ElcoqkVg7E3guKtqOBt6O1679rc/E2v0nqT58bnrH3DFe9envdNss12ItUr9Rjz5ietzvQyKx9uzj9+uxR35Bx40bp5FIRFWtPxUjRozQzZs3q6qqz+fT9evXq2rivh2P3oi1VGNtX1bVH4jIV7HmB50PLAUeTfH4rLJ23Q8Pamn+qMLni7Di3cruD0iBqn6TmTDh/yVt09zczOuvv87SpUs5++yzufnmm9m2bRsjRoyIzQcZOTL1PDT9+vXjvvt+y6hRB7Fnzz5GjIBPPvmE5uZm7rjjDm699VYuu+wyAK666ioeeughli5dyo9//GPuueee2JLgUaNG0dTUxI4dOxg6dCgvvfRPTj31OFQ7hjFUlb/85S+88sorgBVTb2lpIRQK0dbWhsfjoX///rzzzjsccsghjBs3DoCLLrqIp59+milTpnRIIDlz5kzq6uoAePrpp7nkkksQEY4++mj27t0be29OOeUU/vnPf8aOe/HFF7n99tt58sknGTlyJIsWLeKkk05i4cKFyd6uOuCgds9HAluTtF8I3JfshDb/7+M61jS3pdI0ZWr7lfPz8d33hUz0KY1GLtNdYLB9+3YuueQSfvGLX3DuOeewel8r27dtY8rB42JtJk6cCMCbb76ZsE8cfvjhcc+fTp+wSXSuY489Nvb46KOPpq6uLm4/OvbYY/nhD3+Y1vuQKX72zAes3ZrZ1CFTDujPT78yNeH+pUuXUlpaytVXXx3bdthhh3VppykuMCgpKWHmzJns3L4NRQlHlH/9cym1tbVceOGFLFiwgBNPPBGw8lz++Mc/ZtKkSQC43W6+/e1vA7Bt27YO/XbatGlA4jGnuro6Vj2gqqqKyZMns2XLFqZMmcLTTz8d6yuXXnopJ554IrfddhtDhw5l6NChPPvssx2uIdn4FQ6HufHGG3n88cd58sknezoWoaqvisiYJE3OAR6O/ji/JSIDRWSE7q8GlDt8jTBwVHrHeHtQzP25m2D7++kd0x3Dp8GseQl3L/3Xa5SWurt8HzZt2pTwmAVPPst1V13MfY89zVtvvcUxxxzDvn37CIVCDB48GACv1xsbCxP17UyT6gxTOzHImcACVW3IijV5xlNPPcUZZ5zBhAkTqK6u5t133+WCCy7gmWee4bDDDuOGG25IOyFnVVUFo0cfyCeffAbAggULmDt3LscffzwffvghO3da1Q1cLhf33Xcfc+bMYcKECXzpS1/qcJ7zzjuPRYsW8cYbb3D44dPxeku7iLV///vfDBs2jPHjx8eOqaysZMSIEYwaNYrvf//7VFdXs2XLFg46aL8uGjlyJFu2bOlwrmAwyCOPPMIZZ1jz91M5pv2xAEuWLGHu3LlUV6eUD24ZMF5ExoqIB7gIWNy+gYiMb/f0LODjVE6cSzLTp5Sr/uNMDj/8cI466qiUX/uSSy7h2muv5fzzzwcssXfeJZdy2223ccwxx/C///u/fPyx9Ram8/na9OSYVHjggQeYNWtWT/tRQbFmzRqOOOKIpG1UNeXUHT6fj7fffpvTvnw6YKWEscekr371q/z973+Pve/JXvt73/seJ598MrNmzeKuu+5i715rvlOiMac9mzZt4r333ov15R07dsSE3IgRI2JjYiKS9bt77rmHs88+O3a+LPahA7GmYtjURbd1QESuEpHlIrK8NysH08LXlN4CA9hfH9ThrFn3IUdMT108tbW18Y9X3+Q/TjmeuXPnsmDBAgCqq6s5++yzGT16NHPnzuWxxx4jEl2EkKhvZ5pUPWvPiMh6oA34togMARyTeGbK5Ns2A6xdu/aIKVOm9NnrLliwgO9+97uA9W9twYIF3HHHHXz44Ye88sorvPLKK5xyyiksWrSIU045JaVzRiJBVDW2wGDhwoU8+eSTuFwuZs+ezaJFi7jmmmsA6x9CbW1t7N9rey644AIuvPBC1q9fz0UXXcCrr74AdBRr9qBr884771BSUsLWrVvZs2cPxx9/PKeeeqrtxu9A55Ut3/72t/nSl77E8ccfD5DSMTZf+cpXmDRpEuXl5fz2t79l165dlJUlT76pqiERuRZ4ASt1xx9V9QMRuQXLrbwYuFZETgWCWNl2Lk160iipeMCyRSb6lAIPL3meo0fvv45E73377aeeeiqPPPIIl112GRUVFbhFmHjodD799FNefPFFXn75ZY488kjefPPNtD7fmF09OKY7li5dygMPPMBrr73GHXfc0aUfeTyeXp2/NyTzgOUS+2NI5ln75JNPOOyww/j4448577zzOGz6oXy6u4XWNj9LlizhrrvuoqqqiqOOOooXX3yRs846K+lrXn755Zx++uk8//zzPP300/z+979n1apVLF++PO6YY3vBmpubmTNnDnfffTf9+/estFGifrd161YWLVrUwaPbk7EoReK9210MU9X7gfsBZsyY0Tere3yN6S0wAEuspbvAIIkHLGtohPhvfXz+/ve/c9Lxx1JR7mHOnDn8/Oc/56677qKkpIT58+fz/vvv8/LLL/N///d/vPTSSzz44IMJ+7bX27uE9p1JSayp6k0ichvQpKphEWnBcusmJYU8WF7gYeAIoB64UFU3ichpwDzAAwSAG1X1lTSuK+vU19fzyiuvsGbNGkSEcDiMiHD77bfj9XqZNWsWs2bNYtiwYTz11FMpi7Wmpj18/vlWJk6cxOrVq/n444857bTTAAgEAowbNy4m1sDysMVbgj98+HBKS0t56aWXuPPOebz66gsdPGuhUIi//e1vrFixIrbt8ccf54wzzqC0tJShQ4fyxS9+keXLl3PQQQexefP+P4V1dXUccMD+OqM/+9nP2LVrF7///e9j20aOHJn0mPbMmzePH/7wh/Tv35+SkhIqKyt5+umn2bNnT9L3Sq16tUs6bftJu8d9nhG1N2SqTyldQ6CDBw/u8n42NDRQU1MTe/6DH/yARx99lPPPP5+nn34at1irQfv168fs2bOZPXs2LpeLJUuWcOyxx6b8+dqk0ydSYfXq1Xzzm9/kueeeY/DgwXH70T333NPj8+cjU6dO5YknnkjaRqMaIZlQPvjgg1m5ciXbtm3jxBNP5PklzzJh5ok8/8JzNDY2xkI9ra2tVFRUcNZZZzF16lRWrFjB9OnT457zgAMO4IorruCKK66gtraWNWvWJBxzxo0bRzAYZM6cOXz9619n9uzZsfMMGzYsFj7ftm0bQ4cmT16a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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Box Plots\nAnother useful way to review the distribution of each attribute is to use Box and Whisker Plots or boxplots for short."},{"metadata":{"trusted":true},"cell_type":"code","source":"#boxplots help to represent outlies\nTrain.plot(kind='box', subplots=True, layout=(3,4), sharex=False, sharey=False)\nplt.show()","execution_count":56,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Multivariate Plots\nit provides examples of two plots that show the interactions between multiple variables in your dataset.\n\n* Correlation Matrix Plot.\n* Scatter Plot Matrix.\n* Correlation Matrix Plot\n\nCorrelation gives an indication of how related the changes are between two variables. If two variables change in the same direction they are positively correlated. If they change in opposite directions together (one goes up, one goes down), then they are negatively correlated. You can calculate the correlation between each pair of attributes. This is called a correlation matrix. You can then plot the correlation matrix and get an idea of which variables have a high correlation with each other. This is useful to know, because some machine learning algorithms like linear and logistic regression can have poor performance if there are highly correlated input variables in your data."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.columns","execution_count":57,"outputs":[{"output_type":"execute_result","execution_count":57,"data":{"text/plain":"Index(['FULL_Charge', 'FULL_AcidicMolPerc', 'FULL_AURR980107',\n 'FULL_DAYM780201', 'FULL_GEOR030101', 'FULL_OOBM850104', 'NT_EFC195',\n 'AS_MeanAmphiMoment', 'AS_DAYM780201', 'AS_FUKS010112', 'CT_RACS820104',\n 'CLASS'],\n dtype='object')"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Plot correlation matrix\nIt is very useful to highlight the most correlated variables in a data table.\n\n## Note: \n### Positive correlations are displayed in yellow and negative correlations in blue color. Color intensity and the size of the circle are proportional to the correlation coefficients."},{"metadata":{"trusted":true},"cell_type":"code","source":"# plot correlation matrix\n\ncorrelations = Train.corr()\n\nfig = plt.figure()\nax = fig.add_subplot(111)\ncax = ax.matshow(correlations, vmin=-1, vmax=1)\nfig.colorbar(cax)\nticks = np.arange(0,9,1)\nax.set_xticks(ticks)\nax.set_yticks(ticks)\nax.set_xticklabels(Train.columns)\nax.set_yticklabels(Train.columns)\nplt.show()","execution_count":58,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAqkAAAJuCAYAAACTy5vLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xu8VXWd//HXW+SOFxDNCyhKWGoqJKmNNqNmXpqZ0HISakwmyy7aNF2cdHLUrOZnF5tumlEZ1pTgeEmcHNFMshovYHIRryCkJwkV8AqBnPP5/fH9bs5in33O2cJx73Xg/Xw89oO9v2t9v+u71l6H/dmf73etrYjAzMzMzKxMtml2B8zMzMzMqjlINTMzM7PScZBqZmZmZqXjINXMzMzMSsdBqpmZmZmVjoNUMzMzMysdB6lmZmZmhqQrJT0t6YFOlkvStyUtkjRf0psLy06X9Fh+nN4T/XGQamZmZmYAU4ETulh+IjAmP84EvgcgaRhwIXAYcChwoaShm9sZB6lmZmZmRkTcCazsYpUJwE8iuRvYUdJuwPHAbRGxMiJWAbfRdbBbFwepZmZmZlaPPYAnC69bclln5Ztl281twMzMzMzqd/zRg2PFytaGbvO++WsXAn8pFE2JiCmvshnVKIsuyjeLg1QzMzOzBlqxspV7Z+7Z0G322e2xv0TE+M1spgUYWXg9Angqlx9VVT5rM7fl4X4zMzMzq8sM4AP5Kv/DgecjYhkwEzhO0tB8wdRxuWyzOJNqZmZm1kABtNHW7G50IOlqUkZ0uKQW0hX7fQEi4grgZuCdwCJgNfBPedlKSV8EZuemLo6Iri7AqouDVDMzMzMjIiZ1szyAszpZdiVwZU/2x0GqmZmZWUMFrVG+TGrZeE6qmZmZmZWOM6lmZmZmDZTmpG72HZq2eM6kmpmZmVnpOEg1MzMzs9LxcL+ZmZlZg5XxFlRl40yqmZmZmZWOM6lmZmZmDRQEreELp7rjTKqZmZmZlY4zqWZmZmYN5ltQdc+ZVDMzMzMrHQepZmZmZlY6Hu43MzMza6AAWj3c3y1nUs3MzMysdJxJNTMzM2swXzjVPWdSzczMzKx0nEk1MzMza6AA38y/Ds6kmpmZmVnpOEg1MzMzs9LxcL+ZmZlZg7U1uwO9gDOpZmZmZlY6zqSamZmZNVAQvpl/HZxJNTMzM7PScSbVzMzMrJECWp1I7ZYzqWZmZmZWOg5SzczMzKx0PNxvZmZm1kCBb0FVD2dSzczMzKx0nEk1MzMzayjRiprdidJzJtXMzMzMSseZVDMzM7MGCqDNt6DqljOpZmZmZlY6DlLNzMzMrHQ83G9mZmbWYL5wqnvOpJqZmZlZ6TiTamZmZtZAgTOp9XAm1czMzMxKx5lUMzMzswZrC2dSu+NMqpmZmZmVjoNUMzMzMysdD/ebmZmZNZAvnKqPM6lmZmZmVjrOpJqZmZk1UCBanSfslo+QmZmZmZWOM6lmZmZmDeZbUHXPmVQzMzMzKx0HqWZmZmZWOh7uNzMzM2sg34KqPs6kmpmZmVnpOJNqZmZm1lCiNZwn7I6PkJmZmZmVjjOpZmZmZg0UQJvzhN3yETIzMzOz0nGQamZmZmal4yB1CyapVdLcwmOUpMmSvlu13ixJ4/PzpZKGVy3fUKe7NiUNkfR9SWskLZZ0p6SnJI2T9ECtNuvcl3GSQtLxdezvk5L+WKNvoyQ9kPf3NEnf7mp/87LfVi2bW9yPWn2TdJSk23PZE5LW5+OxQtK9ue2pkpbk9l6S9LHC8f+9pEckzZM0W9IFhX04VdJ8SQslfbXQhz0l3SFpbd7WUkkPSvqSpPMlLcptHi+pLT9WSnolL3tG0pW5rWH5GL6S2whJz0q6MPf3kVzWJukHkqYXzoelkubmdvpKukrSAkkPS7o7nxP3S3pM0p/ztiv9WZOP1drctwcl7STpJ7ne+nysHiicU2skvZDf+5WSLi8ck/OK+53LBuT3YIGk53KdxXkbB0m6J/ftf/PxfDQfi6fy9k/J58czeX9bJL2Yt3O6pIvysbk813tJ0qdyWUi6VNKkvP2ncr0v53Ohss6a/FiQ93VB3s7SvC8/lfSnvP0V+X1al8+L53P5gsKxvE3SR3NbC/Nx/WY+Zpfmsjbl/wPyceon6ce5nXmSjiosm5X7sV7Sckm7dPE3eXLepzfm19so/d1V9mu2pL0L679UVX9pXu9P+fGl/F6tlrRdXudTuS8habikXfLx3LXQzuWSzlX62wxJZ9T4+/1sfl3P+fyQpPMKbfw4H5NFks4tlP8slz8g6UpJfXO58nFYlN+3Nxfq3KJ0bv5PZ8fVtgytqKGP3shB6pZtTUSMLTyWNqDNHwIrgXuAU4HJQJ8e2O77gN8Bk+ro28iI2Kub/X0oIv65ju1uJ2kkgKT9OllnUid9awMuAK6IiIHAlcBBwMC8/JyIGAssAs6rqvt+4BDgcuC9efs7AV8D3h4RBwCvk/T2vP75wDXAMqBSdigwFvg0cABwQm4vgN8DVwCHAX8BbgaOyPX+kzRf/f+Ah4FngMHAZbm/vwCWAE8DayPi1Mr5AFwHXJ/b+Qegf0QcCCwA3ggcC4zP7V8F7J/XXZyP0buAAbnP2wK3AY8DnwCeB34OLAd2qtQDTgbeDfQFXp+P1f7AxOJ+S+oDrAWOAR4Bvg08lo/1EuCXed8PAv4KWBAR+wLvyH24r/D+TM/trANm5noX5r4vIP3femhe9xTgwbzuu/N2jwa+kfflFWA28ATQmo/DB3MfDyL9Hb2Q36sTgL8FvpmP98m5HGAQMDuX35Pfn8eAJ4GLgOPyeTM+tzMzb/PdwJ1s7MMA+b17B3CppOLnxWV5Gy+Rzo/OVP42JubXpwK7Awfltk8GnuuiPsDREbEH8AZgH9J7swiYUNjGWmBV7vPTwFeArwPkAPBI4NK8/oLcj4qJwLzKizrP50OAjyh98e0DnA6cSDqfJ+XzD+BnpPP+QNLf/Ydy+YnAmPw4E/heoT9fA07r5piYbRUcpFqPkTSa9IF5fqUsIh4H1uSXfZQybwuBz5KDV0kfzhmVeZKukzQol0+V9A1Jd5A+ND8NTFTKxH1fKVv68ZyJ+CMwOGc/5kg6J29zr1znLuCsQncPKWQqBheyRvNJH0AV19D+gTYJuLqwvwMk/Rj4F2AY8HeSBnRxiF4mfahvRwrAPi5pNimwqmR9hgD7kgKYW4G7gJF523cBbRFRCQp+BbyncqiB7fPz7YGnIuIlYA4peBkcEUuAPwEivUeHkL5QAMwCtpd0NCko/lhu865cX8DOkkQKcNaQApwN8rL3Fo5RkI7tvsBbSEHT86Tg7dGI+FxErAPW52NCRNwcEZHrv0AKSr5ICkiWk74E7UP6v2unXOf23O5qUjBNXn9aRKzN+70IODS3vWve96+SAtsALiYFT38gfSH6PSkoIiIeJgUhb2Jjx+f3oG8+rreR3stfAIdExLJ83J4nBXKtuf+DCv3sD6wgfUGYQfv/ybsByyKiLe/LTyNied6XlcCeuW930v4e3pH3AeAk0pciSIHTK8Cn8vm2KO/n03nbl+fjMU1SJfA7DDhO0g9yu6No/xJT2fdvkc6BwyuFOfP4H5LukvQH4Ki86N8kfTTv1zbALEk3kM7x/1cMgJUyy/Mk3V05HpIuAj6aH3vmY3xq/j9nl3zsK1/+yMf33ZKWkALNs4E9gJ8AOwJH5P9rjs3L9iT9nSFpcM56ziZ9OXo6t/k24G8kzSQFutuTztEfk97n6/Pzafk923A+5/PuXmBEbmsC8JO86G5gR0m75Tq3Ay9iW7SIdAuqRj56o97Za6vXwMKw1Q0NaPMAYG5EtHZSdwwpG3cAKaAYncuvj4i3RMTBwEPAGYU6+5IyVPeRAoWHSUHLDaQPlk8DHwHmkzKXkD6UK1nSDwF3RsRbu9inzwDPR8SBEXFQ7kPFtaRME8DfAzcVlp1F+oD8LSlYHEh7dgfS39fFpA/TG4ChpA/P50kZsgUR8RbSB/06SZXAZXvgoog4BvgUKbj5b1Lg0Ddnb7YlBSIjc52LgH8kfQhOI324AgwnBXdj8utB+d9vkbJ5P86vA/gN6QO9T0T8Ipe/APQjBdjvImWx5pECxZaq4/g2YHlEPFY4di+TsoQjgK9HxEpSsPBkod62pKzwmjzMOZeUfRoDzM/n0x6kbFkbMDf3tzjM3C/vWyVwrt5GSy6DFGwOBf4M3BYR9+TXa/J2DyBlCSvrExGLcz8rgdCppEzd+0hfUG7K26gELk9KelOuM73Qj+/kY7KAlGXfmZRJvIUUMErSo6RAfkI+Fu9l4/+rXwDeV/k7pP1LwW+AfXPZTqQvPJD+hoaRzruTSEHqvnn5OlI28z7S39Gl+cvGQ6SA8grg70hfIk7J7W0DHAd8PvelegThyfz3tjzv/ztJ79l/kL70/RUps7mClDEcTfvf2GDg7vx/wZ15uxtExAukL3qr87H7J+BZ4JukLwvDJR1CGsE5BtiBFJRWgr49SFnzfyN9cfqX3KeZtI9AfB74Nen/hYXAp/Pf5pzcn0NIX3Qi93cGsD5nX9/PxucakKYK5H29pdCPzs5PM8scpG7ZikPzJ+ey6GTdzsp7ss0lETE3P19Ke+bvTZJ+K2kBaej1gEKd/yYFBNNIH2zfBSZFxC2kD6oZpA+NYvZzNfCQpB1IgctTufynnfTtr0nDl8X6FSuBVZImkj64i8uOJGWopuVs21I2DrArw/0Ae5MC2dmkYGt34GOS1gL7kQKkPfO6q4DvSWrJx+NW0ofgKlImaTopMF5KykJCChSmkj7sJgI/zdmp6olI+wCv5KHM75I+jCvH41nggdy/6uO0mhSkTiJ9uD5BCnCKNso0kwKtVlLAMBP4jKR98nE4WVLlfXkFWBkRAyNix9y3w0nH/tm8TmU/omqfRueg7MbcnxVV6xdF4d9fkwLnQ3MwWd1+UPu8rpRNJwVGl5ACznOqlk8jvQ/bkr5QVawhBak/JH2BWU7Kak8jDfmuy/uyOPexMg3kvMLUDoD/KQxJV4LEF/P+X0I6pt8srN8X+AAp6NqVFMRun/f1P0hTAC4nBUqvIwVuzwM/yu08TvsUi5/l5UfmNt6fh7wrZuR/dycFnC8C/5WPxUukYG0h6Ty/jRTAHpnrrAMqIxz30fVtEq8nTYsYQgpoK1+kjgRuyBnKB/J6b8t1luXjNJ30xaYf6Zx9mvRFBVIAfm6utwtpCseepL/hP5OC971JWfC30vW5VnE56ctyZY57PXVsC9eGGvrojRykbn1W0P6fccUw2oOBzWlzIXBwDo5qtVkMftpoP/+mAmfnuV5fIH0oVKwhBTUXkDKkFwEnKl80QXtQcRU5gCYFX7fm8lZq7+/zhdeVoKQz00lB7NVV5SIFuBdIWkrKCB1Jyrato/2DaHru1/WkbEylP5/N6y4D/hwRlQxukILTvUmZ4w3DqRFxU0QcljNVj5DmHEIKjq/Jz+eQjuFw0ofv64BHJR1Eyir1zf2dSPpQh/b3sA1YkYceh+V9WEc6jutJ8xP3J334tx+IlNl9NxtnDd9HyhwtIAXivycFQ9/Ofax8SREpqKq0dSEpAFgAjMvnU0vuzwrg4FznadJc1rH5eA0mDUuT169kmSEFpJWgeCEwjpQFnEWavrCC9F48mpcfXlifHFyvJ83frahs4ybSeTCC9ozdTaRgLHL2r2Is7fNAB5Oymq8nBa33kILJU4EfAOMj4n9J7+udpCwotGdra3mKdK4+Tco0kvdpPSm7vooUmImU0fxB7tN9pGO4nHTutAJ/yoHwhFxW+Zs5njS3eAFpruX2pKx8xdo8f3o/4Mh8rp1D+sK4Le1fSs4hBcjjaP/7e6Uw3aOVqmAu/90PIf3NzCUFjLuRgujB+bgW67Sx8d/2KwAR8ee87ADg9rxO5f+jyrSVVuCwiNgz/22+lfRF+5U873Ul6W+hpWqbxXOtcj7vTBr1qejq/DSzzEHq1mc2aT7WrgBKV/T2Z+Ohp01qk5TJmANMqbQpaQwbzxWrZTtgWR4Se3/VsgOBeRExkvSB+h3SkPT5pA+9CXmbp9D+QTEQ2DEiniMFysfk/X0/6cO2P+3zzCAFKmcXXg9iYzeQ5i/OrCpfDqzOfTsuv76OFKi2kj749oN0xTwpGJpGOlZPky6eeDMpsOmrqjsXRMQrpGzbCFLASZ7fiaShwMdJwQ2kwKeSaRuT93M1KcO8Oj8+ShpaXh0RoyJid1JWrS/t72E/UkD0b/k4HULKHkHK0H0B+BtS8Fx0LPBwRBSnADxBGnJdDNxPmi7xaN7WvsA2kvqRApcX8359iBQETSRNiXiQ9F4/SMrknU7KILfRnjWFFDAsoz2jPoM0F7m/0tXjY4B7Je1MOifuJ33hOTbvy/m5/jhSpvDIyj5KGkgKrBdU7fNM0vt+LCnoOC7vKxGxBvgcHbPNf8r7fhPpi8V44IGI2IsUBK0mDUd/lhTAktc9HGjJ+7ITVfOBC/5MOlen0z48/xApOPuXvO03kEYVfkGaknE/6Vw9hDSHG9L5o7z/7yAd72fyefc2UmZxDOlv5+d0HPI/hfSl5Cf5XBtJCpT/Kvf/0Bz4H0QK1n7Xyf4U9SNlJJ8g/V9zdN6HN0fEKNJ7sBvpHDspz23fhjQv9rc12rsf+K8a05Nmks71hyOiRdK4XL4CGKFkMOlL3ROk81mSxuTzeSI5m1w4nyfl+cUVM4AP5LYOJ003WlbHMTDbqvgXp7YyEbFc0ieBm3OG6iU6/gc6X1Ll9TWk+Z6TJZ0EDMrD0IdXApJim6RzahfSh+I80n/sraSM2rBct5LxG5tf9yFlEWbTPu+r4kjas3NfIGUzR5E+fJYB/48UvPbNfZtPCuiuzXVOy88X0X7R0ttoz+JByppsL+ksUhA3jTREPYD2ua6HR8S6NF1vg0GkQHwB6QN4cm7/86QLZf5CylQOz/vxhYi4Nx+rK0nB52/yfjwH/Gtudxfgl5JeycdqIWle67vZcH0SS4ALIuLRXOcz+TjsThomXk66UOMGUpbsQVIwcBbpSnQkXU36oN09r3ND3oddcp9fIAUui0mBzY/yMRlACj7/SPt5MZQ0r3ZEIVC9jDTn9QHSe7w4b2MlKRh7iRRArSd9+M8lZUnXkQKcdXn7byV98VhPCt6eIJ1XlXNqLekc25YU7D9H+3v9CCmDf1ZEtOYM8VWkgOeYXO9bpAvE/jYfwy/l12MlPZLf5+1z+9/P72u//J5uSwr+nyZ9odgrH9uvkjLJA/I5vh4gIp6S9AVSVm1Ebuv0fLy+mvfz9aTgdZHab3e2hDRn9IOkuxD8i6T35+0Nyf34ESn7+ZWcyZxBCiQrUwouoD3T+yTp/HiZdHV5X9Kc55fz8uHA6yU9RAqsf57L/yG/l7Pzv78izRF/SFJ/2k0inVPFspdJXzL/ko/7/aS/rWvZeEpEtTtIowFB+5cySMHgiXm+cMUvSV9sp+b925t0d437JY2qaveZvB/VvkjK0g7Jx38paV7u7aQvlQ+QAvgngccjYr2k63P5OuCSiFiY27qC9HdyV/67vT4iLib9X/lO0v9Lq0lzawFQuu3dG/P2W4AzIqL6C7L1cgG0Ok/YLbWPrJiVW/4QbM0fCm8FvpeHes2sl1C65+pnI+Lvmt0Xs2YZc+DA+NaM0d2v2IP+dp+F90XE+O7XLA9nUq032RO4JmeA15Hv5WhmZta7qNfeFqqRHKTaJpF0DxsP5QGcFhHV8/Z6rM18a6NxHSo2wGuxv1tSfyrK1q+y9efVkPR50vB60U5sPBcXesn+VETELNJc1g168/tkZq8dD/ebmZmZNdDrDxwUl964b0O3edLoeb1uuN+5ZjMzMzND0gmSHpG0SNK5NZb/p9p/0OfRfKFqZVlrYdmM6rqbwsP9ZmZmZlu5/KMcl5Huh90CzJY0IyIerKwTEZ8qrP8JNp6Ct6anL2Z2JtVeM5LObHYfqrlP9Sljn6Cc/XKf6uM+mW2sNdTQRx0OBRZFxOMRsY50O8YJXaxf/SuDPc5Bqr2WyvgB4D7Vp4x9gnL2y32qj/tkVm57sPEP+7Tksg4k7UW6D/GvC8UDJM2RdHe+f/Zm83C/mZmZWQMFasbN/IdLmlN4PSUiphRe10q3dnZ1/UTg2qpfbNsz/2DJPsCvJS2o+rGNV81Bqm1k+LA+MWpk3x5pa889tmX8wQM2+/YRjy4Z3hPdAaB//x3ZfvsRm92ntj51DZ3Upd/AHRkydGSP3Gajp26712/QUAbv1DN9au3uR3FfhW13HMqAEZvfr21e6YneJH23G8qg121+n1oH9tydVvoM25H+ozb/PAfo2299TzRDv122Z8i+u/bMeb6qZ/6P6jd4KIN37qHzvF9PtNLDBrR1v04TbNf/L83uQgfPPrTy2YjYudn9eI09283V/S2kXyasGEH6NchaJpJ+wXCDiHgq//u4pFmk+aoOUq3njBrZl3tnjux+xQY69n0fbHYXOlg7rGc+JHva+v49Fzz3lBUHl69Pg1vK16fnDuzByLkH7bFX9W1Zm2/tNa9rdhc6eGGfZvegI+37UrO7UNMxez/W7C508P3x//XHRm+zrXw3858NjJG0N+nnkCeSft55I5LeQPop7LsKZUOB1RGxVtJw4AjSTz1vFgepZmZmZlu5/JPjZwMzgT7AlRGxUNLFwJyIqNxWahIwLTa+0f5+wPcltZGud7qkeFeATeUg1czMzMyIiJuBm6vKLqh6fVGNev8HHNjT/XGQamZmZtZAAc24cKrX8REyMzMzs9JxJtXMzMysgYK6b7C/VXMm1czMzMxKx5lUMzMzswZrc56wWz5CZmZmZlY6DlLNzMzMrHQ83G9mZmbWQBHQWr5fnCodHyEzMzMzKx1nUs3MzMwaSrThW1B1x5lUMzMzMyudrTJIldQqaW7hMUrSZEnfrVpvlqTx+flSScOrlneo08U2h0j6vqTFkhZKulPSYXnbD/Tc3pmZmVmZBWlOaiMfvdHWOty/JiLGFguk1zzt/kNgCTAmItok7QPsByzfnEYlbRsR63uig2ZmZmZl0TtD615G0mjgMOD8iGgDiIjHI+KXeZU+kn6QM6y3ShqY631Y0mxJ8yRdJ2lQLp8q6RuS7gC+ImlnSbdJ+kPO1v6xkvWV9I+S7s0Z4+9L6tP4I2BmZmb26mytQerAwlD/DQ3Y3gHA3Iho7WT5GOCyiDgAeA54Ty6/PiLeEhEHAw8BZxTq7AscGxGfAS4Efh0RbwZuAPYEkLQfcCpwRM4ctwLvr964pDMlzZE055kVnXXRzMzMekor2zT00Rt5uL9ddLJuZ+U9aUlEzM3P7wNG5edvkvQlYEdgCDCzUOe/C0HvkcDJABFxi6RVufztwCHA7DydYSDwdPXGI2IKMAVg/MEDGrG/ZmZmZl3aWoPUWlYAQ6vKhgHP9kDbC4GDJW1TGe6vsrbwvJUUTAJMBU6KiHmSJgNHFdZ7ufC8swm1Aq6KiPM2pdNmZmbW8wLRFr4FVXd6Z/73tTEbOELSrgD5qv7+wJOb23BELAbmAF9QTmlKGiNpQjdVtwOWSepLjWH6gt8B783tHkd7sH07cIqkXfKyYZL22vQ9MTMzM2sMZ1KziFgu6ZPAzZK2AV4CJlVlPudLqry+BpgPTJZ0UmGdwyOipcYmPgRcCiyStJqUuT2nm279O3AP8EdgASloreULwNWSTgV+AywDXoyIZyWdD9ya9+kV4KzcnpmZmTVJb50n2khbZZAaEUM6Kb8RuLGTZaM6aW5qndt8AfhwJ4vfVFjv64Xn3wO+V6OtyVVFzwPHR8R6SW8Fjo6ItXnd6cD0evpoZmZmVhZbZZC6BdoTuCZnS9fReTBsZmZm1is4SO1hku4hzWUtOi0iFrxW24yIx4Bxr1X7ZmZm1nMCaOulvwLVSA5Se1hEHNbsPpiZmZn1dg5SzczMzBpKtHZ690ircK7ZzMzMzErHmVQzMzOzBvKc1Pr4CJmZmZlZ6ThINTMzM7PS8XC/mZmZWYP5wqnuOZNqZmZmZqXjTKqZmZlZA0XIF07VwUfIzMzMzErHmVTbyKNLhnPs+z7Y7G5s5Fc/v7LZXejg9jV9mt2Fmm5YOb7ZXejgl/MObHYXOnjzUQ83uwsd3PXLg5rdhZpaZ+3S7C50MPJji5rdhQ7m3Te62V3oYNDs7ZrdhZoeueKAZnehFFqdSe2Wj5CZmZmZlY6DVDMzMzMrHQ/3m5mZmTVQAG2+BVW3nEk1MzMzs9JxJtXMzMysoeQLp+rgI2RmZmZmpeNMqpmZmVkDBdAWnpPaHWdSzczMzKx0HKSamZmZWel4uN/MzMyswVqdJ+yWj5CZmZmZlY4zqWZmZmYNFMgXTtXBmVQzMzMzKx1nUs3MzMwarM15wm75CJmZmZlZ6ThINTMzM7PSaXiQKqlV0tzCY5SkyZK+W7XeLEnj8/OlkoZXLe9Qp5vtjpMUko6vY92PSvpAjfJRkh7Iz8dL+nY37SyV9NuqsrmVNrqod5Sk/8nPJ0t6Jtd7UNKHu+u/mZmZlVcEtIYa+uiNmjEndU1EjC0WSA05eJOA3+V/Z3a1YkRc0V1jETEHmFPHdreTNDIinpS0X1097Wh6RJwtaRdgoaQZEbG8u0qSto2I9Zu4TTMzM7Om2SqG+5Wi4FOAycBxkgYUln1A0nxJ8yT9NJddJOmz+fkhedldwFmFesVs5xBJP5a0ILf1nsLmrwFOzc8nAVcX2hhQqHe/pKO72o+IeBpYDOwlabCkKyXNznUn5DYnS/pvSTcBt+ayf83bmCfpkhrH50xJcyTNWbfu5foOqpmZmW2ytlBDH71RMzKpAyXNzc+XRMTJDdjmEXlbiyXNAt4JXC/pAODzwBER8aykYTXq/hj4RET8RtLXOmn/34HnI+JAAElDC8uuBaYCXwf+Hng/cFpedhZARBwo6Y3ArZL27WwnJO0D7AMsyv3+dUR8UNKOwL2SfpVXfStwUESslHQicBJwWESsrrWPETEFmAKw/fYjorPtm5mZmTVKKYb7gc4Co54KmCYB0/LzaaQg8XrgGODaiHgWICJWFitJ2gHYMSJ+k4t+CpxYo/1jgYkbOh2xqrBsJbBK0kTgIWB1YdmRwHfsjhXAAAAgAElEQVRynYcl/RGoFaSeKulIYC3wkRx8Hge8q5LxBQYAe+bntxX25VjgxxGxutY+mpmZWWOlm/lvFYPZm6Us90ldAQytKhsGPLu5DUvqA7yHFNB9HhCwk6Tt8vOuAuHulte73nTgMtJ0g+p69ZgeEWfXqPueiHhko0LpMODlqvWcHTUzM7NepSxh/GzgCEm7QrpyHugPPNkDbR8LzIuIkRExKiL2Aq4jDYHfDrxX0k55uxsNhUfEc8DzOYsJaai+lluBDUFk1XA/wA3AV+l4wdadlTbzMP+ewCPUZybwiTzfFknjuujbByUNyuvVmtJgZmZmViqlCFLzleqfBG7O81W/CUyKiLbCavMlteTHN3LZ5EJZi6QRNZqfRAoSi64D3hcRC4EvA7+RNA/4RnVl4J+Ay/KFU2s62YUvAUMlPZDb2egCqIh4MSK+EhHrqupdDvSRtICUbZ0cEWs72Ua1LwJ9Scflgfy6g4i4BZgBzMnH9rO11jMzM7PGaUUNffRGDR/uj4ghnZTfCNzYybJRnTQ3tY7tTa5RNoMUuBERVwFXVS2/qPD8PuDgwuKLcvksYFZ+/hJwej39joilwJvy87/QcQpAddtTqbGfEbEG+EiN8g7rR8QlQIer+s3MzMzKqixzUs3MzMy2CgG99rZQjbRFBamS7iHNZS06LSIWNKM/ZmZmZrZptqggNSIOa3YfzMzMzLrmW1DVw0fIzMzMzErHQaqZmZmZlc4WNdxvZmZm1hu09dLbQjWSM6lmZmZmVjrOpJqZmZk1UAS0+hZU3XIm1czMzMyQdIKkRyQtknRujeWTJT0jaW5+fKiw7HRJj+VHhx842hTOpJqZmZk1WNluQSWpD3AZ8A6gBZgtaUZEPFi16vSIOLuq7jDgQmA86bcK7st1V21On8p1hMzMzMysGQ4FFkXE4xGxDpgGTKiz7vHAbRGxMgemtwEnbG6HnEm1jbT1EWuH9W12NzZy+5o+ze5CB28f2NrsLtR0o9qa3YUOdh+xstld6ODF9dU/TNd8KucpRRkvQN5G0ewudBDblq9Pg/5cvj4BlCyBuDUZLmlO4fWUiJhSeL0H8GThdQtQ60eS3iPpr4FHgU9FxJOd1N1jczvsINXMzMysgQLR1vgLp56NiPFdLK/VoepvOjcBV0fEWkkfBa4Cjqmz7qvm7zNmZmZm1gKMLLweATxVXCEiVkTE2vzyB8Ah9dbdFA5SzczMzBqsDTX0UYfZwBhJe0vqB0wEZhRXkLRb4eW7gIfy85nAcZKGShoKHJfLNouH+83MzMy2chGxXtLZpOCyD3BlRCyUdDEwJyJmAP8s6V3AemAlMDnXXSnpi6RAF+DiiNjsCxIcpJqZmZk1UEAz5qR2KyJuBm6uKrug8Pw84LxO6l4JXNmT/fFwv5mZmZmVjoNUMzMzMysdD/ebmZmZNVjZfnGqjHyEzMzMzKx0nEk1MzMza6Roys38ex1nUs3MzMysdBykmpmZmVnpeLjfzMzMrIEC6v0VqK2aM6lmZmZmVjrOpJqZmZk1mC+c6p4zqWZmZmZWOk0NUiW1SppbeIySNFnSd6vWmyVpfH6+VNLwquUd6nSz3XGSQtLxhbJRkh6oWu8iSZ/Nz6dKWpL7OU/S26v690guny1pbGHZqZLmS1oo6auF8j0l3SHp/rz8nYVl50lalNss9vFKSU/X6OcwSbdJeiz/OzSXn1M4tg/k4z2s3uNkZmZmPS9ImdRGPnqjZmdS10TE2MJjaYO2Own4Xf731TgnIsYC/wJcUbXs/RFxMHA58DUASTvl52+PiAOA1xWC2/OBayJiHDAx10PS/vn1AcAJwOWS+uQ6U3NZtXOB2yNiDHB7fk1EfK1ybIHzgN9ExMpXuc9mZmZmDdfsILXhJAk4BZgMHCdpwCY0cxewRx3L9gEejYhn8utfAe/JzwPYPj/fAXgqP58ATIuItRGxBFgEHAoQEXcCtYLMCcBV+flVwEk11pkEXN31bpmZmZmVQ7MvnBooaW5+viQiTm7ANo/I21osaRbwTuD6V9nGCcAv6li2CHijpFFACyl47JeXXQTcKukTwGDg2Fy+B3B3ob0WOg+IK14XEcsAImKZpF2KCyUNyv06u1ZlSWcCZwL0G7hjN5syMzOzzdVbh+AbqdlB6po8FF0UnazbWfmrNQmYlp9PA04jBan1bPdreV7pLsDhVev9TNJgoA/wZoCIWCXpY8B0oA34P1J2tdKPqRFxqaS3Aj+V9CaoeeO0zd33vwd+39lQf0RMAaYADBk6sqeOs5mZmdkmK+Nw/wpgaFXZMODZzW04z+18D3CBpKXAd4ATJW1X53bPAV5Pmk96VdW67wf2Bn4OXFYpjIibIuKwiHgr8AjwWF50BnBNXucuYAAwnJQ5HVlodwTtUwE6s1zSbnkfdwOerlo+EQ/1m5mZlULQ2IumemvWtoxB6mzgCEm7AuSr+vsDT/ZA28cC8yJiZESMioi9gOuAkyLiJWBZ5cKmfBX8CaQLrDaIiDbgW8A2xSvv87JXSAHs4ZL2y+3skv8dCnwc+GFe/Qmgsq39SEHqM8AMYKKk/pL2BsYA93azXzOA0/Pz04EbKwsk7QD8TbHMzMzMrOxKF6RGxHLgk8DNeb7qN4FJOTismC+pJT++kcsmF8paJI2o0fwk4IaqsuuA9+XnHwDOz9v9NfCFiFhco48BfAn41xrL1gCXAp/NRd+S9CDwe+CSiHg0l38G+LCkeaQs5+RIFpIyrA8CtwBnRUQrgKSrSRdmvSHv4xm5rUuAd0h6DHhHfl1xMnBrRLxc43iYmZlZE7Shhj56o6bOSY2IIZ2U30gnmb+IGNVJc1Pr2N7kGmUzSJlIIuJB4Oh66kbEdaQAl4g4qmrZpYXnNW9zlbd1RCfLvgx8uUZ5Z22tIGdlayybSh3HxszMzKxMSpdJNTMzMzNr9tX9rxlJ95DmshadFhELmtEfMzMzMwDCt6CqxxYbpEbEYc3ug5mZmZltmi02SDUzMzMro8CZ1Hp4TqqZmZmZlY4zqWZmZmYN5kxq95xJNTMzM7PScZBqZmZmZqXj4X4zMzOzBgrk4f46OJNqZmZmZqXjTKqZmZlZg4Uzqd1yJtXMzMzMSseZVNtIbAPr+5fr290NK8c3uwsd3Ki2Znehpm/vPrvZXehg9O8OaXYXOmjdt3zfz9cPimZ3oaYo36Hia3v+otld6OCYBZ9udhc6WD+o2T2oLbYt4UnVBG2U67O2jHymmJmZmVnpOEg1MzMzs9LxcL+ZmZlZA0X4F6fq4UyqmZmZmZWOM6lmZmZmDeZbUHXPmVQzMzMzKx1nUs3MzMwayj+LWg9nUs3MzMysdBykmpmZmVnpeLjfzMzMrMF84VT3nEk1MzMzs9JxJtXMzMysgQLfzL8ezqSamZmZWek4k2pmZmbWSJF+GtW65kyqmZmZmZVO04JUSa2S5hYeoyRNlvTdqvVmSRqfny+VNLxqeYc6XWxzqaQF+fGgpC9J6l+1zqck/UXSDvn1LpKWSNq1sM7lks6VdJSkkHRGYdm4XPbZ/Hp6YR+XSpqby/tKuir35SFJ5xXaOEHSI5IWSTq3UP6zXP6ApCsl9c3lkvTtvP58SW8u1LlF0nOS/qeeY2RmZmZWBs3MpK6JiLGFx9IGbffoiDgQOBTYB5hStXwSMBs4GSAinga+AnwdIAeARwKX5vUXAKcW6k8E5lVeRMSplX0ErgOuz4v+Aeif+3II8JEcqPcBLgNOBPYHJknaP9f5GfBG4EBgIPChXH4iMCY/zgS+V+jP14DT6j04ZmZm9tprQw199EZb7XB/RLwEfBQ4SdIwAEmjgSHA+aRgtWIKMFrS0cB3gbMj4pW87AlggKTXSRJwAvC/1dvLy94LXF3pAjBY0rakgHMd8AIpeF4UEY9HxDpgGjAh9/nmyIB7gRG5rQnAT/Kiu4EdJe2W69wOvLg5x8rMzMys0ZoZpA4sDIPf0IwORMQLwBJSBhJSYHo18FvgDZJ2yeu1AR8jZUIfjYg7q5q6lpQZ/SvgD8DaGpt7G7A8Ih4r1HkZWEYKdL8eESuBPYAnC/VactkGeZj/NOCWXNRtna5IOlPSHElz1v/l5XqrmZmZ2SYI0s38G/nojZp5df+aPARe1Nm1bq/lNXDFd24icHJEtEm6nhR4XgYQEXMlPQBcXqONa4DppKH4q0nBarVKAFxxKNAK7A4MBX4r6VdV/amo3v/LgTsj4rc19qGzOp2KiCnkaQ+Ddxrp6w3NzMys6cp2C6oVpICtaBjw7GuxMUnbAaOARyUdRMqo3pZG5ukHPE4OUrO2/NhIRPxZ0ivAO4BPUhWk5iH9d5Pmnla8D7glTxt4WtLvgfGkjOjIwnojgKcKbV0I7Ax8pLBOS1d1zMzMrEzkm/nXoWxzUmcDR1SupM9X9fdn46HsHiFpCCkj+YuIWEXKdF4UEaPyY3dgD0l71dnkBcDnIqK1xrJjgYcjoqVQ9gRwTL4yfzBwOPAw6RiMkbS3pH6k7O6M3OcPAccDk/IUhIoZwAdyW4cDz0fEsjr7bWZmZlY6pcqkRsRySZ8Ebpa0DfASHQOy+ZIqr68B5gOTJZ1UWOfwqoCw6I58EdM2wA3AF3P5RNJV8kU35PKv1NH3/+ti8UQ2HuqHlKH9MfAAabj+xxExH0DS2cBMoA9wZUQszHWuAP4I3JWzvddHxMXAzcA7gUXAauCfKhuR9FvSNIQhklqAMyJiZnf7Y2ZmZtZMTQtSI2JIJ+U3Ajd2smxUJ81NrXObndUnIvauUfbpqtdHVb2eBcyqUe+iqteTa6zzEmnOa62+3EwKPKvLa75f+Wr/szpZ9rZa5WZmZtY8/sWp7pVtuN/MzMzMrFzD/T1F0j2kuaxFp0XEgmb0x8zMzKyot94WqpG2yCA1Ig5rdh/MzMzMbNNtkUGqmZmZWVlFOJNaD89JNTMzM7PScZBqZmZmZqXj4X4zMzOzBvMvTnXPmVQzMzMzKx0HqWZmZmYNli6eatyjHpJOkPSIpEWSzq2x/NOSHpQ0X9LtxZ+Ol9QqaW5+zOiJY+ThfjMzM7OtnKQ+pJ9sfwfQAsyWNCMiHiysdj8wPiJWS/oY8FXg1LxsTUSM7ck+OZNqZmZm1mARauijDocCiyLi8YhYB0wDJmzc57gjIlbnl3cDI3r0oFRxkGpmZmZmewBPFl635LLOnAH8b+H1AElzJN0t6aSe6JCH+20jrQNhxcHluuLwl/MObHYXOth9xMpmd6Gm0b87pNld6GDxe69odhc6eMsf3tvsLnTQf1W5/u4qXtirfP16xzXnNLsLHWhgW7O70MGancv33gGsH9C32V3o6H+7X2ULMFzSnMLrKRExpfC61glTczarpH8ExgN/UyjeMyKekrQP8GtJCyJi8eZ02EGqmZmZWQMFdQ/B96RnI2J8F8tbgJGF1yOAp6pXknQs8HngbyJibaU8Ip7K/z4uaRYwDtisINXD/WZmZmY2GxgjaW9J/YCJwEZX6UsaB3wfeFdEPF0oHyqpf34+HDgCKF5wtUmcSTUzMzNrsDrvCtUwEbFe0tnATKAPcGVELJR0MTAnImYAXwOGAP8tCeCJiHgXsB/wfUltpAToJVV3BdgkDlLNzMzMjIi4Gbi5quyCwvNjO6n3f0CPX0DiINXMzMyskYJmzEntdTwn1czMzMxKx0GqmZmZmZWOh/vNzMzMGq1sV06VkDOpZmZmZlY6zqSamZmZNZgvnOqeM6lmZmZmVjrOpJqZmZk1WHhOarecSTUzMzOz0nGQamZmZmal4+F+MzMzswYKfOFUPZqaSZXUKmlu4TFK0mRJ361ab5ak8fn5UknDq5Z3qNPFNodI+p6kxZLul3SfpA/nZaMkranq0wfysh0k/STXW5yf71Cj3oN5Wd/CNs+TtEjSI5KOz2UDJN0raZ6khZK+UFh/b0n3SHpM0nRJ/XL5X0v6g6T1kk6p2q/T8/qPSTq9UP5lSU9Keqme42NmZmZWBs0e7l8TEWMLj6UN2OYPgVXAmIgYB5wADCssX1zVp5/k8h8Bj0fE6IgYDSzJbW1UDzgQGAG8F0DS/sBE4IC8rcsl9QHWAsdExMHAWOAESYfntr4C/GdEjMl9PSOXPwFMBn5e3CFJw4ALgcOAQ4ELJQ3Ni2/KZWZmZlYGAYQa++iFmh2kNpSk0aSA7fyIaAOIiGci4ivd1Hs9cAjwxULxxcD43OYGEdEK3AvskYsmANMiYm1ELAEWAYdGUslu9s2PkCTgGODavOwq4KTc9tKImA+0VXXxeOC2iFgZEauA20gBMRFxd0Qs6+7YmJmZmZVJs4PUgYVh9RsasL0DgHmVALUTo6uG+98G7A/MzQEosCEYnZvb3EDSAFJG85ZctAfwZGGVllyGpD6S5gJPk4LMe4CdgOciYn31+l3odBv1kHSmpDmS5rS+/HK91czMzGwTRTT20Rs1+8KpNXmIvKizQ9njh1jS54F/AHaJiN1z8eLqPkma0Mn2VSgfnQPOMcC1OeNZWadawIZAd6ykHYEbJL0JWN7Z+l3tyibUaV8xYgowBWDAiJG99FQ2MzOzLUmzM6m1rACGVpUNA57tgbYfBA6WtA1ARHw5B6Tbd1NvITCuUg8gPz8YeCgXVYLb1wOHS3pXLm8BRhbaGgE8VWw8Ip4DZpGG6J8FdpS0bWfr19DtNszMzMx6kzIGqbOBIyTtCpCv6u/PxsPZmyQiFgFzgC/li5cqw/NdzijO9e4Hzi8Unw/8IS8rrrsMOBc4LxfNACZK6i9pb1Km9V5JO+cMKpIGAscCD0dEAHcAlav3Twdu7GbXZgLHSRqaL5g6LpeZmZlZGUWDH71Q6YLUiFgOfBK4OQ+ffxOYVDWPdL6klvz4Ri6bXChrkTSik018iDTvc5Gk+4BfAZ8rLK+ek/rPufwMYN98K6nFwL60X3Vf7RfAIElvi4iFwDWkLO4twFl5mH834A5J80mB+W0R8T+5/ueAT0talPv6IwBJb5HUQpqi8H1JC/MxW0m6qGt2flycy5D01VxnUD4uF3XSZzMzM7PSaOqc1IgY0kn5jXSSPYyIUZ00N7XObb4AfKSTZUuBgZ0sWwX8Yxf13lR4HaSpAJXXXwa+XFVnPjCuk/Yep8ZtoyJiNmkov1adK4Era5T/K/CvteqYmZlZM8g3869D6TKpZmZmZmbNvrr/NSPpHtJc1qLTImJBM/pjZmZmtkEvnSfaSFtskBoRhzW7D2ZmZma2aTzcb2ZmZmals8VmUs3MzMxKKfCFU3VwJtXMzMzMSseZVDMzM7NG84VT3XIm1czMzMxKx5lUMzMzs4bznNTuOJNqZmZmZqXjINXMzMzMSsfD/WZmZmaN5gunuuUg1TayzSswuKVc82TefNTDze5CBy+ur/7F3XJo3bd8gyNv+cN7m92FDma/+Zpmd6GDg+74eLO7UNOgp8v3SbrtW55rdhc6GHL1Ds3uQgd/fudfmt2Fmob+sl+zu2C9hINUMzMzs0Yr3/e/0ilf2sXMzMzMtnrOpJqZmZk1UgD+WdRuOZNqZmZmZqXjINXMzMzMSsfD/WZmZmYNFr5wqlvOpJqZmZlZ6TiTamZmZtZozqR2y5lUMzMzMysdZ1LNzMzMGs23oOqWM6lmZmZmVjoOUs3MzMysdDzcb2ZmZtZg8oVT3XIm1czMzMxKx5lUMzMzs0YKfAuqOjQ8kyqpVdLcwmOUpMmSvlu13ixJ4/PzpZKGVy3vUKeLbe4g6SeSFufHTyTtUFh+gKRfS3pU0mOS/l2SCtt5Jvd1oaRrJQ3Kyy6SFJJeX2jrU7ms0vdJkhZImi/plsp+5Lp/KhyHdxbaOE/SIkmPSDq+UH6lpKclPVC1f8Mk3Zb7fpukoVXL35KP+yn1HC8zMzOzZmvGcP+aiBhbeCxtwDZ/BDweEaMjYjSwBPghgKSBwAzgkojYFzgY+Cvg44X603NfDwDWAacWli0AJhZenwI8mNveFvgWcHREHATMB84urPufheNwc66zf27vAOAE4HJJffL6U3NZtXOB2yNiDHB7fk1urw/wFWBmt0fJzMzMGkDpFlSNfPRCW/yc1JzlPAT4YqH4YmC8pNHA+4DfR8StABGxmhRInlujrW2BwcCqQvEvgAl5+T7A88AzlSr5MThnZrcHnuqmyxOAaRGxNiKWAIuAQ3Pf7gRWdlLnqvz8KuCkwrJPANcBT3ezXTMzM7PSaEaQOrAwxH1DA7a3PzA3IlorBfn5XFK28gDgvmKFiFgMDJG0fS46VdJc4E/AMOCmwuovAE9KehMwCZheaOcV4GOkbOtTuS8/KtQ9O08DuLIwRL8H8GRhnZZc1pXXRcSyvM1lwC4AkvYATgau6KqypDMlzZE0Z/2al7vZlJmZmdlrr9nD/Sfnss6mD/fEtGJ10k6lvLPlxe1Pj4ixwK6kgPOcqvWmkYboTwI2BN6S+pKC1HHA7qTh/vPy4u8Bo4GxwDLg0kK/OuvHq/VN4HPFAL2WiJgSEeMjYvy2Awdv4qbMzMysbtHgRy9UluH+FcDQqrJhwLM90PZCYJykDfuanx8MPJSXjy9WyMP2L0XEi8XyiAhSFvWvq7ZxE3Aa8EREvFAoH5vrLc51ryHNdyUilkdEa0S0AT8gD+mTMqcjC22MoPspAssl7Zb7vhvtQ/vjgWmSlpLmyl4u6aTaTZiZmZmVR1mC1NnAEZJ2BchXxvdn42HvTRIRi4D7gfMLxecDf8jLfgYcKenYvO2BwLeBr3bS5JHA4qptrAE+B3y5at0/AftL2jm/fgcpMK4EkxUnA5Ur9mcAEyX1l7Q3MAa4t5vdnAGcnp+fDtyY+7V3RIyKiFHAtcDHI+IX3bRlZmZmrzVnUrtVivukRsRySZ8Ebs5ZzpeASTnLWDFfUuX1NaSh88lVmcHDI6KlxibOAL4jaRFpOP2uXEZErJE0IS+/DOgD/BQo3t7qVElHkoL6FmByjX2YVqPsKUlfAO6U9Arwx0Ldr0oaSzp1lgIfyXUWSrqGdIeA9cBZleF6SVcDRwHDJbUAF0bEj4BLgGsknQE8AfxDjWNgZmZm1ms0PEiNiCGdlN9IzgDWWDaqk+am1rnNVcA/drF8ASn4q7VsamfbiYiLOik/qvD8CmpcuBQRp3XRny/TMStLREzqZP0VwNs7ay+vM7mr5WZmZtZAvTS72UhlGe43MzMzM9ugFMP9PUXSPaS5rEWn5UypmZmZmfUSW1SQGhGHNbsPZmZmZl0Keu2vQDWSh/vNzMzMrHS2qEyqmZmZWW8gXzjVLWdSzczMzKx0nEk1MzMzazRnUrvlTKqZmZmZlY6DVDMzMzMrHQepZmZmZoakEyQ9ImmRpHNrLO8vaXpefo+kUYVl5+XyRyQd3xP9cZBqZmZmtpWT1Ae4DDgR2B+YJGn/qtXOAFZFxOuB/wS+kuvuD0wEDgBOAC7P7W0WB6lmZmZmDaZo7KMOhwKLIuLxiFgHTAMmVK0zAbgqP78WeLsk5fJpEbE2IpYAi3J7m8VX99tGWgcGzx34SrO7sZG7fnlQs7vQgVqb3YPa1g8q3+Wi/VeV71dVDrrj483uQgfzP3N5s7tQ0+hf/1Ozu9DBNo/u2OwudPDSieua3YUOYk05P+Kfn/his7vQ0fRmd6AU9gCeLLxuAap/yXPDOhGxXtLzwE65/O6quntsbofKeQabmZmZbcka/7OowyXNKbyeEhFTCq9rdag689HZOvXUfdUcpJqZmZlt+Z6NiPFdLG8BRhZe///27jzMsrq+8/j7w9LsAZStVWQxuAamlRZj1AygGM0TwxJU2oxiBhd4YpxISMAhkxATEtSYxYnGtEbABBeiEElEO9LCYKKijWltQBFENMgWAgjITn3nj3tKb1fdqnOLLs49je/X89yn7ll/33uB5tuf3zmnngBcP8c+1yXZDNgeuHXMYxfMa1IlSZL0FWCfJHslWcLgRqjzZuxzHnB08/5I4HNVVc36o5q7//cC9gG+vKEFmaRKkiR1qejdb5xqrjF9E7AK2BT4YFVdnuRtwJqqOg/4W+DvklzNIEE9qjn28iRnA1cADwK/XlUbfPeGTaokSZKoqvOB82es+72h9/cCL5/j2FOBUxezHptUSZKkrvUsSe0jr0mVJElS75ikSpIkdWzMB+z/RDNJlSRJUu/YpEqSJKl3nO6XJEnqmtP9rUxSJUmS1DsmqZIkSV0zSW1lkipJkqTeMUmVJEnqUMpHUI3DJFWSJEm9Y5M6hySV5F1DyyckOSXJyUnWNq+Hht6/eY7znJLk+0P7rU2yQ5IDk/xgaN0FQ8e8JsllSS5PckWSE5r1L2/WTSVZPrT/kiSnJ1mX5GtJDhzadlGSK4fG2eUR+cIkSZIWkdP9c7sPOCLJn1TVLdMrq+pU4FSAJHdV1bIxzvXnVfWnwyuSAHy+qn5pxvqXAr8JvLiqrk+yJfDqZvNlwBHA38w4/+ub2vZtmtBPJ3l2VU0123+1qtaMUackSepCZdIV9J5J6tweBFYCb+l43LcCJ1TV9QBVdW9Vvb95/42qunLEMU8HVjf73AzcDiwfsd9ISd6QZE2SNQ/d+cMN/gCSJEkbyiZ1fu8BfjXJ9ht4nrcMTbdfOLT+BUPrT27W/Qxw6QLP/zXg0CSbJdkL2B/YfWj76c0Y/ydNhDusqlZW1fKqWr7pdtsscGhJkrRg1fFrI+R0/zyq6o4kHwLeDNyzAaeaNd3fmDXd/zB9EHgasAb4LvAFBkkwDKb6v59kO+ATDC4d+NAijClJkvSIMUlt9xfAMUBXEePlDJLQsVXVg1X1lqpaVlWHAjsAVzXbvt/8vBP4MHDAItcrSZIWaPoxVF29NkY2qS2q6lbgbAaNahf+BHhHkt0Akmwx15MDpiXZOsk2zftDgAer6opm+n+nZv3mwC8xuPlKkiSp15zuH8+7gDdtwPFvSfI/hpYPm2vHqjo/ya7ABc31o8VgOp8khwP/FxhT48MAABpRSURBVNgZ+FSStVX1C8AuwKokU8D3+fHTALZo1m8ObApcALx/Az6HJElSJ2xS51BV2w69vwnYer595jnPKcApIzZdC1w0xzGnA6ePWH8ucO6I9dcCTxmx/ocs8NIBSZLUgY10Cr5LTvdLkiSpd0xSF0nzCKmXz1j9D83D/yVJkgY24puZumSTukiGfxOVJEmSNoxNqiRJUtdMUlt5TaokSZJ6xyZVkiRJveN0vyRJUtec7m9lkipJkqTeMUmVJEnqmI+gameSKkmSpN6xSZUkSVLv2KRKkiSpd7wmVevZfMmDPH6P/5p0Get56KJdJl3CbJl0AaNVD//aecce/fuytr65fxeDPelzvzbpEkb69sGnT7qEWfb/g+MmXcIst23Zv/+dbrLj/ZMuYaQ3P+3CSZcwS//+jRLYpEqSJHWvf39X7p0e5i6SJEn6SWeSKkmS1KXyEVTjMEmVJElS75ikSpIkdc0ktZVJqiRJknrHJlWSJEm943S/JElS15zub2WSKkmSpN4xSZUkSepQ8BFU4zBJlSRJUu+YpEqSJHXNJLWVSaokSZJ6xyZVkiRJveN0vyRJUpfKG6fGMVaSmuTwJJXkqc3yJkneneSyJOuSfCXJXvMcf22Sz89YtzbJZRtW/pzjbZbkliR/ssjnvWuO9ccmeU3z/owkdyfZbmj7Xzbf306LWc+4kvzvSYwrSZL0cI073b8C+FfgqGb5lcDjgP2qal/gcOD2lnNsl2R3gCRPexi1LsSLgSuBVyTJIzwWVfW+qvrQ0KqrgUNh0NADBwHff6TrmIdNqiRJfVIdvzZCrU1qkm2B5wHH8OMmdSlwQ1VNAVTVdVV1W8upzmbQ3MKg6f3I0BibJnlnk8h+Pckbp8dOsjrJV5vEdrrx2zPJN5K8P8nlSf4lyVZDY60A/hL4HvCzQ+Ncm+SPk3wxyZokz0qyKsm3kxzb7HNgkouTnJvkiiTvaxrN6XOcmuRrSb6UZNdm3SlJThga/yNDn/VA4N+AB4fOcXyTQl+W5DeHPtM3k3ygWX9Wkhcl+bckVyU5oNlvmyQfbL6rfx/6Tl6b5Jwkn2n2f0ez/jRgqya5Pqvln5EkSVIvjJOkHgZ8pqq+Bdya5FkMGs6XNY3Pu5I8c4zzfBw4onn/MuCfhrYdA/ygqp4NPBt4fXP5wL3A4VX1LAZp5LuGktF9gPdU1TMYpLi/AtA0qy8E/plBs7hiRh3/UVXPBT4PnAEcyaCRfdvQPgcAvwXsCzxpqO5tgC9V1X8DLgZeP8dnvQrYOcmOzfgfnd6QZH/g14DnNOO+fuj7+2kGzfV+wFOBVwHPB07gx2noycDnmu/qIOCdSbZpti1j0BzvC7wyye5VdRJwT1Utq6pfHVVskjc0TfuaB35wzxwfSZIkLRqT1FbjNKnDTdZHgRVVdR3wFOCtwBSwOskLW85zK3BbkqOAbwB3D217MfCaJGuBS4DHMmhCA/xxkq8DFwCPB3ZtjvlOVa1t3l8K7Nm8/yXgwqq6G/gEcHiSTYfGOq/5uQ64pKrurKr/BO5NskOz7ctVdU1VPcSg0X1+s/5+Bs3vzDFHOYdB8vwcBg3xtOcD51bVD6vqrma/Fwx9pnVNQn05sLqqqql1eqwXAyc139VFwJbAE5ttq6vqB1V1L3AFsMc89f1IVa2squVVtXzz7bdqP0CSJOkRNu/d/UkeCxwM/EySAjYFKsnvVNV9wKeBTye5iUHiurplvI8B7wFeO3Mo4DeqatWM8V8L7AzsX1UPJLmWQVMGcN/Qrg8B093VCuB5zb4waHgPYtDkDh83NeMcU/z4+5j5d47p5QeapnF6zPm+v48CXwXOrKqpoUtj57tGdmY9w7VOjxXgV6rqyuEDkzyH2d+JT2+QJEkbpbYk9UjgQ1W1R1XtWVW7A98Bfj7J4+BHNwbtB3x3jPHOBd4BrJqxfhVwXJLNm3M+uZnC3h64uWlQD6IlGUzyUwySyic29e4J/Dqzp/zbHJBkr+azvZLBTWMLUlXfYzA1/94Zmy4GDkuydfMZD2f9pLXNKuA3pi97GPNSiwemv1tJkjR5qW5fG6O2pG0FcNqMdZ9gcC3nrUm2aNZ9GfirtsGq6k7g7QAzbrr/AIPp7K82zdd/MkhmzwL+KckaYC3wzZYhjmBwveZwovhJ4B1DtY7jiww+974MmspzF3Dsj1TV34xY99UkZzD4zgA+UFX/nmTPMU/7h8BfAF9vvqtrGVziMJ+Vzf5fneu6VEmSpD7Jj2evBYO7+4ETqqqt8XtU2vbJu9V+f3X0pMtYz0Nn7jLpEmZ7xB9s9vBUD3+H3B179K+orW/u3597t/33eyddwkjfPvj0SZcwy/5/cNykS5jltmdMTbqEWbLj/ZMuYaQTl8+cTJ2845568aVVtbyr8bZaunvtffTxXQ0HwBVvP77Tz7gY+vd/D0mSJP3EW9Qba5JcAsycVn91Va1bzHEeSVV1EYO75iVJkhbfRvxYqC4tapNaVc9ZzPNJkiTpJ5PT/ZIkSeodn6MpSZLUsY31sVBdMkmVJElS75ikSpIkdc0ktZVJqiRJknrHJFWSJKljXpPaziRVkiRJ80rymCSfTXJV83PHEfssS/LFJJcn+XqSVw5tOyPJd5KsbV7L2sa0SZUkSVKbk4DVVbUPsLpZnulu4DVV9QzgJcBfJNlhaPtvV9Wy5rW2bUCbVEmSpK5Vx68NdyhwZvP+TOCwWR+p6ltVdVXz/nrgZmDnhzug16RqPXXb5tx39q6TLmM9ux939aRLmGWTnl5M9M4n/uOkS5jlkLN/e9IlzLLZs2+fdAmzbPKtHdp3moD9/+C4SZcwy6W//9eTLmGWvc9546RLmGXbS7eadAkjnX7+L0+6hBEunnQBG4Ndq+oGgKq6Icku8+2c5ABgCfDtodWnJvk9miS2qu6b7xw2qZIkSV1avHRzIXZKsmZoeWVVrRzeIckFwG4jjj15IQMlWQr8HXB0VU01q98K3MigcV0JnAi8bb7z2KRKkiQ9+t1SVcvn26GqXjTXtiQ3JVnapKhLGUzlj9rvp4BPAb9bVV8aOvcNzdv7kpwOnNBWsNekSpIkdSgTeC2C84Cjm/dHA5+c9bmSJcC5wIeq6h9mbFva/AyD61kvaxvQJlWSJEltTgMOSXIVcEizTJLlST7Q7PMK4OeB14541NRZSdYB64CdgD9qG9DpfkmSJM2rqv4LeOGI9WuA1zXv/x74+zmOP3ihY9qkSpIkda2fD4npFaf7JUmS1DsmqZIkSR3r6eO2e8UkVZIkSb1jkipJktQ1k9RWJqmSJEnqHZtUSZIk9Y7T/ZIkSV1zur+VSaokSZJ6xyRVkiSpS+UjqMax0SSpSQ5PUkme2ixvkuTdSS5Lsi7JV5LsNc/x1zb7rUtyRZI/SrLFjH3ekuTeJNs3y7sk+U6S3Yb2eW+Sk5Ic2NRzzNC2ZzbrTmiWPzb0u2uvTbK2Wb95kjObWr6R5K1D53hJkiuTXJ3kpKH1ZzXrL0vywSSbN+vTfA9XJ/l6kmcNHfOZJLcn+eeH/81LkiR1b6NpUoEVwL8CRzXLrwQeB+xXVfsChwO3t5zjoGbfA4C9gZUjxvhKcy6q6mbg7cCfAjQN4POBdzX7r2vqmHYU8LXphap6ZVUtq6plwCeAc5pNLwe2aGrZH3hjkj2TbAq8B3gp8HRgRZKnN8ecBTwV2BfYiub35Db77tO83gD89VA97wRe3fKdSJKkrlXHr43QRtGkJtkWeB5wDD9uUpcCN1TVFEBVXVdVt41zvqq6CzgWOCzJY5oxngRsC/wug2Z12krgSUkOAv4KeFNVPdBs+x6wZZJdkwR4CfDpEfUHeAXwkekSgG2SbMag4bwfuINB83x1VV1TVfcDHwUObWo+vxrAl4EnNOc6FPhQs+lLwA5JljbHrAbuHOc7kSRJ6pONokkFDgM+U1XfAm5tEs2zgZc1U+nvSvLMhZywqu4AvsMggYRBY/oR4PPAU5Ls0uw3BRzHIAn9VlVdPONUH2eQjP4c8FXgvhHDvQC4qaquGjrmh8ANDBrdP62qW4HHA/8xdNx1zbofaab5Xw18plnVekybJG9IsibJmgfv+eFCDpUkSXpEbCxN6goGqSLNzxVVdR3wFOCtwBSwOskLF3jeDL0/Cvho05Sew6DxBKCq1gKXAe8dcY6zm32nm9y56h/edgDwEIPLFfYCfivJ3jPq+dHwM5bfC1xcVZ8f8RnmOmZeVbWyqpZX1fLNttpmIYdKkqSHIdXta2PU+7v7kzwWOBj4mSQFbApUkt+pqvsYTK9/OslNDBLX1WOedztgT+BbSfZjkKh+djAzzxLgGgbXh06bal7rqaobkzwAHAL8LwaJ6vA4mwFHMLj2dNqrGCTDDwA3J/k3YDmDRHT3of2eAFw/dK7fB3YG3ji0z3XzHSNJkrQx2hiS1CMZXHO5R1XtWVW7M5im//kkj4PBnf7AfsB3xzlhc43re4F/bK5jXQGc0px/z6p6HPD4JHuMWePvASdW1UMjtr0I+GaT/E77HnBwc2f+NsDPAt9kcNPWPkn2SrKEQbp7XlPz64BfYJAiDzfL5wGvac71s8APquqGMeuWJEmT4I1TrXqfpDJoIE+bse4TwBkMrk+dfozUlxnc2DSfC5ubmDYBzgX+sFl/FIO75Ied26x/e1uBVfWFeTYfxezLAN4DnM7gEoIAp1fV1wGSvAlYxSAx/mBVXd4c8z4GTfgXm7T3nKp6G3A+8IvA1cDdwK9ND5Lk8wyeCLBtkuuAY6pqVdvnkSRJmrTeN6lVdeCIde8G3r3A8+w5z7ZZz1etquPnq6OqLgIuGnHcKTOWXztin7sYuuZ1xrbzGTSeM9eP/GfV3O3/63Nse8Go9ZIkabI21utEu7QxTPdLkiTpJ0zvk9SFSnIJsMWM1a+uqnWTqEeSJEkL96hrUqvqOZOuQZIkaU4b8c1MXXK6X5IkSb3zqEtSJUmSes8ktZVJqiRJknrHJFWSJKlDwUdQjcMkVZIkSb1jkypJkqTecbpfkiSpa073tzJJlSRJUu+YpEqSJHUsZZTaxiZV63loCdyx96SrWN/XLn3SpEuYpTbr5x8uB687ftIlzJKtpiZdwizbfmT7SZcwy10vvX/SJYx025b9+9/E3ue8cdIlzHLNEX8z6RJm+bnjj510CSPd+Lwe/vn54UkXoFH696ePJEnSo5m/FnUsXpMqSZKk3rFJlSRJUu843S9JktQxf+NUO5NUSZIk9Y5JqiRJUtdMUluZpEqSJKl3TFIlSZI65jWp7UxSJUmS1Ds2qZIkSeodp/slSZK65nR/K5NUSZIk9Y5JqiRJUpfKG6fGYZIqSZKk3jFJlSRJ6ppJaiuTVEmSJPWOTaokSZJ6x+l+SZKkDgVvnBqHSaokSZJ6xyRVkiSpa2WU2sYkVZIkSb1jkipJktQxr0ltZ5IqSZKk3rFJlSRJUu843S9JktSlwt84NQaTVEmSJPWOSaokSVLHMjXpCvrPJFWSJEm9Y5IqSZLUNa9JbWWSKkmSpN6xSZUkSVLvON0vSZLUMX/jVDuTVEmSJPWOSaokSVKXCiij1DYmqZIkSZpXksck+WySq5qfO86x30NJ1jav84bW75Xkkub4jyVZ0jamTaokSVLHUt2+FsFJwOqq2gdY3SyPck9VLWtevzy0/u3AnzfH3wYc0zag0/1a35ZT5Ml3TbqK9Wz9le0mXcIsW9/Yz2maB7eedAWz3bNzJl3CLDf+4r2TLmGWuqeffxxvsuP9ky5hlm0v3WrSJczyc8cfO+kSZvnCn71v0iWMtO8lr5p0CXp4DgUObN6fCVwEnDjOgUkCHAxM/8M/EzgF+Ov5jjNJlSRJevTbKcmaodcbFnj8rlV1A0Dzc5c59tuyOf+XkhzWrHsscHtVPdgsXwc8vm3Afv7VXZIk6dGs+wm5W6pq+Xw7JLkA2G3EppMXMM4Tq+r6JHsDn0uyDrhjxH6t34BNqiRJkqiqF821LclNSZZW1Q1JlgI3z3GO65uf1yS5CHgm8AlghySbNWnqE4Dr2+pxul+SJKlDYaO8ceo84Ojm/dHAJ2d9rmTHJFs073cCngdcUVUFXAgcOd/xM9mkSpIkqc1pwCFJrgIOaZZJsjzJB5p9ngasSfI1Bk3paVV1RbPtROD4JFczuEb1b9sGdLpfkiSpS1Ub3cP8q+q/gBeOWL8GeF3z/gvAvnMcfw1wwELGNEmVJElS79ikSpIkqXec7pckSerYIt3M9KhmkipJkqTeMUmVJEnqmklqK5NUSZIk9Y5JqiRJUse8JrWdSaokSZJ6xyZVkiRJveN0vyRJUpcKmHK+v41JqiRJknrHJFWSJKlrBqmtTFIlSZLUOyapkiRJHfMRVO1MUiVJktQ7NqmSJEnqHaf7JUmSulbO97cxSZUkSVLvmKRKkiR1zBun2pmkSpIkqXdsUiVJktQ7TvdLkiR1qfA3To3BJFWSJEm9Y5IqSZLUoQDxEVStTFIlSZLUOyapkiRJXZuadAH9Z5IqSZKk3rFJlSRJUu843S9JktQxb5xqZ5IqSZKk3jFJlSRJ6pIP8x+LTarWs90W93LwXldNuoz1XPm+Z0y6hFmqp3MQtVn/Cntwy80nXcIsO35qyaRLmOUHR9056RJGevPTLpx0CbOcfv4vT7qEWW58Xv86jn0vedWkSxhp3XM+POkSZtl00gVoJJtUSZKkThV4TWqr/sUukiRJ+olnkypJkqTecbpfkiSpY3G2v5VJqiRJknrHJFWSJKlr3jjVyiRVkiRJvWOSKkmS1KWCTE26iP4zSZUkSVLv2KRKkiSpd5zulyRJ6po3TrUySZUkSVLvmKRKkiR1zSC1lUmqJEmSesckVZIkqWPxmtRWJqmSJEnqHZtUSZIk9Y7T/ZIkSV1zur+VSaokSZJ6xyRVkiSpSwVMTbqI/jNJlSRJUu+YpEqSJHUolI+gGoNJqiRJknrHJlWSJEm943S/JElS15zub2WSKkmSpN4xSZUkSeqaSWork1RJkiT1jkmqJElSl3yY/1hMUiVJktQ7NqmSJEnqHaf7JUmSOuZvnGpnkipJkqTesUmVJEnqWlW3rw2U5DFJPpvkqubnjiP2OSjJ2qHXvUkOa7adkeQ7Q9uWtY1pkypJkqQ2JwGrq2ofYHWzvJ6qurCqllXVMuBg4G7gX4Z2+e3p7VW1tm1Am1RJkqROdZyiLs71r4cCZzbvzwQOa9n/SODTVXX3wx0w5YW7GpLkP4HvLtLpdgJuWaRzLRZrGk8fa4J+1mVN47Em9dkeVbVzV4Ntv/XSeu5PH9PVcACsWnfqpVW1/OEen+T2qtphaPm2qpo15T+0/XPAn1XVPzfLZwDPBe6jSWKr6r75xvTufq1nMf8jTbJmQ/6DeCRY03j6WBP0sy5rGo81SRO3U5I1Q8srq2rl8A5JLgB2G3HsyQsZKMlSYF9g1dDqtwI3AkuAlcCJwNvmO49NqiRJUpeKxZqCX4hb2v5SVlUvmmtbkpuSLK2qG5om9OZ5TvUK4NyqemDo3Dc0b+9LcjpwQlvBXpMqSZKkNucBRzfvjwY+Oc++K4CPDK9oGluShMH1rJe1DWiSqkfSyvZdOmdN4+ljTdDPuqxpPNYkDZuadAELdhpwdpJjgO8BLwdIshw4tqpe1yzvCewO/L8Zx5+VZGcgwFrg2LYBvXFKkiSpQ9tvtbSeu/f/7HTMVVf88QbdODUJJqmSJEkd89eitvOaVEmSJPWOTaokSZJ6x+l+SZKkrjnd38okVZIkSb1jkipJktSlAqZMUtuYpEqSJKl3TFIlSZI6VV6TOgaTVEmSJPWOTaokSZJ6x+l+SZKkrjnd38okVZIkSb1jkipJktQ1k9RWJqmSJEnqHZNUSZKkLvkw/7GYpEqSJKl3bFIlSZLUO073S5IkdaqgpiZdRO+ZpEqSJKl3TFIlSZK65iOoWpmkSpIkqXdMUiVJkrrkI6jGYpIqSZKk3rFJlSRJUu843S9JktQ1b5xqZZIqSZKk3jFJlSRJ6ppJaiuTVEmSJPWOSaokSVKnyiR1DCapkiRJ6h2bVEmSJPWO0/2SJEldKmBqatJV9J5JqiRJknrHJFWSJKlr3jjVyiRVkiRJvWOSKkmS1DWT1FYmqZIkSeodm1RJkiT1jtP9kiRJnSqYcrq/jUmqJEmSesckVZIkqUsFVT7Mv41JqiRJknrHJFWSJKlrXpPayiRVkiRJvWOTKkmSpN5xul+SJKlr/sapViapkiRJ6h2TVEmSpC5VwZSPoGpjkipJkqTeMUmVJEnqmtektjJJlSRJUu/YpEqSJKl3nO6XJEnqWHnjVCuTVEmSJPWOSaokSVKnyhunxmCSKkmSpN4xSZUkSepSAVMmqW1MUiVJktQ7NqmSJEnqHaf7JUmSulY+gqqNSaokSZJ6xyRVkiSpQwWUN061MkmVJElS75ikSpIkdanKa1LHYJIqSZKk3rFJlSRJUu/YpEqSJHWspqrT14ZK8vIklyeZSrJ8nv1ekuTKJFcnOWlo/V5JLklyVZKPJVnSNqZNqiRJktpcBhwBXDzXDkk2Bd4DvBR4OrAiydObzW8H/ryq9gFuA45pG9AmVZIkqWs11e1rQ8ut+kZVXdmy2wHA1VV1TVXdD3wUODRJgIOBjzf7nQkc1jamTaokSZIWw+OB/xhavq5Z91jg9qp6cMb6efkIKkmSpA7dyW2rLqiP79TxsFsmWTO0vLKqVg7vkOQCYLcRx55cVZ8cY4yMWFfzrJ+XTaokSVKHquolk65hlKp60Qae4jpg96HlJwDXA7cAOyTZrElTp9fPy+l+SZIkLYavAPs0d/IvAY4CzquqAi4Ejmz2OxpoTWZtUiVJkjSvJIcnuQ54LvCpJKua9Y9Lcj5Ak5K+CVgFfAM4u6oub05xInB8kqsZXKP6t61jDppbSZIkqT9MUiVJktQ7NqmSJEnqHZtUSZIk9Y5NqiRJknrHJlWSJEm9Y5MqSZKk3rFJlSRJUu/YpEqSJKl3/j9rAXFqmuSCegAAAABJRU5ErkJggg==\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# Scatter Plot Matrix\n\n1. A scatter plot shows the relationship between two variables as dots in two dimensions, one axis for each attribute. You can create a scatter plot for each pair of attributes in your data. Drawing all these scatter plots together is called a scatter plot matrix. Scatter plots are useful for spotting structured relationships between variables, like whether you could summarize the relationship between two variables with a line. Attributes with structured relationships may also be correlated and good candidates for removal from your dataset.\n\n2. A scatter plot matrix is a grid (or matrix) of scatter plots used to visualize bivariate relationships between combinations of variables. Each scatter plot in the matrix visualizes the relationship between a pair of variables, allowing many relationships to be explored in one chart.\n\n3. Variables\nA scatter plot matrix is made up of three or more Numeric fields. A scatter plot will be created for every pairwise combination of variables.\n\n* . Statistics\nA regression equation is calculated for every scatter plot in the matrix. The associated trend lines can be added to the scatter plots by checking Show linear trend in the Chart Properties pane. Alternatively, the mini-plots in the grid can be viewed as R² values with a color gradient corresponding to the strength of the R² value by checking Show as R2 in the Chart Properties pane.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns\n\n#you can use vars to compare two variable and hue to put colours\nsns.pairplot(Train,hue='CLASS',vars=['FULL_Charge','FULL_AcidicMolPerc'])\n#check on the seaborn(seaborn.pydata.org-dev/generated/seaborn.boxplot.html)\n\n","execution_count":59,"outputs":[{"output_type":"execute_result","execution_count":59,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# 3. Prepare Data\n(Prepare Your Data For Machine Learning)\n\nMany machine learning algorithms make assumptions about your data. It is often a very good idea to prepare your data in such way to best expose the structure of the problem to the machine learning algorithms that you intend to use. It involes the following;\n\n1. Rescale data.\n2. Standardize data.\n3. Normalize data.\n4. Binarize data.\n\n### The steps involved are as below:\n\n* Split the dataset into the input and output variables for machine learning.\n* Apply a pre-processing transform to the input variables.\n* Summarize the data to show the change.\n\nThe scikit-learn library provides two standard idioms for transforming data. Each are useful in diferent circumstances. The transforms are calculated in such a way that they can be applied to your training data and any samples of data you may have in the future. The scikit-learn documentation has some information on how to use various diferent pre-processing methods:\n\nThe Fit and Multiple Transform method is the preferred approach. You call the fit() function to prepare the parameters of the transform once on your data. Then later you can use the transform() function on the same data to prepare it for modeling and again on the test or validation dataset or new data that you may see in the future. The Combined Fit-And-Transform is a convenience that you can use for one of tasks. This might be useful if you are interested in plotting or summarizing the transformed data.\n\n### Rescale Data\nWhen your data is comprised of attributes with varying scales, many machine learning algorithms can benefit from rescaling the attributes to all have the same scale. Often this is referred to as normalization and attributes are often rescaled into the range between 0 and 1. This is useful for optimization algorithms used in the core of machine learning algorithms like gradient descent. It is also useful for algorithms that weight inputs like regression and neural networks and algorithms that use distance measures like k-Nearest Neighbors. You can rescale your data using scikit-learn using the MinMaxScaler class\n\n### NOTE: Since my graph and summary data shows varying means and Gaussian distribution. i would use Standardize data method\n\n\n\n### Standardize of Data\nStandardization is a useful technique to transform attributes with a Gaussian distribution and differing means and standard deviations to a standard Gaussian distribution with a mean of 0 and a standard deviation of 1. It is most suitable for techniques that assume a Gaussian distribution in the input variables and work better with rescaled data, such as linear regression, logistic regression and linear discriminate analysis. You can standardize data using scikit-learn with the StandardScaler class3."},{"metadata":{"trusted":true},"cell_type":"code","source":"#using Standardize data method\nfrom sklearn.preprocessing import StandardScaler\n\narray2 = Train.values\n# separate array into input and output components\nX = array2[:,0:11]\nY = array2[:,11]\nscaler = StandardScaler().fit(X)\nrescaledX = scaler.transform(X)\n# summarize transformed data\n#set_printoptions(precision=3)\nprint(rescaledX[0:11,:])","execution_count":60,"outputs":[{"output_type":"stream","text":"[[ 7.69712416e-01 -1.12341031e+00 -1.90047029e-01 1.37605977e-01\n -6.06718766e-01 -7.20629784e-01 -3.11684110e-01 -1.33070267e+00\n -2.25681314e-02 -3.60971652e-01 -9.25122883e-01]\n [ 5.07884366e-01 -4.10857567e-01 -3.76275096e-01 -2.43225309e-01\n -1.18128598e+00 -9.24503172e-01 3.20837658e+00 -1.30322672e+00\n -5.92370366e-01 9.02050407e-01 1.03699430e+00]\n [ 9.00626442e-01 -4.10857567e-01 -9.16336490e-01 -8.65106417e-03\n -1.05360437e+00 -4.63244125e-02 -3.11684110e-01 -1.30383154e+00\n -4.59030969e-01 -1.40916462e+00 2.31808537e+00]\n [ 7.69712416e-01 -5.74065761e-01 -7.11485617e-01 -8.70124978e-01\n 1.59370848e-01 6.27395116e-01 -3.11684110e-01 -1.30201709e+00\n -7.01486075e-01 -2.30020073e+00 6.98862456e-01]\n [ 1.42428254e+00 2.04070778e-03 -3.66963693e-01 -1.04957427e+00\n -4.79037163e-01 2.00315519e-01 -3.11684110e-01 -1.30184429e+00\n -7.71259861e-02 -1.97723618e+00 1.44656245e+00]\n [ 7.69712416e-01 -1.09357454e-01 5.45553834e-01 6.19304189e-01\n -5.74798365e-01 -3.85527549e-01 3.20837658e+00 -1.31091653e+00\n 5.59455063e-01 1.16266135e-01 -6.87001866e-01]\n [ 2.46056315e-01 -2.14164008e-01 -3.85586500e-01 5.76728963e-01\n -1.18128598e+00 -6.50914459e-01 3.20837658e+00 -1.32180323e+00\n 4.98786728e-01 5.37273488e-01 1.10366819e+00]\n [-1.57717358e-02 -3.47973635e-01 -9.62893507e-01 3.42389293e-01\n -1.43664918e+00 -1.99132340e+00 -3.11684110e-01 -1.34176217e+00\n 3.20491659e-01 8.18425659e-01 -7.10813967e-01]\n [ 1.29336852e+00 -7.76428102e-01 -1.06531894e+00 -1.55074215e+00\n 5.74336055e-01 1.25424720e+00 -3.11684110e-01 -1.33882449e+00\n -1.01672136e+00 -2.97352413e+00 3.28485670e+00]\n [ 1.81702462e+00 -1.12341031e+00 -5.62503163e-01 -9.21965886e-01\n 1.75539088e+00 -8.52444475e-01 -3.11684110e-01 -1.32387688e+00\n -1.13794891e+00 5.99271146e-01 -9.16993221e-02]\n [-1.57717358e-02 -6.68853073e-01 1.82409104e-01 -2.92837762e-01\n -1.27912757e-01 -7.49336095e-01 -3.11684110e-01 -1.31100293e+00\n 2.98777633e-01 -7.34399407e-01 2.36907682e-01]]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# a) Data Cleaning(not done)\n# b) Feature Selection\n\n## Feature Selection For Machine\nLearning The data features that you use to train your machine learning models have a huge in uence on the performance you can achieve. Irrelevant or partially relevant features can negatively impact model performance. \n\n## Univariate Selection.\nRecursive Feature Elimination.\nPrinciple Component Analysis.\nFeature Importance.\nFeature Selection\nFeature selection is a process where you automatically select those features in your data that contribute most to the prediction variable or output in which you are interested. Having irrelevant features in your data can decrease the accuracy of many models, especially linear algorithms like linear and logistic regression. Three benets of performing feature selection before modeling your data are:\n\nReduces Overffitting: Less redundant data means less opportunity to make decisions based on noise.\nImproves Accuracy: Less misleading data means modeling accuracy improves.\nReduces Training Time: Less data means that algorithms train faster.\nUnivariate Selection\nStatistical tests can be used to select those features that have the strongest relationship with the output variable. The scikit-learn library provides the SelectKBest class2 that can be used with a suite of different statistical tests to select a specific number of features. The example below uses the chi-squared (𝑐ℎ𝑖2) statistical test for non-negative features to select 4 of the best features from the Pima Indians onset of diabetes dataset.\n\nYou can see the scores for each attribute and the 4 attributes chosen (those with the highest scores): plas, test, mass and age. I got the names for the chosen attributes by manually mapping the index of the 4 highest scores to the index of the attribute names.\n\n# Recursive Feature Elimination method.\nThe Recursive Feature Elimination (or RFE) works by recursively removing attributes and building a model on those attributes that remain. It uses the model accuracy to identify which attributes (and combination of attributes) contribute the most to predicting the target attribute. You can learn more about the RFE class3 in the scikit-learn documentation. The example below uses RFE with the logistic regression algorithm to select the top 3 features. The choice of algorithm does not matter too much as long as it is skillful and consistent.\n\n### NOTE: Since i dont have much information about the interpretetion of my varaibles, Recursive Feature Elimination method would be the best. \n\n# c) Data Transforms"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.feature_selection import RFE\nfrom sklearn.linear_model import LogisticRegression\n\narray_1 = Train.values\nX = array_1[:,0:11]\nY = array_1[:,11]\n# feature extraction\nmodel = LogisticRegression()\nrfe = RFE(model, 10)\nfit = rfe.fit(X, Y)\nprint(\"Num Features: \", fit.n_features_)\nprint(\"Selected Features:\", fit.support_)\nprint(\"Feature Ranking: \", fit.ranking_)","execution_count":61,"outputs":[{"output_type":"stream","text":"Num Features: 10\nSelected Features: [ True True True True True True True True False True True]\nFeature Ranking: [1 1 1 1 1 1 1 1 2 1 1]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"### Feature Importance\nBagged decision trees like Random Forest and Extra Trees can be used to estimate the importance\nof features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.ensemble import ExtraTreesClassifier\nimport warnings\nwarnings.filterwarnings('ignore')\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n# feature extraction\nmodel = ExtraTreesClassifier()\nmodel.fit(X, Y)\nprint(model.feature_importances_)","execution_count":62,"outputs":[{"output_type":"stream","text":"[0.08501218 0.12993989 0.09578336 0.093089 0.04958861 0.06562745\n 0.03600039 0.30782225 0.05586776 0.03369603 0.04757308]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# 4. Evaluate Algorithms\n\n\n## Evaluate the Performance of Machine Learning Algorithms with Resampling\nYou need to know how well your algorithms perform on unseen data. \n\n1. The best way to evaluate the performance of an algorithm would be to make predictions for new data to which you already know the answers. 2. The second best way is to use clever techniques from statistics called resampling methods that allow you to make accurate estimates for how well your algorithm will perform on new data. In this chapter you will discover how you can estimate the accuracy of your machine learning algorithms using resampling methods in Python and scikit-learn.\n\n## Evaluate Machine Learning Algorithms\nWhy can't you train your machine learning algorithm on your dataset and use predictions from this same dataset to evaluate machine learning algorithms? The simple answer is overffitting. Imagine an algorithm that remembers every observation it is shown during training. If you evaluated your machine learning algorithm on the same dataset used to train the algorithm, then an algorithm like this would have a perfect score on the training dataset. But the predictions it made on new data would be terrible. We must evaluate our machine learning algorithms on data that is not used to train the algorithm. The evaluation is an estimate that we can use to talk about how well we think the algorithm may actually do in practice. It is not a guarantee of performance. Once we estimate the performance of our algorithm, we can then re-train the final algorithm on the entire training dataset and get it ready for operational use. Next up we are going to look at four different techniques that we can use to split up our training dataset and create useful estimates of performance for our machine learning algorithms:\n\n* Train and Test Sets.\n* k-fold Cross Validation.\n* Leave One Out Cross Validation.\n* Repeated Random Test-Train Splits.\n\n# a) Split-out validation dataset\n\n### Split into Train and Test Sets\nThe simplest method that we can use to evaluate the performance of a machine learning algorithm is to use different training and testing datasets. \n\nWe can take our original dataset and split it into two parts. Train the algorithm on the train part, make predictions on the second part and evaluate the predictions against the expected results.\n\nThis algorithm evaluation technique is very fast. It is ideal for large datasets (millions of records) where there is strong evidence that both splits of the data are representative of the underlying problem. Because of the speed, it is useful to use this approach when the algorithm you are investigating is slow to train. A downside of this technique is that it can have a high variance. \n\nThis means that diferences in the training and test dataset can result in meaningful diferences in the estimate of accuracy. In the example below we split the train dataset into 70%/30% splits for training and test and evaluate the accuracy of a Logistic Regression model."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split #spliting the dataset to train and test.\nfrom sklearn.linear_model import LogisticRegression #statisctical method used\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresult = model.score(X_test, Y_test)\nprint(\"Accuracy: \", (result*100.0))\n","execution_count":63,"outputs":[{"output_type":"stream","text":"Accuracy: 91.77631578947368\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# b) Test options and evaluation metric"},{"metadata":{},"cell_type":"markdown","source":"# K-fold Cross Validation\nCross validation is an approach that you can use to estimate the performance of a machine learning algorithm with less variance than a single train-test set split. It works by splitting the dataset into k-parts (e.g. k = 5 or k = 10). Each split of the data is called a fold. The algorithm is trained on k 1 folds with one held back and tested on the held back fold. This is repeated so that each fold of the dataset is given a chance to be the held back test set. After running cross validation you end up with k diferent performance scores that you can summarize using a mean and a standard deviation. The result is a more reliable estimate of the performance of the algorithm on new data. It is more accurate because the algorithm is trained and evaluated multiple times on different data. The choice of k must allow the size of each test partition to be large enough to be a reasonable sample of the problem, whilst allowing enough repetitions of the train-test evaluation of the algorithm to provide a fair estimate of the algorithms performance on unseen data. For modest sized datasets in the thousands or tens of thousands of records, k values of 3, 5 and 10 are common."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10 #number of folds to use are 10\nseed = 42 #reproducibility\n\nkfold = KFold(n_splits=num_folds, random_state=seed)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(f\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))","execution_count":64,"outputs":[{"output_type":"stream","text":"Accuracy: (83.5359128018065, 27.08521320979506)\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Leave One Out Cross Validation\nYou can configure cross validation so that the size of the fold is 1 (k is set to the number of observations in your dataset). This variation of cross validation is called leave-one-out cross validation. The result is a large number of performance measures that can be summarized in an effort to give a more reasonable estimate of the accuracy of your model on unseen data. A downside is that it can be a computationally more expensive procedure than k-fold cross validation. In the example below we use leave-one-out cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import LeaveOneOut\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nloocv = LeaveOneOut()\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=loocv)\nprint(\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))\n","execution_count":65,"outputs":[{"output_type":"stream","text":"Accuracy: (91.4417379855168, 27.974673416141517)\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Repeated Random Test-Train Splits\nAnother variation on k-fold cross validation is to create a random split of the data like the train/test split described above, but repeat the process of splitting and evaluation of the algorithm multiple times, like cross validation. This has the speed of using a train/test split and the reduction in variance in the estimated performance of k-fold cross validation. You can also repeat the process many more times as needed to improve the accuracy. A down side is that repetitions may include much of the same data in the train or the test split from run to run, introducing redundancy into the evaluation. The example below splits the data into a 70%/30% train/test split and repeats the process 10 times."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import ShuffleSplit\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nn_splits = 10\ntest_size = 0.30\n\nkfold = ShuffleSplit(n_splits=n_splits, test_size=test_size, random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(\"Accuracy: \" , (results.mean()*100.0, results.std()*100.0))\n\n\nmcc = matthews_corrcoef(model.predict(X), Y)\noutput = model.predict(test_set)\nprint('MCC: ',mcc)\n\ncross_validation_report = pd.DataFrame(output)\ncross_validation_report.columns = ['CLASS']\ncross_validation_report.index.name = 'Index'\ncross_validation_report['CLASS'] = cross_validation_report['CLASS'].map({0.0:False, 1.0:True})\n\ncross_validation_report.to_csv('cross_validation_report.csv')\n\nprint(cross_validation_report['CLASS'].unique())\nprint('False: ',cross_validation_report.groupby('CLASS').size()[0].sum())\nprint('True: ',cross_validation_report.groupby('CLASS').size()[1].sum())","execution_count":66,"outputs":[{"output_type":"stream","text":"Accuracy: (91.26096491228068, 0.8132535807363438)\n","name":"stdout"},{"output_type":"error","ename":"NameError","evalue":"name 'test_set' is not defined","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)","\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mmcc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmatthews_corrcoef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_set\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'MCC: '\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmcc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mNameError\u001b[0m: name 'test_set' is not defined"]}]},{"metadata":{},"cell_type":"markdown","source":"# NOTE: What Techniques to Use When\nThis section lists some tips to consider what resampling technique to use in diferent circum- stances.\n\nGenerally k-fold cross validation is the gold standard for evaluating the performance of amachine learning algorithm on unseen data with k set to 3, 5, or 10.\nUsing a train/test split is good for speed when using a slow algorithm and producesperformance estimates with lower bias when using large datasets.\n\nTechniques like leave-one-out cross validation and repeated random splits can be usefulintermediates when trying to balance variance in the estimated performance, modeltraining speed and dataset size.\n\nThe best advice is to experiment and find a technique for your problem that is fast and produces reasonable estimates of performance that you can use to make decisions. If in doubt, use 10-fold cross validation.\n\n# Machine Learning Algorithm Performance Metrics\n\nThe metrics that you choose to evaluate your machine learning algorithms are very important.\n\n\n## Classiffication Metrics\nClassiffication problems are perhaps the most common type of machine learning problem and as such there are a myriad of metrics that can be used to evaluate predictions for these problems. In this section we will review how to use the following metrics:\n\n* Classiffication Accuracy.\n* Logarithmic Loss.\n* Area Under ROC Curve.\n* Confusion Matrix.\n* Classiffication Report.\n\n## Classiffication Accuracy\nClassiffication accuracy is the number of correct predictions made as a ratio of all predictions made. This is the most common evaluation metric for classification problems, it is also the most misused. It is really only suitable when there are an equal number of observations in each class (which is rarely the case) and that all predictions and prediction errors are equally important, which is often not the case. Below is an example of calculating classiffication accuracy."},{"metadata":{"trusted":true},"cell_type":"code","source":"#classiffication accuracy.\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LogisticRegression()\nscoring = 'accuracy'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"Accuracy:\", (results.mean(), results.std()))\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nclassification_accuracy_report = pd.DataFrame(output)\nclassification_accuracy_report.columns = ['CLASS']\nclassification_accuracy_report.index.name = 'Index'\nclassification_accuracy_report['CLASS'] = classification_accuracy_report['CLASS'].map({0.0:False, 1.0:True})\n\nclassification_accuracy_report.to_csv('classification_accuracy_report.cp.csv')\n\nprint(classification_accuracy_report['CLASS'].unique())\nprint('False: ',classification_accuracy_report.groupby('CLASS').size()[0].sum())\nprint('True: ',classification_accuracy_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Confusion Matrix\nThe confusion matrix is a handy presentation of the accuracy of a model with two or more classes. The table presents predictions on the x-axis and accuracy outcomes on the y-axis. The cells of the table are the number of predictions made by a machine learning algorithm. For example, a machine learning algorithm can predict 0 or 1 and each prediction may actually have been a 0 or 1. Predictions for 0 that were actually 0 appear in the cell for prediction = 0 and actual = 0, whereas predictions for 0 that were actually 1 appear in the cell for prediction = 0 and actual = 1. And so on."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import confusion_matrix\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\n\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\npredicted = model.predict(X_test)\nmatrix = confusion_matrix(Y_test, predicted)\nprint(matrix)\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nconfusion_matrix_report = pd.DataFrame(output)\nconfusion_matrix_report.columns = ['CLASS']\nconfusion_matrix_report.index.name = 'Index'\nconfusion_matrix_report['CLASS'] = confusion_matrix_report['CLASS'].map({0.0:False, 1.0:True})\n\nconfusion_matrix_report.to_csv('confusion_matrix_report.csv')\n\nprint(confusion_matrix_report['CLASS'].unique())\nprint('False: ',confusion_matrix_report.groupby('CLASS').size()[0].sum())\nprint('True: ',confusion_matrix_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication Report\nThe scikit-learn library provides a convenience report when working on classiffication problems to give you a quick idea of the accuracy of a model using a number of measures. The classification report() function displays the precision, recall, F1-score and support for each class. "},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import classification_report\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\npredicted = model.predict(X_test)\nreport = classification_report(Y_test, predicted)\nprint(report)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nClassification_report = pd.DataFrame(output)\nClassification_report.columns = ['CLASS']\nClassification_report.index.name = 'Index'\nClassification_report['CLASS'] = Classification_report['CLASS'].map({0.0:False, 1.0:True})\n\nClassification_report.to_csv('Classification_report.csv')\n\nprint(Classification_report['CLASS'].unique())\nprint('False: ',Classification_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Classification_report.groupby('CLASS').size()[1].sum())\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Spot-Check Classiffication Algorithms.\nSpot-checking is a way of discovering which algorithms perform well on your machine learning problem. You cannot know which algorithms are best suited to your problem beforehand. You must trial a number of \nmethods and focus attention on those that prove themselves the most promising.\n\n1. How to spot-check machine learning algorithms on a classification problem.\n2. How to spot-check two linear classification algorithms.\n3. How to spot-check four nonlinear classification algorithms.\n\n## Algorithm Spot-Checking\nYou cannot know which algorithm will work best on your dataset beforehand. You must use trial and error to discover a shortlist of algorithms that do well on your problem that you can then double down on and tune further. I call this process spot-checking. The question is not: What algorithm should I use on my dataset? Instead it is: What algorithms should I spot-check on my dataset? You can guess at what algorithms might do well on your dataset, and this can be a good starting point. I recommend trying a mixture of algorithms and see what is good at picking out the structure in your data. Below are some suggestions when spot-checking algorithms on your dataset:\n\nTry a mixture of algorithm representations (e.g. instances and trees).\n\nTry a mixture of learning algorithms (e.g. di\u000berent algorithms for learning the same type of representation).\n\nTry a mixture of modeling types (e.g. linear and nonlinear functions or parametric and nonparametric).\n\nAlgorithms Overview\nWe are going to take a look at six classification algorithms that you can spot-check on your dataset. Starting with two linear machine learning algorithms:\n\nLogistic Regression.\nLinear Discriminant Analysis.\nThen looking at four nonlinear machine learning algorithms:\n\nk-Nearest Neighbors.\nNaive Bayes.\nClassi\fcation and Regression Trees.\nSupport Vector Machines.\nLinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use two linear machine learning algorithms: logistic regression and linear discriminant analysis.\n\nLogistic Regression\nLogistic regression assumes a Gaussian distribution for the numeric input variables and can model binary classiffication problems. You can construct a logistic regression model using the LogisticRegression class."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Logistic Regression Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLogisticRegression = pd.DataFrame(output)\nLogisticRegression.columns = ['CLASS']\nLogisticRegression.index.name = 'Index'\nLogisticRegression['CLASS'] = LogisticRegression['CLASS'].map({0.0:False, 1.0:True})\n\nLogisticRegression.to_csv('LogisticRegression.csv')\n\nprint(LogisticRegression['CLASS'].unique())\nprint('False: ',LogisticRegression.groupby('CLASS').size()[0].sum())\nprint('True: ',LogisticRegression.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Linear Discriminant Analysis\nLinear Discriminant Analysis or LDA is a statistical technique for binary and multiclass classiffication. It too assumes a Gaussian distribution for the numerical input variables. You can construct an LDA model using the LinearDiscriminantAnalysis class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearDiscriminantAnalysis()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLinearDiscriminantAnalysis = pd.DataFrame(output)\nLinearDiscriminantAnalysis.columns = ['CLASS']\nLinearDiscriminantAnalysis.index.name = 'Index'\nLinearDiscriminantAnalysis['CLASS'] = LinearDiscriminantAnalysis['CLASS'].map({0.0:False, 1.0:True})\n\nLinearDiscriminantAnalysis.to_csv('LinearDiscriminantAnalysis.csv')\n\nprint(LinearDiscriminantAnalysis['CLASS'].unique())\nprint('False: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[0].sum())\nprint('True: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Nonlinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use 4 nonlinear machine learning algorithms.\n\n## k-Nearest Neighbors\nThe k-Nearest Neighbors algorithm (or KNN) uses a distance metric to find the k most similar instances in the training data for a new instance and takes the mean outcome of the neighbors as the prediction. You can construct a KNN model using the KNeighborsClassifier class."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = KNeighborsClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nk_nearest = pd.DataFrame(output)\nk_nearest.columns = ['CLASS']\nk_nearest.index.name = 'Index'\nk_nearest['CLASS'] = k_nearest['CLASS'].map({0.0:False, 1.0:True})\n\nk_nearest.to_csv('k_nearest.csv')\n\nprint(k_nearest['CLASS'].unique())\nprint('False: ',k_nearest.groupby('CLASS').size()[0].sum())\nprint('True: ',k_nearest.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Naive Bayes\nNaive Bayes calculates the probability of each class and the conditional probability of each class given each input value. These probabilities are estimated for new data and multiplied together, assuming that they are all independent (a simple or naive assumption). When working with real-valued data, a Gaussian distribution is assumed to easily estimate the probabilities for input variables using the Gaussian Probability Density Function. You can construct a Naive Bayes model using the GaussianNB class4."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.naive_bayes import GaussianNB\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = GaussianNB()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nnaive_bayes = pd.DataFrame(output)\nnaive_bayes.columns = ['CLASS']\nnaive_bayes.index.name = 'Index'\nnaive_bayes['CLASS'] = naive_bayes['CLASS'].map({0.0:False, 1.0:True})\n\nnaive_bayes.to_csv('naive_bayes_nb.csv')\n\nprint(naive_bayes['CLASS'].unique())\nprint('False: ',naive_bayes.groupby('CLASS').size()[0].sum())\nprint('True: ',naive_bayes.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nDecisionTree_report = pd.DataFrame(output)\nDecisionTree_report.columns = ['CLASS']\nDecisionTree_report.index.name = 'Index'\nDecisionTree_report['CLASS'] = DecisionTree_report['CLASS'].map({0.0:False, 1.0:True})\n\nDecisionTree_report.to_csv('DecisionTree_report_dt.csv')\n\nprint(DecisionTree_report['CLASS'].unique())\nprint('False: ',DecisionTree_report.groupby('CLASS').size()[0].sum())\nprint('True: ',DecisionTree_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Support Vector Machines\nSupport Vector Machines (or SVM) seek a line that best separates two classes. Those data instances that are closest to the line that best separates the classes are called support vectors and in uence where the line is placed. SVM has been extended to support multiple classes. Of particular importance is the use of di\u000berent kernel functions via the kernel parameter."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10)\nmodel = SVC()\nscoring = 'acuracy'\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nfinalreport1 = pd.DataFrame(output)\nfinalreport1.columns = ['CLASS']\nfinalreport1.index.name = 'Index'\nfinalreport1['CLASS'] = finalreport1['CLASS'].map({0.0:False, 1.0:True})\n\nfinalreport1.to_csv('finalreport1_sv.csv')\n\nprint(finalreport1['CLASS'].unique())\nprint('False: ',finalreport1.groupby('CLASS').size()[0].sum())\nprint('True: ',finalreport1.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Regression Metrics\nIn this section will review 3 of the most common metrics for evaluating predictions on regression\nmachine learning problems:\n- Mean Absolute Error.\n- Mean Squared Error.\n- R2.\n\n## Mean Absolute Error\nThe Mean Absolute Error (or MAE) is the sum of the absolute di\u000berences between predictions\nand actual values. It gives an idea of how wrong the predictions were. The measure gives an\nidea of the magnitude of the error, but no idea of the direction (e.g. over or under predicting).\nThe example below demonstrates calculating mean absolute error on the Boston house price\ndataset."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'neg_mean_absolute_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MAE:\",(results.mean(), results.std()))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Mean Squared Error\nThe Mean Squared Error (or MSE) is much like the mean absolute error in that it provides a gross idea of the magnitude of error. Taking the square root of the mean squared error converts the units back to the original units of the output variable and can be meaningful for description and presentation. This is called the Root Mean Squared Error (or RMSE). The example below provides a demonstration of calculating mean squared error."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression MSE\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'neg_mean_squared_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MSE:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"This metric too is inverted so that the results are increasing. Remember to take the absolute value before taking the square root if you are interested in calculating the RMSE.\n\n## R2 Metric\nThe R2 (or R Squared) metric provides an indication of the goodness of fit of a set of predictions to the actual values. In statistical literature this measure is called the coefficient of determination. This is a value between 0 and 1 for no-fit and perfect fit respectively. The example below provides a demonstration of calculating the mean R2 for a set of predictions."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression R^2\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'r2'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"R^2M:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# d) Compare Algorithms\n## Compare Machine Learning Algorithms\nIt is important to compare the performance of multiple di\u000berent machine learning algorithms\nconsistently. In this chapter you will discover how you can create a test harness to compare\nmultiple different machine learning algorithms in Python with scikit-learn. You can use this\ntest harness as a template on your own machine learning problems and add more and different\nalgorithms to compare. After completing this lesson you will know:\n\n1. How to formulate an experiment to directly compare machine learning algorithms.\n2. A reusable template for evaluating the performance of multiple algorithms on one dataset.\n3. How to report and visualize the results when comparing algorithm performance.\n\n\n### Choose The Best Machine Learning Model\nWhen you work on a machine learning project, you often end up with multiple good models\nto choose from. Each model will have different performance characteristics. Using resampling\nmethods like cross validation, you can get an estimate for how accurate each model may be on\nunseen data. You need to be able to use these estimates to choose one or two best models from\nthe suite of models that you have created.\nWhen you have a new dataset, it is a good idea to visualize the data using different techniques\nin order to look at the data from diferent perspectives. The same idea applies to model selection.\nYou should use a number of di\u000berent ways of looking at the estimated accuracy of your machine\nlearning algorithms in order to choose the one or two algorithm to finalize. A way to do this is\nto use visualization methods to show the average accuracy, variance and other properties of the\ndistribution of model accuracies. In the next section you will discover exactly how you can do\nthat in Python with scikit-learn.\n\n\n### Compare Machine Learning Algorithms Consistently\nThe key to a fair comparison of machine learning algorithms is ensuring that each algorithm is\nevaluated in the same way on the same data. You can achieve this by forcing each algorithm to be evaluated on a consistent test harness. In the example below six different classiffication\nalgorithms are compared on a single dataset:\n\n- Logistic Regression.\n- Linear Discriminant Analysis.\n- k-Nearest Neighbors.\n- Classiffication and Regression Trees.\n- Naive Bayes.\n- Support Vector Machines.\n\nThe dataset is the Pima Indians onset of diabetes problem. The problem has two classes and\neight numeric input variables of varying scales. The 10-fold cross validation procedure is used to\nevaluate each algorithm, importantly con\fgured with the same random seed to ensure that the\nsame splits to the training data are performed and that each algorithm is evaluated in precisely\nthe same way. Each algorithm is given a short name, useful for summarizing results afterward."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Compare Algorithms\nfrom pandas import read_csv\nfrom matplotlib import pyplot\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n# load dataset\narray = Train.values\n\n#split the dataset \nX = array[:,0:11]\nY = array[:,11]\n\n# prepare models and add them to a list\nmodels = []\nmodels.append(('LR', LogisticRegression()))\nmodels.append(('LDA', LinearDiscriminantAnalysis()))\nmodels.append(('KNN', KNeighborsClassifier()))\nmodels.append(('CART', DecisionTreeClassifier()))\nmodels.append(('NB', GaussianNB()))\nmodels.append(('SVM', SVC()))\n\n# evaluate each model in turn\nresults = []\nnames = []\nscoring = 'accuracy'\n\nfor name, model in models:\n kfold = KFold(n_splits=10, random_state=42)\n cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n results.append(cv_results)\n names.append(name)\n msg = (name, cv_results.mean(), cv_results.std())\n print(msg)\n\n# boxplot algorithm comparison\nfig = pyplot.figure()\nfig.suptitle('Algorithm Comparison')\nax = fig.add_subplot(111)\npyplot.boxplot(results)\nax.set_xticklabels(names)\npyplot.show()\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\ncompare_testmethods_report = pd.DataFrame(output)\ncompare_testmethods_report.columns = ['CLASS']\ncompare_testmethods_report.index.name = 'Index'\ncompare_testmethods_report['CLASS'] = compare_testmethods_report['CLASS'].map({0.0:False, 1.0:True})\n\ncompare_testmethods_report.to_csv('compare_testmethods_report.csv')\n\nprint(compare_testmethods_report['CLASS'].unique())\nprint('False: ',compare_testmethods_report.groupby('CLASS').size()[0].sum())\nprint('True: ',compare_testmethods_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Automate Machine Learning Workflows with Pipelines\n\nThere are standard work\nows in a machine learning project that can be automated. In Python\nscikit-learn, Pipelines help to clearly define and automate these work\nows. In this chapter you\nwill discover Pipelines in scikit-learn and how you can automate common machine learning\nwork\nows. After completing this lesson you will know:\n\n1. How to use pipelines to minimize data leakage.\n2. How to construct a data preparation and modeling pipeline.\n3. How to construct a feature extraction and modeling pipeline.\n\n### Automating Machine Learning Workflows\nThere are standard work\nows in applied machine learning. Standard because they overcome\ncommon problems like data leakage in your test harness. Python scikit-learn provides a Pipeline\nutility to help automate machine learning work\nows. Pipelines work by allowing for a linear\nsequence of data transforms to be chained together culminating in a modeling process that can\nbe evaluated.\n\nThe goal is to ensure that all of the steps in the pipeline are constrained to the data available\nfor the evaluation, such as the training dataset or each fold of the cross validation procedure.\nYou can learn more about Pipelines in scikit-learn by reading the Pipeline section1 of the user\nguide. You can also review the API documentation for the Pipeline and FeatureUnion classes\nand the pipeline module2.\n\n### Data Preparation and Modeling Pipeline\nAn easy trap to fall into in applied machine learning is leaking data from your training dataset\nto your test dataset. To avoid this trap you need a robust test harness with strong separation of training and testing. This includes data preparation. Data preparation is one easy way to leak\nknowledge of the whole training dataset to the algorithm. For example, preparing your data\nusing normalization or standardization on the entire training dataset before learning would not\nbe a valid test because the training dataset would have been in\nuenced by the scale of the data\nin the test set.\n\n\nPipelines help you prevent data leakage in your test harness by ensuring that data preparation\nlike standardization is constrained to each fold of your cross validation procedure. \n1. Standardize the data.\n2. Learn a Linear Discriminant Analysis model.\n\nThe pipeline is then evaluated using 10-fold cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Create a pipeline that standardizes the data then creates a model\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\n# load data\n\n#dataframe = read_csv('diabetes.csv')\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\n# create pipeline\nestimators = []\nestimators.append(('standardize', StandardScaler()))\nestimators.append(('lda', LinearDiscriminantAnalysis()))\nmodel = Pipeline(estimators)\n\n\n# evaluate pipeline\nkfold = KFold(n_splits=10, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nstandarzied_pipeline_report = pd.DataFrame(output)\nstandarzied_pipeline_report.columns = ['CLASS']\nstandarzied_pipeline_report.index.name = 'Index'\nstandarzied_pipeline_report['CLASS'] = standarzied_pipeline_report['CLASS'].map({0.0:False, 1.0:True})\n\nstandarzied_pipeline_report.to_csv('standarzied_pipeline_report.csv')\n\nprint(standarzied_pipeline_report['CLASS'].unique())\nprint('False: ',standarzied_pipeline_report.groupby('CLASS').size()[0].sum())\nprint('True: ',standarzied_pipeline_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 5. Improve Accuracy\n# a) Algorithm Tuning\n# b) Ensembles\n\n# Improve Performance with Ensembles\n\nEnsembles can give you a boost in accuracy on your dataset. In this chapter you will discover\nhow you can create some of the most powerful types of ensembles in Python using scikit-learn.\nThis lesson will step you through Boosting, Bagging and Majority Voting and show you how you\ncan continue to ratchet up the accuracy of the models on your own datasets. After completing\nthis lesson you will know:\n\n1. How to use bagging ensemble methods such as bagged decision trees, random forest and extra trees.\n2. How to use boosting ensemble methods such as AdaBoost and stochastic gradient boosting.\n3. How to use voting ensemble methods to combine the predictions from multiple algorithms.\n\n### Combine Models Into Ensemble Predictions\nThe three most popular methods for combining the predictions from different models are:\n\n- Bagging. Building multiple models (typically of the same type) from different subsamples of the training dataset.\n- Boosting. Building multiple models (typically of the same type) each of which learns to fix the prediction errors of a prior model in the sequence of models.\n- Voting. Building multiple models (typically of di\u000bering types) and simple statistics (like calculating the mean) are used to combine predictions.\n\nThis assumes you are generally familiar with machine learning algorithms and ensemble\nmethods and will not go into the details of how the algorithms work or their parameters.\nThe Pima Indians onset of Diabetes dataset is used to demonstrate each algorithm. Each\nensemble algorithm is demonstrated using 10-fold cross validation and the classiffication accuracy\nperformance metric.\n"},{"metadata":{},"cell_type":"markdown","source":"# Boosting Algorithms\nBoosting ensemble algorithms creates a sequence of models that attempt to correct the mistakes\nof the models before them in the sequence. Once created, the models make predictions which\nmay be weighted by their demonstrated accuracy and the results are combined to create a final\noutput prediction. The two most common boosting ensemble machine learning algorithms are:\n\n- AdaBoost.\n- Stochastic Gradient Boosting.\n\n\n### AdaBoost\nAdaBoost was perhaps the \frst successful boosting ensemble algorithm. It generally works\nby weighting instances in the dataset by how easy or dificult they are to classify, allowing\nthe algorithm to pay or less attention to them in the construction of subsequent models. You\ncan construct an AdaBoost model for classi\fcation using the AdaBoostClassifier class4. The\nexample below demonstrates the construction of 30 decision trees in sequence using the AdaBoost\nalgorithm."},{"metadata":{"trusted":true},"cell_type":"code","source":"# AdaBoost Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 30\n\n\nkfold = KFold(n_splits=10, random_state=seed)\n\nmodel = AdaBoostClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nAdaBoost_report = pd.DataFrame(output)\nAdaBoost_report.columns = ['CLASS']\nAdaBoost_report.index.name = 'Index'\nAdaBoost_report['CLASS'] = AdaBoost_report['CLASS'].map({0.0:False, 1.0:True})\n\nAdaBoost_report.to_csv('AdaBoost_report.csv')\n\nprint(AdaBoost_report['CLASS'].unique())\nprint('False: ',AdaBoost_report.groupby('CLASS').size()[0].sum())\nprint('True: ',AdaBoost_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles. You can construct a\nGradient Boosting model for classiffication using the GradientBoostingClassifier class5. The\nexample below demonstrates Stochastic Gradient Boosting for classification with 100 trees"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## XGB"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic X Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom xgboost import XGBClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = XGBClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Voting Ensemble\nVoting is one of the simplest ways of combining the predictions from multiple machine learning\nalgorithms. It works by first creating two or more standalone models from your training dataset.\nA Voting Classiffier can then be used to wrap your models and average the predictions of the\nsub-models when asked to make predictions for new data. The predictions of the sub-models can\nbe weighted, but specifying the weights for classiffiers manually or even heuristically is difficult.\nMore advanced methods can learn how to best weight the predictions from sub-models, but this\nis called stacking (stacked aggregation) and is currently not provided in scikit-learn.\nYou can create a voting ensemble model for classiffication using the VotingClassifier\nclass6. The code below provides an example of combining the predictions of logistic regression,\nclassiffication and regression trees and support vector machines together for a classiffication\nproblem."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Voting Ensemble for Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom xgboost import XGBClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import VotingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\n\n# create the sub models\nestimators = []\nmodel1 = LogisticRegression()\nestimators.append(('logistic', model1))\n\nmodel2 = DecisionTreeClassifier()\nestimators.append(('cart', model2))\n\nmodel3 = SVC()\nestimators.append(('svm', model3))\n\nmodel4 = XGBClassifier()\nestimators.append(('xgb', model4))\n\nmodel5 = RandomForestClassifier()\nestimators.append(('rfc', model5))\n\n# create the ensemble model\nensemble = VotingClassifier(estimators)\nresults = cross_val_score(ensemble, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nVoting_Ensemble_report = pd.DataFrame(output)\nVoting_Ensemble_report.columns = ['CLASS']\nVoting_Ensemble_report.index.name = 'Index'\nVoting_Ensemble_report['CLASS'] = Voting_Ensemble_report['CLASS'].map({0.0:False, 1.0:True})\n\nVoting_Ensemble_report.to_csv('Voting_Ensemble_report.csv')\n\nprint(Voting_Ensemble_report['CLASS'].unique())\nprint('False: ',Voting_Ensemble_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Voting_Ensemble_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Extra Trees\nExtra Trees are another modi\fcation of bagging where random trees are constructed from\nsamples of the training dataset. You can construct an Extra Trees model for classiffication using\nthe ExtraTreesClassifier class3. The example below provides a demonstration of extra trees\nwith the number of trees set to 100 and splits chosen from 7 random features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import ExtraTreesClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n#let's read the data\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 100\nmax_features = 7\n\nkfold = KFold(n_splits=10, random_state=42)\n\nmodel = ExtraTreesClassifier(n_estimators=num_trees, max_features=max_features)\n\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nExtra_tree_report = pd.DataFrame(output)\nExtra_tree_report.columns = ['CLASS']\nExtra_tree_report.index.name = 'Index'\nExtra_tree_report['CLASS'] = Extra_tree_report['CLASS'].map({0.0:False, 1.0:True})\n\nExtra_tree_report.to_csv('Extra_tree_report.csv')\n\nprint(Extra_tree_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed =42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nStochastic_report = pd.DataFrame(output)\nStochastic_report.columns = ['CLASS']\nStochastic_report.index.name = 'Index'\nStochastic_report['CLASS'] = Stochastic_report['CLASS'].map({0.0:False, 1.0:True})\n\nStochastic_report.to_csv('Stochastic_report.csv')\n\nprint(Stochastic_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with pickle\nPickle is the standard way of serializing objects in Python. You can use the pickle1 operation\nto serialize your machine learning algorithms and save the serialized format to a file. Later you\ncan load this file to deserialize your model and use it to make new predictions. The example\nbelow demonstrates how you can train a logistic regression model on data set and save the model to file and load it to make predictions on the unseen test set."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using Pickle\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom pickle import dump\nfrom pickle import load\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=42)\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\nfilename = 'finalized_model2.sav'\ndump(model, open(filename, 'wb'))\n\n# some time later...\n# load the model from disk\nloaded_model = load(open(filename, 'rb'))\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\npickle_report = pd.DataFrame(output)\npickle_report.columns = ['CLASS']\npickle_report.index.name = 'Index'\npickle_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n\npickle_report.to_csv('pickle.csv')\n\nprint(pickle_report['CLASS'].unique())\nprint('False: ',pickle_report.groupby('CLASS').size()[0].sum())\nprint('True: ',pickle_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with Joblib\nThe Joblib2 library is part of the SciPy ecosystem and provides utilities for pipelining Python\njobs. It provides utilities for saving and loading Python objects that make use of NumPy data\nstructures, efficiently3. This can be useful for some machine learning algorithms that require a\nlot of parameters or store the entire dataset (e.g. k-Nearest Neighbors). The example below\ndemonstrates how you can train a logistic regression model on the dataset, save the model to file using Joblib and load it to make predictions on the unseen test\nset."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using joblib\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.externals.joblib import dump\nfrom sklearn.externals.joblib import load\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=42)\n\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\n\ndump(model, filename)\n\n# some time later...\n# load the model from disk\nloaded_model = load(filename)\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\njoblib_report = pd.DataFrame(output)\njoblib_report.columns = ['CLASS']\njoblib_report.index.name = 'Index'\njoblib_report['CLASS'] = joblib_report['CLASS'].map({0.0:False, 1.0:True})\n\njoblib_report.to_csv('joblib_report.csv')\n\nprint(joblib_report['CLASS'].unique())\nprint('False: ',joblib_report.groupby('CLASS').size()[0].sum())\nprint('True: ',joblib_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# REFFERENCES\n* https://www.shanelynn.ie/python-pandas-read_csv-load-data-from-csv-files/\n* https://www.shanelynn.ie/using-pandas-dataframe-creating-editing-viewing-data-in-python/\n* https://towardsdatascience.com/introduction-to-data-visualization-in-python-89a54c97fbed\n* https://www.geeksforgeeks.org/python-pandas-dataframe-skew/\n* https://scikit-learn.org/stable/modules/preprocessing.html\n* https://towardsdatascience.com/feature-selection-techniques-in-machine-learning-with-python-f24e7da3f36e\n* https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html\n* https://data-flair.training/blogs/train-test-set-in-python-ml/\n* https://machinelearningmastery.com/k-fold-cross-validation/\n* https://medium.com/thalus-ai/performance-metrics-for-classification-problems-in-machine-learning-part-i-b085d432082b\n* https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html\n* https://www.geeksforgeeks.org/k-nearest-neighbor-algorithm-in-python/\n* https://machinelearningmastery.com/naive-bayes-classifier-scratch-python/\n* https://scikit-learn.org/stable/modules/tree.html\n* https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_absolute_error.html\n"},{"metadata":{},"cell_type":"markdown","source":"# END OF THE WORK"}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4} \ No newline at end of file From ed4aa46fcdbfe210414ad4addfc03bd7a63d0ff6 Mon Sep 17 00:00:00 2001 From: kakoozatrevor <54304427+kakoozaTrevor@users.noreply.github.com> Date: Mon, 16 Mar 2020 17:49:29 +0300 Subject: [PATCH 5/5] new file added a fourth depository having more references. --- Assignment Colab/kakooza trevor Starter Kernel4.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 Assignment Colab/kakooza trevor Starter Kernel4.ipynb diff --git a/Assignment Colab/kakooza trevor Starter Kernel4.ipynb b/Assignment Colab/kakooza trevor Starter Kernel4.ipynb new file mode 100644 index 0000000..adf0a9e --- /dev/null +++ b/Assignment Colab/kakooza trevor Starter Kernel4.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":" # KAKOOZA TREVOR\n## Kaggle assignment\n### started on the 28th /feb/2020\n# Regestration number:2019/HDO7/24847U"},{"metadata":{},"cell_type":"markdown","source":"# 1. Prepare Problem\n### a) Load libraries\n### b) Load dataset"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# Any results you write to the current directory are saved as output.","execution_count":100,"outputs":[{"output_type":"stream","text":"/kaggle/input/amp-data-set/Test.csv\n/kaggle/input/amp-data-set/AMP_TrainSet.csv\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Import the necessary tools required to work on the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#import the necessary libraries you are going to use\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# -----> Put your code here below:\n\n\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns","execution_count":101,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"\n# This first session is about loading the give dataset and viewing them. \n\n* The two data set provided are\n1. test.csv\n2. AMP_TrainSet.csv \n\n### Now load the data set using.\n```\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")\nTest = pd.read_csv(\"../input/amp-data-set/Test.csv\")\n```\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#using pandas we call the data set\nTest = pd.read_csv('/kaggle/input/amp-data-set/Test.csv')\nTrain = pd.read_csv(\"../input/amp-data-set/AMP_TrainSet.csv\")","execution_count":102,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 2. Summarize Data\n\n## View the first five raws of the datasets"},{"metadata":{"trusted":true},"cell_type":"code","source":"#head.() is ued to view the first five raws of the data set.\nTest.head()","execution_count":103,"outputs":[{"output_type":"execute_result","execution_count":103,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\n0 4.0 3.704 0.873 73.519 \n1 4.0 4.444 0.892 62.444 \n2 2.0 0.000 0.901 47.000 \n3 4.5 0.000 0.869 69.222 \n4 -4.0 21.591 1.061 71.682 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\n0 0.987 -4.833 0 0.382 \n1 0.931 -0.584 0 0.320 \n2 1.039 -5.664 0 0.164 \n3 0.982 -5.423 0 2.010 \n4 0.976 -2.002 0 2.758 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 \n0 74.556 7.225 1.234 \n1 56.056 4.942 1.853 \n2 47.000 5.969 1.174 \n3 69.222 5.462 1.138 \n4 66.000 5.582 1.453 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104
04.03.7040.87373.5190.987-4.83300.38274.5567.2251.234
14.04.4440.89262.4440.931-0.58400.32056.0564.9421.853
22.00.0000.90147.0001.039-5.66400.16447.0005.9691.174
34.50.0000.86969.2220.982-5.42302.01069.2225.4621.138
4-4.021.5911.06171.6820.976-2.00202.75866.0005.5821.453
\n
"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.head()","execution_count":104,"outputs":[{"output_type":"execute_result","execution_count":104,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\n0 5.0 0.000 0.951 74.842 \n1 4.0 5.405 0.931 71.595 \n2 5.5 5.405 0.873 73.595 \n3 5.0 4.167 0.895 66.250 \n4 7.5 8.537 0.932 64.720 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\n0 0.975 -3.663 0 0.282 \n1 0.957 -4.011 1 0.600 \n2 0.961 -2.512 0 0.593 \n3 0.999 -1.362 0 0.614 \n4 0.979 -2.091 0 0.616 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 CLASS \n0 73.444 5.661 1.041 1 \n1 68.222 6.537 1.453 1 \n2 69.444 4.934 1.722 1 \n3 67.222 4.316 1.382 1 \n4 72.944 4.540 1.539 1 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
05.00.0000.95174.8420.975-3.66300.28273.4445.6611.0411
14.05.4050.93171.5950.957-4.01110.60068.2226.5371.4531
25.55.4050.87373.5950.961-2.51200.59369.4444.9341.7221
35.04.1670.89566.2500.999-1.36200.61467.2224.3161.3821
47.58.5370.93264.7200.979-2.09100.61672.9444.5401.5391
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Shape function\n* This function helps to view the total raws and columns (dimension) of the dataset. "},{"metadata":{"trusted":true},"cell_type":"code","source":"# check the dimensions of your data\n\nTrain.shape, Test.shape\n","execution_count":105,"outputs":[{"output_type":"execute_result","execution_count":105,"data":{"text/plain":"((3038, 12), (758, 11))"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# Data type\n* This returns a Series with the data type of each column."},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.dtypes","execution_count":106,"outputs":[{"output_type":"execute_result","execution_count":106,"data":{"text/plain":"FULL_Charge float64\nFULL_AcidicMolPerc float64\nFULL_AURR980107 float64\nFULL_DAYM780201 float64\nFULL_GEOR030101 float64\nFULL_OOBM850104 float64\nNT_EFC195 int64\nAS_MeanAmphiMoment float64\nAS_DAYM780201 float64\nAS_FUKS010112 float64\nCT_RACS820104 float64\ndtype: object"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.dtypes","execution_count":107,"outputs":[{"output_type":"execute_result","execution_count":107,"data":{"text/plain":"FULL_Charge float64\nFULL_AcidicMolPerc float64\nFULL_AURR980107 float64\nFULL_DAYM780201 float64\nFULL_GEOR030101 float64\nFULL_OOBM850104 float64\nNT_EFC195 int64\nAS_MeanAmphiMoment float64\nAS_DAYM780201 float64\nAS_FUKS010112 float64\nCT_RACS820104 float64\nCLASS int64\ndtype: object"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## isnull().sum\n* This function helps to see if the dataset has any missing values."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.isnull().sum","execution_count":108,"outputs":[{"output_type":"execute_result","execution_count":108,"data":{"text/plain":""},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.isnull().sum()","execution_count":109,"outputs":[{"output_type":"execute_result","execution_count":109,"data":{"text/plain":"FULL_Charge 0\nFULL_AcidicMolPerc 0\nFULL_AURR980107 0\nFULL_DAYM780201 0\nFULL_GEOR030101 0\nFULL_OOBM850104 0\nNT_EFC195 0\nAS_MeanAmphiMoment 0\nAS_DAYM780201 0\nAS_FUKS010112 0\nCT_RACS820104 0\ndtype: int64"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"* When we look at the data ,it shows that both the test and train dataset does not have any missing values"},{"metadata":{},"cell_type":"markdown","source":"## Then in column of class we check and find out,\n* How is the data divied and classified \n* Here the unique function does that."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train['CLASS'].unique()","execution_count":110,"outputs":[{"output_type":"execute_result","execution_count":110,"data":{"text/plain":"array([1, 0])"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# a) Descriptive statistics\n## Descriptive statistics of the data\n* Generate descriptive statistics that summarize the central tendency,\ndispersion and shape of a dataset's distribution, excluding\n``NaN`` values.\n\nAnalyzes both numeric and object series, as well\nas ``DataFrame`` column sets of mixed data types. The output\nwill vary depending on what is provided.\n\n### For example this function will provide the following summary\n* Count.\n* Mean.\n* Standard Deviation.\n* Minimum Value.\n* 25th Percentile.\n* 75th Percentile(Median).\n* Maximum Value.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.describe()","execution_count":111,"outputs":[{"output_type":"execute_result","execution_count":111,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 FULL_DAYM780201 \\\ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 2.060237 8.521520 0.971410 73.668760 \nstd 3.819929 7.586652 0.107413 8.527489 \nmin -16.000000 0.000000 0.684000 42.750000 \n25% 0.000000 2.516000 0.895000 68.294000 \n50% 2.000000 7.143000 0.963000 74.059500 \n75% 4.000000 13.158000 1.041000 79.343750 \nmax 30.000000 46.667000 1.451000 101.682000 \n\n FULL_GEOR030101 FULL_OOBM850104 NT_EFC195 AS_MeanAmphiMoment \\\ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 0.994007 -2.432927 0.088545 15.683233 \nstd 0.031333 1.707223 0.284133 11.575665 \nmin 0.866000 -10.432000 0.000000 0.041000 \n25% 0.974000 -3.606000 0.000000 5.587500 \n50% 0.994000 -2.296500 0.000000 14.988500 \n75% 1.011000 -1.283250 0.000000 26.807750 \nmax 1.196000 3.576000 1.000000 51.280000 \n\n AS_DAYM780201 AS_FUKS010112 CT_RACS820104 CLASS \ncount 3038.000000 3038.000000 3038.000000 3038.000000 \nmean 73.650828 5.911361 1.235255 0.500000 \nstd 9.166092 0.693689 0.210012 0.500082 \nmin 42.778000 3.533000 0.785000 0.000000 \n25% 67.556000 5.459250 1.082000 0.000000 \n50% 73.697000 5.925500 1.184000 0.500000 \n75% 79.778000 6.382000 1.351000 1.000000 \nmax 103.167000 8.662000 2.192000 1.000000 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
count3038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.0000003038.000000
mean2.0602378.5215200.97141073.6687600.994007-2.4329270.08854515.68323373.6508285.9113611.2352550.500000
std3.8199297.5866520.1074138.5274890.0313331.7072230.28413311.5756659.1660920.6936890.2100120.500082
min-16.0000000.0000000.68400042.7500000.866000-10.4320000.0000000.04100042.7780003.5330000.7850000.000000
25%0.0000002.5160000.89500068.2940000.974000-3.6060000.0000005.58750067.5560005.4592501.0820000.000000
50%2.0000007.1430000.96300074.0595000.994000-2.2965000.00000014.98850073.6970005.9255001.1840000.500000
75%4.00000013.1580001.04100079.3437501.011000-1.2832500.00000026.80775079.7780006.3820001.3510001.000000
max30.00000046.6670001.451000101.6820001.1960003.5760001.00000051.280000103.1670008.6620002.1920001.000000
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# (c)Check the dataset info\n* It gives more information about the number of columns of each variable and the type like float and integers and size of the memory ocuppied."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.info()","execution_count":112,"outputs":[{"output_type":"stream","text":"\nRangeIndex: 3038 entries, 0 to 3037\nData columns (total 12 columns):\nFULL_Charge 3038 non-null float64\nFULL_AcidicMolPerc 3038 non-null float64\nFULL_AURR980107 3038 non-null float64\nFULL_DAYM780201 3038 non-null float64\nFULL_GEOR030101 3038 non-null float64\nFULL_OOBM850104 3038 non-null float64\nNT_EFC195 3038 non-null int64\nAS_MeanAmphiMoment 3038 non-null float64\nAS_DAYM780201 3038 non-null float64\nAS_FUKS010112 3038 non-null float64\nCT_RACS820104 3038 non-null float64\nCLASS 3038 non-null int64\ndtypes: float64(10), int64(2)\nmemory usage: 284.9 KB\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"Test.info()","execution_count":113,"outputs":[{"output_type":"stream","text":"\nRangeIndex: 758 entries, 0 to 757\nData columns (total 11 columns):\nFULL_Charge 758 non-null float64\nFULL_AcidicMolPerc 758 non-null float64\nFULL_AURR980107 758 non-null float64\nFULL_DAYM780201 758 non-null float64\nFULL_GEOR030101 758 non-null float64\nFULL_OOBM850104 758 non-null float64\nNT_EFC195 758 non-null int64\nAS_MeanAmphiMoment 758 non-null float64\nAS_DAYM780201 758 non-null float64\nAS_FUKS010112 758 non-null float64\nCT_RACS820104 758 non-null float64\ndtypes: float64(10), int64(1)\nmemory usage: 65.3 KB\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# b) Data visualizations\n* Here we visualize our data so that ,we can get much meaning out of it.\n* for the class colunm.\n\n\n## Class Distribution\n\nA groupby operation involves some combination of splitting the\nobject, applying a function, and combining the results. This can be\nused to group large amounts of data and compute operations on these\ngroups.\n\n* The type of graph used below is the bar.\n* Then change the color as well using;\n```\ncolor='purple'\n```"},{"metadata":{"trusted":true},"cell_type":"code","source":"\nTrain.groupby('CLASS').size().plot(kind='bar',color='purple') ","execution_count":114,"outputs":[{"output_type":"execute_result","execution_count":114,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Correlations Between Attributes\nIs the a mutual relationship or connection between two or more things.\n\nNote: Correlation refers to the relationship between two variables and how they may or may notchange together. The most common method for calculating correlation is Pearson's Correlation Coefficient, that assumes a normal distribution of the attributes involved.\n\nA correlation of -1 or 1 shows a full negative or positive correlation respectively. Whereas a value of 0 shows no correlation at all. \n\n\nnote: Correlation is a statistical technique that can show whether and how strongly pairs of variables are related. For example, height and weight are related; taller people tend to be heavier than shorter people. The relationship isn't perfect."},{"metadata":{},"cell_type":"markdown","source":"# Explanation on the train data as far as correlation is concerned.\n\n## For example;\n ## * full_charge has a slight correlation with full_charge but then there is no correlation with full_acidicmolperc(negative)."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.corr(method='pearson')","execution_count":115,"outputs":[{"output_type":"execute_result","execution_count":115,"data":{"text/plain":" FULL_Charge FULL_AcidicMolPerc FULL_AURR980107 \\\nFULL_Charge 1.000000 -0.612996 -0.490977 \nFULL_AcidicMolPerc -0.612996 1.000000 0.794796 \nFULL_AURR980107 -0.490977 0.794796 1.000000 \nFULL_DAYM780201 -0.434603 0.541481 0.548253 \nFULL_GEOR030101 -0.058725 0.115201 0.346139 \nFULL_OOBM850104 -0.283758 0.513344 0.462712 \nNT_EFC195 0.088068 -0.143168 -0.169540 \nAS_MeanAmphiMoment 0.355477 -0.431590 -0.426097 \nAS_DAYM780201 -0.365374 0.449621 0.456260 \nAS_FUKS010112 -0.090570 0.002334 0.032958 \nCT_RACS820104 0.232929 -0.213543 -0.403599 \nCLASS 0.534602 -0.598816 -0.584111 \n\n FULL_DAYM780201 FULL_GEOR030101 FULL_OOBM850104 \\\nFULL_Charge -0.434603 -0.058725 -0.283758 \nFULL_AcidicMolPerc 0.541481 0.115201 0.513344 \nFULL_AURR980107 0.548253 0.346139 0.462712 \nFULL_DAYM780201 1.000000 0.010118 0.334778 \nFULL_GEOR030101 0.010118 1.000000 0.319157 \nFULL_OOBM850104 0.334778 0.319157 1.000000 \nNT_EFC195 -0.090058 -0.230417 -0.230561 \nAS_MeanAmphiMoment -0.408793 -0.160269 -0.336297 \nAS_DAYM780201 0.894191 -0.029085 0.275640 \nAS_FUKS010112 0.055915 0.040480 -0.452769 \nCT_RACS820104 -0.326792 -0.151935 0.155304 \nCLASS -0.554838 -0.260470 -0.453287 \n\n NT_EFC195 AS_MeanAmphiMoment AS_DAYM780201 \\\nFULL_Charge 0.088068 0.355477 -0.365374 \nFULL_AcidicMolPerc -0.143168 -0.431590 0.449621 \nFULL_AURR980107 -0.169540 -0.426097 0.456260 \nFULL_DAYM780201 -0.090058 -0.408793 0.894191 \nFULL_GEOR030101 -0.230417 -0.160269 -0.029085 \nFULL_OOBM850104 -0.230561 -0.336297 0.275640 \nNT_EFC195 1.000000 0.178683 -0.036844 \nAS_MeanAmphiMoment 0.178683 1.000000 -0.322378 \nAS_DAYM780201 -0.036844 -0.322378 1.000000 \nAS_FUKS010112 0.145924 0.025580 0.045562 \nCT_RACS820104 0.080898 0.171524 -0.256060 \nCLASS 0.260702 0.693552 -0.437168 \n\n AS_FUKS010112 CT_RACS820104 CLASS \nFULL_Charge -0.090570 0.232929 0.534602 \nFULL_AcidicMolPerc 0.002334 -0.213543 -0.598816 \nFULL_AURR980107 0.032958 -0.403599 -0.584111 \nFULL_DAYM780201 0.055915 -0.326792 -0.554838 \nFULL_GEOR030101 0.040480 -0.151935 -0.260470 \nFULL_OOBM850104 -0.452769 0.155304 -0.453287 \nNT_EFC195 0.145924 0.080898 0.260702 \nAS_MeanAmphiMoment 0.025580 0.171524 0.693552 \nAS_DAYM780201 0.045562 -0.256060 -0.437168 \nAS_FUKS010112 1.000000 -0.445284 0.033432 \nCT_RACS820104 -0.445284 1.000000 0.267652 \nCLASS 0.033432 0.267652 1.000000 ","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
FULL_ChargeFULL_AcidicMolPercFULL_AURR980107FULL_DAYM780201FULL_GEOR030101FULL_OOBM850104NT_EFC195AS_MeanAmphiMomentAS_DAYM780201AS_FUKS010112CT_RACS820104CLASS
FULL_Charge1.000000-0.612996-0.490977-0.434603-0.058725-0.2837580.0880680.355477-0.365374-0.0905700.2329290.534602
FULL_AcidicMolPerc-0.6129961.0000000.7947960.5414810.1152010.513344-0.143168-0.4315900.4496210.002334-0.213543-0.598816
FULL_AURR980107-0.4909770.7947961.0000000.5482530.3461390.462712-0.169540-0.4260970.4562600.032958-0.403599-0.584111
FULL_DAYM780201-0.4346030.5414810.5482531.0000000.0101180.334778-0.090058-0.4087930.8941910.055915-0.326792-0.554838
FULL_GEOR030101-0.0587250.1152010.3461390.0101181.0000000.319157-0.230417-0.160269-0.0290850.040480-0.151935-0.260470
FULL_OOBM850104-0.2837580.5133440.4627120.3347780.3191571.000000-0.230561-0.3362970.275640-0.4527690.155304-0.453287
NT_EFC1950.088068-0.143168-0.169540-0.090058-0.230417-0.2305611.0000000.178683-0.0368440.1459240.0808980.260702
AS_MeanAmphiMoment0.355477-0.431590-0.426097-0.408793-0.160269-0.3362970.1786831.000000-0.3223780.0255800.1715240.693552
AS_DAYM780201-0.3653740.4496210.4562600.894191-0.0290850.275640-0.036844-0.3223781.0000000.045562-0.256060-0.437168
AS_FUKS010112-0.0905700.0023340.0329580.0559150.040480-0.4527690.1459240.0255800.0455621.000000-0.4452840.033432
CT_RACS8201040.232929-0.213543-0.403599-0.326792-0.1519350.1553040.0808980.171524-0.256060-0.4452841.0000000.267652
CLASS0.534602-0.598816-0.584111-0.554838-0.260470-0.4532870.2607020.693552-0.4371680.0334320.2676521.000000
\n
"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Plotting to show the correlation\n\nplot a heat map to show us the correlation of the data.\n\nWith the help of ; seaborn\nthe we can use spearman or pearson method.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns\n#The first step is to choose the figure size then use the heatmap to plot.\nplt.figure(figsize=(9,9)) #the size choosen is 9,9\nsns.heatmap(Train.corr(method='pearson'))","execution_count":116,"outputs":[{"output_type":"execute_result","execution_count":116,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## We can also check the correlation in regards to the CLASS"},{"metadata":{"trusted":true},"cell_type":"code","source":"\nTrain.corr(method='pearson')['CLASS'].sort_values","execution_count":117,"outputs":[{"output_type":"execute_result","execution_count":117,"data":{"text/plain":""},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"# Skew of Univariate Distributions\n### Definition of skew.\n* Is the suddenly change direction or position.\n* or Skew refers to a distribution that is assumed Gaussian (normal or bell curve) that is shifted or squashed in one direction or another. \n\n\nYou can calculate the skew of each attribute using the skew() function on the Pandas DataFrame.\n\n#### NOTE: If skewness value lies above +1 or below -1, data is highly skewed. If it lies between +0.5 to -0.5, it is moderately skewed. If the value is 0, then the data is symmetric\n\n### Positively skewed data:\nIf tail is on the right as that of the second image in the figure, it is right skewed data. It is also called positive skewed data. Common transformations of this data include square root, cube root, and log.\n\n### Cube root transformation:\nThe cube root transformation involves converting x to 𝑥(1/3) . This is a fairly strong transformation with a substantial effect on distribution shape: but is weaker than the logarithm. It can be applied to negative and zero values too. Negatively skewed data.\n\n### Square root transformation:\nApplied to positive values only. Hence, observe the values of column before applying.\n\n### Logarithm transformation:\nThe logarithm, x to log base 10 of x, or x to log base e of x (ln x), or x to log base 2 of x, is a strong transformation and can be used to reduce right skewness.\n\n### Negatively skewed data:\nIf the tail is to the left of data, then it is called left skewed data. It is also called negatively skewed data. Common transformations include square , cube root and logarithmic. We will discuss what square transformation is as others are already discussed."},{"metadata":{},"cell_type":"markdown","source":"# We can you several graphs like bar and line as shown below.\n# BAR GRAPH FOR SKEWNESS"},{"metadata":{"trusted":true},"cell_type":"code","source":"#the below command help to increase the size of the figure for better view\nfrom pylab import rcParams\nrcParams['figure.figsize'] = 10, 11\n\n#Train.skew().plot(kind='line', color='green')\nTrain.skew().plot(kind='bar', color='green')\n#When we look to the data its highly positively skewed mostly at the NT_EFC195\n\n","execution_count":118,"outputs":[{"output_type":"execute_result","execution_count":118,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# LINE GRAPH FOR SKEWNESS\n\n### A distribution is positively skewed if the scores fall toward the lower side of the scale and there are very few higher scores. Positively skewed data is also referred to as skewed to the right because that is the direction of the 'long tail end' of the chart.\n\n## NOTE:since my data is highly positively skewed it means, it highly import to use\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#the below command help to increase the size of the figure for better view\nfrom pylab import rcParams\nrcParams['figure.figsize'] = 10, 11\n\nTrain.skew().plot(kind='line', color='RED')\n#When we look to the data its highly positively skewed mostly at the NT_EFC195\n","execution_count":119,"outputs":[{"output_type":"execute_result","execution_count":119,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Data With Visualization using;.\n1. Histograms.\n2. Density Plots.\n3. Box and Whisker Plots.\n\n\n\n# Histograms.\nis only used to plot the frequency of score occurrences in a continuous data set that has been divided into classes, called bins."},{"metadata":{"trusted":true},"cell_type":"code","source":"#Histogram\nplt.figure(figsize=(16,16)) #Size change\nTrain.hist()#type of graph\nplt.subplots_adjust(bottom=1, right=3, top=3)\nplt.show()","execution_count":120,"outputs":[{"output_type":"display_data","data":{"text/plain":"
"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Density Plots\n\nA Density Plot visualises the distribution of data over a continuous interval or time period. This chart is a variation of a Histogram that uses kernel smoothing to plot values, allowing for smoother distributions by smoothing out the noise.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# we plot 3 by 4 i tems\nTrain.plot(kind='density', subplots=True, layout=(3,4), sharex=False,)\nplt.show\n","execution_count":121,"outputs":[{"output_type":"execute_result","execution_count":121,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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ZeTIkc1kvPnmmyU9Pb2FnOXl5TJ9+nTJzs6W6dOnS0VFhYiIPPXUU56/7dixY8VkMkl5eXmLv1Mga5F7/gT6E4w5FOr544shQ4ZIbm6u5ObmypgxY+TXv/61NDQ0iIiI7fgJqdu9W55++mmJi4uT06eNeXfy5EnJysqSEydOeM7zk5/8RH7729/KJ598IoAsWbLEOMex4/L5m28K4Jl7c+bM8dzjkCFDJC8vzxhrs8kPfvADyc3NldGjR8sTTzzhOf+6detk5MiRMnz4cPntb3/r2f7d735XRo4cKWPHjpWbb75ZbDabiBjP35/97GcyfPhwGTdunGzdutVzzIwZMyQlJUX+8z//s82/TWeeaf42cn9KKdVbKRWjlPpIKVWmlPp+yDTIKCUhIYE33v8XH2/czI4dO8jKymq2XymFQkEQDWu33HILqampFBUVUVBQwNKlSykr63zLOrvrDaop9957L9XV1TQ2NnLZZZfRr18/Xn311U5fKyJwBMENajLBgFw4odtOtca9994LYOrIWlZdXZ18+vTptDNnzvTavXt3zu7du3MqKioCa6TZQRISEtixY4fnx3tN6CwOMdxJ3jFry5cv56KLLmL58uV+n8uEifsevo8dO3bwxz/+kdtuu63Z/tdee42dO3dy++23c8899wBGF4F77rmHjz76iIKCAk6ePMlHH30EwGOPPcacOXPYvn07K1as4PbbbwegsLCQFStWUFBQwPr167n99ttxuNxiCxYsYP369S1ke/LJJ7nssssoKirisssuY+bMmVRXV/OLX/yCtLQ0jh49yhVXXMG0adNITY2cotKhnj+t8cknn7Br1y42b97MwYMHufXWWwHDDapiYlixYgWTJk3irbfeAqB///7cd9993H333QBs27aNzz77jLvuuguAcePGsXLlSuPkZjOr3n2XvLw8z/VWrlzpucfZs2e7i1+zatUqrFYru3btYuvWrTz33HMUFxfjcDhYuHAh69ato7CwkOXLl1NYWAjA9773Pfbu3cuuXbuor69nyZIlAKxbt46ioiKKiop4/vnn3X2GAbjnnntYtmxZCP+i/hfFvUJE7lVKXQscBW4APgEi8kn78DsFFB5vs4xSh8k5tzcPXTnWr7GtxazB2bi1YHDgwAE2bdrEa6+9hsmVgTps2DCGDRvmmdA//vGP+fe//83AgQNZs2YN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c+/evZ1TU3joah0bBuwBUEr5gEagrFObc4H14YSaiFwpImtFZG0m4+S8Xm9KVr/269cP0L/T4QjGrHVGRHK+5FSshdz/R0SKRcQqIn8XkcMiclESrn8qsFMp9UUSzpUUHA4HGzZsCP1VVlam/JqXX345paWlfPTeetau/pjly5d3GMyjR4/u0Kf5538XpRSXXXYZo0aNYufOnezcuZORI0dy+eWXdznu008/paamhr/85S8AbN68meeff57q6mqWL1/ONddcg9/vx2az8c4777Bx40Y2bNjA8uXL+eijjwD46U9/yg033MD27dvp168fjz+uFwMYMWIES5Ys4bvf/W6H11RXV8ddd93FqlWrWL16NXfddRc/+clPaGpq4pvf/CaVlZW0trby9NNPp/rtTSuZGD/RxoHT6WTevHnceuutbNu2jX+sXMHadRv43e9+Fzp+/vz5bNiwgerqavLy8njhhSOG78mTJ/P8888D+oT5t+UrmBBYMefz+bjuuut49913+eSTT5gyZQqLFy8OHXvDDTeE3odgTqtIYw/g+9//PsuXL+/y+u677z5OPfVUtm/fzqmnnsp9990X2uf3+/npT3/KnDlzYnqvbrnlFgBTCuayzBJt7UAoZi25as1ms/HKK690udH42c9+Fvrc238ffvKTn0Q8V/uxsmHDhpAF5sQTTwxte/vttwF48803eeihh3jrrbeorq5m3bp1lJSUADBp0iReeeUVTjrppA7nD978fvrpp6xcuZL58+fT0NCA1+tl48aNHDhwgJtvvpkNGzZ0KJ3Ungjxmp03hvsUQm1EZCK6a/RHEa7xB6XUDKXUjPLy8rD9SAepEmv9+/fHZDKFFcRKqYgxa2CUnIE6htUAACAASURBVIrVF3K6UuoWETkHCNZgfBdI9Jd2AfBcuB3VKw8Xr3nh4HRBlMVidZvEFHYZms/vs/o1X2BUKbYWrIt4sQHDCznxgvClMDLFzp07Wb16NY//YQmt9R7EJJSXl/PTn/404jEiws6dO/n44487/LD+/Oc/p6qqip07d2I2m0PbzWYzs2bNYu/evQAsXbqUBQsWYLPZGDlyJFVVVaxevZrjjz8+VBLE6/Xi9Xr1+DileOedd3j22WcBPUh30aJFXH311SEx0tlcvmLFCmbPnh0yac+ePZtly5bx8MMPc+jQIUaNGsW6dev41a9+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l1xyidbW1uqkSZP01ltvjZ3jueee0wkTJujBBx+sv/zlL2Pbv/a1r+mECRN06tSpevnll2sgEFBV1Ugkot/5znf04BLB7SoAACAASURBVIMP1mnTpumKFStix5x++uk6YMAAPeuss5K+t2vXru2yDVhu3XEeVujTngx8MXCPduonWGHQT4DNwPjO+6NtrnrppZf877//fsuqVauS2tQX9LZPHTR6tB4yZYpOi37Gr7/+ui5durTL+33ppZfqokWLVFX1hBNO0GXLlqmq6saNG/XgQw7R3/71Kf18T6N+7Wtf09raWp06dap+8Ytf1H379qlq4j7xm9/8Rg8++GAFdNeuXbHtPekTic716KOP6rRp03TatGl6zDHH6MqVK+O+F8n6UDZu9riUi7HIZtu2bXrhhRfquHHjdPLkyXriiSdqeXm5Tp8+XQcNGqRjxozRiVOm6XFfOjHu8Rs3btSysjKdPn26Tp48WS+++GL9dMde/WBrY6zNf//3f+sBBxyg4XC4w7FLlizRI444QidNmqQTJ07UG264QVVV169fryeccIJOnz5dJ02apP/5n/+pqonHnM8//1xPPPFEnTRpkk6ZMkXvvvvu2GvU19frqaeeqocccoieeuqp2tDQoKqq69at06OPPlo9Hk9srLNJ1Fdtrr32Wq2srEz4nnbXj4A/AjuBNRp/jBGscmUbgNXAF+K1a3874ogjEtqTUR46R/X+k9M75udDVV/4cbfN4r1vfcrezbpt5T86fB9mzZqlH374oU6dOjXuIcEtq3Vw9SC96aabOmx/5pln9LDDDtNDDz1UJ0+erL/73e9UNXHfjkdvxqOUBiDgdqwVoKXAP4DdwDdSOTZbN6eItfPPP1+PO+44/elPf6qqqo8//rjOmTMnNoht3rw5NpjEY/To0bEfoX379uncuXN17tyzta1tS6zNkUceqccdd5z+6U9/im2777779Otf/7qqqq5YsUKnTZumgUBAly5dqtOmTdPTTjst1vb667+t06ZN7DKAWfuu15/97GeqqvrYY4/phRdeqKqqLS0tOnr0aN24caOGQiEdN26cfvLJJ+r3+/XQQw9V+71+9tlnNRKJaCQS0Ysuukh/+9vfxrafccYZGolE9M0339SZM2fGXvPll1/WxYsXx36Yb7zxRm1sbNRAIKAnn3yyDh48WB955JHuxNr5ccTabzRBf8GqbftQov1O+JG16W2fOmj0aF366WcaaPdDmqpY27x5s06YMEGffOopXdnYoj+65ef6ve99L3bM+vXr1efzJe0T7777rm7cuLFD31ZNr0/YJDrX66+/HnsPlixZojNnzozbj+bNm9fl/SlksRaJRPToo4/W++67L7btvffe01dffVVV93/ma7bs1bo9rXHPsXHjxtgPWSgU0pNOOknvuf+PunrzXo1EIhoOh/Wggw7So446SpcuXRo77v3339dx48bF/mQEg0G99957VVX1y1/+sj711FOxtqtXr1bVxGPO1q1bY2K+qalJx48fH+tfN954Y0xw/fKXv9Qf/OAHqmr9iX3nnXf0Rz/6UYexLllfVVVdtmyZfuMb39DKysoejUXWQ76ElcoqkVg7E3guKtqOBt6O1679rc/E2v0nqT58bnrH3DFe9envdNss12ItUr9Rjz5ietzvQyKx9uzj9+uxR35Bx40bp5FIRFWtPxUjRozQzZs3q6qqz+fT9evXq2rivh2P3oi1VGNtX1bVH4jIV7HmB50PLAUeTfH4rLJ23Q8Pamn+qMLni7Di3cruD0iBqn6TmTDh/yVt09zczOuvv87SpUs5++yzufnmm9m2bRsjRoyIzQcZOTL1PDT9+vXjvvt+y6hRB7Fnzz5GjIBPPvmE5uZm7rjjDm699VYuu+wyAK666ioeeughli5dyo9//GPuueee2JLgUaNG0dTUxI4dOxg6dCgvvfRPTj31OFQ7hjFUlb/85S+88sorgBVTb2lpIRQK0dbWhsfjoX///rzzzjsccsghjBs3DoCLLrqIp59+milTpnRIIDlz5kzq6uoAePrpp7nkkksQEY4++mj27t0be29OOeUU/vnPf8aOe/HFF7n99tt58sknGTlyJIsWLeKkk05i4cKFyd6uOuCgds9HAluTtF8I3JfshDb/7+M61jS3pdI0ZWr7lfPz8d33hUz0KY1GLtNdYLB9+3YuueQSfvGLX3DuOeewel8r27dtY8rB42JtJk6cCMCbb76ZsE8cfvjhcc+fTp+wSXSuY489Nvb46KOPpq6uLm4/OvbYY/nhD3+Y1vuQKX72zAes3ZrZ1CFTDujPT78yNeH+pUuXUlpaytVXXx3bdthhh3VppykuMCgpKWHmzJns3L4NRQlHlH/9cym1tbVceOGFLFiwgBNPPBGw8lz++Mc/ZtKkSQC43W6+/e1vA7Bt27YO/XbatGlA4jGnuro6Vj2gqqqKyZMns2XLFqZMmcLTTz8d6yuXXnopJ554IrfddhtDhw5l6NChPPvssx2uIdn4FQ6HufHGG3n88cd58sknezoWoaqvisiYJE3OAR6O/ji/JSIDRWSE7q8GlDt8jTBwVHrHeHtQzP25m2D7++kd0x3Dp8GseQl3L/3Xa5SWurt8HzZt2pTwmAVPPst1V13MfY89zVtvvcUxxxzDvn37CIVCDB48GACv1xsbCxP17UyT6gxTOzHImcACVW3IijV5xlNPPcUZZ5zBhAkTqK6u5t133+WCCy7gmWee4bDDDuOGG25IOyFnVVUFo0cfyCeffAbAggULmDt3LscffzwffvghO3da1Q1cLhf33Xcfc+bMYcKECXzpS1/qcJ7zzjuPRYsW8cYbb3D44dPxeku7iLV///vfDBs2jPHjx8eOqaysZMSIEYwaNYrvf//7VFdXs2XLFg46aL8uGjlyJFu2bOlwrmAwyCOPPMIZZ1jz91M5pv2xAEuWLGHu3LlUV6eUD24ZMF5ExoqIB7gIWNy+gYiMb/f0LODjVE6cSzLTp5Sr/uNMDj/8cI466qiUX/uSSy7h2muv5fzzzwcssXfeJZdy2223ccwxx/C///u/fPyx9Ram8/na9OSYVHjggQeYNWtWT/tRQbFmzRqOOOKIpG1UNeXUHT6fj7fffpvTvnw6YKWEscekr371q/z973+Pve/JXvt73/seJ598MrNmzeKuu+5i715rvlOiMac9mzZt4r333ov15R07dsSE3IgRI2JjYiKS9bt77rmHs88+O3a+LPahA7GmYtjURbd1QESuEpHlIrK8NysH08LXlN4CA9hfH9ThrFn3IUdMT108tbW18Y9X3+Q/TjmeuXPnsmDBAgCqq6s5++yzGT16NHPnzuWxxx4jEl2EkKhvZ5pUPWvPiMh6oA34togMARyTeGbK5Ns2A6xdu/aIKVOm9NnrLliwgO9+97uA9W9twYIF3HHHHXz44Ye88sorvPLKK5xyyiksWrSIU045JaVzRiJBVDW2wGDhwoU8+eSTuFwuZs+ezaJFi7jmmmsA6x9CbW1t7N9rey644AIuvPBC1q9fz0UXXcCrr74AdBRr9qBr884771BSUsLWrVvZs2cPxx9/PKeeeqrtxu9A55Ut3/72t/nSl77E8ccfD5DSMTZf+cpXmDRpEuXl5fz2t79l165dlJUlT76pqiERuRZ4ASt1xx9V9QMRuQXLrbwYuFZETgWCWNl2Lk160iipeMCyRSb6lAIPL3meo0fvv45E73377aeeeiqPPPIIl112GRUVFbhFmHjodD799FNefPFFXn75ZY488kjefPPNtD7fmF09OKY7li5dygMPPMBrr73GHXfc0aUfeTyeXp2/NyTzgOUS+2NI5ln75JNPOOyww/j4448577zzOGz6oXy6u4XWNj9LlizhrrvuoqqqiqOOOooXX3yRs846K+lrXn755Zx++uk8//zzPP300/z+979n1apVLF++PO6YY3vBmpubmTNnDnfffTf9+/estFGifrd161YWLVrUwaPbk7EoReK9210MU9X7gfsBZsyY0Tere3yN6S0wAEuspbvAIIkHLGtohPhvfXz+/ve/c9Lxx1JR7mHOnDn8/Oc/56677qKkpIT58+fz/vvv8/LLL/N///d/vPTSSzz44IMJ+7bX27uE9p1JSayp6k0ichvQpKphEWnBcusmJYU8WF7gYeAIoB64UFU3ichpwDzAAwSAG1X1lTSuK+vU19fzyiuvsGbNGkSEcDiMiHD77bfj9XqZNWsWs2bNYtiwYTz11FMpi7Wmpj18/vlWJk6cxOrVq/n444857bTTAAgEAowbNy4m1sDysMVbgj98+HBKS0t56aWXuPPOebz66gsdPGuhUIi//e1vrFixIrbt8ccf54wzzqC0tJShQ4fyxS9+keXLl3PQQQexefP+P4V1dXUccMD+OqM/+9nP2LVrF7///e9j20aOHJn0mPbMmzePH/7wh/Tv35+SkhIqKyt5+umn2bNnT9L3Sq16tUs6bftJu8d9nhG1N2SqTyldQ6CDBw/u8n42NDRQU1MTe/6DH/yARx99lPPPP5+nn34at1irQfv168fs2bOZPXs2LpeLJUuWcOyxx6b8+dqk0ydSYfXq1Xzzm9/kueeeY/DgwXH70T333NPj8+cjU6dO5YknnkjaRqMaIZlQPvjgg1m5ciXbtm3jxBNP5PklzzJh5ok8/8JzNDY2xkI9ra2tVFRUcNZZZzF16lRWrFjB9OnT457zgAMO4IorruCKK66gtraWNWvWJBxzxo0bRzAYZM6cOXz9619n9uzZsfMMGzYsFj7ftm0bQ4cmT16aqN+99957bNiwgUMOOSR2LU888QTLli1LeyxKgXSnbfQNQR+E/enX+CzrD3s/y45NGWTqxHE88ezLKbdfsGABr7/2GmOOPB1KPNTX17N06VJOPfVUwApxTps2jYsvvpixY8fy4IMPAvH7dnce7nRJJ+vqZOBCEbkEayXel5M1bpcHaxYwBZgrIp3dXlcCe1T1EOAuwE6ItBv4iqpOw/KGPJKGnX3CE088wSWXXMJnn33Gpk2b2Lx5M2PHjuXVV19l61brOxiJRFi9ejWjR49O6ZzNzc185zvXc9ZZJ1FdPYQFCxZw8803s2nTJjZt2sTWrVvZsmULn32W2pfklltu4bbbbsMdTXao7RL9vfzyy0yaNKlDrH3UqFG88sorqCotLS289dZbTJo0iSOPPJKPP/6YjRs3EggEWLhwIWeffTYA8+fP54UXXmDBggUdROPZZ5/Nww8/jKry1ltvMWDAgFioIR7r1q3jz3/+Mw8//DBPPPEEL774YkrXWEhksk91Ttsxfvx4tm7dGkvu+dlnn7Fq1aou85nuuusu+vfvz5VXXokLWPbGG7EfqkAgwNq1axk9enTSPpGIdPtEMj7//HNmz57NI488woQJE2LbO/ejN954o0fnz1dOPvlk/H4/f/jDH2Lbli1bxr/+9a/Y8/2ete49DiNGjGDevHn83+3W0PzEn//M/PnzY2PSxo0befHFF2ltbeXGG2/k1ltv5aOPPgKsvmrnLHv++edjIcbt27dTX1/PgQcemHDMUVWuvPJKJk+e3KGiAFj96KGHHgLgoYce4pxzkvsNEvXVs846i+3bt8eupaKigg0bNmRrLFoMXCIWRwONjpmvBqnXBbUpG5BSBYNcc/KxM/AHAl2+D/F+Q5uamnjttdf4fO0KNr39LJs+/YR7772XBQsW0Nzc3MEDu3LlytgYnKhvZ5qUPGsi8ghwMLASKxs8RKMtSQ7rNg9W9PnN0cdPAPeIiKhq+0k5HwBlIuJVVX8q9vYFCxYs4Kabbuqwbc6cOVx22WVUV1fj91umzpw5k2uvvTbpuU466SRrHkkkwle+cho33HAxIm4WLlzIc88916HtV7/6VRYuXJjSpGl7ErYdBtB2YdCFCxd2CIECXHPNNVx++eXU1taiqlx++eUceuihgDW34/TTTyccDnPFFVcwdaoV4rn66qsZPXo0xxxzDACzZ8/mJz/5CWeeeSZLlizhkEMOoaKigj/96U+x1zn++ONZv349zc3NjBw5kokTJ9LW1sZhhx1GSYmVD0dEOPLII7u9xkIiE31K1fKblHSKcXm9Xh599FEuv/xyfD4fpaWlzJ8/nwEDOs5VEREeeugh/uM//oN5P/4RB02azAk3fDfWP8866yzmzJmDiCTsE7/+9a+5/fbb2b59O4ceeihnnnkm8+fPT6tPPPDAA5x++ukJz3XLLbdQX18fmwJg1+K0w3d2P8qARySvEBGefPJJvvvd7zJv3jzKysoYM2YMd999d6xNJIUwaHvOPfdcbr75Zla89TpL//EyD/5xfmxfZWUlxx13HM888wwXXnghd999N3PnzqW1tRURiYVHX3zxRa677rpYSPGOO+5g+PDhCcec1157jUceeYRp06bF/lDceuutnHnmmdx0001ccMEFPPDAA4waNYpFixYB1g/ljBkzaGpqwuVycffdd7N27Vr69++fsK925uKLL+7Sh1IZi0RkAXAiUCMidcBPic71Visx9xKsOd8bgFbg8tTe/SzTU7HWkwUGfY0qQoQnH/sj3/1/v+zyffjwww87OCuuu+46Tj75ZLzl5VY8TyOcc845/OAHP+DOO+/k9ttv57/+678oLy+nsrIy5lVL1LezcD0ppe5YB0gqbdsd020eLGANMLLd80+Amjjnebnz+e0l8tu2bdv0/vvvtzglR1ZvaW3drE1NmV/u3NS0VltbN2f8vJlg0qRJsSXS7enLHFm5TrmQKQLhsK5sbNFd/kCvz7XdF9CVjS0ajvPZOJF4/agY86x1R4s/qKs279HG1vT6yLptjfpZfUuWrHIGThiL7FufpO74/B3Vn/ZX/ejF9I771x3WcYG2pM1ymrojHFTd8q7qvh3pHddSbx3XzbX1hN70o1TDoGuAdKViKhMqk7YRkalYodH/SvQiw4cP311bW7uutrZ2nduduaz/uUI1lJEC7p0RlzOrGADU1tayffv2XJtREAS196WmbEqip8iHklNg+lGqpOtZsyl1uQgWcBUDKMI+FPOs9WA1KDh7RWgkzVJTNvbvb4brg/aWVFVBDbBWRN4BYqFIVU02SSWVCZV2mzqxlj8OABoARGQk8CRwiap+kqKdjuWoo46KhbFsbDd/e1SDiJSSaVwOLTkFsHv3bqZMmcLMmTM7rKAxNR2TE69P/faPf6LykIm9KuJus7+Y+/7cPU4mXj9qbm6O5RE0WESiam3t2jVcdUXHaJzX6+Xtt9+Oe1xpiYvWoDPHkExRdGORvaKzp2LN1wj9ki/wyBk9KTUF+8VdJD/F2s09OHcsDxawBSsP1tc6tVmMtYDgTaxw5yuqqiIyEHgW+B9VfT3B+SORSERcLlde/O1PNAB2JhIJ4XaXZ/z1RUoJRxwz5a8DN998c5dt2vfenEgkEslhxeH0iden6gMh6nwBStN1m8Rhv1jLi69Yl36kqnz++ed9bYbj+1Ek+nkeOu1QVq5cmfJxpW4h6LNCMjktzp1FHDIW9R299aylsMggZ/0l3SLuNra4i2T2j0lv+1FKYVBV/RewCSiNPl4GvNvNMSHAzoO1DviLRvNgiYjtkXsAGCwiG4DrAXt29bXAIcD/E5GV0Vtn+b5m165dA5w+MKaDFZvObBF3GxE3Ggk5cuA54YQTGDNmDMFgkBNOOIEZM2YwZsyYTOU3SpU1u3btGuDE9ycd7DBoZj1r+fGetO9HX/rSlxg3blzCCghZxPH9yBZr6RRyBysMqmpVMShUHDIW9R29FmvJc62VlZVRX1+fm9+dHnvWorJIMxfyV1Xq6+t71Y9SXQ36n8BVQDXWqtADgd8BSZOHafd5sHxYpas6H/cL4BfJzh0Khb65ffv2+du3b68lKjrr6+vz+h+fahi/fwdutw+3O7Or2EKhZkKhRrxeQSSdjC3ZZ9GiRSxatIjGxkZeeOEFNm3axM9//vMO6Qayjd2fdu/efXC8vHX5wp5giLZwhA/Lep8MNqzKDn+QgLuEfu40B7wc0Lkfbdu2jV/84hd9GgbNh37U7Auxty1ISWMZrjQ8sG2BMPUtAdjrpbTEmdfWW5wwFvUpvr1Q4gF3miLCTqLbzZy1kSNHUldXR59VY2hPoBlaG2CPe/88tFTQCDTuhLIAlGXO7rKysrTKT3a1K7WVnSuxEtS+127b+6kc25e3Pit8myWa9q3Tl/8xTrfveDbj5962fbG+/I9xuq/5o4yfu7dMnz5d/X6/HnbYYbFttbW1cdtSCCuwssilqz/RE95el5FzBcMRHf7Ke3r7p1szcr5sk2o/ynYfUof3o1+//JGO/uHf1R8Mp3Xcis8adPQP/66vrEtzdV0eUXRj0eL/Vr394PSP21tnrQZd/qeMm5QxXv+NZWPb3vSOi0RUf1at+tLN2bGrE6n2o1T/HvlVNWA/iS4GKFxfeI4IBHYD4Cmt6aZl+ng9Q6zX8OfgH043eL3eDmWBQqFQXntIc8kOf4hhnswsB3C7hIHuEhqCzppom4ie9CMR+aOI7BSRNQn2i4j8WkQ2iMhqEflCZq3ue1oCYTwlLjzu9Lxjw/tb3pdtjY6pNJhxim4s8jWmn2MN9lc8cHKuNd9eQMBTld5xItGkv866tlS/rf8SkR8B5dFSUIuAZ7JnVnESE2uezIs1jy3Woq/hJE444QRuvfVW2traeOmllzj//PP5yle+kmuz8pKdgSBDvZmb81hd6qY+T1YA9rAfPQickWT/LGB89HYVcF9GjM0hrYEQld70w9pDq7y4BLY1tmXBKmdQdGORrzH9+WoAnn4gLmdXMbCvrSfTERyY9DfVq7gJ2AW8j5XzbAnwv9kyqlixhZTXOyTj53ayWJs3bx5Dhgxh2rRp/P73v+fMM8/kF79IOmXREAdVZWcgc541gMEeNw2B/BBrPelHqvoq0XRBCTgHeDgasXgLGCgiPauR5RBa/GEqPOkLeneJixEDyvm8oTULVjmDohuLeirWHOp96kDbXijvgdcQrGtzWA65VAu5R0TkKeApVXVeHK1ACAR24XJ5KCnpl/Fzu91VuFweAgHnfXwul4tzzz2Xc889lyFDMi9Ui4WGYJigakbFWnVpCZ+3Bbpv6ACy1I8OBDa3e14X3dalrqOIXIXlfWPUqFGZev2M01PPGsDYmko27W7JsEXOoejGIl8jDEytdnUXvP0dJ2g64NvbsxAvOFKIJvWsRedr3Cwiu4H1wIcisktEfpLsOEPPCAR24ymtycocCRHB4xmC30FiTVW5+eabqampYdKkSUycOJEhQ4Zwyy235Nq0vGRnwComXGxh0Cz3o1Qqsdh23K+qM1R1hpN/6Jv9oR551gDG1FSwcXeLvcisYCjasainnjVwpKDpQNveXlxbf8eFeLsLg34X+CJwpKoOVtVq4CjgiyLyvaxbV2QEAvVZma9m4/HUOCoMevfdd/P666+zbNky6uvraWho4O233+b111/nrrvuyrV5ecd2vyXWMhoGLXXTEAw7+sc5y/0olUoseUVrINxjz9qYwZU0+UI0tOSHtzVVinIsUi1sseZr7F0Y1GHX1p1YuwSYq6ob7Q2q+inwjeg+QwYJBHbjycJ8NRuPZ4ijwqAPP/wwCxYsYOzYsbFt48aN49FHH+Xhhx/OoWX5yY5A5sVadamboCr7HFwTMsv9aDFwSTTKcDTQqKpdQqD5REsvPGtjayoB2FRfWKHQohyLQj4IB3op1pzlfepAb8KgXufNWetOrJWqahdXTHTeWj6UC8wrAoFdeEoHZ+38Hk8Nfgel7ggGg9TUdPUkDhkyhGAwmAOL8pud0YUAmQyD1kR/1Hc7eJFBb/qRiCzAKnc3UUTqRORKEblaRK6ONlkCfApsAP4AfDujxueA1kCYSk8PPWtRsfbprsISa0U5FrVFqw8UkPepA70Kgw6wkuqGnTPudTeqJ/N1F5YfPMeohgkEGrIaBvV6hhAM7kE1jKRbgiMLtM9nlM4+Q3x2+INUlbioLMncZ2t76XYEgoyr8HbTOjf0ph+p6txu9itwTY8McyjWAoOeCfrR1RWUlbpYt21fhq3KLUU5FvW01JSNkxcYBH0Q9vdOiIJ1fRXVmbOrF3T3jZ0uIvE+DQEKtFhabggG9wCRrIdBIUIg0JCV9CDpsmrVKvr3799lu6ri8xVu4s1ssSMQZJg3sw7vIVHPmr14wYmYfpQeLf5wj8Wau8TF1AMG8P6W5DUh842i7EO9FWt2eotIOP1i6dnGrlna49Wg7ZL+5oNYU1WHfQKFSyBQD2QnIa6Nx1sTfa1djhBr4XDvMuOLyBnAr4ASYL6qzuu0/3rgm0AIK0/gFar6Wa9e1MFksnqBjS3+dvqdEw7oTG/7UTERjihtwTAVPQyDAkw7cAB/XraZUDiCu0BqhBZlH4qJtQx4n8oHZcamTGGHeHsjRMFRYd7C+KYVAHZKjWyUmrKJlZxy0CKDniJWHPderAzzU4C5IjKlU7P3+P/bO/Moue7qzn9u7V3V+6qWWlJrXyx5leXdBLA9AgZMWIJhmNg+JiY5eJhhSTCTAwQSOGFnSIBAMLEhGBsICYLYOMYYGxtsS95ky7ItqbW1lu6Weu/aq37zx3uv1W53t7q73lbVv885farq1ev3u6/qVr1v3d/93QtblFJnAz8FvuCule7iRGStIRQkLOLryJpm9qTM1mGJeS4wANjS2UAqV+CZI5UVXVtwlBxZs6JPPpwKtc5tvtOgs2xU7yZarPkEJ1tNWVhdDPxUa60EtgL7lFJdZt/auzCqzY+jlHpQKWWVW38Mo+xCRaKUoiebo7WEi/BUiAitkdD4SlNNeTNmRkjj8yzdAfCatS2Eg8I9z52wyyyNF6QrL/o0zvi5zTPi58Nz02LNJzjZasrCEoLZjH9qrZXAdJXlp+Mm4N6pnhCRm0Vkp4js7OsrTyE7lC+QKSoW2TwNCtAaCft6GlQzeyyxVkpkrSYWZtumdu7acZhDFVbCY0GRGjBu513ewsfN3EueBvVf1FCLNZ+QzZ50rNWURTBYRTBYXRHT8xdN4AAAIABJREFUoMyhsryIvBfYAnxxqufLpfL8TPSYpTXsngYFoxSIngatDJJZYxq0lJw1gI9es5ZIKMD/+O7j9A5XaAJ+pZPsh0gNhOa52nVizprfSNtQlgR8JUS1WPMJRo01Z1pNTcRvXQxKYFaV5UXkKuCvgbcopTIu2eY6PQ50L7Boi4THxaCmvBlOG35SEyvNT5Y3Jbjjxq2cGs3yiZ8/b4dpGrdJ9UO8hIUBPhQ049hRlmTicXyAFms+IZs95WjZDouoz/qDlsAOYI2IrBCRCHAdRrX5cUTkPODbGEKt1wMbXWO8e4GNBXEtWiJGf9Bc0b8tpzSzYyRtiO6aWOl+cs7Sev7sihXct7uHI/3JM/+Dxl8k+6GqhLIU42LNh5G11CCEExCc54+SQNCIOvooaqjFmk/IZk86urjAIhJtqYjImlIqD9wC3AfsAX6slNotIp8RkbeYu30RqAZ+IiLPiMj2aQ5X9jjRF9TCOubJSq3kvoCwxFptiZE1iz+50Ahub3+2rNulLkxS/aXVEPNh9GmcVD/ES+wG5LMODfb/DNfMi2z2JLU1mx0fx5gGfcTxcdxAKXUPRjugids+OeH+Va4b5RG92RyJYIDqkP2lEa08uJ5MnvZohVZzXyAMpwzBXVtlz1d/R0OcTUtqeejlPj7w2tW2HFPjEsl+aFhx5v2mIxiCSLWvBM04yVOlF7ON1frq3HRkzQcYraZOuRJZi0ZayOeHKRQqNn1rQXIik3dkJSiURxcDzeywImvVNk6XX766hacPDzCqVwyXF6VG1sCIrvlI0IyTPFV6ZK2q4fSKWR+gxZoPyLrQasoiMl4Yt/ynQjWn6c3mbG3gPhFrGrRXLzIoe0bSOeKRoK2dB65Y00yuoHjiwCnbjqlxmELeEFml5KyBIfZS/fbYZCd2iLV4E4z55zqpxZoPyGSM4pLRaJvjY43XWquMRQYak55szvHImrXiVFO+jKTztiwumMj5yxoIB4UnDvgnCqE5A1Zpi1Ijaz4TNOMkbchZizcZos8naLHmA7IZY6FiNLrI8bG0WKs8lFL0ZHK0OlBjDSASCNAYDupp0ApgOJ2zbXGBRVUkyOYldew46MMIi2ZqkuZ7VXJkzV+CBoB81ljFWaoQTTQbUcNi0R67SkSLNR+QtiJrkVbHx7KmWvU0aOUwUiiSKipHVoJatEbCehq0AnAisgZw4YpGdnUPks4twIbo5Yg1dVlKnTUwBE3SZ9cSK8+s5KhhM6iib/LWtFjzAUZkTcbzyZwkEjZCwxkt1ioGq2zHIocia4DuD1ohjKRzJRfEnYqLVjSSKyiePqybu5cFtkXWmo3ct4KPvhusSJ8d06DgGzGqxZoPyGR6iESaCQScr6QSCIQJhxv1NGgFYU1P2t3EfSJGZM1HX8iaeeFUZO2C5Y2IsGCnQkVkm4i8JCL7ROTWKZ6/QUT6zHqPz4jI+7ywc5zxyFqpU4WWoPHR+26XWBs/N39M8+o6az4gk+1xZXGBhVFrTYu1SsHJgrgWbVGjmbtSyvGWaBrnGHYoslZXFWZdWw1PHPDRRdslRCQIfAO4GqMN3g4R2a6UemHSrncrpW5x3cCpsDNnDYzoU41717AZsS2yZpbS8skCCh1Z8wGZjLtiLRppIZvRYq1SOGaKtcUOXIQtWiMhskoxlNc5SeXMcDpvW0HcyVy0opGnDg+QL/gjIdtFtgL7lFJdSqkscBdwrcc2zUyqHwJhiNaUdhyfCRrAxsiaeW4LYRp0FqHhqIjcbT7/uIh0mtubRORBERkVkX900kY/4LZYi0Sadc5aBXE0naU+FCQRtL97gYUVtdMN3cuXTL5ANl+0fTWoxYUrGklmC+w+5p9+ii6xBDgy4XG3uW0ybxeRXSLyUxFZOtWBRORmEdkpIjv7+hz8QT3aB4kWKDVK7jNBA9gfNRzzxzSoY2JtQmj4DcBG4N0isnHSbjcBA0qp1cBXgc+b29PAJ4CPOmWfXygWM+RyA66sBLWwpkGV0o25K4FjmRyLHVxcABO6GOhaa2XLcMq+Ju5TsbXTuDguwKnQqRTP5C/XXwCdSqmzgV8Dd0x1IKXUd5RSW5RSW1paHFxwNtYL1TYc34qs+S1nLVoLoRJb44WiRjN3n+SsORlZm01o+FpOO+1PgdeLiCilxpRSj2CItoom42KNNYtItIViMU2hMObamBrnOJbJsjjmbM9Oqz+oXmRQvgwmswDUx53xldbaGMub4jyx8BYZdAMTI2UdwCs62yulTimlrB5//wxc4JJtUzPaCwkbAgRVZukPv02DVpVYksQi0eSbqKGTYm02oeHxfZRSeWAImNNEs2thY4fIZHoAiEbdjKxZtdbK7/XSvJpjaecja1Z3hOM6sla2DCSN964h7pyvbO1sZOfBforFBRW13wGsEZEVIhIBrgO2T9xBRNonPHwLsMdF+17NWB9U23DNCYYMYeQTQQOYUUObrqc+6tDgpFibTWh4NvvMiGthY4dIp40fYNFo+xn2tI+oKdZ03lr5kywUGcgXWBJ1NrJWHQpSEwxosVbGDJiRtQaHImtg5K0NJHPs6xt1bAy/YQYabgHuwxBhP1ZK7RaRz4jIW8zdPigiu0XkWeCDwA3eWAsoZYi1hE3Xy3izb6YKASNqWG1TDnjcP0V/nRRrZwwNT9xHREJAHbCgYujp9FEAYrGp8lGdQbecqhyOZYwLsJMrQS0WxyLjK08rhbKrj1UCp6dBnY2swcLLW1NK3aOUWquUWqWU+qy57ZNKqe3m/Y8rpc5SSp2jlHqtUupFz4xND0Iha1/0KdHsm+gTACMn7BNriebKX2DALELD5uPrzfvvAH6jFljWezp9lHC4kVAo4dqY49OgunxH2XMsbZbtcHga1BrjqCkOK4FZLoICoz7Wuebfd1010kZOT4M6F1lb3hSntSa6YIvjlgWj5ve+HTlrADWLDIHkB/JZoyxJjU054IkWIwrpg/6gjom1WYaGbwOaRGQf8GFg/JetiBwEvgLcICLd03yJlj2pdDex2GJXxwyH6wkEIqQzx10dV2M/lnha4vACA4Al0UilTYOWX32sEhhIZokEA8QjzpV4ERHOW1bPru4hx8bQlMiYsajNltWgANU+Emvj52aXEG2HYu50xwcPcbSDgVLqHuCeSds+OeF+GnjnNP/b6aRtfiGdPkoisdbVMUUCxGIdpFPdro6rsZ+j6RwCtLsQWWuPhunL5skUi0QDFVFPe6pFUBdNsd/bReRK4GXgQ0qpI1Psg4jcDNwMsGzZMptNLZ2BsSz18bDjHSjO7qjnvt09DKVy1FU575eaOTJqCho7I2vZEciMlF5kt1RGjQV7VNsUWbMidCPHT9eU84iK+MYtV5RSpNNHqXIxX82iKtZBKj3lNUdTRhxMZVgcDbsinqy8uBOVE12zrT4W+H+x00AyR2PC+Qjs5iV1AOw+qqNrvmTMnAa1M/oEMNJjz/FKwbLB9nPzPnKoxZqHZHOnKBYzri4usIhVLSOVKm+xNovk8CtF5CkRyYvIO7yw0WkOpjJ0VkVdGctacVpBiwzKrz5WCQwms44uLrCwxNouLdb8yWgPSLD0Cv8WVvRp1HtBMx5ZsytnrdYSa96nDGmx5iHWNGSsqsP1sauqlpLPD5HLlecX6iyTww9jLJG/013r3ONAKktnlfPREjg91XosXTGLDMqvPlYJDCRzji4usGhIRFjaWMVzOm/NnwwfMyJGdkXjfRR9MsSa2FeWxFpV6oNzczRnTTMzXpTtsKiqMgIKqfQRwuE618e3gfHkcAARsZLDX7B2UEodNJ/zfimPA4zkC5zK5V2LrFnToJUSWVNK5UXEWgQVBL5nLYICdpplFz5oLojKY5QVusEzg0vEiKy5I+zPXlLPrqODroylmSND3VBn4zWnxhI03kefGO0xCtkGbYogh6LG8XxwblqseUgydRCAeJX7ychVMVOspY5QW7PJ9fFtYLbJ4WfE74nh03EwZczOuSXWEsEgTeHQ+LiVwCwWQX0c+LjbdtlNsajMnDV3Ev43d9Txn88dZ2AsS4MLeXKaOTB8DNrPtu940VoIx30RfWL4uH1ToBY17cZxPUZPg3pIMtlFNLqIYDDu+tjx+ApAGBvb5/rYNlFy94vxf/J5Yvh0HEwZ05ErXJoGBVgdj7I/WTlibaEwkMxSKCpaqt0R9lbe2nM6b81fKAXDR6HWxsiaiFlrzXtBw9ARqFt65v3mgk/OTYs1D0kmDxCPr/Rk7GCwiqqq5YyOeldIu0Rm0yGjojngcmQNDLG2T4u1sqNv1HjPWmpiroy3abEWa74k2Q/5NNTZnCdds9iI2HnN0BEHzk2LtQWNUopkssuMcHlDdfU6xsZe8mz8EplNh4yK5qWxNIujYapDzhU5ncyqeIyTuTyDubxrY2pKp3fYEGutte4I+7p4mM6muF5k4DeGjTxpam0uxF6/DAYO2XvMuZIehvQQ1NscWatbZuTC5dL2HneOaLHmEbncKfL5EY/F2nqSyYMUCinPbJgvs+mQISIXikg3RuHlb4vIbu8stp+XxtKsS7gTKbFYHTcu9jq6Vl70jZiRNZemQQE2d9TryJrfGBdrNkefGpYb0ae8h98LQ2YKs93ToA3LjdvBw/Yed45oseYRY8kDACQ8mgYFqE6sAxRjY3s9s6EUZtE8eYdSqkMplVBKNSmlzvLWYvsoKMW+pPtibb053vOj5SfwFzKnp0HdE2tnL6nj6GCKk6Na2PuGIbNrjZ2rQQHqlwMKBj2s3TnolFjrNI/vbeRQizWPSJqJ/fH4Ks9sqK3dDMDQ0NOe2aCZH4dSWdJF5bpYWxqL0BwO8dTwmKvjakqjdzhDIhIkEXWvAMDmDiNv7dkjuoSHb+g/AKGq0/XD7GI8+nTQ3uPOBSuyZvc0aL15bgMH7T3uHNFizSNGRvcQDFZ7UmPNIhZbTDS6iMGhJz2zQTM/XhwzIlvrE1WujisinF8b5+nhpKvjakqjbzTjalQN4Nyl9VRHQ/zqeR+UdNAY9HdB40pjBaedjAsaD6NPg4chGLGv56lFdRuEYlqsLVRGR16gpmaj402Vz0Rd3QUMabFWdrw0ZiS7ro27ewEGOL82zt5khgG9yKBs6BtJ0+rSSlCLWDjItk2LuPf5EwynK6OQctnT3wWNDuRJ17QbQsnLqcJT+6FhhX2dGSwCAWMBhZ4GXXgoVWB07CWqqzd4bQr1dReQyZwgnfbBsmvNrHl+NEVnVYSEiytBLS6prwbgD4Ojro+tmR+9I+5H1gBuuLST0Uyebz+03/WxNZMoFmDgADQ5kHoTCBi5Yl5Gn07theY1zhy7oVNH1hYiqdRhCoUkNdWTW1m6T1290Zd6cHCHx5Zo5sIzw0nOrXG/mDLAebVx4sEAvxvQYq0cUEpxbDDF4np3I2sAm5bU8bbzlvBPD3Xx5KF+18fXTGD4KBSyxjSoEzStgpMeFVkv5IyooWNibYWR76fmVXfdFrRY84DhkecBqKnxPrJWU72BUKie/v5HvDZFM0v6sjmOZnKc45FYiwQCXFyX4JGBEU/G18yNU2NZ0rkiS+rdzW+0+Jtrz2JxfYz/defTDIxlPbFBgzFNCIbwcILWDUZ0q+BBesTAISjmockhsda6HrKjpxcxeIAWax4wNPQUgUAVicRar01BJEhj42Wc6n8E5eGvBs3seXbEWFzglVgDuLyhhr3JDCcqpKl7JdM9YPhLR4M3/lIbC/ON95zPydEsH/3Js/p7xit69xi3rQ4FCVo2GJG7/i5njj8Tp8zyU05F1lrNWTDrNfQALdY8YHBwJ3V15xEIuNNU+Uw0NV5JNtvLaPl2M1hQPDk0RgA4u8abSAnAFQ1G3pqOrvmf7gFj5W5Ho3f+cnZHPX+1bR0PvNjLA3t6PbNjQdOz21gpWW3zakmL1vXGbZ8HgqbPbJvolFhrMc+t9wVnjj8LtFhzmXx+hNHRF6mv2+K1KeM0Nl0OQP+phz22RDMbHhkY5ZyauKttpiZzVnUVDaGgzlsrA46akTWvpkEtrr+0k5XNCb58/8s6uuYFPc9Bm4N1wZvXAeJN9OnYM8aKzaoGZ45fVQ+1S6BHi7UFw8DgE0CR+nr/iLVYdBGJxFpOnnrQa1M0Z2AkX+DpkbHxyJZXBES4tKGaRwZG9IXX53QPpKiNhaiJeRvJDwcD3HzlSvYcH+aJA3qxgasU8tD7Iiza5NwYkbixyOD4s86NMR3Hn4H2c50do3UjnHjO2TFmQIs1lzl58gGCwWpfiTWA1tY3Mji4g3RGF7D0M/f0DZFXcHVzndemcEVDDUczOQ6mdNK4n+k6OcqKFm/FvcW15y6hPh7mXx496LUpC4ue56GQcV7QdGyFI0+4u2oyNWCU1Wg/x9lxOi40pltT3nTk0GLNRZQqcPLkb2hqupJAwP2aRzPR1vomQNHbe6/Xpmhm4O4T/SyLRdhS693iAgsruvc7nbfma/b1jrLaJ2KtKhLkXRcu5f49PRwb1P1lXePwY8btskucHWfpVkiedHeRwVGzqPuS850dZ9lFgILunc6OMw1arLnIyZMPks32mcLIXyQSK6mpOYtjx+7W01o+5fcDo/x+cJQblzR73vkCYGVVlPZoWOet+ZihVI6e4Qxr2vwh1gDee9FylFL88HFvK8IvKA7/AeqW2d/AfTJLLzJujzzu7DgTOfAwBMKnx3aKJVtAgnDkMWfHmQYt1hymWMxRKCTJ58fY3/VlYrElNDdf5bVZU7K043rGxvbS3/87r03RTCJVKPKxl4+wOBrmhiXNXpsDGH1CL2+o5tHBEYpa4PuSfb2GkF7T6h+xtrQxzus3tPGjJ46QzhW8NqfyKRbg4O9g+aXOj9WyHuJNsP83zo9lceBhY4oyknB2nGi1MdXa9ZCz40yDFmsOoVSRffu/xEMPn81vH9rMQw+fzdjYPtat/TSBQMhr86akre3NRKOL6Or6KkoVvTZHM4HPdh1jbzLDV9cvoyron4/tFQ019OcK7B7VU1p+ZFe3kV+zcXGtx5a8kusv6aR/LMt/7jrutSmVz5HHIXkK1m1zfqxAANZug73/ZXQVcJrh48ZK0FWvdX4sMM6teweMul9+xj/f+hXGocP/zKFD36Kl+RpWr/orOjtv4fzz76S52SWnmgeBQIRVKz/K8Mgujp/4mdfmaEx+c2qY73af5H0dzbymscZrc17BaxtrCGAsfND4j6cOD9JeF6O9ztuyHZO5bHUT69pq+H8P7NXRNafZ8wujyfpql2Z01r8J0kNGNM9pXvgPQMHGtzo/FhjnhoIXf+nOeBPQYs0BRkdfpqvra7S0bOOss77G8uXvZ9XKD9FQf6HXpp2RRYuupa7ufPbu/axu7u4D9ifT/PkLB9mYiPHXKxd7bc6raImEubS+mp/3DupcR5+hlOKpQwOcv8yh2lMlICJ86s0bOdyf5DO/fEH7jlNkk/DMnbDujRB16YfeqtdBrB6evMPZcZSCp38IizZDi0vdgNrOMkp47Pye631CtVizmWIxz549HyMUqmb9uk/7IhF8LogE2LjhiyhV4PndH6JQyHht0oKlN5Pjvbu6CIlw++YVvpr+nMgftzXQlcrw2NCY16ZoJvByzyhHB1NcsqrJa1Om5NLVzbz/ypXc+fhh3vWdx9j+7DEdZbObp/8V0oOw9c/cGzNcBef/qRHRs/qROsG+XxuFfi/6c+fGmIyI8VqeeA66fuveuGixZjuHDv0TwyO7WLf2b4hE/JEIPlfi8U7Wr/8sQ0M7eXbXTbr2mgf05/K869n9nMjk+f7mlSyr8lepl4n8cVsDzeEQXzpwQkdIfMQvdxmR8Ws2tnlsyfTc+ob1/N1bN3GkP8kHf/Q0V37hQX7wh4PkCjpntmRGeuC3n4POK2D5Ze6OfckHIByHe/4Sig68l7kU/OpWo2vB5j+x//gzcc57jHF/9XHDDpdwVKyJyDYReUlE9onIrVM8HxWRu83nHxeRzgnPfdzc/pKI/Dcn7bSLkycf5MDBf6Ct7c20tfmvPMdcWNT2ZjZu+AJDQ0/z2GNXs3//l8jl/JWXVIp/+Zk9oyne8tReulIZvr95BVvqHF7lVCLxYIAPd7bx6OAo3zzS57U5c6YS/WhgLMsPHjvEVRvaaK2NeW3OtIgI7714OY9+7HX84KatdDYn+MTPd7Ptaw9z73PHGUm7kKRuA77zobGT8KPrIJ+BN37RiAi5Sc0iuOpTsP8BQ1QVbYyYZsfgJzfCqX3w5q9DKGLfsWdDOAZv+opRIPff3mdMNbuAY8sSRSQIfAO4GugGdojIdqXUxOZaNwEDSqnVInId8HngXSKyEbgOOAtYDPxaRNYqpVyJkRvRAeNv4n3jMRPuFwFFKnWYEyf+gyPdt1NdvZ716/7WDTMdp7397dTVXcD+rq9w8NC36D76ryxbehNtbf+dWKzD00b0pfiXWzYqpU57jhr3mkmPjW3ZouK5kRQ/6ennZz0D1IWC3HXOKi6p90/JhZm4cUkzjw6O8rf7j/HMcJJrmmtZHA3THAnTGA6SLSrGCkVyShEUiAcCxINB4sEAVQHxLF3A736klDrtK2qi75jbJ94HcvkiLxwf5ov3vcRYJs+Hr3Ypl6dEAgHhijUtXL66mV/v6eVz9+zhL374FACL62Ksaq1mdWs1K1uq6Wiooq0mRk0sRG1VmJpoiEDAu3QTT32oWIRiDop5I6n/1H448BDsuA1ySXjn7dC6oeRh5sWF74P+A/DYN+DQ7+GC642iuXVLjfy5QGh2IjKfMcTn8DE49CjsvA0Gj8Abv+TeKtDJrLka3vB5uPdj8M2LjHNdfpkRcYvVQzBsu0B2sobEVmCfUqoLQETuAq4FJjrwtcDfmPd/CvyjGN/a1wJ3KaUywAER2Wce7w9zMeCFF/6S3r77mFp0TSfI5odIkEVtb2Xt2k8QCvlrxV4pxOOdbN70dUZG/oKuA18b/wPMLgwCWBdb688eLr7oXmKxaZPq5+1fag5zdb2ZHJc8vmf8IgmzE2DzpToY4PrFzXykcxFNEX+WeJkKEeHbGzv58sETfLe7j1/0zb4liwBVwYAjYf5rmuv45sblM+3iih995f6Xue13Xa8WW0wvyEqhrirMP7z7PN+V7DgTIsLVG9v4o3UtPN7Vz7Pdg+zrHWVf7yh37zhCMjv17/WqcJD56LXZ/kj4lxsv5MLOxumedsWHAPjCKkOEFfNmaYwp/l0CRpL/VZ92thfomRCBbZ+Djgvgt38P93x08g4Qsq4h5i8PFKjihPtTfKN2bIW3fgs6L3fjLKbnovcbdeUe+Azc/8lXPx+KGe8FYrwWbZvgpvvmPZyTV4MlwJEJj7uBySWGx/dRSuVFZAhoMrc/Nul/pyy9LCI3AzcDLFu27BXPNTRcQihcj1gCwhQUQmDCfRh/MRFzi0z5/PhzEx+LEI20Ud+wlVh00axfnHKjpmYD55z9bZLJgwwOPkE600OhMMbpD5QlY+wjGJxx+q8U/zo5caeZfKgqGOC97U3GW864NEVe8dj40p8oVU8/b26f5v8xtwVFWJuIcXF9gkQwOPML41NCAeFjK9v5SOci9qcy9GVznMzmOZXLEwsEiAcDRAJCXimSheIr/4rF0lTuNKyvPuMUoCt+dE5HHddtXXbaF0x/QSAgE31kgm9Ms338/6fYHhBhVUs1W1c0koiWj9ifTDgY4PI1zVy+5nTeb7Go6B3JcHQwSd9IhuF0nuFUjpF0nrFMfs5jzMXdWmtmzBl1xYcAOPc9huWBkFG1PxCCYMi4jSSgYYVRuDXho3zpTW+Hs95mtKDq2Q1D3ZAbMyJm+QzGO2FecyeKG+s2GIVEE1S3weLzobbd2/OZyMrXwMoHYOio0cB+6AhkRsxzSxvCE4xrZE1p+sDJT/NUP1kmfz6m22c2/2tsVOo7wHcAtmzZ8op92tvfho/e1oogHu8kHu/02gwozb9euWEGH6oJBfn0GodbtFQYoYCwLhFjXcK/uVITcMWPXr+hjddv8G+ifzkQCAiL6mIsqvOdX7niQwBcU6YpNiLQtMr4q0TqljjeysvJBQbdwNIJjzuAyYW7xvcRkRBQB/TP8n81C5tS/EujsdB+pCkV7UMax3FSrO0A1ojIChGJYCwY2D5pn+3A9eb9dwC/MefwtwPXmStoVgBrgCcctFVTfpTiXxqNhfYjTaloH9I4jmPToOa8/C3AfUAQ+J5SareIfAbYqZTaDtwG/MBcQNCP4eSY+/0YI0EzD3zArZWgmvKgFP/SaCy0H2lKRfuQxg2kksT9li1b1M6dO702Q+MgIvKkUmqLU8fXPlT5OO1DoP1oIaC/izR2MFs/0h0MNBqNRqPRaHyMFmsajUaj0Wg0PqaipkFFpA845LUd09DMpJo6ZYLf7F6ulGpx6uA+96HZ4rf3zC7sOi9HfQhe4Ud+fi+0bfOnGUgsgO8iv78PpeCXc5vV91FFiTU/IyI7nc6TcYJytXshU6nvWTmel59t1rbNH7/bZxeVfJ7ldm56GlSj0Wg0Go3Gx2ixptFoNBqNRuNjtFhzj+94bcA8KVe7FzKV+p6V43n52WZt2/zxu312UcnnWVbnpnPWNBqNRqPRaHyMjqxpNBqNRqPR+Bgt1jQajUaj0Wh8jBZrDiEiB0XkORF5RkR2mtsaReR+Edlr3jb4wM7viUiviDw/YduUdorB10Vkn4jsEpHzvbNcMxVT+V05Mhe/9Csisk1EXjI/L7d6bY/FVK+tXxCRpSLyoIjsEZHdIvK/vbbJQkRiIvKEiDxr2vZpr21yEr/6b6n42f9nQos1Z3mtUurcCbVcbgUeUEqtAR4wH3vN7cC2Sdums/MNwBrz72bgWy7ZqJkbk/2uHLmd2ful7xCRIPANjM/MRuDdIrLRW6vGuZ1Xv7Z+IQ98RCm1AbgY+ICPXrcM8Dql1DnAucA2EbnYY5scwef+Wyq341//nxYt1tzlWuBdYYA3AAACoklEQVQO8/4dwFs9tAUApdTDQP+kzdPZeS3wfWXwGFAvIu3uWKpZSMzRL/3IVmCfUqpLKZUF7sKw33OmeW19gVLquFLqKfP+CLAHWOKtVQbm996o+TBs/lXqCj3f+m+p+Nn/Z0KLNedQwH+JyJMicrO5rU0pdRyMLyWg1TPrZmY6O5cARybs141Pvkg140zld5VCuXx+QH9WSkZEOoHzgMe9teQ0IhIUkWeAXuB+pZRvbLMZ7b8+I+S1ARXMZUqpYyLSCtwvIi96bZANyBTbKvWXZbnyKr8zf0lq3EV/VkpARKqBfwP+j1Jq2Gt7LJRSBeBcEakH/l1ENimlyir3aZZo//UZOrLmEEqpY+ZtL/DvGGHlHmva0Lzt9c7CGZnOzm5g6YT9OoBjLtummYFp/K5SKJfPD+jPyrwRkTCGUPuhUupnXtszFUqpQeC3lGHu0yzR/usztFhzABFJiEiNdR+4Bnge2A5cb+52PfBzbyw8I9PZuR34U3NV6MXAkDUtpfGeGfyuUiiXzw/ADmCNiKwQkQhwHYb9mhkQEQFuA/Yopb7itT0TEZEWM6KGiFQBVwGVMGMyFdp/fYaeBnWGNowQORiv8Z1KqV+JyA7gxyJyE3AYeKeHNgIgIj8C/ghoFpFu4FPA3zO1nfcAbwT2AUngRtcN1szElH7nrUnzY45+6TuUUnkRuQW4DwgC31NK7fbYLGDq11YpdZu3Vo1zGfA/gefM3DCA/6uUusdDmyzagTvMlZIB4MdKqV96bJMj+Nl/S8Xn/j8tut2URqPRaDQajY/R06AajUaj0Wg0PkaLNY1Go9FoNBofo8WaRqPRaDQajY/RYk2j0Wg0Go3Gx2ixptFoNBqNRuNjtFjTaDQajUaj8TFarGk0Go1Go9H4mP8PJDOT7F2+z3EAAAAASUVORK5CYII=\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"## Box Plots\nAnother useful way to review the distribution of each attribute is to use Box and Whisker Plots or boxplots for short."},{"metadata":{"trusted":true},"cell_type":"code","source":"#boxplots help to represent outlies\nTrain.plot(kind='box', subplots=True, layout=(3,4), sharex=False, sharey=False)\nplt.show()","execution_count":122,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Multivariate Plots\nit provides examples of two plots that show the interactions between multiple variables in your dataset.\n\n* Correlation Matrix Plot.\n* Scatter Plot Matrix.\n* Correlation Matrix Plot\n\nCorrelation gives an indication of how related the changes are between two variables. If two variables change in the same direction they are positively correlated. If they change in opposite directions together (one goes up, one goes down), then they are negatively correlated. You can calculate the correlation between each pair of attributes. This is called a correlation matrix. You can then plot the correlation matrix and get an idea of which variables have a high correlation with each other. This is useful to know, because some machine learning algorithms like linear and logistic regression can have poor performance if there are highly correlated input variables in your data."},{"metadata":{"trusted":true},"cell_type":"code","source":"Train.columns","execution_count":123,"outputs":[{"output_type":"execute_result","execution_count":123,"data":{"text/plain":"Index(['FULL_Charge', 'FULL_AcidicMolPerc', 'FULL_AURR980107',\n 'FULL_DAYM780201', 'FULL_GEOR030101', 'FULL_OOBM850104', 'NT_EFC195',\n 'AS_MeanAmphiMoment', 'AS_DAYM780201', 'AS_FUKS010112', 'CT_RACS820104',\n 'CLASS'],\n dtype='object')"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"## Plot correlation matrix\nIt is very useful to highlight the most correlated variables in a data table.\n\n## Note: \n### Positive correlations are displayed in yellow and negative correlations in blue color. Color intensity and the size of the circle are proportional to the correlation coefficients."},{"metadata":{"trusted":true},"cell_type":"code","source":"# plot correlation matrix\n\ncorrelations = Train.corr()\n\nfig = plt.figure()\nax = fig.add_subplot(111)\ncax = ax.matshow(correlations, vmin=-1, vmax=1)\nfig.colorbar(cax)\nticks = np.arange(0,9,1)\nax.set_xticks(ticks)\nax.set_yticks(ticks)\nax.set_xticklabels(Train.columns)\nax.set_yticklabels(Train.columns)\nplt.show()","execution_count":124,"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# Scatter Plot Matrix\n\n1. A scatter plot shows the relationship between two variables as dots in two dimensions, one axis for each attribute. You can create a scatter plot for each pair of attributes in your data. Drawing all these scatter plots together is called a scatter plot matrix. Scatter plots are useful for spotting structured relationships between variables, like whether you could summarize the relationship between two variables with a line. Attributes with structured relationships may also be correlated and good candidates for removal from your dataset.\n\n2. A scatter plot matrix is a grid (or matrix) of scatter plots used to visualize bivariate relationships between combinations of variables. Each scatter plot in the matrix visualizes the relationship between a pair of variables, allowing many relationships to be explored in one chart.\n\n3. Variables\nA scatter plot matrix is made up of three or more Numeric fields. A scatter plot will be created for every pairwise combination of variables.\n\n* . Statistics\nA regression equation is calculated for every scatter plot in the matrix. The associated trend lines can be added to the scatter plots by checking Show linear trend in the Chart Properties pane. Alternatively, the mini-plots in the grid can be viewed as R² values with a color gradient corresponding to the strength of the R² value by checking Show as R2 in the Chart Properties pane.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import seaborn as sns\n\n#you can use vars to compare two variable and hue to put colours\nsns.pairplot(Train,hue='CLASS',vars=['FULL_Charge','FULL_AcidicMolPerc'])\n#check on the seaborn(seaborn.pydata.org-dev/generated/seaborn.boxplot.html)\n\n","execution_count":125,"outputs":[{"output_type":"execute_result","execution_count":125,"data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"metadata":{},"cell_type":"markdown","source":"# 3. Prepare Data\n(Prepare Your Data For Machine Learning)\n\nMany machine learning algorithms make assumptions about your data. It is often a very good idea to prepare your data in such way to best expose the structure of the problem to the machine learning algorithms that you intend to use. It involes the following;\n\n1. Rescale data.\n2. Standardize data.\n3. Normalize data.\n4. Binarize data.\n\n### The steps involved are as below:\n\n* Split the dataset into the input and output variables for machine learning.\n* Apply a pre-processing transform to the input variables.\n* Summarize the data to show the change.\n\nThe scikit-learn library provides two standard idioms for transforming data. Each are useful in diferent circumstances. The transforms are calculated in such a way that they can be applied to your training data and any samples of data you may have in the future. The scikit-learn documentation has some information on how to use various diferent pre-processing methods:\n\nThe Fit and Multiple Transform method is the preferred approach. You call the fit() function to prepare the parameters of the transform once on your data. Then later you can use the transform() function on the same data to prepare it for modeling and again on the test or validation dataset or new data that you may see in the future. The Combined Fit-And-Transform is a convenience that you can use for one of tasks. This might be useful if you are interested in plotting or summarizing the transformed data.\n\n### Rescale Data\nWhen your data is comprised of attributes with varying scales, many machine learning algorithms can benefit from rescaling the attributes to all have the same scale. Often this is referred to as normalization and attributes are often rescaled into the range between 0 and 1. This is useful for optimization algorithms used in the core of machine learning algorithms like gradient descent. It is also useful for algorithms that weight inputs like regression and neural networks and algorithms that use distance measures like k-Nearest Neighbors. You can rescale your data using scikit-learn using the MinMaxScaler class\n\n### NOTE: Since my graph and summary data shows varying means and Gaussian distribution. i would use Standardize data method\n\n\n\n### Standardize of Data\nStandardization is a useful technique to transform attributes with a Gaussian distribution and differing means and standard deviations to a standard Gaussian distribution with a mean of 0 and a standard deviation of 1. It is most suitable for techniques that assume a Gaussian distribution in the input variables and work better with rescaled data, such as linear regression, logistic regression and linear discriminate analysis. You can standardize data using scikit-learn with the StandardScaler class3."},{"metadata":{"trusted":true},"cell_type":"code","source":"#using Standardize data method\nfrom sklearn.preprocessing import StandardScaler\n\narray2 = Train.values\n# separate array into input and output components\nX = array2[:,0:11]\nY = array2[:,11]\nscaler = StandardScaler().fit(X)\nrescaledX = scaler.transform(X)\n# summarize transformed data\n#set_printoptions(precision=3)\nprint(rescaledX[0:11,:])","execution_count":126,"outputs":[{"output_type":"stream","text":"[[ 7.69712416e-01 -1.12341031e+00 -1.90047029e-01 1.37605977e-01\n -6.06718766e-01 -7.20629784e-01 -3.11684110e-01 -1.33070267e+00\n -2.25681314e-02 -3.60971652e-01 -9.25122883e-01]\n [ 5.07884366e-01 -4.10857567e-01 -3.76275096e-01 -2.43225309e-01\n -1.18128598e+00 -9.24503172e-01 3.20837658e+00 -1.30322672e+00\n -5.92370366e-01 9.02050407e-01 1.03699430e+00]\n [ 9.00626442e-01 -4.10857567e-01 -9.16336490e-01 -8.65106417e-03\n -1.05360437e+00 -4.63244125e-02 -3.11684110e-01 -1.30383154e+00\n -4.59030969e-01 -1.40916462e+00 2.31808537e+00]\n [ 7.69712416e-01 -5.74065761e-01 -7.11485617e-01 -8.70124978e-01\n 1.59370848e-01 6.27395116e-01 -3.11684110e-01 -1.30201709e+00\n -7.01486075e-01 -2.30020073e+00 6.98862456e-01]\n [ 1.42428254e+00 2.04070778e-03 -3.66963693e-01 -1.04957427e+00\n -4.79037163e-01 2.00315519e-01 -3.11684110e-01 -1.30184429e+00\n -7.71259861e-02 -1.97723618e+00 1.44656245e+00]\n [ 7.69712416e-01 -1.09357454e-01 5.45553834e-01 6.19304189e-01\n -5.74798365e-01 -3.85527549e-01 3.20837658e+00 -1.31091653e+00\n 5.59455063e-01 1.16266135e-01 -6.87001866e-01]\n [ 2.46056315e-01 -2.14164008e-01 -3.85586500e-01 5.76728963e-01\n -1.18128598e+00 -6.50914459e-01 3.20837658e+00 -1.32180323e+00\n 4.98786728e-01 5.37273488e-01 1.10366819e+00]\n [-1.57717358e-02 -3.47973635e-01 -9.62893507e-01 3.42389293e-01\n -1.43664918e+00 -1.99132340e+00 -3.11684110e-01 -1.34176217e+00\n 3.20491659e-01 8.18425659e-01 -7.10813967e-01]\n [ 1.29336852e+00 -7.76428102e-01 -1.06531894e+00 -1.55074215e+00\n 5.74336055e-01 1.25424720e+00 -3.11684110e-01 -1.33882449e+00\n -1.01672136e+00 -2.97352413e+00 3.28485670e+00]\n [ 1.81702462e+00 -1.12341031e+00 -5.62503163e-01 -9.21965886e-01\n 1.75539088e+00 -8.52444475e-01 -3.11684110e-01 -1.32387688e+00\n -1.13794891e+00 5.99271146e-01 -9.16993221e-02]\n [-1.57717358e-02 -6.68853073e-01 1.82409104e-01 -2.92837762e-01\n -1.27912757e-01 -7.49336095e-01 -3.11684110e-01 -1.31100293e+00\n 2.98777633e-01 -7.34399407e-01 2.36907682e-01]]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# a) Data Cleaning(not done)\n# b) Feature Selection\n\n## Feature Selection For Machine\nLearning The data features that you use to train your machine learning models have a huge in uence on the performance you can achieve. Irrelevant or partially relevant features can negatively impact model performance. \n\n## Univariate Selection.\nRecursive Feature Elimination.\nPrinciple Component Analysis.\nFeature Importance.\nFeature Selection\nFeature selection is a process where you automatically select those features in your data that contribute most to the prediction variable or output in which you are interested. Having irrelevant features in your data can decrease the accuracy of many models, especially linear algorithms like linear and logistic regression. Three benets of performing feature selection before modeling your data are:\n\nReduces Overffitting: Less redundant data means less opportunity to make decisions based on noise.\nImproves Accuracy: Less misleading data means modeling accuracy improves.\nReduces Training Time: Less data means that algorithms train faster.\nUnivariate Selection\nStatistical tests can be used to select those features that have the strongest relationship with the output variable. The scikit-learn library provides the SelectKBest class2 that can be used with a suite of different statistical tests to select a specific number of features. The example below uses the chi-squared (𝑐ℎ𝑖2) statistical test for non-negative features to select 4 of the best features from the Pima Indians onset of diabetes dataset.\n\nYou can see the scores for each attribute and the 4 attributes chosen (those with the highest scores): plas, test, mass and age. I got the names for the chosen attributes by manually mapping the index of the 4 highest scores to the index of the attribute names.\n\n# Recursive Feature Elimination method.\nThe Recursive Feature Elimination (or RFE) works by recursively removing attributes and building a model on those attributes that remain. It uses the model accuracy to identify which attributes (and combination of attributes) contribute the most to predicting the target attribute. You can learn more about the RFE class3 in the scikit-learn documentation. The example below uses RFE with the logistic regression algorithm to select the top 3 features. The choice of algorithm does not matter too much as long as it is skillful and consistent.\n\n### NOTE: Since i dont have much information about the interpretetion of my varaibles, Recursive Feature Elimination method would be the best. \n\n# c) Data Transforms"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.feature_selection import RFE\nfrom sklearn.linear_model import LogisticRegression\n\narray_1 = Train.values\nX = array_1[:,0:11]\nY = array_1[:,11]\n# feature extraction\nmodel = LogisticRegression()\nrfe = RFE(model, 10)\nfit = rfe.fit(X, Y)\nprint(\"Num Features: \", fit.n_features_)\nprint(\"Selected Features:\", fit.support_)\nprint(\"Feature Ranking: \", fit.ranking_)","execution_count":127,"outputs":[{"output_type":"stream","text":"Num Features: 10\nSelected Features: [ True True True True True True True True False True True]\nFeature Ranking: [1 1 1 1 1 1 1 1 2 1 1]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"### Feature Importance\nBagged decision trees like Random Forest and Extra Trees can be used to estimate the importance\nof features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.ensemble import ExtraTreesClassifier\nimport warnings\nwarnings.filterwarnings('ignore')\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n# feature extraction\nmodel = ExtraTreesClassifier()\nmodel.fit(X, Y)\nprint(model.feature_importances_)","execution_count":128,"outputs":[{"output_type":"stream","text":"[0.08655857 0.11824393 0.09732937 0.07652709 0.04863441 0.07175462\n 0.03675884 0.32395049 0.05806581 0.03193436 0.05024251]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# 4. Evaluate Algorithms\n\n\n## Evaluate the Performance of Machine Learning Algorithms with Resampling\nYou need to know how well your algorithms perform on unseen data. \n\n1. The best way to evaluate the performance of an algorithm would be to make predictions for new data to which you already know the answers. 2. The second best way is to use clever techniques from statistics called resampling methods that allow you to make accurate estimates for how well your algorithm will perform on new data. In this chapter you will discover how you can estimate the accuracy of your machine learning algorithms using resampling methods in Python and scikit-learn.\n\n## Evaluate Machine Learning Algorithms\nWhy can't you train your machine learning algorithm on your dataset and use predictions from this same dataset to evaluate machine learning algorithms? The simple answer is overffitting. Imagine an algorithm that remembers every observation it is shown during training. If you evaluated your machine learning algorithm on the same dataset used to train the algorithm, then an algorithm like this would have a perfect score on the training dataset. But the predictions it made on new data would be terrible. We must evaluate our machine learning algorithms on data that is not used to train the algorithm. The evaluation is an estimate that we can use to talk about how well we think the algorithm may actually do in practice. It is not a guarantee of performance. Once we estimate the performance of our algorithm, we can then re-train the final algorithm on the entire training dataset and get it ready for operational use. Next up we are going to look at four different techniques that we can use to split up our training dataset and create useful estimates of performance for our machine learning algorithms:\n\n* Train and Test Sets.\n* k-fold Cross Validation.\n* Leave One Out Cross Validation.\n* Repeated Random Test-Train Splits.\n\n# a) Split-out validation dataset\n\n### Split into Train and Test Sets\nThe simplest method that we can use to evaluate the performance of a machine learning algorithm is to use different training and testing datasets. \n\nWe can take our original dataset and split it into two parts. Train the algorithm on the train part, make predictions on the second part and evaluate the predictions against the expected results.\n\nThis algorithm evaluation technique is very fast. It is ideal for large datasets (millions of records) where there is strong evidence that both splits of the data are representative of the underlying problem. Because of the speed, it is useful to use this approach when the algorithm you are investigating is slow to train. A downside of this technique is that it can have a high variance. \n\nThis means that diferences in the training and test dataset can result in meaningful diferences in the estimate of accuracy. In the example below we split the train dataset into 70%/30% splits for training and test and evaluate the accuracy of a Logistic Regression model."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split #spliting the dataset to train and test.\nfrom sklearn.linear_model import LogisticRegression #statisctical method used\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresult = model.score(X_test, Y_test)\nprint(\"Accuracy: \", (result*100.0))\n","execution_count":129,"outputs":[{"output_type":"stream","text":"Accuracy: 91.77631578947368\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# b) Test options and evaluation metric"},{"metadata":{},"cell_type":"markdown","source":"# K-fold Cross Validation\nCross validation is an approach that you can use to estimate the performance of a machine learning algorithm with less variance than a single train-test set split. It works by splitting the dataset into k-parts (e.g. k = 5 or k = 10). Each split of the data is called a fold. The algorithm is trained on k 1 folds with one held back and tested on the held back fold. This is repeated so that each fold of the dataset is given a chance to be the held back test set. After running cross validation you end up with k diferent performance scores that you can summarize using a mean and a standard deviation. The result is a more reliable estimate of the performance of the algorithm on new data. It is more accurate because the algorithm is trained and evaluated multiple times on different data. The choice of k must allow the size of each test partition to be large enough to be a reasonable sample of the problem, whilst allowing enough repetitions of the train-test evaluation of the algorithm to provide a fair estimate of the algorithms performance on unseen data. For modest sized datasets in the thousands or tens of thousands of records, k values of 3, 5 and 10 are common."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10 #number of folds to use are 10\nseed = 42 #reproducibility\n\nkfold = KFold(n_splits=num_folds, random_state=seed)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(f\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))","execution_count":130,"outputs":[{"output_type":"stream","text":"Accuracy: (83.5359128018065, 27.08521320979506)\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Leave One Out Cross Validation\nYou can configure cross validation so that the size of the fold is 1 (k is set to the number of observations in your dataset). This variation of cross validation is called leave-one-out cross validation. The result is a large number of performance measures that can be summarized in an effort to give a more reasonable estimate of the accuracy of your model on unseen data. A downside is that it can be a computationally more expensive procedure than k-fold cross validation. In the example below we use leave-one-out cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import LeaveOneOut\nfrom sklearn.model_selection import cross_val_score\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nloocv = LeaveOneOut()\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=loocv)\nprint(\"Accuracy:\", (results.mean()*100.0, results.std()*100.0))\n","execution_count":131,"outputs":[{"output_type":"stream","text":"Accuracy: (91.4417379855168, 27.974673416141517)\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"# Repeated Random Test-Train Splits\nAnother variation on k-fold cross validation is to create a random split of the data like the train/test split described above, but repeat the process of splitting and evaluation of the algorithm multiple times, like cross validation. This has the speed of using a train/test split and the reduction in variance in the estimated performance of k-fold cross validation. You can also repeat the process many more times as needed to improve the accuracy. A down side is that repetitions may include much of the same data in the train or the test split from run to run, introducing redundancy into the evaluation. The example below splits the data into a 70%/30% train/test split and repeats the process 10 times."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import ShuffleSplit\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nn_splits = 10\ntest_size = 0.30\n\nkfold = ShuffleSplit(n_splits=n_splits, test_size=test_size, random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(\"Accuracy: \" , (results.mean()*100.0, results.std()*100.0))\n\n\nmcc = matthews_corrcoef(model.predict(X), Y)\noutput = model.predict(test_set)\nprint('MCC: ',mcc)\n\ncross_validation_report = pd.DataFrame(output)\ncross_validation_report.columns = ['CLASS']\ncross_validation_report.index.name = 'Index'\ncross_validation_report['CLASS'] = cross_validation_report['CLASS'].map({0.0:False, 1.0:True})\n\ncross_validation_report.to_csv('cross_validation_report.csv')\n\nprint(cross_validation_report['CLASS'].unique())\nprint('False: ',cross_validation_report.groupby('CLASS').size()[0].sum())\nprint('True: ',cross_validation_report.groupby('CLASS').size()[1].sum())","execution_count":132,"outputs":[{"output_type":"stream","text":"Accuracy: (91.26096491228068, 0.8132535807363438)\n","name":"stdout"},{"output_type":"error","ename":"NameError","evalue":"name 'test_set' is not defined","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)","\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mmcc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmatthews_corrcoef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_set\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'MCC: '\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmcc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mNameError\u001b[0m: name 'test_set' is not defined"]}]},{"metadata":{},"cell_type":"markdown","source":"# NOTE: What Techniques to Use When\nThis section lists some tips to consider what resampling technique to use in diferent circum- stances.\n\nGenerally k-fold cross validation is the gold standard for evaluating the performance of amachine learning algorithm on unseen data with k set to 3, 5, or 10.\nUsing a train/test split is good for speed when using a slow algorithm and producesperformance estimates with lower bias when using large datasets.\n\nTechniques like leave-one-out cross validation and repeated random splits can be usefulintermediates when trying to balance variance in the estimated performance, modeltraining speed and dataset size.\n\nThe best advice is to experiment and find a technique for your problem that is fast and produces reasonable estimates of performance that you can use to make decisions. If in doubt, use 10-fold cross validation.\n\n# Machine Learning Algorithm Performance Metrics\n\nThe metrics that you choose to evaluate your machine learning algorithms are very important.\n\n\n## Classiffication Metrics\nClassiffication problems are perhaps the most common type of machine learning problem and as such there are a myriad of metrics that can be used to evaluate predictions for these problems. In this section we will review how to use the following metrics:\n\n* Classiffication Accuracy.\n* Logarithmic Loss.\n* Area Under ROC Curve.\n* Confusion Matrix.\n* Classiffication Report.\n\n## Classiffication Accuracy\nClassiffication accuracy is the number of correct predictions made as a ratio of all predictions made. This is the most common evaluation metric for classification problems, it is also the most misused. It is really only suitable when there are an equal number of observations in each class (which is rarely the case) and that all predictions and prediction errors are equally important, which is often not the case. Below is an example of calculating classiffication accuracy."},{"metadata":{"trusted":true},"cell_type":"code","source":"#classiffication accuracy.\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LogisticRegression()\nscoring = 'accuracy'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"Accuracy:\", (results.mean(), results.std()))\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nclassification_accuracy_report = pd.DataFrame(output)\nclassification_accuracy_report.columns = ['CLASS']\nclassification_accuracy_report.index.name = 'Index'\nclassification_accuracy_report['CLASS'] = classification_accuracy_report['CLASS'].map({0.0:False, 1.0:True})\n\nclassification_accuracy_report.to_csv('classification_accuracy_report.cp.csv')\n\nprint(classification_accuracy_report['CLASS'].unique())\nprint('False: ',classification_accuracy_report.groupby('CLASS').size()[0].sum())\nprint('True: ',classification_accuracy_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Confusion Matrix\nThe confusion matrix is a handy presentation of the accuracy of a model with two or more classes. The table presents predictions on the x-axis and accuracy outcomes on the y-axis. The cells of the table are the number of predictions made by a machine learning algorithm. For example, a machine learning algorithm can predict 0 or 1 and each prediction may actually have been a 0 or 1. Predictions for 0 that were actually 0 appear in the cell for prediction = 0 and actual = 0, whereas predictions for 0 that were actually 1 appear in the cell for prediction = 0 and actual = 1. And so on."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import confusion_matrix\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\nseed = 7\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\n\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\npredicted = model.predict(X_test)\nmatrix = confusion_matrix(Y_test, predicted)\nprint(matrix)\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nconfusion_matrix_report = pd.DataFrame(output)\nconfusion_matrix_report.columns = ['CLASS']\nconfusion_matrix_report.index.name = 'Index'\nconfusion_matrix_report['CLASS'] = confusion_matrix_report['CLASS'].map({0.0:False, 1.0:True})\n\nconfusion_matrix_report.to_csv('confusion_matrix_report.csv')\n\nprint(confusion_matrix_report['CLASS'].unique())\nprint('False: ',confusion_matrix_report.groupby('CLASS').size()[0].sum())\nprint('True: ',confusion_matrix_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication Report\nThe scikit-learn library provides a convenience report when working on classiffication problems to give you a quick idea of the accuracy of a model using a number of measures. The classification report() function displays the precision, recall, F1-score and support for each class. "},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import classification_report\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\ntest_size = 0.30\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,random_state=42)\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\npredicted = model.predict(X_test)\nreport = classification_report(Y_test, predicted)\nprint(report)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nClassification_report = pd.DataFrame(output)\nClassification_report.columns = ['CLASS']\nClassification_report.index.name = 'Index'\nClassification_report['CLASS'] = Classification_report['CLASS'].map({0.0:False, 1.0:True})\n\nClassification_report.to_csv('Classification_report.csv')\n\nprint(Classification_report['CLASS'].unique())\nprint('False: ',Classification_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Classification_report.groupby('CLASS').size()[1].sum())\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Spot-Check Classiffication Algorithms.\nSpot-checking is a way of discovering which algorithms perform well on your machine learning problem. You cannot know which algorithms are best suited to your problem beforehand. You must trial a number of \nmethods and focus attention on those that prove themselves the most promising.\n\n1. How to spot-check machine learning algorithms on a classification problem.\n2. How to spot-check two linear classification algorithms.\n3. How to spot-check four nonlinear classification algorithms.\n\n## Algorithm Spot-Checking\nYou cannot know which algorithm will work best on your dataset beforehand. You must use trial and error to discover a shortlist of algorithms that do well on your problem that you can then double down on and tune further. I call this process spot-checking. The question is not: What algorithm should I use on my dataset? Instead it is: What algorithms should I spot-check on my dataset? You can guess at what algorithms might do well on your dataset, and this can be a good starting point. I recommend trying a mixture of algorithms and see what is good at picking out the structure in your data. Below are some suggestions when spot-checking algorithms on your dataset:\n\nTry a mixture of algorithm representations (e.g. instances and trees).\n\nTry a mixture of learning algorithms (e.g. di\u000berent algorithms for learning the same type of representation).\n\nTry a mixture of modeling types (e.g. linear and nonlinear functions or parametric and nonparametric).\n\nAlgorithms Overview\nWe are going to take a look at six classification algorithms that you can spot-check on your dataset. Starting with two linear machine learning algorithms:\n\nLogistic Regression.\nLinear Discriminant Analysis.\nThen looking at four nonlinear machine learning algorithms:\n\nk-Nearest Neighbors.\nNaive Bayes.\nClassi\fcation and Regression Trees.\nSupport Vector Machines.\nLinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use two linear machine learning algorithms: logistic regression and linear discriminant analysis.\n\nLogistic Regression\nLogistic regression assumes a Gaussian distribution for the numeric input variables and can model binary classiffication problems. You can construct a logistic regression model using the LogisticRegression class."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Logistic Regression Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LogisticRegression()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLogisticRegression = pd.DataFrame(output)\nLogisticRegression.columns = ['CLASS']\nLogisticRegression.index.name = 'Index'\nLogisticRegression['CLASS'] = LogisticRegression['CLASS'].map({0.0:False, 1.0:True})\n\nLogisticRegression.to_csv('LogisticRegression.csv')\n\nprint(LogisticRegression['CLASS'].unique())\nprint('False: ',LogisticRegression.groupby('CLASS').size()[0].sum())\nprint('True: ',LogisticRegression.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Linear Discriminant Analysis\nLinear Discriminant Analysis or LDA is a statistical technique for binary and multiclass classiffication. It too assumes a Gaussian distribution for the numerical input variables. You can construct an LDA model using the LinearDiscriminantAnalysis class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearDiscriminantAnalysis()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nLinearDiscriminantAnalysis = pd.DataFrame(output)\nLinearDiscriminantAnalysis.columns = ['CLASS']\nLinearDiscriminantAnalysis.index.name = 'Index'\nLinearDiscriminantAnalysis['CLASS'] = LinearDiscriminantAnalysis['CLASS'].map({0.0:False, 1.0:True})\n\nLinearDiscriminantAnalysis.to_csv('LinearDiscriminantAnalysis.csv')\n\nprint(LinearDiscriminantAnalysis['CLASS'].unique())\nprint('False: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[0].sum())\nprint('True: ',LinearDiscriminantAnalysis.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Nonlinear Machine Learning Algorithms\nThis section demonstrates minimal recipes for how to use 4 nonlinear machine learning algorithms.\n\n## k-Nearest Neighbors\nThe k-Nearest Neighbors algorithm (or KNN) uses a distance metric to find the k most similar instances in the training data for a new instance and takes the mean outcome of the neighbors as the prediction. You can construct a KNN model using the KNeighborsClassifier class."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = KNeighborsClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nk_nearest = pd.DataFrame(output)\nk_nearest.columns = ['CLASS']\nk_nearest.index.name = 'Index'\nk_nearest['CLASS'] = k_nearest['CLASS'].map({0.0:False, 1.0:True})\n\nk_nearest.to_csv('k_nearest.csv')\n\nprint(k_nearest['CLASS'].unique())\nprint('False: ',k_nearest.groupby('CLASS').size()[0].sum())\nprint('True: ',k_nearest.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Naive Bayes\nNaive Bayes calculates the probability of each class and the conditional probability of each class given each input value. These probabilities are estimated for new data and multiplied together, assuming that they are all independent (a simple or naive assumption). When working with real-valued data, a Gaussian distribution is assumed to easily estimate the probabilities for input variables using the Gaussian Probability Density Function. You can construct a Naive Bayes model using the GaussianNB class4."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.naive_bayes import GaussianNB\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = GaussianNB()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nnaive_bayes = pd.DataFrame(output)\nnaive_bayes.columns = ['CLASS']\nnaive_bayes.index.name = 'Index'\nnaive_bayes['CLASS'] = naive_bayes['CLASS'].map({0.0:False, 1.0:True})\n\nnaive_bayes.to_csv('naive_bayes_nb.csv')\n\nprint(naive_bayes['CLASS'].unique())\nprint('False: ',naive_bayes.groupby('CLASS').size()[0].sum())\nprint('True: ',naive_bayes.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nDecisionTree_report = pd.DataFrame(output)\nDecisionTree_report.columns = ['CLASS']\nDecisionTree_report.index.name = 'Index'\nDecisionTree_report['CLASS'] = DecisionTree_report['CLASS'].map({0.0:False, 1.0:True})\n\nDecisionTree_report.to_csv('DecisionTree_report_dt.csv')\n\nprint(DecisionTree_report['CLASS'].unique())\nprint('False: ',DecisionTree_report.groupby('CLASS').size()[0].sum())\nprint('True: ',DecisionTree_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Support Vector Machines\nSupport Vector Machines (or SVM) seek a line that best separates two classes. Those data instances that are closest to the line that best separates the classes are called support vectors and in uence where the line is placed. SVM has been extended to support multiple classes. Of particular importance is the use of di\u000berent kernel functions via the kernel parameter."},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10)\nmodel = SVC()\nscoring = 'acuracy'\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nfinalreport1 = pd.DataFrame(output)\nfinalreport1.columns = ['CLASS']\nfinalreport1.index.name = 'Index'\nfinalreport1['CLASS'] = finalreport1['CLASS'].map({0.0:False, 1.0:True})\n\nfinalreport1.to_csv('finalreport1_sv.csv')\n\nprint(finalreport1['CLASS'].unique())\nprint('False: ',finalreport1.groupby('CLASS').size()[0].sum())\nprint('True: ',finalreport1.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Regression Metrics\nIn this section will review 3 of the most common metrics for evaluating predictions on regression\nmachine learning problems:\n- Mean Absolute Error.\n- Mean Squared Error.\n- R2.\n\n## Mean Absolute Error\nThe Mean Absolute Error (or MAE) is the sum of the absolute di\u000berences between predictions\nand actual values. It gives an idea of how wrong the predictions were. The measure gives an\nidea of the magnitude of the error, but no idea of the direction (e.g. over or under predicting).\nThe example below demonstrates calculating mean absolute error on the Boston house price\ndataset."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'neg_mean_absolute_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MAE:\",(results.mean(), results.std()))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Mean Squared Error\nThe Mean Squared Error (or MSE) is much like the mean absolute error in that it provides a gross idea of the magnitude of error. Taking the square root of the mean squared error converts the units back to the original units of the output variable and can be meaningful for description and presentation. This is called the Root Mean Squared Error (or RMSE). The example below provides a demonstration of calculating mean squared error."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression MSE\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nnum_folds = 10\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'neg_mean_squared_error'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"MSE:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"This metric too is inverted so that the results are increasing. Remember to take the absolute value before taking the square root if you are interested in calculating the RMSE.\n\n## R2 Metric\nThe R2 (or R Squared) metric provides an indication of the goodness of fit of a set of predictions to the actual values. In statistical literature this measure is called the coefficient of determination. This is a value between 0 and 1 for no-fit and perfect fit respectively. The example below provides a demonstration of calculating the mean R2 for a set of predictions."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Cross Validation Regression R^2\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LinearRegression\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nkfold = KFold(n_splits=10, random_state=42)\nmodel = LinearRegression()\nscoring = 'r2'\nresults = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\nprint(\"R^2M:\",(results.mean(), results.std()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Classiffication and Regression Trees\nClassiffication and Regression Trees (CART or just decision trees) construct a binary tree from the training data. Split points are chosen greedily by evaluating each attribute and each value of each attribute in the training data in order to minimize a cost function (like the Gini index). You can construct a CART model using the DecisionTreeClassifier class"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\nmodel = DecisionTreeClassifier()\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# d) Compare Algorithms\n## Compare Machine Learning Algorithms\nIt is important to compare the performance of multiple di\u000berent machine learning algorithms\nconsistently. In this chapter you will discover how you can create a test harness to compare\nmultiple different machine learning algorithms in Python with scikit-learn. You can use this\ntest harness as a template on your own machine learning problems and add more and different\nalgorithms to compare. After completing this lesson you will know:\n\n1. How to formulate an experiment to directly compare machine learning algorithms.\n2. A reusable template for evaluating the performance of multiple algorithms on one dataset.\n3. How to report and visualize the results when comparing algorithm performance.\n\n\n### Choose The Best Machine Learning Model\nWhen you work on a machine learning project, you often end up with multiple good models\nto choose from. Each model will have different performance characteristics. Using resampling\nmethods like cross validation, you can get an estimate for how accurate each model may be on\nunseen data. You need to be able to use these estimates to choose one or two best models from\nthe suite of models that you have created.\nWhen you have a new dataset, it is a good idea to visualize the data using different techniques\nin order to look at the data from diferent perspectives. The same idea applies to model selection.\nYou should use a number of di\u000berent ways of looking at the estimated accuracy of your machine\nlearning algorithms in order to choose the one or two algorithm to finalize. A way to do this is\nto use visualization methods to show the average accuracy, variance and other properties of the\ndistribution of model accuracies. In the next section you will discover exactly how you can do\nthat in Python with scikit-learn.\n\n\n### Compare Machine Learning Algorithms Consistently\nThe key to a fair comparison of machine learning algorithms is ensuring that each algorithm is\nevaluated in the same way on the same data. You can achieve this by forcing each algorithm to be evaluated on a consistent test harness. In the example below six different classiffication\nalgorithms are compared on a single dataset:\n\n- Logistic Regression.\n- Linear Discriminant Analysis.\n- k-Nearest Neighbors.\n- Classiffication and Regression Trees.\n- Naive Bayes.\n- Support Vector Machines.\n\nThe dataset is the Pima Indians onset of diabetes problem. The problem has two classes and\neight numeric input variables of varying scales. The 10-fold cross validation procedure is used to\nevaluate each algorithm, importantly con\fgured with the same random seed to ensure that the\nsame splits to the training data are performed and that each algorithm is evaluated in precisely\nthe same way. Each algorithm is given a short name, useful for summarizing results afterward."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Compare Algorithms\nfrom pandas import read_csv\nfrom matplotlib import pyplot\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\nfrom sklearn.metrics import matthews_corrcoef\n\n# load dataset\narray = Train.values\n\n#split the dataset \nX = array[:,0:11]\nY = array[:,11]\n\n# prepare models and add them to a list\nmodels = []\nmodels.append(('LR', LogisticRegression()))\nmodels.append(('LDA', LinearDiscriminantAnalysis()))\nmodels.append(('KNN', KNeighborsClassifier()))\nmodels.append(('CART', DecisionTreeClassifier()))\nmodels.append(('NB', GaussianNB()))\nmodels.append(('SVM', SVC()))\n\n# evaluate each model in turn\nresults = []\nnames = []\nscoring = 'accuracy'\n\nfor name, model in models:\n kfold = KFold(n_splits=10, random_state=42)\n cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)\n results.append(cv_results)\n names.append(name)\n msg = (name, cv_results.mean(), cv_results.std())\n print(msg)\n\n# boxplot algorithm comparison\nfig = pyplot.figure()\nfig.suptitle('Algorithm Comparison')\nax = fig.add_subplot(111)\npyplot.boxplot(results)\nax.set_xticklabels(names)\npyplot.show()\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\ncompare_testmethods_report = pd.DataFrame(output)\ncompare_testmethods_report.columns = ['CLASS']\ncompare_testmethods_report.index.name = 'Index'\ncompare_testmethods_report['CLASS'] = compare_testmethods_report['CLASS'].map({0.0:False, 1.0:True})\n\ncompare_testmethods_report.to_csv('compare_testmethods_report.csv')\n\nprint(compare_testmethods_report['CLASS'].unique())\nprint('False: ',compare_testmethods_report.groupby('CLASS').size()[0].sum())\nprint('True: ',compare_testmethods_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Automate Machine Learning Workflows with Pipelines\n\nThere are standard work\nows in a machine learning project that can be automated. In Python\nscikit-learn, Pipelines help to clearly define and automate these work\nows. In this chapter you\nwill discover Pipelines in scikit-learn and how you can automate common machine learning\nwork\nows. After completing this lesson you will know:\n\n1. How to use pipelines to minimize data leakage.\n2. How to construct a data preparation and modeling pipeline.\n3. How to construct a feature extraction and modeling pipeline.\n\n### Automating Machine Learning Workflows\nThere are standard work\nows in applied machine learning. Standard because they overcome\ncommon problems like data leakage in your test harness. Python scikit-learn provides a Pipeline\nutility to help automate machine learning work\nows. Pipelines work by allowing for a linear\nsequence of data transforms to be chained together culminating in a modeling process that can\nbe evaluated.\n\nThe goal is to ensure that all of the steps in the pipeline are constrained to the data available\nfor the evaluation, such as the training dataset or each fold of the cross validation procedure.\nYou can learn more about Pipelines in scikit-learn by reading the Pipeline section1 of the user\nguide. You can also review the API documentation for the Pipeline and FeatureUnion classes\nand the pipeline module2.\n\n### Data Preparation and Modeling Pipeline\nAn easy trap to fall into in applied machine learning is leaking data from your training dataset\nto your test dataset. To avoid this trap you need a robust test harness with strong separation of training and testing. This includes data preparation. Data preparation is one easy way to leak\nknowledge of the whole training dataset to the algorithm. For example, preparing your data\nusing normalization or standardization on the entire training dataset before learning would not\nbe a valid test because the training dataset would have been in\nuenced by the scale of the data\nin the test set.\n\n\nPipelines help you prevent data leakage in your test harness by ensuring that data preparation\nlike standardization is constrained to each fold of your cross validation procedure. \n1. Standardize the data.\n2. Learn a Linear Discriminant Analysis model.\n\nThe pipeline is then evaluated using 10-fold cross validation."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Create a pipeline that standardizes the data then creates a model\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.metrics import matthews_corrcoef\n\n# load data\n\n#dataframe = read_csv('diabetes.csv')\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\n# create pipeline\nestimators = []\nestimators.append(('standardize', StandardScaler()))\nestimators.append(('lda', LinearDiscriminantAnalysis()))\nmodel = Pipeline(estimators)\n\n\n# evaluate pipeline\nkfold = KFold(n_splits=10, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nstandarzied_pipeline_report = pd.DataFrame(output)\nstandarzied_pipeline_report.columns = ['CLASS']\nstandarzied_pipeline_report.index.name = 'Index'\nstandarzied_pipeline_report['CLASS'] = standarzied_pipeline_report['CLASS'].map({0.0:False, 1.0:True})\n\nstandarzied_pipeline_report.to_csv('standarzied_pipeline_report.csv')\n\nprint(standarzied_pipeline_report['CLASS'].unique())\nprint('False: ',standarzied_pipeline_report.groupby('CLASS').size()[0].sum())\nprint('True: ',standarzied_pipeline_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 5. Improve Accuracy\n# a) Algorithm Tuning\n# b) Ensembles\n\n# Improve Performance with Ensembles\n\nEnsembles can give you a boost in accuracy on your dataset. In this chapter you will discover\nhow you can create some of the most powerful types of ensembles in Python using scikit-learn.\nThis lesson will step you through Boosting, Bagging and Majority Voting and show you how you\ncan continue to ratchet up the accuracy of the models on your own datasets. After completing\nthis lesson you will know:\n\n1. How to use bagging ensemble methods such as bagged decision trees, random forest and extra trees.\n2. How to use boosting ensemble methods such as AdaBoost and stochastic gradient boosting.\n3. How to use voting ensemble methods to combine the predictions from multiple algorithms.\n\n### Combine Models Into Ensemble Predictions\nThe three most popular methods for combining the predictions from different models are:\n\n- Bagging. Building multiple models (typically of the same type) from different subsamples of the training dataset.\n- Boosting. Building multiple models (typically of the same type) each of which learns to fix the prediction errors of a prior model in the sequence of models.\n- Voting. Building multiple models (typically of di\u000bering types) and simple statistics (like calculating the mean) are used to combine predictions.\n\nThis assumes you are generally familiar with machine learning algorithms and ensemble\nmethods and will not go into the details of how the algorithms work or their parameters.\nThe Pima Indians onset of Diabetes dataset is used to demonstrate each algorithm. Each\nensemble algorithm is demonstrated using 10-fold cross validation and the classiffication accuracy\nperformance metric.\n"},{"metadata":{},"cell_type":"markdown","source":"# Boosting Algorithms\nBoosting ensemble algorithms creates a sequence of models that attempt to correct the mistakes\nof the models before them in the sequence. Once created, the models make predictions which\nmay be weighted by their demonstrated accuracy and the results are combined to create a final\noutput prediction. The two most common boosting ensemble machine learning algorithms are:\n\n- AdaBoost.\n- Stochastic Gradient Boosting.\n\n\n### AdaBoost\nAdaBoost was perhaps the \frst successful boosting ensemble algorithm. It generally works\nby weighting instances in the dataset by how easy or dificult they are to classify, allowing\nthe algorithm to pay or less attention to them in the construction of subsequent models. You\ncan construct an AdaBoost model for classi\fcation using the AdaBoostClassifier class4. The\nexample below demonstrates the construction of 30 decision trees in sequence using the AdaBoost\nalgorithm."},{"metadata":{"trusted":true},"cell_type":"code","source":"# AdaBoost Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 30\n\n\nkfold = KFold(n_splits=10, random_state=seed)\n\nmodel = AdaBoostClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nAdaBoost_report = pd.DataFrame(output)\nAdaBoost_report.columns = ['CLASS']\nAdaBoost_report.index.name = 'Index'\nAdaBoost_report['CLASS'] = AdaBoost_report['CLASS'].map({0.0:False, 1.0:True})\n\nAdaBoost_report.to_csv('AdaBoost_report.csv')\n\nprint(AdaBoost_report['CLASS'].unique())\nprint('False: ',AdaBoost_report.groupby('CLASS').size()[0].sum())\nprint('True: ',AdaBoost_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles. You can construct a\nGradient Boosting model for classiffication using the GradientBoostingClassifier class5. The\nexample below demonstrates Stochastic Gradient Boosting for classification with 100 trees"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## XGB"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic X Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom xgboost import XGBClassifier\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed = 42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = XGBClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Voting Ensemble\nVoting is one of the simplest ways of combining the predictions from multiple machine learning\nalgorithms. It works by first creating two or more standalone models from your training dataset.\nA Voting Classiffier can then be used to wrap your models and average the predictions of the\nsub-models when asked to make predictions for new data. The predictions of the sub-models can\nbe weighted, but specifying the weights for classiffiers manually or even heuristically is difficult.\nMore advanced methods can learn how to best weight the predictions from sub-models, but this\nis called stacking (stacked aggregation) and is currently not provided in scikit-learn.\nYou can create a voting ensemble model for classiffication using the VotingClassifier\nclass6. The code below provides an example of combining the predictions of logistic regression,\nclassiffication and regression trees and support vector machines together for a classiffication\nproblem."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Voting Ensemble for Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom xgboost import XGBClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import VotingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\nkfold = KFold(n_splits=10, random_state=42)\n\n# create the sub models\nestimators = []\nmodel1 = LogisticRegression()\nestimators.append(('logistic', model1))\n\nmodel2 = DecisionTreeClassifier()\nestimators.append(('cart', model2))\n\nmodel3 = SVC()\nestimators.append(('svm', model3))\n\nmodel4 = XGBClassifier()\nestimators.append(('xgb', model4))\n\nmodel5 = RandomForestClassifier()\nestimators.append(('rfc', model5))\n\n# create the ensemble model\nensemble = VotingClassifier(estimators)\nresults = cross_val_score(ensemble, X, Y, cv=kfold)\nprint(results.mean())\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nVoting_Ensemble_report = pd.DataFrame(output)\nVoting_Ensemble_report.columns = ['CLASS']\nVoting_Ensemble_report.index.name = 'Index'\nVoting_Ensemble_report['CLASS'] = Voting_Ensemble_report['CLASS'].map({0.0:False, 1.0:True})\n\nVoting_Ensemble_report.to_csv('Voting_Ensemble_report.csv')\n\nprint(Voting_Ensemble_report['CLASS'].unique())\nprint('False: ',Voting_Ensemble_report.groupby('CLASS').size()[0].sum())\nprint('True: ',Voting_Ensemble_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Extra Trees\nExtra Trees are another modi\fcation of bagging where random trees are constructed from\nsamples of the training dataset. You can construct an Extra Trees model for classiffication using\nthe ExtraTreesClassifier class3. The example below provides a demonstration of extra trees\nwith the number of trees set to 100 and splits chosen from 7 random features."},{"metadata":{"trusted":true},"cell_type":"code","source":"from pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import ExtraTreesClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n#let's read the data\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nnum_trees = 100\nmax_features = 7\n\nkfold = KFold(n_splits=10, random_state=42)\n\nmodel = ExtraTreesClassifier(n_estimators=num_trees, max_features=max_features)\n\nresults = cross_val_score(model, X, Y, cv=kfold)\n\nprint(results.mean())\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nExtra_tree_report = pd.DataFrame(output)\nExtra_tree_report.columns = ['CLASS']\nExtra_tree_report.index.name = 'Index'\nExtra_tree_report['CLASS'] = Extra_tree_report['CLASS'].map({0.0:False, 1.0:True})\n\nExtra_tree_report.to_csv('Extra_tree_report.csv')\n\nprint(Extra_tree_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Stochastic Gradient Boosting\nStochastic Gradient Boosting (also called Gradient Boosting Machines) are one of the most\nsophisticated ensemble techniques. It is also a technique that is proving to be perhaps one of\nthe best techniques available for improving performance via ensembles."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Stochastic Gradient Boosting Classification\nfrom pandas import read_csv\nfrom sklearn.model_selection import KFold\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\n\nX = array[:,0:11]\nY = array[:,11]\n\nseed =42\nnum_trees = 100\n\nkfold = KFold(n_splits=10, random_state=seed)\nmodel = GradientBoostingClassifier(n_estimators=num_trees, random_state=42)\nresults = cross_val_score(model, X, Y, cv=kfold)\nprint(results.mean())\n\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\nStochastic_report = pd.DataFrame(output)\nStochastic_report.columns = ['CLASS']\nStochastic_report.index.name = 'Index'\nStochastic_report['CLASS'] = Stochastic_report['CLASS'].map({0.0:False, 1.0:True})\n\nStochastic_report.to_csv('Stochastic_report.csv')\n\nprint(Stochastic_report.groupby('CLASS').size()[1].sum())\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with pickle\nPickle is the standard way of serializing objects in Python. You can use the pickle1 operation\nto serialize your machine learning algorithms and save the serialized format to a file. Later you\ncan load this file to deserialize your model and use it to make new predictions. The example\nbelow demonstrates how you can train a logistic regression model on data set and save the model to file and load it to make predictions on the unseen test set."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using Pickle\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom pickle import dump\nfrom pickle import load\nfrom sklearn.metrics import matthews_corrcoef\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\n\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=42)\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\nfilename = 'finalized_model2.sav'\ndump(model, open(filename, 'wb'))\n\n# some time later...\n# load the model from disk\nloaded_model = load(open(filename, 'rb'))\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\npickle_report = pd.DataFrame(output)\npickle_report.columns = ['CLASS']\npickle_report.index.name = 'Index'\npickle_report['CLASS'] = pickle_report['CLASS'].map({0.0:False, 1.0:True})\n\npickle_report.to_csv('pickle.csv')\n\nprint(pickle_report['CLASS'].unique())\nprint('False: ',pickle_report.groupby('CLASS').size()[0].sum())\nprint('True: ',pickle_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Finalize Your Model with Joblib\nThe Joblib2 library is part of the SciPy ecosystem and provides utilities for pipelining Python\njobs. It provides utilities for saving and loading Python objects that make use of NumPy data\nstructures, efficiently3. This can be useful for some machine learning algorithms that require a\nlot of parameters or store the entire dataset (e.g. k-Nearest Neighbors). The example below\ndemonstrates how you can train a logistic regression model on the dataset, save the model to file using Joblib and load it to make predictions on the unseen test\nset."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Save Model Using joblib\nfrom pandas import read_csv\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.externals.joblib import dump\nfrom sklearn.externals.joblib import load\nfrom sklearn.metrics import matthews_corrcoef\n\n\narray = Train.values\nX = array[:,0:11]\nY = array[:,11]\nX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.30, random_state=42)\n\n# Fit the model on 30%\nmodel = LogisticRegression()\nmodel.fit(X_train, Y_train)\n\n# save the model to disk\n\ndump(model, filename)\n\n# some time later...\n# load the model from disk\nloaded_model = load(filename)\nresult = loaded_model.score(X_test, Y_test)\nprint(result)\n\n\ntest_set = Test.values\nmodel.fit(X, Y)\noutput = model.predict(test_set)\n\nmcc = matthews_corrcoef(model.predict(X), Y)\nprint('MCC: ',mcc)\n\njoblib_report = pd.DataFrame(output)\njoblib_report.columns = ['CLASS']\njoblib_report.index.name = 'Index'\njoblib_report['CLASS'] = joblib_report['CLASS'].map({0.0:False, 1.0:True})\n\njoblib_report.to_csv('joblib_report.csv')\n\nprint(joblib_report['CLASS'].unique())\nprint('False: ',joblib_report.groupby('CLASS').size()[0].sum())\nprint('True: ',joblib_report.groupby('CLASS').size()[1].sum())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# REFFERENCES\n* https://www.shanelynn.ie/python-pandas-read_csv-load-data-from-csv-files/\n* https://www.shanelynn.ie/using-pandas-dataframe-creating-editing-viewing-data-in-python/\n* https://towardsdatascience.com/introduction-to-data-visualization-in-python-89a54c97fbed\n* https://www.geeksforgeeks.org/python-pandas-dataframe-skew/\n* https://scikit-learn.org/stable/modules/preprocessing.html\n* https://towardsdatascience.com/feature-selection-techniques-in-machine-learning-with-python-f24e7da3f36e\n* https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html\n* https://data-flair.training/blogs/train-test-set-in-python-ml/\n* https://machinelearningmastery.com/k-fold-cross-validation/\n* https://medium.com/thalus-ai/performance-metrics-for-classification-problems-in-machine-learning-part-i-b085d432082b\n* https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html\n* https://www.geeksforgeeks.org/k-nearest-neighbor-algorithm-in-python/\n* https://machinelearningmastery.com/naive-bayes-classifier-scratch-python/\n* https://scikit-learn.org/stable/modules/tree.html\n* https://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_absolute_error.html\n* https://scikit-learn.org/stable/modules/generated/sklearn.metrics.matthews_corrcoef.html\n* https://machinelearningmastery.com/save-load-machine-learning-models-python-scikit-learn/\n* https://machinelearningmastery.com/stochastic-gradient-boosting-xgboost-scikit-learn-python/\n"},{"metadata":{},"cell_type":"markdown","source":"# END OF THE WORK"}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4} \ No newline at end of file