mirror of
https://github.com/Doctorado-ML/bayesclass.git
synced 2025-08-15 15:45:54 +00:00
34 lines
1018 B
Python
34 lines
1018 B
Python
import time
|
|
from sklearn.model_selection import cross_val_score, StratifiedKFold
|
|
from sklearn.preprocessing import KBinsDiscretizer
|
|
from sklearn.datasets import load_wine
|
|
from bayesclass.clfs import TAN
|
|
import warnings
|
|
|
|
|
|
# Warnings are not errors
|
|
warnings.simplefilter("ignore")
|
|
start = time.time()
|
|
random_state = 17
|
|
n_folds = 5
|
|
print(f"Accuracy in {n_folds} folds stratified crossvalidation")
|
|
dataset_start = time.time()
|
|
dataset = load_wine()
|
|
Xc = dataset.data
|
|
enc = KBinsDiscretizer(encode="ordinal")
|
|
X = enc.fit_transform(Xc)
|
|
y = dataset.target
|
|
clf = TAN(random_state=random_state)
|
|
fit_params = dict(features=dataset.feature_names, class_name="class", head=0)
|
|
kfold = StratifiedKFold(
|
|
n_splits=n_folds, shuffle=True, random_state=random_state
|
|
)
|
|
score = cross_val_score(clf, X, y, cv=kfold, fit_params=fit_params)
|
|
print(
|
|
f"wine {'.' * 10}{score.mean():9.7f} "
|
|
f"({time.time()-dataset_start:7.2f} seconds)"
|
|
)
|
|
clf.fit(X, y, **fit_params)
|
|
clf.plot("TAN wine")
|
|
print(f"Took {time.time()-start:.2f} seconds")
|