Spaces:
Running
Running
import tensorflow as tf | |
from tensorflow.keras import layers, models | |
class AnomalyDetectionModel: | |
def __init__(self, input_shape): | |
self.model = self.build_model(input_shape) | |
def build_model(self, input_shape): | |
model = models.Sequential([ | |
layers.Dense(64, activation='relu', input_shape=(input_shape,)), | |
layers.Dense(32, activation='relu'), | |
layers.Dense(16, activation='relu'), | |
layers.Dense(1, activation='sigmoid') | |
]) | |
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) | |
return model | |
def train(self, X_train, y_train, epochs=10, batch_size=32, validation_split=0.2): | |
history = self.model.fit(X_train, y_train, epochs=epochs, batch_size=batch_size, validation_split=validation_split) | |
return history | |
def evaluate(self, X_test, y_test): | |
loss, accuracy = self.model.evaluate(X_test, y_test) | |
return loss, accuracy | |
# Example usage: | |
# anomaly_model = AnomalyDetectionModel(X_train.shape[1]) | |
# history = anomaly_model.train(X_train, y_train) | |
# loss, accuracy = anomaly_model.evaluate(X_test, y_test) | |
# print(f'Test Accuracy: {accuracy:.4f}') | |