Usage Guide

This guide demonstrates how to use the 5D Neural Network Interpolator system.

Web Interface Workflow

  1. Upload Dataset

    • Open http://localhost:3000 in your browser

    • Click “Choose a file” and select your .pkl dataset file

    • Click “Continue” - the system will validate and display dataset statistics

  2. Train Model

    • Configure model parameters: * Hidden layer sizes (default: [64, 32, 16]) * Learning rate (default: 0.001) * Max iterations (default: 300)

    • Click “Train model”

    • View training metrics and graphs

  3. Make Predictions

    • Enter 5 feature values

    • Click “Predict”

    • View the prediction result

Python API Usage

Direct Library Usage

You can also use the Python modules directly:

from pydis_nn.data import load_and_preprocess
from pydis_nn.neuralnetwork import NeuralNetwork
from pydis_nn.utils import generate_sample_dataset

# Generate or load dataset
data = generate_sample_dataset(n=1000, seed=42)

# Or load from file
# from pydis_nn.data import load_and_preprocess
# data = load_and_preprocess('my_dataset.pkl', random_state=42)

# Create model
model = NeuralNetwork(
    hidden_sizes=[64, 32, 16],
    learning_rate=0.001,
    max_iter=300,
    random_state=42
)

# Train
model.fit(
    data['X_train'],
    data['y_train'],
    X_val=data['X_val'],
    y_val=data['y_val']
)

# Evaluate
test_r2 = model.score(data['X_test'], data['y_test'])
print(f"Test R²: {test_r2:.4f}")

# Predict
predictions = model.predict(data['X_test'])

REST API Usage

Using curl:

Upload dataset:

curl -X POST "http://localhost:8000/upload" \
     -F "file=@my_dataset.pkl"

Train model:

curl -X POST "http://localhost:8000/train" \
     -H "Content-Type: application/json" \
     -d '{
       "hidden_sizes": [64, 32, 16],
       "learning_rate": 0.001,
       "max_iter": 300,
       "random_state": 42
     }'

Make prediction:

curl -X POST "http://localhost:8000/predict" \
     -H "Content-Type: application/json" \
     -d '{
       "features": [0.1, 0.2, 0.3, 0.4, 0.5]
     }'

Using Python requests:

import requests

# Upload dataset
with open('my_dataset.pkl', 'rb') as f:
    response = requests.post(
        'http://localhost:8000/upload',
        files={'file': f}
    )

# Train model
response = requests.post(
    'http://localhost:8000/train',
    json={
        'hidden_sizes': [64, 32, 16],
        'learning_rate': 0.001,
        'max_iter': 300
    }
)
results = response.json()
print(f"Test R²: {results['test_r2']:.4f}")

# Make prediction
response = requests.post(
    'http://localhost:8000/predict',
    json={'features': [0.1, 0.2, 0.3, 0.4, 0.5]}
)
prediction = response.json()['prediction']
print(f"Prediction: {prediction}")