Feat TestModels
This commit is contained in:
Binary file not shown.
BIN
ProyectoIA_Gestion/modelo_danadas.joblib
Normal file
BIN
ProyectoIA_Gestion/modelo_danadas.joblib
Normal file
Binary file not shown.
BIN
ProyectoIA_Gestion/modelo_montos.joblib
Normal file
BIN
ProyectoIA_Gestion/modelo_montos.joblib
Normal file
Binary file not shown.
@@ -19,10 +19,7 @@ try:
|
|||||||
print(f"Conectando a la base de datos '{DB_DATABASE}' en '{DB_SERVER}'...")
|
print(f"Conectando a la base de datos '{DB_DATABASE}' en '{DB_SERVER}'...")
|
||||||
cnxn = pyodbc.connect(CONNECTION_STRING)
|
cnxn = pyodbc.connect(CONNECTION_STRING)
|
||||||
|
|
||||||
fecha_limite = datetime.now() - timedelta(days=365)
|
fecha_limite = datetime.now() - timedelta(days=730)
|
||||||
|
|
||||||
# << 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
|
|
||||||
query = f"""
|
query = f"""
|
||||||
SELECT
|
SELECT
|
||||||
CAST(h.FechaMod AS DATE) as fecha,
|
CAST(h.FechaMod AS DATE) as fecha,
|
||||||
@@ -32,8 +29,7 @@ try:
|
|||||||
FROM
|
FROM
|
||||||
bob_StockBobinas_H h
|
bob_StockBobinas_H h
|
||||||
WHERE
|
WHERE
|
||||||
h.Id_EstadoBobina = 3 -- Asumiendo que 3 es el ID del estado 'Dañada'
|
h.Id_EstadoBobina = 3 -- 3 es el ID del estado 'Dañada'
|
||||||
AND h.TipoMod = 'Estado: Dañada' -- Filtra por el evento específico del cambio de estado
|
|
||||||
AND h.FechaMod >= '{fecha_limite.strftime('%Y-%m-%d')}'
|
AND h.FechaMod >= '{fecha_limite.strftime('%Y-%m-%d')}'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
CAST(h.FechaMod AS DATE),
|
CAST(h.FechaMod AS DATE),
|
||||||
|
|||||||
@@ -11,17 +11,16 @@ DB_SERVER = 'TECNICA3'
|
|||||||
DB_DATABASE = 'SistemaGestion'
|
DB_DATABASE = 'SistemaGestion'
|
||||||
CONNECTION_STRING = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={DB_SERVER};DATABASE={DB_DATABASE};Trusted_Connection=yes;TrustServerCertificate=yes;'
|
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
|
MODEL_FILE = 'modelo_anomalias_dist.joblib'
|
||||||
CONTAMINATION_RATE = 0.01 # Un 1% de contaminación es un buen punto de partida
|
CONTAMINATION_RATE = 0.01 # Un 1% de contaminación
|
||||||
|
|
||||||
# --- 2. Carga de Datos desde SQL Server ---
|
# --- 2. Carga de Datos desde SQL Server ---
|
||||||
try:
|
try:
|
||||||
print(f"Conectando a la base de datos '{DB_DATABASE}' en '{DB_SERVER}'...")
|
print(f"Conectando a la base de datos '{DB_DATABASE}' en '{DB_SERVER}'...")
|
||||||
cnxn = pyodbc.connect(CONNECTION_STRING)
|
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"""
|
query = f"""
|
||||||
SELECT
|
SELECT
|
||||||
Id_Distribuidor AS id_distribuidor,
|
Id_Distribuidor AS id_distribuidor,
|
||||||
@@ -57,7 +56,7 @@ df.fillna(0, inplace=True)
|
|||||||
df['porcentaje_devolucion'] = df['porcentaje_devolucion'].clip(0, 100)
|
df['porcentaje_devolucion'] = df['porcentaje_devolucion'].clip(0, 100)
|
||||||
df['dia_semana'] = pd.to_datetime(df['fecha']).dt.dayofweek
|
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]
|
X = df[features]
|
||||||
|
|
||||||
# --- 4. Entrenamiento y Guardado ---
|
# --- 4. Entrenamiento y Guardado ---
|
||||||
|
|||||||
@@ -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;'
|
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'
|
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 ---
|
# --- 2. Carga de Datos de Múltiples Tablas ---
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user