preprocesamiento de datos
DESCRIPTION
Preprocesamiento de Datos. Francisco Herrera Grupo de Investigación SCI 2 S Dpto. Ciencias de la Computación e I.A. Universidad de Granada. José Riquelme, Roberto Ruiz Grupo de Investigación MLG Dpto. Lenguajes y Sistemas Informáticos Universidad de Sevilla. Reunión Red Nacional DM & ML - PowerPoint PPT PresentationTRANSCRIPT
Preprocesamiento de Datos
Francisco HerreraGrupo de Investigación SCI2SDpto. Ciencias de la Computación e I.A.Universidad de Granada
José Riquelme, Roberto RuizGrupo de Investigación MLGDpto. Lenguajes y Sistemas InformáticosUniversidad de Sevilla
Reunión Red Nacional DM & MLMadrid, 6-7 Mayo, 2004
Preprocesamiento de Datos
Sumario
Introducción
Importancia de la Preparación de Datos
¿Qué incluye la Preparación de Datos?
Reducción de Datos
Selección de Instancias
Selección de Características
Preprocesamiento de Datos
D. Pyle, 1999, pp. 90:
“The fundamental purpose of data preparation is to manipulate and transforrm raw data so that the information content enfolded in the data set can be exposed, or made more easily accesible.”
Introducción
Dorian PyleData Preparation for Data Mining Morgan Kaufmann Publishers, 1999
Preprocesamiento de Datos
Problem Specificati
on
Data Mining
Data Preparation
Data CollectingData cleaningData TransformationData Reduction
Post Data Mining
EvaluationInterpretationExploitationResourcin
g
Introducción
Preprocesamiento de Datos
1. Los datos reales pueden ser impuros, pueden conducir a la extracción de patrones/reglas poco útiles.
Esto se puede deber a:
Datos Incompletos: falta de valores de atributos, …Datos con RuidoDatos inconsistentes (incluyendo discrepancias)
Importancia de la Preparación de Datos
Preprocesamiento de Datos
2. La preparación de datos puede generar un conjunto de datos más pequeño que el original, lo cual puede mejorar la eficiencia del proceso de Minería de Datos.
Esta actuación incluye:
Selección relevante de datos: eliminando registros duplicados, eliminando anomalías, …Reduccion de Datos: Selección de características, muestreo o selección de instancias, discretización.
Importancia de la Preparación de Datos
Preprocesamiento de Datos
3. La preparación de datos genera “datos de calidad”, los cuales pueden conducir a patrones/reglas de calidad.
Por ejemplo, se puede:
Recuperar información incompleta.Eliminar outliersResolver conflictos, …
Importancia de la Preparación de Datos
Preprocesamiento de Datos
“El Preprocesamiento de Datos” / “La Preparación de Datos” engloba a todas aquellas técnicas de análisis de datos que permite mejorar la calidad de un conjunto de datos de modo que las técnicas de extracción de conocimiento/minería de datos puedan obtener mayor y mejor información (mejor porcentaje de clasificación, reglas con más completitud, etc.)
¿Qué incluye la Preparación de Datos?
Bibliografía:S. Zhang, C. Zhang, Q. Yang. Data preparation for data mining.Applied Artificial Intelligence 17:5-6, 375-381, 2003.
Special Issue Data Cleaning and Preprocessing: 13 artículos
Preprocesamiento de Datos
Es difícil dar una lista exacta de tareas o tópicos. Diferentes autores dan diferentes tareas y clasificaciónes.
Se pueden incluir las siguientes tareas o tópicos:
- Data collecting and integration
- Data cleaning
- Data transformation
- Data reduction (Feature Selection, Instance Selection,
Discretization)
¿Qué incluye la Preparación de Datos?
Preprocesamiento de Datos
Data collecting and integration
Obtiene los datos de diferentes fuentes de información
Resuelve problemas de representación y codificación
Integra los datos desde diferentes tablas para crear información homogénea, ...
¿Qué incluye la Preparación de Datos?
Bibliografía:V. Detours, J. E. Dumont, H. Bersini and C. Maenhaut. Integration and cross-validation of high-throughout gene expression data: comparing heterogeneous data sets, FEBS Letters 546:1, 2003, 98-102.
Bibliografíaespecífica paracada aplicación.
Ejemplo en el ámbito de la Bioinformática
Preprocesamiento de Datos
Data cleaning
Resuelve conflictos entre datos
Elimina outliers
Chequea y resuelve problemas de ruido, valores perdidos, …
¿Qué incluye la Preparación de Datos?
Bibliografía:W. Kim, B. Choi, E-K. Hong, S-K. Kim. A Taxonomy of Dirty Data.Data Mining and Knowledge Discovery 7, 81-99, 2003.
Preprocesamiento de Datos
Data transformation
Los datos son transformados o consolidados de forma apropiada para la extracción de información.
Diferentes vías:
Sumarización de datos
Operaciones de agregación, etc.
¿Qué incluye la Preparación de Datos?
Bibliografía:T. Y. Lin. Attribute Transformation for Data Mining I: TheoreticalExplorations. International Journal of Intelligent Systems 17, 213-222, 2002.
Preprocesamiento de Datos
Data reduction
Selecciona datos relevantes para la tarea de la minería de datos/extracción de información.
Diferentes vías para la Reducción de Datos:
Selección de Características
Selección de Instancias
Discretización
¿Qué incluye la Preparación de Datos?
Preprocesamiento de Datos
Reducción de Datos
Selección deCaracterístic
as
Selección de Instancias
Apretujamiento de Instancias
Data Squashing
Discretización
Reducción de Datos
Preprocesamiento de Datos
Reducción de Datos
Selección deCaracterístic
as
Selección de Instancias
Apretujamiento de Instancias
Data Squashing
Discretización
Bibliografía:H. Liu, H. Motoda. Feature Selection for Knowledge Discoveryand Data Mining. Kluwer Academic, 1998.H. Liu, H. Motoda (Eds.) Feature Extraction, Construction, andSelection: A Data Mining Perspective, Kluwer Ac., 1998.
Reducción de Datos
Preprocesamiento de Datos
Reducción de Datos
Selección deCaracterístic
as
Selección de Instancias
Apretujamiento de Instancias
Data Squashing
Discretización
Bibliografía:H. Liu, F. Hussain, C.L. Tan, M. Dash. Discretization: An EnablingTechnique. Data mining and Knowledge Discovery 6, 393-423, 2002.
Reducción de Datos
Preprocesamiento de Datos
Reducción de Datos
Selección deCaracterístic
as
Selección de Instancias
Apretujamiento de Instancias
Data Squashing
Discretización
Bibliografía:A. Owen, Data Squashing by Empirical Likelihood. Data Mining and Knowledge Discovery 7, 101-113, 2003.
Reducción de Datos
Preprocesamiento de Datos
Reducción de Datos
Selección deCaracterístic
as
Selección de Instancias
Apretujamiento de Instancias
Data Squashing
Discretización
Bibliografía:T. Reinartz. A Unifying View on Instance Selection. Data Mining and Knowledge Discovery 6, 191-210, 2002.
Reducción de Datos
Preprocesamiento de Datos
Selección de Instancias
Sampling Boosting Selección de Prototipos ó Aprendizaje basado en Instancias
AprendizajeActivo
Selección de Instancias
Preprocesamiento de Datos
Selección de Prototipos
Selección Basada en Reglas NN
Selección Basada en Eliminación Ordenada
Algoritmos Evolutivos
Sampling
Muestreo Aleatorio
Selección de Instancias
Preprocesamiento de Datos
Estrategia de Selección de Prototipos
Selección de Instancias
Preprocesamiento de Datos
Estrategia de Selección de Conjuntos de Entrenamiento
Selección de Instancias
Data Mining Algorithm
Preprocesamiento de Datos
J.R. Cano, F. Herrera, M. Lozano. Using Evolutionary Algorithms as Instance Selection for Data Reduction in KDD: An Experimental Study. IEEE Trans. on Evolutionary Computation 7:6, 561-575, 2003.
Selección de Instancias
.Medium size data sets
Algunos Resultados
Classification con reduction rate > 70%.
Selección de Prototipos
CHC PBIL CHC
Ib2 Ib3 Ennsr
Drop1 CHC Drop3
Cnn Ennrs Rmhc
Drop3 Cnn Drop2
Rnn Rmhc Cnn
Rmhc Drop2 Drop1
Icf Ib2 Ib3
Drop2 Drop3 Ib2
Ennrs Rnn PBIL
Ib3 Drop1 Icf
%Reducción %Ac. test 1-NN
(%Ac. 1-NN+%Rd.)/2
PBIL Icf Rnn
Preprocesamiento de Datos
Selección de Instancias
Classification con reduction rate > 70%. Selección de Conjuntos de Entrenamiento
CHC PBIL CHC
Ib2 Rmhc Rmhc
Drop1 CHC Ennrs
Cnn Ib3 Drop1
Drop3 Ennrs Drop3
Rnn Drop2 Icf
Rmhc Icf Cnn
Icf Drop1 Ib3
Drop2 Drop3 PBIL
Ennrs Cnn Drop2
Ib3 Rnn Rnn
%Reduction %Ac. test C4.5 (%Ac. C4.5+%Rd.)/2
PBIL Ib2 Ib2
Selección de Instancias
Preprocesamiento de Datos
Preprocesamiento de Datos
Selección de Instancias
El orden de los algoritmos es superior a O(n2) y suele estar en orden O(n3) .
¿Cómo realizar la selección de instancias con grandes bases de datos?
Combinamos una estrategia de estratificación con los algoritmos de selección de instancias.
Estrategia de Estratificación
Data Set
T1 T2 T3 Tt
SS1 SS2 SS3 SSt
TR1 TR2
TR3
TRt
TS1
TS2 TS3
TSt
IS IS IS IS
Preprocesamiento de Datos
Selección de Instancias
Name
Number of
Instances
Number of
Features
Number of
Classes
Adult 30132 14 2
Kdd Cup’99 494022 41 23
Conjuntos de datos:
Selección de Instancias
Preprocesamiento de Datos
ExecutionTime(sec)
Rules Number
% Reduction
C4.5
%Ac. Trn %Ac. Test
C4.5 2 327 88.72% 85.40%
Cnn Strat 1 21 97.34% 52.17% 36.45%
Drop1 Strat 44 1 95.09% 24.92% 26.31%
Drop2 Strat 48 179 70.33% 85.61% 83.09%
Drop3 Strat 41 75 95.57% 82.96% 77.29%
Ib2 Strat 1 12 99.57% 49.42% 36.37%
Ib3 Strat 3 162 76.69% 85.17% 82.73%
Icf Strat 33 138 85.62% 79.99% 82.21%
CHC Strat 20172 4 99.38% 83.78% 82.76%
Adult. Número de estratos: 10
Selección de Instancias
Preprocesamiento de Datos
Kdd Cup’99. Número de estratos: 100
ExecutionTime(sec)
Rules Number
% Reduction
C4.5
%Ac Trn %Ac Test
C4.5 265 252 99.97% 99.94%
Cnn Strat 8 83 81.61% 98.48% 96.43%
Drop1 Strat 111 3 99.97% 38.63% 34.97%
Drop2 Strat 105 82 76.66% 81.40% 76.58%
Drop3 Strat 131 49 56.74% 77.02% 75.38%
Ib2 Strat 7 48 82.01% 95.81% 95.05%
Ib3 Strat 3 74 78.92% 99.13% 96.77%
Icf Strat 242 68 23.62% 99.98% 99.53%
CHC Strat 1960 9 99.68% 98.97% 97.53%
Preprocesamiento de Datos
Selección de Instancias
Preprocesamiento de Datos
ADULT: Algunos datos a destacar: Partición 1
Selección de Instancias
No.Instan-cias - N
No.Varia-bles
No. ReglasNo. Variables/
regla
Confidencia de las Reglas
N(Cond,Clas)/N
Adult 30132 14C4.5
IS-CHC/C4.5
C4.5IS-CHC/
C4.5C4.5 IS-CHC/
C4.5
359 5 14 3 0.003 0.167
La selección de instancias nos permite obtener conjuntos de reglas más interpretables y con aporte de mayor información.Dos líneas de actuación futura: Sistema de Clasificación más preciso: Avanzar en la combinación
de la estratificación y técnicas evolutivas para mejorar la precisión. Subgroup Discovery: La obtención de reglas de calidad que aporten
información.N. Lavrac, B. Kavsek, P. Flach, L. Todorowski. Subgroup Discovery with CN2-SD. Journal of Machine Learning Research 5 (2004) 153-188.
Preprocesamiento de Datos
Selección de Instancias
Recientemente se han publicado diferentes aproximaciones al problema de Selección de Instancias.
J.C. Riquelme, J.S. Aguilar-Ruiz, M. Toro. Finding representative patterns with ordered projections. Pattern Recogition 36 (2003) 1009-1018.
POP: Algoritmo de selección de instancias vía proyección seleccionando regiones para cada clase. Métodos de aprendizaje: k-NN, C4.5.
Preprocesamiento de Datos
Selección de Instancias
S-W. Kim, B.J. Oommen. Enhancing prototype reduction schemes with LVQ3-type algorithms. Pattern Recognition 36 (2003) 1083-1093.
LVQ3: Utilizan LVQ y SVM para la selección de instancias.
S-W. Kim, B.J. Oommen. Enhancing Prototype Reduction Schemes with Recursion: A Method Applicable for “Larga Data Sets”. IEEE Trans. on SMC, 2004.
Combina un método recursivo para la partición de bases de datos con LVQ y SVM.
Preprocesamiento de Datos
Selección de Instancias
S. Papadimitriou, S. Mavroudi, L. Vladutu, A.Bezerianos. Generalized radial basis function neural networks trained with instance based learning for data mining of symbolic data. Applied Intelligence 16 (2002) 223-234.
P.C. Pendaharkar, J.A. Rodger. Technical efficiency-based selection of learning cases to improve forecasting accuracy of neural networks under monotonicity assumption. Decision Support Systems 36 (2003)117-136.
Se utiliza la selección de instancias para el entrenamiento de redes neuronales.
K.W. Lau, Q.H. Wu. Online training of support vector classifier. Pattern Recognition 36 (2003) 1913-1920.
Se utiliza la selección de instancias para SVM.
Preprocesamiento de Datos
Selección de Instancias
Conclusiones
La selección de instancias puede permitir mejorar la precisión/interpretabilidad de los métodos de aprendizaje automático.
Existen evidencias de buen comportamiento combinando selección de instancias y los métodos de aprendizaje.
Para cada método de aprendizaje puede ser necesario diseñar un mecanismo de selección de instancias que sea cooperativo con el propio método de aprendizaje.
Introducción
Proceso general para la SA
Esquemas/Framework
Catalogación de algoritmos existentes
Distintas Clasificaciones
Tendencias
Preprocesamiento de Datos
Selección de Características
Sumario
La SA pretende elegir atributos que sean relevantes para una aplicación y lograr el máximo rendimiento con el mínimo esfuerzo. El resultado de la SA sería:
Menos datos los algoritmos pueden aprender más rápidos
Mayor exactitud el clasificador generaliza mejor
Resultados más simples más fácil de entender
Menos atributos evitar obtenerlos posteriormente
SA y Transformación (extracción y construcción)
Preprocesamiento de Datos
Selección de Características
Introducción
Bibliografía:H. Liu, H. Motoda. Feature Selection for Knowledge Discoveryand Data Mining. Kluwer Academic, 1998.
Preprocesamiento de Datos
{}
{1} {2} {3} {4}
{1}{3} {2,3} {1,4} {2,4}{1,2} {3,4}
{1,2,3} {1,2,4} {1,3,4} {2,3,4}
{1,2,3,4}
(GS) Generación
Subconjuntos
(CE) Criterio
Evaluation
SubconjuntoSeleccionado
CriterioParada
no
Subconjunto
atributos
Datos originales
si
La SA se puede considerar como en problema de búsqueda
Selección de Características
Proceso para la SA
P. Langley (1994). Selection of Relevant Features in Machine Learning. Procs. of the AAAI Fall Symposium on Relevance. AAAI Press, New Orleans, LA.
Agrupa las funciones de evaluación: Filtro y Envolvente (wrapper).
A.L. Blum and P. Langley (1997). Selection of Relevant Features and Examples in Machine Learning. Artificial Intelligence on Relevance, pp. 245-271.
Utiliza la dependencia con el proceso de inducción: Filtro, wrapper, Empotrados (embedded) y Ponderados.
Preprocesamiento de Datos
Selección de Características
Estudios realizados
J. Doak (1994). An Evaluation of Search Algorithms for Feature Selection. Informe técnico, Safeguards Systems Group. Los Alamos National Laboratory.
Establece tres categorías para las estrategias de búsqueda: exponencial O(2N), secuencial O(N2) y aleatoria O(¿?).
Clasifica las medidas de evaluación basándose en la naturaleza de estas: filtro, wrapper y wrapper modificado.
M. Dash and H. Liu (1997). Feature Selection for Classification. Intelligent Data Analisys.
Establece tres categorías para las estrategias de búsqueda: completa, heurística y aleatoria.
Clasifica las medidas de evaluación basándose en la naturaleza de estas: filtro (distancia, información, dependencia y consistencia) y wrapper.
Preprocesamiento de Datos
Selección de Características
Estudios realizados
L.C. Molina, L. Belanche and A. Nebot (2002). Feature Selection Algorithms: A Survey and Experimental Evaluation. In Proc. of the International Conference on Data Mining (ICDM'02), IEEE C.S.
Propone un criterio para evaluar el rendimiento de un algoritmo de SA con respecto a las particularidades de relevancia, irrelevancia, redundancia y tamaño de la muestra.Caracterización de algoritmos de SA.
M. Dash and H. Liu (1997). Feature Selection for Classification. Intelligent Data Analisys, 1 (3). H. Liu and L. Yu (2002). Feature Selection for Data Mining.http://www.public.asu.edu/~huanliu/feature_selection.html
Clasificación de los algoritmos existentes.Incluye SA no supervisada y propone una plataforma unificada.
Preprocesamiento de Datos
Selección de Características
Esquemas
Preprocesamiento de Datos
Selección de Características
CaracterizaciónDivergencia
Precisión
Consistencia
Información
Dependencia
Distancia
Medida de Evaluación
Organizaciónde la Búsqueda
Generación de sucesoresEsquema de Generación
Completa Heurística No-determinista
Exponencial Secuencial Aleatoria
Adelante
Atrás
Aleatoria
Compuesta
Ponderada
Creterio deevaluación
Estrategia de Búsqueda
Exponencial / Completa
Secuencial / Heurística
Aleatoria / No determinista
DistanciaAd: BFFAt: B&B , Bobr88
Ad: SegenP: ReliefF
P: ReliefF
Información
At: MDLM Ad: SFGAt: SBG, DTM, Koller
Dependencia
Ad: CFS Ad: POE+ACCP: PRESETC: FCBC
Consistencia
Ad: Focus, SchlimmerAt: MIFES1, ABB
Al: LVF, LVI, QBB*
Precisión
Al/Ad: BSAt: AMB&B, OBLIVIONAd: Ichi-Skla
Ad: WSFG, Quei-GelsAt: WSBG,SBS-SLASH,RCC: PQSS, BDS, RACE
Al: LVW,GA,SA, RMHC-PF1Al/C: RGSSFSS-EBNA
CualquieraAd: SFGAt: SBG
Inf+PresicAd: BBHFSC: Xing
Preprocesamiento de Datos
Selección de Características
Preprocesamiento de Datos
Selección de Características
Distintas Clasificaciones
4. Según la salida del algoritmo:
Ranking
Subconjunto de atributos
1. Según la evaluación:
filter
wrapper
2. Disponibilidad de la clase:
Supervisados
No supervisado
3. Según la búsqueda:
Completa O(2N)Heurística O(N2)Aleatoria ¿?
Entrada: x atributos - U criterio evaluación
Lista = {}
Para cada Atributo xi, i {1,...,N}
vi = calcular(xi,U)
situar xi dentro de Lista conforme vi
Salida: Lista, atts más relevantes al principio
Preprocesamiento de Datos
Selección de Características
Algoritmos Ranking
Devuelven una lista de atributos ordenados según algún criterio de evaluación.
Entrada: x atributos - U criterio evaluación
Subconjunto = {}
Repetir
Sk = generarSubconjunto(x)
si existeMejora(S, Sk,U)
Subconjunto = Sk
Hasta CriterioParada()
Salida: Lista, atts más relevantes al principio
Preprocesamiento de Datos
Selección de Características
Algoritmos Subconjunto de atributos
Devuelven un subconjunto de atributos optimizado según algún criterio de evaluación.
Dash, Liu and Motoda (2000). Consystency based feature selection (PAKDD). Kyoto, Japan. Springer-Verlag.
Elige automáticamente el mejor algoritmo de SA (Basado en consistencia).
Preprocesamiento de Datos
Selección de Características
Sistemas de SA
Preprocesamiento de Datos
Selección de Características
Comparison table of the discussed method.
Method Generation Evaluation Contin. Discrete NominalLarge
DatasetMultiple Classes
Handle Noise
Optimal Subset
B & B complete distance y y n - y - y++MDLM complete information y y n - y - nFocus complete consistency n y y n y n y
Relief heuristic distance y y y y n y nDTM heuristic information y y y y y - n
POE+ACC heuristic dependency y y y - y - n
LVF random consistency n y y y y y* y**
- method does not discuss about the particular characteristic.y++ if certain assumptions are valid.y* user is required to provide the noise level. y** provided there are enough resources.
*note : "classifier error rate" not included (ie. Depend on specify classifier).
Preprocesamiento de Datos
Selección de Características
Sistemas de SAClasifica según objetivo: A, B y C según tamaño BD: small, medium, L,VLSegún criterio: Monotono, aprox. y no
M. Kudo and J. Sklansky (2000). Comparison of Algorithms that Select Features for Pattern Classifiers, Elsevier Science.
Algoritmos híbridos: Combinan las ventajas de los algoritmos tipo filtro (rapidez) y wrapper (precisión)
S. Das (2001). Filters, Wrappers and a Boosting-Based Hybrid for Feature Selection, ICML, p. 74-81. Morgan Kaufmann Publishers.
Utiliza el concepto de Boosting.
E.P. Xing, M.I. Jordan and R.M. Karp (2001). Feature Selection for High-Dimensional Genomic Microarray Data, ICML, p. 601-608. Morgan Kaufmann Publishers.
Selecciona atts con IG alta y se reducen mediante Markov.
Preprocesamiento de Datos
Selección de Características
Incremento de los datos
H. Liu, H. Lu and L. Yu (2003). Active Sampling: An Effective Approach to Feature Selection. SIAM ICDM.
Selecciona las instancias con mayor probabilidad de tener información determinante de la relevancia de los atributos.
L. Yu and H. Liu (2003). Feature Selection for High-Dimensional: A fast Correlation-Based Filter Solution, ICML. Morgan Kaufmann Publishers.
Selecciona atts altamente correlados con la clase y después elimina redundantes.
Preprocesamiento de Datos
Selección de Características
Incremento de los datos
Preprocesamiento de Datos
Selección de Características
Validaciones
Selectors
Classifier
10 fcv
Training File(E 90%)
Test File(10%)
ReducedTrainingFile (E’)
Classifier
% Acc.Size Nº Att´s
% Acc.SizeNº Att´s
Reduce
10 Runs
BDs
Preprocesamiento de Datos
Selección de Características
Validaciones
Classifier
% Acc.SizeNº Att´s
BDs
Selectors
BDsReduced
Classifier
% Acc.SizeNº Att´s
Selección de Características
Validación algoritmos ranking
Atributos A1 A2 A3 A4 A5 A6 A7 A8 A9
Ranking A5 A7 A4 A3 A1 A8 A6 A2 A9
Mejor Subconjunto
80 82 81 83 83 85 84 83 84
A5 A7 A4 A3 A1 A8 (6 atributos)
Preprocesamiento de Datos
Validación algoritmos ranking
Segment-NB
Glass2-C4.5
Sonar-C4.5
Conclusiones
La selección de atributos puede permitir mejorar la precisión e interpretabilidad de los métodos de aprendizaje automático, además de reducir el tamaño de la BD y el tiempo de los algoritmos de aprendizaje.
Para diferentes aplicaciones puede convenir distintos algoritmos de selección de característica.
Preprocesamiento de Datos
Selección de Características
Preprocesamiento de Datos
Conclusiones
El preprocesamiento de datos suele ser una necesidad cuando se trabaja con una aplicación real, con datos obtenidos directamente del problema.
Una ventaja: El preprocesamiento de datos permite aplicar los modelos de Aprendizaje/Minería de Datos de forma más rápida y sencilla, obteniendo modelos/patrones de más calidad: precisión e/o interpretabilidad.
Un inconveniente: El preprocesamiento de datos no es un área totalmente estructura con una metodología concreta de actuación para todos los problemas. Cada problema puede requerir una actuación diferente, utilizando diferentes herramientas de preprocesamiento.