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.