11 KiB
11 KiB
In [1]:
import sys
sys.path.append('./')In [2]:
## preparation
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
%matplotlib inline
datapath = '../3_data'
from os import chdir; chdir(datapath)
from bfh_cas_pml import prep_data, prep_demo_data
X_train, X_test, y_train, y_test = prep_data('bank_data_prep.csv', 'y', seed = 1234)
X_demo, y_demo = prep_demo_data('demo_data_class.csv', 'y')In [3]:
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
model = LinearDiscriminantAnalysis()
model.fit(X_train, y_train)
print(model.score(X_test, y_test))0.8487982963188317
In [4]:
print(model.get_params()){'covariance_estimator': None, 'n_components': None, 'priors': None, 'shrinkage': None, 'solver': 'svd', 'store_covariance': False, 'tol': 0.0001}
In [5]:
from sklearn.discriminant_analysis \
import QuadraticDiscriminantAnalysis
model = QuadraticDiscriminantAnalysis()
model.fit(X_train, y_train)
print(model.score(X_test, y_test))0.7246729540614543
In [6]:
print(model.get_params()){'priors': None, 'reg_param': 0.0, 'store_covariance': False, 'tol': 0.0001}
In [7]:
from sklearn.svm import SVC
model = SVC()
model.fit(X_train, y_train)
print(model.score(X_test, y_test))0.7161545482202616
In [8]:
print(model.get_params()){'C': 1.0, 'break_ties': False, 'cache_size': 200, 'class_weight': None, 'coef0': 0.0, 'decision_function_shape': 'ovr', 'degree': 3, 'gamma': 'scale', 'kernel': 'rbf', 'max_iter': -1, 'probability': False, 'random_state': None, 'shrinking': True, 'tol': 0.001, 'verbose': False}
Cell:
[Cell type raw - unsupported, skipped]
In [9]:
## demo of GaussianNB interna with demo data
X_nb_train = X_demo
y_nb_train = y_demo
X_nb_train = X_nb_train.drop('X2', axis=1)
#print(X_train)
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X_nb_train, y_nb_train)
## print model attributes
print('classes_ :', model.classes_)
print('class_prior_ :', model.class_prior_)
print('\ntheta_ :\n', model.theta_)
print('\nvar_ :\n', model.var_)classes_ : ['A' 'B'] class_prior_ : [0.55555556 0.44444444] theta_ : [[5.58666667] [4.26666667]] var_ : [[0.31182222] [0.23055556]]
In [10]:
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X_train, y_train)
print(model.score(X_test, y_test))0.7337998174627319
In [11]:
print(model.get_params()){'priors': None, 'var_smoothing': 1e-09}
In [12]:
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=4000)
model.fit(X_train, y_train)
print(model.score(X_test, y_test))0.8475813811986614
In [13]:
for key, value in model.get_params().items():
print("%-20s : %-5s" % (key, value))C : 1.0 class_weight : None dual : False fit_intercept : True intercept_scaling : 1 l1_ratio : None max_iter : 4000 multi_class : deprecated n_jobs : None penalty : l2 random_state : None solver : lbfgs tol : 0.0001 verbose : 0 warm_start : False