Feat TestModels

This commit is contained in:
2025-11-18 13:11:33 -03:00
parent 615cf282a1
commit 1020555db6
6 changed files with 7 additions and 12 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -19,10 +19,7 @@ try:
print(f"Conectando a la base de datos '{DB_DATABASE}' en '{DB_SERVER}'...")
cnxn = pyodbc.connect(CONNECTION_STRING)
fecha_limite = datetime.now() - timedelta(days=365)
# << CAMBIO IMPORTANTE: Nueva consulta para contar bobinas marcadas como "Dañada" por día y planta >>
# Asumimos que el estado "Dañada" tiene Id_EstadoBobina = 3 y el historial lo registra
fecha_limite = datetime.now() - timedelta(days=730)
query = f"""
SELECT
CAST(h.FechaMod AS DATE) as fecha,
@@ -32,8 +29,7 @@ try:
FROM
bob_StockBobinas_H h
WHERE
h.Id_EstadoBobina = 3 -- Asumiendo que 3 es el ID del estado 'Dañada'
AND h.TipoMod = 'Estado: Dañada' -- Filtra por el evento específico del cambio de estado
h.Id_EstadoBobina = 3 -- 3 es el ID del estado 'Dañada'
AND h.FechaMod >= '{fecha_limite.strftime('%Y-%m-%d')}'
GROUP BY
CAST(h.FechaMod AS DATE),

View File

@@ -11,17 +11,16 @@ DB_SERVER = 'TECNICA3'
DB_DATABASE = 'SistemaGestion'
CONNECTION_STRING = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={DB_SERVER};DATABASE={DB_DATABASE};Trusted_Connection=yes;TrustServerCertificate=yes;'
MODEL_FILE = 'modelo_anomalias_dist.joblib' # <-- Nuevo nombre de archivo para el modelo
CONTAMINATION_RATE = 0.01 # Un 1% de contaminación es un buen punto de partida
MODEL_FILE = 'modelo_anomalias_dist.joblib'
CONTAMINATION_RATE = 0.01 # Un 1% de contaminación
# --- 2. Carga de Datos desde SQL Server ---
try:
print(f"Conectando a la base de datos '{DB_DATABASE}' en '{DB_SERVER}'...")
cnxn = pyodbc.connect(CONNECTION_STRING)
fecha_limite = datetime.now() - timedelta(days=365)
fecha_limite = datetime.now() - timedelta(days=730)
# << CAMBIO IMPORTANTE: Nueva consulta para agrupar Salidas y Entradas por distribuidor y día >>
query = f"""
SELECT
Id_Distribuidor AS id_distribuidor,
@@ -57,7 +56,7 @@ df.fillna(0, inplace=True)
df['porcentaje_devolucion'] = df['porcentaje_devolucion'].clip(0, 100)
df['dia_semana'] = pd.to_datetime(df['fecha']).dt.dayofweek
features = ['id_distribuidor', 'porcentaje_devolucion', 'dia_semana'] # <-- Característica clave: id_distribuidor
features = ['id_distribuidor', 'porcentaje_devolucion', 'dia_semana']
X = df[features]
# --- 4. Entrenamiento y Guardado ---

View File

@@ -12,7 +12,7 @@ DB_DATABASE = 'SistemaGestion'
CONNECTION_STRING = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={DB_SERVER};DATABASE={DB_DATABASE};Trusted_Connection=yes;TrustServerCertificate=yes;'
MODEL_FILE = 'modelo_montos.joblib'
CONTAMINATION_RATE = 0.01 # Asumimos que el 1% de las transacciones podrían ser anómalas (ajustable)
CONTAMINATION_RATE = 0.002
# --- 2. Carga de Datos de Múltiples Tablas ---
try: