Source code for chemicalchecker.tool.targetmate.evaluation.score

from ..utils.splitters import GetSplitter
from ..utils.metrics import Metric
import numpy as np

[docs]def validation_score(mod, X, y, smiles, metric, is_cv, is_classifier, is_stratified, scaffold_split, n_splits, test_size, random_state): Spl = GetSplitter(is_cv=is_cv, is_classifier=is_classifier, is_stratified=is_stratified, scaffold_split=scaffold_split, outofuniverse_split=False) kf = Spl(n_splits=n_splits, test_size=test_size, random_state=random_state) metric = Metric(metric) score = [] for train_idx, test_idx in kf.split(X=smiles, y=y): mod.fit(X[train_idx], y[train_idx]) if is_classifier: y_pred = mod.predict_proba(X[test_idx])[:,1] else: y_pred = mod.predict(X[test_idx]) y_true = y[test_idx] score += [metric(y_true, y_pred)[0]] return np.mean(score)