Spaces:
Build error
Build error
| import pandas as pd | |
| from sklearn.ensemble import IsolationForest | |
| from sklearn.preprocessing import LabelEncoder | |
| import joblib | |
| # ARQUIVOS | |
| CSV_NORMAL = "resultados_carga_normal.csv" | |
| CSV_ANORMAL = "resultados_carga_anomala.csv" | |
| OUTPUT_MODEL = "modelo_anomalia.pkl" | |
| def preprocess(df): | |
| # Converte success TRUE/FALSE para 1/0 se necessário | |
| if df["success"].dtype == object: | |
| df["success"] = df["success"].map(lambda x: 1 if str(x).lower() == "true" else 0) | |
| # Apenas colunas importantes | |
| return df[["elapsed", "success"]] | |
| def train_baseline(): | |
| print("🔵 Treinando baseline com resultados normais...") | |
| df = pd.read_csv(CSV_NORMAL) | |
| X = preprocess(df) | |
| model = IsolationForest(contamination=0.05, random_state=42) | |
| model.fit(X) | |
| joblib.dump(model, OUTPUT_MODEL) | |
| print("✅ Modelo salvo como", OUTPUT_MODEL) | |
| def validate_anomalies(): | |
| print("🔴 Validando com dados anômalos...") | |
| df = pd.read_csv(CSV_ANORMAL) | |
| X = preprocess(df) | |
| model = joblib.load(OUTPUT_MODEL) | |
| preds = model.predict(X) | |
| percent_anom = (preds == -1).mean() * 100 | |
| print(f"🚨 Percentual de anomalias detectadas: {percent_anom:.2f}%") | |
| if __name__ == "__main__": | |
| train_baseline() | |
| validate_anomalies() | |