Nob ~/notas/decir-no-se

~/notas

Decir «no sé» también es un resultado

Dos proyectos que prefieren admitir la duda antes que adivinar: celltrace con su nivel de confianza y AccessScope con reglas que votan

publicada 1 oct 20263 min de lecturaNob

resumen

pregunta
¿Qué debe hacer una herramienta cuando los datos no alcanzan para una respuesta clara?
método
Dos casos: celltrace (qué torre atiende a un celular, sin GPS) y AccessScope (qué responde un servidor de Minecraft). En los dos, el resultado incluye su propia incertidumbre
resultado
celltrace da confianza baja, media o alta; AccessScope devuelve «ambiguo» si sus reglas no coinciden, y no presenta un problema de cuenta como baneo
límites
No hay una medición de cuánto mejora la precisión al abstenerse; es una decisión de diseño, apoyada en una idea conocida (Chow, 1970)

Hay herramientas que siempre te dan una respuesta, aunque no la tengan. En dos de mis proyectos tomé la decisión contraria: si los datos no alcanzan, el resultado lo dice

Qué sabe un celular de la red

Un celular conectado sabe más de lo que muestra: el país y el operador (MCC y MNC), el área (LAC en 3G, TAC en LTE y 5G), la celda que lo atiende (Cell ID) y la calidad de la señal. En LTE, la potencia de la señal de referencia se mide como RSRP, y su calidad como RSRQ (las dos están definidas en la especificación 3GPP TS 36.214); RSSNR es la relación señal/ruido. CellTraceLogger anota todo eso, en 5G NR, LTE y 3G

cómo funciona
observación (una línea NDJSON)
 │ MCC · MNC · TAC · Cell ID · RSRP · RSRQ · RSSNR
 ▼
celtrace ◄── OpenCellID: Cell ID → posición aproximada
 │ ¿una celda domina en el tiempo? ¿la señal es estable?
 ▼
torre más probable · confianza

Ojo con lo que identifica un Cell ID: la celda, que suele ser un sector de una antena, no un punto exacto. Y la posición de una celda en OpenCellID viene de mediciones colaborativas, así que también es aproximada. Por eso celltrace infiere infraestructura (qué torre o qué sector), no la ubicación de una persona

celltrace: confianza baja, media o alta

Cada inferencia trae un nivel de confianza según qué tan estable fue la señal y si una celda domina en el tiempo. Si hay celdas que se solapan o la red está inestable, lo dice en vez de elegir una. En la página del proyecto hay una simulación: cuando el celular queda entre dos torres, las observaciones se reparten y la confianza baja

AccessScope: reglas que votan

AccessScope entra a un servidor de Minecraft como lo haría un jugador (con Mineflayer) y clasifica lo que el servidor le responde: el mensaje de expulsión, el MOTD, la versión. La clasificación usa reglas escritas a mano, y las reglas votan. Si dos apuntan a cosas distintas, el resultado es «ambiguo» y no se elige ninguna:

terminal
mensaje: "This server is whitelisted. Banned players cannot join."

  whitelist  ✓  → lista blanca
  ban        ✓  → baneo
  ─────────────────────────────
  resultado     → ambiguo

Tampoco se estira lo que dice la evidencia: un problema de cuenta no se presenta como baneo, porque no es evidencia de eso

La idea de fondo: abstenerse

Esto tiene nombre en reconocimiento de patrones: un clasificador con opción de rechazo. C. K. Chow lo formalizó en 1970: si un sistema puede negarse a decidir en los casos dudosos, comete menos errores en los que sí decide, a cambio de responder menos veces. Es un intercambio entre precisión y cobertura

cómo funciona
responder siempre      → cobertura alta, más errores dichos con seguridad
abstenerse si hay duda → cobertura menor, menos errores en lo que se responde
                         y los casos dudosos quedan a la vista

Las dos herramientas eligen el segundo lado. Y en AccessScope la regla de agregación es conservadora a propósito: no gana la mayoría, hace falta que no haya contradicción

ideaUn resultado equivocado dicho con seguridad hace más daño que un «no sé». Si la herramienta admite la duda, quien la usa sabe cuándo puede confiar y cuándo tiene que mirar más de cerca

Límites

  • Las reglas de AccessScope solo cubren los mensajes que ya vi; uno nuevo queda sin clasificar hasta que se escriba su regla. Así pasó con un mensaje de baneo en español que al principio no reconocía
  • La calidad de celltrace depende de cuántas celdas de la zona estén en OpenCellID; donde hay pocos datos, la confianza baja aunque la señal sea buena
  • No medí cuánto sube la precisión al abstenerse: el argumento es de diseño, no un resultado experimental

Preguntas frecuentes

¿Se puede saber qué torre celular te da servicio sin GPS?

Sí, de forma aproximada. El celular conoce el Cell ID de la celda que lo atiende y la calidad de la señal; cruzando ese Cell ID con una base abierta como OpenCellID se obtiene una posición aproximada de la torre o del sector

¿Ubicar una torre es lo mismo que ubicar a una persona?

No. Un Cell ID identifica una celda, que puede cubrir un área grande. celltrace infiere infraestructura, no la ubicación exacta de nadie

¿Qué son RSRP y RSRQ?

Dos medidas de LTE definidas por 3GPP: RSRP es la potencia de la señal de referencia que llega al celular y RSRQ es su calidad, teniendo en cuenta la interferencia

¿Cómo saber si un servidor de Minecraft te tiene baneado o en lista blanca?

Por el mensaje que el servidor manda al expulsarte. AccessScope lo lee, lo clasifica con reglas, y si las reglas no coinciden responde «ambiguo» en vez de adivinar

¿Por qué una herramienta debería poder decir «no sé»?

Porque abstenerse en los casos dudosos reduce los errores en los que sí responde. Es la idea del clasificador con opción de rechazo (Chow, 1970)

Referencias

  1. C. K. Chow · On optimum recognition error and reject tradeoff · IEEE Transactions on Information Theory, 1970
  2. 3GPP TS 36.214 · E-UTRA Physical layer measurements (RSRP and RSRQ definitions)
  3. OpenCellID · open database of cell towers · opencellid.org
  4. Mineflayer · Minecraft client for Node.js · github.com/PrismarineJS/mineflayer
  5. Nuulz/celltrace · the Python library · github.com/Nuulz/celltrace

¿Algo para corregir o agregar? Escríbeme →