Machine Learning Functions#

Examples using ML-based test functions.


Basic ML Function#

from surfaces.test_functions.machine_learning import KNeighborsClassifierFunction

# Create ML-based test function
func = KNeighborsClassifierFunction()

# Evaluate with hyperparameters
params = {
    "n_neighbors": 5,
    "algorithm": "auto"
}
score = func(params)
print(f"Accuracy: {score:.4f}")

Search Space with Categoricals#

from surfaces.test_functions.machine_learning import KNeighborsClassifierFunction

func = KNeighborsClassifierFunction()
space = func.search_space

print("Search space:")
for name, values in space.items():
    if hasattr(values, 'min'):
        print(f"  {name}: [{min(values)}, {max(values)}] (numeric)")
    else:
        print(f"  {name}: {values} (categorical)")

Multiple ML Functions#

import random
from surfaces.test_functions.machine_learning import (
    KNeighborsClassifierFunction,
    DecisionTreeClassifierFunction,
)

# Fast ML functions for quick benchmarking
functions = [
    KNeighborsClassifierFunction(),
    DecisionTreeClassifierFunction(),
]

for func in functions:
    space = func.search_space
    sample = {k: random.choice(v) for k, v in space.items()}
    result = func(sample)
    print(f"{func.__class__.__name__}: {result:.4f}")

Note

ML functions involve actual model training and are slower than algebraic functions. For fast benchmarking, consider using surrogate models.