| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
¡Esta es una revisión vieja del documento!
Pensadas para publicar datasets sin exponer datos sensibles
Personal Identifiable Information (PII): Datos que se pueden usar para identificar a una pesona.
Se forman grupos de K elementos de forma que las filas comparten k cuasi-identificadores. Se busca un equilibrio entre K y el nivel de aononimidad que se quiere obtener. Para formar los grupos, hay que mirar por que atrbutos podemos realizar las grupacoones. Hay que evitar que se formen pocos grupos o agrupar por atributos sensibles. Hay que identificar bien pseudoidentificadores y datos sensbibles.
Si los datos están demasiado dispersos se pierde demasiada información ya que hay que añadir demasiado ruido. Si los datos están muy juntos tampoco es efectivo.
Imagina que tenemos el siguiente dataset:
| Nombre | Codigo Postal | Edad | Género | Religión | Enfermedad |
|---|---|---|---|---|---|
| John | 15846 | 15 | M | C | Covid |
| Emily | 25105 | 41 | F | C | Gripe |
| Sarah | 15834 | 18 | F | M | Cancer |
| Jeremy | 25504 | 25 | M | C | Gripe |
| Carl | 15894 | 22 | M | C | Infección |
| Laura | 15833 | 31 | F | H | Cancer |
| Michael | 25974 | 58 | M | C | Covid |
| Hank | 25785 | 29 | M | B | Gripe |
| Kim | 15874 | 62 | F | H | Corazón |
En este dataset podemos identificar los siguientes tipos de información:
Al clasificar los atributos podemos saber a cuales les podemos aplicar pseudoanonimización o supresión. En este caso, como es un dataset médico, el atributo sensible religión puede ser suprimido. Por otro lado debemos pseudoanonimizar los nombres, cambiando estos por IDs, obteniendo como resultado el siguiente dataset:
| ID | Codigo Postal | Edad | Género | Religión | Enfermedad |
|---|---|---|---|---|---|
| 1 | 15846 | 15 | M | * | Covid |
| 2 | 25105 | 41 | F | * | Gripe |
| 3 | 15834 | 18 | F | * | Cancer |
| 4 | 25504 | 25 | M | * | Gripe |
| 5 | 15894 | 22 | M | * | Infección |
| 6 | 15833 | 31 | F | * | Cancer |
| 7 | 25974 | 58 | M | * | Covid |
| 8 | 25785 | 29 | M | * | Gripe |
| 9 | 15874 | 62 | F | * | Corazón |
Tras eso, procedemos a aplicar una K-Anonimidad donde K=2, por lo que debemos crear grupos de al menos tamaño 2 a los que aplicaremos generalización:
Finalmente realizamos una agrupación de dos bloques en función al código postal (25xxx y 158xx) y luego realizamos pequeños grupos de elementos por edad. Como resultado obtenemos el siguiente dataset con 2-anonimidad:
| ID | Codigo Postal | Edad | Género | Religión | Enfermedad | Agrupación |
|---|---|---|---|---|---|---|
| 4 | 25xxx | <30 | M | * | Gripe | Grupo 1 |
| 8 | 25xxx | <30 | M | * | Gripe | |
| 7 | 25xxx | >40 | * | * | Covid | Grupo 2 |
| 2 | 25xxx | >40 | * | * | Gripe | |
| 5 | 158xx | <25 | * | * | Infección | Grupo 3 |
| 1 | 158xx | <25 | * | * | Covid | |
| 3 | 158xx | <25 | * | * | Cancer | |
| 7 | 158xx | >30 | F | * | Cancer | Grupo 4 |
| 9 | 158xx | >30 | F | * | Corazón |
Se busca que en cada grupo, el atributo sutituible tenga al menos L valores diferentes. Cada uno de los grupos K-Anonimos debe tener al menos l valores diferentes del atributo sensible para que sea más robusto contra filtraciones de privacidad.
Teniendo en cuenta el ejemplo anterior para k-anonimidad, se cumple la L-Diversidad para L=2 en todos los grupos menos en el de las edades <30, donde podemos observar que los dos valores del campo sensible (gripe) que hay son iguales. Para cumplir con la 2-Diversidad sería necesario realizar cambios como juntar este grupo con otro o proceder a reagrupar.
OJO: Si no tenemos cuidado podemos acabar inutilizando el dataset.
Tomando como base el dataset anterior con 2-Anonimidad:
| ID | Codigo Postal | Edad | Género | Religión | Enfermedad | Agrupación |
|---|---|---|---|---|---|---|
| 4 | 25xxx | <30 | M | * | Gripe | Grupo 1 |
| 8 | 25xxx | <30 | M | * | Gripe | |
| 7 | 25xxx | >40 | * | * | Covid | Grupo 2 |
| 2 | 25xxx | >40 | * | * | Gripe | |
| 5 | 158xx | <25 | * | * | Infección | Grupo 3 |
| 1 | 158xx | <25 | * | * | Covid | |
| 3 | 158xx | <25 | * | * | Cancer | |
| 7 | 158xx | >30 | F | * | Cancer | Grupo 4 |
| 9 | 158xx | >30 | F | * | Corazón |
Queremos aplicar una L-Diversidad donde L=2. Como mencionamos antes, esto se cumple para todos los grupos menos para el grupo 1, donde los valores sensibles son iguales. Para Hacer que este dataset cumpla con la 2-Diversidad vamos a juntar el grupo 1 con el grupo 2:
| ID | Codigo Postal | Edad | Género | Religión | Enfermedad | Agrupación |
|---|---|---|---|---|---|---|
| 4 | 25xxx | <30 | M | * | Gripe | Grupo 1 |
| 8 | 25xxx | <30 | M | * | Gripe | |
| 7 | 25xxx | >40 | * | * | Covid | Grupo 2 |
| 2 | 25xxx | >40 | * | * | Gripe | |
| 5 | 158xx | <25 | * | * | Infección | Grupo 3 |
| 1 | 158xx | <25 | * | * | Covid | |
| 3 | 158xx | <25 | * | * | Cancer | |
| 7 | 158xx | >30 | F | * | Cancer | Grupo 4 |
| 9 | 158xx | >30 | F | * | Corazón |