| """Example usage of the ANCHOR+DEUP Unified UQ Pipeline.""" |
|
|
| from sklearn.datasets import fetch_california_housing |
| from sklearn.model_selection import train_test_split |
| from sklearn.preprocessing import StandardScaler |
| from anchor_deup import UnifiedUQPipeline |
| import numpy as np |
|
|
| |
| data = fetch_california_housing() |
| X, y = data.data.astype(np.float64), data.target.reshape(-1, 1).astype(np.float64) |
|
|
| |
| Xt, X_test, yt, y_test = train_test_split(X, y, test_size=0.3, random_state=42) |
| X_train, X_val, y_train, y_val = train_test_split(Xt, yt, test_size=0.3, random_state=42) |
|
|
| |
| sx = StandardScaler() |
| X_train = sx.fit_transform(X_train) |
| X_val = sx.transform(X_val) |
| X_test = sx.transform(X_test) |
|
|
| sy = StandardScaler() |
| y_train = sy.fit_transform(y_train) |
| y_val = sy.transform(y_val) |
| y_test = sy.transform(y_test) |
|
|
| |
| pipeline = UnifiedUQPipeline(X_train.shape[1]) |
| pipeline.fit(X_train, y_train, X_val, y_val, main_epochs=150, error_epochs=150) |
|
|
| |
| mean_pred, total_unc, epistemic_unc, aleatoric_unc = pipeline.predict(X_test, n_anchors=100) |
|
|
| print(f"Mean prediction shape: {mean_pred.shape}") |
| print(f"Total uncertainty shape: {total_unc.shape}") |
| print(f"Epistemic uncertainty shape: {epistemic_unc.shape}") |
| print(f"Aleatoric uncertainty shape: {aleatoric_unc.shape}") |
|
|