Unidad 1 · Del problema a los datosClase 2 de 23
Clase 2 · Datos, filas, columnas, features y target

Objetivo. Distinguir fila, columna, feature, target, identificador y fuga de información en una tabla real.

Ficha Bloom · Analizar
  • Evidencia de aprendizaje: Clasifica cada columna de una tabla nueva como feature, target, identificador o fuga, y justifica cada decisión.
  • Actividad final: Decidir si una columna produce fuga de información (Date en Melbourne; p_el en Galaxy Zoo).
  • Criterio de dominio: Clasifica sin error una tabla de seis o más columnas y detecta la fuga con el argumento «no existirá al momento de predecir».
Activación. En Galaxy Zoo, las columnas p_el y p_cs predicen casi perfecto la clase de cada galaxia. ¿Por qué no se pueden usar para entrenar? Escribe tu respuesta antes de seguir: la retomas en el cierre.

Datos, filas, columnas, features y target

Qué es una fila, qué es una columna, y por qué el target no es una propiedad de la tabla sino una decisión tuya. Y cuál es la columna que nunca debe entrar: la que ya sabe la respuesta.
Fundamentos de Ciencia de Datos · UdeC · Clase del 15-jul (recuperación, lámina FCD-04 Calidad de datos)

Fundamentos de ciencia de datos → Datos, filas, columnas, features y target → EDA Limpieza Train/val/test Regresión

Cuatro conceptos dependen directamente de este. Es el cuello de botella del grafo: si no separas feature de target no puedes razonar sobre fuga de información, y sin eso el resto del curso se cae. [FUENTE · Repo: 07_DATITO/curriculum.yaml, campo prerrequisitos]

1 · Las dos preguntas de tu profesor

No enseña esto con vocabulario de pandas ni de tidy data. Enseña dos preguntas, y las repite tabla tras tabla:

1. ¿Qué objeto o evento estamos midiendo? → eso es una fila
2. ¿Cuáles son las variables? → cada una es una columna

Antes de las dos preguntas, la palabra de base. La lámina oficial define el dato así:

«Un dato es una medición de algo en una escala que sea comprensible tanto para el registrador y como para el lector.» Lámina oficial · [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_04_CalidadDeDatos.md · lámina 5]

En clase lo dijo casi con las mismas palabras [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md · 0:08:41–0:08:50], y unos minutos después separó dato de información: la información son los datos puestos dentro de un contexto [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md · 0:14:24–0:14:31]. «1,65 metros» es un dato; «la altura de esta persona es 1,65 metros, y es la más baja del curso» ya es información. Una celda de tu tabla es un dato; la tabla con sus nombres de columna y su pregunta es lo que la vuelve información. [DATITO] ejemplo sobre la altura que usó el profesor.

Ahora la tabla. La lámina 18 fija las dos piezas y el término que sí te pueden preguntar:

«Se espera que cada registro u observación represente un conjunto de medidas de un solo objeto o evento. Cada tipo de medida se denomina variable o atributo (por ejemplo, Altura, Radio y "¿Me gusta?" son variables o atributos). El número de atributos se denomina dimensión de los datos.» Lámina oficial · [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_04_CalidadDeDatos.md · lámina 18]

Su ejemplo limpio son cilindros: cada fila, un cilindro; las columnas, altura, radio y si le gusta o no. En clase remarcó que «variable» y «atributo» son exactamente lo mismo [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md · 0:50:37–0:51:10], y que tres atributos hacen datos «tridimensionales» [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md · 0:51:51–0:52:03].

Dimensión de los datos = número de atributos = número de columnas de variables. No es el número de filas. No es el tamaño del archivo. Más adelante lo vas a llamar p, y va a ser el protagonista de la sección 7.

Él mismo advirtió que el caso limpio es el raro: si todavía no te ha tocado reestructurar una tabla así, te va a tocar [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md · 0:51:31–0:51:43]. Y ese mismo día puso el caso sucio: una tabla de consumo de combustible de camiones donde la columna Consumo mezcla días y camiones. Después de discutirla con el curso, cerró así:

«Entonces la respuesta a esto que ya la venimos discutiendo. Las variables en este conjunto de datos son día, camión y consumo. El objeto ⟨o⟩ evento que estamos midiendo es el consumo por día y por camión.» Clase del 15-jul · 1:11:28–1:11:38 · profesor · [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md] · ⟨⟩ = corrección de transcripción [INFERENCIA] (el ASR escribe «objeto de evento»)
Fíjate en la forma de la respuesta: tres variables y un objeto medido con dos calificadores («por día y por camión»). En esa tabla una fila no es una observación —las filas «El Lunes», «El Martes» son separadores—, y por eso no se puede modelar hasta reestructurarla. La reestructuración, desde el ángulo de la calidad, está en limpieza_preparacion.html.
Ejercicio de aplicación · La tabla de la lámina 27, como en la 9A y la 9B del Certamen 1

La lámina 27 entrega esto (consumo de bencina, sin unidad):

Consumo        Cantidad
El Lunes
Camión 1         400
Camión 2        3500
Camión 3        2000
El Martes
Camión 1         350
Camión 2           0
Camión 3         400
El Miércoles
Camión 1         500
Camión 2        3600
Camión 3           0

En papel: (1) ¿qué objeto o evento se mide?, (2) ¿cuáles son las variables?, (3) ¿qué columna sirve de identificador?, (4) dibuja la tabla corregida con sus columnas y las tres primeras filas. Escríbelo antes de abrir.

Respuesta correcta y cómo se resuelve

Respuesta: se mide el consumo de bencina de un camión en un día; las variables son Día, Camión y Consumo; ninguna columna identifica una fila, así que se crea un ID; la tabla corregida tiene una fila por camión y día: ID · Día · Camión · Consumo.

Cómo se resuelve:

  1. Mira un número cualquiera, el 3500, y pregúntate de qué es: del camión 2, el lunes. Entonces el evento es «consumo de un camión en un día».
  2. Las variables son lo que cambia entre esos eventos: el día (escondido en filas separadoras), el camión (metido en la columna Consumo) y la cantidad.
  3. ¿Alguna columna distingue cada fila? No: «Camión 1» aparece tres veces. Se crea un ID del 1 al 9.
  4. Se arma la tabla: 3 días × 3 camiones = 9 filas; las filas «El Lunes» desaparecen porque su contenido pasa a la columna Día, escrita completa.

Error típico: decir que las variables son «Consumo» y «Cantidad» (eso son los encabezados, no las variables), o que se mide «camiones» (falta el día). Otro: borrar los ceros o marcar el 3500 como error; la respuesta oficial conserva ambos. Tabla destino del propio profesor:

ID  Día         Camión  Consumo
1   2026-07-13  1        400
2   2026-07-13  2       3500
3   2026-07-13  3       2000

Cuatro columnas: un ID que no mide nada, la fecha completa en vez de «El Lunes», el camión como número y el consumo. Nota que conserva los ceros y no marca el 3500 como error.

[FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_04_CalidadDeDatos.md · láminas 27–28] · La 9A (calificaciones con fechas como encabezados y una Matrícula con N/A) y la 9B (camiones con −999 y 2900) son variantes de este mismo ejercicio: certamen_1.html#p9a · certamen_1.html#p9b.

2 · La anatomía completa de un dataset

La descripción más limpia de un dataset que se dijo en tu curso vino de una presentación de compañeros sobre biopsias de mama:

«[…] tenemos 569 biopsias las cuales, o mejor dicho, 539 filas del dataset, el cual contiene 32 columnas, donde la primera de ellas corresponde al identificador único de la biopsia, la segunda […] a nuestra variable objetivo o target, […] y otras 30 variables que son predictoras.» Presentaciones del 14-ago · 1:09:08–1:09:31 · un grupo de compañeros · [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md]
⚠ El número de filas no es confiable. El expositor dice 569 y se corrige a 539. Pero más adelante el mismo grupo habla de 569 datos con ID únicos y multiplica por las 30 columnas para obtener 17.070 valores [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md · 1:11:31–1:11:53]; 569 × 30 = 17.070 cuadra y 539 × 30 = 16.170 no, así que lo más probable es que sean 569 [INFERENCIA]. No uses ninguna de las dos cifras como dato. Para lo que importa aquí —la anatomía de las columnas— el número de filas da igual.

Ahí está todo (el target, diagnosis, vale M o B: maligno o benigno). Un dataset tiene tres tipos de columna, y confundirlos es lo que se castiga:

TipoCuántasQué hace¿Entra al modelo?
Identificador1 Distingue una fila de otra. No mide nada del objeto. No. Si entra, el modelo memoriza en vez de aprender
Target (y)1 Lo que quieres predecir Nunca como entrada. Es la salida
Features (X)30 Lo que usas para predecir Sí — las que tú decidas

1 + 1 + 30 = 32. La aritmética cuadra, y esa es la comprobación que puedes hacer en cualquier tabla del certamen.

¿Para qué existe una columna que no mide nada? El profesor lo respondió con una razón de modelamiento, no de orden:

«si tú quieres saber cuándo tu modelo predice mal […] tienes que de alguna forma acceder a esos datos. Y la forma de acceder es a través de esto acá que se le llama un índice, ¿no? O una llave primaria […]» Clase del 15-jul · 1:06:21–1:06:34 · profesor · [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md]
Único, o no sirve. Justo después, un compañero comentó que ese ID debía ser único, y la respuesta fue que es muy importante: no se puede poner el mismo ID a dos filas, porque entonces no se puede identificar cada una [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md · 1:06:42–1:07:00]. La transcripción no separa las voces; que la última frase sea del profesor se deduce por contexto [INFERENCIA]. ⚠ Donde el ASR escribe «Libre 1», lo más probable es «delivery 1», el ID que él mismo había puesto a su tabla de entregas un minuto antes [INFERENCIA] [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md · 1:05:04–1:05:32].
Un ID repetido no es un detalle cosmético: significa que no sabes qué es una fila. Es lo que rompe la 9A del Certamen 1, donde la Matrícula vale N/A en una fila (certamen_1.html#p9a).
Ejercicio · Clasifica estas columnas antes de seguir

Tabla de un hospital, una fila por paciente atendido en urgencias. Columnas: RUT, Edad, Temperatura, Presión, Hora_ingreso, Diagnóstico, Hora_alta. Quieres predecir el diagnóstico al momento del ingreso.

¿Cuál es el ID, cuál el target, cuáles features, y cuál columna sobra aunque parezca útil?

Respuesta correcta y cómo se resuelve

Respuesta: RUT es el ID, Diagnóstico el target, Edad, Temperatura y Presión las features, y Hora_alta sobra porque no existe al momento de predecir.

Cómo se resuelve: primero el target (lo dice el enunciado: el diagnóstico); después, para cada columna restante, dos preguntas: ¿mide algo del paciente o solo lo identifica? y ¿la tengo en la mano en el ingreso?

  • ID: RUT — identifica, no mide. Fuera del modelo.
  • Target: Diagnóstico.
  • Features: Edad, Temperatura, Presión.
  • La que sobra: Hora_alta. Es información real y verdadera, pero no existe todavía en el momento en que quieres predecir. Usarla es fuga de información: el modelo se vería genial en la tabla y sería inútil en urgencias.
  • Hora_ingreso es discutible: sirve si la hora del día cambia el tipo de urgencia, pero es la clase de columna que hay que justificar, no asumir.

Error típico: meter Hora_alta «porque es un dato real» o porque mejora la exactitud en la tabla. Que sea verdadera no la hace usable: a la hora de predecir todavía no ocurrió.

[DATITO] Ejercicio construido para este artefacto. El mecanismo —una columna que no existe al momento de predecir— tiene nombre, fuga de información, y está en la sección 9; su consecuencia sobre la partición de filas, en train_validation_test.html.

3 · El target es una decisión, no una propiedad de la columna

Esta es la parte que la gente no internaliza. Price no «es» el target de Melbourne. Es el target porque tú decidiste preguntar cuánto cuesta una propiedad. La misma tabla, con otra pregunta, tiene otro target — y hasta cambia de tipo de problema.

Predice antes de tocar nada: si en vez de Price eliges Type (casa / townhouse / unidad) como target, ¿el problema sigue siendo de regresión?
Respuesta correcta y cómo se resuelve

Respuesta: no; con Type como target el problema pasa a ser de clasificación multiclase (tres clases: casa, townhouse, unidad).

  1. Mira qué valores puede tomar la columna que elegiste como target: h, t, u.
  2. ¿Existe un punto medio entre «casa» y «unidad»? No. Es categórica.
  3. Target categórico con más de dos valores → clasificación multiclase. Con Price, que es continuo, era regresión.
  4. Cambia también cómo mides el error: aciertos por clase (matriz de confusión, F1) en vez de AUD de diferencia (MAE).

Error típico: decidir el tipo de problema mirando las features («como Rooms y Distance son números, es regresión»). Lo fija el target, no las entradas.

[FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_04_CalidadDeDatos.md · lámina 20] · mismo razonamiento que la P6 del Certamen 1 (certamen_1.html#p6) · pasos [DATITO]

Haz clic en una columna para convertirla en el target

Price
target (y)
6
features (p)
Regresión
tipo de problema

Columnas reales de tu dataset de Melbourne, antes del encoding. [FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py, listas NUM y CAT]

Fíjate en lo que no cambió al mover el target: los datos. Ni un número de la tabla se movió. Lo único que cambió fue tu pregunta. Por eso el target no se «descubre» mirando el CSV — se decide antes, cuando defines el problema.

En la clase de regresión lo dijo de frente: en la tabla, el target no se ve distinto de las demás columnas.

«le entrego atributos y además le entrego una etiqueta en general las tablas cuando uno ve las tablas la etiqueta es parte de los atributos pero tú sabes ⟨cuál⟩ es ⟨la⟩ etiqueta» Clase del 31-jul · 0:16:55–0:17:05 · profesor · [FUENTE · Repo: 05_CLASES/transcripciones/06Clase_Fundamentos_en_Ciencia_de_Datos_31_de_julio.md] · ⟨⟩ = corrección de transcripción [INFERENCIA] (el ASR escribe «que es el etiqueta»)

«Tú sabes»: nadie más lo sabe por ti, ni el CSV ni pandas. Y cuando le tocó interrogar a un grupo en las presentaciones del 14-ago, empezó por ahí. El grupo tenía la nota final de una asignatura (0 a 100) y la había convertido en aprobado/reprobado para usarla como target:

«¿cuál es la variable que tú quieres ⟨predecir⟩? […] entonces lo que hiciste fue tomarte una variable numérica y la transformaste en una variable categórica […] ¿no has pensado en transformar un modelo de regresión en vez de un modelo de clasificación?» Presentaciones del 14-ago · 1:55:00–1:57:31 · profesor · [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md] · ⟨⟩ = corrección de transcripción [INFERENCIA] (el ASR escribe «predicir»)
Es el mismo movimiento que acabas de hacer con los botones, pero sobre una sola columna: la nota 0–100 y aprobado/reprobado son dos targets distintos sacados del mismo dato, y cada uno define otro problema. No hay uno «correcto»: hay uno que responde tu pregunta. Por eso el profesor no le dijo que estaba mal; le preguntó si lo había pensado.
Producción · explícaselo a alguien.

Un compañero tiene la nota final (0 a 100) de cada estudiante y quiere predecir si aprueba. Explícale, en 5 o 6 líneas y sin fórmulas:
(1) qué cambia si el target es la nota o si es aprobado/reprobado: tipo de problema, cómo se mide el error y qué información se pierde;
(2) por qué, si elige aprobado/reprobado, la nota no puede quedar entre las features;
(3) por qué aprobado/reprobado, aunque sea categórica, todavía tiene un orden.

Escríbelo tú. Después llévalo a Datito para que te lo corrija.
Criterios de corrección (no es una respuesta modelo)

[DATITO] Criterios construidos para este artefacto a partir del caso real del 14-ago.

Respuesta correcta y cómo se resuelve

Respuesta: son dos problemas distintos sacados del mismo dato: la nota como target es regresión y aprobado/reprobado es clasificación binaria; si eliges aprobado/reprobado, la nota no puede ser feature porque el target se calcula desde ella (fuga), y aprobado/reprobado conserva un orden porque es una nota discretizada.

Respuesta modelo, como se la dirías al compañero:

«Tienes dos targets posibles y cada uno es otro problema. Si predices la nota de 0 a 100, es regresión: el modelo da un número y el error tiene tamaño, no es lo mismo fallar por 3 puntos que por 30. Si predices aprobado o reprobado, es clasificación binaria: aciertas la clase o no, y lo mides con exactitud, precisión, recall o F1. Al pasar a dos clases pierdes información: dos notas aprobatorias muy distintas quedan iguales, y dos notas casi idénticas a cada lado del umbral quedan en clases opuestas. Si eliges aprobado/reprobado, la nota no puede entrar como feature, porque aprobado se calcula desde la nota con un umbral: el modelo aprendería el umbral, se vería perfecto y no sabría nada de los estudiantes. Eso es fuga de información. Y aunque aprobado/reprobado sea categórica, tiene orden: aprobado está por encima de reprobado, porque es una discretización de una variable numérica. Cuál conviene depende de tu pregunta: si la institución solo necesita saber a quién apoyar, basta la clase; si quiere saber cuánto le falta a cada uno, conviene la nota.»

Cómo se construye: (1) target → tipo de problema; (2) tipo de problema → cómo se mide el error; (3) qué se pierde al discretizar, con un ejemplo; (4) la regla de fuga: ¿el target se calcula desde alguna feature?; (5) el orden de una variable discretizada; (6) cerrar con «depende de la pregunta» y decir de qué depende.

Error típico: defender la nota como feature «porque correlaciona muchísimo con aprobar». Correlaciona porque es la misma información: por eso es fuga y no una buena feature.

[FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md · 1:55:00–1:57:31] (el caso) · [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md · 0:12:19–0:12:41] (la discretización conserva el orden) · redacción [DATITO]

4 · La ecuación, desarmada

Todo lo anterior se escribe en una línea, y en el certamen te la pueden entregar escrita así, sin la tabla al lado:

X ∈ ℝn×p  ·  y ∈ ℝn  ·  ŷi = f̂(xi1, xi2, …, xip)

Qué problema resuelve: poner nombre a cada parte de la tabla para poder hablar de ellas sin dibujarla. De dónde sale: de escribir la tabla como una matriz — las filas de la matriz son las filas de la tabla.

SímboloQué es en la tablaRol
nNúmero de filas. Cuántos objetos o eventos mediste DATO
pNúmero de features. La «dimensión de los datos» de tu profesor LO DECIDES TÚ
xijEl valor de la variable j en la observación i. Una celda DATO
xiLa fila i completa: un objeto descrito por sus p atributos DATO
yiEl valor real del target para la observación i DATO CUÁL COLUMNA, TÚ
ŷiLo que el modelo predice para esa fila. El sombrero significa «estimado» SALIDA
f̂La regla que mapea una fila a una predicción LO APRENDE EL MODELO
Léela una vez más y quédate con esto: n y los valores son dato. p e «y» son decisiones tuyas. f̂ es lo único que aprende el modelo. Ese reparto es el concepto entero.
Qué limitación tiene esta notación: asume que toda fila tiene el mismo significado y las mismas p columnas. Si tu tabla mezcla niveles —un día, un camión y una medición en la misma columna— la notación no aplica todavía. No es que el modelo salga malo: es que no hay X.

Camino inverso: te dan los símbolos, reconstruye el fenómeno

Te entregan solo esto, sin contexto: n = 6.336, p = 23, y continuo en AUD, y ŷi = f̂(xi1,…,xi,23).

Tu pregunta: ¿qué es una fila aquí, qué cuenta p, y qué es y? Escríbelo antes de abrir.

Respuesta correcta y cómo se resuelve

Respuesta: una fila es una venta de 2016, p = 23 son las columnas numéricas que entran al modelo después del encoding (no 23 variables), e y es el precio de venta en AUD.

Error típico: leer p = 23 como «23 variables» (son 12 conceptuales, sección 6) y decir que una fila es «una casa» (una casa vendida dos veces son dos filas).

[FUENTE · Repo: 09_RESULTADOS/resultados_temporal.json y 03_SCRIPTS/modelamiento_temporal.py]

5 · Cuando una fila no es lo que parece

La pregunta «¿qué es una fila?» parece trivial hasta que te topas con datos industriales de verdad. En tu propio curso pasó, con el dataset de flotación minera del Proyecto 1:

Lo que reportó ese grupo de compañeros, resumido: el dataset tiene 24 columnas, una de ellas es el tiempo; cubre unas 4.100 horas; no hay nulos explícitos, pero hay timestamps repetidos, cuando esperaban que el timestamp fuera único; y la variable objetivo es el porcentaje de sílice en el concentrado. Las variables las agruparon en tres bloques: de alimentación, de operación y de concentrado. [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md · 0:32:17–0:32:53] · un grupo de compañeros · el ASR no deja claro cuántas de las 24 son numéricas
Ahí está la tensión, y vale la pena detenerse. Si el timestamp se repite, una fila no es «una hora de planta». Hay varias filas por hora. Entonces ¿qué es una fila? Puede ser una lectura de sensor dentro de esa hora, o una celda de flotación distinta. Hasta que no lo resuelvas, no sabes qué significa n, y cualquier promedio que calcules está promediando cosas que no sabes qué son.

Nota también cómo el grupo ordenó sus variables: las agruparon en variables de alimentación, de operación y de concentrado. Agrupar las features por su rol en el proceso físico es una buena costumbre — y en flotación tiene una consecuencia directa: las variables «de concentrado» se miden al final del proceso, igual que el target. Usarlas para predecir el sílice del concentrado es la misma trampa que la Hora_alta del ejercicio de la sección 2.

[INFERENCIA] La agrupación la dijo el grupo. La advertencia sobre las variables de concentrado es razonamiento de Datito a partir del mecanismo, no algo que el profesor haya dicho ese día. El mecanismo tiene nombre: fuga de información, sección 9.

6 · Columna ≠ variable: 12 se convierten en 23

Acá hay una trampa que solo se ve con tus propios datos. Tu modelo de Melbourne usa 12 variables conceptuales:

GrupoVariablesCuenta
NUM Rooms · Distance · Bedroom2 · Bathroom · Car · Landsize · Lattitude · Longtitude · Propertycount 9
CAT Type · Method · Regionname 3
Variables conceptuales12

Pero el CSV que entra al modelo tiene 23 columnas de features. ¿De dónde salen las 11 extra?

OrigenQué pasóColumnas
9 numéricasPasan tal cual9
Car tenía faltantesSe imputó la mediana y se agregó Car_missing, que marca dónde se imputó+1
Type (3 valores)One-hot → Type_h · Type_t · Type_u+3
Method (5 valores)One-hot → Method_PI · S · SA · SP · VB+5
Regionname (5 valores)One-hot → 5 columnas Regionname_*+5
Total p23

[FUENTE · Repo: encabezado de 02_DATOS/housing_dashai_2016_2017.csv y el ColumnTransformer de 03_SCRIPTS/modelamiento_temporal.py]

Una variable categórica con k valores se convierte en k columnas. Por eso «cuántas variables tiene el modelo» y «cuántas columnas tiene la matriz X» son dos preguntas distintas, con dos respuestas distintas: 12 y 23.

Y por eso Suburb quedó fuera. Melbourne tiene 311 suburbios: meterlo como feature habría sumado 311 columnas de golpe, pasando de p = 23 a p = 334. Eso es lo que estás por mover en la sección siguiente. [FUENTE · Repo: 01_DOCUMENTACION/01_CERTAMEN2/02_MAPA_PROCESO_ESTUDIO.md, ficha P3: «Suburb descartado por 311 categorías = sobreajuste»]

Por qué una categórica se abre en k columnas y no en una

La lámina oficial clasifica las variables en dos familias: cuantitativas (discretas, como número de hermanos; continuas, como temperatura) y categóricas, «sin orden inherente entre los valores», como el tipo de mascota [FUENTE · Repo: 05_CLASES/11_PRESENTACIÓN/_markdown/FCD-2026-2_04_CalidadDeDatos.md · lámina 20]. Esa falta de orden es justo lo que hay que conservar al pasarla a números.

«mi modelo no puede trabajar directamente con palabras. Tengo que transformar de alguna forma esta, esta, esta palabra en un dato numérico, pero que no tenga orden.» Clase del 15-jul · 0:56:42–0:56:55 · profesor · [FUENTE · Repo: 05_CLASES/transcripciones/03Clase_Recuperación_Fundamentos_en_Ciencia_de_Datos_15_julio.md]

Por eso Type no se codifica como h=1, t=2, u=3 sino como tres columnas 0/1 (one-hot): con un solo número, el modelo creería que una unidad es «tres veces» una casa. La ayudantía del 7-ago dio la misma advertencia desde el otro lado: el LabelEncoder (0, 1, 2, 3…) crea un orden artificial, y se aconseja usarlo solo en la variable objetivo [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T23_57_03Z_Fundamentos_en_Ciencia_de_Datos.md · 0:38:16–0:39:36] · ayudantía: no es materia de certamen.

Y la trampa inversa: no todo lo que tiene nombres es categórico. En la clase de clasificación un compañero propuso «adulto joven / adulto mayor» como ejemplo de categoría, y el profesor lo corrigió:

«la variable real que está midiendo adulto mayor o adulto joven es la edad y la edad yo sí la puedo ordenar […] es una discretización de una variable numérica entonces sigue siendo sigue teniendo una noción de orden» Clase del 7-ago · 0:12:19–0:12:41 · profesor · [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-07T22_14_16Z_Fundamentos_en_Ciencia_de_Datos.md]
Certamen 1 · pregunta 6 (tipo de problema)
Salida categórica («bueno / regular / malo»)  ≠  salida numérica
Lo que fija el tipo de modelo es el target, no las entradas. Y «bueno / regular / malo» tiene orden, igual que «adulto joven / adulto mayor»: es la trampa del orden. Análisis completo en certamen_1.html#p6.
Otra forma en que columnas y variables no coinciden. Las 30 columnas predictoras del grupo de las biopsias eran en realidad 10 variables medidas de 3 formas (media, error estándar y peor valor sobre los núcleos de cada imagen) [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md · 1:09:39–1:10:00] · un grupo de compañeros. Columnas ≠ variables en las dos direcciones: el one-hot abre una variable en varias columnas, y un resumen estadístico hace lo mismo con una medición.

7 · Más filas no es lo mismo que más columnas

Esta es la distinción que tu profesor evaluó directamente en el Certamen 2, pregunta 3. Es fácil de decir y difícil de sentir, así que acá se mueve.

Predice: dejas n fijo y agregas 100 columnas de puro ruido —números aleatorios sin relación con el precio—. ¿Qué le pasa al R² de entrenamiento?
Respuesta correcta y cómo se resuelve

Respuesta: sube. Con n fijo, agregar columnas —aunque sean puro ruido— sube el R² de entrenamiento; lo que baja es el R² en datos nuevos.

Cómo se resuelve, con las fórmulas del panel (n = 6.336, ρ = 0,76):

p = 23p = 123 (+100 de ruido)
R² train = 1 − 0,24·(1 − p/n)0,76090,7647 ↑
R² test = 0,76 − 0,24·p/(n − p)0,75910,7552 ↓
Brecha0,00170,0094

Cada columna extra le da al modelo un grado de libertad más para calzar las filas que ya vio. El ruido no se repite en filas nuevas, así que ese ajuste extra no se traslada: la brecha crece.

Error típico: «queda igual, porque el ruido no aporta nada». Confunde señal con libertad: el ruido no aporta señal, pero sí flexibilidad. Es la trampa de la P3 del Certamen 2 (certamen_2.html#p3).

[DATITO] simulación de mínimos cuadrados de esta sección; cifras ilustrativas, no una corrida de tu modelo.

—
R² entrenamiento
—
R² en datos nuevos
—
brecha
—
filas por feature (n/p)

Qué está calculando el gráfico. Es el resultado clásico de mínimos cuadrados: agregar columnas sin señal infla el ajuste en entrenamiento en proporción a p/n, y lo castiga fuera.

R²train ≈ 1 − (1−ρ)(1 − p/n)
R²test ≈ ρ − (1−ρ)·p/(n−p)

Con ρ = 0,76, la fracción del precio que de verdad se puede explicar — el R² que efectivamente alcanzaste en 2017. Cuando p/n → 0 las dos expresiones colapsan en ρ: sin columnas de sobra, entrenamiento y test coinciden.

[DATITO] Simulación del mecanismo, no una corrida de tu modelo. Sirve para ver la forma de la curva; los números exactos de tu proyecto están en 09_RESULTADOS/resultados_temporal.json.

Lo que el gráfico te deja ver, y es lo que se pregunta:
Con tus números: 6.336 / 23 = 275 filas por feature. Holgado. Con Suburb dentro serían 6.336 / 334 = 19, y la brecha simulada pasa de 0,002 a 0,026: se multiplica por trece, pero sigue siendo chica. Prueba los dos botones y compruébalo.
Entonces, ¿por qué descartar Suburb, si el panel dice que 334 columnas con 6.336 filas se aguantan? Porque el conteo de columnas no es el mecanismo completo. Con 311 categorías, muchos suburbios aportan un puñado de ventas cada uno: el modelo estima un efecto por suburbio con casi nada de evidencia detrás. Y peor: el 29,1 % de las ventas de 2017 ocurre en suburbios que no existen en 2016, así que esas columnas simplemente no tienen valor cuando más las necesitas.

Quédate con la forma del argumento: n/p te dice si hay holgura en promedio; no te dice si la hay donde importa. Eso último ya es generalización, y se trabaja allá. [FUENTE · Repo: 09_RESULTADOS/resultados_temporal.json · [INFERENCIA] la conexión entre ambos mecanismos es razonamiento de Datito]
Ojo con sobreextender esto. Tu modelo real usa p = 23 con n = 6.336: la caída de R² entre 2016 y 2017 no la explica el número de columnas —el panel lo muestra, la brecha por p es de 0,002—. La explica que son años distintos. Exceso de features y cambio de distribución son dos mecanismos separados que producen el mismo síntoma, y el certamen te va a pedir distinguirlos. Ya te pasó una vez: llamaste «sobreajuste» a una degradación que no lo era. [FUENTE · Repo: 07_DATITO/errores_conceptuales.yaml, error sobreajuste_como_etiqueta_de_toda_degradacion]

8 · Tus ocho columnas excluidas

Tu modelo de Melbourne descarta ocho columnas que sí existen en el CSV original y contienen información real:

ColumnaPor qué quedó fueraTipo de razón
AddressEs casi un identificador: valor único por filaIdentifica, no mide
Suburb311 categorías → 311 columnasDimensión
PostcodeMisma información geográfica, ya cubierta por lat/long y RegionnameRedundante
CouncilArea0 % de nulos en 2016 y 18,9 % en 2017, más 14 categorías que no existen en 2016. Con ella el error bajaba 599 AUD (0,38 %), y aun así se conservó el modelo sin ellaNo sobrevive al cambio de año
SellerGCorredoras que aparecen en 2016 y no en 2017No sobrevive al cambio de año
BuildingAreaDemasiados faltantesCalidad
YearBuiltDemasiados faltantesCalidad
Date——

[FUENTE · Repo: lista EXCLUIDAS de 03_SCRIPTS/modelamiento_temporal.py. Las razones de Suburb, de las de calidad y de CouncilArea están documentadas (CouncilArea: 07_DATITO/02_REFERENCIA/material.md y 09_RESULTADOS/experimento_councilarea_2026-09-18.json); la de Postcode es [INFERENCIA] a partir del código.]

La fila de Date quedó en blanco a propósito.
Esa es tu pregunta de diagnóstico: si Date es una columna con información real sobre cada venta, ¿por qué quedó excluida de las features?

Está planteada como ejercicio al final de la sección 9, con criterios de corrección y la respuesta oculta. Escribe la tuya antes de abrirla.
El punto general, que sí puedes usar ya: que una columna tenga información verdadera no basta para que sea feature. Tiene que existir al momento de predecir, tiene que sobrevivir a datos nuevos, y tiene que valer las columnas que cuesta.

9 · Fuga de información: la columna que ya sabe la respuesta

Ya separaste cinco palabras. Falta la sexta, la que hace que un modelo inútil se vea excelente. Primero las seis, lado a lado:

PalabraQué esLa pregunta que la detectaEn Melbourne¿Entra al modelo?
FilaUn objeto o evento medido¿Qué estamos midiendo?Una ventaEs la unidad: cada fila es un ejemplo
ColumnaUna variable o atributo medido en cada fila¿Cuáles son las variables?Rooms, Date, Price…Candidata, nada más
IdentificadorDistingue filas; no mide nada¿Solo sirve para encontrar la fila?Address (casi un ID)No. Se guarda aparte para rastrear errores
TargetLa columna que decidiste predecir¿Qué quiero predecir?PriceNunca como entrada: es la salida
FeatureColumna que usas para predecir¿Existe al predecir y no sale del target?Rooms, DistanceSí, las que elijas
FugaUna feature que trae el target adentro, o que viene del futuro¿La tendría en la mano en el momento de predecir? ¿Se calcula desde el target?Pregunta abierta: ver el ejercicio de Date más abajoJamás
Fuga de información (leakage): una columna que contiene el target, o que se calcula a partir de él, o que todavía no existe en el momento en que vas a usar el modelo. El modelo no aprende a predecir: aprende a leer la respuesta. En validación se ve brillante; en uso real no corre, o se derrumba. [DATITO] definición operativa.

Hay dos formas, y conviene nombrarlas por separado [DATITO]:

El profesor la detectó en vivo en las presentaciones del 14-ago. Un grupo quería predecir el valor de una canasta de productos con datos por región, y él les preguntó si iban a usar los datos de hoy para predecir el valor de hoy [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md · 0:25:40–0:25:53]. Al cerrar, les dejó esto:

«si ustedes ajustan un modelo con datos de hoy para predecir el valor de hoy no es muy valioso porque ya tienes el valor de hoy […] el valor de hoy se calcula directamente desde las variables que ustedes están midiendo hoy» Presentaciones del 14-ago · 0:30:09–0:30:31 · profesor · [FUENTE · Repo: 05_CLASES/transcripciones/2026-08-14T22_09_23Z_Fundamentos_en_Ciencia_de_Datos.md]

Las dos formas están en esa frase: «ya tienes el valor de hoy» es la temporal (predices algo que ya conoces), y «se calcula directamente desde las variables» es la de construcción. Fíjate además en que no lo afirma: justo después aclara que no lo sabe y que por eso importa saber cómo se calcula ese valor dentro del dataset. Sospechar fuga obliga a revisar cómo se construyó cada columna, no a declararla.

El caso real: Galaxy Zoo

El train del desafío tiene 1.000 filas × 90 columnas; el test, 10.000 × 86. Las cuatro que están solo en train son objID, p_cs, p_el y label. p_cs y p_el son las fracciones de voto de los clasificadores humanos (espiral y elíptica), y son muy informativas. [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md, §2 · 07_DATITO/02_REFERENCIA/material.md, Galaxy Zoo]

Predice: si entrenas con p_cs y p_el como features y evalúas con validación cruzada dentro del train, ¿qué F1 obtienes?
Respuesta correcta y cómo se resuelve

Respuesta: casi perfecto en la validación dentro del train, porque el label se construyó desde p_cs y p_el; y sobre el test el modelo no se puede ni ejecutar, porque esas columnas no están.

  1. Pregunta de dónde sale el target: el label resume la votación humana.
  2. Las features p_cs y p_el son esa votación. Una regla de una línea reproduce el label en 998 de 1.000 filas (panel de abajo).
  3. En la validación cruzada dentro del train las dos columnas están en todos los folds, así que el F1 sale casi perfecto.
  4. El test tiene 86 columnas y no incluye esas dos: el modelo no corre.

Error típico: quedarse con «son muy informativas, entonces sirven». Lo informativo que es una columna no dice nada sobre si existe al predecir ni sobre si viene del target.

[FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md, §2 y §3.1]

Lo que encontró la auditoría del proyecto: una regla de una línea, sin ningún modelo, reproduce el label.

label = 1  si p_cs ≥ 0,5
label = 2  si p_el ≥ 0,5
label = 0  en otro caso         → coincide en 998 de 1.000 filas (99,8 %)

Las 2 discrepancias son empates exactos p_cs = p_el = 0,5. p_cs y p_el no están en el test, así que un modelo que las use ni siquiera puede ejecutarse sobre las 10.000 filas a predecir. [FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md, §3.1]

Ejercicio de interpretación · ¿Qué significa ese 99,8 %?

Una regla trivial acierta el label en 998 de 1.000 galaxias. Escribe en dos o tres líneas qué te dice ese número sobre p_cs y p_el, y qué no te dice sobre la dificultad del problema.

Respuesta correcta y cómo se resuelve

Respuesta: el 99,8 % dice que p_cs y p_el son el target escrito de otra forma (fuga por construcción); no dice nada sobre qué tan difícil es predecir el label con las columnas que sí existen en el test.

Cómo se resuelve: una regla sin aprendizaje que acierta casi todo significa que la respuesta ya estaba en las columnas usadas. Entonces la pregunta no es «qué buen número», sino «de dónde salen esas columnas».

No es un logro de nadie: dice que p_cs y p_el son el target escrito de otra forma. El label se construyó desde los votos, así que esas columnas son fuga por construcción. Un modelo con ellas aprendería la regla con que se armó la etiqueta, no a reconocer galaxias desde la fotometría, que es lo único que hay en el test.

Lo que no dice: nada sobre qué tan difícil es predecir el label con las columnas que sí existen al predecir. Ese número hay que medirlo sin ellas. Y deja al descubierto algo sobre la clase 0: es «ningún bando alcanzó mayoría», un estado de la votación, no un tipo de galaxia.

Error típico: leer el 99,8 % como «el problema es fácil» o como la exactitud esperable de un modelo. Es la exactitud de copiar la respuesta.

[FUENTE · Repo: 08_PROYECTO_FCD/Desafio/REPORT.md, §3.1] · redacción [DATITO]

Ejercicio · Melbourne y la columna Date

Tu pregunta de diagnóstico, como ejercicio.

Tu split es temporal: entrenas con las ventas de 2016 (6.336) y evalúas con las de 2017 (7.244). Date es información real sobre cada venta y quedó fuera de las features. En 4 a 6 líneas: ¿por qué? Y decide si es un caso de fuga, de otra cosa, o de ninguna. No asumas que es fuga por estar en esta sección.
Criterios de corrección (no es la respuesta)

Escríbela antes de abrir la respuesta, y llévala a Datito: es la pregunta con que abre este concepto.

[FUENTE · Repo: 07_DATITO/curriculum.yaml, pregunta_diagnostico de datos_features_target] · criterios [DATITO]

Respuesta correcta y cómo se resuelve

Respuesta: Date quedó fuera porque es la columna que define la partición: todas las fechas de train son de 2016 y todas las de test son de 2017, fuera del rango que el modelo vio. No es fuga; es un problema de extrapolación: el modelo no puede aprender de esa columna nada que valga para 2017.

  1. Momento de la predicción. Al tasar una venta sabes su fecha, así que Date sí existe al predecir y no viene del precio. Por ese lado no es fuga.
  2. Papel de Date en el proyecto. El código convierte Date en año y parte con él: train = 2016, test = 2017. Date es el criterio de la partición.
  3. Qué vería el modelo. En train, solo fechas de 2016; en test, solo fechas posteriores a todas las que vio. El año sería constante dentro de cada conjunto: cero información para aprender.
  4. Qué haría con eso. Un modelo de árboles como HistGradientBoosting no extrapola: a cualquier fecha de 2017 la trata como «las últimas fechas de 2016». Lo único que podría aprender son patrones propios de 2016, que no tienen por qué repetirse (ver generalizacion.html).
  5. Etiqueta: extrapolación temporal, no fuga. Un derivado como el mes de venta sí podría evaluarse como feature (estacionalidad), porque sus valores se repiten entre años.

Error típico: responder «porque es fuga de información» sin mostrar que venga del target o del futuro (no viene de ninguno), o «porque no sirve» sin decir por qué. El otro error: creer que una columna con información real tiene que ser feature.

[FUENTE · Repo: 03_SCRIPTS/modelamiento_temporal.py, líneas 33–36 (año desde Date y partición 2016/2017) y lista EXCLUIDAS] · el porqué es [INFERENCIA] a partir del código: el proyecto no documenta la razón de esta exclusión en particular · lo del mes, [INFERENCIA].

Transferencia · agricultura

Una cooperativa quiere predecir, el día de la siembra, el rendimiento de trigo de cada potrero. Una fila por potrero y temporada. Columnas: id_potrero, variedad, fecha_siembra, kg_fertilizante_ha, superficie_ha, lluvia_total_temporada, humedad_grano_cosecha, ton_cosechadas, rendimiento_ton_ha.

Clasifica cada columna: identificador, target, feature válida o fuga (y de qué forma). Después: ¿cambia algo si el modelo se usa a mitad de temporada, en noviembre?
Respuesta correcta y cómo se resuelve

Respuesta: id_potrero es el ID y rendimiento_ton_ha el target; ton_cosechadas es fuga por construcción; humedad_grano_cosecha y lluvia_total_temporada son fuga temporal; el resto son features válidas. En noviembre la lluvia acumulada hasta noviembre pasa a ser válida, pero no la de toda la temporada.

Cómo se resuelve: fija el momento de predecir (la siembra) y pasa cada columna por dos preguntas: ¿se calcula desde el target? y ¿la tendría ese día?

En noviembre cambia la lluvia: ya existe la lluvia acumulada hasta noviembre, que sí es feature válida, pero no la de toda la temporada. Habría que construir una columna nueva, «lluvia hasta la fecha de predicción».

Lo que transfiere: la fuga no es una propiedad de la columna sola, sino de la columna más el momento en que predices. La misma lluvia es fuga en septiembre y feature en noviembre, si la cortas bien.

Error típico: aceptar lluvia_total_temporada «porque la lluvia no depende del rendimiento». No viene del target, pero viene del futuro: también es fuga.

[DATITO] Caso construido para este artefacto; no hay cifras.

10 · La distinción de certamen

Certamen 1 · preguntas 9A y 9B (desarrollo, la 9B vale 2,0 puntos)
Fila = objeto o evento medido  ≠  columna = variable o atributo
Te dan una tabla mal estructurada y tienes que nombrar las variables y decir qué se está midiendo. Se castiga responder «las variables son las columnas» cuando una sola columna tiene tres variables adentro. Ver certamen_1.html#p9a · certamen_1.html#p9b.
Certamen 1 · pregunta 6 (selección múltiple)
Tipo de la salida  ≠  tipo de las entradas
El tipo de modelo lo fija el target. Está desarrollada en la sección 6 y en certamen_1.html#p6.
Certamen 2 · pregunta 3 (elegir la afirmación incorrecta)
Más filas (reduce el sobreajuste)  ≠  más columnas (lo aumenta si no traen señal)
La afirmación trampa invierte la relación entre evidencia y parámetros. La sección 7 es exactamente esta pregunta, con deslizadores. Ver certamen_2.html#p3.

[FUENTE · Repo: 07_DATITO/06_AUDITORIAS/patron_evaluacion.md y 01_DOCUMENTACION/06_CERTAMEN1/00_LEEME.md]

Cómo evalúa, en una línea: revisando las 11 fichas del Certamen 2 aparece el mismo campo en todas — distinción conceptual clave. No te pide una definición: te pide separar dos cosas que se parecen. Estudiar este concepto como «features son las entradas y target es la salida» no te alcanza para ninguna de las dos preguntas de arriba.

11 · Procedimiento para el papel

Sin computador, con una tabla impresa al frente. Los tres primeros pasos son literalmente el método de tu profesor.

  1. ¿Qué objeto o evento estamos midiendo? Escríbelo como frase completa («el consumo de un camión en un día»), no como sustantivo suelto («camiones»). Eso define qué es una fila.
  2. ¿Cuáles son las variables? Enumérralas. Si una columna contiene dos cosas distintas, cuéntalas como dos variables aunque compartan columna.
  3. ¿Cada fila tiene un identificador único? Si se repite, todavía no sabes qué es una fila. Vuelve al paso 1.
  4. ¿Qué quiero predecir? Esa columna es y. Si la pregunta no está enunciada, dilo: es una decisión, no un hallazgo.
  5. Las demás son candidatas a X. Candidatas, no features.
  6. Descarta: las que solo identifican, las que no existirán al momento de predecir, las que se calculan desde el target, y las que definen cómo partiste los datos. Para cada candidata pregunta: ¿la tendría en la mano el día que uso el modelo?
  7. Cuenta n y p, y mira la razón n/p. Si p creció por one-hot, cuenta las columnas resultantes, no las variables.

12 · Errores que el formato castiga

Antes de cerrar

Transferencia — dominio nuevo, a propósito.

Inventario forestal. Cuadrillas recorren un predio y en cada parcela miden todos los árboles: especie, diámetro a la altura del pecho, altura, estado sanitario. Además anotan de la parcela: pendiente, altitud y tipo de suelo. Quieren estimar el volumen de madera aprovechable por hectárea.

¿Qué es una fila: un árbol o una parcela? ¿Y qué le pasa a las variables del otro nivel según cuál elijas?
Respuesta correcta y cómo se resuelve

Respuesta: una fila es una parcela, porque el target (volumen por hectárea) es una propiedad de la parcela; las variables de cada árbol hay que resumirlas por parcela, y si eligieras el árbol como fila las variables de parcela se repetirían en todos sus árboles.

Cómo se resuelve:

La pregunta decide la fila. El target es volumen por hectárea, que es una propiedad de la parcela, no de un árbol. Entonces una fila es una parcela.

Y eso obliga a mover de nivel las variables del árbol: especie, diámetro y altura no caben tal cual en una fila-parcela, porque hay muchos árboles por parcela. Hay que agregarlas: diámetro medio, altura máxima, número de árboles, proporción de cada especie, porcentaje de árboles sanos. Las variables de la parcela —pendiente, altitud, suelo— entran directas.

Si en cambio eligieras el árbol como fila, las variables de parcela se repetirían idénticas en todas las filas de esa parcela, y tus filas dejarían de ser independientes entre sí. Se puede hacer, pero ya no es la misma pregunta.

Lo que transfiere: el nivel del target fija el nivel de la fila, y todo lo que está en otro nivel hay que subirlo o bajarlo. Es el mismo problema que los timestamps repetidos de la planta de flotación en la sección 5.

Error típico: elegir el árbol como fila «porque es lo que se midió» y poner el volumen por hectárea de la parcela como target de cada árbol: el mismo target repetido en muchas filas que no son independientes.

[DATITO] Caso construido para este artefacto. Dominio elegido a propósito fuera de Melbourne y de minería.

Qué sigue. Con esto ya puedes entrar a eda.html (mirar esas columnas de a una y de a dos) y a limpieza_preparacion.html (corregir lo que está mal registrado y separar eso de las decisiones de modelado). Y te deja en condiciones de entender por qué train_validation_test.html es una decisión sobre filas, no sobre columnas.

Cierre de la Clase 2 · Datos, filas, columnas, features y target

Qué aprendiste

  • Cada fila es una observación y cada columna una variable; qué es una fila se decide antes de modelar.
  • El target es una decisión tuya, no una propiedad de la columna.
  • Un identificador sirve para rastrear errores, no para predecir.
  • Fuga de información: usar una columna que no existirá cuando haya que predecir.

Qué no debes confundir

  • Más filas ≠ más columnas (C2 P3).
  • Variable categórica sin orden ≠ numérica discretizada, que conserva el orden (C1 P6).
  • Dato ≠ información: la información son datos en un contexto.

Procedimiento para el papel

  1. Define qué es una fila.
  2. Marca el target: lo que quieres predecir.
  3. Para cada columna: ¿existirá al momento de predecir? Si no, es fuga.
  4. Separa los identificadores y clasifica el resto por tipo.

Viene de: Clase 1 · ¿Qué problema resuelve la ciencia de datos? · Sigue: Clase 3 · EDA: conocer los datos antes de modelar

Vuelve a tu activación: En Galaxy Zoo, las columnas p_el y p_cs predicen casi perfecto la clase de cada galaxia. ¿Por qué no se pueden usar para entrenar? ¿Cambiarías tu respuesta?

Pregunta final. Quieres predecir si un cliente comprará, y el dataset trae «monto_final_pagado». ¿Es una buena feature?
Respuesta correcta y cómo se resuelve

No: ese monto se conoce después de la compra. Usarla es fuga de información: el modelo se vería excelente al validar y fallaría al predecir de verdad. [DATITO]

El cierre es una síntesis de la clase [DATITO]: cada afirmación tiene su fuente en el cuerpo de este visual. Fuente del cierre: 07_DATITO/clases.yaml.

Continuar → Clase 3 · EDA: conocer los datos antes de modelar