Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

There is a 2 part. need to take dataset from the keggle and please follow the rubric and instruction.

1 answer below »
There is a 2 part. need to take dataset from the keggle and please follow the rubric and instruction.
Answered Same Day May 11, 2021

Solution

Rohith answered on May 12 2021
148 Votes
__MACOSX/._57503
57503/.DS_Store
__MACOSX/57503/._.DS_Store
57503/57503_1.html


In [1]:

!wget -O train.csv https:
aw.githubusercontent.com/tiwari91/Housing-Prices/maste
train.csv
--2020-05-11 16:41:37-- https:
aw.githubusercontent.com/tiwari91/Housing-Prices/maste
train.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 460676 (450K) [text/plain]
Saving to: ‘train.csv’
train.csv 100%[===================>] 449.88K --.-KB/s in 0.06s
2020-05-11 16:41:38 (7.11 MB/s) - ‘train.csv’ saved [460676/460676]
In [2]:

ls
sample_data/ train.csv
EDA¶
In [3]:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from scipy.stats import norm
from sklearn.preprocessing import StandardScale
from scipy import stats
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline
us
local/li
python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
import pandas.util.testing as tm
In [0]:

df_train = pd.read_csv('train.csv')

In [5]:

df_train.columns

Out[5]:
Index(['Id', 'MSSubClass', 'MSZoning', 'LotFrontage', 'LotArea', 'Street',
'Alley', 'LotShape', 'LandContour', 'Utilities', 'LotConfig',
'LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType',
'HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd',
'RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType',
'MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual',
'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1',
'BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating',
'HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF',
'LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath',
'HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual',
'TotRmsAbvGrd', 'Functional', 'Fireplaces', 'FireplaceQu', 'GarageType',
'GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual',
'GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF',
'EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'PoolQC',
'Fence', 'MiscFeature', 'MiscVal', 'MoSold', 'YrSold', 'SaleType',
'SaleCondition', 'SalePrice'],
dtype='object')
In [6]:

#descriptive statistics summary
df_train['SalePrice'].describe()

Out[6]:
count 1460.000000
mean 180921.195890
std 79442.502883
min 34900.000000
25% 129975.000000
50% 163000.000000
75% 214000.000000
max 755000.000000
Name: SalePrice, dtype: float64
In [7]:

#histogram
sns.distplot(df_train['SalePrice']);
In [8]:

#skewness and kurtosis
print("Skewness: %f" % df_train['SalePrice'].skew())
print("Kurtosis: %f" % df_train['SalePrice'].kurt())
Skewness: 1.882876
Kurtosis: 6.536282
In [9]:

#scatter plot grlivarea/saleprice
var = 'GrLivArea'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
data.plot.scatter(x=var, y='SalePrice', ylim=(0,800000));
In [10]:

#scatter plot totalbsmtsf/saleprice
var = 'TotalBsmtSF'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
data.plot.scatter(x=var, y='SalePrice', ylim=(0,800000));
In [11]:

#box plot overallqual/saleprice
var = 'OverallQual'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
f, ax = plt.subplots(figsize=(8, 6))
fig = sns.boxplot(x=var, y="SalePrice", data=data)
fig.axis(ymin=0, ymax=800000);
In [12]:

var = 'YearBuilt'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
f, ax = plt.subplots(figsize=(16, 8))
fig = sns.boxplot(x=var, y="SalePrice", data=data)
fig.axis(ymin=0, ymax=800000);
plt.xticks(rotation=90);
In [13]:

#co
elation matrix
co
mat = df_train.co
()
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(co
mat, vmax=.8, square=True);
In [14]:

#saleprice co
elation matrix
k = 10 #number of variables for heatmap
cols = co
mat.nlargest(k, 'SalePrice')['SalePrice'].index
cm = np.co
coef(df_train[cols].values.T)
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values)
plt.show()
In [15]:

#scatterplot
sns.set()
cols = ['SalePrice', 'OverallQual', 'GrLivArea', 'GarageCars', 'TotalBsmtSF', 'FullBath', 'YearBuilt']
sns.pairplot(df_train[cols], size = 2.5)
plt.show();
In [16]:

#missing data
total = df_train.isnull().sum().sort_values(ascending=False)
percent = (df_train.isnull().sum()/df_train.isnull().count()).sort_values(ascending=False)
missing_data = pd.concat([total, percent], axis=1, keys=['Total', 'Percent'])
missing_data.head(20)

Out[16]:
                Total        Percent
        PoolQC        1453        0.995205
        MiscFeature        1406        0.963014
        Alley        1369        0.937671
        Fence        1179        0.807534
        FireplaceQu        690        0.472603
        LotFrontage        259        0.177397
        GarageCond        81        0.055479
        GarageType        81        0.055479
        GarageYrBlt        81        0.055479
        GarageFinish        81        0.055479
        GarageQual        81        0.055479
        BsmtExposure        38        0.026027
        BsmtFinType2        38        0.026027
        BsmtFinType1        37        0.025342
        BsmtCond        37        0.025342
        BsmtQual        37        0.025342
        MasVnrArea        8        0.005479
        MasVnrType        8        0.005479
        Electrical        1        0.000685
        Utilities        0        0.000000
In [17]:

#dealing with missing data
df_train = df_train.drop((missing_data[missing_data['Total'] > 1]).index,1)
df_train = df_train.drop(df_train.loc[df_train['Electrical'].isnull()].index)
df_train.isnull().sum().max() #just checking that there's no missing data missing...

Out[17]:
0
In [18]:

#standardizing data
saleprice_scaled = StandardScaler().fit_transform(df_train['SalePrice'][:,np.newaxis]);
low_range = saleprice_scaled[saleprice_scaled[:,0].argsort()][:10]
high_range= saleprice_scaled[saleprice_scaled[:,0].argsort()][-10:]
print('outer range (low) of the distribution:')
print(low_range)
print('\nouter range (high) of the distribution:')
print(high_range)
outer range (low) of the distribution:
[[-1.83820775]
[-1.83303414]
[-1.80044422]
[-1.78282123]
[-1.77400974]
[-1.62295562]
[-1.6166617 ]
[-1.58519209]
[-1.58519209]
[-1.57269236]]
outer range (high) of the distribution:
[[3.82758058]
[4.0395221 ]
[4.49473628]
[4.70872962]
[4.728631 ]
[5.06034585]
[5.42191907]
[5.58987866]
[7.10041987]
[7.22629831]]
In [19]:

#bivariate analysis saleprice/grlivarea
var = 'GrLivArea'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
data.plot.scatter(x=var, y='SalePrice', ylim=(0,800000));
'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'. Please use a 2-D a
ay with a single row if you really want to specify the same RGB or RGBA value for all points.

In [0]:

#deleting points
df_train.sort_values(by = 'GrLivArea', ascending = False)[:2]
df_train = df_train.drop(df_train[df_train['Id'] == 1299].index)
df_train = df_train.drop(df_train[df_train['Id'] == 524].index)

In [21]:

#bivariate analysis saleprice/grlivarea
var = 'TotalBsmtSF'
data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)
data.plot.scatter(x=var, y='SalePrice', ylim=(0,800000));
'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'. Please use a 2-D a
ay with a single row if you really want to specify the same RGB or RGBA value for all points.

In [22]:

#histogram and normal probability plot
sns.distplot(df_train['SalePrice'], fit=norm);
fig = plt.figure()
es = stats.probplot(df_train['SalePrice'], plot=plt)
In [0]:

#applying log transformation
df_train['SalePrice'] = np.log(df_train['SalePrice'])

In [24]:

#transformed histogram and normal probability plot
sns.distplot(df_train['SalePrice'], fit=norm);
fig = plt.figure()
es = stats.probplot(df_train['SalePrice'], plot=plt)
In [25]:

#histogram and normal probability plot
sns.distplot(df_train['GrLivArea'], fit=norm);
fig = plt.figure()
es = stats.probplot(df_train['GrLivArea'], plot=plt)
In [26]:

#transformed histogram and normal probability plot
sns.distplot(df_train['GrLivArea'], fit=norm);
fig = plt.figure()
es = stats.probplot(df_train['GrLivArea'], plot=plt)
In [27]:

#histogram and normal probability plot
sns.distplot(df_train['TotalBsmtSF'], fit=norm);
fig = plt.figure()
es = stats.probplot(df_train['TotalBsmtSF'], plot=plt)
In [0]:

#create column for new variable (one is enough because it's a binary categorical feature)
#if area>0 it gets 1, for area==0 it gets 0
df_train['HasBsmt'] = pd.Series(len(df_train['TotalBsmtSF']), index=df_train.index)
df_train['HasBsmt'] = 0
df_train.loc[df_train['TotalBsmtSF']>0,'HasBsmt'] = 1

In [0]:

#transform data
df_train.loc[df_train['HasBsmt']==1,'TotalBsmtSF'] = np.log(df_train['TotalBsmtSF'])

In [30]:

#histogram and normal probability plot
sns.distplot(df_train[df_train['TotalBsmtSF']>0]['TotalBsmtSF'], fit=norm);
fig = plt.figure()
es = stats.probplot(df_train[df_train['TotalBsmtSF']>0]['TotalBsmtSF'], plot=plt)
In [31]:

#scatter plot
plt.scatter(df_train['GrLivArea'], df_train['SalePrice']);
In [32]:

#scatter plot
plt.scatter(df_train[df_train['TotalBsmtSF']>0]['TotalBsmtSF'], df_train[df_train['TotalBsmtSF']>0]['SalePrice']);
Regression¶
In [33]:

#import some necessary li
airies
import numpy as np # linear alge
a
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
%matplotlib inline
import matplotlib.pyplot as plt # Matlab-style plotting
import seaborn as sns
color = sns.color_palette()
sns.set_style('darkgrid')
import warnings
def ignore_warn(*args, **kwargs):
pass
warnings.warn = ignore_warn #ignore annoying warning (from sklearn and seaborn)
from scipy import stats
from scipy.stats import norm, skew #for some statistics
pd.set_option('display.float_format', lambda x: '{:.3f}'.format(x)) #Limiting floats output to 3 decimal points
from subprocess import check_output
!wget -O test.csv https:
aw.githubusercontent.com/tiwari91/Housing-Prices/maste
test.csv
--2020-05-11 16:48:32-- https:
aw.githubusercontent.com/tiwari91/Housing-Prices/maste
test.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 451405 (441K) [text/plain]
Saving to: ‘test.csv’
test.csv 100%[===================>] 440.83K --.-KB/s in 0.06s
2020-05-11 16:48:32 (6.84 MB/s) - ‘test.csv’ saved [451405/451405]
In [0]:

#Now let's import and put the train and test datasets in pandas dataframe
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')

In [35]:

#check the numbers of samples and features
print("The train data size before dropping Id feature is : {} ".format(train.shape))
print("The test data size before dropping Id feature is : {} ".format(test.shape))
#Save the 'Id' column
train_ID = train['Id']
test_ID = test['Id']
#Now drop the 'Id' colum since it's unnecessary for the prediction process.
train.drop("Id", axis = 1, inplace = True)
test.drop("Id", axis = 1, inplace = True)
#check again the data size after dropping the 'Id' variable
print("\nThe train data size after dropping Id feature is : {} ".format(train.shape))
print("The test data size after dropping Id feature is : {} ".format(test.shape))
The train data size before dropping Id feature is : (1460, 81)
The test data size before dropping Id feature is : (1459, 80)
The train data size after dropping Id feature is : (1460, 80)
The test data size after dropping Id feature is : (1459, 79)
Data Preproceesing¶
In [36]:

fig, ax = plt.subplots()
ax.scatter(x = train['GrLivArea'], y = train['SalePrice'])
plt.ylabel('SalePrice', fontsize=13)
plt.xlabel('GrLivArea', fontsize=13)
plt.show()
In [37]:

#Deleting outliers
train = train.drop(train[(train['GrLivArea']>4000) & (train['SalePrice']<300000)].index)
#Check the graphic again
fig, ax = plt.subplots()
ax.scatter(train['GrLivArea'], train['SalePrice'])
plt.ylabel('SalePrice', fontsize=13)
plt.xlabel('GrLivArea', fontsize=13)
plt.show()
In [38]:

sns.distplot(train['SalePrice'] , fit=norm);
# Get the fitted parameters used by the function
(mu, sigma) = norm.fit(train['SalePrice'])
print( '\n mu = {:.2f} and sigma = {:.2f}\n'.format(mu, sigma))
#Now plot the distribution
plt.legend(['Normal dist. ($\mu=$ {:.2f} and $\sigma=$ {:.2f} )'.format(mu, sigma)],
loc='best')
plt.ylabel('Frequency')
plt.title('SalePrice distribution')
#Get also the QQ-plot
fig = plt.figure()
es = stats.probplot(train['SalePrice'], plot=plt)
plt.show()
mu = 180932.92 and sigma = 79467.79
In [39]:

#We use the numpy fuction log1p which applies log(1+x) to all elements of the column
train["SalePrice"] = np.log1p(train["SalePrice"])
#Check the new distribution
sns.distplot(train['SalePrice'] , fit=norm);
# Get the fitted parameters used by the function
(mu, sigma) = norm.fit(train['SalePrice'])
print( '\n mu = {:.2f} and sigma = {:.2f}\n'.format(mu, sigma))
#Now plot the distribution
plt.legend(['Normal dist. ($\mu=$ {:.2f} and $\sigma=$ {:.2f} )'.format(mu, sigma)],
loc='best')
plt.ylabel('Frequency')
plt.title('SalePrice distribution')
#Get also the QQ-plot
fig = plt.figure()
es = stats.probplot(train['SalePrice'], plot=plt)
plt.show()
mu = 12.02 and sigma = 0.40
Features Engineering¶
In [40]:

ntrain = train.shape[0]
ntest = test.shape[0]
y_train = train.SalePrice.values
all_data = pd.concat((train, test)).reset_index(drop=True)
all_data.drop(['SalePrice'], axis=1, inplace=True)
print("all_data size is : {}".format(all_data.shape))
all_data size is : (2917, 79)
In [41]:

all_data_na = (all_data.isnull().sum() / len(all_data)) * 100
all_data_na = all_data_na.drop(all_data_na[all_data_na == 0].index).sort_values(ascending=False)[:30]
missing_data = pd.DataFrame({'Missing Ratio' :all_data_na})
missing_data.head(20)

Out[41]:
                Missing Ratio
        PoolQC        99.691
        MiscFeature        96.400
        Alley        93.212
        Fence        80.425
        FireplaceQu        48.680
        LotFrontage        16.661
        GarageFinish        5.451
        GarageYrBlt        5.451
        GarageQual        5.451
        GarageCond        5.451
        GarageType        5.382
        BsmtExposure        2.811
        BsmtCond        2.811
        BsmtQual        2.777
        BsmtFinType2        2.743
        BsmtFinType1        2.708
        MasVnrType        0.823
        MasVnrArea        0.788
        MSZoning        0.137
        BsmtFullBath        0.069
In [42]:

f, ax = plt.subplots(figsize=(15, 12))
plt.xticks(rotation='90')
sns.barplot(x=all_data_na.index, y=all_data_na)
plt.xlabel('Features', fontsize=15)
plt.ylabel('Percent of missing values', fontsize=15)
plt.title('Percent missing data by feature', fontsize=15)

Out[42]:
Text(0.5, 1.0, 'Percent missing data by feature')

In [43]:

#Co
elation map to see how features are co
elated with SalePrice
co
mat = train.co
()
plt.subplots(figsize=(12,9))
sns.heatmap(co
mat, vmax=0.9, square=True)

Out[43]:
matplotlib.axes._subplots.AxesSubplot at 0x7f77ca1a3c50

In [0]:

all_data["PoolQC"] = all_data["PoolQC"].fillna("None")

In [0]:

all_data["MiscFeature"] = all_data["MiscFeature"].fillna("None")

In [0]:

all_data["Alley"] = all_data["Alley"].fillna("None")

In [0]:

all_data["Fence"] = all_data["Fence"].fillna("None")

In [0]:

all_data["FireplaceQu"] = all_data["FireplaceQu"].fillna("None")

In [0]:

#Group by neighborhood and fill in missing value by the median LotFrontage of all the neighborhood
all_data["LotFrontage"] = all_data.groupby("Neighborhood")["LotFrontage"].transform(
lambda x: x.fillna(x.median()))

In [0]:

for col in ('GarageType', 'GarageFinish', 'GarageQual', 'GarageCond'):
all_data[col] = all_data[col].fillna('None')

In [0]:

for col in ('GarageYrBlt', 'GarageArea', 'GarageCars'):
all_data[col] = all_data[col].fillna(0)

In [0]:

for col in ('BsmtFinSF1', 'BsmtFinSF2', 'BsmtUnfSF','TotalBsmtSF', 'BsmtFullBath', 'BsmtHalfBath'):
all_data[col] = all_data[col].fillna(0)

In [0]:

for col in ('BsmtQual', 'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinType2'):
all_data[col] = all_data[col].fillna('None')

In [0]:

all_data["MasVnrType"] = all_data["MasVnrType"].fillna("None")
all_data["MasVnrArea"] = all_data["MasVnrArea"].fillna(0)

In [0]:

all_data['MSZoning'] = all_data['MSZoning'].fillna(all_data['MSZoning'].mode()[0])

In [0]:

all_data = all_data.drop(['Utilities'], axis=1)

In [0]:

all_data["Functional"] = all_data["Functional"].fillna("Typ")

In [0]:

all_data['Electrical'] = all_data['Electrical'].fillna(all_data['Electrical'].mode()[0])

In [0]:

all_data['KitchenQual'] = all_data['KitchenQual'].fillna(all_data['KitchenQual'].mode()[0])

In [0]:

all_data['Exterior1st'] = all_data['Exterior1st'].fillna(all_data['Exterior1st'].mode()[0])
all_data['Exterior2nd'] = all_data['Exterior2nd'].fillna(all_data['Exterior2nd'].mode()[0])

In [0]:

all_data['SaleType'] = all_data['SaleType'].fillna(all_data['SaleType'].mode()[0])

In [0]:

all_data['MSSubClass'] = all_data['MSSubClass'].fillna("None")

In [63]:

#Check remaining missing values if any
all_data_na = (all_data.isnull().sum() / len(all_data)) * 100
all_data_na = all_data_na.drop(all_data_na[all_data_na == 0].index).sort_values(ascending=False)
missing_data = pd.DataFrame({'Missing Ratio' :all_data_na})
missing_data.head()

Out[63]:
                Missing Ratio
In [0]:

#MSSubClass=The building class
all_data['MSSubClass'] = all_data['MSSubClass'].apply(str)
#Changing OverallCond into a categorical variable
all_data['OverallCond'] = all_data['OverallCond'].astype(str)
#Year and month sold are transformed into categorical features.
all_data['YrSold'] = all_data['YrSold'].astype(str)
all_data['MoSold'] = all_data['MoSold'].astype(str)

In [65]:

from sklearn.preprocessing import LabelEncode
cols = ('FireplaceQu', 'BsmtQual', 'BsmtCond', 'GarageQual', 'GarageCond',
'ExterQual', 'ExterCond','HeatingQC', 'PoolQC', 'KitchenQual', 'BsmtFinType1',
'BsmtFinType2', 'Functional', 'Fence', 'BsmtExposure', 'GarageFinish', 'LandSlope',
'LotShape', 'PavedDrive', 'Street', 'Alley', 'CentralAir', 'MSSubClass', 'OverallCond',
'YrSold', 'MoSold')
# process columns, apply LabelEncoder to categorical features
for c in cols:
lbl = LabelEncoder()
lbl.fit(list(all_data[c].values))
all_data[c] = lbl.transform(list(all_data[c].values))
# shape
print('Shape all_data: {}'.format(all_data.shape))
Shape all_data: (2917, 78)
In [0]:

# Adding total sqfootage feature
all_data['TotalSF'] = all_data['TotalBsmtSF'] + all_data['1stFlrSF'] + all_data['2ndFlrSF']

In [67]:

numeric_feats = all_data.dtypes[all_data.dtypes != "object"].index
# Check the skew of all numerical features
skewed_feats = all_data[numeric_feats].apply(lambda x: skew(x.dropna())).sort_values(ascending=False)
print("\nSkew in numerical features: \n")
skewness = pd.DataFrame({'Skew' :skewed_feats})
skewness.head(10)
Skew in numerical features:
Out[67]:
                Skew
        MiscVal        21.940
        PoolArea        17.689
        LotArea        13.109
        LowQualFinSF        12.085
        3SsnPorch        11.372
        LandSlope        4.973
        KitchenAbvGr        4.301
        BsmtFinSF2        4.145
        EnclosedPorch        4.002
        ScreenPorch        3.945
In [68]:

skewness = skewness[abs(skewness) > 0.75]
print("There are {} skewed numerical features to Box Cox transform".format(skewness.shape[0]))
from scipy.special import boxcox1p
skewed_features = skewness.index
lam = 0.15
for feat in skewed_features:
#all_data[feat] += 1
all_data[feat] = boxcox1p(all_data[feat], lam)

#all_data[skewed_features] = np.log1p(all_data[skewed_features])
There are 59 skewed numerical features to Box Cox transform
In [69]:

all_data = pd.get_dummies(all_data)
print(all_data.shape)
(2917, 220)
In [0]:

train = all_data[:ntrain]
test = all_data[ntrain:]

Modeling¶
In [0]:

from sklearn.linear_model import ElasticNet, Lasso, BayesianRidge, LassoLarsIC
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegresso
from sklearn.kernel_ridge import KernelRidge
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import RobustScale
from sklearn.base import BaseEstimator, TransformerMixin, RegressorMixin, clone
from sklearn.model_selection import KFold, cross_val_score, train_test_split
from sklearn.metrics import mean_squared_e
o
import xgboost as xg
import lightgbm as lg

In [0]:

#Validation function
n_folds = 5
def rmsle_cv(model):
kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_e
or", cv = kf))
return(rmse)

In [0]:

lasso = make_pipeline(RobustScaler(), Lasso(alpha =0.0005, random_state=1))

In [0]:

ENet = make_pipeline(RobustScaler(), ElasticNet(alpha=0.0005, l1_ratio=.9, random_state=3))

In [0]:

KRR = KernelRidge(alpha=0.6, kernel='polynomial', degree=2, coef0=2.5)

In [0]:

GBoost = GradientBoostingRegressor(n_estimators=3000, learning_rate=0.05,
max_depth=4, max_features='sqrt',
min_samples_leaf=15, min_samples_split=10,
loss='huber', random_state =5)

In [0]:

# XG Boost
model_xgb = xgb.XGBRegressor(colsample_bytree=0.4603, gamma=0.0468,
learning_rate=0.05, max_depth=3,
min_child_weight=1.7817, n_estimators=2200,
reg_alpha=0.4640, reg_lambda=0.8571,
subsample=0.5213, silent=1,
random_state =7, nthread = -1)

In [0]:

# Light GBM
model_lgb = lgb.LGBMRegressor(objective='regression',num_leaves=5,
learning_rate=0.05, n_estimators=720,
max_bin = 55, bagging_fraction = 0.8,
bagging_freq = 5, feature_fraction = 0.2319,
feature_fraction_seed=9, bagging_seed=9,
min_data_in_leaf =6, min_sum_hessian_in_leaf = 11)

In [79]:

score = rmsle_cv(lasso)
print("\nLasso score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
Lasso score: 0.1115 (0.0074)
In [80]:

score = rmsle_cv(ENet)
print("ElasticNet score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
ElasticNet score: 0.1116 (0.0074)
In [81]:

score = rmsle_cv(KRR)
print("Kernel Ridge score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
Kernel Ridge score: 0.1153 (0.0075)
In [82]:

score = rmsle_cv(GBoost)
print("Gradient Boosting score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
Gradient Boosting score: 0.1167 (0.0083)
In [83]:

score = rmsle_cv(model_xgb)
print("Xgboost score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
Xgboost score: 0.1150 (0.0066)
In [84]:

score = rmsle_cv(model_lgb)
print("LGBM score: {:.4f} ({:.4f})\n" .format(score.mean(), score.std()))
LGBM score: 0.1176 (0.0062)
Stacking models¶
In [0]:

class AveragingModels(BaseEstimator, RegressorMixin, TransformerMixin):
def __init__(self, models):
self.models = models

# we define clones of the original models to fit the data in
def fit(self, X, y):
self.models_ = [clone(x) for x in self.models]

# Train cloned base models
for model in self.models_:
model.fit(X, y)
return self

#Now we do the predictions for cloned models and average them
def predict(self, X):
predictions = np.column_stack([
model.predict(X) for model in self.models_
])
return np.mean(predictions, axis=1)
In [86]:

averaged_models = AveragingModels(models = (ENet, GBoost, KRR, lasso))
score = rmsle_cv(averaged_models)
print(" Averaged base models score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
Averaged base models score: 0.1087 (0.0077)
In [0]:

class StackingAveragedModels(BaseEstimator, RegressorMixin, TransformerMixin):
def __init__(self, base_models, meta_model, n_folds=5):
self.base_models = base_models
self.meta_model = meta_model
self.n_folds = n_folds

# We again fit the data on clones of the original models
def fit(self, X, y):
self.base_models_ = [list() for x in self.base_models]
self.meta_model_ = clone(self.meta_model)
kfold = KFold(n_splits=self.n_folds, shuffle=True, random_state=156)

# Train cloned base models then create out-of-fold predictions
# that are needed to train the cloned meta-model
out_of_fold_predictions = np.zeros((X.shape[0], len(self.base_models)))
for i, model in enumerate(self.base_models):
for train_index, holdout_index in kfold.split(X, y):
instance = clone(model)
self.base_models_[i].append(instance)
instance.fit(X[train_index], y[train_index])
y_pred = instance.predict(X[holdout_index])
out_of_fold_predictions[holdout_index, i] = y_pred

# Now train the cloned meta-model using the out-of-fold predictions as new feature
self.meta_model_.fit(out_of_fold_predictions, y)
return self

#Do the predictions of all base models on the test data and use the averaged predictions as
#meta-features for the final prediction which is done by the meta-model
def predict(self, X):
meta_features = np.column_stack([
np.column_stack([model.predict(X) for model in base_models]).mean(axis=1)
for base_models in self.base_models_ ])
return self.meta_model_.predict(meta_features)

In [88]:

stacked_averaged_models = StackingAveragedModels(base_models = (ENet, GBoost, KRR),
meta_model = lasso)
score = rmsle_cv(stacked_averaged_models)
print("Stacking Averaged models score: {:.4f} ({:.4f})".format(score.mean(), score.std()))
Stacking Averaged models score: 0.1081 (0.0073)
In [0]:

def rmsle(y, y_pred):
return np.sqrt(mean_squared_e
or(y, y_pred))

Final Training and Prediction¶
In [90]:

stacked_averaged_models.fit(train.values, y_train)
stacked_train_pred = stacked_averaged_models.predict(train.values)
stacked_pred = np.expm1(stacked_averaged_models.predict(test.values))
print(rmsle(y_train, stacked_train_pred))
0.07839506096664622
In [91]:

model_xgb.fit(train, y_train)
xgb_train_pred = model_xgb.predict(train)
xgb_pred = np.expm1(model_xgb.predict(test))
print(rmsle(y_train, xgb_train_pred))
0.0788580427618937
In [92]:

model_lgb.fit(train, y_train)
lgb_train_pred = model_lgb.predict(train)
lgb_pred = np.expm1(model_lgb.predict(test.values))
print(rmsle(y_train, lgb_train_pred))
0.07294132053731643
In [93]:

'''RMSE on the entire Train data when averaging'''
print('RMSLE score on train data:')
print(rmsle(y_train,stacked_train_pred*0.70 +
xgb_train_pred*0.15 + lgb_train_pred*0.15 ))
RMSLE score on train data:
0.07566957841091893
In [0]:

ensemble = stacked_pred*0.70 + xgb_pred*0.15 + lgb_pred*0.15

In [0]:

sub = pd.DataFrame()
sub['Id'] = test_ID
sub['SalePrice'] = ensemble

In [96]:

sub.head()

Out[96]:
                Id        SalePrice
        0        1461        119486.247
        1        1462        159579.305
        2        1463        187456.970
        3        1464        195629.664
        4        1465        192512.258
In [0]:

__MACOSX/57503/._57503_1.html
57503/cs-443-and-543-final-project-exam-isyin5im.docx
CS 443 and 543 – Machine Learning – Spring 2020 – Final Project/Exam (200 points)
(DUE MAY
The final project/ final exam will provide you an opportunity to use various machine learning concepts, tools, and techniques to answer real-life case scenarios. It will cover the
eadth of the course, including concepts from supervised, unsupervised, and deep learning. Here you will apply the methods you have learned and apply it to various scenarios by developing and evaluating learning models in Python. Your project submission should be in the same format as the previous projects, in Jupyter format, and converted to HTML or PDF. If you have any additional data files, please include those along with work in a ZIP file.
Problem 1 : Predicting house prices (70 points)
When a buyer is seeking a new home, there are many factors that influence price negotiations than number of bedrooms or a white-picket fence. Using the Ames Housing dataset, you will use creative feature engineering and advanced regression techniques in building a model to predict sale price. You may find the dataset and additional information about the data here: https:
www.kaggle.com/c/house-prices-advanced-regression-techniques/overview
1) Your model should be developed using creative feature selection and engineering techniques and advanced regression techniques such that you can find the following:
a ) The predictor variables that should be included in the model (5 points)
b) Are there any interactions that should or should not be considered for including factors into the predictive model? (5 points)
2) You should perform appropriate exploratory data analysis (which should help you find the most important variables and gain a better understanding and visualization of the data) and predictive modeling (including identification of a quantitative evaluation measure, and optimization of the learning model by adding features, creating new features, adjusting parameters, etc). (20 points)
3) You will want to assess both simple (linear regression) as well as advanced regression models (including random forests and ensemble methods (gradient boosting)), find ways to optimize your model to minimize predictive e
or (by assessing K-cross validation, using stochastic gradient descent and ridge regression). (20 points)
4) What is your final regression model and how was it developed? (5 points)
5) Describe the various models you tried to evaluate their predictive power on the Ames Housing dataset. Which ones were the most effective and why? (5 points)
6) What were the metrics and parameters you had to optimize? (5 points)
7) What were the results of this optimizations? How would you evaluate your final predictive model and how might it be improved? (5 points)
Problem 2: Credit card fraud detection (130 points)
The use of credit card transactions as a popular payment for both online and offline transactions has led to an increasing number of daily fraud transactions. Automated methods are thus desired for credit card fraud detection, since it is challenging to accurately and promptly detect fraudulent transactions due to dramatic data imbalance and large variations of fraud transactions.
Your task here is to see how various supervised and unsupervised learning methods perform in detecting credit card fraud. The dataset you will use is the following Credit Card Fraud Detection dataset: https:
www.kaggle.com/mlg-ul
creditcardfraud
1) First you should assess the dataset, provide a description in words, especially as it pertains to how the variables are obtained, and some of its properties. (5 points)
2) Also, describe the preprocessing that was performed to obtain the data and the rationale for it. (10 points)
2) Next you will want to distinguish between normal and abnormal (fraud) credit card transactions. This will involve training classifiers on this dataset through supervised learning techniques and evaluating their performance. Using Python, you will want to compare several widely used approaches used for credit card fraud detection including Logistic Regression (LR), K-nearest neighbors (KNN), Support Vector Machine (SVM), Decision Tree (DT), Random Forest (RF), and eXtreme Gradient Boosting (XGBoost). (30 points)
3) You will also want to detect transactions that could be considered anomalous. First, using Python, attempt some of the widely used clustering algorithms (Kmeans, Gaussian Mixture Models, DBSCAN, Hierarchical Clustering). Describe their effectiveness by assessing their performance towards detecting anomalies in this dataset. (10 points)
4) There has recently been an interest in developing unsupervised generative models for anomaly detection. Generative models are training to model the distribution of the normal transaction data distribution without any annotations. A transaction that does not follow the distribution would be anomalous. Here you will evaluate several such unsupervised approaches used for credit card fraud detection such as Variational Autoencoder (VAE) and Generational Adversarial Networks (GAN), in Python. (30 points)
5) Describe the evaluation metrics you will use to evaluate this kind of dataset. Which ones will be appropriate and why? You should try several suitable methods and evaluate which one may be the most effective based on an appropriate evaluation metric of your choice. Provide your rationale for each method you try to handle the imbalanced dataset. Also provide a rationale for choosing your evaluation metric. (20 points)
6) Assess the various models, adjusting parameters appropriately and performing any necessary optimizations, and provide a visualization. Describe how you select the key parameters for each of the various models. (10 points)
7) What would be your assessment of the performance of the supervised models compared to that of the unsupervised methods? Explain the advantages and disadvantages of using supervised versus unsupervised methods for credit card fraud detection. (10 points)
8) Describe any limitations to your work. Describe further methods you could try to improve performance of credit card fraud detection. (5 points)
__MACOSX/57503/._cs-443-and-543-final-project-exam-isyin5im.docx
57503/57503_2.html


In [1]:

!wget https:
aw.githubusercontent.com/nsethi31/Kaggle-Data-Credit-Card-Fraud-Detection/maste
creditcard.csv
--2020-05-11 18:09:58-- https:
aw.githubusercontent.com/nsethi31/Kaggle-Data-Credit-Card-Fraud-Detection/maste
creditcard.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 102634230 (98M) [text/plain]
Saving to: ‘creditcard.csv’
creditcard.csv 100%[===================>] 97.88M 170MB/s in 0.6s
2020-05-11 18:09:59 (170 MB/s) - ‘creditcard.csv’ saved [102634230/102634230]
In [2]:

ls
creditcard.csv sample_data
Gather Sense of Our Data:¶
The first thing we must do is gather a basic sense of our data. Remember, except for the transaction and amount we dont know what the other columns are (due to privacy reasons). The only thing we know, is that those columns that are unknown have been scaled already.
Summary:¶
        The transaction amount is relatively small.
        The mean of all the mounts made is approximately USD 88.
        There are no "Null" values, so we don't have to work on ways to replace values.
        Most of the transactions were Non-Fraud (99.83%) of the time, while Fraud transactions occurs (017%) of the time in the dataframe.
In [3]:

import numpy as np # linear alge
a
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import tensorflow as tf
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.manifold import TSNE
from sklearn.decomposition import PCA, TruncatedSVD
import matplotlib.patches as mpatches
import time
# Classifier Li
aries
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifie
from sklearn.tree import DecisionTreeClassifie
from sklearn.ensemble import RandomForestClassifie
import collections
# Other Li
aries
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from imblearn.pipeline import make_pipeline as imbalanced_make_pipeline
from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import NearMiss
from imblearn.metrics import classification_report_imbalanced
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, accuracy_score, classification_report
from collections import Counte
from sklearn.model_selection import KFold, StratifiedKFold
import warnings
warnings.filterwarnings("ignore")
df = pd.read_csv('creditcard.csv')
df.head()
us
local/li
python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
import pandas.util.testing as tm
us
local/li
python3.6/dist-packages/sklearn/externals/six.py:31: FutureWarning: The module is deprecated in version 0.21 and will be removed in version 0.23 since we've dropped support for Python 2.7. Please rely on the official version of six (https:
pypi.org/project/six/).
"(https:
pypi.org/project/six/).", FutureWarning)
us
local/li
python3.6/dist-packages/sklearn/utils/deprecation.py:144: FutureWarning: The sklearn.neighbors.base module is deprecated in version 0.22 and will be removed in version 0.24. The co
esponding classes / functions should instead be imported from sklearn.neighbors. Anything that cannot be imported from sklearn.neighbors is now part of the private API.
warnings.warn(message, FutureWarning)
us
local/li
python3.6/dist-packages/sklearn/utils/deprecation.py:144: FutureWarning: The sklearn.metrics.classification module is deprecated in version 0.22 and will be removed in version 0.24. The co
esponding classes / functions should instead be imported from sklearn.metrics. Anything that cannot be imported from sklearn.metrics is now part of the private API.
warnings.warn(message, FutureWarning)
Out[3]:
                Time        V1        V2        V3        V4        V5        V6        V7        V8        V9        V10        V11        V12        V13        V14        V15        V16        V17        V18        V19        V20        V21        V22        V23        V24        V25        V26        V27        V28        Amount        Class
        0        0.0        -1.359807        -0.072781        2.536347        1.378155        -0.338321        0.462388        0.239599        0.098698        0.363787        0.090794        -0.551600        -0.617801        -0.991390        -0.311169        1.468177        -0.470401        0.207971        0.025791        0.403993        0.251412        -0.018307        0.277838        -0.110474        0.066928        0.128539        -0.189115        0.133558        -0.021053        149.62        0
        1        0.0        1.191857        0.266151        0.166480        0.448154        0.060018        -0.082361        -0.078803        0.085102        -0.255425        -0.166974        1.612727        1.065235        0.489095        -0.143772        0.635558        0.463917        -0.114805        -0.183361        -0.145783        -0.069083        -0.225775        -0.638672        0.101288        -0.339846        0.167170        0.125895        -0.008983        0.014724        2.69        0
        2        1.0        -1.358354        -1.340163        1.773209        0.379780        -0.503198        1.800499        0.791461        0.247676        -1.514654        0.207643        0.624501        0.066084        0.717293        -0.165946        2.345865        -2.890083        1.109969        -0.121359        -2.261857        0.524980        0.247998        0.771679        0.909412        -0.689281        -0.327642        -0.139097        -0.055353        -0.059752        378.66        0
        3        1.0        -0.966272        -0.185226        1.792993        -0.863291        -0.010309        1.247203        0.237609        0.377436        -1.387024        -0.054952        -0.226487        0.178228        0.507757        -0.287924        -0.631418        -1.059647        -0.684093        1.965775        -1.232622        -0.208038        -0.108300        0.005274        -0.190321        -1.175575        0.647376        -0.221929        0.062723        0.061458        123.50        0
        4        2.0        -1.158233        0.877737        1.548718        0.403034        -0.407193        0.095921        0.592941        -0.270533        0.817739        0.753074        -0.822843        0.538196        1.345852        -1.119670        0.175121        -0.451449        -0.237033        -0.038195        0.803487        0.408542        -0.009431        0.798278        -0.137458        0.141267        -0.206010        0.502292        0.219422        0.215153        69.99        0
In [4]:

df.describe()

Out[4]:
                Time        V1        V2        V3        V4        V5        V6        V7        V8        V9        V10        V11        V12        V13        V14        V15        V16        V17        V18        V19        V20        V21        V22        V23        V24        V25        V26        V27        V28        Amount        Class
        count        284807.000000        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        2.848070e+05        284807.000000        284807.000000
        mean        94813.859575        1.758743e-12        -8.252298e-13        -9.636929e-13        8.316157e-13        1.591952e-13        4.247354e-13        -3.050180e-13        8.693344e-14        -1.179712e-12        7.094854e-13        1.875015e-12        1.053488e-12        7.137527e-13        -1.491363e-13        -5.225914e-13        -2.280712e-13        -6.428517e-13        4.958987e-13        7.060712e-13        1.766038e-12        -3.406543e-13        -5.713163e-13        -9.725303e-13        1.464139e-12        -6.989087e-13        -5.615260e-13        3.332112e-12        -3.518886e-12        88.349619        0.001727
        std        47488.145955        1.958696e+00        1.651309e+00        1.516255e+00        1.415869e+00        1.380247e+00        1.332271e+00        1.237094e+00        1.194353e+00        1.098632e+00        1.088850e+00        1.020713e+00        9.992014e-01        9.952742e-01        9.585956e-01        9.153160e-01        8.762529e-01        8.493371e-01        8.381762e-01        8.140405e-01        7.709250e-01        7.345240e-01        7.257016e-01        6.244603e-01        6.056471e-01        5.212781e-01        4.822270e-01        4.036325e-01        3.300833e-01        250.120109        0.041527
        min        0.000000        -5.640751e+01        -7.271573e+01        -4.832559e+01        -5.683171e+00        -1.137433e+02        -2.616051e+01        -4.355724e+01        -7.321672e+01        -1.343407e+01        -2.458826e+01        -4.797473e+00        -1.868371e+01        -5.791881e+00        -1.921433e+01        -4.498945e+00        -1.412985e+01        -2.516280e+01        -9.498746e+00        -7.213527e+00        -5.449772e+01        -3.483038e+01        -1.093314e+01        -4.480774e+01        -2.836627e+00        -1.029540e+01        -2.604551e+00        -2.256568e+01        -1.543008e+01        0.000000        0.000000
        25%        54201.500000        -9.203734e-01        -5.985499e-01        -8.903648e-01        -8.486401e-01        -6.915971e-01        -7.682956e-01        -5.540759e-01        -2.086297e-01        -6.430976e-01        -5.354257e-01        -7.624942e-01        -4.055715e-01        -6.485393e-01        -4.255740e-01        -5.828843e-01        -4.680368e-01        -4.837483e-01        -4.988498e-01        -4.562989e-01        -2.117214e-01        -2.283949e-01        -5.423504e-01        -1.618463e-01        -3.545861e-01        -3.171451e-01        -3.269839e-01        -7.083953e-02        -5.295979e-02        5.600000        0.000000
        50%        84692.000000        1.810880e-02        6.548556e-02        1.798463e-01        -1.984653e-02        -5.433583e-02        -2.741871e-01        4.010308e-02        2.235804e-02        -5.142873e-02        -9.291738e-02        -3.275735e-02        1.400326e-01        -1.356806e-02        5.060132e-02        4.807155e-02        6.641332e-02        -6.567575e-02        -3.636312e-03        3.734823e-03        -6.248109e-02        -2.945017e-02        6.781943e-03        -1.119293e-02        4.097606e-02        1.659350e-02        -5.213911e-02        1.342146e-03        1.124383e-02        22.000000        0.000000
        75%        139320.500000        1.315642e+00        8.037239e-01        1.027196e+00        7.433413e-01        6.119264e-01        3.985649e-01        5.704361e-01        3.273459e-01        5.971390e-01        4.539234e-01        7.395934e-01        6.182380e-01        6.625050e-01        4.931498e-01        6.488208e-01        5.232963e-01        3.996750e-01        5.008067e-01        4.589494e-01        1.330408e-01        1.863772e-01        5.285536e-01        1.476421e-01        4.395266e-01        3.507156e-01        2.409522e-01        9.104512e-02        7.827995e-02        77.165000        0.000000
        max        172792.000000        2.454930e+00        2.205773e+01        9.382558e+00        1.687534e+01        3.480167e+01        7.330163e+01        1.205895e+02        2.000721e+01        1.559499e+01        2.374514e+01        1.201891e+01        7.848392e+00        7.126883e+00        1.052677e+01        8.877742e+00        1.731511e+01        9.253526e+00        5.041069e+00        5.591971e+00        3.942090e+01        2.720284e+01        1.050309e+01        2.252841e+01        4.584549e+00        7.519589e+00        3.517346e+00        3.161220e+01        3.384781e+01        25691.160000        1.000000
In [5]:

# Good No Null Values!
df.isnull().sum().max()

Out[5]:
0
In [6]:

df.columns

Out[6]:
Index(['Time', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9', 'V10',
'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'V18', 'V19', 'V20',
'V21', 'V22', 'V23', 'V24', 'V25', 'V26', 'V27', 'V28', 'Amount',
'Class'],
dtype='object')
In [7]:

# The classes are heavily skewed we need to solve this issue later.
print('No Frauds', round(df['Class'].value_counts()[0]/len(df) * 100,2), '% of the dataset')
print('Frauds', round(df['Class'].value_counts()[1]/len(df) * 100,2), '% of the dataset')
No Frauds 99.83 % of the dataset
Frauds 0.17 % of the dataset
In [8]:

colors = ["#0101DF", "#DF0101"]
sns.countplot('Class', data=df, palette=colors)
plt.title('Class Distributions \n (0: No Fraud || 1: Fraud)', fontsize=14)

Out[8]:
Text(0.5, 1.0, 'Class Distributions \n (0: No Fraud || 1: Fraud)')

In [9]:

fig, ax = plt.subplots(1, 2, figsize=(18,4))
amount_val = df['Amount'].values
time_val = df['Time'].values
sns.distplot(amount_val, ax=ax[0], color='r')
ax[0].set_title('Distribution of Transaction Amount', fontsize=14)
ax[0].set_xlim([min(amount_val), max(amount_val)])
sns.distplot(time_val, ax=ax[1], color='b')
ax[1].set_title('Distribution of Transaction Time', fontsize=14)
ax[1].set_xlim([min(time_val), max(time_val)])
plt.show()
In [0]:

# Since most of our data has already been scaled we should scale the columns that are left to scale (Amount and Time)
from sklearn.preprocessing import StandardScaler, RobustScale
# RobustScaler is less prone to outliers.
std_scaler = StandardScaler()
ob_scaler = RobustScaler()
df['scaled_amount'] = rob_scaler.fit_transform(df['Amount'].values.reshape(-1,1))
df['scaled_time'] = rob_scaler.fit_transform(df['Time'].values.reshape(-1,1))
df.drop(['Time','Amount'], axis=1, inplace=True)

In [11]:

scaled_amount = df['scaled_amount']
scaled_time = df['scaled_time']
df.drop(['scaled_amount', 'scaled_time'], axis=1, inplace=True)
df.insert(0, 'scaled_amount', scaled_amount)
df.insert(1, 'scaled_time', scaled_time)
# Amount and Time are Scaled!
df.head()

Out[11]:
                scaled_amount        scaled_time        V1        V2        V3        V4        V5        V6        V7        V8        V9        V10        V11        V12        V13        V14        V15        V16        V17        V18        V19        V20        V21        V22        V23        V24        V25        V26        V27        V28        Class
        0        1.783274        -0.994983        -1.359807        -0.072781        2.536347        1.378155        -0.338321        0.462388        0.239599        0.098698        0.363787        0.090794        -0.551600        -0.617801        -0.991390        -0.311169        1.468177        -0.470401        0.207971        0.025791        0.403993        0.251412        -0.018307        0.277838        -0.110474        0.066928        0.128539        -0.189115        0.133558        -0.021053        0
        1        -0.269825        -0.994983        1.191857        0.266151        0.166480        0.448154        0.060018        -0.082361        -0.078803        0.085102        -0.255425        -0.166974        1.612727        1.065235        0.489095        -0.143772        0.635558        0.463917        -0.114805        -0.183361        -0.145783        -0.069083        -0.225775        -0.638672        0.101288        -0.339846        0.167170        0.125895        -0.008983        0.014724        0
        2        4.983721        -0.994972        -1.358354        -1.340163        1.773209        0.379780        -0.503198        1.800499        0.791461        0.247676        -1.514654        0.207643        0.624501        0.066084        0.717293        -0.165946        2.345865        -2.890083        1.109969        -0.121359        -2.261857        0.524980        0.247998        0.771679        0.909412        -0.689281        -0.327642        -0.139097        -0.055353        -0.059752        0
        3        1.418291        -0.994972        -0.966272        -0.185226        1.792993        -0.863291        -0.010309        1.247203        0.237609        0.377436        -1.387024        -0.054952        -0.226487        0.178228        0.507757        -0.287924        -0.631418        -1.059647        -0.684093        1.965775        -1.232622        -0.208038        -0.108300        0.005274        -0.190321        -1.175575        0.647376        -0.221929        0.062723        0.061458        0
        4        0.670579        -0.994960        -1.158233        0.877737        1.548718        0.403034        -0.407193        0.095921        0.592941        -0.270533        0.817739        0.753074        -0.822843        0.538196        1.345852        -1.119670        0.175121        -0.451449        -0.237033        -0.038195        0.803487        0.408542        -0.009431        0.798278        -0.137458        0.141267        -0.206010        0.502292        0.219422        0.215153        0
In [12]:

from sklearn.model_selection import train_test_split
from sklearn.model_selection import StratifiedShuffleSplit
print('No Frauds', round(df['Class'].value_counts()[0]/len(df) * 100,2), '% of the dataset')
print('Frauds', round(df['Class'].value_counts()[1]/len(df) * 100,2), '% of the dataset')
X = df.drop('Class', axis=1)
y = df['Class']
sss = StratifiedKFold(n_splits=5, random_state=None, shuffle=False)
for train_index, test_index in sss.split(X, y):
print("Train:", train_index, "Test:", test_index)
original_Xtrain, original_Xtest = X.iloc[train_index], X.iloc[test_index]
original_ytrain, original_ytest = y.iloc[train_index], y.iloc[test_index]
# We already have X_train and y_train for undersample data thats why I am using original to distinguish and to not overwrite these variables.
# original_Xtrain, original_Xtest, original_ytrain, original_ytest = train_test_split(X, y, test_size=0.2, random_state=42)
# Check the Distribution of the labels
# Turn into an a
ay
original_Xtrain = original_Xtrain.values
original_Xtest = original_Xtest.values
original_ytrain = original_ytrain.values
original_ytest = original_ytest.values
# See if both the train and test label distribution are similarly distributed
train_unique_label, train_counts_label = np.unique(original_ytrain, return_counts=True)
test_unique_label, test_counts_label = np.unique(original_ytest, return_counts=True)
print('-' * 100)
print('Label Distributions: \n')
print(train_counts_label/ len(original_ytrain))
print(test_counts_label/ len(original_ytest))
No Frauds 99.83 % of the dataset
Frauds 0.17 % of the dataset
Train: [ 30473 30496 31002 ... 284804 284805 284806] Test: [ 0 1 2 ... 57017 57018 57019]
Train: [ 0 1 2 ... 284804 284805 284806] Test: [ 30473 30496 31002 ... 113964 113965 113966]
Train: [ 0 1 2 ... 284804 284805 284806] Test: [ 81609 82400 83053 ... 170946 170947 170948]
Train: [ 0 1 2 ... 284804 284805 284806] Test: [150654 150660 150661 ... 227866 227867 227868]
Train: [ 0 1 2 ... 227866 227867 227868] Test: [212516 212644 213092 ... 284804 284805 284806]
----------------------------------------------------------------------------------------------------
Label Distributions:
[0.99827076 0.00172924]
[0.99827952 0.00172048]
In [13]:

# Since our classes are highly skewed we should make them equivalent in order to have a normal distribution of the classes.
# Lets shuffle the data before creating the subsamples
df = df.sample(frac=1)
# amount of fraud classes 492 rows.
fraud_df = df.loc[df['Class'] == 1]
non_fraud_df = df.loc[df['Class'] == 0][:492]
normal_distributed_df = pd.concat([fraud_df, non_fraud_df])
# Shuffle dataframe rows
new_df = normal_distributed_df.sample(frac=1, random_state=42)
new_df.head()

Out[13]:
                scaled_amount        scaled_time        V1        V2        V3        V4        V5        V6        V7        V8        V9        V10        V11        V12        V13        V14        V15        V16        V17        V18        V19        V20        V21        V22        V23        V24        V25        V26        V27        V28        Class
        70301        -0.293440        -0.362821        -1.309182        2.643591        -0.673922        2.856275        -0.569337        -0.807564        -0.158952        1.101358        -1.636385        1.075114        -0.991935        0.152057        0.380580        1.305396        0.638051        -0.100245        0.540601        -0.061017        0.684912        0.107871        0.205377        0.532638        0.229646        0.401670        -0.838382        0.113539        0.326430        0.243853        0
        239499        0.391253        0.768877        -2.150855        2.187917        -3.430516        0.119476        -0.173210        0.290700        -2.808988        -2.679351        -0.556685        -4.485483        1.903999        -2.644219        -0.982273        -4.691151        -0.693080        -2.553251        -3.483436        -0.064852        1.490329        0.532145        -0.073205        0.561496        -0.075034        -0.437619        0.353841        -0.521339        0.144465        0.026588        1
        242258        0.669322        0.783867        -1.088541        -1.340517        -0.746996        -1.989129        2.299595        -2.267388        0.443727        -0.411735        -1.629431        0.106115        -1.371872        -0.872795        0.421758        0.230802        -0.793717        0.693311        -0.139018        -1.470912        0.111376        0.497916        0.602484        1.133182        0.032524        -0.589040        0.117512        -0.091243        0.040797        0.202447        0
        191267        -0.207084        0.522727        0.290155        0.049243        -0.740524        2.865463        1.395294        -0.535163        0.142543        -0.222770        -1.463691        1.713538        -1.127573        -0.708657        0.272186        0.274710        0.235192        -0.463553        0.472995        -0.447899        1.790924        0.247580        0.337349        1.018191        0.303550        0.833886        -1.222306        2.745261        -0.220402        0.168233        1
        150662        4.108992        0.107626        -5.839192        7.151532        -12.816760        7.031115        -9.651272        -2.938427        -11.543207        4.843627        -3.494276        -13.320789        8.460244        -17.003289        0.101557        -14.094452        0.747031        -12.661696        -18.912494        -6.626975        4.008921        0.055684        2.462056        1.054865        0.530481        0.472670        -0.275998        0.282435        0.104886        0.254417        1
In [14]:

print('Distribution of the Classes in the subsample dataset')
print(new_df['Class'].value_counts()/len(new_df))
sns.countplot('Class', data=new_df, palette=colors)
plt.title('Equally Distributed Classes', fontsize=14)
plt.show()
Distribution of the Classes in the subsample dataset
1 0.5
0 0.5
Name: Class, dtype: float64

In [15]:

# Make sure we use the subsample in our co
elation
f, (ax1, ax2) = plt.subplots(2, 1, figsize=(24,20))
# Entire DataFrame
co
= df.co
()
sns.heatmap(co
, cmap='coolwarm_r', annot_kws={'size':20}, ax=ax1)
ax1.set_title("Imbalanced Co
elation Matrix \n (don't use for reference)", fontsize=14)
sub_sample_co
= new_df.co
()
sns.heatmap(sub_sample_co
, cmap='coolwarm_r', annot_kws={'size':20}, ax=ax2)
ax2.set_title('SubSample Co
elation Matrix \n (use for reference)', fontsize=14)
plt.show()
In [16]:

# Anomaly Detection
from scipy.stats import norm
f, (ax1, ax2, ax3) = plt.subplots(1,3, figsize=(20, 6))
v14_fraud_dist = new_df['V14'].loc[new_df['Class'] == 1].values
sns.distplot(v14_fraud_dist,ax=ax1, fit=norm, color='#FB8861')
ax1.set_title('V14 Distribution \n (Fraud Transactions)', fontsize=14)
v12_fraud_dist = new_df['V12'].loc[new_df['Class'] == 1].values
sns.distplot(v12_fraud_dist,ax=ax2, fit=norm, color='#56F9BB')
ax2.set_title('V12 Distribution \n (Fraud Transactions)', fontsize=14)
v10_fraud_dist = new_df['V10'].loc[new_df['Class'] == 1].values
sns.distplot(v10_fraud_dist,ax=ax3, fit=norm, color='#C5B3F9')
ax3.set_title('V10 Distribution \n (Fraud Transactions)', fontsize=14)
plt.show()
In [17]:

f,(ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20,6))
colors = ['#B3F9C5', '#f9c5b3']
# Boxplots with outliers removed
# Feature V14
sns.boxplot(x="Class", y="V14", data=new_df,ax=ax1, palette=colors)
ax1.set_title("V14 Feature \n Reduction of outliers", fontsize=14)
ax1.annotate('Fewer extreme \n outliers', xy=(0.98, -17.5), xytext=(0, -12),
a
owprops=dict(facecolor='black'),
fontsize=14)
# Feature 12
sns.boxplot(x="Class", y="V12", data=new_df, ax=ax2, palette=colors)
ax2.set_title("V12 Feature \n Reduction of outliers", fontsize=14)
ax2.annotate('Fewer extreme \n outliers', xy=(0.98, -17.3), xytext=(0, -12),
a
owprops=dict(facecolor='black'),
fontsize=14)
# Feature V10
sns.boxplot(x="Class", y="V10", data=new_df, ax=ax3, palette=colors)
ax3.set_title("V10 Feature \n Reduction of outliers", fontsize=14)
ax3.annotate('Fewer extreme \n outliers', xy=(0.95, -16.5), xytext=(0, -12),
a
owprops=dict(facecolor='black'),
fontsize=14)
plt.show()
In [18]:

# New_df is from the random undersample data (fewer instances)
X = new_df.drop('Class', axis=1)
y = new_df['Class']
# T-SNE Implementation
t0 = time.time()
X_reduced_tsne = TSNE(n_components=2, random_state=42).fit_transform(X.values)
t1 = time.time()
print("T-SNE took {:.2} s".format(t1 - t0))
# PCA Implementation
t0 = time.time()
X_reduced_pca = PCA(n_components=2, random_state=42).fit_transform(X.values)
t1 = time.time()
print("PCA took {:.2} s".format(t1 - t0))
# TruncatedSVD
t0 = time.time()
X_reduced_svd = TruncatedSVD(n_components=2, algorithm='randomized', random_state=42).fit_transform(X.values)
t1 = time.time()
print("Truncated SVD took {:.2} s".format(t1 - t0))
T-SNE took 6.2 s
PCA took 0.021 s
Truncated SVD took 0.0045 s
In [0]:

# Classifiers

In [0]:

# Undersampling before cross validating (prone to overfit)
X = new_df.drop('Class', axis=1)
y = new_df['Class']

In [0]:

# Our data is already scaled we should split our training and test sets
from sklearn.model_selection import train_test_split
# This is explicitly used for undersampling.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

In [0]:

# Turn the values into an a
ay for feeding the classification algorithms.
X_train = X_train.values
X_test = X_test.values
y_train = y_train.values
y_test = y_test.values

In [0]:

from sklearn.ensemble import GradientBoostingClassifie
from sklearn.ensemble import RandomForestClassifie
from sklearn.tree import DecisionTreeClassifie

In [0]:

# Let's implement simple classifiers
classifiers = {
"LogisiticRegression": LogisticRegression(),
"KNearest": KNeighborsClassifier(),
"Support Vector Classifier": SVC(),
"DecisionTreeClassifier": DecisionTreeClassifier(),
"GradientBoostingClassifier":GradientBoostingClassifier(),
"RandomForestClassifier":RandomForestClassifier(),
"DecisionTreeClassifier":DecisionTreeClassifier()
}

In [27]:

# Wow our scores are getting even high scores even when applying cross validation.
from sklearn.model_selection import cross_val_score
for key, classifier in classifiers.items():
classifier.fit(X_train, y_train)
training_score = cross_val_score(classifier, X_train, y_train, cv=5)
print("Classifiers: ", classifier.__class__.__name__, "Has a training score of", round(training_score.mean(), 2) * 100, "% accuracy score")
Classifiers: LogisticRegression Has a training score of 93.0 % accuracy score
Classifiers: KNeighborsClassifier Has a training score of 94.0 % accuracy score
Classifiers: SVC Has a training score of 94.0 % accuracy score
Classifiers: DecisionTreeClassifier Has a training score of 92.0 % accuracy score
Classifiers: GradientBoostingClassifier Has a training score of 94.0 % accuracy score
Classifiers: RandomForestClassifier Has a training score of 94.0 % accuracy score
In [0]:

# Use GridSearchCV to find the best parameters.
from sklearn.model_selection import GridSearchCV
# Logistic Regression
log_reg_params = {"penalty": ['l1', 'l2'], 'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]}
grid_log_reg = GridSearchCV(LogisticRegression(), log_reg_params)
grid_log_reg.fit(X_train, y_train)
# We automatically get the logistic regression with the best parameters.
log_reg = grid_log_reg.best_estimator_
knears_params = {"n_neighbors": list(range(2,5,1)), 'algorithm': ['auto', 'ball_tree', 'kd_tree', '
ute']}
grid_knears = GridSearchCV(KNeighborsClassifier(), knears_params)
grid_knears.fit(X_train, y_train)
# KNears best estimato
knears_neighbors = grid_knears.best_estimator_
# Support Vector Classifie
svc_params = {'C': [0.5, 0.7, 0.9, 1], 'kernel': ['
f', 'poly', 'sigmoid', 'linear']}
grid_svc = GridSearchCV(SVC(), svc_params)
grid_svc.fit(X_train, y_train)
# SVC best estimato
svc = grid_svc.best_estimator_
# DecisionTree Classifie
tree_params = {"criterion": ["gini", "entropy"], "max_depth": list(range(2,4,1)),
"min_samples_leaf": list(range(5,7,1))}
grid_tree = GridSearchCV(DecisionTreeClassifier(), tree_params)
grid_tree.fit(X_train, y_train)
# tree best estimato
tree_clf = grid_tree.best_estimator_

In [29]:

# Overfitting Case
log_reg_score = cross_val_score(log_reg, X_train, y_train, cv=5)
print('Logistic Regression Cross Validation Score: ', round(log_reg_score.mean() * 100, 2).astype(str) + '%')
knears_score = cross_val_score(knears_neighbors, X_train, y_train, cv=5)
print('Knears Neighbors Cross Validation Score', round(knears_score.mean() * 100, 2).astype(str) + '%')
svc_score = cross_val_score(svc, X_train, y_train, cv=5)
print('Support Vector Classifier Cross Validation Score', round(svc_score.mean() * 100, 2).astype(str) + '%')
tree_score = cross_val_score(tree_clf, X_train, y_train, cv=5)
print('DecisionTree Classifier Cross Validation Score', round(tree_score.mean() * 100, 2).astype(str) + '%')
Logistic Regression Cross Validation Score: 93.91%
Knears Neighbors Cross Validation Score 93.78%
Support Vector Classifier Cross Validation Score 93.52%
DecisionTree Classifier Cross Validation Score 93.4%
In [30]:

# We will undersample during cross validating
undersample_X = df.drop('Class', axis=1)
undersample_y = df['Class']
for train_index, test_index in sss.split(undersample_X, undersample_y):
print("Train:", train_index, "Test:", test_index)
undersample_Xtrain, undersample_Xtest = undersample_X.iloc[train_index], undersample_X.iloc[test_index]
undersample_ytrain, undersample_ytest = undersample_y.iloc[train_index], undersample_y.iloc[test_index]

undersample_Xtrain = undersample_Xtrain.values
undersample_Xtest = undersample_Xtest.values
undersample_ytrain = undersample_ytrain.values
undersample_ytest = undersample_ytest.values
undersample_accuracy = []
undersample_precision = []
undersample_recall = []
undersample_f1 = []
undersample_auc = []
# Implementing NearMiss Technique
# Distribution of NearMiss (Just to see how it distributes the labels we won't use these variables)
X_nearmiss, y_nearmiss = NearMiss().fit_sample(undersample_X.values, undersample_y.values)
print('NearMiss Label Distribution: {}'.format(Counter(y_nearmiss)))
# Cross Validating the right way
for train, test in sss.split(undersample_Xtrain, undersample_ytrain):
undersample_pipeline = imbalanced_make_pipeline(NearMiss(sampling_strategy='majority'), log_reg) # SMOTE happens during Cross Validation not before..
undersample_model = undersample_pipeline.fit(undersample_Xtrain[train], undersample_ytrain[train])
undersample_prediction = undersample_model.predict(undersample_Xtrain[test])

undersample_accuracy.append(undersample_pipeline.score(original_Xtrain[test], original_ytrain[test]))
undersample_precision.append(precision_score(original_ytrain[test], undersample_prediction))
undersample_recall.append(recall_score(original_ytrain[test], undersample_prediction))
undersample_f1.append(f1_score(original_ytrain[test], undersample_prediction))
undersample_auc.append(roc_auc_score(original_ytrain[test], undersample_prediction))
Train: [ 56955 56956 56957 ... 284804 284805 284806] Test: [ 0 1 2 ... 62025 62116 62782]
Train: [ 0 1 2 ... 284804 284805 284806] Test: [ 56955 56956 56957 ... 113925 113926 113927]
Train: [ 0 1 2 ... 284804 284805 284806] Test: [112573 113154 113303 ... 170882 170916 171814]
Train: [ 0 1 2 ... 284804 284805 284806] Test: [170883 170884 170885 ... 227858 227859 227860]
Train: [ 0 1 2 ... 227858 227859 227860] Test: [218173 218495 218735 ... 284804 284805 284806]
NearMiss Label Distribution: Counter({0: 492, 1: 492})
In [32]:

# Let's Plot LogisticRegression Learning Curve
from sklearn.model_selection import ShuffleSplit
from sklearn.model_selection import learning_curve
def plot_learning_curve(estimator1, estimator2, estimator3, estimator4, X, y, ylim=None, cv=None,
n_jobs=1, train_sizes=np.linspace(.1, 1.0, 5)):
f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2,2, figsize=(20,14), sharey=True)
if ylim is not None:
plt.ylim(*ylim)
# First Estimato
train_sizes, train_scores, test_scores = learning_curve(
estimator1, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)
train_scores_mean = np.mean(train_scores, axis=1)
train_scores_std = np.std(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
test_scores_std = np.std(test_scores, axis=1)
ax1.fill_between(train_sizes, train_scores_mean - train_scores_std,
train_scores_mean + train_scores_std, alpha=0.1,
color="#ff9124")
ax1.fill_between(train_sizes, test_scores_mean - test_scores_std,
test_scores_mean + test_scores_std, alpha=0.1, color="#2492ff")
ax1.plot(train_sizes, train_scores_mean, 'o-', color="#ff9124",
label="Training score")
ax1.plot(train_sizes, test_scores_mean, 'o-', color="#2492ff",
label="Cross-validation score")
ax1.set_title("Logistic Regression Learning Curve", fontsize=14)
ax1.set_xlabel('Training size (m)')
ax1.set_ylabel('Score')
ax1.grid(True)
ax1.legend(loc="best")

# Second Estimator
train_sizes, train_scores, test_scores = learning_curve(
estimator2, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)
train_scores_mean = np.mean(train_scores, axis=1)
train_scores_std = np.std(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
test_scores_std = np.std(test_scores, axis=1)
ax2.fill_between(train_sizes, train_scores_mean - train_scores_std,
train_scores_mean + train_scores_std, alpha=0.1,
color="#ff9124")
ax2.fill_between(train_sizes, test_scores_mean - test_scores_std,
test_scores_mean + test_scores_std, alpha=0.1, color="#2492ff")
ax2.plot(train_sizes, train_scores_mean, 'o-', color="#ff9124",
label="Training score")
ax2.plot(train_sizes, test_scores_mean, 'o-', color="#2492ff",
label="Cross-validation score")
ax2.set_title("Knears Neighbors Learning Curve", fontsize=14)
ax2.set_xlabel('Training size (m)')
ax2.set_ylabel('Score')
ax2.grid(True)
ax2.legend(loc="best")

# Third Estimato
train_sizes, train_scores, test_scores = learning_curve(
estimator3, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)
train_scores_mean = np.mean(train_scores, axis=1)
train_scores_std = np.std(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
test_scores_std = np.std(test_scores, axis=1)
ax3.fill_between(train_sizes, train_scores_mean - train_scores_std,
train_scores_mean + train_scores_std, alpha=0.1,
color="#ff9124")
ax3.fill_between(train_sizes, test_scores_mean - test_scores_std,
test_scores_mean + test_scores_std, alpha=0.1, color="#2492ff")
ax3.plot(train_sizes, train_scores_mean, 'o-', color="#ff9124",
label="Training score")
ax3.plot(train_sizes, test_scores_mean, 'o-', color="#2492ff",
label="Cross-validation score")
ax3.set_title("Support Vector Classifier \n Learning Curve", fontsize=14)
ax3.set_xlabel('Training size (m)')
ax3.set_ylabel('Score')
ax3.grid(True)
ax3.legend(loc="best")

# Fourth Estimato
train_sizes, train_scores, test_scores = learning_curve(
estimator4, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)
train_scores_mean = np.mean(train_scores, axis=1)
train_scores_std = np.std(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
test_scores_std = np.std(test_scores, axis=1)
ax4.fill_between(train_sizes, train_scores_mean - train_scores_std,
train_scores_mean + train_scores_std, alpha=0.1,
color="#ff9124")
ax4.fill_between(train_sizes, test_scores_mean - test_scores_std,
test_scores_mean + test_scores_std, alpha=0.1, color="#2492ff")
ax4.plot(train_sizes, train_scores_mean, 'o-', color="#ff9124",
label="Training score")
ax4.plot(train_sizes, test_scores_mean, 'o-', color="#2492ff",
label="Cross-validation score")
ax4.set_title("Decision Tree Classifier \n Learning Curve", fontsize=14)
ax4.set_xlabel('Training size (m)')
ax4.set_ylabel('Score')
ax4.grid(True)
ax4.legend(loc="best")
return plt
cv = ShuffleSplit(n_splits=100, test_size=0.2, random_state=42)
plot_learning_curve(log_reg, knears_neighbors, svc, tree_clf, X_train, y_train, (0.87, 1.01), cv=cv, n_jobs=4)

Out[32]:
module 'matplotlib.pyplot' from '/us
local/li
python3.6/dist-packages/matplotli
pyplot.py'

In [0]:

from sklearn.metrics import roc_curve
from sklearn.model_selection import cross_val_predict
# Create a DataFrame with all the scores and the classifiers names.
log_reg_pred = cross_val_predict(log_reg, X_train, y_train, cv=5,
method="decision_function")
knears_pred = cross_val_predict(knears_neighbors, X_train, y_train, cv=5)
svc_pred = cross_val_predict(svc, X_train, y_train, cv=5,
method="decision_function")
tree_pred = cross_val_predict(tree_clf, X_train, y_train, cv=5)

In [34]:

from sklearn.metrics import roc_auc_score
print('Logistic Regression: ', roc_auc_score(y_train, log_reg_pred))
print('KNears Neighbors: ', roc_auc_score(y_train, knears_pred))
print('Support Vector Classifier: ', roc_auc_score(y_train, svc_pred))
print('Decision Tree Classifier: ', roc_auc_score(y_train, tree_pred))
Logistic Regression: 0.9771960442117512
KNears Neighbors: 0.9361612048348524
Support Vector Classifier: 0.9823411544179432
Decision Tree Classifier: 0.9332008273544051
In [0]:

from sklearn.metrics import roc_curve
from sklearn.model_selection import cross_val_predict
# Create a DataFrame with all the scores and the classifiers names.
log_reg_pred = cross_val_predict(log_reg, X_train, y_train, cv=5,
method="decision_function")
knears_pred = cross_val_predict(knears_neighbors, X_train, y_train, cv=5)
svc_pred = cross_val_predict(svc, X_train, y_train, cv=5,
method="decision_function")
tree_pred = cross_val_predict(tree_clf, X_train, y_train, cv=5)

In [36]:

from sklearn.metrics import roc_auc_score
print('Logistic Regression: ', roc_auc_score(y_train, log_reg_pred))
print('KNears Neighbors: ', roc_auc_score(y_train, knears_pred))
print('Support Vector Classifier: ', roc_auc_score(y_train, svc_pred))
print('Decision Tree Classifier: ', roc_auc_score(y_train, tree_pred))
Logistic Regression: 0.9771960442117512
KNears Neighbors: 0.9361612048348524
Support Vector Classifier: 0.9823411544179432
Decision Tree Classifier: 0.9332008273544051
In [37]:

log_fpr, log_tpr, log_thresold = roc_curve(y_train, log_reg_pred)
knear_fpr, knear_tpr, knear_threshold = roc_curve(y_train, knears_pred)
svc_fpr, svc_tpr, svc_threshold = roc_curve(y_train, svc_pred)
tree_fpr, tree_tpr, tree_threshold = roc_curve(y_train, tree_pred)
def graph_roc_curve_multiple(log_fpr, log_tpr, knear_fpr, knear_tpr, svc_fpr, svc_tpr, tree_fpr, tree_tpr):
plt.figure(figsize=(16,8))
plt.title('ROC Curve \n Top 4 Classifiers', fontsize=18)
plt.plot(log_fpr, log_tpr, label='Logistic Regression Classifier Score: {:.4f}'.format(roc_auc_score(y_train, log_reg_pred)))
plt.plot(knear_fpr, knear_tpr, label='KNears Neighbors Classifier Score: {:.4f}'.format(roc_auc_score(y_train, knears_pred)))
plt.plot(svc_fpr, svc_tpr, label='Support Vector Classifier Score: {:.4f}'.format(roc_auc_score(y_train, svc_pred)))
plt.plot(tree_fpr, tree_tpr, label='Decision Tree Classifier Score: {:.4f}'.format(roc_auc_score(y_train, tree_pred)))
plt.plot([0, 1], [0, 1], 'k--')
plt.axis([-0.01, 1, 0, 1])
plt.xlabel('False Positive Rate', fontsize=16)
plt.ylabel('True Positive Rate', fontsize=16)
plt.annotate('Minimum ROC Score of 50% \n (This is the minimum score to get)', xy=(0.5, 0.5), xytext=(0.6, 0.3),
a
owprops=dict(facecolor='#6E726D', shrink=0.05),
)
plt.legend()

graph_roc_curve_multiple(log_fpr, log_tpr, knear_fpr, knear_tpr, svc_fpr, svc_tpr, tree_fpr, tree_tpr)
plt.show()
In [38]:

def logistic_roc_curve(log_fpr, log_tpr):
plt.figure(figsize=(12,8))
plt.title('Logistic Regression ROC Curve', fontsize=16)
plt.plot(log_fpr, log_tpr, 'b-', linewidth=2)
plt.plot([0, 1], [0, 1], 'r--')
plt.xlabel('False Positive Rate', fontsize=16)
plt.ylabel('True Positive Rate', fontsize=16)
plt.axis([-0.01,1,0,1])


logistic_roc_curve(log_fpr, log_tpr)
plt.show()
In [0]:

from sklearn.metrics import precision_recall_curve
precision, recall, threshold = precision_recall_curve(y_train, log_reg_pred)

In [40]:

y_pred = log_reg.predict(X_train)
# Overfitting Case
print('---' * 45)
print('Overfitting: \n')
print('Recall Score: {:.2f}'.format(recall_score(y_train, y_pred)))
print('Precision Score: {:.2f}'.format(precision_score(y_train, y_pred)))
print('F1 Score: {:.2f}'.format(f1_score(y_train, y_pred)))
print('Accuracy Score: {:.2f}'.format(accuracy_score(y_train, y_pred)))
print('---' * 45)
# How it should look like
print('---' * 45)
print('How it should be:\n')
print("Accuracy Score: {:.2f}".format(np.mean(undersample_accuracy)))
print("Precision Score: {:.2f}".format(np.mean(undersample_precision)))
print("Recall Score: {:.2f}".format(np.mean(undersample_recall)))
print("F1 Score: {:.2f}".format(np.mean(undersample_f1)))
print('---' * 45)
---------------------------------------------------------------------------------------------------------------------------------------
Overfitting:
Recall Score: 0.92
Precision Score: 0.77
F1 Score: 0.84
Accuracy Score: 0.83
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
How it should be:
Accuracy Score: 0.83
Precision Score: 0.00
Recall Score: 0.18
F1 Score: 0.00
---------------------------------------------------------------------------------------------------------------------------------------
In [41]:

undersample_y_score = log_reg.decision_function(original_Xtest)
from sklearn.metrics import average_precision_score
undersample_average_precision = average_precision_score(original_ytest, undersample_y_score)
print('Average precision-recall score: {0:0.2f}'.format(
undersample_average_precision))
Average precision-recall score: 0.05
In [42]:

from sklearn.metrics import precision_recall_curve
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(12,6))
precision, recall, _ = precision_recall_curve(original_ytest, undersample_y_score)
plt.step(recall, precision, color='#004a93', alpha=0.2,
where='post')
plt.fill_between(recall, precision, step='post', alpha=0.2,
color='#48a6ff')
plt.xlabel('Recall')
plt.ylabel('Precision')
plt.ylim([0.0, 1.05])
plt.xlim([0.0, 1.0])
plt.title('UnderSampling Precision-Recall curve: \n Average Precision-Recall Score ={0:0.2f}'.format(
undersample_average_precision), fontsize=16)

Out[42]:
Text(0.5, 1.0, 'UnderSampling Precision-Recall curve: \n Average Precision-Recall Score =0.05')

In [43]:

from imblearn.over_sampling import SMOTE
from sklearn.model_selection import train_test_split, RandomizedSearchCV
print('Length of X (train): {} | Length of y (train): {}'.format(len(original_Xtrain), len(original_ytrain)))
print('Length of X (test): {} | Length of y (test): {}'.format(len(original_Xtest), len(original_ytest)))
# List to append the score and then find the average
accuracy_lst = []
precision_lst = []
ecall_lst = []
f1_lst = []
auc_lst = []
# Classifier with optimal parameters
# log_reg_sm = grid_log_reg.best_estimator_
log_reg_sm = LogisticRegression()
and_log_reg = RandomizedSearchCV(LogisticRegression(), log_reg_params, n_iter=4)
# Implementing SMOTE Technique
# Cross Validating the right way
# Parameters
log_reg_params = {"penalty": ['l1', 'l2'], 'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]}
for train, test in sss.split(original_Xtrain, original_ytrain):
pipeline = imbalanced_make_pipeline(SMOTE(sampling_strategy='minority'), rand_log_reg) # SMOTE happens during Cross Validation not before..
model = pipeline.fit(original_Xtrain[train], original_ytrain[train])
best_est = rand_log_reg.best_estimator_
prediction = best_est.predict(original_Xtrain[test])

accuracy_lst.append(pipeline.score(original_Xtrain[test], original_ytrain[test]))
precision_lst.append(precision_score(original_ytrain[test], prediction))
recall_lst.append(recall_score(original_ytrain[test], prediction))
f1_lst.append(f1_score(original_ytrain[test], prediction))
auc_lst.append(roc_auc_score(original_ytrain[test], prediction))

print('---' * 45)
print('')
print("accuracy: {}".format(np.mean(accuracy_lst)))
print("precision: {}".format(np.mean(precision_lst)))
print("recall: {}".format(np.mean(recall_lst)))
print("f1: {}".format(np.mean(f1_lst)))
print('---' * 45)
Length of X (train): 227846 | Length of y (train): 227846
Length of X (test): 56961 | Length of y (test): 56961
---------------------------------------------------------------------------------------------------------------------------------------
accuracy: 0.9419351252041981
precision: 0.06018427458248645
ecall: 0.9111976630963973
f1: 0.11112620278189447
---------------------------------------------------------------------------------------------------------------------------------------
In [44]:

labels = ['No Fraud', 'Fraud']
smote_prediction = best_est.predict(original_Xtest)
print(classification_report(original_ytest, smote_prediction, target_names=labels))
precision recall f1-score support
No Fraud 1.00 0.99 0.99 56863
Fraud 0.11 0.86 0.20 98
accuracy 0.99 56961
macro avg 0.55 0.92 0.59 56961
weighted avg 1.00 0.99 0.99 56961
In [45]:

y_score = best_est.decision_function(original_Xtest)
average_precision = average_precision_score(original_ytest, y_score)
print('Average precision-recall score: {0:0.2f}'.format(
average_precision))
fig = plt.figure(figsize=(12,6))
precision, recall, _ = precision_recall_curve(original_ytest, y_score)
plt.step(recall, precision, color='r', alpha=0.2,
where='post')
plt.fill_between(recall, precision, step='post', alpha=0.2,
color='#F59B00')
plt.xlabel('Recall')
plt.ylabel('Precision')
plt.ylim([0.0, 1.05])
plt.xlim([0.0, 1.0])
plt.title('OverSampling Precision-Recall curve: \n Average Precision-Recall Score ={0:0.2f}'.format(
average_precision), fontsize=16)
Average precision-recall score: 0.74
Out[45]:
Text(0.5, 1.0, 'OverSampling Precision-Recall curve: \n Average Precision-Recall Score =0.74')

In [0]:

# SMOTE Technique (OverSampling) After splitting and Cross Validating
sm = SMOTE(ratio='minority', random_state=42)
# Xsm_train, ysm_train = sm.fit_sample(X_train, y_train)
# This will be the data were we are going to
Xsm_train, ysm_train = sm.fit_sample(original_Xtrain, original_ytrain)

In [47]:

# We Improve the score by 2% points approximately
# Implement GridSearchCV and the other models.
# Logistic Regression
t0 = time.time()
log_reg_sm = grid_log_reg.best_estimator_
log_reg_sm.fit(Xsm_train, ysm_train)
t1 = time.time()
print("Fitting oversample data took :{} sec".format(t1 - t0))
Fitting oversample data took :9.559972286224365 sec
In [48]:

from sklearn.metrics import confusion_matrix
# Logistic Regression fitted using SMOTE technique
y_pred_log_reg = log_reg_sm.predict(X_test)
# Other models fitted with UnderSampling
y_pred_knear = knears_neighbors.predict(X_test)
y_pred_svc = svc.predict(X_test)
y_pred_tree = tree_clf.predict(X_test)
log_reg_cf = confusion_matrix(y_test, y_pred_log_reg)
kneighbors_cf = confusion_matrix(y_test, y_pred_knear)
svc_cf = confusion_matrix(y_test, y_pred_svc)
tree_cf = confusion_matrix(y_test, y_pred_tree)
fig, ax = plt.subplots(2, 2,figsize=(22,12))
sns.heatmap(log_reg_cf, ax=ax[0][0], annot=True, cmap=plt.cm.copper)
ax[0, 0].set_title("Logistic Regression \n Confusion Matrix", fontsize=14)
ax[0, 0].set_xticklabels(['', ''], fontsize=14, rotation=90)
ax[0, 0].set_yticklabels(['', ''], fontsize=14, rotation=360)
sns.heatmap(kneighbors_cf, ax=ax[0][1], annot=True, cmap=plt.cm.copper)
ax[0][1].set_title("KNearsNeighbors \n Confusion Matrix", fontsize=14)
ax[0][1].set_xticklabels(['', ''], fontsize=14, rotation=90)
ax[0][1].set_yticklabels(['', ''], fontsize=14, rotation=360)
sns.heatmap(svc_cf, ax=ax[1][0], annot=True, cmap=plt.cm.copper)
ax[1][0].set_title("Suppor Vector Classifier \n Confusion Matrix", fontsize=14)
ax[1][0].set_xticklabels(['', ''], fontsize=14, rotation=90)
ax[1][0].set_yticklabels(['', ''], fontsize=14, rotation=360)
sns.heatmap(tree_cf, ax=ax[1][1], annot=True, cmap=plt.cm.copper)
ax[1][1].set_title("DecisionTree Classifier \n Confusion Matrix", fontsize=14)
ax[1][1].set_xticklabels(['', ''], fontsize=14, rotation=90)
ax[1][1].set_yticklabels(['', ''], fontsize=14, rotation=360)
plt.show()
In [49]:

from sklearn.metrics import classification_report
print('Logistic Regression:')
print(classification_report(y_test, y_pred_log_reg))
print('KNears Neighbors:')
print(classification_report(y_test, y_pred_knear))
print('Support Vector Classifier:')
print(classification_report(y_test, y_pred_svc))
print('Support Vector Classifier:')
print(classification_report(y_test, y_pred_tree))
Logistic Regression:
precision recall f1-score support
0 0.90 0.94 0.92 87
1 0.95 0.92 0.94 110
accuracy 0.93 197
macro avg 0.93 0.93 0.93 197
weighted avg 0.93 0.93 0.93 197
KNears Neighbors:
precision recall f1-score support
0 0.87 0.92 0.89 87
1 0.93 0.89 0.91 110
accuracy 0.90 197
macro avg 0.90 0.91 0.90 197
weighted avg 0.91 0.90 0.90 197
Support Vector Classifier:
precision recall f1-score support
0 0.86 0.94 0.90 87
1 0.95 0.88 0.92 110
accuracy 0.91 197
macro avg 0.91 0.91 0.91 197
weighted avg 0.91 0.91 0.91 197
Support Vector Classifier:
precision recall f1-score support
0 0.89 0.93 0.91 87
1 0.94 0.91 0.93 110
accuracy 0.92 197
macro avg 0.92 0.92 0.92 197
weighted avg 0.92 0.92 0.92 197
Neural Nets and other stuff¶
In [50]:

import keras
from keras import backend as K
from keras.models import Sequential
from keras.layers import Activation
from keras.layers.core import Dense
from keras.optimizers import Adam
from keras.metrics import categorical_crossentropy
n_inputs = X_train.shape[1]
undersample_model = Sequential([
Dense(n_inputs, input_shape=(n_inputs, ), activation='relu'),
Dense(32, activation='relu'),
Dense(2, activation='softmax')
])
Using TensorFlow backend.
In [51]:

undersample_model.summary()
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 30) 930
_________________________________________________________________
dense_2 (Dense) (None, 32) 992
_________________________________________________________________
dense_3 (Dense) (None, 2) 66
=================================================================
Total params: 1,988
Trainable params: 1,988
Non-trainable params: 0
_________________________________________________________________
In [0]:

undersample_model.compile(Adam(lr=0.001), loss='sparse_categorical_crossentropy', metrics=['accuracy'])

In [53]:

undersample_model.fit(X_train, y_train, validation_split=0.2, batch_size=25, epochs=20, shuffle=True, ve
ose=2)
Train on 629 samples, validate on 158 samples
Epoch 1/20
- 0s - loss: 0.4561 - accuracy: 0.8283 - val_loss: 0.3323 - val_accuracy: 0.8671
Epoch 2/20
- 0s - loss: 0.2677 - accuracy: 0.9046 - val_loss: 0.2636 - val_accuracy: 0.9177
Epoch 3/20
- 0s - loss: 0.2158 - accuracy: 0.9316 - val_loss: 0.2330 - val_accuracy: 0.9304
Epoch 4/20
- 0s - loss: 0.1805 - accuracy: 0.9412 - val_loss: 0.2107 - val_accuracy: 0.9177
Epoch 5/20
- 0s - loss: 0.1608 - accuracy: 0.9444 - val_loss: 0.1956 - val_accuracy: 0.9304
Epoch 6/20
- 0s - loss: 0.1436 - accuracy: 0.9507 - val_loss: 0.1883 - val_accuracy: 0.9304
Epoch 7/20
- 0s - loss: 0.1334 - accuracy: 0.9523 - val_loss: 0.1792 - val_accuracy: 0.9177
Epoch 8/20
- 0s - loss: 0.1237 - accuracy: 0.9539 - val_loss: 0.1754 - val_accuracy: 0.9114
Epoch 9/20
- 0s - loss: 0.1157 - accuracy: 0.9539 - val_loss: 0.1701 - val_accuracy: 0.9177
Epoch 10/20
- 0s - loss: 0.1078 - accuracy: 0.9555 - val_loss: 0.1686 - val_accuracy: 0.9177
Epoch 11/20
- 0s - loss: 0.1019 - accuracy: 0.9555 - val_loss: 0.1646 - val_accuracy: 0.9177
Epoch 12/20
- 0s - loss: 0.0958 - accuracy: 0.9634 - val_loss: 0.1637 - val_accuracy: 0.9177
Epoch 13/20
- 0s - loss: 0.0917 - accuracy: 0.9650 - val_loss: 0.1601 - val_accuracy: 0.9304
Epoch 14/20
- 0s - loss: 0.0867 - accuracy: 0.9698 - val_loss: 0.1595 - val_accuracy: 0.9241
Epoch 15/20
- 0s - loss: 0.0813 - accuracy: 0.9714 - val_loss: 0.1615 - val_accuracy: 0.9177
Epoch 16/20
- 0s - loss: 0.0786 - accuracy: 0.9634 - val_loss: 0.1583 - val_accuracy: 0.9114
Epoch 17/20
- 0s - loss: 0.0746 - accuracy: 0.9730 - val_loss: 0.1556 - val_accuracy: 0.9177
Epoch 18/20
- 0s - loss: 0.0692 - accuracy: 0.9714 - val_loss: 0.1565 - val_accuracy: 0.9177
Epoch 19/20
- 0s - loss: 0.0654 - accuracy: 0.9746 - val_loss: 0.1584 - val_accuracy: 0.9177
Epoch 20/20
- 0s - loss: 0.0628 - accuracy: 0.9746 - val_loss: 0.1576 - val_accuracy: 0.9304
Out[53]:
keras.callbacks.callbacks.History at 0x7fe5ce79cf60
In [0]:

undersample_predictions = undersample_model.predict(original_Xtest, batch_size=200, ve
ose=0)

In [0]:

undersample_fraud_predictions = undersample_model.predict_classes(original_Xtest, batch_size=200, ve
ose=0)

In [0]:

import itertools
# Create a confusion matrix
def plot_confusion_matrix(cm, classes,
normalize=False,
title='Confusion matrix',
cmap=plt.cm.Blues):
"""
This function prints and plots the confusion matrix.
Normalization can be applied by setting `normalize=True`.
"""
if normalize:
cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
print("Normalized confusion matrix")
else:
print('Confusion matrix, without normalization')
print(cm)
plt.imshow(cm, interpolation='nearest', cmap=cmap)
plt.title(title, fontsize=14)
plt.colo
ar()
tick_marks = np.arange(len(classes))
plt.xticks(tick_marks, classes, rotation=45)
plt.yticks(tick_marks, classes)
fmt = '.2f' if normalize else 'd'
thresh = cm.max() / 2.
for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
plt.text(j, i, format(cm[i, j], fmt),
horizontalalignment="center",
color="white" if cm[i, j] > thresh else "black")
plt.tight_layout()
plt.ylabel('True label')
plt.xlabel('Predicted label')

In [57]:

undersample_cm = confusion_matrix(original_ytest, undersample_fraud_predictions)
actual_cm = confusion_matrix(original_ytest, original_ytest)
labels = ['No Fraud', 'Fraud']
fig = plt.figure(figsize=(16,8))
fig.add_subplot(221)
plot_confusion_matrix(undersample_cm, labels, title="Random UnderSample \n Confusion Matrix", cmap=plt.cm.Reds)
fig.add_subplot(222)
plot_confusion_matrix(actual_cm, labels, title="Confusion Matrix \n (with 100% accuracy)", cmap=plt.cm.Greens)
Confusion matrix, without normalization
[[54584 2279]
[ 9 89]]
Confusion matrix, without normalization
[[56863 0]
[ 0 98]]

In [0]:

n_inputs = Xsm_train.shape[1]
oversample_model = Sequential([
Dense(n_inputs, input_shape=(n_inputs, ), activation='relu'),
Dense(32, activation='relu'),
Dense(2, activation='softmax')
])

In [0]:

oversample_model.compile(Adam(lr=0.001), loss='sparse_categorical_crossentropy', metrics=['accuracy'])

In [60]:

oversample_model.fit(Xsm_train, ysm_train, validation_split=0.2, batch_size=300, epochs=20, shuffle=True, ve
ose=2)
Train on 363923 samples, validate on 90981 samples
Epoch 1/20
- 2s - loss: 0.0624 - accuracy: 0.9765 - val_loss: 0.0155 - val_accuracy: 0.9973
Epoch 2/20
- 2s - loss: 0.0126 - accuracy: 0.9974 - val_loss: 0.0075 - val_accuracy: 1.0000
Epoch 3/20
- 2s - loss: 0.0072 - accuracy: 0.9986 - val_loss: 0.0037 - val_accuracy: 1.0000
Epoch 4/20
- 2s - loss: 0.0052 - accuracy: 0.9990 - val_loss: 0.0024 - val_accuracy: 1.0000
Epoch 5/20
- 2s - loss: 0.0038 - accuracy: 0.9993 - val_loss: 0.0018 - val_accuracy: 1.0000
Epoch 6/20
- 2s - loss: 0.0032 - accuracy: 0.9994 - val_loss: 6.7341e-04 - val_accuracy: 1.0000
Epoch 7/20
- 2s - loss: 0.0027 - accuracy: 0.9995 - val_loss: 0.0012 - val_accuracy: 0.9999
Epoch 8/20
- 2s - loss: 0.0026 - accuracy: 0.9995 - val_loss: 5.4168e-04 - val_accuracy: 1.0000
Epoch 9/20
- 2s - loss: 0.0020 - accuracy: 0.9996 - val_loss: 0.0030 - val_accuracy: 0.9999
Epoch 10/20
- 2s - loss: 0.0018 - accuracy: 0.9997 - val_loss: 0.0013 - val_accuracy: 0.9999
Epoch 11/20
- 2s - loss: 0.0018 - accuracy: 0.9996 - val_loss: 4.5583e-04 - val_accuracy: 1.0000
Epoch 12/20
- 2s - loss: 0.0014 - accuracy: 0.9997 - val_loss: 3.1518e-04 - val_accuracy: 1.0000
Epoch 13/20
- 2s - loss: 0.0013 - accuracy: 0.9997 - val_loss: 3.5381e-04 - val_accuracy: 1.0000
Epoch 14/20
- 2s - loss: 0.0012 - accuracy: 0.9997 - val_loss: 8.6079e-04 - val_accuracy: 1.0000
Epoch 15/20
- 2s - loss: 0.0012 - accuracy: 0.9998 - val_loss: 2.2759e-04 - val_accuracy: 1.0000
Epoch 16/20
- 2s - loss: 0.0011 - accuracy: 0.9997 - val_loss: 4.8317e-04 - val_accuracy: 1.0000
Epoch 17/20
- 2s - loss: 0.0010 - accuracy: 0.9998 - val_loss: 3.2697e-04 - val_accuracy: 1.0000
Epoch 18/20
- 2s - loss: 0.0011 - accuracy: 0.9998 - val_loss: 2.1950e-04 - val_accuracy: 1.0000
Epoch 19/20
- 2s - loss: 8.0063e-04 - accuracy: 0.9998 - val_loss: 1.4108e-04 - val_accuracy: 1.0000
Epoch 20/20
- 2s - loss: 9.2644e-04 - accuracy: 0.9998 - val_loss: 0.0013 - val_accuracy: 1.0000
Out[60]:
keras.callbacks.callbacks.History at 0x7fe5cf336f98
In [0]:

oversample_predictions = oversample_model.predict(original_Xtest, batch_size=200, ve
ose=0)

In [0]:

oversample_fraud_predictions = oversample_model.predict_classes(original_Xtest, batch_size=200, ve
ose=0)

In [63]:

oversample_smote = confusion_matrix(original_ytest, oversample_fraud_predictions)
actual_cm = confusion_matrix(original_ytest, original_ytest)
labels = ['No Fraud', 'Fraud']
fig = plt.figure(figsize=(16,8))
fig.add_subplot(221)
plot_confusion_matrix(oversample_smote, labels, title="OverSample (SMOTE) \n Confusion Matrix", cmap=plt.cm.Oranges)
fig.add_subplot(222)
plot_confusion_matrix(actual_cm, labels, title="Confusion Matrix \n (with 100% accuracy)", cmap=plt.cm.Greens)
Confusion matrix, without normalization
[[56848 15]
[ 30 68]]
Confusion matrix, without normalization
[[56863 0]
[ 0 98]]

Implementing SMOTE on our imbalanced dataset helped us with the imbalance of our labels (more no fraud than fraud transactions). Nevertheless, I still have to state that sometimes the neural network on the oversampled dataset predicts less co
ect fraud transactions than our model using the undersample dataset. However, remember that the removal of outliers was implemented only on the random undersample dataset and not on the oversampled one. Also, in our undersample data our model is unable to detect for a large number of cases non fraud transactions co
ectly and instead, misclassifies those non fraud transactions as fraud cases. Imagine that people that were making regular purchases got their card blocked due to the reason that our model classified that transaction as a fraud transaction, this will be a huge disadvantage for the financial institution. The number of customer complaints and customer disatisfaction will increase. The next step of this analysis will be to do an outlier removal on our oversample dataset and see if our accuracy in the test set improves.
Autoencoder¶
In [0]:

import numpy as np
import pandas as pd
import zipfile
from keras.preprocessing.image import ImageDataGenerator, load_img
import tensorflow as tf
from sklearn.preprocessing import StandardScale
from keras.utils import to_categorical
import matplotlib.pyplot as plt
import random
from subprocess import check_output
from keras.callbacks import EarlyStopping, ReduceLROnPlateau
import os
import pickle
from scipy import stats
import seaborn as sns
from pylab import rcParams
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Model, load_model,Sequential
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard
from tensorflow.keras import regularizers
from sklearn.metrics import confusion_matrix, precision_recall_curve, auc,roc_curve, recall_score, classification_report, f1_score,precision_recall_fscore_support
from sklearn.model_selection import train_test_split
%matplotlib inline

In [65]:

data = pd.read_csv("creditcard.csv")
data.head(10)

Out[65]:
                Time        V1        V2        V3        V4        V5        V6        V7        V8        V9        V10        V11        V12        V13        V14        V15        V16        V17        V18        V19        V20        V21        V22        V23        V24        V25        V26        V27        V28        Amount        Class
        0        0.0        -1.359807        -0.072781        2.536347        1.378155        -0.338321        0.462388        0.239599        0.098698        0.363787        0.090794        -0.551600        -0.617801        -0.991390        -0.311169        1.468177        -0.470401        0.207971        0.025791        0.403993        0.251412        -0.018307        0.277838        -0.110474        0.066928        0.128539        -0.189115        0.133558        -0.021053        149.62        0
        1        0.0        1.191857        0.266151        0.166480        0.448154        0.060018        -0.082361        -0.078803        0.085102        -0.255425        -0.166974        1.612727        1.065235        0.489095        -0.143772        0.635558        0.463917        -0.114805        -0.183361        -0.145783        -0.069083        -0.225775        -0.638672        0.101288        -0.339846        0.167170        0.125895        -0.008983        0.014724        2.69        0
        2        1.0        -1.358354        -1.340163        1.773209        0.379780        -0.503198        1.800499        0.791461        0.247676        -1.514654        0.207643        0.624501        0.066084        0.717293        -0.165946        2.345865        -2.890083        1.109969        -0.121359        -2.261857        0.524980        0.247998        0.771679        0.909412        -0.689281        -0.327642        -0.139097        -0.055353        -0.059752        378.66        0
        3        1.0        -0.966272        -0.185226        1.792993        -0.863291        -0.010309        1.247203        0.237609        0.377436        -1.387024        -0.054952        -0.226487        0.178228        0.507757        -0.287924        -0.631418        -1.059647        -0.684093        1.965775        -1.232622        -0.208038        -0.108300        0.005274        -0.190321        -1.175575        0.647376        -0.221929        0.062723        0.061458        123.50        0
        4        2.0        -1.158233        0.877737        1.548718        0.403034        -0.407193        0.095921        0.592941        -0.270533        0.817739        0.753074        -0.822843        0.538196        1.345852        -1.119670        0.175121        -0.451449        -0.237033        -0.038195        0.803487        0.408542        -0.009431        0.798278        -0.137458        0.141267        -0.206010        0.502292        0.219422        0.215153        69.99        0
        5        2.0        -0.425966        0.960523        1.141109        -0.168252        0.420987        -0.029728        0.476201        0.260314        -0.568671        -0.371407        1.341262        0.359894        -0.358091        -0.137134        0.517617        0.401726        -0.058133        0.068653        -0.033194        0.084968        -0.208254        -0.559825        -0.026398        -0.371427        -0.232794        0.105915        0.253844        0.081080        3.67        0
        6        4.0        1.229658        0.141004        0.045371        1.202613        0.191881        0.272708        -0.005159        0.081213        0.464960        -0.099254        -1.416907        -0.153826        -0.751063        0.167372        0.050144        -0.443587        0.002821        -0.611987        -0.045575        -0.219633        -0.167716        -0.270710        -0.154104        -0.780055        0.750137        -0.257237        0.034507        0.005168        4.99        0
        7        7.0        -0.644269        1.417964        1.074380        -0.492199        0.948934        0.428118        1.120631        -3.807864        0.615375        1.249376        -0.619468        0.291474        1.757964        -1.323865        0.686133        -0.076127        -1.222127        -0.358222        0.324505        -0.156742        1.943465        -1.015455        0.057504        -0.649709        -0.415267        -0.051634        -1.206921        -1.085339        40.80        0
        8        7.0        -0.894286        0.286157        -0.113192        -0.271526        2.669599        3.721818        0.370145        0.851084        -0.392048        -0.410430        -0.705117        -0.110452        -0.286254        0.074355        -0.328783        -0.210077        -0.499768        0.118765        0.570328        0.052736        -0.073425        -0.268092        -0.204233        1.011592        0.373205        -0.384157        0.011747        0.142404        93.20        0
        9        9.0        -0.338262        1.119593        1.044367        -0.222187        0.499361        -0.246761        0.651583        0.069539        -0.736727        -0.366846        1.017614        0.836390        1.006844        -0.443523        0.150219        0.739453        -0.540980        0.476677        0.451773        0.203711        -0.246914        -0.633753        -0.120794        -0.385050        -0.069733        0.094199        0.246219        0.083076        3.68        0
In [66]:

# Check how much examples we have per Class
count_classes = pd.value_counts(data['Class'], sort = True).sort_index()
df = pd.DataFrame({'Class0':count_classes[0], 'Class1*100':count_classes[1]*100}, index=['N']) #
df.plot(kind='bar')
plt.title("Histogram")
plt.xlabel("Class")
plt.ylabel("Count")
print("count for each class : \n\n" + str(count_classes) + "\n")
print ('percent of fraud : ' + str(100*count_classes[1]/(sum(count_classes))) + "%")
count for each class :
0 284315
1 492
Name: Class, dtype: int64
percent of fraud : 0.1727485630620034%

In [67]:

data['Amount'] = StandardScaler().fit_transform(data['Amount'].values.reshape(-1, 1))
#data['Time'] = StandardScaler().fit_transform(data['Time'].values.reshape(-1, 1))
data = data.drop(['Time'],axis=1) #,'Amount'
data.head()

Out[67]:
                V1        V2        V3        V4        V5        V6        V7        V8        V9        V10        V11        V12        V13        V14        V15        V16        V17        V18        V19        V20        V21        V22        V23        V24        V25        V26        V27        V28        Amount        Class
        0        -1.359807        -0.072781        2.536347        1.378155        -0.338321        0.462388        0.239599        0.098698        0.363787        0.090794        -0.551600        -0.617801        -0.991390        -0.311169        1.468177        -0.470401        0.207971        0.025791        0.403993        0.251412        -0.018307        0.277838        -0.110474        0.066928        0.128539        -0.189115        0.133558        -0.021053        0.244964        0
        1        1.191857        0.266151        0.166480        0.448154        0.060018        -0.082361        -0.078803        0.085102        -0.255425        -0.166974        1.612727        1.065235        0.489095        -0.143772        0.635558        0.463917        -0.114805        -0.183361        -0.145783        -0.069083        -0.225775        -0.638672        0.101288        -0.339846        0.167170        0.125895        -0.008983        0.014724        -0.342475        0
        2        -1.358354        -1.340163        1.773209        0.379780        -0.503198        1.800499        0.791461        0.247676        -1.514654        0.207643        0.624501        0.066084        0.717293        -0.165946        2.345865        -2.890083        1.109969        -0.121359        -2.261857        0.524980        0.247998        0.771679        0.909412        -0.689281        -0.327642        -0.139097        -0.055353        -0.059752        1.160686        0
        3        -0.966272        -0.185226        1.792993        -0.863291        -0.010309        1.247203        0.237609        0.377436        -1.387024        -0.054952        -0.226487        0.178228        0.507757        -0.287924        -0.631418        -1.059647        -0.684093        1.965775        -1.232622        -0.208038        -0.108300        0.005274        -0.190321        -1.175575        0.647376        -0.221929        0.062723        0.061458        0.140534        0
        4        -1.158233        0.877737        1.548718        0.403034        -0.407193        0.095921        0.592941        -0.270533        0.817739        0.753074        -0.822843        0.538196        1.345852        -1.119670        0.175121        -0.451449        -0.237033        -0.038195        0.803487        0.408542        -0.009431        0.798278        -0.137458        0.141267        -0.206010        0.502292        0.219422        0.215153        -0.073403        0
In [0]:

# Test train split
ad_data = data[data['Class'] == 1]
ad_data2=bad_data['Class']
ad_data=bad_data.drop(['Class'], axis=1)
X_train, X_test = train_test_split(data, test_size=0.2, random_state=42)
X_train = X_train[X_train['Class']==0]
X_train = X_train.drop(['Class'], axis=1)
y_test = X_test['Class']
X_test = X_test.drop(['Class'], axis=1)
X_train = X_train.values
X_test = X_test.values
X_test2=np.concatenate([bad_data, X_test])
y_test2 = np.concatenate([bad_data2, y_test])

In [0]:

# Model params
input_dim = X_train.shape[1]
encoding_dim = 14
nb_epoch = 15
atch_size = 32

In [70]:

input_layer = Input(shape=(input_dim, ))
encoder = Dense(18, activation="relu")(input_layer)
encoder = Dense(encoding_dim, activation="relu", activity_regularizer=regularizers.l2(10e-3))(encoder) #regularizers.l1(10e-5)
encoder = Dense(int(encoding_dim / 2)+2, activation="relu")(encoder)
decoder = Dense(encoding_dim, activation='relu')(encoder)
decoder = Dense(input_dim, activation='relu')(decoder)
autoencoder = Model(inputs=input_layer, outputs=decoder)
autoencoder.compile(optimizer='adam', loss='mean_squared_e
or', metrics=['accuracy'])
autoencoder.summary()
Model: "model"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) [(None, 29)] 0
_________________________________________________________________
dense (Dense) (None, 18) 540
_________________________________________________________________
dense_1 (Dense) (None, 14) 266
_________________________________________________________________
dense_2 (Dense) (None, 9) 135
_________________________________________________________________
dense_3 (Dense) (None, 14) 140
_________________________________________________________________
dense_4 (Dense) (None, 29) 435
=================================================================
Total params: 1,516
Trainable params: 1,516
Non-trainable params: 0
_________________________________________________________________
In [71]:

checkpointer = ModelCheckpoint(filepath="fraud_model.h5",ve
ose=0,save_best_only=True)
tenso
oard = TensorBoard(log_dir='./logs',histogram_freq=0,write_graph=True,write_images=True)
history = autoencoder.fit(X_train, X_train,epochs=nb_epoch,batch_size=batch_size,shuffle=True,validation_data=(X_test2, X_test2),ve
ose=1,callbacks=[checkpointer, tenso
oard]).history
Epoch 1/15
7108/7108 [==============================] - 16s 2ms/step - loss: 0.8198 - accuracy: 0.5712 - val_loss: 1.0197 - val_accuracy: 0.6713
Epoch 2/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7421 - accuracy: 0.6959 - val_loss: 0.9948 - val_accuracy: 0.7038
Epoch 3/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7225 - accuracy: 0.7296 - val_loss: 0.9727 - val_accuracy: 0.7415
Epoch 4/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7134 - accuracy: 0.7466 - val_loss: 0.9709 - val_accuracy: 0.7461
Epoch 5/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7088 - accuracy: 0.7547 - val_loss: 0.9629 - val_accuracy: 0.7603
Epoch 6/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7066 - accuracy: 0.7601 - val_loss: 0.9603 - val_accuracy: 0.7593
Epoch 7/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7047 - accuracy: 0.7632 - val_loss: 0.9668 - val_accuracy: 0.7578
Epoch 8/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7028 - accuracy: 0.7642 - val_loss: 0.9641 - val_accuracy: 0.7572
Epoch 9/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7026 - accuracy: 0.7631 - val_loss: 0.9557 - val_accuracy: 0.7661
Epoch 10/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.7010 - accuracy: 0.7654 - val_loss: 0.9526 - val_accuracy: 0.7703
Epoch 11/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.6981 - accuracy: 0.7754 - val_loss: 0.9522 - val_accuracy: 0.7840
Epoch 12/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.6957 - accuracy: 0.7816 - val_loss: 0.9471 - val_accuracy: 0.7827
Epoch 13/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.6950 - accuracy: 0.7843 - val_loss: 0.9482 - val_accuracy: 0.7806
Epoch 14/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.6936 - accuracy: 0.7851 - val_loss: 0.9494 - val_accuracy: 0.7936
Epoch 15/15
7108/7108 [==============================] - 14s 2ms/step - loss: 0.6919 - accuracy: 0.7891 - val_loss: 0.9458 - val_accuracy: 0.7838
In [72]:

autoencoder = load_model('fraud_model.h5')
plt.figure(figsize=(12,12))
plt.subplot(321)
plt.plot(history['loss'])
plt.plot(history['val_loss'])
plt.title('Model loss')
plt.xlabel('epoch')
plt.ylabel('loss')
plt.legend(['train loss', 'test loss']);#loc='upper right'
plt.subplot(322)
plt.plot(history['accuracy'])
plt.plot(history['val_accuracy'])
plt.title('Model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.ylim(0.4,1.1)
plt.legend(['train accuracy','test accuracy']);#loc='upper right'
In [0]:

predictions = autoencoder.predict(X_test2)
mse = np.mean(np.power(X_test2 - predictions, 2), axis=1)
e
or_df = pd.DataFrame({'reconstruction_e
or': mse,
'true_class': y_test2})

In [74]:

precision, recall, th = precision_recall_curve(e
or_df.true_class, e
or_df.reconstruction_e
or)
auprc = auc(recall, precision)
plt.plot(recall, precision, 'b')
plt.title('Precision Vs Recall over Threshold')
plt.xlabel('recall')
plt.ylabel('precision')
plt.legend(['AUPRC = %0.4f'% auprc])
plt.show()
In [75]:

F1_score=[]
F1_score = 2 * (precision * recall) / (precision + recall)
print('Maximal F1 Score : ', str(max(F1_score)))
optimal_th = th[np.argmax(F1_score)]
Maximal F1 Score : 0.5047770700636943
In [76]:

plt.plot(th, precision[1:], 'r', label='Threshold-Precision curve')
plt.plot(th, recall[1:], 'b', label='Threshold-Recall curve')
plt.plot(th, F1_score[1:], 'g', label='Threshold-Recall curve')
plt.title('Precision & Recall & F1 score Vs Threshold')
plt.xlabel('threshold')
plt.ylabel('Precision & Recall & F1')
plt.legend(['Precision','Recall', 'F1 score'])
plt.show()
In [77]:

groups = e
or_df.groupby('true_class')
fig, ax = plt.subplots()
for name, group in groups:
ax.plot(group.index, group.reconstruction_e
or, marker='o', ms=3.5, linestyle='',
label= "Fraud" if name == 1 else "Normal")
ax.hlines(optimal_th, ax.get_xlim()[0], ax.get_xlim()[1], colors="r", zorder=100, label='Threshold')
ax.legend()
plt.title("MSE e
or Vs Data point index")
plt.ylabel("MSE e
or")
plt.xlabel("Data point index")
plt.show();
Gan¶
In [0]:

df = pd.read_csv('creditcard.csv')

In [116]:

df.head()

Out[116]:
                Time        V1        V2        V3        V4        V5        V6        V7        V8        V9        V10        V11        V12        V13        V14        V15        V16        V17        V18        V19        V20        V21        V22        V23        V24        V25        V26        V27        V28        Amount        Class
        0        0.0        -1.359807        -0.072781        2.536347        1.378155        -0.338321        0.462388        0.239599        0.098698        0.363787        0.090794        -0.551600        -0.617801        -0.991390        -0.311169        1.468177        -0.470401        0.207971        0.025791        0.403993        0.251412        -0.018307        0.277838        -0.110474        0.066928        0.128539        -0.189115        0.133558        -0.021053        149.62        0
        1        0.0        1.191857        0.266151        0.166480        0.448154        0.060018        -0.082361        -0.078803        0.085102        -0.255425        -0.166974        1.612727        1.065235        0.489095        -0.143772        0.635558        0.463917        -0.114805        -0.183361        -0.145783        -0.069083        -0.225775        -0.638672        0.101288        -0.339846        0.167170        0.125895        -0.008983        0.014724        2.69        0
        2        1.0        -1.358354        -1.340163        1.773209        0.379780        -0.503198        1.800499        0.791461        0.247676        -1.514654        0.207643        0.624501        0.066084        0.717293        -0.165946        2.345865        -2.890083        1.109969        -0.121359        -2.261857        0.524980        0.247998        0.771679        0.909412        -0.689281        -0.327642        -0.139097        -0.055353        -0.059752        378.66        0
        3        1.0        -0.966272        -0.185226        1.792993        -0.863291        -0.010309        1.247203        0.237609        0.377436        -1.387024        -0.054952        -0.226487        0.178228        0.507757        -0.287924        -0.631418        -1.059647        -0.684093        1.965775        -1.232622        -0.208038        -0.108300        0.005274        -0.190321        -1.175575        0.647376        -0.221929        0.062723        0.061458        123.50        0
        4        2.0        -1.158233        0.877737        1.548718        0.403034        -0.407193        0.095921        0.592941        -0.270533        0.817739        0.753074        -0.822843        0.538196        1.345852        -1.119670        0.175121        -0.451449        -0.237033        -0.038195        0.803487        0.408542        -0.009431        0.798278        -0.137458        0.141267        -0.206010        0.502292        0.219422        0.215153        69.99        0
In [0]:

df = df.drop('Time',axis=1)

In [0]:

X = df.drop('Class',axis=1).values
y = df['Class'].values

In [119]:

X.shape

Out[119]:
(284807, 29)
In [0]:

X -= X.min(axis=0)
X /= X.max(axis=0)

In [121]:

X.mean()

Out[121]:
0.5213456986239168
In [122]:

X.shape

Out[122]:
(284807, 29)
In [0]:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train,y_test = train_test_split(X,y,test_size=0.1)

In [0]:

import numpy as np
from tqdm import tqdm
import matplotlib.pyplot as plt
from keras.layers import Input, Embedding, multiply, BatchNormalization
from keras.models import Model, Sequential
from keras.layers.core import Reshape, Dense, Dropout, Flatten
from keras.layers.advanced_activations import LeakyReLU
from keras.layers.convolutional import Conv2D, UpSampling2D
from keras.datasets import mnist
from keras.optimizers import Adam
from keras import backend as K
from keras import initializers
from keras.utils import to_categorical
# The results are a little better when the dimensionality of the random vector is only 10.
# The dimensionality has been left at 100 for consistency with other GAN implementations.
andomDim = 100

In [0]:

def build_generator(latent_dim,data_dim):
model = Sequential()
model.add(Dense(16, input_dim=latent_dim))

model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dense(32, input_dim=latent_dim))

model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dense(data_dim,activation='tanh'))
model.summary()
noise = Input(shape=(latent_dim,))
img = model(noise)
return Model(noise, img)

In [126]:

generator = build_generator(latent_dim=10,data_dim=29)
Model: "sequential_5"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_14 (Dense) (None, 16) 176
_________________________________________________________________
leaky_re_lu_5 (LeakyReLU) (None, 16) 0
_________________________________________________________________
atch_normalization_4 (Batch (None, 16) 64
_________________________________________________________________
dense_15 (Dense) (None, 32) 544
_________________________________________________________________
leaky_re_lu_6 (LeakyReLU) (None, 32) 0
_________________________________________________________________
atch_normalization_5 (Batch (None, 32) 128
_________________________________________________________________
dense_16 (Dense) (None, 29) 957
=================================================================
Total params: 1,869
Trainable params: 1,773
Non-trainable params: 96
_________________________________________________________________
In [0]:

def build_discriminator(data_dim,num_classes):
model = Sequential()
model.add(Dense(31,input_dim=data_dim))
model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dropout(0.25))
model.add(Dense(16,input_dim=data_dim))
model.add(LeakyReLU(alpha=0.2))

model.summary()
img = Input(shape=(data_dim,))
features = model(img)
valid = Dense(1, activation="sigmoid")(features)
label = Dense(num_classes+1, activation="softmax")(features)
return Model(img, [valid, label])

In [128]:

discriminator = build_discriminator(data_dim=29,num_classes=2)
Model: "sequential_6"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_17 (Dense) (None, 31) 930
_________________________________________________________________
leaky_re_lu_7 (LeakyReLU) (None, 31) 0
_________________________________________________________________
atch_normalization_6 (Batch (None, 31) 124
_________________________________________________________________
dropout_2 (Dropout) (None, 31) 0
_________________________________________________________________
dense_18 (Dense) (None, 16) 512
_________________________________________________________________
leaky_re_lu_8 (LeakyReLU) (None, 16) 0
=================================================================
Total params: 1,566
Trainable params: 1,504
Non-trainable params: 62
_________________________________________________________________
In [0]:

optimizer = Adam(0.0002, 0.5)
discriminator.compile(loss=['binary_crossentropy', 'categorical_crossentropy'],
loss_weights=[0.5, 0.5],
optimizer=optimizer,
metrics=['accuracy'])

In [0]:

noise = Input(shape=(10,))
img = generator(noise)
discriminator.trainable = False
valid,_ = discriminator(img)
combined = Model(noise , valid)
combined.compile(loss=['binary_crossentropy'],
optimizer=optimizer)

In [131]:

X_train.shape

Out[131]:
(256326, 29)
In [0]:

from imblearn.under_sampling import RandomUnderSample

In [0]:

us = RandomUnderSampler(random_state=42)

In [0]:

X_res, y_res = rus.fit_sample(X, y)

In [135]:

X_res.shape

Out[135]:
(984, 29)
In [136]:

from sklearn.metrics import accuracy_score, f1_score
X_res -= X_res.min()
X_res /= X_res.max()
X_test -= X_test.min()
X_test /= X_test.max()
X_test_res, y_test_res = rus.fit_sample(X_test,y_test)
y_res.shape

Out[136]:
(984,)
In [0]:

def train(X_train,y_train,
X_test,y_test,
generator,discriminator,
combined,
num_classes,
epochs,
batch_size=128):

f1_progress = []
half_batch = int(batch_size / 2)
noise_until = epochs
# Class weights:
# To balance the difference in occurences of digit class labels.
# 50% of labels that the discriminator trains on are 'fake'.
# Weight = 1 / frequency
cw1 = {0: 1, 1: 1}
cw2 = {i: num_classes / half_batch for i in range(num_classes)}
cw2[num_classes] = 1 / half_batch
for epoch in range(epochs):
# ---------------------
# Train Discriminato
# ---------------------
# Select a random half batch of images
idx = np.random.randint(0, X_train.shape[0], half_batch)
imgs = X_train[idx]
# Sample noise and generate a half batch of new images
noise = np.random.normal(0, 1, (half_batch, 10))
gen_imgs = generator.predict(noise)
valid = np.ones((half_batch, 1))
fake = np.zeros((half_batch, 1))
labels = to_categorical(y_train[idx], num_classes=num_classes+1)
fake_labels = to_categorical(np.full((half_batch, 1), num_classes), num_classes=num_classes+1)
# Train the discriminato
d_loss_real = discriminator.train_on_batch(imgs, [valid, labels], class_weight=[cw1, cw2])
d_loss_fake = discriminator.train_on_batch(gen_imgs, [fake, fake_labels], class_weight=[cw1, cw2])
d_loss = 0.5 * np.add(d_loss_real, d_loss_fake)
# ---------------------
# Train Generato
# ---------------------
noise = np.random.normal(0, 1, (batch_size, 10))
validity = np.ones((batch_size, 1))
# Train the generato
g_loss = combined.train_on_batch(noise, validity, class_weight=[cw1, cw2])
# Plot the progress
print ("%d [D loss: %f, acc: %.2f%%, op_acc: %.2f%%] [G loss: %f]" % (epoch, d_loss[0], 100*d_loss[3], 100*d_loss[4], g_loss))

if epoch % 10 == 0:
_,y_pred = discriminator.predict(X_test,batch_size=batch_size)
#print(y_pred.shape)
y_pred = np.argmax(y_pred[:,:-1],axis=1)

f1 = f1_score(y_test,y_pred)
print('Epoch: {}, F1: {:.5f}, F1P: {}'.format(epoch,f1,len(f1_progress)))
f1_progress.append(f1)

return f1_progress

In [0]:

f1_p = train(X_res,y_res,
X_test,y_test,
generator,discriminator,
combined,
num_classes=2,
epochs=10,
batch_size=128)

In [0]:

fig = plt.figure(figsize=(10,7))
plt.plot(f1_p)
plt.xlabel('10 Epochs')
plt.ylabel('F1 Score Validation')
57503/57503_1.ipyn
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "57503-1.ipynb",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "jJjPXKyBmOI8",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 204
},
"outputId": "66bad2ef-ff82-4a67-97d6-0ff2d86fe75c"
},
"source": [
"!wget -O train.csv https:
aw.githubusercontent.com/tiwari91/Housing-Prices/maste
train.csv"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": [
"--2020-05-11 16:41:37-- https:
aw.githubusercontent.com/tiwari91/Housing-Prices/maste
train.csv\n",
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n",
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 460676 (450K) [text/plain]\n",
"Saving to: ‘train.csv’\n",
"\n",
"\rtrain.csv 0%[ ] 0 --.-KB/s \rtrain.csv 100%[===================>] 449.88K --.-KB/s in 0.06s \n",
"\n",
"2020-05-11 16:41:38 (7.11 MB/s) - ‘train.csv’ saved [460676/460676]\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "CW5XtIbQnBiZ",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 34
},
"outputId": "61495621-c974-498a-bcd0-e53b8ced767a"
},
"source": [
"ls"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"\u001b[0m\u001b[01;34msample_data\u001b[0m/ train.csv\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "F9hfwkjKnco-",
"colab_type": "text"
},
"source": [
"#EDA"
]
},
{
"cell_type": "code",
"metadata": {
"id": "3AYb5FCynWCp",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 71
},
"outputId": "23eeb5d8-2d68-4563-be88-4f639f0b2df4"
},
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"from scipy.stats import norm\n",
"from sklearn.preprocessing import StandardScaler\n",
"from scipy import stats\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"%matplotlib inline"
],
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": [
"/us
local/li
python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n",
" import pandas.util.testing as tm\n"
],
"name": "stde
"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "kNLij4WDnfJt",
"colab_type": "code",
"colab": {}
},
"source": [
"df_train = pd.read_csv('train.csv')"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "_mXbLSwNnmV8",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 323
},
"outputId": "93a5a935-1531-4f20-c0a0-de57a970847e"
},
"source": [
"df_train.columns"
],
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Index(['Id', 'MSSubClass', 'MSZoning', 'LotFrontage', 'LotArea', 'Street',\n",
" 'Alley', 'LotShape', 'LandContour', 'Utilities', 'LotConfig',\n",
" 'LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType',\n",
" 'HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd',\n",
" 'RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType',\n",
" 'MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual',\n",
" 'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1',\n",
" 'BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating',\n",
" 'HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF',\n",
" 'LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath',\n",
" 'HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual',\n",
" 'TotRmsAbvGrd', 'Functional', 'Fireplaces', 'FireplaceQu', 'GarageType',\n",
" 'GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual',\n",
" 'GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF',\n",
" 'EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'PoolQC',\n",
" 'Fence', 'MiscFeature', 'MiscVal', 'MoSold', 'YrSold', 'SaleType',\n",
" 'SaleCondition', 'SalePrice'],\n",
" dtype='object')"
]
},
"metadata": {
"tags": []
},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "m0jbURLqnnsm",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 170
},
"outputId": "be116276-ff8d-405e-ef48-026b37a20f78"
},
"source": [
"#descriptive statistics summary\n",
"df_train['SalePrice'].describe()"
],
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"count 1460.000000\n",
"mean 180921.195890\n",
"std 79442.502883\n",
"min 34900.000000\n",
"25% 129975.000000\n",
"50% 163000.000000\n",
"75% 214000.000000\n",
"max 755000.000000\n",
"Name: SalePrice, dtype: float64"
]
},
"metadata": {
"tags": []
},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "oH1MnZQ9nqd7",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 290
},
"outputId": "67a5b064-ac8c-4aa4-e36e-111060ab31e0"
},
"source": [
"#histogram\n",
"sns.distplot(df_train['SalePrice']);"
],
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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
di7Gvu5rWf/hV3bqhj84qqoMuRizC5e6OxI8
+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
2pfPtA
8eLxLyNQChwC1gVZl79eiX8/z/9SbQH+A7jLX/5Z4F3+/XcDn/Xv3wXc599f539+Uf/LedT/fKf9jKfbx6TP8c+Aezgf2oHWhRfa1ZNqDPR75S/7KvBO/34+XogHXteEn/MWvJNKgv4ZXAIcBwonfNZvm+4zJ83f9wvet3QHcoLBuhV4eMLjDwEfSuL2V3BhaB8EFvv3FwMH/fufA94weT3gDcDnJiz/nL9sMXBgwvJz6023j2nq+y7eXC8ZURdQBOzGOxP2DBCZ/DnhjS7a6t+P+OvZ5M9ufL3pPmP/NVPuY8K6S4GfALcBD830mnTVxdShHejnB5TjBZFlUl0T1r8d+FUm1MT5M7+
O/JQ8DLpvvMSeP3ffItU/u0pzp1fkkK91frnDvt328BamepY6blTVMsn2kfFzCzFcC1eC3bQOsys7CZ7cHrTnoUr6XQ5ZwbnWI75
tP98NLLiIWhfMsI9x/wx8ABifHWmm16SrLgc8Yma7/CkdIPjv1WVAO/BlM3vKzL5gZsUZUNe4u/C6IWZaPy01OeeagX8AGoDTeN+TXQT/vXqeTA3twDjv150LYh9mVgJ8C3ifc64n6Lqcc3Hn3Ea8lu0NwBWp3H8izOxVQJtzblfQtUzyQufcdcDLgfeY2S0TnwzoexXB6wr8N+fctUA/XrdA0HXhn6h3J3B/IuunuiYzq8SbCO8yoA4oxuuDzjiZGtrpPnW+1cwWA/j/ts1Sx0zLl06xfKZ94C/LwwvsbzjnHsyUugCcc114B0q3AhVmFpliO+f27T9fDpy9iFrPzrAPgBcAd5rZCeCbeF0knwy6Lr+lhnOuDfg23i+5oD+/JqDJObfDf/wAXogHXRd4v9x2O+daZ1k/XTW9BDjunGt3zo0AD+J914L+vj9PpoZ2uk+d/x7ekWj8f787YfnvmWcL0O3/efUwcLuZVfq/oW/H64c6DfSY2RbzJgn+vUnbmmof+Ot+EXjOOfdPmVCXmdWYWYV/vxCvj/05vPB+3TQ1jW/ndcBP/dbM94C7zCxqZpcBq/EOFE35GfuvmW4fOOc+5Jxb6pxb4
mp865NwVZl5kVm1np+H3/fd8X5Ofnv1ctQKOZrfUXvRhvhFKgdfnewPmukZnWT1dNDcAWMyvyXzf+XgX6fZ/STB3eQd7wjhofwutH/XASt3svXp/VCF5L5B14/Uo/wRsK9J9Alb+u4V0A4ijeEKLNE7bz+3hDdI4Ab5+wfDPeD+xR4FOcH2405T78516I96faXs4PhXpFkHUB1+ANqdvrv+6v/eU
S/hEbw
aP+8gL/8RH/+ZUT9v1hf78H8Y/kz/QZT7ePKT7LbZwfPRJYXf7ypzk/PPLDs7y3afle+c9vBHb6n+N38EZaBP19L8ZrYZZPWJYJ79XH8IZG7gO+hjcCJGO+7+M3ncYuIpJFMrV7REREpqDQFhHJIgptEZEsotAWEckiCm0RkSyi0JaMZWYfNrP9Z
XzPaY2Y0zrPsVM3vddM9PWOe4v63dZrZ1mvU+bmYvudT6RVIhaVdjF0kmP1BfhTf74ZCZVePNjnap/tI594CZ3Y43ydA1k/Ybds79dRL2I5ISamlLploMnHHODQE45844506Z2V+b2ZNmts/M7vbPXruAmW0ys5+bN3nTw+OnLk/yOHC5v/4JM/t7M9sNvH5iq93MrjezX5vZ02b2hJmVmjeR1if8Ovaa2R+m7m0QuZBCWzLVI8AyMztkZp8xs1v95Z9yzl3vnFsPFOK1xs8xbw6XfwVe55zbhHfRi7+dYvuvxjvDbtxZ59x1zrlvTthWPt6k9O91zm3Am59iAO8s2m7n3PXA9cAf+Kcsi6ScukckIznn+sxsE3Az8CLgPjP7INBrZh/Am+O7Cu+08e9PeOlaYD3wqN8ID+NNWzDuE2b2EbwpS98xYfl9U5SxFjjtnHvSr6kHwO9auWZCH3o53hwTxy/+fyySGIW2ZCznXBx4DHjMzJ4B/hCvD3qzc67RzP4Gbw6IiQzY75yb8iAjfp/2FMv751CaAX/inHt4Dq8RSQp1j0hGMrO1ZrZ6wqKNeBPwAJwxb+7xqUaLHARqxkeGmFmemV11kWUcBBab2fX+tkrNm0LzYeBdflcMZ
Gn91PJOXU0pZMVQL8qz897CjeDGjbgS68Wdha8Ka7vIBzbtjvtvgXMyvH+47/M143ypz42/pdv45CvP7slwBfwLtk3W7/QGg78No5/w9FLoJm+RMRySLqHhERySIKbRGRLKLQFhHJIgptEZEsotAWEckiCm0RkSyi0BYRySL/H2LFk5+pt1VcAAAAAElFTkSuQmCC\n",
"text/plain": [
"
"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Q6xMxh-WnrzF",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 51
},
"outputId": "f1776cf8-1151-4198-8571-b77dd7ebc78a"
},
"source": [
"#skewness and kurtosis\n",
"print(\"Skewness: %f\" % df_train['SalePrice'].skew())\n",
"print(\"Kurtosis: %f\" % df_train['SalePrice'].kurt())"
],
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": [
"Skewness: 1.882876\n",
"Kurtosis: 6.536282\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "YP-afCi8ntiC",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 283
},
"outputId": "7ec30a92-1d44-438d-ed18-e42178b9f80a"
},
"source": [
"#scatter plot grlivarea/saleprice\n",
"var = 'GrLivArea'\n",
"data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)\n",
"data.plot.scatter(x=var, y='SalePrice', ylim=(0,800000));"
],
"execution_count": 9,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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
jHgFKAO+Bj4MoCqbheRxcAL
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
ubCagQGz6cNCSv/J+TMP5
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
zj/zKNgIsqDx
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
3vyhuA8b7txrmyBuBzaeV/dOXjA
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
y/YE33O8R7vWInr433/0cBMxw
cDXsNL41Mx9+mudYh7XQWsdde+FDjXld8J/Kt7/TXgTvf6XOBX7vVkYD0QAw4FXgfCPX1/aff6beAB4BH3vhLv8W/AAWllFfP32pUfq7n0Mar6NLA9rXg+cJ97fR9whq98iXrWAMNF5CDgJGCVqm5X1R3AKmBu6a++MKr6jqq+6F5/BLyCl3WhYu7TXWuze1vlfhSYDSxz5en3mLz3ZcAcERFX/qCqtqjqm0AdXvqjXkFExgGnAne790KF3WMOFfP32hUWXCrDaFV9x71+FxjtXgelwRmbo7zXcU0jn8b7Zl9R9+mai2qB9/EeJK8DO1W13W3iv96Oe3GfNwEj6eX3CPwXsBBIuPcjqbx7BO+Lwe9FZJ1LKwUV9vfaWRU5z6U/U1UVkYoYXy4iQ4DlwL+p6i7vS6ynEu5TVePAdBEZDvwGOKKHL6moROQ04H1VXScin+vp6ymxY1W1QUQ+AawSk
6P6yEv9fOsppLZXjPVatxv9935dnS4PT69DgiUoUXWO5X1V+74oq7TwBV3Qk8BRyD10SS/NLnv96Oe3GfDwMa6d33OAuYJyJ/w8tMPhv4MZV1jwCoaoP7/T7eF4WjqNC/10JZcKkMK4HkyJIFwApf+YVudMrRQJOrpj8BnCgiI9wIlhNdWa/g2tnvAV5R1R/6PqqY+xSRUa7GgogMBE7A61t6CjjTbZZ+j8l7PxNYrV4v8ErgXDfS6lBgEvB8ee4iN1W9WlXHqeoheB30q1X1fCroHgFEZLCI7Jd8jfd3tpEK+nvtkp4eUWA/nfsBfgm8A7ThtclehNcu/SSwBfgDsL
VvAWTXsdeBmo9h3nK3gdo3XAl3v6vtLu8Vi8NuwNQK37OaWS7hP4FPCSu8eNwHdd+WF4D8464CEg5soHuPd17vPDfMe6xt37q8DJPX1vWe73c+wbLVZR9+juZ7372QRc48or5u+1Kz+W/sUYY0zRWbOYMcaYorPgYowxpugsuBhjjCk6Cy7GGGOKzoKLMcaYorPgYkwRiMhoEXlARN5wKUCeE5F/CtjuEPFltPaV3yAiXyjgPNNFREWkz+acMv2DBRdjuslN+vwt8LSqHqaqR+JNGhyXtl3WdEuq+l1V/UMBp/sS8Iz7HXgtImL/X5seZ3+ExnTfbKBVVe9MFqjqW6r6ExH5FxFZKSKr8SbUBRKRn4vImSIyV0Qe8pV/TvatgyLAWcC/ACeIyABXfohb52QJ3oTM8SJypYi84NYLud53vN+6mtUmX4JFY4rOgosx3TcFeDHH5zOAM1X1swUc6w/ATJdGBOAcvLxcAP8IvKmqrwN/xEtlnzQJ+G9VnQJ80r0/CpgOHCkix7vtvuJqVtXAN0RkZAHXZEynWXAxpshE5HbxVph8wRWtUtX0NXgCqZdq/nfA6a4Z7VT25aT6EvsCzYOkNo29pd7aIODlpDoRL73Mi3jZlie5z74hIuuBNXhJEidhTAlYyn1jum8T8MXkG1W9VEQOAGpc0e5OHu9B4DK8ReFqVPUjEQm7c8wXkWvw8lONTCZMTDuHAP+pqj/1H9Slvf8CcIyqfiwif8TL52VM0VnNxZjuWw0MEJF/9ZUN6sbx/oTXlHYx+2oqc4ANqjpeVQ9R1YPxliTIGJGGl0n3K249HERkrFtnZBiwwwWWI/CW2DWmJCy4GNNN6mV/PQP4rIi8KSLP4y1ruyjLLp8UkXrfz1lpx4sDjwAnu9/gNYH9Ju04ywkYNaaqv8dbs/45EXkZb8ng/fCa2yIi8gpwI17TmDElYVmRjTHGFJ3VXIwxxhSdBRdjjDFFZ8HFGGNM0VlwMcYYU3QWXIwxxhSdBRdjjDFFZ8HFGGNM0f3/edaWLsbe9/EAAAAASUVORK5CYII=\n",
"text/plain": [
"
"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "LxboFmwlnvIF",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 283
},
"outputId": "4b9b643f-2069-495c-a0eb-3e3d299f33a3"
},
"source": [
"#scatter plot totalbsmtsf/saleprice\n",
"var = 'TotalBsmtSF'\n",
"data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)\n",
"data.plot.scatter(x=var, y='SalePrice', ylim=(0,800000));"
],
"execution_count": 10,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAEKCAYAAADenhiQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3de5zUddn4/9c1swdOIrgiAguKARpwC+kmGEaKqWiK3j+VTFN+ZnJ/SzvcmWL1K1Pv+nkoK2/LbjLvpCxDqEDTCAUzLcjFAAEVNjywiwquyJndnZnr+8fnPctnZz4zOzs7h53hej4e286853PE7XPN+3S9RVUxxhhjcilU7AswxhhTfiy4GGOMyTkLLsYYY3LOgosxxpics+BijDEm5yy4GGOMybm8BhcR+U8RWS8i60TkNyLSS0RGishKEWkQkd+KSJXbttq9b3CfH+s7ztdc+asico6vfLoraxCRm33lgecwxhhTGHkLLiIyDPgiUKeq44EwcBlwJ/ADVR0F7ACucbtcA+xw5T9w2yEiY91+44DpwE9EJCwiYeDHwLnAWOBTblvSnMMYY0wB5LtZrALoLSIVQB/gLWAasMB9/hBwkXt9oXuP+/xMERFX/oiqtqjqa0ADcIr7aVDVzaraCjwCXOj2SXUOY4wxBVCRrwOrapOIfA94E9gP/BlYBbyvqhG3WSMwzL0eBmxx+0ZEZCdQ48pX+A7t32dLQvkkt0+qc3QgIrOB2QB9+/Y9+YQTTsjuZo0x5hC1atWqd1V1UGJ53oKLiAzEq3WMBN4HHsVr1uoxVHUuMBegrq5O6+vri3xFxhhTWkTkjaDyfDaLfRx4TVW3q2ob8DtgCjDANZMB1AJN7nUTMNxdbAVwONDsL0/YJ1V5c5pzGGOMKYB8Bpc3gcki0sf1g5wJbACWA5e4bWYBi9zrxe497vNl6mXVXAxc5kaTjQRGA/8AXgBGu5FhVXid/ovdPqnOYYwxpgDyFlxUdSVep/qLwEvuXHOBOcBXRKQBr3/k526XnwM1rvwrwM3uOOuB+XiB6U/AdaoadX0q1wNLgJeB+W5b0pzDGGNMAYil3PdYn4sxxnSdiKxS1
Ecpuhb4wxJucsuBhjjMk5Cy7GGGNyzoKLMcaYnLPgYkwGmve0sGbL+zTvaSn2pRhTEvI2Q9+YcrFodRNzFq6lMhSiLRbjrotPZMbEwIxCxhjHai7GpNC8p4VnN27jpgVrONAWY3dLhANtMW5auNZqMMZ0wmouxgSI11ZCIrREOs4FqwyFaNyxn5p+1UW6OmN6PgsuxiRo3tPCnIVrOdAWC/y8LRajdmDvAl+VMaXFgosxCRp37KcyFOIAHYNLn8owMZS7Lj7Rai3GdMKCizEJagf2pi3WMbBUV4T46ZUnM25ofwssxmTAOvSNSVDTr5q7Lj6RXpUhDquuoFdliLsvOZGpYwZZYDEmQ1ZzMSbAjInDmDLqSBp37Kd2YG8LKsZ0kQUXY1Ko6VdtQcWYLFmzmDHGmJyz4GKMMSbnLLgYY4zJOQsuxhhjci5vwUVEjheR1b6fXSLyZRE5QkSWisgm93ug215E5F4RaRCRtSJyku9Ys9z2m0Rklq/8ZBF5ye1zr4iIKw88hzHGmMLIW3BR1VdVdaKqTgROBvYBvwduBp5W1dHA0+49wLnAaPczG7gfvEAB3AJMAk4BbvEFi/uBa337TXflqc5hjDGmAArVLHYm8C9VfQO4EHjIlT8EXOReXwjMU88KYICIDAHOAZaq6nuqugNYCkx3n/VX1RWqqsC8hGMFncMYY0wBFCq4XAb8xr0erKpvuddvA4Pd62HAFt8+ja4sXXljQHm6cxhjjCmAvAcXEakCZgCPJn7mahyatFMOpTuHiMwWkXoRqd++fXs+L8MYYw4phai5nAu8qKrvuPfvuCYt3O9t
wJGO7
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
TzXERkjapOcK9/DGxX1W+796tVdWJB
IAynWeS7yfYl3TTm7/44aMJxM272nhI3c83elDPRtVYSGmmtPsxxUhCIdCVIVtsqQxhZRqnktnXx/Dbj17gDOBZb7PMp4jY4ojvuzxFQ+s4Bt/WNfpKCx/zaamXzXfumBc4HFn1tW2j8CqCHn9LIdVV1CZ4ZCy1qgiIlSFu32L7SIxb6VJW5bYmJ6hswDxG+AvIvIu3oixvwKIyCgs5X6P5p+3EiRxMmFQmpTmPa1J+/WqDHH+iUOZM/2EDrm7Hl75Jv/99MaMr69XRZgbzh7NXUs2to9Iy6X4YmDWkW9McaStubjlhW/AW4nyND3YhhYCvpBuXxHpJSL/EJE1IrJeRG515SNFZKWINIjIb0WkypVXu/cN7vNjfcf6mit/VUTO8ZVPd2UNInKzrzzwHIeSoHkrfv75IP5AFP/mf+OCtdy3LDlYHGiLce28ep5veLfDCpI/eaaBFHEs5flPGzWIWDfTD1VXhKiukKRa096WKOua7PuPMcXSaa+qqq5Q1d+r6l5f2UZVfbGTXVuAaa7PZiIw3S0ydifwA1UdBewArnHbX4M3SXMU3ki0OwFEZCxwGV7qmenAT0QkLCJh4MfAucBY4FNuW9Kc45CRat5K36pw0mTCoEAUDgkVoeB2q5ZIx2anzgJZkBkThjBq8GHcdfGJSZ3+mQgBXz/vBO
x6n87eYz+fcPJfev3P7HDdY0ZkyRZPF/68yoZ497W+l+FJgGLHDlDwEXudcXuve4z88UEXHlj6hqi6q+BjQAp7ifBlXdrKqtwCPAhW6fVOc4ZATNTv/Ov4/n19dO5vk50zp0dgcFomhMicRSN1fFm9VS7V8ZFm/iZQp/+OdWmve0sPtApNOO/U+MP5pelSH6VoepCguf+9hxvPD/fZzZUz/AhOEDvOOt3pq0X1ik/RqNMYWV1055V7tYBYzCq2X8C3hfVeNpdhuB+FNuGLAFQFUjIrITqHHlK3yH9e+zJaF8ktsn1TkSr282MBtgxIgR2d1kD5bp7HT/BEp/n8sbzfv4/tLgfpR9rZEOaVa+ef5Ybn1sA5Vhbx2W604fxdxnNydlVI6rDHvpXm59fEOn9/GfZ43htovGp7yPxh37qQoLrQmnaotaHjFjiiWvwUVVo8BEN7v/98AJ+TxfV6nqXNx8nbq6urJceyDT2en+QBRfjGvskP7cu2xTYNLKqMKf1r3NFZOPYdHqJm5/fAOVIaEt4i0jPH380dy3vCHl+fa3Rvnz+rc7TSnTqzLE3tYoowanvo/agb0DMwjccsE469A3pkjy1izmp6rvA8vxEl4O8A1vrgWa3OsmYDiA+/xwoNlfnrBPqvLmNOcwKfjnw5x/33Nc
MVTP/Rs4GBJe7Wx9bT8M7u9sEAe1ujtEaV2
o1UbSTcSMAb9a+WaHte6DqGqntQ9/E2Df6jBVFV4T4BWTj0m7XznIZGKsMcWQt5qLiAwC2lT1fRHpDZyF19G+HC9l/yPALGCR22Wxe/939/kyVVURWQz8WkTuAYYCo/HS/QswWkRG4gWPy4DL3T6pzmECxIchh0VSpmAJUhESVm95P+WaKZdPGsF9yzd1ayJmTOH5hnc7Xeul0Akqs13oLJdslU3Tk+WzWWwI8JDrdwkB81X1cRHZADwiIv8F/BP4udv+58AvRaQBL+vyZQCqul5E5gMbgAhwnWtuQ0SuB5YAYeBBVV3vjjUnxTnKWmcPvKDPO5sPk04kpkwcPiDlmik1/aq54ezj+e4Tr2R3Q3i5ym5ckNlaL4VKUNkTHupB6+/4F0ozptjyFlxUdS3woYDyzXgjvRLLDwCXpjjWd4DvBJQ/ATyR6TnKWWcPvFSfB63WmKmvnn18+3DiGxesISwhohprH+a8aHUTdy95tdv31hKJMWfhWp5reLfbD9Pu1jh6ykPdVtk0PZ2lcCkDqR54Y4f0Z29rNO3Kj7UDe9Ma7foM+eqKEPc8tZGjD+/lVm8Rr6FSpcM1peuz6YqnXt5G36rkBca68jD1B9jWaIzrzxjF5ZNGdOlh3FMe6
KpunpCtKh
Ir1STG8+79K59+YCXn3vssifMpQyKs37qTmn7VXH/G6C6fsyUS40BbjBseXcONj66hJRJjX2u0fYLl+q27ujyxstNzJgSqrjxME7MQtERifH/pRj5yx9MsXp35eI+e8lC3VTZNT2fBpQwEPfAOtMVojSq7WyK0RaE12vHzfa1Rrp1Xz+LVTZw7/uisz90W1aQRX+GQABqYIaA7bjrn+KwfpqkCcEtEu5Tksic91GdMHMbzc6bxq89OSpoYa0yxWbNYGUicBNkSjSGqSd/0E8UfrHOvrKMiRM5S4O9tifLKW7u56+IT+eqjq8lFXsqrTh3B7KkfYNrxR7F6y/vtSyZnKlU6HOh6s1ZPWjrZVtk0PZXVXNDun0sAABvUSURBVMqE/1vsE184DUmTesWvMhRi6459GQeWDA/Ld598hd0tEe6ZmTSmIytXTT6WRaubOP++57j1sQ2cf99zaZuzEud/xANwdUAis2yatWr6VXdI3GmM6ciCSxmJP/DiI7iqKzqPBPtao3z9D+syPocAlRn+1Xx78Xp2H2jL+NjpxIchd7YmDRxcx+bTD6xkyp3L2oPQjInD+NvN07jhrDFUV0jRm7WMKWfWLFam4k03D/x1M/f/ZXPK7aJZpLxXb1hYp9u1RZX6N3Z0+fhBjuxXndEoraCRczcuWMOAPpWMG3o4Nf2q+cKZo7l80gjWb90JCOOG9s/JNRpjDrLgUoJSzdVILK/pV82ccz9I7cA+3PrYesIhYX8WkyX9okqn+cD8grIVd9XMulpO/UBNRqO0goYKt0SU
OrF4mpts/v6WxCpjGmeyy4lJhUkyHTTaK8YvIxTB9/NOu37uTaefXdSsfSVdGAhJJd8ckP13LnxRNo3tPCtOOP4ol1b7d/NrOuNqk5K1XHfXy1y/j8n54wEdKYcmZ9LiUkaMXImxau7ZA8MrE/It6xDTB1zFF8+NgjinwXXROJKA+veIOP3LGsQ2ABmF/fmNTn4h8q3KcyebGzylCoPR9aYrmt/WJM7ljNpYSkmh2eKnnkz/66mQefe43KcIioKl/5+Biea2guxqVnbeE/m1j4z+BRYamGEMf7m9Zv3eVqagf/XdpisbT50IwxuWE1lxKSanZ40MNyX2uEn/5lM61RZW9rlANtMe5ckn0CyZ4oXUCo6VfN1DGDuPuS5AmP8dF0PWEipDHlSjSL0ULlqK6uTuvr64t9GZ1avLopacXIGROHsXh1EzcuWEs4JESiMWJK4AJa5aIqDN+7dGJGnfCZDoAwxnSdiKxS1
EcmsWKzGpZod
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
w8X6I+Lfr5xre5bKfrcjr9efCKcce0aGDvnZg
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\n",
"text/plain": [
"
"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "vb2huMC3nwm9",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 392
},
"outputId": "9e4bc69a-3ad6-4dff-bd1e-e24040443514"
},
"source": [
"#box plot overallqual/saleprice\n",
"var = 'OverallQual'\n",
"data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)\n",
"f, ax = plt.subplots(figsize=(8, 6))\n",
"fig = sns.boxplot(x=var, y=\"SalePrice\", data=data)\n",
"fig.axis(ymin=0, ymax=800000);"
],
"execution_count": 11,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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
+WNpVciAiIjNCNpvlhhtu4P
2fhwoVxh1PRN/2xc3p6eqIOp4jGHIiIyIyQSqUYHBwklUrFHUrdU3IgIiJNL5vN0tfXh7vT19fHyMhI3CHVNSUHIiLS9FKpFO4OwOjoqHoPylByICIiTW9gYIBcLgdALpejv78/5ojqm5IDERFpep2dnbS2tgLQ2tpKV1dXzBHVt0iTAzO
2Z3mdlvzOw5M/ugmS0wswEzGwqvJ4Rzzcx6zCxtZoNmdnbBfZLh/CEzSxbUn2NmT4VreszMQv2EbYiIyMyUTCYJHxG0tLSQTCbLXDGzRd1z8D3gPnd/D/B+4DngGuB+d18O3B/KAN3A8vCzGrgJ8h/0wHXAucAK4LqCD/ubgM8XXLcy1E/WhoiIzEBtbW10d3djZnR3d9fFVMZ6FllyYGbvAD4M3Arg7gfdfTewChgbCZICPh7erwJu97yHgPlmdjJwITDg7rvc/VVgAFgZjr3d3R/y/CiT28fda6I2RERkhkomk5x55pnqNahAlD0HpwLDwA/M7Akzu8XMjgMWu/v2cM4OYHF4vwTYWnB9JtSVqs9MUE+JNoqY2Woz22xmm4eHh4/mdxQRkQbR1tbGunXr1GtQgSiTg9nA2cBN7v4B4A3Gde+H
weYQwl23D39e7e4e4dixYtijIMERGRhhFlcpABMu7+cCjfRT5ZeCU8EiC87gzHtwFLC65PhLpS9YkJ6inRhoiIiJQRWXLg7juArWZ2eqg6H3gW6AXGHvgkgXvC+17g8jBr4TzgtfBoYBPQZWYnhIGIXcCmcOx1MzsvzFK4fNy9JmpDRERmqGw2y5o1a7Q6YgWinq2wBviRmQ0CZwHfBm4EOs1sCLgglAE2Ai8CaeC/A18EcPddwDeBR8PPN0Id4ZxbwjUvAH2hfrI2RERkhtLeCpWLdFdGd38S6Jjg0PkTnOvAVZPcZwOwYYL6zcD7JqgfmagNERGZmcbvrZBMJjUwsQStkCgiIk1PeytMjZIDERFpetpbYWqUHIiISNPT3gpTo+RARESanvZWmBolByIi0vS0t8LURDpbQUREpF4kk0m2bNmiXoMKKDkQEZEZYWxvBSlPjxVERESkiJIDERGZEbR8cuWUHIiIyIyg5ZMrp+RARESa3vjlk9V7UJqSAxERaXpaPnlqlByIiEjT0/LJU6PkQEREmp6WT54aJQciItL0tHzy1Cg5EBGRo9JIUwO1fPLUKDkQEZGj0mhTA5PJJGeeeaZ6DSqg5EBERKasEacGji2frF6D8pQciIjIlGlqYHNTciAiIlOmqYHNTcmBiIhMmaYGNjclByIiMmWaGtjclByIiMiUaWpgc5sddwAiItKYkskkW7ZsUa9BE1JyICIiR2VsaqA0Hz1WEBERkSJKDkRERKSIkgMREREpouRAREREiig5EBERkSJKDkREZEZopC2m46bkQEREZoRG22I6TpEmB2a2xcyeMrMnzWxzqFtgZgNmNhReTwj1ZmY9ZpY2s0EzO7vgPslw/pCZJQvqzwn3T4d
VQbIiIyMzXiFtNxqkXPwUfc/Sx37wjla4D73X05cH8oA3QDy8PPauAmyH/QA9cB5wIrgOsKPuxvAj5fcN3KMm2IiMgMpC2mpyaOxwqrgLH/King4wX1t3veQ8B8MzsZuBAYcPdd7v4qMACsDMfe7u4Pef6/+O3j7jVRGyIiMgNpi+mpiTo5cKDfzB4zs9Wh
G7bw/vdwCLw/slwNaCazOhrlR9ZoL6Um0UMbPVZ
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
p2oDRGRunPttddy5ZVXHil
etfj7S9dDrN008/XfXAx7GxEYWJzVSpl6Q+RZYcuLsDY
VW8OPAx8F
dQnwKuJ
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
tqZtn
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
+oe9u
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\n",
"text/plain": [
"
"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "QwEPtYGhnyA8",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 516
},
"outputId": "b2acec40-166f-4b59-dab0-9d2240d92a66"
},
"source": [
"var = 'YearBuilt'\n",
"data = pd.concat([df_train['SalePrice'], df_train[var]], axis=1)\n",
"f, ax = plt.subplots(figsize=(16, 8))\n",
"fig = sns.boxplot(x=var, y=\"SalePrice\", data=data)\n",
"fig.axis(ymin=0, ymax=800000);\n",
"plt.xticks(rotation=90);"
],
"execution_count": 12,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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
0KFDM/6lAAAAAACNz/fA2MxaJX1U0jcn
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
3eJm3/ecT9
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
28x+am
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
l6nO9
Od35/s9pw9Xr1DbvorqcuxCYP6/Rg6+q9aSp9aRp9OCrGnju+YZPNSeVGoCk6tP1cGamS4mKkjNNhywVOIQx5TEofr+3SwUP/P1rpxap0H6mGjeDkZGRku18tvhvqr99I4tCqnP
Au18d2fKG
9MN7a3b8fcOHten739HLx4clSYvnzte+4cOys2bX7BylMGIMQBJXxoOSyWS0e+8zGjj0jN5wx/WGO66BQ89o995nan7lNeyp8meaDhnl5Voq4fd7u9mLOwUtmUzKzCSdeSp01IufTfXZ19XVpZ6eHrW3t5cMWPhs8VdXV9epv31PT09TBIzShFTn/cfVmo+pNR/T6P7jdUt1bnTt7e1a9s7L1
0Ao3OkkZnSa1LL9Cyd16uOXPm+HpuAmMAkvhyG6Sz49KlH23RZf+pcLv0oy06O1778zRrqnwU5lBWw+/3NsGDv+LxuBKJhCRpyZIlkQ1uq3Gmn318tuBMtZ23VLdd+Wl95X1f0Ffe9wXdduWn1Xbe0qC71RDGL1hNvGg1/nj8s9AvBMYAJPHlttk18zxQ5lCW5/d7m+DBX7lcTtlsVlJhDc9meu/WQzWffXy2TC17ZJ9S39uk2x+8Rbc/eItS39uk7JHGqToNlMIcYwCSCl9u+
6JPHlthmFYR6on0v6MIdyan6/t8eDh23bthE8+CCdTss5J0lyzjGHe4aq/ezjs+V0E+tfvJwZlSSdu6RV71iyTO3t7aQLh1wltU2iWvuEEWMAkrgy3uzCkCrvZyp32OdQBjm/ux7v7WQyqeXLlxM8+CAM791GVouq3mH+bAlCuVTXZpkn3MxOVZU+cGTCck9HTlWVfqvq9BG1nmxR68kWjR480hRVp6dDYAzgFL7cNq+gU+WbOZW7EkHP777hhhs0Z84cfehDH/Ll+H4HD2EvHFetcr9f0O/dRsffDzhd27zF2vDuG3XnB/5Id37gj7Th3Teqbd7it7bPX6yN707qbz/wGf3tBz6jje9Oqm3+4jJHbA4ExgBO4cp48wp6HmiUq56H4aLAQw89pJGREW3btq3u566FoC8s+K3c7xf0e7cWgryw0Qx/P2Amxtfn7u7uPjUCPP6YtaLLIzAGgAgIOlU+yumgQV8UCENgXo1G7/90yv1+qVRKX/ziF08t17R06dJQXbgc/wK+du1arV27dsov3UFe2Aj6sw+ot7dSpYcnpEoPRyIVuloExgAQEUGmykc5nTHoiwJBB+bVavT+T6eS36+lpUUtLS26/PLL6929ioyMjGhkZKTktjBc2GCaEKKmbd5F2nD17+rO939Wd77/s9pw9e+qbd5FQXcr9KhKjYaRSqW0c+dOSVIikVB7eztFHibg7+Nv1eNmMJ4qH4QoVz3v6OjQ9u3blc/nA7koUCowb6Sqxo3e/+mU+/3GP8PHK8L+yZ/8STCdnMLk/pX6PycMFfGD/OwLs7B+b5iuanKY+ji+lFqY/n5By2azOj58VJt+cF9R++DwK5p
0uSt/3bk7Yf0lx7o279LIXAGA1lqivSKIj632diul4zfXFuBlFe0ifoiwJBB+bV6ujo0LZt2+Sck5k1XP+n4+e/z+Qv7ytXrqz7F/dmv7DR6IL43jBd4JvJZPTCcwO6eF6bZudbC/08MKoDR2uzTnI2m9XxY8e1eddfFbUPHtuvudm5SiQSFR/Lj79fJcspwR8ExmgYXV1dpz4genp6Au5N+ET97zM5XS+ZTNY8+GJEujpRXQ806IsCtQjMg3zt33DDDXrwwQclFdbx9auydlDqceEkyIumjX5hppkF9b1hPPBdOr9NsZOFwPfEwVEdHH4r8L14XpvWX31b0X5bfrRZUjgCx8nZErX8+xXmCP9MbfOWqDU/S5I0euCY9h19sWbn8FMikdCoO1s
l4UfumH9yn1kTh/49Rd5Y2XvMfJ23/tloT8
1sxQCYwBNoR7peoxIVyfK6YxBXhSoRWAe5Gv/oYcekpmdGjHetm1b6N5/1Vw48PPCSSWpzn7zM/APw4g4zszS+W364/dsKGr7m+/fUdG+44F123ltavVGlN/YP6p9xyobUU4kEho9+bpuW/Ffito37/ortSbOrugYfmubt0Q
q5qO2OJ+4KqDfRQfEtAE3B7wJHYSggg8YV9FJo1RQfCvq1v2PHDjnnJBVGjMNY0bzaqsvNXByqHlWhyxX/QnNqO69Nn7viNvW89yvqee9X9Lk
lPbeW1BdwsNjsAYQFPwu+pxs1fGRXlBrsNaC9UE5kG/9sNe0bwWFw6CvnDiN78C/66uLvX09Ki9vZ3CRwCqRmAMoCkkk0m1tBQ+0vyYp+fXiHQ2m9XrOWnwgbGi2+s5nUoPRPCCXIe1FqoJ7INebsrv93a1gr5w0AiaLfDPZrPK5QZ1/z/fftotlxuMzGf3eCp7JpNRd3f3lOtYA42COcYAmoLfBY4oIBNd9Sjs5rdq5ggH/doPunjZdMpVXWYOLJrdnDlzgu5C5GSzWR0/ekx3/GhrUfvg0Rc1N/vajKpqN5pTS0HtfOC0bYPDOc21N6s6PoExgKbhZ4EjvwrIJBIJnZh9WJd+tDiBZ/CBMSUWNdd
o1a1TsM67CWM91apNUG9kEvNzXeh7BWNK/kwgHzX5tLIpHQ7Nlvas1H/uy0bff/8+1atGh2AL2qnUrXEe7q6uJCzxkIQ1VtlEZgDMB3k0dNSn15rwU/qx6HfdSqETRqVe9GWIe1XOBVbWAfhtd+mCual7tw4HdVaEak4YdMJqOf7RnQkgVtmjVWqPp87MVRvXikNusIR91byzElJizH9Jr2Ha0sBT+RSGh07Kg2XL2uqP2OH21Va2JezfsbJoWloGZr48qPnrZt084H1JpYVNXxCYwB1E2jj5qEedQq7Bo5HTnoVOLpTLcWaS0C+6Bf+2HONgjDhYNG/2xF+CxZ0KabV20sarurf1NAvQmXWoz4ts1LaMOVf1DUdseTX6tJ/95Ktf5GUfvg0Zc0N3u8qVOtq0XxLSBEGr3y7VQmVw7t6elpyFGNZisgU0+NXKAo7MWfplOLqs5Bv
DXvwsqOWWqMoM1F9hxPcFje4/odZ8TK35mEb3n9DAcy+cCpTRmBgxBkKkUVNNgek0QjryVMIwIliNMMwRrkYjZBuEOdW7kZEqjrBqO2+p
viD4vaNv/4zoB6U6yQaj2sDVf
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
tm2Tc05mpve
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
311nnXsTawlmX
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
X+ilDo3I3k78D
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
IZv
tBa36+UWgkEtdbdGfLXaK0PK6XaAbTWp5RSQWAj8Hy+E3yUUjd
T+fR/Yq4PXAc1
40qp9UCf1vqMUkoBHwbeADwHnAT2aa3PFPgObwVOa62fV0r9HvAm4JjWeq8lX261zdnADPAr4IDWOmHJLwC2Z7Tdbq31sUJtN1u+RKU2WA25DviF1no0Jf1KrfW+jM++BbgMOKK1PmClFezEdp00Iy2tk6XUL+8PbVd/pdRlgNZa/1IpdaFV1+Na63tTznoOa60fUEp9EHgzcAz4jtZ6er4dTSl1u9b62jyytPZTSr0R0+mHlVJNwOeYG0Q3AxNF1G8rcHVG
oyf7v5Yg3q9wEa+Hdgk9UOx4FvJQdixjWHtNabnJQ7j/q1AH8BhIF/Bj6PNYkAN2utB4vIw5W2s/KuhvZb0CSslPqI1vp785l7rPRSjq3rgB9
V/Ok18xc8Orgd8n/Sb1A6318GK3j9++v4wtmZsc1E/az1n9fD+3F3ouy5Nvzrnf
OelYf0vQX2PaXUtcDfAQcw7QZwFnAF8L+01rcXuLYX2AF8DegD6oEPa61/acmfBL6N6RMK+DJGcT0CvAW4BXhtZ
Ah4Bkueu11ldb+W23ynoI00e+aJV/mdZ6XCn1ZaADuBvzO10LDAH3AXdg9KSZlPp/DdOX6zBH7m62Pns58BTwSyv/w8DbgUcx3s+/A3QC7wI+ANwJvJLSdn8E3Km1/lK+tputgyjGoJT6JPBfMZ32dcCntNZdluxJIK61vsx6/1Hrsz8GtgB7MJ0
ycGzlC4k
adLI1FPihgXGb+ncB78R0tPuBNwIPWvXbD1xoyZZiOuxy4EeYDqkwk2mh8t+c2aSYDnvIet9u034fAl5rnT/9Hev7/LtV/msxinGh+g0C52MGbWr9rgVe0Fp/ijwopf4H8Avr8we11i+lyP4EuBRoAxqAYaAR2A28Gzhtfc/M734+8Lz1fpPWOpKS5x9j3cCA/4u5cTystR6wVu1uxVoUAT4N/DXwH1
n+Wp/73As8BK4Let
8N89u+Vmu9XSn1duC9pN/AbtNav2hNQgtuO63131s3wGptv8+ywEnYuoF9hcJj95XMyyjt2NoMjAHdmJvUXV
pQ67qLw2HsCeA/wE8wN6Snrc9cAH8fMNW62j93c7OX3f866TsaWzE3SfuXXfm7P7XbPZW/M0X7JuX+j1nq1lZff5r2PY3476XsL73vPA2/UGdZhpdRqzPPq8XzNh1E+XwDeqbU+aS2+3A78jdb6x0qppzC/7RuBJqAH2KCN5Xg1pg8GgIcxOo2y8v4KRiEF+Eut9eutOj0KdGqtf6OUagUOAvVa6wst+RPAf9Fz1twJIAT8AWYsXYzpu3dorR9WSh210pow+tQ6S8Gux/SzBPC7VlorsEtrvVUp9RrgW0ArcJHWejqj7RqAo1
8/K03Rxa66p/YTrtcuv/c4HHMZMY1g/xVMpnf4mx/AIss659HliVI9/VmM7+NLDWSrsM06mvyZP/o8C
P9bgWesPOpz5N+AGQB29X8WqMVMcsPASkvWhFl1OWy9r8NMKrXWe2XJ7cp/Evg+8DbMqs7bMO4Sl1svu/Y7liJ/MqOMp4upX57fVWEm4UK/fQwzuX8Nc5P4RGpdgGet/+uBKNCQUpfDmMn4+8AFwDlW+79s/X9O6vcB/hZzw7sOuAv4R4xXQFL+Q+CvMDeDD2Nulv3W79mDWcl7fWb7pHzXEzna7ovA94A/xtwY/wH4qNUv3uew7Xoxq89V3X4UHhuH87yeBSaxH7tuj62nMKutWzAr2/3APquNV2A/9p5NSVsKPGT9v97K2+328fP3PyNjS+Yma
ybT/cnbvsnssKzf0vpNTH
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
VSailmUWxKa/0aq91rgV+mzAVHMScyFJL/wi
R10u32n9Cpavtb5IKfVOTETn1Lg6u7W1BaWc5S7n/VvAgNa6nwyUUmu01qcz07M+J4oxKKV2aK2/4kC+EhPOXGNWLK7E3NR7MSb9MYfyCcy+uAsxN8kvaa1HLMX8tzGh512Ta61
pS6EDPAMzvic1YbeCZXJojBGZ0SMCHj9zlEfuVxAthcQLG8xCZvJ2UXo1jbye3qZ1f+R4F+rfUzGbJVmD55Dc4U22ts8v+Fy+U7rZ9d+ZswZxKeybj+XIx76PPVLNdafz8lbTnGnemNWuu3kkGlyZVS52R85KTWekqZvelvBb6PM8X23Tb5P+Fy+U7rV7B8rfXF1kPjFsze4zqMtW+/NnuQX4MDxVZ
YNC+cPsQ6sr5TutXxHlo7X+AXlQ+Q0CxSq262zy/6DL5Tutn135PwPeh3ku+3dMrJUPYJ7L/gmz2OyV/FuY8eXHuv0T5tjRjzL3TPldrfWMMkG12jDzpBPF9nds8g+7XL7T+hUsX2t9AYJniGIsVDyFlFc7xdbNskshd1p+Ede/AweKrdb6poWUW6ryndbPrnyn30+oXopQnAsqtl
H3lZvtP62ZVfzPdzotja5V0MTst3Wj8n1xehuBaUO8Vp+U7r5
3E/KjjDfighV
XWPl+U7rV8R5Q9hgjhux8Qa0hiX9S5M/ABdxvJvYoLqul321VZbpsmLmlt1Ef7Wlf7ChJl/ELOCfTYmeEUMs7/w9QuUD7ksd1q/+ciXYw47P2ql92MCdn3Yaj9fyx32Dc/KLkX93L5e2s/ffV/k3sntrpWxJXOTtF9Ztt91Xsv9XLcM+RGX+17O/N0u32n9irh+P2a7VurZz+2YPfAHylwe8ajszwIHiml/sRgDSqnHMK4Nq4BbgL/SWv+7Umoz5kDx2iqX9wE/xkTQez9mX8mdmAiYJzABi/wsvxmz/++9mGOepjDHhnwL4waUU6a1/helVJdbZVv5L3cot6ufXflOr3dav0pvP6/7vsi9k78J039kbMncJO1Xee3n57nFz/Niatv/PsYYk++3zScvVd9baPlO62dX/vNa698iB0qp5wHKWD6ltW7wqm75ZGmfE8U4fa+Jyjj7VSn1FECVy2t0egCiX2qt/4sye8GeAyZ9Ln+ehd9g3u1i2aW4wdjVz658p9c7rV+lt5/XfV/k3snHtdZLClwrY0vmJmm/8m0/P88tfp4Xpe/Zl3+pJftXbQWLUkqtwXgiXYEJGlqu8s9gTnHwpG5a63dgh14EtwK/vzDR
Zgggn0AFdb6ZdjojtWu/xRTCAdMIEC9qe03fNlIM88kueX1t8arGMP8siOu1z28RLInZbvdv2rvf1EXr3yCZtrZWzJ3CTtV77t5+e5xc91l75nf/1qjPJ4HHPO8QDm6NQvAy1lLn+Vl3VLbfd8L9sPVMMLeC3GL/0+zBET/xuzx/co5rikape/BnjM6mQ/Bc632i0IfLIM5E5uMG6WXYobjNPy3a5/tbefyKtX/iWba2Vsydwk7Ve+7efnucXPdZe+Z3O99fcCzJGty5MyK/3Kcpd7XTe7l+dKqd9fwEdEXt5ym0mq4A3G5bId32Cclu92/au9/UQu8oX2LRlb7tZf2k/az83v55Xcz3WTvld0+Z/EKNh3Ay8B21Ouf7LM5S97WbdCv83s54r5UDW/gF6RV7TcyQ3GtbJLJHdavtv1
2E3mVymVsydwk7VfR7efnucXv8qrve8CzWNZOzBnvjwOfst4/VebyCS
Vqjtky8JvgUopQ7nE2HOB3xe5OUr11o35pFnBRvLlGFcyhe97GLldvWzK9/p9U7rR4W3Hz4fGyJ3VX4R5riOnNfK2JK5yUn9pP2qem4vOLd4XDfXf3sqv++NaK0vSklbjjlB5TlgE1BfxvLrtdZNXtVNa/26nA2fgijGgFLqNLAV49aQJsLsBagVeVnLI+SmmBvMkItll+IGZFc/u/KdXu+0fpXefl73fZF7J+8GLilwrYwtd6+X9pP2q9S53W5u8fO8KH3PvvyfAX+ttX56VqBUHfBdoBN4uIzlHwJe71XdtNa1uRo+lTq7D1QJ92BM709nCpRSDzFn+hd5eco3U/gGc20e2aOYgGRulf0osMah3K5+duU7vd5p/Sq9
zu+yL3Tv6SzbUytmRukvYr3
z89zi53nxIaTv2ZV/LRBPFWit48C1SqlvY06PKVf5j4BTHtbNHl2Ev7W85FXOL+CfsSIA5pB1F5D9wOWyf+BU7rR8t+tf7e0nL3nle8nYkrlJ2q98209e3v32Xpcvfa+yX+JKLQiCIAiCIAiCIFQ1NV5XQBAEQRAEQRAEQRC8RBRjQRAEQRAEQRAEoaoRxVgQBEEQfIwy/FQp9c6UtPcppfY5zHdGKfW0UuoZpdSTSqk3F3HNbUqpC63/X1JKtSqlVimlPu6kLoIgCILgNbLHWBAEQRB8jlLqYuAu4PWYEyWeAq7UWncvIK86rXVcKTWqtV5upW0FPq+1vnwe+bwEXAosB+7RWl8837oIgiAIgl8Qi7EgCIIg+Byt9RFgD/BZ4H8A3wduUEo9ppR6Sim1HUApda5S6hHLAjxrBVZKvc1K3w08l6OIlVjHh1ifvScpUEp9Qyn1Yev/h5RSl2Zc+yWgw7I+/0NJv7ggCIIgLBJyjrEgCIIglAf/C3gSmALuAQ5prf9EKbUKeEwp9QDQB1yhtT6jlDoPuANj1QV4A3Cx1vo31vsmpdTTwBJgLbBpgfX6nJXv6xZ4vSAIgiB4jijGgiAIglAGaK3HlFI/BEaB9wNXKaV2WOIlwHogDHxDKfU6YAY4PyWLx1KUYoCJpDKrlHoTcLvlsi0IgiAIVYcoxoIgCIJQPiSslwLeq7V+PlWolPqfwGngtZjtUmdSxGP5MtVa/6dSqhUIAnHSt1otKUnNBUEQBMHHyB5jQRAEQSg/9gOfUEopAKXU6630ZuCk1joBfAioLSYzpdQF1mejQA9woVKq0XLT3mxz+QiwYv5fQRAEQRD8gyjGgiAIglB+fAGoBw4rpY5a7wG+CVynlHoGuIACVmKsPcbWPuMfAtdprWe01i8D/wYcsf4+VagiWuso8DOl1BEJviUIgiCUK3JckyAIgiAIgiAIglDViMVYEARBEARBEARBqGpEMRYEQRAEQRAEQRCqGlGMBUEQBEEQBEEQhKpGFGNBEARBEARBEAShqhHFWBAEQRAEQRAEQahqRDEWBEEQBEEQBEEQqhpRjAVBEARBEARBEISq5v8BuuZLk25fPFQAAAAASUVORK5CYII=\n",
"text/plain": [
"
"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "x4PDb_55nzee",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 607
},
"outputId": "22ff6923-eb2c-4fda-db1b-04b09eb0d16c"
},
"source": [
"#co
elation matrix\n",
"co
mat = df_train.co
()\n",
"f, ax = plt.subplots(figsize=(12, 9))\n",
"sns.heatmap(co
mat, vmax=.8, square=True);"
],
"execution_count": 13,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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
alkb6qyJiMrOZk20/H6nAkdFxGxJE4EJ
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
P/P
NIZnRs3MzMzM1jDPjJqZmZk1gWa+472ROpwZldSSMh/dJ2mapP1yGpA0TtIp9XexPpK+KmmppCGlsjGSzs48zg6S/ibp8ZQm9CZJB3V/j83MzMx6ns5cpq+kwdwD+H/AT7qjYUmNnpU9FpgCfKTeA0jqD1wNjI+IYSlN6MnA22vU9SyzmZmZ1a1VjX00q9w1o4OBeZUXkr4uaYqk+yV9v1T+HUmPSLoN2KlUPknSLyVNBb4i6TBJ90qaIek8Sf1Sv
K50j6SZqpnSppL0nXplnLk0rtDAMGUeScP7bqHLZN/XhU0n+m+qdJ+mIpvjKbexxwZ0RMrLwXETPTVlGVehdIuh24IPOzNDMzM+vxOjObNyBtDt8f2BI4FEDSeynyto8CBExMl68XAZ8ARqTjT6PI3V7RNyJGplnHR4HDIuIRSX8AviDpHIo9QVcpB36Z4p+KiBGSfpHq7Z/6NhOo3Hr6CeBi4FZgJ0lbpE3tSf0dDiwGpki6GrgkHf/Xqc7HgfcBX0v9b88uwAERsaSDemZmZmZtavWa0TZVLtPvDBwB/EGSgPemx70UA7adKQanBwJXRsTiiHgNmFh1vEvSvzsBsyOiskfM+cBB7ZRXVI43A7g7IhZExEvAMkkbpveOBS6OiFbgcuBjpfjrI+LlNHi8gmIgeS+wuaStJO1BkRL06eoPQtKVkmZKuqLcn7YGopLGphncqTcsfqxWFTMzMzMAosGPZpV1mT4i7gQ2BTajmA39SRqojoiI7SPifztxmEV19LNsWfq3tfS88rq3pN0oBsXXS5pDMUtavlRf/fWovL4UOAYYzRsD5lnAXq9XjPgwMAbYuBTf5vlExPiIGBkRIw8buH2HJ2ZmZmbW02QNRiXtDPQCXgauBT4jaVB6b2tJmwO3AEdLGiBpA+CDbRzuYWCopMoo7ZPAze2Ud9axwLiIGJoeWwFbSdouvf8eSRtLGgAcDdyeyi+hGLgeQzEwBfgTsL+kD5WOPzCjL2ZmZmad0trgR7PKWTMKxWzoCRHRAlwn6R3AncVVexYCx0fENEmXAPcBL1Lc0b6aiFgq6dPApelO9CnAORGxrFZ5xjl9AvhAVdmVqfwFYDLFpfttgD9GxNTUn1lp8PxsRDyfypZIOhL4uaRfpvgFwA8z+mNmZmZmbehwMBoRbeYxjIgzgTNrlP8I+FGN8oOrXt8A7FmjXlvlQ0vPJ1DcwFT93m
LkXEv5deTqh+v1RvtxplD7H64Lby3ri2jmVmZmaWo1W+gcnMzMzMbI3yRu1ryML18v7a+fiwZ7LbuPLx
JjVvbJDuHu9RZnx2ynNifY2/TsKvendU7/zHbUr29+G3Xck7i0jj92Z63cIDtmdt/8vvVdlv8ZXPOT17Jj5vXJ+2ZrHfdidhvD6vh6PlXHz8Cs6zbsuFKVG
2z4752H5fyo4ZdkdWkjkAXviXz2bV/+uAzbPbgJbsiPv75/8vqqWOn88lyo/p1/ZFwzZtvyI7JNvsvvm
AbXsRv6VivyVyAuXC9
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
zktLuzY/oNWJEd8+e5C7NjPs9WWfUva8n/Gdi8
503LK6ZvDyg3L/3wmgfpm
JqIb2B6E6ieQTUzMzOz5vamGoyamZmZraua+SajRlpX76Y3MzMzszeBhg9GJW0h6U+SnkgpOO8sbTi/xqT0nY+krEuVsqslHVuj7sGS5pdSff5D0ubpvTGSzk7Pj5a0y5o7CzMzM3uzaiUa+mhWDR2Mpm2XrqLIbPT2iNgb+ATQqTtgJHXbMoKImAVcQZHeE0lHA30i4qI22rw1IkZExO4U20V9scZhj6ZIPWpmZmZmdWj0zOihwPKIOKdSEBFPRsRZkoZKulXStPTYD16flbxV0kTggVR2VZpVnZX2AiWVn5hmOydLOrc0Y7mZpMslTUmP/VPID4CPSRpBsS3TF1P9cZIukHQ7cEH5BNKAegNgXlX5fsCHgDPSDOqwbvzczMzMrIdpbfCjWTX6BqZdgWltvPci8J6IWCppB+AiYGR6by9geCkX/Wci4pV0iX2KpMuBfsD3Ut0FwI3Afan+mcAvIuI2SW+lyKL0jpR16RTgFuDnVfnkdwEOiIglKWXogZKmA5tQpCJdZU/TiLgjDZj/FhGX1TrBNHAeC3DchqM4cP0d2v+0zMzMzHqYNXo3vaRfAwcAyynyw5+dZilbgB1LVSeXBqIAXy6tM90W2AF4C3BzRLySjn1p6RiHA7ukTfABBksaFBELI+Kvkl4F/qeqexPTBvcVt1Y2z5f0TeB04KSc842I8cB4gN9uc3zzLtYwMzOzta6nDhQaPRidBXy08iIivihpU2Aq8DXgBWAPiuUCS0txiypP0izl4cC+aWZzEtC/g3bXA94VEUvbeL/WjPWiWhWTicDlHbRpZmZmZpkavWb0RqC/pC+Uygamf4cAz6fUnp8EerVxjCHAvDQQ3Rl4VyqfArxb0kbppqOPlmKuA06uvEizr11xAPB4jfIFFOtJzczMzLqkp64ZbehgNCKC4o7zd0uaLWkycD7wTYrL5CdIug/YmbZnJq8Bekt6kOKmo7vSsZ8FfgxMBm4H5gCV/IlfBkambZkeIPPyenJgujHpPorB8n/UqHMx8HVJ9/oGJjMzM7N8DV8zGhHPU2znVMvupeffTPUnUUrpGRHLgPe3Ef+niBifZkavpNhGioiYC4xup09Dq16Pq3o9iWJGtlbsBGBCen473trJzMzMukGrOq7zZrSupwMdJ+lwijWk15EGo82oX+aq5Af65X9pPjns6eyYrR/dKDuGDTfODtm17+bZMSv/Un2PWcdaHqq1mqJtg+v4U2LF0sXZMRvNH5Qd03fgyvyYXTbNjtlseP4FkmEXvZYdM7l1cFb9zT++ZXYbz52V/7XZpI7f
G8jq9Nv5bsmD1fy4+5v3/+744dD38pq/7
vlKdhs
7k4O6b3QW3NY3Sz0+7ODmlZkf9zM7zPhtkxvZbn1d81sz7AkjqukS5ua2FdOwa15t+e81zv/J9P7TkqO8bWrnV6MBoRp6ztPpiZmZl1h2bOktRIzk1vZmZmZmvNGhmMNkt++lJ/3i9pqqQH0s1HP1tbfTEzMzODYp/RRj6aVcMHo82Unz4dbzhwNnB8ROxCkfXpsYz4dXppg5mZmVkzWRMzo82Wn/4bwI8i4qHUl5aI+E2K+aCku9Ns6T8kbZHKV8ldL2nX1N70tH2U83yamZlZl/TUfUbXxCxfU+WnB4YDbV2Wv40ic1NI+izFwLWyv2g5d/1ZwJkRcaGkvrS9Yb+ZmZlZp/TUG5jW+CXntZ2fvoPubQNcImlLoC9Q
+cu/5O4DuStgGuiIhH2zjXscBYgBOGjOLg9T2BamZmZla2Ji7Tz6KYuQSK/PTAYcBmrJqffiTFALCirfz0ewD30vn89CPSY+uIWJj6s3cbMWcBZ0fEbsDnq9p4vT8R8SfgQ8AS4P8kHV
YBExPiJGRsRID0TNzMysPb6BqXGaLT/9GcC3Je2YyteTVEkXOgR4Nj0/oa0TkvR24ImI+BXwF1bNJGVmZmZmndTwwWiz5aePiPuBrwIXpePNBN6eYsYBl0q6B5jbzml9HJgpaTrFGtQ/dPoDMTMzM6vBNzA1ULPlp4+IvwF/q1H+F4qZzurycVWvT6MYFJuZmZlZF7wZ9sxcZ/LTm5mZmbXFd9Ovo96s+elfXi9/Qr3fW/JXXfSb05Idw4L5HdepMlD5u1/F3JezY1pfWZhVX73zP7MN3rIsO6bfq9khLF3aJztmvU02ym+oDguX5n/f9O+jjit10eAB+V8bVnZ0L+TqWl+alx3z2mv57SxX/vdnSx3/M2tdnPf1XLGojhVeS5Z0XGcd0qd
s/AwMWN3wWwnp+yQS35/7+Z16ue78383tU1SFm5vJ4oW4vW+cGomZmZ2ZtBz5wXXUO56c3MzMzMalkjg1FJW0j6k6QnUkrPO0sb2K8VKb3oXWuzD2ZmZmYVPfVu+oYPRlWkQLoKuCUi3h4Re1PcWb9NJ+O7fSmBpA0pNr4fkvYMXSPtmpmZmdmq1sTM6KHA8og4p1IQEU9GxFmShkq6VdK09NgPioxLqXwi8EAquyrNqs5KaTZJ5SdKekTSZEnnSjo7lW8m6XJJU9Jj/1KfPgL8FbiY0pZTkiZIOkfS3cDpkoZJuia1e2vacB9JH5R0t6R7Jf1D0hYN+/TMzMysR4gG/9es1sTs367AtDbeexF4T0QslbQDcBFFWlAoUogOL+Wn/0xEvCJpADBF0uVAP+B7qe4CimxP96X6ZwK/iIjbJL0VuBZ4R3rvWOAHFKlIL6fYOL9iG2C/iGiRdANwUkQ8KumdFJv0HwrcRpFqNCR9FvgG8B91fTpmZmZmPdgavxQt6dfAAcByinzzZ6dUnS3AjqWqk0sDUYAvl9aZbgvsALwFuDkiXknHvrR0jMOBXYpVAgAMljQIWD/F3pYGkyskDY+ImanepWkgOgjYjyIjU+UY/dK/2wCXSNoS6AuU+1k+17HAWIAThozC+enNzMysLc28
OR1sRgdBalnPER8UVJmwJTga9RzE7uQbFkYGkp7vXUoJIOphhc7pvy00+i2OS+PetRzF6Wj4mkTwMbAbPTIHMwxUzpd6raXQ94NSJGsLqzgJ9HxMTUt3G1OhAR44HxABO2Pr5558fNzMzM1pI1sWb0RqC/pC+Uygamf4cAz0dEK/BJoK0dgYcA89JAdGfgXal8CkXO+43SDUcfLcVcB5xceZFmX6EYeB4REUMjYijFjUyrpSqNiNcoBqwfS/GStEepP8+m5ye0e/ZmZmZmndBKNPTRrBo+GI2IAI6mGDTOljQZOJ8iD/3/ACdIug/YmdJsaJVrgN6SHqTICX9XOvazFOs9JwO3A3OASnqgLwMjJd0v6QHgJElDge0q8ekYs4H5aU1oteOAE1P/ZgFHpfJxFJfv7wHm5nweZmZmZvaGNbJmNCKep8bsY7J76fk3U/1JwKRS/DLg/W3E/ykixqeZ0StJuekjYi4wukb9rWv0b6/09O6q8tnAETXq/wX4Sxv9MTMzM8vWvHOXjfVmyMA0TtJ0YCbFjURXreX+mJmZmVknrfMbu0fEKWu7D50xv63VsG3YtiX/74S7bszf7vQt/Rdnx7z487s7rlRlr5VvyY755x+f7bhSlRUr8r6lFy3qm93G+uvn/9hsuyL/Hsnb2DA7Zv0LnsyOeWOziM57rWWT7JjBvfMaevnK/K9/xMCOK1XZtCV/LuLJifkx85b167hSlRXr5X9xlii
3PuHpJVf0D/FdltLDkt
cG9cTUYdubzum4UpW/Dv9udkx
zfAy9m
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
9zf0u/7ap
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
lDx
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
j06eXm9kLFW0PCtt/vu72U7K1MwOE9kfn
ecXKJyn92R2d8uzChMNLPVa/RvNcL9DPfbHpn5PHewk+pXXpnWvHM4JVJ+Lqth3swwi3QB7g6VBPXtXvE9N4pYz8guiA+Ad8WDWZcsaZsX6f5Q3j1a0rXAYWb2cLj3PYg/R1bAZxROybSfYayQdC6uhJ8YlqsyMNSe7YrMRqwXRFHFV/ELt4KeWvSqkO1SKjFvXebzJfGI3Qdwq9jRwCdz2j1GqqJLav0iuCVqv5J9LBT6/yCuWJ0CLFTQdnx6n5nPSqP2M20FfLpGuw1C3/6D+2ftXtI34dOk/0cqwhkfrX+uu2RSbRqVV8RzCRaWFsxpv3bZK6f9cmWvHrgWBuIK6OV45bLzcD+9ot9xDB6ksBYeIPISPk3/+QKZG/EAotOAR4GD8cwSe1NcsexIXFn9Jz4Quxe35N8GnFIgsz2uTDyI1z5/Osi9hCsWdX6nA/DcnpWR8qnvbgQ+MB1Y0u5o3CJ6J55N46M1t187MwDuItD0ty889ynJjoDPIvwQ95Ueh1vIhlfsawNSUff4LNT63X0+h21fARyLK2ErhO
ypL24/CCIcnyyoQMAyUyTSPWB+P3qKvx7BBv4tHx/Sr2M4lg4ArL/Yt+m/R63NhwYXg/PzkVmMLvNxSf4fg3PjBJPsutWhZffes12zsQXxU/kCtDha8K2bzUPrk3Lryqz23AP8JDdQTwdMm2c8sJhs9yU4ngFpPFctZ/BJ/WLD2G7PEUHF8r5R1XQp7EU0DthSvVhcc/m86F0eQMDErarwWMx6Na63wHt5W8uigW+LRZm+NIytnm/lY57T+LK57PA3/Ag+aeqdjH2CC3M64gbRDWr0rBIIaO0ofCpwvTnxWVhH0UV/QWxBXkIWH9PBQoULhysDI+bfoOnmw+uQ6qSi4eiT/0jw2vCeTUWc/IfAFXKsbglrf/4DMMZTIjgJ/gAZA31/hNJ4Xre3zqe85VqvCo9OuT4655zjxAKFWbWb8SBWV+c
nR8J3lpS5f
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
hPnYiUm17ET/CPwZe6+Gi97sS0ia
J9V6sVeZfvEAWPWEDVltWo5Rxhzle3dJR0N3OnwNa+robkDA5yEJomk623v2uexmwnZof
WneL+2gCS
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
HBxsw2PpgTjFYEsBcyE8CuIp
qmj7udmEqHs1Q4ToFcoRHX5Sbuse84yN5TgY+v4nybTJYHSBI2lgrZcHaPI5JEJWlCAR2/dLOhIYh9bki4kmgHXBUHn+txHad32DUVqk9pugdhaAjV/nprWcbccQ7+H9lCaRcp+yXOWodTlR0tFWIH1S/JTocv6Q50HWq/A24F2Sauu50s5Ra94pZScH2/4YzT7DD6qraVDSM5l7UXMmMRN8DpGqvxJYTUhCzbF7HYWWQWIb44PGAWyh8edGof37SuL1E1Fy8OUBpUc/IP7fTgan8z2qcn+cJiC97/8ezH3/k2SqZJp+gSPpF0QN21mE9M1sT7f6Nnqd5/up7eVjOK4f2a5sNuj32LhS+zWPr6mHdePXWdGl26nl/DQ9tZxV6fM2Y5rSSd33pHQhpJ0GpnQniUJfcR+iNm85cDNwoe2qmrlJHtdJhDZjk9nUiSDpY0QK+UvM7ozuq05Ryg7+lVBWECER9m
V3ZtM6vzW9IdRONfbRWCBv/DJWX/t5fl1YTV8WbAGa7QwVUL4wNJV9h+VtfyqbYPK/cvtb1nz/ZHEhJiHdeyH5eHdgDe5AHqDQot1xWdC2tFTf9q20/uN2ZS9Lz/ECVfB7mPTnWSTIOcGV34bEvoZR5M1Bh+kwharmv5fNWG9s25vszkzUotKzzTb+wzpnVqvwWNLABp9zpv0FXDe1ynrtT2jVLfl7nNmKZsLenvyv3TiNQhxOzObgwv75gItq+WdCtwK5Gqfx2hPTq2YLTUSa+2/WA5N3cHPj7kIqXNbOqk6NTTHte1zkQw149rCCH7dal9Khp4JG3FzPfDvcAylZNyzGnjNrOcl0l6s6uND/oJy2/VvdAJRAtbV2z/BEJJYRfiwug+4rNyju27K
v5i4iS9HJ8mxMND8ORNLLiPrSX5flLYna8a8OG1vjuZ9FlP9cUS5230KoRJzHTKCdJAuCnBldj1A4rxxMBHXHuoVe5BhnRh9PyIX8hhnv7z2IWqmXudiW9oy5mZ7Uflm/hBBj33nU4+p6zsbuLl1ja73Omm2FOMuWs3d5lDFNkXQ3IcJdGd3aPnbUfYyDMku8MTEbdRHRvDHQ
XFPkbSc10MVJ1XFefeT4ja5Kpzx
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\n",
"text/plain": [
"
"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "3fnH5Q92n1VQ",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 365
},
"outputId": "5eb95b02-18c7-45b1-b4f6-1746cda5b668"
},
"source": [
"#saleprice co
elation matrix\n",
"k = 10 #number of variables for heatmap\n",
"cols = co
mat.nlargest(k, 'SalePrice')['SalePrice'].index\n",
"cm = np.co
coef(df_train[cols].values.T)\n",
"sns.set(font_scale=1.25)\n",
"hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values)\n",
"plt.show()\n"
],
"execution_count": 14,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAFcCAYAAAAJV4M9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOydd3wUxf
n7d3l55L74VO6BAghCa9hqaIUpQSQCmCgFJEQFSkqSBSBETqR5rSpIUSpIZO6FIDaaRee
6+2PxwpEgAeGL+tvn43GPx+2U187N7u3szHtm3jKj0WhEQkJCQkLiORBedQEkJCQkJP69SI2IhISEhMRzIzUiEhISEhLPjdSISEhISEg8N1IjIiEhISHx3EiNiISEhITEcyM1IhISEhISz43UiEhISEj8xzh37hzDhw+nefPmBAQEcPjw4afmCQsLo1OnTtSuXZtu3bpx7NixMp1LakQkJCQk/mPk5+cTEBDA9OnTy5Q+MjKSjz/+mF69erFjxw7atm3LyJEjiYqKempembRiXUJCQuK/S0BAAMuWLaN169ZPTDN27FgKCwtZtmyZKeztt9+mVq1afPbZZ3+pL/VEJCQkJP4/59KlSzRr1swsrHnz5ly6dOmpeRUvq1ASEhISEi+O7OxssrOzS4SrVCpUKtXf0lar1bi4uJiFubi4kJqa+tS8UiPyH0WrvvfiNX+e+8I1AXQ3ol+KbsHtwheuqSuUv3BNAL1W9lJ0DbqXM9iQmWH9wjXzNcoXrgmgMbycOmiV/Ovf1niW/+najXtYvHhxifBRo0YxevTov12W50VqRCQkJCReFQZ9mZMOHDiQN954o0T43+2FALi6upKWlmYWlpaWhpub21PzSo2IhISExKvCaChz0hcxbPUk6tWrR0REBP379zeFnTx5knr16j01r2RYl5CQkHhVGAxl/zwDeXl53Lhxgxs3bgAQHx/PjRs3TDaOiRMnMm/ePFP6AQMGcPz4cVatWkVUVBSLFi3i2rVrvPPOO089l9QTkZCQkHhFGPW6l6J77do1BgwYYDr+6quvgGL7SWJiIoJQ3IeoX78+3377LQsWLGD+/PmUL1+eJUuWUKlSpaee6
dSKffPIJ+fn5LFy48KWeZ9u2bcydO5czZ8681PM8imRYlwzrIBnW4Z9tWNfEXS5zWgu/un/7fC+Df3VPRK1W891333HixAnS09NxdHSkZs2aTJgwoUwt6LMSHx9P27ZtTcd/nm/8+PHUqFHjiflCQkJo2bLlCy/P05g6az7HIs7i7OTIjp+XlYg3Go3MXrCM46fOYWVlycwpH1MjoDIAv+09yPK1mwAYNrAPPULam/IJ5Wpi0fJtEAR0106gO7/fTFfZ4i3kfgHigcICmY09BUvHiXHNeyIvXwsA7dm96G+fN+WT12yI1dvDkQlyNCfC0Oz/xUzX8q1hKAIe/pEsLBHsHckZ9yYANh/ORF6hGrq71ylYYr44yiKoEfajRoNcoGDPHvI3bihRF5atWmM3cBBgRBsVRfZXM0xxMhsbXNaspejECTK+FmfHWDYOwmHsKGRygbyde8n938YSmtZtW2I/ZCAYQXs3iozpM1FWqYTjhLHIbG3BoCdnzXoKDh0x5bFqEoTT+A9AEMjbsZfsh9fgUWzatcTh/YEYjUa0d6JImzoLALeFs7GsXYOiS9dIHTfFvCxNG+I8cSQIArnbw8havbmkbocWOA4bABjR3L6HevJsADyWzMKyTnUKL14j5cNpZnnsW9bHZ/pQZHI5aZsOkLJ0q1m8c682eH8aijZJNNqmrttD+qaDACi9XfGbOxoLb1cwGrnebxZF8ak4tq5HhS8Hg1wgZcMhHizebqbp9nZryn/WH01iOgCJq8NI2XAIS183AlZNRCaTIVMqSFy1l+R1B4rL0roelb8KRSYXSFx/iNhFO8x0PXu3ouJn/dEkiboPVoWRuP537GqWp8rX76Gws8ZoMBCzYBupv50sUX/PxTMY1v+p/KsbkVGjRgHw7bff4u3tTXJyMsePHycnJ+elnvd
sfFSpUIC0tjXnz5vHee+8RFhZWqtFLq9ViZWWFlZXVSy1Tabwe0p5+b3bn0xnflhp
NQ5YuMT2Lt5JVeu32TGt4vZuGIBWdk5LF29gc0rxR5a7yEf0qp5Y2wAZDIsWvelaNsCjLkZWPWdjP7eFYzpiSZd7bFf0T78rqjbGsHdDwChfC0ENz8K138FcgWWvT5GH31NTCgTsO77AXkLJmPMUGM7eRG6K6cxJMaadIt+XU7Rw+/K1t2R+1UujjvwKzILS5SvdTH/kYKA/ZixZE74GH1qKs7LllN0MgJ9TIwpidzHB9t+75A++gOMubnIHB3NJOwGD0Fz5YqZpuPHY1CPmYA+JRX3VUspPH4SXfQjmr4+2A3oR+qwDzHm5CI4iZrGwiLSv5yDPv4BgqsL7quXUXjmHGTkgyDgNOlDUj6YiD45Fc91P5B/7BS6+8W6Cj8fVKF9SRpirguQ
9fEKyssOvZtUQdOE8eTfLwSeiS1XivX0z+0VNo7xXXrcLfB4fBfUkaNBbDY7pZa39FZmWJfa+Sdes7YxhR73yGNimNqjvnkRV+lqI7cWbJMnaf4MFny3mccvPHkbT4V3JPXEKwsUJbJAdBoOKs97je+0s0iWnUCZtL+oFzFNyON8u
u0k96f8ZBamSc7gatfJGDU6BBsr6h35jvT959AkZoEgUGXOEC6/PYOihHQa7J+Nev958h/TTf3tJHc+XWkWpi8o4uaoRRTcT8LCw4kGB+eScfjpi/DKxDMY1v+p/GsN61lZWVy8eJEJEyYQFBSEj48P9evXZ8yYMaYZBXPnzqVDhw7UqVOHdu3asXTpUgx/YaAyGAwsW7aMNm3aULduXd544w2OHDlSIp2joyNubm5Uq1aNr776CrVazeXLl4mPjycgIIC9e/fSr18/atWqRXh4ONu2bSM4ONhMIzw8nJ49e1K7dm2aNGnCxIkTzX7bp59+SnBwMA0aNGDIkCFl2sPmcRrWq42Dyv6J8YdPnKZ7p7bIZDLq1qpOTk4uqep0Is5coElQIA4qexxU9jQJCiTizAUABM8KGLNSMGarwaBHd/s88kpP7mbLA4LQ3Ton5nXxRv/gjvjH0WkwquORl6sppqsQgCElAaM6CfQ6tOePoKjb5Im6yqDWaM8dMR3
17CWFhQMl216ugTHqBPTASdjsLff8eyWXOzNNZdu1GwYzvG3FwAjJmZpjhF1aoITk5ozp0zhVnUqIYu/gH6BFEzP/x3rFo0NdO07dGFvC2/YcwRNQ0ZoqYuLh59/AMxTJ2GISMT4WGjZVGzGrq4B+gfPNQ9cBiblua6dm90IeeXnSV0AYrOXcSQn1+iDixrBaCLS0D3IAl0OvL2H8Gmlbmufc/O5GzeiaEU3cKzFzGWomtTrwpF0Ylo4pIxanVk7DqOQ/vgEulKw7KKHyjk5J4QH8aG/EIMBRrsAitTEJ1EUayoqf7tBM4dg8qkadTqMGpEG4NgqUAmFA8RqupXpuB+EoUxKRi1OlJ2RODaqWGZdAvuJVJwPwkQGyqtOgulywuaJfWSDOv/l/xrGxFbW1tsbGwIDw9Ho9GUmsbOzo65c+eyd+9eJk6cyJo1a/j11yePYy5fvpxdu3YxY8YMdu/eTZ8+fRg1ahR
PHHE/NYWloCYo/jT+bPn8/gwYMJCwsjKKjkH+DMmTOMGTOGdu3asWPHDlauXElAQIApfuzYsWRlZbFy5Uq2bNmCv78/gwcPJr+UP/LfITk1DU93V9Oxh7sryalqklPVeLoXzw/3cBPDAWS2jhhzMkxxxpwMZLbmb+5/IrN3RnBwxRB3EwBDahzy8jVBoQQrWwS/AGT2TmJaRxcMGcWrY40ZagRH19J1nd0RXD3Q33z626Dg6oohJcV0bEhNRe5qriv39UXu54fTosU4LfkBi6BGD08kw37ESHKWLjXXdHNF/4imPkWN/LH59Ao/XxT+vrguX4jbisVYNi55HyhrVAOlAv2DBLEc7q7ok4vrQJeSitzdvKwKf1+U5XzxWPk9HqsXYdXk6Q9YubsruqRHdJPVJXSV5XxRlvPBc80CvNYtxLrp0x+wSk8XtIlq07E2UY3S06VEOsfOTQjYt5DySyeh9BLPa1XBG312HuWXT6bq3gV4fzoIBAFLT2c0D4o1NYnpWJSi6dKlMXUPzSdgxXgsvIvjLbxdqHtoPg0u/MiDxTvQJov3qqWnM0UJxesgihLSsSxF17VrMA0Pf0vNnz7G0rtkvH1gZWRKBQXRyU+tn7Jg1OvK/Pmn8q8dzlIoFMycOZPPPvuMDRs2ULt2bYKDg+nWrRvly5cH4IMPPjCl9/X15datW4SFhdG7d+8SehqNhuXLl7Nu3Trq1KkDQO/evTl9+jS
PILn3/+eYk8eXl5zJs3DxsbG+rUqUNhoWjIDQ0NpV27dk8s++LFi+nevTsjR440hf1pUzl
jzXr1/nxIkTWFhYADBt2jQOHjzIkSNHCAkJebaKeoXIA4LQ3YmEh3M3DLE30HuUx6r3JIz5ORgS75ningVlUCt0kSde2FCATC5H7uNLxtgxCG5uOH+/iLTBoVi1b0/RmTMY1E/f+qGEpkKOws8X9chxyN3dcF26gJR3h2DMzQNAcHHG6bPJZMyY87AOymZYl8nlKPx8SH7/I+Qebnj8+B2JfYaadJ8buRyFvw9JQz9G4e6G56p5JLz1Poacv6ebFX6OjJ3HMGp0uPTriP/8sUT1nQoKOXZBNbgVMhZNQirll0zEvXdr9NlPP1/GwXOodxzHqNHh0b89Vb4fzfW3PgdAk5DG5bYfofRwotrqSaTtPoUmpWzD2+oD50nefgKjRodX/3ZUWzSKy29+YYq3cHek+uLR3Pxw8XPdt6XyHxjO+tc2IiAarFu3bs3Zs2e5ePEi4eHh/Pjjj/zwww+89tpr7N27l3Xr1hEbG0tBQQFarRYfH59StWJiYigoKGDgwIFm4VqttsRQ1FtvvYUgCBQUFODr68uCBQtwdXUlPl4cX61Vq9Zflvv27du8+eabpcbdunWLnJycEucsLCwkLi6u1DzPi4ebC0kpxW99ySlqPNxc8XBz5dzFYhtAcqqaoMA6kByFMS/T1HsAkNk7YczLpDQUVRuiOWxucNadC0N3LgwAi05DMGSIb3TGzDQEp+K3eZmTK4ZMNaWhbNiSwo1LyvQbDWo1gru76Vhwc0OvNtfVp6aivXED9HoMSUno4uOQ+/qirFkTi9p1sOnRA5m1NSiUqHKKKDwegfwRTbm7K
H9hjSp6SiuX4T9Hr0iUno4uJR+PmivXFLNNTPm0328pVor994JI8auUdxHSjc3dCnmJdVl5KK5ppYVn1CE
YeJT+vmj+uPXEOtCnqFF4PqLr4VpCV5+spujaTdDp0SUkoY15gMLfB83120/U1SalmXoWAEovV5MB3aSbWfwAT9t0EO/Jg8S8iWkU/HEfTZx4
P2n8a2bnVStx7DwqdY08LLGc1jmrqMXNP35PWHKDe1P4+jTc4g/2YsquDq5O06S1FSulnPwtLbmaK/0E1c/zuVPivWldtZU3v9ZO7P3kj2hTtPrJNnRjKsv3qsra1p2bIlLVu2ZMyYMQwdOpRly5ZhZ2fH+PHjGTt2LE2bNsXOzo4tW7awd+/eUnX+HCpasWJFiaX+jxvFFy5cSIUKFXB0dCzVmG5t/fzTH/Py8vD09GTNmjUl4hwcHJ5btzRaNW/Mxq276NyuJVeu38TOzhY3V2eaBTfg++VryMoWHwAnz0Yydngo7DyDISkamaM7MpULxtxMFFUbUhS2soS2zMkDrGzE3oYpUAaWNlCYh8zVB8HVB0OMOFSoj76F4O6DzMUDY2YayoatKFg5p4Su4OGHzMYO
0nDzE+ivbmTeQ+vgienhjUaqzatCHrkZlXAEUnTmDVti2F+8KQqRxQ+PqhT0wge+ZXpjRWHTuhDAgge+kKkAso/HyQe3miT1Vj064N6dNnmmkWHIvApn0b8vfsQ3BQofDzFW0dCgXOc78kP+wAhYfNnf5o
iJ0s8Hubcn+hQ1Nh1akzb1Md0jEdh0bEPerv2i
8vugeJ/BVF12+h8PdB4e2JLkWNbcdWpH462yxN/uEIbDu3Jve3/QiOKpTlfNDF/7Vu/uU7WFbwxsLPA21SGk7dXiPmQ/NJHAp3J3Qp4pCSQ/tGFN6NN+WVq2yRO6vQp2dj17QOWRfvk3vpLtYVvLD0c0eTlI5rj+bcHrnATFPp7og2RXxxce7YkII7oo3JwssZXUYuhkINcgdbVI2qk/jjbgByLt7FuqIXVv7uFCWm4/56M/4Y8b2ZroW7I5qHuq4dG5J/RyyrTKmg1poJJP96lNTdp/+yTp4ZqSfyz0Imk1GhQgUiIyO5ePEifn5+vP/++6b4Bw8ePDFvpUqVUCqVJCUl0bDhX48He3l54e/v/9zlrFq1KmfOnOH1118vEVejRg1SUlKwsLDAy8vruc8BMGH6HM5dvEJmZjZtX3+XkUP6o9OJY6u93+hCiyZBHD91js5vD8bayooZn4rTcB1U9gwb1Jc+Q8cAMDy0Hw4qe3HGldGA5vAmLN8YAzIB3fUIjOmJKBt3w5ASg/6e2INRBAShv3XevECCHKu3xgNg1BRStH9V8Z/IYKBw0xJsxsxCJghoIg5gSIzBstsA9DG30V0R/7zKoJZozx8t8Vttxs9D8PRFZmmN3ZyfKVj3HdyOEKfRLlyA09ffgiBQGLYXfXQ0tqGD0d26SdHJk2jOncUiKAiX1WsxGgzkLFuKsZTdUk3oDWTOW4TrgrkgyMnbHYbufjT27w1Ce+M2hSdOUnT6HFaNGuK+YRUYDGQvXo4hOxvrju2wrFcHQaXCJqQjAJlfzUX/xz3QG0j/ZhHui+aCXCBvZxjaezE4DBuE5sYtCo6dovDUOawaN8Trl1UYDXoyF/6IIUssq/uKBSjL+yGztsZ7zybSZ3xL/olIUXfOYjyWzhan+P62H21UDI4jBlL0x20Kjp6i4OR5rJo0wHvrT2AwkPHdCgxZ4kuE56r5oq6NNb77N6D+fD7svQ56A/GfLafius+RyQXSfwmn8E4cnh/1I
KXbLDz+I2qBuq9o3EHk5WDrHjF5iu94OZq6m84SuQQcHVKJLXh4PewL1Pf6LGxmnI5ALJm36n4HYcfhP6kHv5LhkHzuM1tAvOHYIw6vToMnO5O1acdm1dxZfy0weJQ00yGQnLdpJ/MxYQMOoN3Jm8kjqbpohTfDceJv9WPOUn9ibnchRp+8/j814Irh0aYtTr0WbmcvNDsbfr3r0JDo2ro3Syx7O36JPjz7i/zT/YYF5W
WLDTMyMhg7dixvvfUWVatWxcrKirNnzzJz5kyGDBlC9erVGTNmDF9
TW1atXi4MGDLF26FJVKxe+
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
cTOJaxHp6ER71KZEYnkx2bikGr5
O01TsULKsjcf3IvKH3eiKinfB1RVqMOrFh7LCUgmP/NWt61alKCYR7cNrlrX7GPbtGz9z+VSdm5F79ILpmv1tjIayf/6hvJJGZMaMGXh7e7N06VICAwPx9vamdevWrF69mlu3
FmzRo+/PBDxo8fb5YvPz+fevXqcejQIQCKioqYM2cOzZs3JzAwkD59+nDp0iVT+m3bthEcHEx4eDidOnWidu3aZGRkcPnyZQYNGkRwcDANGzZk0KBB3LlTdpeXe
s4dChQyxbtoxu3
h4+NDzZo1mT17Nk2bNmXq1Kmmxqp
7MnWu+8K9nz54sWrTIdPzTTz/RtWtX6tatS6tWrZg9ezZFRX/vJpXZOmLMyTAdG3MykNmWvpW8zN4ZwcEVQ9xNAAypccjL1wSFEqxsEfwCzFziPo3k1DQ83YtdnHq4u5KcqiY5VY2ne7HXSA83MRxA7uGCNqnYxawuSY38EY0/sevQDL/tS/H8bqrJ5WvRzXvYNG+IzMoSwVGFdaO6pjiFuyu6R3WTU5F7uJhpKsv7oizni/e67/D++XusmzV8Ql41Cg8XlB4uaBOK3ctqE9NQPqYJ4NC5KVXCFuL/wycmN7KWFX3QZ+dRbtlkquxZgNfkUBDEv6GFpwuahGKXrZrENCy8nEvoOoc0oXb4fKr8OAGLP12+ymSUmz6I2C/Xlkhv7elM/oNi3fzEdKw9za+nY+3y2Hi7kHTokll4/O6z6PKL6HZ5CV3Of8+tZXvQZooLDS28nNEkFteDJqn08jp2bkKNgwuouHyimTtdwdKC6nu+pdrOuTh2FBsfW08nchPSTWlyE9Oxe6ys
XKY+ftTPTv5mUFsRHqFz6Hvgdnc/jT1aZGRenpgjbxkWuZqC71mqk6NWY7T74AACAASURBVKXy3kX4LZlsVtY/cejagqxdJZ2iPTcGQ9k
1D+z4ezMjIyiIiI4JtvvkEQzNswDw8PunXrxp49exg9ejQTJkygsLDQ5J42PDwcS0tLXnvtNUBsjO7du8f333+Pm5sbu3fvJjQ0lH379uHh4QGI7mZXrVrF3LlzsbOzw87Ojry8PHr27EmtWrXQ6XT8+OOPDB8+nLCwMCwsLJ76G
s2UPTpk2pWbNmibghQ4bQr18
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
57Vq9ezQ8
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
573Nzc2L17N6Ghoezbtw8PDw8KCwupU6cO77
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
qvl/EXVLRN0SAXVLBP7dLZH0Tm
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
N7Hob8jjg
62u503IpIK3/tu6dSu+vr7l
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
UovnGb1PEzVPYxauFJ5flDEQiFpOw8wfM1oS
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
ApY2XShIpKXOum
KWb0tPrMj+uJdAArScyjOycfWXfm5/DtI/vmJ1D84H/0KLCwsFH96enqIRCLFspmZGRs3bqRp06a4u
SvXt3rlyRdxfEx8crWg9169bFxcWFoKAgQG4K1adPH+rVq0eDBg0YNWrUW3kBm5qaYmFhoTC8MjQ05N49ZbN0+
ttGnTBldXV3x8fBTHAxg4cCALFy4kODgYLy8vmjRpwqFDh8jOzmbMmDF4enrSoUMHoqKiAHnrZ9q0aWRlZeHi4oKLiwurV6/myZMnxMfHM2/ePNzd3bG3t6dBgwZMmzYNBwdV1zxjY2OV8ntpxfs2iCzNkSQrDZpKU1IRWZqrxGg42qPpZI/Vxu+x2rwa7Ubeb9TVsjaj5LnSDrckMR2tMhapLzH1b4TbiZV89uNktF7anQoEOM0ZQmzw1nLxutYm5D9X2qDmJ2aga22iqulaGV0bU+JP3ii3v76jBZ2OLaDd3hlY1le2fvWsTcgro5uXmIHeK7rmrpXRtzXl2anyupYeVelzYgl9whdzZvpmZBIpOjYmFJYpg6LEDHReKQMjt8ro2JqRfEJVM/tOLNZ+XghEQnQdLTB2d0bXtnz5vY7k1HSsy9xHK0tzklPTSE5Nw9pS6Z9tZSFfD5CSV4S1gbICYmWgTUpukYruSB8Xfr8TT9u14Yzee4Wg1qq2zgAnHiZS08oILQ25mZqxlSkZz5UWwJmJ6ZhYlb+WVgPbseTMGnoGDWT73I3ltnu1b0js7WhKS0oxtTYjrYxmemI6ZlZm5fZ5SevebeStDSD6bgyeLeqipV0JAxNDXBu7Y24jLysDa1OyE5X3LCcxA4NXngOAeoPaMPrsSlpP68vROfLnNPnuM1za1EUgEmLsYIGNqzOGtq8/p3dB+g5
1Y+aRrcsmUL27ZtY
06Rw8eJC6devyxRdfkJycjI2NjWKOqxMnTnD+/HlmzJB3VxQWFhIYGMi+ffvYtGkThYWFjB8
q2PK5VKOXHiBHl5eQor21u3
Fw4ULGjh3LsWPHWL9+Pe7u7ir77du3D2tra
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
nc2bN/Pf
4XULiXRowYodRPl8vl9OnTh65du+Lv709UVBSffvoply9fVrqGcnNzadmyJbt378bT0xOA06dP89lnn7Ft2za8vb2
A1+1lbh+fPnEx0dzf79+6vkNTs7mzZt2vD777/j5eXFsGHDcHNzY
06co43t7eTJ8+nQEDBgCQnp5Ohw4dCAoKwt3dnZCQEBYsWEBkZGQV+08yfvx4tLW1Wb16tXKLb0hICPXr13+lsk5sUXWL8D8lNdX0xZFegTuCN7ND
gNzLMdyt/MmPDfdorvV/+iU3w9BW9Gfnnug38uj3vAbnC14/ZLf/q63dvmrc5ERo8ezdq1a3F2dqZ+/frs3LmTlJQUBg9WFKyjoyMCgYDw8HClnK2pqSlmZmbs2bMHS0tLkpKS+PHHH6t1v5ycHIqLiykrK+P69escOHCAUaNGARAeHk5ycjJeXl4YGRnx119/oa2tXWXH1Mvg6OhIYWEhERER1KtXD319fRISEli9ejV+fn7Url0boVBIeHg4p0+fZvHixa98Lw0aNPz7ePtbKv45b7UTGTlyJA8fPmTRokXk5eVRv359NmzYoFxgtrW1ZeLEiSxbtoxp06bRv39/li5dysqVK1m0aBG9e/embt26TJs2jdGjR7/wfl27dgUUbikHBwfGjBnDuHHjAIV76dixY6xevZqysjJq167N6tWrn7tQ/yKaNWvGoEGDmDRpEnl5eUyYMIEhQ4bg4ODAqlWrSE1NRSgU4uLiwvz58+nfv/8r30uDBg3/Pt7ltY7q8v/qztLw/4fGnaVxZ4HGnQXvtjsryH5IteMOTPvn93sT/CsX1jVo0KDhfeB9GMFrOhENGjRoeEu8D+4sTSeiQYMGDW8JieDfv8VX04lo0KBBw1tC487S8M4ik7z+VeUkefVPEX4ZmuvmvzjSK3C+/PVvBHhT48Y3tQCu1e/LN2LXYeHsF0d6SRoI9F4c6RU4J897caS3hOzfPxHRdCIaNGjQ8LbQrIlo0KBBg4ZXRuPO0qBBgwYNr4xE487SoEGDBg2visadpUGDBg0aXhm5ZiaioTKrV68mPDz8qacCvw30W7fAYtqXIBTy8M+/yN+yp0ocA5/2mI0bDsgpuxdH9owlANj+vBhdj4Y8unqTzElz1NLYdvLAc8EwBCIhcTtPcndNyFPv79jbi9Ybvyasx2xyo+MRaIlo8eNYzN1rIdAS8uCPs9xZfVAZ36h9MxzmfQZCIbl7QslaF6Rmz+zDLtjPGEV5hUiReNthcvccx7ClO/Zzxirj6dZxImnif+CIQvrYuaMHrecr8ntn10mu/fz0/Nbq5YXPhsns6zWH7EqCVEYOlnwc/gOXV+wn8+dDANh08sB94XAQCUncEU7MM8rAvrcXH2zy51T3WeRFxyPQFtH0P2Mxa1ILuUzOjTnbEJ9XSTSfi8tk2YmbyORy/DxqMLplPTV7aQXFzDl8jcLScmRyOZPaN6RdHVsuJGQReOo25VIZ2iIh/h0b8YGLQt9m9uIVnD53CQtzM4J/X1clj3K5nCWr1nHmQiR6erp8P2sqjVzrAnDgSCjrt+4GYNyIT+jXq5ta2nodPOg1dzhCkZAre8I5/Yt6OXgN6YL3sG7IZTLKikoJnrGRrNgUhFoi/H74DPvGNRFqibi2/wzXKsq2VgcPusxT1Nf13SeJ+OXpZVu/pxf9101mW585pN+IR8/MiP7rJmHnUZubQacJm7tNLb5nh2Z89t3nCEVCQncfZ99a9fbVd2x/fD71QSqRkp9TwOpvVpGVopCYHjFzFC06t0AgEBJ99iq/ztvw1Dy9LJqZyDtOZGQkmzZt4ubNm2RlZbFu3To6depU
SdO3dm9OjRDB06VBn2+Ej5J5k2bRpjxoypdr4ePHjAihUruHLlCvn5+VhZWeHu7s68efOwtLRUHgX/JEOGDGHu3LnVu4lQiMWMiWSMn44kIxuHHWsoPnWB8rhEZRStGo6Yjv6U9JFfIyt8iNDcTHktf+sfCPR0MR7Y+wm7ApotHsnpQUsoTsuh618LST0eVUVYSctQj3pjeyC+EqsMc/L1RqijzfHOAYj0deh+ahmJf56H7AIQCnFYMJ74YXOQpIupc2AFBWERlMYmqdnNP3yG1HnqUqpFF28Q21uhoyEyNaL+yQ0UnrkK6CEQCmizaASHBy+lKC2HAYcXkHD8Cnkx6gJm2oZ6uI/uTkZULE/Sat4QEsOj1crAY8kozn+8hJI0MR2OLiL9GWVQe2wPcq7EKMNqDu0MQHinAHSsTGi1Yzqneii2y0plcpaE3WDdxy2xNdZnyLYzdKhrRx0rY2X6X8/H4NPAgY89a3I/u5AJQRH8VccWc30dfhrwATbGesRmFfDFHxGEfql44Pfv1Y3BH/Zl5sLlVX4bwJkLkSQmp3Jkzyau37rDwuVr2PXrKvILCvlly072bAoEYNCYSXRs2xJTE0V+BEIBvgtGsWXoEgrSxYw/uIjboVFkxarK4fqB80TuOAFAg67N6DlnKNtG/IBbL29EOtqs6RGAtp4Ok8L+Q9yBixSmium6cAR7hyylMD2H4QcXEBt2BfET9aVjqEfzUd1JrVRf0tJyziwPwtrVCStXdQE3oVDIuEVfMG/IbMRpYpaHrORSaARJMar2FX
PlN6+1P2qJQeQ3sycuYo/vPVMho0b0DDFg2Z7DMRgCX7luHW0v2pZfmyvA+dyFvVWH/TFBcX4+rqyrx5816r3cea748/j4+ufxFlZWWUlZUxevRoSktLWbt2LX/99RdLly7F3t6e4uJitfjbt29Xu8+UKVOqnUddN1ckSalIUtJBIqHo2EkMOrZWi2M8oCeFew4iK1RIy8pyVfvpH126ivyJ/ABYeNbhYUIGRYlZyMulJB24iGP35lXiNZ4+kDtrQpCWVlKHlMvRMtBFIBIi0tNBViah/KFCttWgST3KHqRRnpSBvFxCfshpTLp5V/v3PsakVxsenryC/JHiMD+bpnUoSMigMDELWbmU2AMXqelTNb9e3w7k2tpDSEvVhc1qdm9OYVIWuZU6CHPPuhTFZ1CcmIm8XEpK8AXsnlIGDaZ/ROzPIcgq2TSu70jW2VsAlGUXUF5QhFnT2gDcTMvF2cwQJzNDtEVCujd04GSsugyrQABFFXKwD0vLsTZSvFvRwNZUKXlbx8qYUomUMokUgBZN3ZUP/qcRfvYifXt0QSAQ0MStIYWFD8nKzuFcxBVaeXliamKMqYkx
w8ORehUgN0aloX8YMMcpMykZZLuRFygYZPlG3pQ5Usr46BLijPe5Wjo6+LUCRES08HaZmEssIS7JvWIS8hg/wkRX3dDrlI3W5Vy7bt1IFErDuEpFLZlpeUknL5nlrYY+o1rU96QhoZiRlIyiWcCTnNBz4t1eLcuHCDsop2c/fqXSztFTM5uRy0dXXQ0tZCS0cbLW0RednPltZ9GeQv8XlXea87kQ4dOuDv70+3bt2qXJPL5QQGBtKhQwfc3Nxo3749K1asAGDYsGGkpKSwcOFCXF1d1WRxQaH5bm1trfzo6z/9JbyAgAAmTZrEmjVraNu2LQMGDOD+/fskJyczf/58PDw8cHJywtvbmxkzZlTRLjEzM1O7j5GRUbV/u8jGCkl6lvK7JCMbkY2VWhxtFye0XRyx+20V9tsC0W/d4oV29e0sKE5Ryf8Wp+Wgb2euFsfMvSYGDpakn7imFp586BKS4lJ8o3+m9+WfuLvuMOV5RQBo2VlSnqbSDi9PF6NtZ8mTmPRoTd2/AqmxNgBte6sq1836tCMv5LTyu4G9OQ8r6Z8XpedgaK+eXyu3mhg6WJD4X/X8ahno0vTLPlxeoe6e1LM3pyRVVQYlaTno2atLx5q610TfwZKMMHWb+bcSseveHIFIiEENa8w8aqFfoQGf+fARdsaqtmR
Edm4SO19OPbuHL4VjI+a0OZEHSJgK5uVcog7F4aDW1N0dESVbn2NDKyxNhVahu2NlZkZGWTkZWNnY21KtxaEf4YE1tz8iuVQ0FaDia26uUA4D2sG1NOraR7wGAOf6dwMd08comyklKmX1rLt+cDOfvrYR7lF2FkZ05hpfoqTMvB+In2ZetWE2MHC+KeqK/nYWlnSXaq6u9BnJaNpW3V9vWYboN8uBKu6DDvRt3hxvn
Lm8jd8ub+PqqSiSY5Orfe/nIRFU
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
4GKhaLn7rGGxMTQ1ZWFp988okyTCqVEhkZye+
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
t7e1xcXGhTp069OzZkxEjRrBhg2qh
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
tGKXdxKQUxoz1Z4
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
Q+769CioM
viD48ePs2vXrkLV8hOUiICAgMC/hDIrkQ/NVp9CR0cHiUQiz5HLIzY2Fj09vU+cJcPDw4Pff/+d7du3yyNjv4SgRL5SMnOLP4+0i3rxxMZ/SCuXwpcSUYatkupfPkhJwqUlE1zwUEP9ywepwGVpyXxmhjnF77BvXUIO8PQI5UJj/z/JkRZ/2RMNDQ2aNGnClStX6Nq1KyBzrF+9epWRI0d+8rw
viDzZs34+HhoVSOm6BEBAQEBP4lSirZcNSoUfz00080adIEU1NTduzYwbt37+TmMBcXF6pVq8aMGTMA2LJlC+vXr2f16tXUqFFDXsWjXLlyBWoffoigRAQEBAT+JUqqxLuNjQ1xcXGsX79enmy4detWdHVlNdQiIyMVct/2799PVlZWgZy0zzUezENQIgICAgL/EiVZ9mTYsGEMGzbso/t27dql8DyvEokqCEpEQEBA4F9CWgI+kf9vBCUiICAg8C/xX67OW1j+lVLwAvl4eXnRpk1+Vzd3d3f69etXLLJ1uzSn9eVfaXPNnVqT+xTYrz+4M5YPPLA4uxKLsysxGCqL5KjQxAhzn6W08luDxflV6H2rWJqhQscW1D+zmfrntlDFaUABudr9u9Hw5h7qHltP3WPr0RnUA4DybZvJt9U9tp7Gj7yo2D0/mal9l7Z4Xz7A8Wt/4zh5eAG5I8Z9x5GL+/A6v5utB90xqJlfbt1+kA0+V
G5+rf2A9S7E2j1dkcs0vuNL+8keqTCsbZ6w3qQsug7TQ7vZpmp1ej9721wn5JhbKY3/oDo6Vj5NuqdTGl56WVfHNlNSaTPl0WokbvVgyI3IOOmaw3h0hNgsWv4+h+bgU9LrphMtle4fi6nUyZcG4lk/xW0358Qbkth3ZjnO8Kfji+DIeD86hSX9ZfRawuwX7lD7J9J5ZRu20jhfPMO7Xgt/Ob2XxxC/0nFPzM7Mf0YcPZ3/jV151F+5aiVyM/FHTknFG4n9nIhrObGLvwB4XzDDqb0vvSSmwvr6bRZ65DTZtWfBexB91/+srU7mvJN6eXyf+GhO/CzKwJAD17dObB/Ys8fuiPy8yJBWR1sGrDjesneZf2kn79eivsGz58II8e+PPogT/Dhw9U2Oe6bA0dew+hzzDFHup5SKVSlq3dRK9Bo+k7YjwPn+RHDR45fhqbwY7YDHbkyPHTn3yfypIjzS3033+Vr2Il8sMPP5CZmcn27dsV2s/++eef/P777xw7dkze1Kq48PLyYvbs2fLn5cqVo379+kyZMgUrK6tCy7GxsaFTp06f3P+xqseFQiym/gpHAgYtJiMijpa+y4nxvUXaU8W+3m+PXOHZHA+FbTnpGTye5E76iyg0qunQ8vQvxJ+/BznpIBZTfeF4XoxwJTsqljqH15J85joZwa8UZCT6XCJywWaFbanXggixlTnuJFoVqH/+D1Iu3f1nuGJcV/zI2EFTiIp4wwHf7Zz3vcTzp6Hy8x/df8Lgng68S89g8Mh+zJg3iR9/cKWSdiXG/+jI4B6jQCrlwOk/ueB7CVJk18F42VgeDVlIZmQsTY+7Ee97k/QP+pvHHr1M6NytH72UNV2+I/n6g/eurQjzZQ5cGryctMg4up1YTMSpOyQ/VaylpFZek3pjviH2dv5kVNOuDRINdU53nYWkrAY9/Nx4degKvIlBJBbRa7EDu4cuJykqjjFHF/PkzB1inuXLDTpyhdt7zgLQwLoFPVyHsnekGy2+k90A/N5zFuUqV+L7HS5stfsZpLJrO27JeOYPdSU2MpZV3mu5cfo6r57lf2YvHoTg3Hs6me8y+GZYLxzmjGLlRDcatmxII4tGTO0hc64u93Sjadtm4B+GSCyi5TIHzg9ZTnpkHD2OL+a17x2SnhW8DiZjviHmvevw8tAVXh6S1YLSamhIh23TCQh4gFgsZv2vS/nG5jvCwyO5dvU43sdO8ejRM/m5Ya9e4zhmOs7TFZWBjo42P8+dTpt2NkilUm5cO4G3d37PkD423fm+vz1zFq/66Od86epNwsIjOH7Ag8AHj1m8agP7/lhHYlIym7bv5YCH7Dc42HEKna3a8kFCuEp8DaULv4qVyOLFi3n48CH79++XbwsNDWXt2rUsWLCgWBWIVCqV9zbQ1tbG398ff39/vLy8MDMzY8KECUo1udLU1Cx2BQdQqUU90l9E8e7lG6RZ2bw5fJkq31gU6tz055Gkv5A1ZsqMjicrJhH1yrIkp7JmDch4GUnWq2ikWdkkHruosJoo9Ph6tSfF7zbSd7I2sc1aNCbsRTjhLyPIzsrmxOHTdP2mo8I5Ny/f4V267PiA2/epZlAVgPZd2nDV7wZJCUkkJSZz1e8G7bvKxlTBvB7vQiPJCJONN/aIPzo9Wxd6nOWb1UFdT5tEv/yeL
mdUkJjSY17C3SrBxeHblG9Z4tC5zb5KcBPNngTW7Ge82WpFIk5cogkoiRaGqQm5lNVoqs+GKN5nWJD40m4dVbcrNyeOB9DZPuinIzU/ILNaqXy+8EqFe/Bi+uPAQgLTaJjKRUqv9z11+/eQOiQiOJDosmOyubS94Xad1D8TMLuhpE5j+fxZO7T6j8Ty90qRTUy2igpq6GmoY6auoSEmLiC1yH3Kwcwo5co+ZHroOpywAebfQmJ+PjTadq92lH2JGrALRuZU5ISCgvXoSRlZXFX38dwd6up8LxL1+GExT0qECvoh49OnHm7CXi4xNISEjkzNlL9OzZWb7fonkzeX+Rj3He/xr233RDJBJh1rQRyckpvI2J4/L127RrZY5WpYpoVapIu1bmXL5++5NylCFXKi3033+Vr0KJVKtWDVdXV9zc3AgPDyc3N5c5c+ZgbW2NsbExjo6ONG/eHCsrK+bOnUtycn4F0gsXLjBkyBAsLCxo06YNEydOJDIyUr7/+vXrmJiYcPHiRfr06UPTpk15+PChfL+enh56enoYGxszbdo0MjIy5K10w8PDMTEx4enTp/Ljnz59iomJCeHhsjvhD81Z7+Pu7s6hQ4fw9fXFxMQEExMTrl+/XqhrUkZfl4yI/FalGRFxlNEvqKyq2LbB4vwqmmydQZnqBfdXNK+HSF2N9NBoANT1K5MVma8ksyNjUK9W8LxK31hS77g7hhtno25Q8JZNy7Yjid753eGq6usRFZFfdjo64g1V9T+dXdvvezsunZNNPNU+cm61f87V0K9M5nvXITMyFo33WsXmoWvTjmZn1lB/y0w08q6DSETt+Q6ELdqhcGxZfV3SX+fLTI+Mo6y+YtdK7WZGlK1emaizigXvwo/dICctA9uAjdjc+pWnm33ISkgFoKK+LomR+XKTIuOoqF+wG6bFiO5MurgG69nfcXK+bGzRD19i0r0FIokYbUM9DJoaU+mf91FZvzIxEfmfWWxkDJU/8pnl0X1wD26fl02ST+48JuhKINtv7eTPWzu563eH8H+6E5bT1yXtvWubFhlHWQPF8eo0M6Jc9cpEnP104b9a9m15eVj2WVavoc+r8Ij86/U6kurV9T91qgI1qusT/t65r19HUqOQ5wJEv41Fv2r+d7Va1SpEv40h+m0M+lXzv4vV9GTbiwOpEv/+q3wVSgTA3t5eriR27NhBWFgYP
8MyNHjsTU1BQvLy82b95MaGgos2bNkp+Xnp6Oo6Mjnp6ebNu2jfT0dKZPn15A/po1a/jpp584fvw4RkZGBfZnZ2fj5eVFuXLlCl0u4EuMHj2aXr160aVLF/mKx9zcvFhkA8ScusU1iwnc6vIjcX4BNHSfpLBfo6o2jTZM5sm032S3pIUk+ewNnnYcTbDNZFL871JjpeL1VNPTQdPEiOSLn++o9yls+39Dk+aN2L5xt0rnf0j86ZvcbTOOIGtnEi8GUHedzORWzeEb4s/dITOyYJ/zzyISYbZgKIEL9hTYpWteF2luLseaT+JE6+k0GGdD+VqfL0XxIbd2nmZDR2fOrthPh398XXf/8iMpMo6x3kvoOW84r+48Q5qjvB29U9/O1DOtx6HfPQHQr22AYT1DHNs4MLr1SJpZmtG4dZPCCROJMJ8/lLsLC16HPCqb1yUnPZPEJ+GfPOZr5mvosf5V+ETyWLhwIb179+bGjRts2rSJvXv30qxZM6ZOnSo/ZtGiRdjY2BAbG0vlypXp1auXgoxFixbRrVs3oqKi0NfPv4uZNm0a7dq1Uzg2ISFBPqm/e/eOMmXKsHLlSnlCT1EpX748mpqa5ObmfrHmzYdkRMUprCzKVNclI0pxMsyOT5E/jtxzj
z8p3ZkgplabZnNi+W7yPpdr49OisqFnWD/LGoGVQhK1pRbk5C/kov/sAp9GeNUtiv1bsDSaeuQnZ+b443UW/Rr15V
xa9aq8iSpoFmzbsRU/THPAoe94sjKzAIiOeksryxYK5968IlNQmVGx+SsLQMOgMpmRio153r8O
aeoZar7DpUbGlCxTaN0B/5DeLymojU1Wiakk2E723K1siXWdZAl/So+PxrUkGTSg0N6eTlCoCmnhaWf87gisNqDPtaEnU+EGl2DhmxScTcfIqOWR2IektyVBxaBvlyKxnokvye3A+5f/QqNktGAb8jzcnl1OJ8pTrKaz6x/5gkY6NiqVI9/zO
FCF2OiCitHMyoyBkwYzd9AssjNlJtt237Tjyd0nvEt7B8CdC7cwadEQroSTFhVHufeubTkDXdIj88erXkET7YaGdPWUXYeyelp0+HMGlxxWExco699e69t2vDyc3ycj4nUUhjXzy9XUrGFARETUJ6/B+7yOiKJTx/wgkBo1DPC7WPgeHNX0KhP1Jn+FEf0mhmp6VaimV4WbdwPzt7+NoZX5xzsEKosQnfUfQ1dXl0GDBtGgQQM6d+7M48ePuXLlCubm5vK/AQNkkSlhYWGAzHcyffp0unbtirm5ubwBS0REhILspk2bFng9LS0tDh8+zOHDhzl06BBTp07FxcVFtZ7oxUzy3WDK1jFAs1ZVROpqVO3TnhjfWwrHaFTVlj+u0tOCtH+czSJ1NZr+OZPov/14e+yawjnpgU8pY1Qd9ZrVEKmroWXbkeQziiY2Nb18k0ZF6zYFnO5adoqmLID7dx9Rq44hNWoZoKauRq8+3Tnvq1jzqGHTBsxf+ROTRswkLiZ/srp8/jqWndtQSasilbQqYtm5DZfPy8aUci8YTWMDyhjKrkPlb62IP3VTQa561fzx6vRoRfo/juHgSeu422ocd9s4EbZoBzEHL3B/2QHi7z2ngrE+5Qz1EKlLMPy2LZG++Tby7OR0vJs4caL1NE60nkbcnWCuOKwmPuAF6a9jqNq+MQCSsmWo3LI+ycGy79
gOfoGuujbaiHWF1CE7u2PD2taHvXNaomf9yga3PiQmUTrJqmBuplZT6SOlZNyc3OlTvknwU8xcC4OlUNq6GmrkYHu47cOK34mRk3qcP45ZNY6riYxNhE+fa3EW9p2rYpYokYiZqEJm2bEf7P5xl37zkVjfUp/894a33blvBT+ePNSk7Hq6kT3m2m4d1mGjF3ghUUCCIRteza8PIffwjAzVv3qFfPGCMjQ9TV1Rk06Fu8j+U7xz/HqVN+dLfuiLa2FtraWnS37sipU35fPvEfOlu15ejJs0ilUgLuP6JChfLoVdGlfZuWXLlxh8SkZBKTkrly4w7t2xT0/ahCTm5uof/+q3xVKxGQtdqVSCQApKWl0a1bN5ydnQscl9fG18nJCUNDQ5YtW4aenh6pqakMHDiQrKwshePLli1YeE8kEim03G3YsCH+/v7s3LmT1atXy8sKvL8UzXPKlzTSnFyezfbAdP9cRBIxkfvOk/YkHCOXwSQHhBDre4saY22o0sMCaU4OWQkpPJ4i6xVf1b4dWm0boa5TEf3BXQBk+0IfQU4uEQs2Y7RjESKxmPi/T5PxLIyq04aSHvSM5LM3qOxgT8VurZHm5JKTkEz4zHXycanXqIq6gR6p1+8rjDcnJ4dls1fx+/5fkUjEHNp3jJAnL5joMpYHAY+54HuJGfMnU658OdZsXQpA5OtoJo+YSVJCEr+v2cZ+X1nr4c2rPUhKSAJJBcjJJXTuVhrunYdIIubN
OkP31FzZlDSA0IIf7UTfQdbdDp0Qppdi7ZCcmETHf/4rW9N+dPOuz7CZFETOh+P5KevqbxzP7EB7wg8tSnzXTB20/Tat04ul/4BZFIROh+PxIfvQINmdwT8/5k6E6Z3Ht/+fH22Ws6O/cnIvAFT8/codXIHhhbNSU3K4d3SakccZZFwJWvUomhO39CKpWSHBXP4emb5K+Zm5PLlp83s2DXIsQSMWcPnObV0zC+dx5KcNAzbpy+wai5oylbThOXTTJTb0zEW5Y6LuaKz2WaWZqy/tRGQMqdC3e4eeYGddFCmpPL
l/0nmvbLzP/7kOzWb2Jy7gBa8/cx0AqrZtSFpEHKlh+SvOnJwcpk5z5bjPXiRiMX/uOMDDh09ZMP9Hbt0O4Nix01i0NOPg3x7o6Ghh27s78+fNwKx5V+LjE1i6bB3XrvgAsGTpWuLj8wtQzpy/gpt3A0lISKJbn2FMcBwu/z0O7tubju1acenqTXoNGk1ZTU0Wz5GZYbUqVWScw3cMGSOzaDiN+v6zDnpl+C+bqQrLV9ce193dnfPnz+Pl5cWaNWs4e/YsR48elSuW94mPj6dt27bs379fbpa6ePEiY8eOZefOnbRp04
168zYsQI7ty5o1CIzMvLi19++aWAo/uHH36gTJkyuLu78+7dO8zMzNi2bRvt27eXnzd79mzOnj1LzZo1C8h5f/wAP
8M3FxcWzcuFGp63Ch2sAvH6QkVcqXTAvXIanF46T8kP+tKr4lIp
0sQvH6QCQ7KLv4rv8JgLxS4TSq6Kr3qVOkWWoVWhbqGPTUwJKfLrlQRflTnrQ4YOHUpMTAw
vgjQUFBhIWF4efnJ+87rKWlhba2NgcOHCAsLIzLly+zevVqpV7j7du3vH37llevXnHgwAH8/f3p0kV2966pqYmpqSl
PEHISEh+Pv74+Hh8QWJitSoUYPHjx/z4sUL4uLiCqyQBAQE/nf5GhzrX7USqVatGnv37iUjI4NRo0ZhZ2eHm5ub3PEtFotZu3YtgYGB9O7dm1WrVuHi4lJo+QkJCVhZWWFlZYWtrS27du1i7ty5ChnnS5cuJSUlhb59+7Jhw4YCVTK/xKBBg6hduzb9+vWjXbt23LmjWkSTgIDAf4+vIU/kqzNnCcgQzFmCOQsEcxb8t81ZZcvW/vJB/5CeXrj+6P/ffHWOdQEBAYH/Fb6Ge3hBiQgICAj8S/yXM9ELi6BEBAQEBP4lhJWIgICAgIDKfA1KRHCsCwgICAiozFcd4isgICAgULIISkRAQEBAQGUEJSIgICAgoDKCEhEQEBAQUBlBiQgICAgIqIygRAQEBAQEVEZQIgICAgICKiMoEQEBAQEBlRGUiICAgICAyghKREBAoFRy8+bNj7arzs7O5ubNm
CiP43EZSIgMB/lCVLlpCWliZ
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
sYcuWLXIz0c8
1zA71IY+vXrh729Pb1790ZPT0/p89+nRYsWHDp0iNq1a5OTk0OzZs0UovLCw8Oxs7MTepgUEsEnUspISUkhNDSUrKwsTE1NiyVC68aNG/z555+f3D98+HAOHTrEgQMHlFIgSUlJeHt7c/DgQcLCwujWrRvJyckcOXJEJZMbyKKaoqOjP6lEoqOjVQoZvXTpEgcPHsTPz4+WLVsycuRIrK2tadOmDebm5iorEICOHTsSFBRUbEqkS5cuxSLnQ3bu3ImbmxsmJiZ4eHgwYsQIPD09GTFiBGKxmF27drF+/XqV/FydO3dm3759rFy5EgsLC+zt7enZs2cBv1ZhSEtLk58nkUgoU6aMgmLT1NRUKa+ptCIokVLEo0ePGDt2LDExMYDMqbpu3To6dOhQJLnp6emf7d6nra2NhoYGZmZmhZbp7OyMn58frVq1wtHREWtrazQ1NfHx8SnSWJs1a8bp06c/GRp76tQplVZK48aNY/To0Zw9e7bY+7YvXryYmTNnEhQURN26dQtEaSnrBC6p3uF79+5l0aJF9OvXj9u3bzNs2DDWrVsnd9zXr1+fRYsWqaREpkyZwpQpUwgMDMTHx4d169axcOFCOnXqhJ2dHT169Ci0rLzcm/efC6iOoERKEatWraJx48YsXryYMmXKsHr1ahYvXsypU6eKJLdWrVrcvXv3kxnld+/eVfou+uTJkzg4ODBixAiViwx+DAcHB5ycnKhWrRrDhg2T50ZkZ2eze/dudu3apVKjJzs7O
t28fDhw+xt7enR48eBQIWVOXixYtcvXoVf39/KlSoUGACVCWSaPv27Xz
ffynIisrKwihxC/fv1aXsSxZcuWSCQShei8hg0byjs9qoqpqSmmpqbMmjWLa9eusWLFCqZOnaqUH08qlSokb6alpTFgwAB5wUjBwq8cghIpRdy/f5+dO3fKHbGzZs3CwsKClJQUlcwCefTp04dffvmFOnXqFHDaP3r0iJUrVzJ8+HClZG7btg0vLy9sbGxo0qQJ3377
GEonbo0IFZs2bxyy+/8Ouvv8qVW1hYGJmZmfz4448qrcx++eUXUlNT8fHxYf/+/SxcuFBexLGok9KKFSsYNWoUEydOLJJZ7H3yqiDnKZE2bdpw5MgRlarh5pGVlaWQqKeurq6gmCQSicpNtN7n8ePH8mitN2/eKG2eU6WzosCnEZRIKSIxMZEqVarIn5cvXx5NTU3i4+OLpERGjRrF3bt36devH+3atZNnloeEhHD16lW6devGqFGjlJLZtm1b2rZtS0pKCseOHeOvv/5i4cKF5Obmcu3aNWrUqKGSgxZkPhpra2tOnjzJy5cvAZki7NGjR5EaEZUvX55BgwYxaNAgQkJC8PT0REdHh++
54uX
Qs2dPunXrprTcd+/e0b9
2JTIFBQsRXX3feLFy8USqm8fPmSjIwMgCKVWHn16hXHjh3Dx8eHkJAQLCwscHJyomfPnkrXD+vbty85OTk8evQIIyOjIn33BYTorFJFw4YN2b17t4L/YuDAgbi7uyuYjFR1Wh87dozjx48XSyz/x3j27Bmenp54e3uTmpqKlZXVFxth/dvk5ORw/vx5PD09uXTpEvfv31daxuLFizEwMGDMmDHFNq6GDRty+fJluf/G3Nyco0ePFmkl0rBhw4/WooKi969v2LAhjRo1onfv3tja2haLibNp06acOHGiSO9ZQFAipYqS/JH/f5KdnS2fmDdv3qyynHPnznHgwAFevXqFh4cHBgYG8tIcyoYOF4bY2FiVnO7Lli3Dy8uLJk2aYGJiUiB6TJl6XHk0atSIM2fOoKuri1QqxcrKigMHDlCzZk2F45RZ7RW2+rEqlRKCg4NVvrn5FH379mXWrFm0adOmWOWWNgQlUoooiR95enp6oY9Vxfy0e/dubGxsir1YpJeXF8uWLeO7775jx44d+Pj4YGhoyF9
cWJEyfYvn27yrLPnTvH/v37CQ8PLxbl9Dl/kkgkYufOnUrLzLuhyONT5e
azcUV65ckRdxrFu3LpaWlirLunTpEmvXrmXatGkfLZapqrm0tCEoEYEi8eFk9DlUmZC6detGdHQ0bdu2xc7OrkA/CVWxtbVl0qRJfPPNNwqmnCdPnuDg4KByYceSVE7FyY0bNwp1XGHbJStTbFKVFcXLly+ZNGkSL168kN/kvH79GmNjY9zd3TEyMlJa5vtBIP8LCvS/iqBESimPHz/mr7/+IiwsjGXLllG1alV8fX2pXr26UnkShZ2MoPAT0ofcvn0bHx8fTp48SXp6Op07d8bOzo6OHTuq3EvC1NSUEydOyMup5ymR0NBQ7O3tCQwMVEluSSmn98nMzCQwMBBDQ8P/TMmTz5lKoejm0qFDh1KmTBl++eUXecb627dvmTVrFhkZGezevVtpmV/67qr6fS1tCNFZpRA/Pz8mT56MtbU1169fl0fPREZGcujQIaX8DP8fP7SWLVvSsmVL5s6di7+/Pz4+PsycORN1dXWuXbumkszq1at/tJLx5cuXqVOnjspjDQsL+6gSLlOmjLx/ibLMnj0bMzMzhgwZQmZmJgMHDuTJkyeoq6uzYcMGOnXqpPJ4GzVqhL+/fwFfTXx8PJaWloWe8D/szVHcBAUFcfDgQYWSJ3p6esycOZNBgwapJFNQEsWDoERKI
++is
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\n",
"text/plain": [
"
"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "SHMuUHAdn30X",
"colab_type": "code",
"colab": {
"base_uri": "https:
localhost:8080/",
"height": 1000
},
"outputId": "0038c305-6e1c-4ffe-dd7d-64d3888db2ac"
},
"source": [
"#scatterplot\n",
"sns.set()\n",
"cols = ['SalePrice', 'OverallQual', 'GrLivArea', 'GarageCars', 'TotalBsmtSF', 'FullBath', 'YearBuilt']\n",
"sns.pairplot(df_train[cols], size = 2.5)\n",
"plt.show();"
],
"execution_count": 15,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here