CD_36 Original + Derivados

CD_36: Phishing Websites Features

Dataset de ciberseguridad para la clasificación binaria de sitios web fraudulentos (Is_Phishing). Se compone de 30 características técnicas extraídas de la URL, código fuente y reputación de dominio, codificadas en una escala (-1: Phishing, 0: Sospechoso, 1: Legítimo).

📈 Eficacia Predictiva Detallada

Comparación detallada de las métricas de clasificación para los modelos entrenados con el conjunto de datos original y el conjunto sintético generado.

🏆 MEJOR RENDIMIENTO

📊 Conjunto Original

Clase Precisión Recall F1-Score Soporte
Clase 0 0.91 0.89 0.90 111
Clase 1 0.87 0.89 0.88 89
Accuracy 0.89
Macro Avg 0.89 0.89 0.89 200
Weighted Avg 0.89 0.89 0.89 200
AUC-ROC: 0.93
F1-Score (weighted): 0.89
Accuracy: 0.89
⬇️ Degradación
⬇ -0.02 AUC ⬇ -0.06 F1 ⬇ -0.06 Acc

🔮 Conjunto Sintético

Clase Precisión Recall F1-Score Soporte
Clase 0 0.84 0.86 0.85 111
Clase 1 0.82 0.80 0.81 89
Accuracy 0.83 ⬇ -0.06
Macro Avg 0.83 ⬇ -0.06 0.83 ⬇ -0.06 0.83 ⬇ -0.06 200
Weighted Avg 0.83 ⬇ -0.06 0.83 ⬇ -0.06 0.83 ⬇ -0.06 200
AUC-ROC: 0.91 ⬇ -0.02
F1-Score (weighted): 0.83 ⬇ -0.06
Accuracy: 0.83 ⬇ -0.06

📊 Resumen de Degradación del Rendimiento

🎯
Precisión (Clase 1)
Original: 0.87
Sintético: 0.82
⬇ -0.05
📈
Recall (Clase 1)
Original: 0.89
Sintético: 0.80
⬇ -0.09
⚖️
F1-Score (Clase 1)
Original: 0.88
Sintético: 0.81
⬇ -0.07

📚 Fuente Original del Conjunto

Phishing Websites Dataset

v1.0
Mohammad, R., Thabtah, F., & Mccluskey, L.
Publicado: 2012

📄 Resumen (Abstract)

El conjunto de datos de Sitios Web de Phishing (Phishing Websites) fue recolectado principalmente de: PhishTank archive, MillerSmiles archive y operadores de búsqueda de Google. Uno de los desafíos enfrentados por la investigación fue la indisponibilidad de conjuntos de datos de entrenamiento confiables, un desafío que enfrenta cualquier investigador en el campo. Aunque se han publicado numerosos artículos sobre la predicción de sitios web de phishing, no se ha publicado públicamente ningún conjunto de datos de entrenamiento confiable, posiblemente porque no hay acuerdo en la literatura sobre las características definitivas que caracterizan a las páginas web de phishing. Este dataset aborda esta brecha al incluir características importantes que han demostrado ser sólidas y efectivas en la predicción de sitios web de phishing, además de proponer nuevas características.

🔬 Contexto y Motivación

El phishing es un tipo de ataque cibernético en el que los atacantes crean sitios web fraudulentos que imitan a sitios legítimos para engañar a los usuarios y robar información confidencial como credenciales de inicio de sesión, números de tarjetas de crédito y datos personales. Según el Anti-Phishing Working Group (APWG), el número de ataques de phishing ha aumentado significativamente en los últimos años, convirtiéndose en una de las amenazas cibernéticas más comunes y costosas.

Este dataset es importante porque:

  • Proporciona un conjunto de datos de referencia para la investigación en detección de phishing
  • Incluye 30 características que cubren diferentes aspectos de los sitios web (URL, contenido, comportamiento, etc.)
  • Combina características tradicionales y novedosas para mejorar la precisión predictiva
  • Permite el desarrollo de modelos de aprendizaje automático para la detección automática de phishing

📊 Descripción de Datos

El dataset contiene 11,055 instancias con 30 atributos (29 variables predictoras y 1 variable objetivo). Todas las características son de tipo entero y no presentan valores faltantes. Las características cubren aspectos como:

  • Características de la URL (longitud, presencia de IP, símbolo @, redireccionamientos, subdominios)
  • Características del dominio (edad del dominio, registros DNS, tráfico web, Page Rank)
  • Características del contenido (favicon, URL de solicitud, anclas, etiquetas, formularios)
  • Características de comportamiento (eventos JavaScript, pop-ups, iframes, clic derecho)
  • Características de seguridad (SSL, certificados, puertos)
📋 Variables del Dataset
Variable Tipo Descripción Valores Típicos
A. Características de la URL y el Dominio
having_ip_address Entero ¿La URL contiene una dirección IP? 1 = Sí, 0 = No
url_length Entero Longitud de la URL (categorizada) -
shortining_service Entero ¿La URL utiliza un servicio de acortamiento? 1 = Sí, 0 = No
having_at_symbol Entero ¿La URL contiene el símbolo '@'? 1 = Sí, 0 = No
double_slash_redirecting Entero ¿La URL contiene redireccionamiento con doble barra? 1 = Sí, 0 = No
prefix_suffix Entero ¿El dominio tiene prefijo o sufijo separado por '-'? 1 = Sí, 0 = No
having_sub_domain Entero ¿La URL tiene subdominios? -
sslfinal_state Entero Estado final del certificado SSL -
domain_registration_length Entero Duración del registro del dominio -
age_of_domain Entero Edad del dominio (tiempo desde el registro) -
dnsrecord Entero Registros DNS del dominio 1 = Válido, 0 = Inválido
web_traffic Entero Tráfico web del sitio -
page_rank Entero Page Rank de Google -
google_index Entero ¿El sitio está indexado en Google? 1 = Sí, 0 = No
links_pointing_to_page Entero Número de enlaces que apuntan a la página -
statistical_report Entero Informe estadístico del sitio -
B. Características del Contenido
favicon Entero ¿El favicon está cargado desde un dominio externo? 1 = Externo, 0 = Interno
request_url Entero ¿Los objetos de la página se cargan desde dominios externos? -
url_of_anchor Entero ¿La URL de los anclajes es diferente del dominio? -
links_in_tags Entero Enlaces en etiquetas HTML -
sfh Entero Manipulación del campo "Server Form Handler" -
submitting_to_email Entero ¿El formulario envía datos a una dirección de correo? 1 = Sí, 0 = No
abnormal_url Entero ¿La URL es anormal? 1 = Sí, 0 = No
C. Características de Comportamiento
redirect Entero ¿La página utiliza redireccionamientos? 1 = Sí, 0 = No
on_mouseover Entero ¿La página tiene eventos on_mouseover? 1 = Sí, 0 = No
rightclick Entero ¿El clic derecho está deshabilitado? 1 = Sí, 0 = No
popupwindow Entero ¿La página utiliza ventanas emergentes? 1 = Sí, 0 = No
iframe Entero ¿La página utiliza iframes? 1 = Sí, 0 = No
D. Características de Seguridad
port Entero ¿El puerto utilizado es el predeterminado? -
https_token Entero ¿La URL contiene la palabra 'https' en el dominio? 1 = Sí, 0 = No
E. Variable Objetivo
result Entero (Target) Clasificación del sitio web 1 = Legítimo, 0 = Phishing

📋 Características del Dataset

  • Tipo de problema: Clasificación binaria (Phishing vs. Legítimo)
  • Dimensión: Tabular (11,055 × 30)
  • Tipo de características: Enteras (todas)
  • Valores faltantes: No
  • Área de aplicación: Ciberseguridad, Detección de Fraudes, Computación
  • Fuentes: PhishTank, MillerSmiles, Google Search Operators
  • Características novedosas: Incluye características no utilizadas en estudios previos

📖 Publicación Introductoria

El artículo fundamental que describe la evaluación de características relacionadas con sitios web de phishing utilizando una técnica automatizada es:

Mohammad, R., Thabtah, F., & Mccluskey, L. (2012). An assessment of features related to phishing websites using an automated technique. 2012 International Conference for Internet Technology and Secured Transactions (ICITST), 492-497. https://doi.org/10.1109/ICITST.2012.6470846

⚖️ Ética y Privacidad

El conjunto de datos contiene información sobre sitios web de phishing y legítimos, pero no incluye información personal identificable de los usuarios afectados por ataques de phishing. Los datos son anónimos y se utilizan exclusivamente para fines de investigación académica en ciberseguridad. Restricción de confidencialidad: El uso de los datos está restringido a fines académicos y de investigación. La publicación de resultados debe limitarse a métricas de evaluación, resultados agregados y metodología del modelo, sin divulgación de información que pueda comprometer la seguridad de los sitios web analizados.

📋 Notas de Uso

Este conjunto de datos es ampliamente utilizado para la detección de sitios web de phishing. Se recomienda:

  • La variable objetivo result está codificada como 1 = Legítimo y 0 = Phishing
  • Todas las características son enteras y no requieren codificación adicional
  • Las características cubren aspectos estructurales, de contenido, de comportamiento y de seguridad de los sitios web
  • Las características having_ip_address, shortining_service, having_at_symbol, https_token son indicadores clave de phishing
  • Considerar técnicas de selección de características para identificar los predictores más importantes
  • El dataset es adecuado para métodos de clasificación como Árboles de Decisión, Random Forest, SVM, y Redes Neuronales
  • El estudio original utilizó una técnica automatizada para evaluar la importancia de las características
  • La detección de phishing es un problema de clasificación desbalanceada en la práctica, aunque este dataset puede tener un balanceo adecuado
  • Utilizar validación cruzada para evaluar el rendimiento del modelo

💡 Importancia en Ciberseguridad

El phishing es una de las amenazas cibernéticas más prevalentes y peligrosas. Según el Anti-Phishing Working Group (APWG):

  • Se detectan más de 1 millón de ataques de phishing cada año
  • El sector financiero es el más afectado, seguido por las plataformas de redes sociales
  • El costo global del phishing se estima en miles de millones de dólares anuales
  • La detección automática mediante aprendizaje automático es una de las defensas más efectivas

Este dataset es fundamental para la investigación en detección de phishing, proporcionando una base de referencia para evaluar y comparar diferentes algoritmos de clasificación. La inclusión de características novedosas mejora la capacidad de los modelos para identificar sitios web de phishing que utilizan técnicas sofisticadas para evadir los sistemas de detección tradicionales.

📖 Cómo citar la fuente original

Mohammad, R., Thabtah, F., & Mccluskey, L. (2012). An assessment of features related to phishing websites using an automated technique. In 2012 International Conference for Internet Technology and Secured Transactions (ICITST) (pp. 492-497). IEEE. https://doi.org/10.1109/ICITST.2012.6470846

📚 Referencias Adicionales

🔄 Transformaciones Aplicadas

Modificaciones realizadas al conjunto original (Phishing Websites Dataset)

  • Lectura personalizada del formato ARFF:
    • Procesamiento manual del archivo .arff (Attribute-Relation File Format) extrayendo exclusivamente la sección @data.
    • Asignación de nombres de columnas basados en la especificación del dataset (30 variables predictoras + 1 objetivo).
    • Conversión de valores a tipo entero durante la carga para mantener la integridad de la escala {-1, 0, 1}.
  • Transformación de la variable objetivo:
    • Creación de Is_Phishing a partir de la variable original Result que utilizaba escala {-1, 1}.
    • Mapeo: Result -1 (Phishing/Malicioso) → 1 (Clase Positiva), Result 1 (Legítimo/Seguro) → 0 (Clase Negativa).
    • Eliminación de la columna original Result para evitar redundancia y confusión.
    • Tratamiento de valores desconocidos como Phishing (1) por seguridad en entornos de detección de amenazas.
  • Preservación de variables predictoras en formato numérico:
    • Mantenimiento de las 30 variables originales (características de los sitios web) en su escala numérica estándar {-1, 0, 1}.
    • Variables incluyen: características de URL (having_IP_Address, URL_Length, Shortining_Service, having_At_Symbol, etc.), características de dominio (age_of_domain, DNSRecord, web_traffic, Page_Rank), y características de contenido/página (Favicon, Request_URL, URL_of_Anchor, Links_in_tags, etc.).
    • Conservación de la semántica original: -1 = Sospechoso/Malicioso, 0 = Neutro/Sospechoso, 1 = Legítimo/Seguro.
  • Generación de documentación completa con leyenda detallada:
    • Creación del archivo leyenda_phishing_websites.txt con semántica completa de la variable objetivo y las 30 variables predictoras.
    • Documentación de la escala de medición para cada variable: {-1, 0, 1} con significados específicos.
    • Descripción detallada de cada característica, incluyendo puntos de corte y umbrales (ej. URL_Length: -1 = >75 chars, 0 = 54-75, 1 = <54).
    • Contextualización del dataset: 30 características de sitios web para detección de phishing.
  • Preservación de la estructura y calidad de datos:
    • Mantenimiento de las instancias originales del dataset de entrenamiento.
    • Dataset final con 30 variables predictoras (todas numéricas en escala {-1, 0, 1}) y 1 variable objetivo binaria (Is_Phishing).
    • Guardado en formato CSV con separador punto y coma (;) para compatibilidad internacional.

📊 Resultado: Dataset de sitios web con 30 variables predictoras (características de URL, dominio, contenido y comportamiento) y 1 variable objetivo binaria (Is_Phishing). Desbalance moderado-preservado (~55% legítimos / ~45% phishing) — escenario ideal para validación de técnicas de generación de datos sintéticos y evaluación del índice TabDSFidelity en contextos de ciberseguridad y detección de amenazas, donde la identificación temprana de sitios maliciosos es fundamental y las características de la URL y el comportamiento del sitio son determinantes.

🔐 Fuente: Phishing Websites Dataset (UCI Machine Learning Repository) - Características extraídas de sitios web para detección de phishing.

🌐 Variables clave de URL: having_IP_Address, URL_Length, Shortining_Service, having_At_Symbol, double_slash_redirecting, Prefix_Suffix, having_Sub_Domain, SSLfinal_State, Domain_registeration_length.

📄 Variables de contenido/página: Favicon, port, HTTPS_token, Request_URL, URL_of_Anchor, Links_in_tags, SFH, Submitting_to_email, Abnormal_URL, Redirect, on_mouseover, RightClick, popUpWidnow, Iframe.

🌍 Variables de dominio y reputación: age_of_domain, DNSRecord, web_traffic, Page_Rank, Google_Index, Links_pointing_to_page, Statistical_report.

📁 Leyenda disponible: Archivo leyenda_phishing_websites.txt con mapeo semántico completo de todas las variables y su escala {-1, 0, 1}.

🎯 Variable objetivo: Is_Phishing (1 = Sitio fraudulento/Phishing, 0 = Sitio legítimo/seguro).

🧹 Limpieza aplicada: Lectura manual de ARFF, conversión de target de escala {-1, 1} a binario {1, 0}, documentación de escala de variables.

📋 Diccionario de Datos Detallado

Variable Descripción Tipo Rango / Categorías Unidad ¿Objetivo?
having_IP_Address Uso de dirección IP en lugar de nombre de dominio Categórico -1: Tiene IP, 1: No tiene IP N/A No
URL_Length Longitud de la URL (caracteres) Categórico -1: ≥75, 0: 54-75, 1: <54 N/A No
Shortining_Service Uso de servicios de acortamiento de URL Categórico -1: Usa acortador, 1: No usa N/A No
having_At_Symbol Presencia del símbolo "@" en la URL Categórico -1: Tiene @, 1: No tiene N/A No
double_slash_redirecting Presencia de "//" para redireccionar Categórico -1: // después de pos 7, 1: Normal N/A No
Prefix_Suffix Uso de guion (-) en el nombre del dominio Categórico -1: Tiene guion, 1: No tiene N/A No
having_Sub_Domain Número de subdominios (puntos en la URL) Categórico -1: Multi-subdominios, 0: Subdominio raro, 1: Normal N/A No
SSLfinal_State Estado del certificado SSL/TLS Categórico -1: No HTTPS/Cert malo, 0: Dudoso, 1: Válido N/A No
Domain_registeration_length Duración del registro del dominio Categórico -1: ≤1 año, 1: >1 año N/A No
Favicon Carga del favicon desde el mismo dominio Categórico -1: Externo, 1: Mismo dominio N/A No
port Estado de puertos no estándar Categórico -1: Puertos abiertos no std, 1: Puertos std N/A No
HTTPS_token Token "https" en el nombre del dominio Categórico -1: Tiene token, 1: No tiene N/A No
Request_URL Porcentaje de objetos externos en la página Categórico -1: >61% externos, 0: 22-61%, 1: <22% N/A No
URL_of_Anchor Porcentaje de enlaces a dominios externos/nulos Categórico -1: >67%, 0: 31-67%, 1: <31% N/A No
Links_in_tags Porcentaje de enlaces en tags externos Categórico -1: >81%, 0: 17-81%, 1: <17% N/A No
SFH Server Form Handler (destino del formulario) Categórico -1: Vacío/Blank, 0: Otro dominio, 1: Mismo dominio N/A No
Submitting_to_email Envío de datos mediante función de email Categórico -1: Usa mailto, 1: No usa N/A No
Abnormal_URL Consistencia del host name con la URL Categórico -1: Inconsistente, 1: Consistente N/A No
Redirect Número de redirecciones de la página Categórico -1: ≥4, 0: 2-3, 1: ≤1 N/A No
on_mouseover Cambio de barra de estado con mouseover Categórico -1: Cambia barra, 1: No cambia N/A No
RightClick Deshabilitación del clic derecho Categórico -1: Deshabilitado, 1: Habilitado N/A No
popUpWidnow Ventanas emergentes que piden datos Categórico -1: Pide datos, 1: No pide N/A No
Iframe Uso de iframe invisible Categórico -1: Usa iframe invisible, 1: No usa N/A No
age_of_domain Edad del dominio (WHOIS) Categórico -1: <6 meses, 1: ≥6 meses N/A No
DNSRecord Existencia de registro DNS válido Categórico -1: No encontrado, 1: Encontrado N/A No
web_traffic Popularidad según ranking Alexa Categórico -1: Sin ranking, 0: >100k, 1: <100k N/A No
Page_Rank PageRank de la página (importancia) Categórico -1: <0.2, 1: ≥0.2 N/A No
Google_Index Indexación en Google Categórico -1: No indexada, 1: Indexada N/A No
Links_pointing_to_page Número de backlinks (enlaces externos) Categórico -1: 0 enlaces, 0: 1-2, 1: >2 N/A No
Statistical_report Presencia en listas negras de phishing Categórico -1: En lista negra, 1: Limpio N/A No
Is_Phishing Clasificación de Phishing (objetivo) Binario 0: Legítimo, 1: Phishing N/A
31 Variables totales
0 Numéricas
30 Categóricas
1 Binarias
Objetivo: Phishing (Is_Phishing)
Datos ausentes: 0%

📈 Distribución de la variable objetivo en el conjunto original

📖 Leyenda de Variables Categóricas

Esta sección detalla los códigos y significados de las variables categóricas y binarias presentes en el conjunto de datos de Detección de Phishing. Comprender estas codificaciones es fundamental para la correcta interpretación de los resultados de seguridad web.

🔗 Variables de la Barra de Direcciones 12 Categóricas
-1 having_IP_Address: Usa IP
1 having_IP_Address: No usa IP
-1 URL_Length: ≥75 caracteres
0 URL_Length: 54-75 caracteres
1 URL_Length: <54 caracteres
-1 Shortining_Service: Usa acortador
1 Shortining_Service: No usa acortador
-1 having_At_Symbol: Tiene @
1 having_At_Symbol: No tiene @
-1 double_slash_redirecting: // después de pos 7
1 double_slash_redirecting: Normal
-1 Prefix_Suffix: Dominio con guion (-)
1 Prefix_Suffix: Sin guion
-1 having_Sub_Domain: Multi-subdominios
0 having_Sub_Domain: Subdominio raro
1 having_Sub_Domain: Normal
-1 SSLfinal_State: No HTTPS/Cert malo
0 SSLfinal_State: Dudoso
1 SSLfinal_State: Válido y confiable
-1 Domain_registeration_length: ≤1 año
1 Domain_registeration_length: >1 año
-1 Favicon: Carga desde externo
1 Favicon: Carga desde mismo dominio
-1 port: Puertos no std abiertos
1 port: Solo puertos std (80,443)
-1 HTTPS_token: "https" en dominio
1 HTTPS_token: No tiene token
⚠️

Interpretación: En general, -1 indica comportamiento sospechoso de phishing, 0 es ambiguo, 1 es legítimo.

📄 Variables de Anomalías en Código Fuente 6 Categóricas
-1 Request_URL: >61% externos
0 Request_URL: 22-61% externos
1 Request_URL: <22% externos
-1 URL_of_Anchor: >67% enlaces ext/nulos
0 URL_of_Anchor: 31-67% enlaces ext/nulos
1 URL_of_Anchor: <31% enlaces ext/nulos
-1 Links_in_tags: >81% tags externos
0 Links_in_tags: 17-81% tags externos
1 Links_in_tags: <17% tags externos
-1 SFH: Vacío o about:blank
0 SFH: Apunta a dominio diferente
1 SFH: Apunta al mismo dominio
-1 Submitting_to_email: Usa mailto
1 Submitting_to_email: No usa
-1 Abnormal_URL: Host no en URL
1 Abnormal_URL: Consistente
🚨

Regla clave: Altos porcentajes de elementos externos (Request_URL, URL_of_Anchor, Links_in_tags) son señales de phishing.

🖥️ Variables JavaScript y HTML 5 Categóricas
-1 Redirect: ≥4 redirecciones
0 Redirect: 2-3 redirecciones
1 Redirect: ≤1 redirección
-1 on_mouseover: Cambia barra de estado
1 on_mouseover: No cambia
-1 RightClick: Clic derecho deshabilitado
1 RightClick: Clic derecho habilitado
-1 popUpWidnow: Pop-up pide datos
1 popUpWidnow: No pide datos
-1 Iframe: Usa iframe invisible
1 Iframe: No usa iframe invisible
💡

Patrón de phishing: Múltiples redirecciones, pop-ups solicitando datos y iframes invisibles son tácticas comunes.

🌐 Variables de Dominio y Reputación 7 Categóricas
-1 age_of_domain: <6 meses
1 age_of_domain: ≥6 meses
-1 DNSRecord: No encontrado
1 DNSRecord: Encontrado
-1 web_traffic: Sin ranking
0 web_traffic: Ranking >100k
1 web_traffic: Ranking <100k
-1 Page_Rank: <0.2
1 Page_Rank: ≥0.2
-1 Google_Index: No indexada
1 Google_Index: Indexada
-1 Links_pointing_to_page: 0 backlinks
0 Links_pointing_to_page: 1-2 backlinks
1 Links_pointing_to_page: >2 backlinks
-1 Statistical_report: En lista negra
1 Statistical_report: Limpio
📊

Interpretación: Dominios nuevos, sin DNS, sin ranking, sin PageRank y en listas negras son altamente sospechosos.

Is_Phishing 🎯 Objetivo
Código Significado
0 Legítimo - Sitio web seguro y confiable
1 Phishing - Sitio fraudulento (clase positiva)
🎯

Variable Objetivo: Detecta sitios de phishing basado en 30 características heurísticas. La clase positiva (1) representa fraude.

⚠️

Nota: La codificación original (-1 para phishing, 1 para legítimo) fue invertida para cumplir estándares de clasificación.

📊
Variables categóricas: 30
  • 12 Barra de Direcciones
  • 6 Anomalías en Código Fuente
  • 5 JavaScript y HTML
  • 7 Dominio y Reputación
🎯
Variables binarias: 1
  • 🎯 Is_Phishing (Objetivo - Phishing)
⚠️
Recomendaciones de Seguridad:
  • Señales de alerta clave: having_IP_Address (-1), Shortining_Service (-1), having_At_Symbol (-1), SSLfinal_State (-1)
  • URL sospechosa: URL_Length ≥75, Prefix_Suffix con guiones, having_Sub_Domain múltiple
  • Código fuente: Request_URL >61% externos, SFH vacío, Submitting_to_email (-1)
  • Dominio: age_of_domain <6 meses, DNSRecord no encontrado, web_traffic sin ranking
  • Reputación: Statistical_report (-1) es una señal muy fuerte de phishing
  • Escala común: -1 = Phishing/Sospechoso, 0 = Ambiguo, 1 = Legítimo

🔬 Metodología de Generación (Reproducibilidad Científica)

📐 Método Principal

SMOTE RSB* Adaptado

Versión: 2.0

DOI: 10.1007/s42979-026-04896-8

📏 Reglas de restricción

  • DNSRecord == -1 → web_traffic = -1 (Sin DNS → sin tráfico)
  • DNSRecord == -1 → Google_Index = -1 (Sin DNS → sin indexación)
  • Page_Rank == 1 → Google_Index = 1 (PageRank alto → indexado)
  • web_traffic == 1 → Links_pointing_to_page ≠ -1 (Tráfico alto → enlaces)
  • Shortining_Service == -1 → URL_Length = 1 (Acortador → URL corta)
  • Shortining_Service == -1 → Abnormal_URL = -1 (Acortador → URL anómala)
  • HTTPS_token == -1 → SSLf_S ≠ 1 (Sin HTTPS → SSL inválido)
  • SSLf_S == 1 → port = 1 (SSL válido → puerto 443)
  • SSLf_S == 1 → age_of_domain ≠ -1 (SSL válido → dominio maduro)
  • Sub_to_e == -1 → SFH ≠ 1 (mailto: → SFH no legítimo)
  • RightClick == -1 → Iframe = -1 (Desactivar clic → iframe oculto)
  • Is_Phishing == 0 → h_IP_A = 1 (Legítimo → no IP como dominio)
  • Is_Phishing == 0 → RightClick = 1 (Legítimo → clic derecho activo)
  • Is_Phishing == 0 → popUpWidnow = 1 (Legítimo → sin popups)
  • Is_Phishing == 0 → SFH = 1 (Legítimo → SFH válido)
  • Is_Phishing == 0 → on_mouseover = 1 (Legítimo → barra de estado real)
  • Is_Phishing == 0 → URL_of_Anchor ≠ -1 (Legítimo → enlaces al dominio)
  • Favicon == -1 → Request_URL ≠ 1 (Favicon externo → requests externos)
  • URL_of_Anchor == -1 → SFH ≠ 1 (Enlaces externos → SFH no legítimo)
  • Statistical_report == -1 → Is_Phishing = 1 (Lista negra → phishing)
  • Is_Phishing == 1 → (SSLf_S = -1) OR (Abnormal_URL = -1) OR (h_IP_A = -1) OR (SFH = -1)
  • Is_Phishing == 0 → (SSLf_S = 1) OR (URL_of_Anchor = 1) OR (web_traffic = 1)
  • having_Sub_Domain == -1 → URL_Length ≠ 1 (Subdominios → URL no corta)
  • Prefix_Suffix == -1 → age_of_domain ≠ 1 (Guion en dominio → dominio joven)
  • double_slash_redirecting == -1 → Abnormal_URL = -1 (Redirección → URL anómala)

⚙️ Hiperparámetros SMOTE RSB* Adaptado

Valor escala0.03
Probabilidad Base0.1

🔄 Hiperparámetros CTGAN

epochs500
batch_size50
generator_lr0.0002
discriminator_lr0.0002
pac10
generator_dim(256, 256)
discriminator_dim(256, 256)
embedding_dim128
l2scale1e-05

📊 Hiperparámetros TVAE

epochs 500
batch_size 50
embedding_dim 128
compress_dims (128, 128)
decompress_dims (128, 128)
l2scale 1e-5
loss_factor 2

🔐 Reproducibilidad

Random Seed42
Python3.12.12

Librerías utilizadas:

  • pandas: 2.3.3
  • numpy: 2.4.4
  • scikit-learn: 1.7.2
  • imbalanced-learn: 0.14.0
  • ctgan: 0.11.1
  • torch: 2.9.0
  • sdv: 1.28.0
  • scipy: 1.16.3
  • matplotlib: 3.10.9
📝

Para reproducir exactamente este conjunto de datos, ejecute el script de generación con la semilla aleatoria 42. Los resultados pueden variar ligeramente según la versión de las librerías.

📊 Conjuntos de Datos Derivados

El conjunto original ha sido sometido a un proceso de balanceo de clases y generación sintética para mejorar la representación de clases minoritarias. Nota: se ha empleado un conjunto de validación para evaluar el índice de fidelidad. Se han generado tres familias de conjuntos:

  • 📊 Balanceados: Conjuntos creados mediante técnicas de sobremuestreo
  • 🔮 Sintéticos Puros: Conjuntos generados completamente con modelos generativos
  • ✨ Aumentados: Combinación del conjunto original + datos sintéticos

El mejor conjunto de cada etapa fue seleccionado mediante el índice TabDSFidelity.

📊 Conjuntos Balanceados 8 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
Random Oversampling - - - - - - - - - - - - - -
Smote - - - - - - - - - - - - - -
Borderline SMOTE - - - - - - - - - - - - - -
ADASYN - - - - - - - - - - - - - -
SMOTE RSB* Adaptado - - - - - - - - - - - - - -
SMOTE RSB* Adaptado + Reglas - - - - - - - - - - - - - -
OOF PSO para Balanceo - - - - - - - - - - - - - -
OOF PSO para Balanceo + Reglas - - - - - - - - - - - - - -
Mejor seleccionado: Sin datos disponibles (TabDSFidelity: -, AUC: -, F1: -, MIA: -). Nota: Ratio <= 1.5 = Conjunto Balanceado.

🔮 Conjuntos Sintéticos Puros 10 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
SMOTE RSB* + Ruido Gaussiano 1.227 3000 0.480 0.483 0.560 1.782 - - 0.211 0.874 47.024 0.313 0 0.550
SMOTE RSB* + Ruido Gaussiano + Reglas 2.727 3000 0.795 0.425 0.505 2.235 - - 0.294 0.860 126.754 0.306 0 0.488
CTGAN 1.062 9370 0.913 0.865 0.865 7.491 - - 0.036 0.937 439.530 0.139 0 0.481 🏆
CTGAN + Reglas del Dominio 1.190 9370 0.760 0.391 0.485 2.880 - - 0.063 0.892 522.199 0.153 2 0.446
TVAE 1.186 2542 0.927 0.804 0.805 6.819 - - 0.069 0.919 270.011 0.102 0 0.473
TVAE + Reglas del Dominio 1.440 2542 0.843 0.430 0.520 3.371 - - 0.092 0.876 351.974 0.130 32 0.459
OOF PSO para Aumento 1 10000 0.962 0.900 0.900 6.370 - - 0.194 0.682 83.425 0.099 41 0.456
OOF PSO para Aumento + Reglas 7.658 10000 0.913 0.757 0.760 4.740 - - 0.274 0.695 166.527 0.165 7 0.433
SMOTE RSB* Refinado 1 3000 0.513 0.532 0.555 2.081 - - 0.212 0.873 45.031 0.315 0 0.582
SMOTE RSB* Refinado + Reglas 2.802 3000 0.787 0.397 0.485 1.996 - - 0.294 0.861 125.728 0.308 0 0.490
Mejor seleccionado: CTGAN (TabDSFidelity: 7.491, AUC: 0.913, F1: 0.865, MIA: 0.481). Nota: Ratio <= 1.5 = Conjunto Balanceado.

✨ Conjuntos Aumentados 10 conjuntos

Algoritmo Ratio N° Ejemplos AUC-ROC F1 Accuracy TabDSFidelity Jensen-Shannon Kolmogorov-Smirnov Kullback-Leibler Correlación Tiempo Total (s) Dist. Promedio Copias Exactas Ataque MIA Mejor
SMOTE RSB* + Ruido Gaussiano 1.235 4000 1.000 0.995 0.995 7.215 - - 0.127 0.895 88.360 0.236 496 0.445
SMOTE RSB* + Ruido Gaussiano + Reglas 1.937 4000 1.000 0.995 0.995 6.930 - - 0.162 0.870 166.735 0.230 496 0.425
CTGAN 1.079 10370 1.000 0.995 0.995 7.975 - - 0.029 0.943 481.431 0.123 205 0.460 🏆
CTGAN + Reglas del Dominio 1.144 10370 1.000 0.995 0.995 5.679 - - 0.051 0.902 564.484 0.134 212 0.424
TVAE 1.059 3542 1.000 0.990 0.990 3.002 - - 0.025 0.942 312.185 0.073 567 0.439
TVAE + Reglas del Dominio 1.215 3542 1.000 0.990 0.990 1.786 - - 0.036 0.907 391.694 0.093 588 0.421
OOF PSO para Aumento 1.021 11000 1.000 0.995 0.995 6.259 - - 0.155 0.710 125.085 0.089 231 0.440
OOF PSO para Aumento + Reglas 5.425 11000 1.000 0.995 0.995 6.055 - - 0.215 0.723 208.670 0.148 190 0.422
SMOTE RSB* Refinado 1.059 4000 1.000 0.995 0.995 7.210 - - 0.128 0.895 86.317 0.237 496 0.431
SMOTE RSB* Refinado + Reglas 1.972 4000 1.000 0.995 0.995 5.942 - - 0.162 0.872 165.317 0.232 496 0.423
Mejor seleccionado: CTGAN (TabDSFidelity: 7.975, AUC: 1.000, F1: 0.995, MIA: 0.460). Nota: Ratio <= 1.5 = Conjunto Balanceado.

📈 Diagrama del Proceso de Generación

Conjunto Original
CD_36
Balanceo
(8 métodos)
↓ Selección por TabDSFidelity
⭐ Mejor Balanceado
----
Generación Sintética
(10 métodos)
↓ Evaluación TabDSFidelity
⭐ Mejor Sintético
CTGAN
⭐ Mejor Aumentado
CTGAN
Conjunto Sintético Final
Seleccionado por calidad

📊 Guía de Métricas de Evaluación

Para interpretar correctamente los resultados de los conjuntos de datos generados, es fundamental comprender qué mide cada métrica y cómo se relacionan entre sí. A continuación, se detalla cada una de las métricas utilizadas en la evaluación:

🎯 Métricas de Rendimiento Predictivo

AUC-ROC (0.5 - 1.0)

¿Qué mide? Capacidad del modelo para distinguir entre clases (Ej: mortalidad vs supervivencia).

Interpretación:

  • 0.5: Sin capacidad predictiva (aleatorio)
  • 0.7-0.8: Aceptable
  • 0.8-0.9: Excelente
  • >0.9: Sobresaliente

Ejemplo: AUC-ROC = 0.82 significa que hay un 82% de probabilidad de que el modelo clasifique correctamente un paciente fallecido frente a uno superviviente.

F1-Score (0 - 1.0)

¿Qué mide? Media armónica entre precisión y sensibilidad (recall).

Interpretación:

  • 0.7-0.8: Buen equilibrio entre precisión y sensibilidad
  • 0.8-0.9: Muy buen equilibrio
  • >0.9: Excelente equilibrio

Ejemplo: F1 = 0.76 indica que el modelo mantiene un buen balance entre identificar correctamente a los pacientes que fallecen (sensibilidad) y no etiquetar erróneamente a los que sobreviven (precisión).

Accuracy (0 - 1.0)

¿Qué mide? Proporción de predicciones correctas sobre el total.

Interpretación:

  • 0.7-0.8: Buen rendimiento general
  • 0.8-0.9: Muy buen rendimiento
  • >0.9: Excelente rendimiento

Ejemplo: Accuracy = 0.75 significa que el 75% de las predicciones del modelo son correctas.

⚠️ Nota: En conjuntos desbalanceados, esta métrica puede ser engañosa. Es mejor usar F1-Score o AUC-ROC.

🔬 Índice de Fidelidad del Conjunto

TabDSFidelity (0 - 10+)

¿Qué mide? Calidad global del conjunto sintético comparado con el original.

Interpretación:

  • < 3.0: Baja fidelidad (poca similitud con el original)
  • 3.0 - 6.0: Fidelidad moderada
  • 6.0 - 8.0: Alta fidelidad
  • > 8.0: Muy alta fidelidad (excelente representación)

Ejemplo: TabDSFidelity = 8.08 indica que el conjunto sintético mantiene una alta similitud con el original, preservando las relaciones y distribuciones de los datos reales, además de maximizar su eficacia predictiva.

💡 Importante: Este es el índice para seleccionar el mejor conjunto de datos sintéticos. Para este caso, el peso empleado para las métricas "AUC-ROC", "F1-Score" y "Accuracy" fue (2) y para el resto de las métricas fue (1).

📊 Métricas de Similitud de Distribuciones

Jensen-Shannon (Promedio) (0 - 1.0)

¿Qué mide? Similitud entre las distribuciones de variables numéricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.1 - 0.3: Diferencias moderadas
  • > 0.3: Diferencias significativas

Ejemplo: JS = 0.118 indica que las distribuciones de las variables numéricas (edad, presión arterial, etc.) son bastante similares a las del conjunto original.

📌 Nota: Es el promedio de la divergencia de Jensen-Shannon calculada para todas las variables numéricas.

Kolmogorov-Smirnov (p-valor promedio) (0 - 1.0)

¿Qué mide? Probabilidad estadística de que las muestras numéricas del conjunto sintético provengan de la misma distribución continua que el original.

Interpretación:

  • Cerca de 1.0: Altísima probabilidad de que sean la misma distribución (ideal)
  • > 0.05: Similitud aceptable (no se rechaza que sean iguales)
  • < 0.05: Diferencias estadísticamente significativas

Ejemplo: KS p-valor = 0.753 indica que hay evidencia fuerte a favor de que las distribuciones acumulativas de la variable sintética y la original son equivalentes.

📌 Nota: Se reporta el promedio de los p-valores obtenidos mediante la prueba de Kolmogorov-Smirnov de dos muestras para las variables numéricas.

Kullback-Leibler (Promedio) (0 - ∞)

¿Qué mide? Divergencia entre las distribuciones de variables categóricas del conjunto sintético y el original.

Interpretación:

  • Cerca de 0: Distribuciones muy similares (ideal)
  • 0.01 - 0.1: Diferencias pequeñas
  • > 0.1: Diferencias notables

Ejemplo: KL = 0.014 indica que la distribución de las variables categóricas (género, mortalidad) es muy similar a la del conjunto original.

📌 Nota: Es el promedio de la divergencia de Kullback-Leibler para todas las variables categóricas. A diferencia de JS y KS, esta métrica se aplica solo a variables categóricas.

📊 Métricas de Estructura

Similitud de Correlación (0 - 1.0)

¿Qué mide? Preservación de las relaciones entre variables del conjunto original.

Interpretación:

  • Cerca de 1.0: Las relaciones entre variables se mantienen casi idénticas
  • > 0.9: Excelente preservación de relaciones
  • 0.7 - 0.9: Buena preservación
  • < 0.7: Pérdida significativa de relaciones

Ejemplo: Correlación = 0.976 significa que las relaciones entre variables (ej. edad y mortalidad) se mantienen en un 97.6% respecto al conjunto original.

⏱️ Métricas de Rendimiento Temporal

Tiempo Total (s) (segundos)

¿Qué mide? Tiempo total de ejecución del proceso de generación del conjunto.

Interpretación:

  • < 100s: Generación rápida
  • 100-300s: Tiempo moderado
  • > 300s: Proceso lento (puede ser aceptable para conjuntos grandes)

Ejemplo: Tiempo total = 69.45s significa que el proceso completo de generación del conjunto balanceado tomó aproximadamente 1.16 minutos.

⏱️ Nota: Incluye el tiempo de generación sintética + cálculo de métricas.

🔒 Métricas de Privacidad

Estas métricas evalúan el riesgo de exposición de información sensible y la capacidad de un atacante para inferir datos de los pacientes a partir del conjunto de datos sintéticos.

Distancia al Registro Más Cercano (≥ 0)

¿Qué mide? La distancia promedio entre cada registro sintético y su registro más cercano en el conjunto de datos original.

Interpretación:

  • Cerca de 0: Los datos sintéticos son muy similares a los originales → ⚠️ ALTO RIESGO de privacidad
  • 0.01 - 0.05: Similaridad moderada → Riesgo moderado
  • > 0.05: Buena separación de los datos originales → ✅ BAJO RIESGO de privacidad

Ejemplo: Distancia promedio = 0.015 en SMOTE indica que los registros sintéticos están relativamente cerca de los originales, lo que podría implicar un riesgo de privacidad moderado.

🔬

Metodología: Calculada utilizando la Distancia de Gower, la cual maneja internamente tipos de datos mixtos, normalizando las variables numéricas y penalizando diferencias categóricas para devolver un índice estandarizado entre 0 y 1.

💡

Recomendación: Valores < 0.01 deben ser evaluados con precaución. Idealmente, buscar valores > 0.02 para garantizar la privacidad.

Copias Exactas (≥ 0)

¿Qué mide? Número de registros sintéticos que son copias idénticas de registros en el conjunto de datos original.

Interpretación:

  • 0: Ninguna copia exacta → ✅ SEGURO
  • 1 - 10: Pocas copias → Riesgo bajo
  • 11 - 50: Copias moderadas → ⚠️ RIESGO MODERADO
  • > 50: Muchas copias → 🔴 ALTO RIESGO de reidentificación

Ejemplo: SMOTE RSB* Refinado genera 76 copias exactas de 8817 registros (0.86%), lo que representa un riesgo de privacidad que debe ser evaluado.

⚠️

Importante: La presencia de copias exactas es uno de los indicadores más críticos de fuga de datos. Idealmente, este valor debe ser 0.

Ataque de Inferencia de Membresía (MIA) (0 - 1.0)

¿Qué mide? Tasa de éxito (medida en AUC-ROC) de un atacante para determinar si un registro específico pertenece al conjunto de datos original.

Interpretación:

  • 0.5: Aleatorio (ideal) → ✅ PRIVACIDAD ÓPTIMA
  • 0.5 - 0.55: Riesgo bajo
  • 0.55 - 0.6: Riesgo moderado → ⚠️ PRIVACIDAD CUESTIONABLE
  • > 0.6: Riesgo alto → 🔴 PRIVACIDAD COMPROMETIDA

Ejemplo: MIA = 0.553 significa que el atacante tiene un éxito ligeramente superior al 50% aleatorio, lo que indica un riesgo de privacidad bajo/moderado.

🎯

Objetivo: Buscar valores lo más cercanos a 0.5. Valores > 0.6 indican que el conjunto sintético no protege adecuadamente la privacidad.

📝 Resumen Rápido para Selección

🏆
Para seleccionar el mejor conjunto:
  • Priorizar TabDSFidelity más alto
  • Buscar AUC-ROC y F1 altos
  • Valores de divergencia JS y KL cercanos a 0
  • P-valor de KS lo más cercano a 1.0 posible (>0.05)
  • Correlación > 0.9
⚖️
Balance entre calidad y tiempo:
  • Un TabDSFidelity > 8.0 indica excelente calidad
  • Tiempos de generación < 200s son aceptables
  • La Correlación > 0.95 asegura buena preservación de relaciones
🔒
Para garantizar la privacidad:
  • MIA lo más cercano a 0.5 (ideal)
  • Copias exactas = 0 (ideal) o lo más bajo posible
  • Distancia promedio > 0.02 para buena separación
  • Evaluar balance entre calidad (TabDSFidelity) y privacidad (MIA)

📥 Descargar conjuntos y código Python

Formatos incluidos: CSV.

📚 Cómo citar este conjunto

Díaz Bastida, M., Pérez Vázquez, R. A., & Bello Pérez, R. (2026). High-Fidelity Synthetic Dataset for Phishing Websites Detection (Version 0). figshare. https://doi.org/10.6084/m9.figshare.32945891