36 KiB
36 KiB
In [1]:
## prepare env, read and prepare data
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
codepath = '.././2_code' ## for import of user defined module
datapath = '../../3_data'
from sys import path
path.insert(1, codepath)
from os import chdir
chdir(datapath)
from bfh_cas_pml import prep_data
X_train, X_test, y_train, y_test = prep_data('bank_data_prep.csv',
target='y',
seed=1234)In [2]:
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
scores = []
params = np.arange(0, 0.002, 0.0001)
for param in params:
model.set_params(min_impurity_decrease=param, random_state=1234)
model.fit(X_train, y_train)
scores.append(model.score(X_test, y_test))
print(model.score(X_test, y_test))
fig = sns.lineplot(x=params, y=scores)
plt.xlabel('min_impurity_decrease')
plt.ylabel('accuracy');
print('best_score =', max(scores))
print('best_val =', params[scores.index(max(scores))])0.8296318831761484 0.8521448128993002 0.867964709461515 0.8795254031031335 0.8789169455430483 0.8773958016428354 0.877700030422878 0.8780042592029206 0.8767873440827503 0.8743535138424094 0.8743535138424094 0.8728323699421965 0.8697900821417706 0.8697900821417706 0.8697900821417706 0.867964709461515 0.8634012777608762 0.8634012777608762 0.8634012777608762 0.8634012777608762
C:\Users\werne\anaconda3\Lib\site-packages\seaborn\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.
with pd.option_context('mode.use_inf_as_na', True):
C:\Users\werne\anaconda3\Lib\site-packages\seaborn\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.
with pd.option_context('mode.use_inf_as_na', True):
best_score = 0.8795254031031335 best_val = 0.00030000000000000003