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/2_Code/2.3 Klassifikation - Mathematische Modelle.ipynb
T
2026-05-21 14:16:30 +02:00

11 KiB

Feature Engineering

Klassifikation

Instanzbasierte Modelle

Regelbasierte Modelle

Mathematische Modelle

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')

LinearDiscriminantAnalysis

Theorie

kein Code zu diesem Kapitel

Praxis

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}

QuadraticDiscriminantAnalysis (eine Variante)

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}

SVC

Theorie

Praxis

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]

GaussianNB

in aller Kürze

Theorie

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]]

Praxis

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}

LogisticRegression

Theorie

Praxis

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