This repository has been archived on 2026-06-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
cas-pml/SL/aufgaben/template/4_WS/Loesungen/WS 05 Loesung.ipynb
T
2026-05-21 14:16:30 +02:00

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

Fazit:

  • beste Performance bei min_impurity_decrease=0.0003