From 22b05b3422df5b65e8cbdd6590ab6190c2057f83 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Thu, 17 Oct 2019 14:16:25 +0200 Subject: [PATCH] update on credit card data --- doc/pub/LogReg/html/._LogReg-bs000.html | 6 +- doc/pub/LogReg/html/._LogReg-bs001.html | 4 +- doc/pub/LogReg/html/._LogReg-bs002.html | 4 +- doc/pub/LogReg/html/._LogReg-bs003.html | 4 +- doc/pub/LogReg/html/._LogReg-bs004.html | 4 +- doc/pub/LogReg/html/._LogReg-bs005.html | 4 +- doc/pub/LogReg/html/._LogReg-bs006.html | 4 +- doc/pub/LogReg/html/._LogReg-bs007.html | 4 +- doc/pub/LogReg/html/._LogReg-bs008.html | 4 +- doc/pub/LogReg/html/._LogReg-bs009.html | 4 +- doc/pub/LogReg/html/._LogReg-bs010.html | 4 +- doc/pub/LogReg/html/._LogReg-bs011.html | 4 +- doc/pub/LogReg/html/._LogReg-bs012.html | 4 +- doc/pub/LogReg/html/._LogReg-bs013.html | 4 +- doc/pub/LogReg/html/._LogReg-bs014.html | 4 +- doc/pub/LogReg/html/._LogReg-bs015.html | 4 +- doc/pub/LogReg/html/._LogReg-bs016.html | 4 +- doc/pub/LogReg/html/._LogReg-bs017.html | 212 +------------------ doc/pub/LogReg/html/._LogReg-bs018.html | 102 ++++++++- doc/pub/LogReg/html/LogReg-bs.html | 6 +- doc/pub/LogReg/html/LogReg-reveal.html | 135 ++---------- doc/pub/LogReg/html/LogReg-solarized.html | 134 ++---------- doc/pub/LogReg/html/LogReg.html | 134 ++---------- doc/pub/LogReg/ipynb/LogReg.ipynb | 151 +++---------- doc/pub/LogReg/ipynb/ipynb-LogReg-src.tar.gz | Bin 191 -> 191 bytes doc/pub/LogReg/pdf/LogReg-minted.pdf | Bin 224657 -> 225716 bytes doc/src/LogisticRegression/LogReg.do.txt | 127 ++--------- 27 files changed, 243 insertions(+), 828 deletions(-) diff --git a/doc/pub/LogReg/html/._LogReg-bs000.html b/doc/pub/LogReg/html/._LogReg-bs000.html index 91034fec6..dfe90dfca 100644 --- a/doc/pub/LogReg/html/._LogReg-bs000.html +++ b/doc/pub/LogReg/html/._LogReg-bs000.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • @@ -152,7 +152,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 9, 2019

    +

    Oct 17, 2019


    diff --git a/doc/pub/LogReg/html/._LogReg-bs001.html b/doc/pub/LogReg/html/._LogReg-bs001.html index 675312c5f..824c211c1 100644 --- a/doc/pub/LogReg/html/._LogReg-bs001.html +++ b/doc/pub/LogReg/html/._LogReg-bs001.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({

  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs002.html b/doc/pub/LogReg/html/._LogReg-bs002.html index e6c577b33..7097fb415 100644 --- a/doc/pub/LogReg/html/._LogReg-bs002.html +++ b/doc/pub/LogReg/html/._LogReg-bs002.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs003.html b/doc/pub/LogReg/html/._LogReg-bs003.html index c5d9ed119..8db00fc7b 100644 --- a/doc/pub/LogReg/html/._LogReg-bs003.html +++ b/doc/pub/LogReg/html/._LogReg-bs003.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs004.html b/doc/pub/LogReg/html/._LogReg-bs004.html index 47474cd4d..6a4911b55 100644 --- a/doc/pub/LogReg/html/._LogReg-bs004.html +++ b/doc/pub/LogReg/html/._LogReg-bs004.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs005.html b/doc/pub/LogReg/html/._LogReg-bs005.html index c948727b5..75aac686f 100644 --- a/doc/pub/LogReg/html/._LogReg-bs005.html +++ b/doc/pub/LogReg/html/._LogReg-bs005.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs006.html b/doc/pub/LogReg/html/._LogReg-bs006.html index c96a03492..b8d4885f8 100644 --- a/doc/pub/LogReg/html/._LogReg-bs006.html +++ b/doc/pub/LogReg/html/._LogReg-bs006.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs007.html b/doc/pub/LogReg/html/._LogReg-bs007.html index 4dddc8c43..874b05796 100644 --- a/doc/pub/LogReg/html/._LogReg-bs007.html +++ b/doc/pub/LogReg/html/._LogReg-bs007.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs008.html b/doc/pub/LogReg/html/._LogReg-bs008.html index ee946a1da..b53404eef 100644 --- a/doc/pub/LogReg/html/._LogReg-bs008.html +++ b/doc/pub/LogReg/html/._LogReg-bs008.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs009.html b/doc/pub/LogReg/html/._LogReg-bs009.html index 17e64a71b..777f5fb7c 100644 --- a/doc/pub/LogReg/html/._LogReg-bs009.html +++ b/doc/pub/LogReg/html/._LogReg-bs009.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs010.html b/doc/pub/LogReg/html/._LogReg-bs010.html index 283f54f0a..42c8317e8 100644 --- a/doc/pub/LogReg/html/._LogReg-bs010.html +++ b/doc/pub/LogReg/html/._LogReg-bs010.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs011.html b/doc/pub/LogReg/html/._LogReg-bs011.html index 445ffe058..5af7c5622 100644 --- a/doc/pub/LogReg/html/._LogReg-bs011.html +++ b/doc/pub/LogReg/html/._LogReg-bs011.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs012.html b/doc/pub/LogReg/html/._LogReg-bs012.html index 79af9605f..4b36c3885 100644 --- a/doc/pub/LogReg/html/._LogReg-bs012.html +++ b/doc/pub/LogReg/html/._LogReg-bs012.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs013.html b/doc/pub/LogReg/html/._LogReg-bs013.html index 2db41aa30..91c96e674 100644 --- a/doc/pub/LogReg/html/._LogReg-bs013.html +++ b/doc/pub/LogReg/html/._LogReg-bs013.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs014.html b/doc/pub/LogReg/html/._LogReg-bs014.html index 4c86df9a3..638f66ebb 100644 --- a/doc/pub/LogReg/html/._LogReg-bs014.html +++ b/doc/pub/LogReg/html/._LogReg-bs014.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs015.html b/doc/pub/LogReg/html/._LogReg-bs015.html index f5022e2bb..dab9597c5 100644 --- a/doc/pub/LogReg/html/._LogReg-bs015.html +++ b/doc/pub/LogReg/html/._LogReg-bs015.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs016.html b/doc/pub/LogReg/html/._LogReg-bs016.html index bd33a73b8..25597063d 100644 --- a/doc/pub/LogReg/html/._LogReg-bs016.html +++ b/doc/pub/LogReg/html/._LogReg-bs016.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • diff --git a/doc/pub/LogReg/html/._LogReg-bs017.html b/doc/pub/LogReg/html/._LogReg-bs017.html index c65a62404..c2cd3861a 100644 --- a/doc/pub/LogReg/html/._LogReg-bs017.html +++ b/doc/pub/LogReg/html/._LogReg-bs017.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({
  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • @@ -135,210 +135,18 @@ MathJax.Hub.Config({

    The Credit Card example

    Here we use the the credit card data. -The data are from an extensive database from Taiwan and include more than ten predictors. More text and clean up of code will be added. +The data are from an extensive database from Taiwan and include more than ten predictors. +

    +For categorical data -Scikit-Learn- provides a so-called one-hot encoder. +This is called one-hot +encoding, because only one attribute will be equal to 1 (hot), while the others will be 0 (cold). +Scikit-Learn provides a OneHotEncoder encoder to convert integer categorical values into one-hot

    -

    import pandas as pd
    -import os
    -import numpy as np
    -
    -
    -from sklearn.model_selection import train_test_split
    -from sklearn.preprocessing import OneHotEncoder
    -from sklearn.compose import ColumnTransformer
    -from sklearn.preprocessing import StandardScaler, OneHotEncoder
    -from sklearn.metrics import confusion_matrix, accuracy_score, roc_auc_score
    -
    -# Trying to set the seed
    -np.random.seed(0)
    -import random
    -random.seed(0)
    -
    -# Reading file into data frame
    -cwd = os.getcwd()
    -filename = cwd + '/default of credit card clients.xls'
    -nanDict = {}
    -df = pd.read_excel(filename, header=1, skiprows=0, index_col=0, na_values=nanDict)
    -
    -df.rename(index=str, columns={"default payment next month": "defaultPaymentNextMonth"}, inplace=True)
    -
    -# Features and targets 
    -X = df.loc[:, df.columns != 'defaultPaymentNextMonth'].values
    -y = df.loc[:, df.columns == 'defaultPaymentNextMonth'].values
    -
    -# Categorical variables to one-hot's
    -onehotencoder = OneHotEncoder(categories="auto")
    -
    -X = ColumnTransformer(
    -    [("", onehotencoder, [3]),],
    -    remainder="passthrough"
    -).fit_transform(X)
    -
    -y.shape
    -
    -# Train-test split
    -trainingShare = 0.5 
    -seed  = 1
    -XTrain, XTest, yTrain, yTest=train_test_split(X, y, train_size=trainingShare, \
    -                                              test_size = 1-trainingShare,
    -                                             random_state=seed)
    -
    -# Input Scaling
    -sc = StandardScaler()
    -XTrain = sc.fit_transform(XTrain)
    -XTest = sc.transform(XTest)
    -
    -# One-hot's of the target vector
    -Y_train_onehot, Y_test_onehot = onehotencoder.fit_transform(yTrain), onehotencoder.fit_transform(yTest)
    -
    -# Remove instances with zeros only for past bill statements or paid amounts
    -'''
    -df = df.drop(df[(df.BILL_AMT1 == 0) &
    -                (df.BILL_AMT2 == 0) &
    -                (df.BILL_AMT3 == 0) &
    -                (df.BILL_AMT4 == 0) &
    -                (df.BILL_AMT5 == 0) &
    -                (df.BILL_AMT6 == 0) &
    -                (df.PAY_AMT1 == 0) &
    -                (df.PAY_AMT2 == 0) &
    -                (df.PAY_AMT3 == 0) &
    -                (df.PAY_AMT4 == 0) &
    -                (df.PAY_AMT5 == 0) &
    -                (df.PAY_AMT6 == 0)].index)
    -'''
    -df = df.drop(df[(df.BILL_AMT1 == 0) &
    -                (df.BILL_AMT2 == 0) &
    -                (df.BILL_AMT3 == 0) &
    -                (df.BILL_AMT4 == 0) &
    -                (df.BILL_AMT5 == 0) &
    -                (df.BILL_AMT6 == 0)].index)
    -
    -df = df.drop(df[(df.PAY_AMT1 == 0) &
    -                (df.PAY_AMT2 == 0) &
    -                (df.PAY_AMT3 == 0) &
    -                (df.PAY_AMT4 == 0) &
    -                (df.PAY_AMT5 == 0) &
    -                (df.PAY_AMT6 == 0)].index)
    -
    -from sklearn.linear_model import LogisticRegression
    -from sklearn.model_selection import GridSearchCV
    -
    -lambdas=np.logspace(-5,7,13)
    -parameters = [{'C': 1./lambdas, "solver":["lbfgs"]}]#*len(parameters)}]
    -scoring = ['accuracy', 'roc_auc']
    -logReg = LogisticRegression()
    -gridSearch = GridSearchCV(logReg, parameters, cv=5, scoring=scoring, refit='roc_auc') 
    -
    -

    - - -

    # "refit" gives the metric used deciding best model. 
    -# See more http://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html
    -gridSearch.fit(XTrain, yTrain.ravel())
    -
    -def gridSearchSummary(method, scoring):
    -    """Prints best parameters from Grid search
    -    and AUC with standard deviation for all 
    -    parameter combos """
    -    
    -    method = eval(method)
    -    if scoring == 'accuracy':
    -        mean = 'mean_test_score'
    -        sd = 'std_test_score'
    -    elif scoring == 'auc':
    -        mean = 'mean_test_roc_auc'
    -        sd = 'std_test_roc_auc'
    -    print("Best: %f using %s" % (method.best_score_, method.best_params_))
    -    means = method.cv_results_[mean]
    -    stds = method.cv_results_[sd]
    -    params = method.cv_results_['params']
    -    for mean, stdev, param in zip(means, stds, params):
    -        print("%f (%f) with: %r" % (mean, stdev, param))
    -
    -def createConfusionMatrix(method, printOut=True):
    -    """
    -    Computes and prints confusion matrices, accuracy scores,
    -    and AUC for test and training sets 
    -    """
    -    confusionArray = np.zeros(6, dtype=object)
    -    method = eval(method)
    -    
    -    # Train
    -    yPredTrain = method.predict(XTrain)
    -    yPredTrain = (yPredTrain > 0.5)
    -    cm = confusion_matrix(
    -        yTrain, yPredTrain) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[0] = cm
    -    
    -    accScore = accuracy_score(yTrain, yPredTrain)
    -    confusionArray[1] = accScore
    -    
    -    AUC = roc_auc_score(yTrain, yPredTrain)
    -    confusionArray[2] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Training  ###############')
    -        print('\nTraining Confusion matrix: \n', cm)
    -        print('\nTraining Accuracy score: \n', accScore)
    -        print('\nTrain AUC: \n', AUC)
    -    
    -    # Test
    -    yPred = method.predict(XTest)
    -    yPred = (yPred > 0.5)
    -    cm = confusion_matrix(
    -        yTest, yPred) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[3] = cm
    -    
    -    accScore = accuracy_score(yTest, yPred)
    -    confusionArray[4] = accScore
    -    
    -    AUC = roc_auc_score(yTest, yPred)
    -    confusionArray[5] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Testing  ###############')
    -        print('\nTest Confusion matrix: \n', cm)
    -        print('\nTest Accuracy score: \n', accScore)
    -        print('\nTestAUC: \n', AUC)    
    -    
    -    return confusionArray
    -
    -
    -import matplotlib.pyplot as plt
    -import seaborn
    -import scikitplot as skplt
    -
    -seaborn.set(style="white", context="notebook", font_scale=1.5, 
    -            rc={"axes.grid": True, "legend.frameon": False,
    -"lines.markeredgewidth": 1.4, "lines.markersize": 10})
    -seaborn.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 4.5})
    -
    -yPred = gridSearch.predict_proba(XTest) 
    -print(yTest.ravel().shape, yPred.shape)
    -
    -#skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred_onehot)
    -skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred)
    -
    -defaults = sum(yTest == 1)
    -total = len(yTest)
    -defaultRate = defaults/total
    -def bestCurve(defaults, total, defaultRate):
    -    x = np.linspace(0, 1, total)
    -    
    -    y1 = np.linspace(0, 1, defaults)
    -    y2 = np.ones(total-defaults)
    -    y3 = np.concatenate([y1,y2])
    -    return x, y3
    -
    -x, best = bestCurve(defaults=defaults, total=total, defaultRate=defaultRate)    
    -plt.plot(x, best)    
    -
    -
    -plt.show()
    +
    from sklearn.preprocessing import OneHotEncoder
    +encoder = OneHotEncoder()
     

    diff --git a/doc/pub/LogReg/html/._LogReg-bs018.html b/doc/pub/LogReg/html/._LogReg-bs018.html index 035c9ef3a..5cc27a194 100644 --- a/doc/pub/LogReg/html/._LogReg-bs018.html +++ b/doc/pub/LogReg/html/._LogReg-bs018.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({

  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • @@ -133,7 +133,103 @@ MathJax.Hub.Config({ -

    Analysis of the credi card example

    +

    How to read the Credit Card data

    + +

    + + +

    import pandas as pd
    +import os
    +import numpy as np
    +
    +
    +from sklearn.model_selection import train_test_split
    +from sklearn.preprocessing import OneHotEncoder
    +from sklearn.compose import ColumnTransformer
    +from sklearn.preprocessing import StandardScaler, OneHotEncoder
    +from sklearn.metrics import confusion_matrix, accuracy_score, roc_auc_score
    +
    +# Trying to set the seed
    +np.random.seed(0)
    +import random
    +random.seed(0)
    +
    +# Reading file into data frame
    +cwd = os.getcwd()
    +filename = cwd + '/default of credit card clients.xls'
    +nanDict = {}
    +df = pd.read_excel(filename, header=1, skiprows=0, index_col=0, na_values=nanDict)
    +
    +df.rename(index=str, columns={"default payment next month": "defaultPaymentNextMonth"}, inplace=True)
    +
    +# Features and targets 
    +X = df.loc[:, df.columns != 'defaultPaymentNextMonth'].values
    +y = df.loc[:, df.columns == 'defaultPaymentNextMonth'].values
    +
    +# Categorical variables to one-hot's
    +onehotencoder = OneHotEncoder(categories="auto")
    +
    +X = ColumnTransformer(
    +    [("", onehotencoder, [3]),],
    +    remainder="passthrough"
    +).fit_transform(X)
    +
    +y.shape
    +
    +# Train-test split
    +trainingShare = 0.5 
    +seed  = 1
    +XTrain, XTest, yTrain, yTest=train_test_split(X, y, train_size=trainingShare, \
    +                                              test_size = 1-trainingShare,
    +                                             random_state=seed)
    +
    +# Input Scaling
    +sc = StandardScaler()
    +XTrain = sc.fit_transform(XTrain)
    +XTest = sc.transform(XTest)
    +
    +# One-hot's of the target vector
    +Y_train_onehot, Y_test_onehot = onehotencoder.fit_transform(yTrain), onehotencoder.fit_transform(yTest)
    +
    +# Remove instances with zeros only for past bill statements or paid amounts
    +'''
    +df = df.drop(df[(df.BILL_AMT1 == 0) &
    +                (df.BILL_AMT2 == 0) &
    +                (df.BILL_AMT3 == 0) &
    +                (df.BILL_AMT4 == 0) &
    +                (df.BILL_AMT5 == 0) &
    +                (df.BILL_AMT6 == 0) &
    +                (df.PAY_AMT1 == 0) &
    +                (df.PAY_AMT2 == 0) &
    +                (df.PAY_AMT3 == 0) &
    +                (df.PAY_AMT4 == 0) &
    +                (df.PAY_AMT5 == 0) &
    +                (df.PAY_AMT6 == 0)].index)
    +'''
    +df = df.drop(df[(df.BILL_AMT1 == 0) &
    +                (df.BILL_AMT2 == 0) &
    +                (df.BILL_AMT3 == 0) &
    +                (df.BILL_AMT4 == 0) &
    +                (df.BILL_AMT5 == 0) &
    +                (df.BILL_AMT6 == 0)].index)
    +
    +df = df.drop(df[(df.PAY_AMT1 == 0) &
    +                (df.PAY_AMT2 == 0) &
    +                (df.PAY_AMT3 == 0) &
    +                (df.PAY_AMT4 == 0) &
    +                (df.PAY_AMT5 == 0) &
    +                (df.PAY_AMT6 == 0)].index)
    +
    +from sklearn.linear_model import LogisticRegression
    +from sklearn.model_selection import GridSearchCV
    +
    +lambdas=np.logspace(-5,7,13)
    +parameters = [{'C': 1./lambdas, "solver":["lbfgs"]}]#*len(parameters)}]
    +scoring = ['accuracy', 'roc_auc']
    +logReg = LogisticRegression()
    +gridSearch = GridSearchCV(logReg, parameters, cv=5, scoring=scoring, refit='roc_auc') 
    +
    +

    diff --git a/doc/pub/LogReg/html/LogReg-bs.html b/doc/pub/LogReg/html/LogReg-bs.html index 91034fec6..dfe90dfca 100644 --- a/doc/pub/LogReg/html/LogReg-bs.html +++ b/doc/pub/LogReg/html/LogReg-bs.html @@ -62,7 +62,7 @@ Automatically generated HTML file from DocOnce source ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -117,7 +117,7 @@ MathJax.Hub.Config({

  • More classes
  • A simple classification problem
  • The Credit Card example
  • -
  • Analysis of the credi card example
  • +
  • How to read the Credit Card data
  • @@ -152,7 +152,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 9, 2019

    +

    Oct 17, 2019


    diff --git a/doc/pub/LogReg/html/LogReg-reveal.html b/doc/pub/LogReg/html/LogReg-reveal.html index 6c7b64008..101656602 100644 --- a/doc/pub/LogReg/html/LogReg-reveal.html +++ b/doc/pub/LogReg/html/LogReg-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

     
    -

    Oct 9, 2019

    +

    Oct 17, 2019


    @@ -668,7 +668,24 @@ methods.

    The Credit Card example

    Here we use the the credit card data. -The data are from an extensive database from Taiwan and include more than ten predictors. More text and clean up of code will be added. +The data are from an extensive database from Taiwan and include more than ten predictors. + +

    +For categorical data -Scikit-Learn- provides a so-called one-hot encoder. +This is called one-hot +encoding, because only one attribute will be equal to 1 (hot), while the others will be 0 (cold). +Scikit-Learn provides a OneHotEncoder encoder to convert integer categorical values into one-hot +

    + + +

    from sklearn.preprocessing import OneHotEncoder
    +encoder = OneHotEncoder()
    +
    +
    + + +
    +

    How to read the Credit Card data

    @@ -764,120 +781,6 @@ scoring = ['accuracy', 5, scoring=scoring, refit='roc_auc')

    -

    - - -

    # "refit" gives the metric used deciding best model. 
    -# See more http://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html
    -gridSearch.fit(XTrain, yTrain.ravel())
    -
    -def gridSearchSummary(method, scoring):
    -    """Prints best parameters from Grid search
    -    and AUC with standard deviation for all 
    -    parameter combos """
    -    
    -    method = eval(method)
    -    if scoring == 'accuracy':
    -        mean = 'mean_test_score'
    -        sd = 'std_test_score'
    -    elif scoring == 'auc':
    -        mean = 'mean_test_roc_auc'
    -        sd = 'std_test_roc_auc'
    -    print("Best: %f using %s" % (method.best_score_, method.best_params_))
    -    means = method.cv_results_[mean]
    -    stds = method.cv_results_[sd]
    -    params = method.cv_results_['params']
    -    for mean, stdev, param in zip(means, stds, params):
    -        print("%f (%f) with: %r" % (mean, stdev, param))
    -
    -def createConfusionMatrix(method, printOut=True):
    -    """
    -    Computes and prints confusion matrices, accuracy scores,
    -    and AUC for test and training sets 
    -    """
    -    confusionArray = np.zeros(6, dtype=object)
    -    method = eval(method)
    -    
    -    # Train
    -    yPredTrain = method.predict(XTrain)
    -    yPredTrain = (yPredTrain > 0.5)
    -    cm = confusion_matrix(
    -        yTrain, yPredTrain) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[0] = cm
    -    
    -    accScore = accuracy_score(yTrain, yPredTrain)
    -    confusionArray[1] = accScore
    -    
    -    AUC = roc_auc_score(yTrain, yPredTrain)
    -    confusionArray[2] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Training  ###############')
    -        print('\nTraining Confusion matrix: \n', cm)
    -        print('\nTraining Accuracy score: \n', accScore)
    -        print('\nTrain AUC: \n', AUC)
    -    
    -    # Test
    -    yPred = method.predict(XTest)
    -    yPred = (yPred > 0.5)
    -    cm = confusion_matrix(
    -        yTest, yPred) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[3] = cm
    -    
    -    accScore = accuracy_score(yTest, yPred)
    -    confusionArray[4] = accScore
    -    
    -    AUC = roc_auc_score(yTest, yPred)
    -    confusionArray[5] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Testing  ###############')
    -        print('\nTest Confusion matrix: \n', cm)
    -        print('\nTest Accuracy score: \n', accScore)
    -        print('\nTestAUC: \n', AUC)    
    -    
    -    return confusionArray
    -
    -
    -import matplotlib.pyplot as plt
    -import seaborn
    -import scikitplot as skplt
    -
    -seaborn.set(style="white", context="notebook", font_scale=1.5, 
    -            rc={"axes.grid": True, "legend.frameon": False,
    -"lines.markeredgewidth": 1.4, "lines.markersize": 10})
    -seaborn.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 4.5})
    -
    -yPred = gridSearch.predict_proba(XTest) 
    -print(yTest.ravel().shape, yPred.shape)
    -
    -#skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred_onehot)
    -skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred)
    -
    -defaults = sum(yTest == 1)
    -total = len(yTest)
    -defaultRate = defaults/total
    -def bestCurve(defaults, total, defaultRate):
    -    x = np.linspace(0, 1, total)
    -    
    -    y1 = np.linspace(0, 1, defaults)
    -    y2 = np.ones(total-defaults)
    -    y3 = np.concatenate([y1,y2])
    -    return x, y3
    -
    -x, best = bestCurve(defaults=defaults, total=total, defaultRate=defaultRate)    
    -plt.plot(x, best)    
    -
    -
    -plt.show()
    -
    - - - -
    -

    Analysis of the credi card example

    diff --git a/doc/pub/LogReg/html/LogReg-solarized.html b/doc/pub/LogReg/html/LogReg-solarized.html index ba2b80950..3b26ca41c 100644 --- a/doc/pub/LogReg/html/LogReg-solarized.html +++ b/doc/pub/LogReg/html/LogReg-solarized.html @@ -56,7 +56,7 @@ div { text-align: justify; text-justify: inter-word; } ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -98,7 +98,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 9, 2019

    +

    Oct 17, 2019


    @@ -570,7 +570,23 @@ methods.

    The Credit Card example

    Here we use the the credit card data. -The data are from an extensive database from Taiwan and include more than ten predictors. More text and clean up of code will be added. +The data are from an extensive database from Taiwan and include more than ten predictors. + +

    +For categorical data -Scikit-Learn- provides a so-called one-hot encoder. +This is called one-hot +encoding, because only one attribute will be equal to 1 (hot), while the others will be 0 (cold). +Scikit-Learn provides a OneHotEncoder encoder to convert integer categorical values into one-hot +

    + + +

    from sklearn.preprocessing import OneHotEncoder
    +encoder = OneHotEncoder()
    +
    +

    +









    + +

    How to read the Credit Card data

    @@ -668,118 +684,6 @@ gridSearch = GridSearchCV(logReg, parameters, cv=5<

    - -

    # "refit" gives the metric used deciding best model. 
    -# See more http://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html
    -gridSearch.fit(XTrain, yTrain.ravel())
    -
    -def gridSearchSummary(method, scoring):
    -    """Prints best parameters from Grid search
    -    and AUC with standard deviation for all 
    -    parameter combos """
    -    
    -    method = eval(method)
    -    if scoring == 'accuracy':
    -        mean = 'mean_test_score'
    -        sd = 'std_test_score'
    -    elif scoring == 'auc':
    -        mean = 'mean_test_roc_auc'
    -        sd = 'std_test_roc_auc'
    -    print("Best: %f using %s" % (method.best_score_, method.best_params_))
    -    means = method.cv_results_[mean]
    -    stds = method.cv_results_[sd]
    -    params = method.cv_results_['params']
    -    for mean, stdev, param in zip(means, stds, params):
    -        print("%f (%f) with: %r" % (mean, stdev, param))
    -
    -def createConfusionMatrix(method, printOut=True):
    -    """
    -    Computes and prints confusion matrices, accuracy scores,
    -    and AUC for test and training sets 
    -    """
    -    confusionArray = np.zeros(6, dtype=object)
    -    method = eval(method)
    -    
    -    # Train
    -    yPredTrain = method.predict(XTrain)
    -    yPredTrain = (yPredTrain > 0.5)
    -    cm = confusion_matrix(
    -        yTrain, yPredTrain) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[0] = cm
    -    
    -    accScore = accuracy_score(yTrain, yPredTrain)
    -    confusionArray[1] = accScore
    -    
    -    AUC = roc_auc_score(yTrain, yPredTrain)
    -    confusionArray[2] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Training  ###############')
    -        print('\nTraining Confusion matrix: \n', cm)
    -        print('\nTraining Accuracy score: \n', accScore)
    -        print('\nTrain AUC: \n', AUC)
    -    
    -    # Test
    -    yPred = method.predict(XTest)
    -    yPred = (yPred > 0.5)
    -    cm = confusion_matrix(
    -        yTest, yPred) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[3] = cm
    -    
    -    accScore = accuracy_score(yTest, yPred)
    -    confusionArray[4] = accScore
    -    
    -    AUC = roc_auc_score(yTest, yPred)
    -    confusionArray[5] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Testing  ###############')
    -        print('\nTest Confusion matrix: \n', cm)
    -        print('\nTest Accuracy score: \n', accScore)
    -        print('\nTestAUC: \n', AUC)    
    -    
    -    return confusionArray
    -
    -
    -import matplotlib.pyplot as plt
    -import seaborn
    -import scikitplot as skplt
    -
    -seaborn.set(style="white", context="notebook", font_scale=1.5, 
    -            rc={"axes.grid": True, "legend.frameon": False,
    -"lines.markeredgewidth": 1.4, "lines.markersize": 10})
    -seaborn.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 4.5})
    -
    -yPred = gridSearch.predict_proba(XTest) 
    -print(yTest.ravel().shape, yPred.shape)
    -
    -#skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred_onehot)
    -skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred)
    -
    -defaults = sum(yTest == 1)
    -total = len(yTest)
    -defaultRate = defaults/total
    -def bestCurve(defaults, total, defaultRate):
    -    x = np.linspace(0, 1, total)
    -    
    -    y1 = np.linspace(0, 1, defaults)
    -    y2 = np.ones(total-defaults)
    -    y3 = np.concatenate([y1,y2])
    -    return x, y3
    -
    -x, best = bestCurve(defaults=defaults, total=total, defaultRate=defaultRate)    
    -plt.plot(x, best)    
    -
    -
    -plt.show()
    -
    -

    -









    - -

    Analysis of the credi card example

    - diff --git a/doc/pub/LogReg/html/LogReg.html b/doc/pub/LogReg/html/LogReg.html index dd6403806..22e15425c 100644 --- a/doc/pub/LogReg/html/LogReg.html +++ b/doc/pub/LogReg/html/LogReg.html @@ -61,7 +61,7 @@ div { text-align: justify; text-justify: inter-word; } ('More classes', 2, None, '___sec14'), ('A simple classification problem', 2, None, '___sec15'), ('The Credit Card example', 2, None, '___sec16'), - ('Analysis of the credi card example', 2, None, '___sec17')]} + ('How to read the Credit Card data', 2, None, '___sec17')]} end of tocinfo --> @@ -103,7 +103,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 9, 2019

    +

    Oct 17, 2019


    @@ -575,7 +575,23 @@ methods.

    The Credit Card example

    Here we use the the credit card data. -The data are from an extensive database from Taiwan and include more than ten predictors. More text and clean up of code will be added. +The data are from an extensive database from Taiwan and include more than ten predictors. + +

    +For categorical data -Scikit-Learn- provides a so-called one-hot encoder. +This is called one-hot +encoding, because only one attribute will be equal to 1 (hot), while the others will be 0 (cold). +Scikit-Learn provides a OneHotEncoder encoder to convert integer categorical values into one-hot +

    + + +

    from sklearn.preprocessing import OneHotEncoder
    +encoder = OneHotEncoder()
    +
    +

    +









    + +

    How to read the Credit Card data

    @@ -673,118 +689,6 @@ gridSearch = GridSearchCV(logReg, parameters

    - -

    # "refit" gives the metric used deciding best model. 
    -# See more http://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html
    -gridSearch.fit(XTrain, yTrain.ravel())
    -
    -def gridSearchSummary(method, scoring):
    -    """Prints best parameters from Grid search
    -    and AUC with standard deviation for all 
    -    parameter combos """
    -    
    -    method = eval(method)
    -    if scoring == 'accuracy':
    -        mean = 'mean_test_score'
    -        sd = 'std_test_score'
    -    elif scoring == 'auc':
    -        mean = 'mean_test_roc_auc'
    -        sd = 'std_test_roc_auc'
    -    print("Best: %f using %s" % (method.best_score_, method.best_params_))
    -    means = method.cv_results_[mean]
    -    stds = method.cv_results_[sd]
    -    params = method.cv_results_['params']
    -    for mean, stdev, param in zip(means, stds, params):
    -        print("%f (%f) with: %r" % (mean, stdev, param))
    -
    -def createConfusionMatrix(method, printOut=True):
    -    """
    -    Computes and prints confusion matrices, accuracy scores,
    -    and AUC for test and training sets 
    -    """
    -    confusionArray = np.zeros(6, dtype=object)
    -    method = eval(method)
    -    
    -    # Train
    -    yPredTrain = method.predict(XTrain)
    -    yPredTrain = (yPredTrain > 0.5)
    -    cm = confusion_matrix(
    -        yTrain, yPredTrain) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[0] = cm
    -    
    -    accScore = accuracy_score(yTrain, yPredTrain)
    -    confusionArray[1] = accScore
    -    
    -    AUC = roc_auc_score(yTrain, yPredTrain)
    -    confusionArray[2] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Training  ###############')
    -        print('\nTraining Confusion matrix: \n', cm)
    -        print('\nTraining Accuracy score: \n', accScore)
    -        print('\nTrain AUC: \n', AUC)
    -    
    -    # Test
    -    yPred = method.predict(XTest)
    -    yPred = (yPred > 0.5)
    -    cm = confusion_matrix(
    -        yTest, yPred) 
    -    cm = np.around(cm/cm.sum(axis=1)[:,None], 2)
    -    confusionArray[3] = cm
    -    
    -    accScore = accuracy_score(yTest, yPred)
    -    confusionArray[4] = accScore
    -    
    -    AUC = roc_auc_score(yTest, yPred)
    -    confusionArray[5] = AUC
    -    
    -    if printOut:
    -        print('\n###################  Testing  ###############')
    -        print('\nTest Confusion matrix: \n', cm)
    -        print('\nTest Accuracy score: \n', accScore)
    -        print('\nTestAUC: \n', AUC)    
    -    
    -    return confusionArray
    -
    -
    -import matplotlib.pyplot as plt
    -import seaborn
    -import scikitplot as skplt
    -
    -seaborn.set(style="white", context="notebook", font_scale=1.5, 
    -            rc={"axes.grid": True, "legend.frameon": False,
    -"lines.markeredgewidth": 1.4, "lines.markersize": 10})
    -seaborn.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 4.5})
    -
    -yPred = gridSearch.predict_proba(XTest) 
    -print(yTest.ravel().shape, yPred.shape)
    -
    -#skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred_onehot)
    -skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred)
    -
    -defaults = sum(yTest == 1)
    -total = len(yTest)
    -defaultRate = defaults/total
    -def bestCurve(defaults, total, defaultRate):
    -    x = np.linspace(0, 1, total)
    -    
    -    y1 = np.linspace(0, 1, defaults)
    -    y2 = np.ones(total-defaults)
    -    y3 = np.concatenate([y1,y2])
    -    return x, y3
    -
    -x, best = bestCurve(defaults=defaults, total=total, defaultRate=defaultRate)    
    -plt.plot(x, best)    
    -
    -
    -plt.show()
    -
    -

    -









    - -

    Analysis of the credi card example

    - diff --git a/doc/pub/LogReg/ipynb/LogReg.ipynb b/doc/pub/LogReg/ipynb/LogReg.ipynb index cb31cc32e..2566f60e9 100644 --- a/doc/pub/LogReg/ipynb/LogReg.ipynb +++ b/doc/pub/LogReg/ipynb/LogReg.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Oct 9, 2019**\n", + "Date: **Oct 17, 2019**\n", "\n", "Copyright 1999-2019, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -669,7 +669,12 @@ "source": [ "## The Credit Card example\n", "Here we use the the [credit card data](https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients). \n", - "The data are from an extensive database from Taiwan and include more than ten predictors. More text and clean up of code will be added." + "The data are from an extensive database from Taiwan and include more than ten predictors.\n", + "\n", + "For categorical data -Scikit-Learn- provides a so-called **one-hot encoder**.\n", + "This is called one-hot\n", + "encoding, because only one attribute will be equal to 1 (hot), while the others will be 0 (cold).\n", + "**Scikit-Learn** provides a OneHotEncoder encoder to convert integer categorical values into one-hot" ] }, { @@ -679,6 +684,25 @@ "collapsed": false }, "outputs": [], + "source": [ + "from sklearn.preprocessing import OneHotEncoder\n", + "encoder = OneHotEncoder()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How to read the Credit Card data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import pandas as pd\n", "import os\n", @@ -771,129 +795,6 @@ "logReg = LogisticRegression()\n", "gridSearch = GridSearchCV(logReg, parameters, cv=5, scoring=scoring, refit='roc_auc')" ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "\n", - "# \"refit\" gives the metric used deciding best model. \n", - "# See more http://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html\n", - "gridSearch.fit(XTrain, yTrain.ravel())\n", - "\n", - "def gridSearchSummary(method, scoring):\n", - " \"\"\"Prints best parameters from Grid search\n", - " and AUC with standard deviation for all \n", - " parameter combos \"\"\"\n", - " \n", - " method = eval(method)\n", - " if scoring == 'accuracy':\n", - " mean = 'mean_test_score'\n", - " sd = 'std_test_score'\n", - " elif scoring == 'auc':\n", - " mean = 'mean_test_roc_auc'\n", - " sd = 'std_test_roc_auc'\n", - " print(\"Best: %f using %s\" % (method.best_score_, method.best_params_))\n", - " means = method.cv_results_[mean]\n", - " stds = method.cv_results_[sd]\n", - " params = method.cv_results_['params']\n", - " for mean, stdev, param in zip(means, stds, params):\n", - " print(\"%f (%f) with: %r\" % (mean, stdev, param))\n", - "\n", - "def createConfusionMatrix(method, printOut=True):\n", - " \"\"\"\n", - " Computes and prints confusion matrices, accuracy scores,\n", - " and AUC for test and training sets \n", - " \"\"\"\n", - " confusionArray = np.zeros(6, dtype=object)\n", - " method = eval(method)\n", - " \n", - " # Train\n", - " yPredTrain = method.predict(XTrain)\n", - " yPredTrain = (yPredTrain > 0.5)\n", - " cm = confusion_matrix(\n", - " yTrain, yPredTrain) \n", - " cm = np.around(cm/cm.sum(axis=1)[:,None], 2)\n", - " confusionArray[0] = cm\n", - " \n", - " accScore = accuracy_score(yTrain, yPredTrain)\n", - " confusionArray[1] = accScore\n", - " \n", - " AUC = roc_auc_score(yTrain, yPredTrain)\n", - " confusionArray[2] = AUC\n", - " \n", - " if printOut:\n", - " print('\\n################### Training ###############')\n", - " print('\\nTraining Confusion matrix: \\n', cm)\n", - " print('\\nTraining Accuracy score: \\n', accScore)\n", - " print('\\nTrain AUC: \\n', AUC)\n", - " \n", - " # Test\n", - " yPred = method.predict(XTest)\n", - " yPred = (yPred > 0.5)\n", - " cm = confusion_matrix(\n", - " yTest, yPred) \n", - " cm = np.around(cm/cm.sum(axis=1)[:,None], 2)\n", - " confusionArray[3] = cm\n", - " \n", - " accScore = accuracy_score(yTest, yPred)\n", - " confusionArray[4] = accScore\n", - " \n", - " AUC = roc_auc_score(yTest, yPred)\n", - " confusionArray[5] = AUC\n", - " \n", - " if printOut:\n", - " print('\\n################### Testing ###############')\n", - " print('\\nTest Confusion matrix: \\n', cm)\n", - " print('\\nTest Accuracy score: \\n', accScore)\n", - " print('\\nTestAUC: \\n', AUC) \n", - " \n", - " return confusionArray\n", - "\n", - "\n", - "import matplotlib.pyplot as plt\n", - "import seaborn\n", - "import scikitplot as skplt\n", - "\n", - "seaborn.set(style=\"white\", context=\"notebook\", font_scale=1.5, \n", - " rc={\"axes.grid\": True, \"legend.frameon\": False,\n", - "\"lines.markeredgewidth\": 1.4, \"lines.markersize\": 10})\n", - "seaborn.set_context(\"notebook\", font_scale=1.5, rc={\"lines.linewidth\": 4.5})\n", - "\n", - "yPred = gridSearch.predict_proba(XTest) \n", - "print(yTest.ravel().shape, yPred.shape)\n", - "\n", - "#skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred_onehot)\n", - "skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred)\n", - "\n", - "defaults = sum(yTest == 1)\n", - "total = len(yTest)\n", - "defaultRate = defaults/total\n", - "def bestCurve(defaults, total, defaultRate):\n", - " x = np.linspace(0, 1, total)\n", - " \n", - " y1 = np.linspace(0, 1, defaults)\n", - " y2 = np.ones(total-defaults)\n", - " y3 = np.concatenate([y1,y2])\n", - " return x, y3\n", - "\n", - "x, best = bestCurve(defaults=defaults, total=total, defaultRate=defaultRate) \n", - "plt.plot(x, best) \n", - "\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analysis of the credi card example" - ] } ], "metadata": {}, diff --git a/doc/pub/LogReg/ipynb/ipynb-LogReg-src.tar.gz b/doc/pub/LogReg/ipynb/ipynb-LogReg-src.tar.gz index 120b7e1c00fb3176bb5d84a59020e59bdb808ab0..3aff17299b77d4109836c62b2ce4a2fce78273e6 100644 GIT binary patch literal 191 zcmV;w06_mAiwFRTTc}+C1MSaC3c@fD2H>uHia9|^+NQ1ryATwlc!89pZG2>El7hXx zeSoeMH${Yeo1bBZVW!B}n|&U+y9*XW2+7hE#$07=N)pfYgi;1HVJs$$Wt0M;Ny2CV zWVw@GI_tO@PH9e3TdCj94P#aHVbA;uJo8T+8)ad8=v{*vG&)%#o?(Y|A?rxBy)HqZ tv||g5ymiV*;JODcgmMZszl5#9+VHE5!e2k*d7kHe?E#7%yqEw8002t-RaO81 literal 191 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 z z8Rai+HvIZk!}F!=kFi;}Xg{-N?HjA~79wYy9ex2(r2n|y_i!JGkK`p!K;aL5qh)Ou z@P$MBX70E(U=R4TA7y_nhkHo`lTMcsh|=Km=9l4zE|A-bUwnxt*K~n^P&J57?=fsz z=Tm^hB9^|UG|F)d3v)ZKVp(lJnvpwGrcZ-5DU07nvr@{>KgraTi|1u)_NP{t{3Gt= zpzvrKDbf6@?@yUWcKZVDT&usPNmnLCo0$3{v}Qr(#q_b{M`V8@S8im@?L+yf@3knH zMRnE_ijc2*pxjCuPkY={hdbjsEDCoED2v*8&B?MJrt5_WR-eytVOTFq?ZAXpY5qmy zwSl>6F^Zi`-%nNE3=m^pc&-orK&B}z%254|`D<2Nw?&T~^3|+@vj5Yg@NaD<)<8K< zbIN4E)04muQ`>)ynNn`jC0HxVh}D!$@TDzB3~U&j!BuK6A|lI<4ZNPD#OBv5|B%wZ zg7abPc3uG#_@xARIUo597trW&W3y2{COa)H^X{xQ=7+$?a}}Il#hro;_klE`L%%+x z5}uQ6*SV(LJ-4YSD3CD|x6+zJtsH!uP-$SF8qSmRC-r~GBFR2e-WtIQI_JvnQ-wT9 z8yyJ%-_cG~m#wTZfWmnyr?uHf{u{-{n7wr~=vBy- zD<*?f?3%#oH&!WTEZA+Kb=Rn!5f`o$x-C)n>FQTmW<%(SOy52i%?1Dd`GZlS$EUAI zw7lPjaR+~vK*Op_9`zHZ;3AmDB~+iDwp}7Sg$p)`M%+TSE%EaPx+#Esb7}*tCTA8| zdfn6329JMqPU{g`>?6%wn&>vuT&1c*JIZ3Kg9+pi8v%2d-dR!lJ8b^hy9N9-v!7`b z$2(8l*k5Qm$0tP4Zb~Ndsnax^bfNknL#Q*t0Oo%ZJopy*pX1!5%9GJ#Y3Fc4-%$||HEO4EmGF)c|zcg`vAI-&5654~w_g%@$YUF^?( z7CUdMXbvWTF6?!}UU13PwKZS8!bXjPj#NrX&ODP{y(ABlSKbWsLh}l?o4Fi%)*k`m zP8EM}6o;Da;4<+bw#(ZwrQ8VEjMl|U&Gqr3&4f*HRVwT@3v_T}JoCWp@E|g2BcB}Y z7*PvlZH4LI_!cyg(PpmiUns+Tpl!(XPOM_G#|#KorbbAOa`kkre#g~e31H#)Z0T9z z;OyVSQiZTQZfEvRWrv-cM%9gBb<>@om1uvtCCJTFeYMq+M`PU=H4ziihqNoHxI!Ca z1)&L8>v?EwKdFY$?QKkA?}V2=97w;>g<7xENzBYt{r2v1Pfde@Mz=Oe@!hDKus!Xq zukAj9V!x14aTuYTel6|L#xk1epG~@8c)R+S0B>Mgh)1u9g=@! zJa?b{i`Q6U)D(=H!F?sYgONd5vCZv#Hf2IaP&)u+ksTa$+m(voLb_H+O>SCS631;U zs1w|o9DKges*1IHD3G~I_u(jrGAA;V(3ZB$`vADPUQvQ8Urwr+Pw9IbJ4d<`&zu@m zRpjxEl$gzQ5)!?VXg(x0Uw3_1l{kMWv_{E9K#8$nXRJ*<0u9 z+zq$hrzP!&f@>qgzGH*=#}E~21ZAP;3<*WMj&8XtrQ|F)nbV)*jsy)l?VvNih2emn z04<@7fCIO!Q49z{aY_3&B2|CpSMg!AV#N<>fp5aepE1A^SF>5Yu;)|&&D!`-yn+~J z`${SR<5zaoPh!<_ZXbF~8Z-q z5Ixg6IEA~vyB6h}P)2{>8`?aPiNuh3z2hd4dcb)%Ue7RcPDl7d-sC1*D^%1))+n)7 zoJ6xjbsaX(*2H4XQ8o=F&KH(enwmpizrg}{AAuh@NCj3BFz^FMp7)UkLC?(3923yy zvGh3)ak}dYl}2m7kv`@H&=6N}?`1b0C@IaD{BYfY>S)5|SBHPj$)#5K95wHMAR2fh z>xqwXv2g49Z3jWIh16ug&3CvL?G|fkDi`r`S0iwJsVNXD=*34Jx?&RKv0Q+fhj(w2 zkQ{x-zvHF=`jsskSldEP{B$wn4((3;TsZwRn%n!C8?km3&DGK;D3 zBf+bRI&&%C#m%kDuvOn$z;%)Q3z)6Cd~zZ=kR-63DSj^GHi$@vTpy6hAshECGELH~ zko8Va&i`b9D3mAl`NU~Q9qVV?hAM0sak_wqv1QOLEIWTg{aSv!fD>-vq_CBUyKA$y zru`P|*zbV%PN?pP$)Qn`gBx9gK~Z{~1n#aW&eIlCT1Q44+v3tezWdbP%- zipft%N{w;szn+Xb%*B*w1H*Ri2^GzRn)KsD-7Zd@1ci>G&>XQ~Ma8@A*BH29f2Ox2 zlVmT&eN~Z=jr7#1ys_KU)fMWpK$N3g^LyRya+%ltM;eQ*zmI44 znT^lG0qgMzAf7)G53fk0jqVG|V8o=m#PRt}KWqOTKu*lfL z4;L+3+iC1NqVceLRP}D~Hgw1f{X~UiOjeqBBq93+-%~I5?S4AAiv!C5nKFeZTupys zR&Hv_LkLP{M>7%6%M_0!3rD-Yg23Nan}^@~0a{~j^^;j^X@)vbM8sNVw7CwR2}LX6 z9XdP9ViZ*Ye7D<{9T99;u+Urv!|Cr#bxR0BoSqa~Ac4{H~H0u6NB>JW>#f7^&W+VMxDZ^nNcFR+v- zz7K`gZnaUG@uBX$P6)-Fl(l^usfjAO`76k$`=v%OJby3$~m7!A$7PE~N6NoeENci>5sjiW8`5?WNG% zijt$CUrK>=uAnn)BDpn81ska14it)T`Wy$W_?S6Jb36m%7Pc*tk2HV$(Cfp5D4$k? zPbP1G=u^JyYZF(Ctq@A8`Q`giQmloP*s8ldJ+kxNJ>BD{s5V4|X{v#`x+fllOFDvY zjIwKA_h;yfdUV|n?d2t!EH9hVoGYyRRT$l1lY?YQQODmWdz;O!R-h+tDvO2a1``Hb z6Qg(6%!+^c@l;_5`|*GNOvT4VLNtB?E`5?;G!m&+II7Y0z{i3 z^~V?0`#ecy1><99E{;dklRH%5v8Dn`cTmVEu)bR>m$sBN&^3Q^_p^MMqC;3KocV&& zF>oqZMgHkFY81G~!Hi^04)y5T4`T@6XAy8YR2cLk3XPslBx%4|h`DRb%?C`H7r6HZ zb}OT@YE5vZ{ZA>!+9sVE@8Thmx#Q0)M^kl-Os>D;_vl=Bi?`py`AUyJ$NUZm|31!3 z<>v!aZ24eO;#q%xplxrPv5O}3Q-Npi33IWu)LYyT9*c_qQE(l%Bx{S-tb9q+9 z+&sQinyO6+bV3>Tx7^qKS7ujJensaN1mIN&0Ce=JcuWe1Shg48GZ_T(=yM)g)xDOWCMS^G-QvRXY5R$nxo>GR1R(Y zDO->y!v}Q9w$BNzrGS(AAn#jV>KT&5Th%9czAYdFASfA`c7a7S_nF9gW1bw$nDDu} zo4lm)SMbm25M-_L=YUz^iA?y7@QQm8Gl3CoV){hD4&0+ zV9lTCCdCAn%52({b9^AFt@uZwEm@KqQ!UAy+;zG5paUd(ErhdLQwKqZiA~(!F781{ z!hUo|sTQgat!fN?Tom(6MTx3LbjGH7%nz}3N_9dJ!oz!o>lb8-J|U>%dGa9-H3O?0 zS`R8YIZ8V+CZ$b1!Kt2V4@R0-s|kNUT3DVqo$(~`qR$+dRp|VGDPS`{;JIGR^1+X% z0s>>U=7(u*|z>7i=&o<8^v<4hVooU17%|< zW_oRQk-EeQ&&)c0leYT?kgV#77(M%%`oln)Dg266#IadAt|x~+f%xa9V!?m*{rAc3 zQi!K#-2!LQs)9h(7+=;_WjCOj2|yz$&)eoZDVXX|RQTZ-!1I!2Ai*c|==?l+CuR%# zW(Pu#JL+;3^l0(smvEt*_AQYJ_&Heg_%tGW`nK;*mp@ad{Ss-0USKjfgyAA+(R}0$ zV+!#E)BfNuQVx70W zsve=^e$@5*c7AIG5)ghya)~^MB=q9TveDc_%br=^SM%)^9`*|VjJ>U9K5iOKduL`c z`YcF$(soS5M@5+NM6gSE*n-pe78q8HQ*1cXCK4_v-Bn#F-Px;6a((jUF zMsl_&Bgq7M>7H#5gy2cvO)@`&qEMWs8eW3*+YDGpqM4)-jy})fsT);X+t7p$;bLEY zPEa%dc?{-eXP0!RsDER`57OEs*t&VRln6$WKAsW%+%Py!w&8z(As)ZDFCNu4HDt0B z4t7dy{t60!QQC{p!8~(Cd~Pkp=c!xWFCenql#kG;hGZoxH})ZXNAhlsGBw8=Ehi6s_mkZWKEQ`?vz& zD%qQ=(HuMLCoO;Pl4|(zzDMu6t$~ov<}I6Rd7|RBN#G;aDWPdC9<&dUH!l#yWn(0O z8Yy%zR6tqK$?!FVhXwflev5s2^iVe}wISR;T(cMUD>cbZ)ETdXLK;S22#OcM<`hUXrAM{U9j3TG;*&V;4Aox->xJ7BZ7ktP^HHKGJC zcwX`h?(nl|8Vv(~U4Lo`y-`N=!+e42Dr_jnJ5kQ3V-W(v;~ZZ3Q<=7n0z zNeDnhxq`0F5dWF9C`|?KefwKMZ(B@R?(l!q?_+ve?8J$k-E48@uD{FM&hk=F7~jZ^ zE6BuvIoFR$kYhcn>>i_mS^LkV$AY=r0O6tG59DBh@0%@%ye(8Cm6W`(dEZ^SbZTU8 zrN-@%grK-A2~}vK+E%24@@<85SB;cev4-qXst;ziykl@P=@p=!zl!VWdvoNuQ!}y_8}mIGW|hT_A zIBH+Qd-QE;Fgz%9a`^Vh+f+mw&&k1rjxH+tj_|O|WNa`#bTzUD z*gv&py#!SvGP#gP4x9n~`>-<_dEzdy0~T5~LQQ`PRcl8M8aPsDy0Loa z&?P2iKvt@+M>JA6=1=od)alilFjXZr^?<8k2<1 zHLY}Ln=LvY5qT4z@hzI;=BJHb4JIMVf+S#*+%G->Ox0D6fwVrL<9mNgnF1b*X%{nl z(0a!xfl!ZX`Ynm^yN^d<=S+A!Sre}?>amT?N3Yw4?qwj>xnHKznolpYMzuAMDTeB% zR2!%Z4)>XKx3d%%e-Tlv{R=+T9T#fF5&GMl_Y?ScR#s&lquBRGEzA#ZUaG+ zyfu1a!)joJf<#$(`r>~R%YqE~Ig$E(rrZ}&cab#(?*z(}DFyF}{ei$aveuhA5;6f? zBK8|Za-95w_GyXRb3NK29hqM4HnX)P^Sb4);`OcgX+LivN-mJvFLYK2zxAC(=&e}W zdFQPzl1lJhU z4ZGHw@)1+R`yIwlv*PJ~sZ4bGvQb%(u?ogUjZa4*mj%RpT3tKTaU=FpzmMa1z??w9 zS2!4z=8`uKsQP)E_C4ThQ?(bCt#r#nC^B`IfsGV7+b+WeA;Vo*g& z+0QwJbZEJpfWm+KhrLRJ&p+qko|Fr5!cy7akaB)&Dm5?bPLWl>FIOLbfN%QB&&#(n zxsQh~qK_9(DOQc}qE>LMRv9mdQ0$1}mp|^gcO_b|=MX$7$9gV>dw}Rv)fMrJA}x=a zJo^oeu9s(&9K)P&@#*HC0zZc?TM=K$uLkoZLay_j)I)zF{pdAD>5PE73}lo7qZlZ5 zkA&Zf3PcB}Ts*&R3AqETf@4eK3BPB;6lMs6$|m8q^f>5)?9i6R_)(wU2@?O%gr#Dk z!|zVMXlR1-cf#Qi9vrkXv-@b&M$Bd=pG##`m)J%;6iCjPtR8CXjS3Ty-&T+%Z_z{0SGJ$LAh$D`ldd`U;mENAKZLeN-k)M2s$p^Se>=?Y0hf9L}qbX5Xmg$S7 zi-v(F!+ND$&=p>z?O`D|)PlShU%ji+7rQa%-FB)mvylK|K%Kv66f+~mSZ`U$Iv4R1 zzNdS{=VWNYH&sWvwP z7OW@5ED6HjOL$JE$DgR@b~>Y|SeWraMGW!A6c}J!oi2&NvZl=CQhOUeKb`HMavC91 zgjo@9JN3_Qtq)>eAI|f~Uh|^JTy>HqX)`6O3u|++q12j*( z-dCPVZT*RLEjNBz`x4 z{v^pWW6SyxiWgP?Lk{Aog!b)@;Qm(UawB~_cbV_obh3G>*_r*LP}nyP7;x`tC+<&5 z?C4tUlo*>4RLT!jF@6&gDV8VHP+ABrv#lqwVMr5(UFMX!dUV0U5*;YCl|ASttdKwaRPcei`zyns!X&=V0Xuaka#1^~`c>*obc%)XkLdJbnP20#8YSs|*HyzgX437%`pbQ&{1}&Z z?r)4y>RK9cl_{)mI46skldr8HgY=v%R%KdZ))=9Rmap$Y?WRRC@VLR6k+Ud&ni~-& z4aB>Hc%_9gD8(Pa@?h4?KxPH|<`fk`gBf#pl86COBzaInzE(JPNLsZ-AFTs1c_r z5N%yZGI77TqoC92p5fJnTkoVb&738?wQk;72%RFahQ*`hsc{>d(O%ziR7PHJ(xMAd z`eemT%KwJ3X%kW}POmF_SuZ?)02}%QI+=jSZ>~}8y8^@Y1?T#~cjlPOE-K z2O1)j!Jn{{!cmES2{a`}z^E0Ql$287b;pZdd@03Y)l~mxU?p^|T2pbq8nx?LGDO)< z8rl(JTyJ~lO{q!85#h)wY&DFGF0F94tC@J#Fy^8go4c~g3Cl$GqyI906f-d5;H+^w z=lzd}6Xo`xFT>6p#{e?%5kYd1_6~HLS-Ek?hg$5hg*v-E7w_Q^*q2H=3C8*i>H275 zS>y1Op>-9aBY{4IM>czt2IGQ+prjOZGT(q0b#i*B@|_&IEV8}Zs$bSrdciWg6}oaOm%(Qw1xVASuh22XxJ6mEaabX78_FydDDu1%poVs-1oq;&cnUkzhFa& zj1`c@Fgw33K`((t)$l(#tw^X=1$c#Mq^%saK%ZjkYoQah?Lp%tglW0C#9wDK_`Q!M z9W#5(Fq#bsa{73G{S`>qtxMc@^jO{%YqNFU0Z9hV(^YcHOIzoEz8_u3oNG^0LQQPR zyrFCAgdP0MOqI9t0}d4jBW`lv(>dsl!tD#AoLM^@hl79qMQG3h0aVHq)4j*QC-=_^ zACw(AOpwD1oOR{CYLIgvNO?>y}}0x6%FVP=>L&&BC*olC&>fI`@2Ua)@}ir6C+n+xK3MqnzU<;8guU2# zfU)2_wE!1PGdhdtLbBP4ty;e-k4pc7h5LTHF0FZ|kd61WG6&7^+cfhB?2h!hcxZ^a z@(~91;6zSS{d9$vw1~Bmm!E|u3eO)Ka%r8^ z^uVJFbv-c4ou^Ni;lEB-Hu5glZSj;P(ly+gj;A zgq5#|=docZfII^{orON75jw8y#KSE+#PV($+ysB6+ zkp7_3J}AHDYb4WaIOk0_)=k*bYb%#6e9F&J?$YrHee|Wt8F6&sT)9{ns~Fe{C+JuYml2 z$#!a03Lv`Jp?IvBk^Wccx54}2$1_9$@Ui{IZCp63ibq(CThqcxbd7J)S_bE#?)zyC zf98*yH_kNPr^94>5`Ms0*1!sSmj=GFk+DgcQWj@E7pTjhT;wVU>(IE5Z&VNXNLMLW z)R95_kYjw6Q!Gvx!hu(2U-8Wa2}f&z z9s@T(rWBt8^UX5+dhS7q7T=0e>5F|_&m>mnx68=l0roPtKK$&rPZm4on#9MU;yVX) zJE&ppk7R!QG;20^ySAd0cK#AOWvyI6x3*%$12}O(8SjVvJ>FO$)P5K=JjWD&QgX7n zEfzvoL!zP0(x#(WyXy>JQKv5Z(SU@3PQD%Weaa%J(-1X~irwpgWPxhd0I!GGzFswI z5mYdINL4$Uh&oVq$9c2(69>Lo2>0+9%^`~6lxvvpWXWJvOWS5>_{HjBTGC1!u{F`w z>T(SSKa)-Hs_8Z#GtbuiXE|bjPmJ66;;pjmosoe!91#=D9NVorvBg7zuHY8qNk#-G zd(?owX+-e0b0_A>1%_`p(8h~prD8xKY{O;$!ju_^rWvB`wV`!pdGS_j?FVX~PB5!U zVqa(4IkQOU2HZVVPTIq|sZoB^MOH&*=RDW_2hcQGteJZ7)i02Q6YM;Hqfx<+l*@)v zMRMJ$4G9us^`&=>ZY|D4RuP2#IwqsD9zfCi!Uf}}@-Hp9+V^`m3#-Bf% zyrfML=?_B*9Wqq#j-|c`7LE`^p_9(+o^Cfh4Gx@(KYE`YdA9CcD)B@Gq_D zK*QVy#a@@nbDBC;rv2mv{G1Y)l{h1uc1{Ha*W|EN z-$l{B2d1sFEm}_%bC;2e`kGhNtTbLSqKonLty4mz_LB1MrsN8Luu5=q$t{A597vf) z61{AegZzx4=1MK z^-8g0yx}U&ovn+eh*{2@;e<6|>$ctLVW!j zw^%ByOo41O(9Z7@hqXA4!K15zPj4q+xRSSIc{f*P?2SNwb^2$nLi_xBlDjuY*oC;t zW%c2LZ1)Z+CxkK9kBp8y4^p}Vz9zHF5xut< zi_~AB>{z9LQz=k{^i4act=RI^-%yh?0^$lWIUWZs`&`C-^9EDoj51DU*5y<&gRw%1uw_adr6MbDRu1#9USu)$3- zrCI3^odJkK1B7fM4sokVl9}9^XreqHs0@D`!*nyG)oL*qJXv#pa0ht3%l@5HNpIt= z3@2PkQMqfQEmpPsaasD~Tb_ts7b30xqhL;} zB2-FtZ|k|E)5^}R5z4du(XF9{34$nkO?spOMTwQf=L#G=5*k-|4x75%W0?6X1e{8L z)r&iXgQfT~+WiluFUC>lCJ4B)$ojVE?i|EfjR>gHJ&gEIsFe&w_O=UwPvEV%p{Bqw zlME3a&##r&zGhIBBsd5&Rk+k4N%j1xvrVepn_n;{c8Ryb8Juh9f(npAxshw5y}A-5 z9zb(Bjv;RN`oj>$Z+>urQB4L!-&-JmGcDzS;I8aow7kU>0LLhbbD6Xk*2MxMFsnB5 zC(~fN02hEjtqt-KO*rwFxdLgZ;AEY4f-?Uiu{x_MN4lVzrjsMtqcg4t0mOt{;N4va za&jfLt7!SVM=a~F;QmiwLz+%b@Auv$-7-ANS+SA6a14bXH-Y_DJGy(`z#XxF8`rbr z+yGv}@r=`eoa2+T5MhfkCSG#br%2|LCSGiciD@S@D1&c~ITyy%{&EX^ytiRRqBg-anxoy{ovKkhIZm$9=#MC-&D@z|OX#U6eAh(Ylf%O{R8 zBbD8IIRZr^4c>X*5qG;Zjo)8QHsHwjVDm0A#x`$y$~NDo(#4U&f2^&4BwM0nA0fx_ zylVlQZ@*Nv6TsDfKsKCOPZ24;J#*Qrv)?bbDsM2!ZD)p`rd;P^q%Cjy=8b%A^KKGY zZS~D+qJS|MEUjk?_zW6-OvVTMzzBK!($H7LV+aTOZUpd*_MwJQ{ki4mKr` z8*2m;+*!aMKvMju$HiuUR_=qAlACnnBi}M6^z72?yp_A0Vui2krILg*u`Ll6!G8e$ z^0&ji;qBoyV&w(14!Hru+aU}+wtQq>{s)$gowy=;AQEP1A0*dXhrfPtZGf&aAt#rX zyiGYNK=wX338Or$7&Xb`rIT9(7gtR|2yXpsbjh^73qolmJKuDFiS^-SWqmaD;Al6w z`i_sZ0XuvF7@dV@bHiSNhS?>Z8-*z4fnv*W8XFuf`&LW1@$OfMe1li*=|MS$60|!KPm3PUVQ0r0!Q)_L%4Q=#R@nyh&-XjEU&o zp;To{U^D|_r5V0|htoAu%n}ROGdFZW1(NXgnG(wgvx~I1<2Y97ZTr=^E=hp<%4Vg7 zL1m+>94RwFQI1cUZ+v}3wQn9RdQ+PY^-bCzlY+im8xr2l{Je9dL>8H2F{ukp?Z~9V z6_dF<3Hw-qISv)Oj0Lcf8b|Q@vN&2Pje9f`{@c}CEEUp!J(T0jz$0r*!VVXQFtKTm z;`AbFi2T_~SUv0}hxt>1?*f8tzMocFMFn54f=J&$-@Y3IB!Uuo`-~#EXslOqSZ^rF zPxk-uCy3ztE%UnnFHjz@;qWx9QA#@?4$+n2aD-r_n;)M2@I*46j(FYvfLKZ!ri@v6 z4*$l#_HW#Or1#M4z0MXtFl6r+)CO1QQxcU$D9PkAYCD>bB&G9!V{2Jl%?3)T$Yq!+4OpzQs|#&X$)`p1K)x3`xeU{FY))Ee_1|&) zV4o4MQif9NJq_E@v$&$1zGfQLDr0dDPkkHMg?__-wh~$0gud!gD<8#P6MZB8VYk+u z9^`{#5FGzzCeceTk$vA8BUnbe^!cXnM9jiG_v*@8Lq4i#N0{PIN$y98QFbl7(`iPN zl}ku7P@W&rH`ur%l{%tGlYL#smGP2JI$OvgAl?r|6%kPF(Z*UmS7%qrQ{~= zKE#ycb0qeUDHP+CoL>{V^Nu^Jpkss!ChPWprPMY86dH5;3B5=nUJ(XBs2qG19e7Um zakgnP9yBrh-{pXxT(1F`F3v|Nj;xPqY5hbR4S-O5c9u)cr^W5;muL{gP37Jx2&gR0 zREv^b6^S)GejIDANSUNFuzj}QFd2PMiw*jAj zpgdanKzwR;HXkF+#j_u#YmcWitC21vgB3DgX5HjrylZzocbe8`q;{qV{84og1iO~% z_%Ti+BE(nhVV<26<^LiAY;Pt*5{r>l`FDpL#%DxXU$cexrwVL6Z8@t8-cE`HjpPDq zpUt7OB%>Y?OA)OkTs;))>Pl^vc3o+IAk_e$6;z%IT}7ZZf2gIb65@%^Et1EdaA;@a zoDLdRw#*A>VL{FUrYE;)CQ1`UWq~?G88O-zBmpHK30G_aKGW(upMc*D{ruNInU@~p z7KGO!2r>xJhUO=Z?Vy7^HTRg-YcQ=4|91?U2ohh)%nwS9As>lm*$pAl=f|~wlGX*+ zO$5bHdO-xyPdZsez)BF3Dxyh*CvQ)j6O2zj!KV0rk|Bt@U4Xq%@*^e7q!UN<09oY1 zEZU6txI6r4#>N|V2BTU_PSc1O;OPIXS;C}pF&`#v`{u2UO)3PX2LWO}t|JgW=s=JpPW_PhGTjWq@F_8x3&_NDxJi*-Hq6F1Z62_#(I_te}uC|%m&-( zkLl$r-#qyK!5HxSbxT+=QGfX~5%7y&S{K3PRQ7&}L8XcW{b_4|KL-JuhY|~?;`@6K zSte&0rrk1upJVEMIC5_)7?HH=JMinuZ^(Q>;qN^3^9hD`1SdE{S2efDfH&N(ap#~8 zxhSF}1ErBLsz~#Tp^gqSF1~$MKh<~>*&yGRa;~& zXl$_X-8`fjye&6>c7#|I%h0Ck69&2#&&AYyZQ^9GlU}3S#Ei7FLa|7ylc>wn8qQsC zZ{xvXG5;zL<|mrgI5If)3clS87GUVEL^wC10ZY z&;~nsoZs$%mHIa8Lj7evVN|WA4YA2SLEC%%0JPj(<271;P_4_oL>Wk^#76Gpl-V9C z(yf0a@Ct;~mOa6IFUSEVL%NT6HTO$OBLvOXc;xY&oNx1i3OVC~XWkT-wU^!TCkP+B z@IZaq1$5rTG@q6qD;;jh_f-q3fs|`kLF=~Wwxu5{C>7x7jrA&3P6GYba&^Oq)2Z)r zqU8HV6`st0uf8DjT8h|mBEff=Sp=S}+lcrFH0SxtS2@$)$Yhm;MiWgOm!>$hVh%`J znQX{I2F=pew6O_k0-5RE*doM$Y?%;@SSD-cNu_*(@>2!VGB!6IlOIMZ&gTZvqKL!_+amS}q%$ z7eI9!u*fZr9CR}~(;h9@L^Zd{FRLgv2PD{vLHB0%t~3Xgv>Ilo2S4)|`ueSaMlx~6 zDDrSRHRNW+P3hNPu?lW($I%JMxjICw=_z-%kF}x7Oiug7e;W#Zk8ifbgD5TL6XK2v zvEna(T8brm7CyOK{YsKnOyA!Iw?6HOGg;=DHn`{PwXzPn$+r8zcEbf~BKX=a%lDXl z^-!v{O-JGikZS_7x2GtSf|gf|p~Rw>r3EyzxG6~ zwz#w*;ZK)4L}1|g8YJC*S#_3JL+*?E>53eGBtJHfCJGOHRaYU>Slf(E$1?1@%Xc5X zvVz!Fg})?(^=oA9E;%2Fc9S0wh^L1ID^i1WHI;}S7atBd9neR>!M=lI_g|fC7A_mE zIt9@hGxF6w;%p;K$vQl3AhZnL(W>003VtHtPQzzHf&*MVak{h5IBMlhZCC8>_o!-r zQFwY3;K!R%*8o4T@_k?0G@VkAbQ95W{}V54StD|Rd{DPaVlKVv0RR5D#T!@mUeD(vi{5G8n8-2D)C%o2Km0x~ zVR#4ODeC#L8TnY?=z$s)2Cg{qIz$J5=4|f}fu4K0pDUwt;{R8%5-qf`vu^!0M)l*3 zfysV>Om_r%aV{!aVUP3iIFx>sQa~&)N418T?%>Mv!M)R+92(VKuDm4A@=vp<yGZO0_+CtN0jP=Nh^D#wlJ zi}q5OsOv$2_HJGjwYC2{2*sQ;rXZJpdv7ZdM7Fwv zyZ8gj!B`lBLs}%^M41Mi1f(rBI#&4#fQx0fbwZJGbYW|`zW+5MbnUr)tJvZp35>ix z1;l*NgmVjJ4RgutuhlXay~K}>P&?SS@GW?HK8GD<)CHI1^8Nk#Yf@wLUa{5S5v#(K z{oLNAw=SOm4amu;(?`00!YItG0HLWhb`AtS6hEP*weSgL1)NP|u5N|hzJhPq6j^Be zBYzTsC;%ti8kk;hJm|J*TRb2iOMKRR2$tDKS9;rgsxrTwTq$|f3FOv`w%^JDGDVHD zX%p&g@oNpkH`K+WJa3U^v;c8yEUqN;`@7kcd&Q^#`PyrHuZA3dXF8tmohk}DTIas(}bA~Pky(4krC3q(>x$zlYa&2kbcIw$I!I>D#6WDy)zzv-GkfuIa zm^}4K|2_D#RM^;mrn(sS?0Rqa8>XX<5cMBqZfYnc7Po*4sO-3B_zs);#32Ri>aQl3 z5x~wK=`W|wE-~#n_SUdRt?v=NqJCR>|$Ko^4H7Ps6#{7F;8~=}5CMJW6ppl*L9X~`mGN&Y<1HwJzO$ru6+qObP z30Wt_a{7?QOp9=wTYf`^p)5%=NsQIwRVoN=&y(i)7TUxNWrs{wpWQ|bc@%mbz>_&g zQmgpHu&cANHjyx=B9j<8lBOAvEpAh@P-A)=YjuQw3lv{+$;*;jgsbfQ0JI@2-%f~! zY%SE~J)lnYT;D9LvhJnYy~}z3eVb`rt}B4pA^K5FYo6~+SOn+&`?b)b4J4!}|J%$O zebP_{Up~rQMT3M|ZV!pc?ZjA0Vg!-m$Z)d{I$1rUC|tr?$3p0EJni6Z-Q*aynJ{KnA|b}NM^%i}m1Q?QVR7ov?VXz?y%zlSFqUBqEsC>wM1+LD4gPu67|N-H&d zR~cJD4|FKWwK!Ks3Br3}z|!wqPcHV{xf1_>RUnD;gVJ!pF(?tUv1rgB9UguzC;Hs> zL%`R|72@C0_DY;d)>q60aZeWt!nBa7PnfX zcnfrC{=6M82j$l`sxahWyXqkTcg`>G4w6zP_Oeq+*LG|WS`0k;LI+h)v2(}je$sGWaP}*D9Qyt5sm


    u@>97C$X8Ai`>e>4$ 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%0AK>T3GW+L7Ta8eWULiBuw5P$5!PW8($ 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 diff --git a/doc/src/LogisticRegression/LogReg.do.txt b/doc/src/LogisticRegression/LogReg.do.txt index 972550f74..7114b7915 100644 --- a/doc/src/LogisticRegression/LogReg.do.txt +++ b/doc/src/LogisticRegression/LogReg.do.txt @@ -451,7 +451,19 @@ if __name__ == "__main__": !split ===== The Credit Card example ===== Here we use the the "credit card data":"https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients". -The data are from an extensive database from Taiwan and include more than ten predictors. More text and clean up of code will be added. +The data are from an extensive database from Taiwan and include more than ten predictors. + +For categorical data -Scikit-Learn- provides a so-called _one-hot encoder_. +This is called one-hot +encoding, because only one attribute will be equal to 1 (hot), while the others will be 0 (cold). +_Scikit-Learn_ provides a OneHotEncoder encoder to convert integer categorical values into one-hot +!bc pycod +from sklearn.preprocessing import OneHotEncoder +encoder = OneHotEncoder() +!ec + +!split +===== How to read the Credit Card data ===== !bc pycod import pandas as pd @@ -546,116 +558,3 @@ logReg = LogisticRegression() gridSearch = GridSearchCV(logReg, parameters, cv=5, scoring=scoring, refit='roc_auc') !ec -!bc pycod - -# "refit" gives the metric used deciding best model. -# See more http://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html -gridSearch.fit(XTrain, yTrain.ravel()) - -def gridSearchSummary(method, scoring): - """Prints best parameters from Grid search - and AUC with standard deviation for all - parameter combos """ - - method = eval(method) - if scoring == 'accuracy': - mean = 'mean_test_score' - sd = 'std_test_score' - elif scoring == 'auc': - mean = 'mean_test_roc_auc' - sd = 'std_test_roc_auc' - print("Best: %f using %s" % (method.best_score_, method.best_params_)) - means = method.cv_results_[mean] - stds = method.cv_results_[sd] - params = method.cv_results_['params'] - for mean, stdev, param in zip(means, stds, params): - print("%f (%f) with: %r" % (mean, stdev, param)) - -def createConfusionMatrix(method, printOut=True): - """ - Computes and prints confusion matrices, accuracy scores, - and AUC for test and training sets - """ - confusionArray = np.zeros(6, dtype=object) - method = eval(method) - - # Train - yPredTrain = method.predict(XTrain) - yPredTrain = (yPredTrain > 0.5) - cm = confusion_matrix( - yTrain, yPredTrain) - cm = np.around(cm/cm.sum(axis=1)[:,None], 2) - confusionArray[0] = cm - - accScore = accuracy_score(yTrain, yPredTrain) - confusionArray[1] = accScore - - AUC = roc_auc_score(yTrain, yPredTrain) - confusionArray[2] = AUC - - if printOut: - print('\n################### Training ###############') - print('\nTraining Confusion matrix: \n', cm) - print('\nTraining Accuracy score: \n', accScore) - print('\nTrain AUC: \n', AUC) - - # Test - yPred = method.predict(XTest) - yPred = (yPred > 0.5) - cm = confusion_matrix( - yTest, yPred) - cm = np.around(cm/cm.sum(axis=1)[:,None], 2) - confusionArray[3] = cm - - accScore = accuracy_score(yTest, yPred) - confusionArray[4] = accScore - - AUC = roc_auc_score(yTest, yPred) - confusionArray[5] = AUC - - if printOut: - print('\n################### Testing ###############') - print('\nTest Confusion matrix: \n', cm) - print('\nTest Accuracy score: \n', accScore) - print('\nTestAUC: \n', AUC) - - return confusionArray - - -import matplotlib.pyplot as plt -import seaborn -import scikitplot as skplt - -seaborn.set(style="white", context="notebook", font_scale=1.5, - rc={"axes.grid": True, "legend.frameon": False, -"lines.markeredgewidth": 1.4, "lines.markersize": 10}) -seaborn.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 4.5}) - -yPred = gridSearch.predict_proba(XTest) -print(yTest.ravel().shape, yPred.shape) - -#skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred_onehot) -skplt.metrics.plot_cumulative_gain(yTest.ravel(), yPred) - -defaults = sum(yTest == 1) -total = len(yTest) -defaultRate = defaults/total -def bestCurve(defaults, total, defaultRate): - x = np.linspace(0, 1, total) - - y1 = np.linspace(0, 1, defaults) - y2 = np.ones(total-defaults) - y3 = np.concatenate([y1,y2]) - return x, y3 - -x, best = bestCurve(defaults=defaults, total=total, defaultRate=defaultRate) -plt.plot(x, best) - - -plt.show() - -!ec - - -!split -===== Analysis of the credi card example =====