# Neteja de dades

La neteja de dades (en anglès data cleaning o data scrubbing) és l'acció de descobriment, de correcció o d'eliminació de registres de dades errònies d'una taula o d'una base de dades. Aquest procés de neteja permet identificar dades incompletes, incorrectes, inexactes, no pertinents, etc. i després substituir, modificar o eliminar completament aquestes dades brutes. Després d'aquesta neteja, la base de dades podrà ser compatible amb altres bases de dades similars d'un sistema.
Aquest procés és una part crucial de l'anàlisi de dades, especialment quan es recopilen dades quantitatives.
Les inconsistències descobertes, modificades o eliminades en un conjunt de dades poden ser causades per definicions de diccionari diferents d'entitats similars, els errors d'entrada de l'usuari o la corrupció en el moment de la transmissió o l'emmagatzematge.
La neteja de dades es diferencia de la validació de dades en el fet que, gairebé sempre, compleix la funció de rebutjar els registres erronis durant l'entrada al sistema, i no en lots de dades. L'objectiu de la neteja de dades és assolir dades de qualitat i organitzades de forma eficient.

## Motivació

Les dades falses o incorrectes poden donar com a resultat conclusions mal informades i inversions. Si un govern vol analitzar dades d'un cens de la població, és important que les dades siguin fiables per evitar prendre decisions fiscals errònies. En àmbits laborals forenses, de comptabilitat i d'investigació de fraus, s'usa la neteja de dades per preparar les dades abans d'enviar-les a un magatzem de dades. Hi ha paquets de programari disponibles per poder "netejar" dades d'adreces, típicament realitzats per una interfície de programació d'aplicacions (API de l'anglès).
Un altre exemple d'ús real de la neteja de dades seria la realització d'una enquesta pública en línia. Els usuaris inseririen els seus noms i adreces electròniques i, abans de treballar amb aquelles dades i treure'n conclusions, caldria netejar les dades per tal d'esborrar camps on, per exemple, les adreces de correu no segueixen el format adient (correu inventat o erroni). També cal fer neteja de dades si algun usuari respon amb noms i cognoms nuls o si s'ha deixat algun camp de l'enquesta sense emplenar.

## Qualitat de les dades

Les dades, per ser de qualitat, han de complir els següents requisits:
* Exactitud: les dades han de ser fidels i ajustades a allò que il·lustren.
* Integritat: les dades han de ser enteres i vàlides, és a dir, no poden contenir anomalies i han de satisfer les restriccions d'integritat en termes de quantitat.
* Consistència: les dades han d'estar corregides si presenten contradiccions o anomalies sintàctiques.
* Uniformitat: relacionada amb irregularitats.
* Densitat: les dades han de conèixer el quocient de valors omesos sobre el nombre de valors totals.
* Unicitat: relacionada amb dades duplicades.

## Procés de neteja de dades

En el procés d'una neteja de dades es realitzen els següents passos:
* Auditoria de dades: les dades són revisades amb mètodes estadístics que detecten anomalies i contradiccions.
* Definició de Workflow (Flux de Treball): la detecció i la neteja d’anomalies són realitzades per una seqüència d’operacions sobre les dades ja conegudes com a workflow. Per aconseguir un flux de treball adient, cal identificar les causes de les anomalies i dels errors. Per exemple, si es troba que una anomalia és el resultat d’errors del maquinari en l’etapa d’entrada de dades, la disposició del teclat pot ajudar en la solució dels possibles problemes.
* Execució de Workflow: en aquesta etapa, el workflow és executat després que la seva especificació es completa i la seva correcció és verificada. La implementació del workflow hauria de ser eficient encara sobre els conjunts grans de dades que inevitablement plantegen una compensació, ja que l'execució de l'operació netejadora pot ser costosa.
* Postprocés i control: les dades no corregides durant l’execució del workflow haurien de ser corregides manualment. El resultat és un nou cicle en el procés de neteja de dades, on les dades són revisades novament perquè s'ajustin a les especificacions d'un workflow addicional, per realitzar-ne un tractament automàtic.

## Mètodes més utilitzats

Els mètodes més utilitzats per fer una neteja de dades són els següents:
* Anàlisi: l'anàlisi en la neteja de dades és realitzada per a la detecció d'errors de sintaxi. Un analitzador gramatical decideix si una corda de dades és acceptable dins de l'especificació de dades permesa. Això és similar a la manera que un analitzador gramatical treballa amb gramàtiques i llengües.
* Transformació de dades: la Transformació de Dades permet traçar un mapa de dades en el format esperat. Això inclou conversions de valors o funcions de traducció i la normalització de valors numèrics d'adaptació a valors mínims i màxims.
* Eliminació de duplicats: la detecció de duplicats requereix un algorisme per determinar si les dades contenen representacions dobles de la mateixa entitat. En general, les dades són ordenades per una dada "clau" o "pivot" que permet la identificació més ràpida.
* Mètode estadístic: inclou analitzar les dades usant mitjanes, desviació estàndard, rangs o algorismes de clúster. Aquesta anàlisi es du a terme per experts que identifiquen errors. Encara que la correcció de dades sigui difícil, ja que no se sap el valor veritable, es pot resoldre posant els valors a una mitjana o a un altre valor estadístic. Els mètodes estadístics també poden ser emprats per manejar els valors que fallen, que poden ser substituïts per un o diversos valors possibles, que en general són obtinguts per algorismes d'augment de dades extenses.

## Eines de neteja de dades

Hi ha moltes eines de neteja de dades, com ara Trifacta, OpenRefine, Paxata i Alteryx entre d'altres. També és comú l'ús de llibreries com Pandas (software) de Python, o Dplyr per R.
Actualment, l’única tecnologia que permet fer una neteja de dades de forma distribuïda amb la robustesa i la tecnologia d'Apache Spark és Optimus.
Optimus és un framework destacat per la neteja, el preprocessament i l'anàlisi exploradora de les dades, d’una manera distribuïda amb Apache Spark. Implementa diverses eines útils pel control i manipulació de dades que faciliten el treball de l'analista de dades. El primer avantatge que té respecte a qualsevol altra biblioteca o framework de neteja de dades pública, és que funciona a computadora portàtil o en un gran clúster i alhora, és de fàcil instal·lació i ús.
Optimus és OpenSource, aquí podrà trobar la documentació i els exemples.

## Reptes i problemes

* Correcció d'errors i pèrdua d'informació: el repte més gran dins de la neteja de dades és la correcció de valors, ja que inclou eliminar duplicats i entrades incorrectes. En molts casos, la informació disponible sobre aquestes anomalies és limitada i insuficient per determinar les transformacions necessàries o correccions, abandonant la qualificació d'aquestes entrades com l'única solució.
* Protecció i teniment de dades netejades: després d'haver realitzat la neteja de dades i assolir una col·lecció de dades sense errors, la neteja només s'hauria de repetir sobre els valors que s'han canviat. Això es fa mantenint un mínim sistema de neteja amb tècniques d'administració de dades eficient.
* Neteja de dades en entorns virtualment integrats: en les fonts pràcticament integrades com a DiscoveryLink de la IBM, la neteja de dades ha de ser realitzada sempre amb accés de dades de diferents fonts, amb una considerable disminució del temps de resposta i major eficàcia.
* Neteja de dades al Framework: en molts casos no serà possible arribar a un mapa complet de neteja de dades que guiï el procés per endavant. Això fa que la neteja de dades sigui un procés iteratiu que implica l'exploració significativa i la interacció que pot requerir un framework, és a dir, un marc que inclogui una col·lecció de mètodes per a la detecció d'errors i l'eliminació a més de la revisió de dades. Aquestes són tasques que es poden afegir a altres etapes i informàtiques com la integració i el manteniment.

## Vegeu també

* Big Data
* Proves de validació
* Validació encreuada
* Empresa basada en dades (Data Driven Company)

## Enllaços externs

* Anàlisi i Disputa de Dades – Conceptes i exemples bàsics a Python
* Eines de neteja de dades
* Neteja de dades
* Magatzems de dades: importància a l'estàndard