ML (Trainers)
linear_regression_training()¶
Demonstrates the linear_regression_training function. This is the core FHE circuit logic used by FHELinearRegressionTrainer to calculate sufficient statistics directly on encrypted data.
In [ ]:
Copied!
from concrete import fhe
from concrete_fhe_toolkit.ml.trainers import linear_regression_training
def training_circuit(X_train, y_train):
return linear_regression_training(X_train, y_train, 1, 2)
compiler = fhe.Compiler(training_circuit, {'X_train': 'encrypted', 'y_train': 'encrypted'})
inputset = [([[1, 2]], [0])]
circuit = compiler.compile(inputset)
expected = training_circuit(*inputset[0])
result = circuit.encrypt_run_decrypt(*inputset[0])
import numpy as np
np.testing.assert_array_equal(result, expected)
print('linear_regression_training compiled and executed successfully!')
from concrete import fhe
from concrete_fhe_toolkit.ml.trainers import linear_regression_training
def training_circuit(X_train, y_train):
return linear_regression_training(X_train, y_train, 1, 2)
compiler = fhe.Compiler(training_circuit, {'X_train': 'encrypted', 'y_train': 'encrypted'})
inputset = [([[1, 2]], [0])]
circuit = compiler.compile(inputset)
expected = training_circuit(*inputset[0])
result = circuit.encrypt_run_decrypt(*inputset[0])
import numpy as np
np.testing.assert_array_equal(result, expected)
print('linear_regression_training compiled and executed successfully!')
FHELinearRegressionTrainer¶
Demonstrates the FHELinearRegressionTrainer class. Runs fit_encrypted in simulation mode to train an encrypted model.
In [ ]:
Copied!
from concrete_fhe_toolkit.ml.trainers import FHELinearRegressionTrainer
import numpy as np
trainer = FHELinearRegressionTrainer(simulate=True)
X_train = [[1], [3]]
y_train = [0, 1]
try:
model = trainer.fit_encrypted(X_train, y_train)
print('FHELinearRegressionTrainer executed successfully!')
except Exception as e:
print(f'Execution failed: {e}')
from concrete_fhe_toolkit.ml.trainers import FHELinearRegressionTrainer
import numpy as np
trainer = FHELinearRegressionTrainer(simulate=True)
X_train = [[1], [3]]
y_train = [0, 1]
try:
model = trainer.fit_encrypted(X_train, y_train)
print('FHELinearRegressionTrainer executed successfully!')
except Exception as e:
print(f'Execution failed: {e}')
FHEDecisionTreeTrainer¶
Demonstrates the FHEDecisionTreeTrainer class. Runs fit_encrypted in simulation mode to train an encrypted model.
In [ ]:
Copied!
from concrete_fhe_toolkit.ml.trainers import FHEDecisionTreeTrainer
import numpy as np
trainer = FHEDecisionTreeTrainer(candidate_thresholds=[[2]], max_depth=1, num_classes=2, min_samples_leaf=1, simulate=True)
X_train = [[1], [3]]
y_train = [0, 1]
try:
model = trainer.fit_encrypted(X_train, y_train)
print('FHEDecisionTreeTrainer executed successfully!')
except Exception as e:
print(f'Execution failed: {e}')
from concrete_fhe_toolkit.ml.trainers import FHEDecisionTreeTrainer
import numpy as np
trainer = FHEDecisionTreeTrainer(candidate_thresholds=[[2]], max_depth=1, num_classes=2, min_samples_leaf=1, simulate=True)
X_train = [[1], [3]]
y_train = [0, 1]
try:
model = trainer.fit_encrypted(X_train, y_train)
print('FHEDecisionTreeTrainer executed successfully!')
except Exception as e:
print(f'Execution failed: {e}')
FHEKMeansTrainer¶
Demonstrates the FHEKMeansTrainer class. Runs fit_encrypted in simulation mode to train an encrypted model.
In [ ]:
Copied!
from concrete_fhe_toolkit.ml.trainers import FHEKMeansTrainer
import numpy as np
trainer = FHEKMeansTrainer(initial_centroids=[[1, 1], [3, 3]], min_value=-2, max_value=3, n_iterations=1, simulate=True)
X_train = [[1, 1], [3, 3]]
try:
model = trainer.fit_encrypted(X_train)
print('FHEKMeansTrainer executed successfully!')
except Exception as e:
print(f'Execution failed: {e}')
from concrete_fhe_toolkit.ml.trainers import FHEKMeansTrainer
import numpy as np
trainer = FHEKMeansTrainer(initial_centroids=[[1, 1], [3, 3]], min_value=-2, max_value=3, n_iterations=1, simulate=True)
X_train = [[1, 1], [3, 3]]
try:
model = trainer.fit_encrypted(X_train)
print('FHEKMeansTrainer executed successfully!')
except Exception as e:
print(f'Execution failed: {e}')