ML/AIMLE·AIMachine Learning Engineering
Ruta de aprendizaje · Nivel 3 de 10

Nivel 3 · Estadística para IA

Cómo resumir unos datos con pocos números, cuánto fiarte de una muestra y cómo no dejarte engañar por una correlación. Es la estadística que necesitas para entender tus datos antes de entrenar un modelo, y sus resultados después.

Unas 5–7 horas · Requisitos: niveles 1 y 2 (sumar, medias y un poco de Pandas) · Código de todos los ejemplos en notebooks/nivel3_estadistica.py

01Cómo usar esta lección

Un modelo de IA aprende de datos, y los datos siempre traen trampas: valores extremos, muestras pequeñas, casualidades que parecen patrones. La estadística es la caja de herramientas para verlas. Siete preguntas guían la lección:

ConceptoPregunta que respondeEn un proyecto de IA
Media y mediana¿Cuál es el valor típico?Resumir cada columna; rellenar nulos
Desviación típica y cuartiles¿Cuánto varían los datos?Normalizar variables; detectar outliers
Distribución normal¿Qué forma tienen los datos?Inicializar pesos; detectar anomalías
Teorema central del límite¿Por qué las medias son tan fiables?Por qué funciona entrenar con lotes
Intervalo de confianza¿Cuánto me fío de un resultado?«92 % ± 2 % de acierto»
Correlación¿Van juntas dos variables?Elegir variables; no confundir con causa
Contraste de hipótesis y Bayes¿Es real o es suerte? ¿Cómo actualizo lo que creo?Tests A/B; filtros de spam

Mismo método que en los niveles anteriores: la idea en una frase, un ejemplo pequeño, dónde aparece en IA y código para comprobarlo. Muchos conceptos se entienden mejor simulando que con fórmulas, y con NumPy simular es muy fácil: aprovéchalo.

021 · Media, mediana y moda

La idea en una fraseLa media reparte el total a partes iguales; la mediana es el valor del medio. Si hay valores extremos, fíate de la mediana.

Cinco personas cobran 1.800, 2.000, 2.100, 2.300 y 2.500 € al mes. La media es la suma entre cinco: 2.140 €. La mediana es el valor que queda en el centro al ordenarlos: 2.100 €. Se parecen.

Ahora entra en el grupo alguien que gana 50.000 €:

MediaMediana
5 personas2.140 €2.100 €
+ 1 millonario10.117 €2.200 €

La media se ha multiplicado por cinco y ya no describe a nadie del grupo. La mediana apenas se mueve: es robusta frente a valores extremos. Por eso las estadísticas de salarios o de precios de viviendas usan la mediana.

La moda es el valor que más se repite. Es la única de las tres que sirve para datos que no son números: la talla más vendida o el color más elegido.

Python
import numpy as np

sueldos = np.array([1800, 2000, 2100, 2300, 2500])
sueldos.mean(), np.median(sueldos)        # (2140.0, 2100.0)

con_millonario = np.append(sueldos, 50_000)
con_millonario.mean()                     # 10116.7  ← se dispara
np.median(con_millonario)                 # 2200.0   ← casi no cambia

¿Dónde aparece en IA? en el nivel 2 rellenaste nulos con la mediana precisamente por esto: si la columna tiene valores extremos, la media daría un relleno poco realista.

032 · Dispersión: desviación típica y cuartiles

La idea en una fraseLa desviación típica dice cuánto se alejan los datos de la media, en las mismas unidades que los datos.

Dos clases sacan de media un 5 en un examen. En la A, todos sacan exactamente un 5. En la B, las notas son 0, 2, 5, 5, 8 y 10. La media es igual, pero son clases muy distintas: a la media le falta información sobre la dispersión.

Cómo se calcula, paso a paso

Con los datos 2, 4, 4, 4, 5, 5, 7, 9 (media 5):

  1. Resta la media a cada dato: −3, −1, −1, −1, 0, 0, 2, 4.
  2. Eleva al cuadrado (para que los negativos no anulen a los positivos) y haz la media: (9 + 1 + 1 + 1 + 0 + 0 + 4 + 16) / 8 = 4. Esa es la varianza.
  3. Haz la raíz cuadrada para volver a las unidades originales: √4 = 2. Esa es la desviación típica.
Python
clase_a = np.array([5, 5, 5, 5, 5, 5])
clase_b = np.array([0, 2, 5, 5, 8, 10])

clase_a.mean(), clase_a.std()     # (5.0, 0.0)
clase_b.mean(), clase_b.std()     # (5.0, 3.37)  misma media, mucha más dispersión

Los cuartiles: la versión robusta

Ordena los datos y pártelos en cuatro trozos iguales. Q1 deja por debajo el 25 %, la mediana el 50 % y Q3 el 75 %. La distancia Q3 − Q1 se llama rango intercuartílico (IQR) y mide la anchura de la mitad central de los datos. Igual que la mediana, no le afectan los valores extremos.

024681012Q1 = 2,56mediana 3,53Q3 = 4,74límite 8,01outliers (681, hasta 15)
Diagrama de caja de los ingresos medianos por barrio en California Housing (en decenas de miles de dólares). La caja va de Q1 a Q3 y contiene la mitad central de los barrios; la raya es la mediana. Los puntos sueltos son los que pasan de Q3 + 1,5 × IQR. Solo se dibujan unos pocos, a modo de ejemplo.

El dibujo es un diagrama de caja, y con él se aplica la regla más usada para detectar valores atípicos (outliers): es sospechoso todo lo que queda más allá de 1,5 × IQR por encima de Q3 o por debajo de Q1.

Error típico: un outlier no siempre es un error. Puede ser un fallo de medida (una persona de 3 metros) o un caso real y valioso (el barrio más rico). Antes de borrarlo, averigua qué es.

¿Dónde aparece en IA? muchos modelos (las redes neuronales, la regresión con regularización, K-means) funcionan mal si una columna va de 0 a 1 y otra de 0 a 100.000. Por eso se estandarizan: a cada valor se le resta la media y se divide por la desviación típica. Es lo que hace StandardScaler de scikit-learn.

043 · La distribución normal

La idea en una fraseMuchas medidas se reparten en forma de campana: casi todo cerca de la media y cada vez menos hacia los extremos.

La distribución de unos datos es cómo se reparten sus valores, lo que dibuja un histograma. La más famosa es la normal (o campana de Gauss). Solo necesitas dos números para describirla, la media y la desviación típica, y cumple una regla muy práctica:

14615416217017818619468 %+13,5 %+13,5 %altura (cm) · media 170, desviación típica 8
±1 desviación: 68 %±2: 95 %±3: 99,7 %
Alturas de adultos: media 170 cm, desviación típica 8 cm. El 68 % mide entre 162 y 178; el 95 %, entre 154 y 186. En una simulación de 100.000 personas salen 68,2 %, 95,4 % y 99,7 %.

Regla 68-95-99,7: el 68 % de los datos queda a menos de una desviación típica de la media; el 95 %, a menos de dos, y el 99,7 %, a menos de tres. Así, alguien de 194 cm está a 3 desviaciones de la media: es muy raro, más o menos 1 de cada 740 personas por arriba.

No todo es normal. Los ingresos, los precios o los tiempos de espera tienen una cola larga hacia un lado (distribución asimétrica): muchos valores pequeños y unos pocos enormes. En esos casos la media queda por encima de la mediana. Lo verás en el proyecto.

¿Dónde aparece en IA? los pesos de una red neuronal se inicializan con números aleatorios de una normal, y un sistema de detección de anomalías puede marcar como sospechoso todo lo que esté a más de 3 desviaciones típicas de lo habitual.

054 · Muestras y teorema central del límite

La idea en una fraseAunque los datos tengan una forma rara, la media de muchos de ellos se comporta como una campana, y es más precisa cuantos más datos promedias.

Casi nunca tenemos todos los datos (la población), sino una parte (una muestra). La pregunta clave es: ¿cuánto se parece la media de la muestra a la media real? El teorema central del límite da la respuesta, y se ve mejor simulando.

En una ventanilla, el tiempo de espera de cada cliente sigue una distribución muy asimétrica (exponencial) con media 10 minutos. Tomamos 1, 5 o 30 clientes, calculamos su espera media y repetimos 100.000 veces:

1 cliente

010203040

Media de 5 clientes

010203040

Media de 30 clientes

010203040
Tiempos de espera en minutos (media real 10, línea discontinua), repitiendo el experimento 100.000 veces. Un cliente suelto sigue una distribución muy torcida: casi todos esperan poco y unos pocos, muchísimo. Pero la media de 30 clientes ya tiene forma de campana, centrada en 10 y mucho más estrecha.
Clientes promediados (n)Media de las mediasDispersión de las mediasTeoría: 10 / √n
19,979,9610,00
59,984,464,47
309,991,821,83

Tres lecciones: (1) la media de las muestras acierta en promedio (10); (2) su forma se vuelve de campana aunque los datos no lo sean; y (3) su dispersión se reduce como 1/√n. Ojo: para ser el doble de preciso necesitas cuatro veces más datos, no el doble.

Python
rng = np.random.default_rng(42)
espera = rng.exponential(scale=10, size=(100_000, 30))   # 100 000 repeticiones de 30 clientes

for n in (1, 5, 30):
    medias = espera[:, :n].mean(axis=1)
    print(n, medias.mean().round(2), medias.std().round(2))
# 1   9.97  9.96
# 5   9.98  4.46
# 30  9.99  1.82    ← la dispersión baja como 10 / √n

¿Dónde aparece en IA? en el entrenamiento con mini-lotes (SGD), el gradiente de un lote de 32 ejemplos es una media, así que es una estimación razonable del gradiente de todos los datos. Por eso funciona entrenar con lotes en vez de con todo el dataset a la vez.

065 · Intervalos de confianza

La idea en una fraseUn resultado sacado de una muestra siempre debe ir con su margen de error.

Mides la altura de 50 personas y la media sale 168,7 cm. ¿La media de toda la población es exactamente 168,7? Seguro que no. Por el teorema central del límite sabemos lo que varía una media: su dispersión, llamada error estándar, es la desviación típica de la muestra dividida por √n. Aquí sale 1,17 cm.

IC95%=media±1,96×error estaˊndar=168,7±2,3=[166,4, 171,0]\text{IC}_{95\%} = \text{media} \pm 1{,}96 \times \text{error estándar} = 168{,}7 \pm 2{,}3 = [166{,}4,\ 171{,}0]

El 1,96 sale de la regla de la normal (el 95 % queda a menos de unas 2 desviaciones). Cómo se interpreta: si repitiéramos el experimento muchas veces, el 95 % de los intervalos calculados así contendría la media real. En la simulación del cuaderno, con una media real de 170, lo hicieron 9.440 de 10.000 (94,4 %).

Python
muestra = rng.normal(170, 8, 50)                        # alturas de 50 personas
media = muestra.mean()                                  # 168.7
error = muestra.std(ddof=1) / np.sqrt(len(muestra))     # 1.17  error estándar
media - 1.96 * error, media + 1.96 * error              # (166.4, 171.0)

Error típico: un intervalo muy ancho no es un fallo del cálculo: te está avisando de que tienes pocos datos para la conclusión que quieres sacar.

¿Dónde aparece en IA? decir «mi modelo acierta el 92 %» sin más es incompleto. Si lo evaluaste con 100 ejemplos, el margen ronda ±5 puntos, y otro modelo con un 90 % podría ser igual de bueno. La validación cruzada de los niveles siguientes sirve, en parte, para medir esa variación.

076 · Correlación y causalidad

La idea en una fraseLa correlación mide si dos variables suben y bajan juntas, pero no dice por qué.

El coeficiente de correlación (r) va de −1 a 1. Si vale +1, los puntos forman una recta que sube; si vale −1, una recta que baja; cerca de 0, no hay relación en línea recta.

Positiva fuerte
r = 0,93

Casi nula
r = 0,01

Negativa fuerte
r = −0,90

Relación en curva
r = 0,02

La correlación (r) mide si los puntos se agrupan alrededor de una línea recta. El último caso es la trampa: hay una relación clarísima, pero no es recta, y r sale casi 0.

Ejemplo: horas de estudio (1 a 6) frente a la nota de seis alumnos (3, 4, 6, 5, 8, 9): r = 0,946, una relación muy fuerte.

Python
horas = np.array([1, 2, 3, 4, 5, 6])      # horas de estudio
nota  = np.array([3, 4, 6, 5, 8, 9])      # nota del examen
np.corrcoef(horas, nota)[0, 1]            # 0.946

# Con Pandas, todas las parejas de columnas a la vez:
df.corr()

Correlación no es causalidad

En verano se venden más helados y hay más ahogamientos: su correlación es alta. ¿Los helados provocan ahogamientos? No. Hay una tercera variable oculta, el calor, que hace subir las dos. Antes de decir que A causa B, pregúntate:

  • ¿Hay una tercera variable que mueva a las dos?
  • ¿Podría ser al revés, que B cause A?
  • ¿Podría ser casualidad? Con muchas variables, algunas correlaciones salen por puro azar.

La única forma segura de demostrar una causa es un experimento: cambiar A a propósito, al azar, y medir B. Es lo que hace un test A/B.

¿Dónde aparece en IA? un modelo aprende correlaciones, no causas. Si en los datos de entrenamiento las fotos de lobos tienen nieve de fondo, el modelo puede aprender a detectar la nieve. Entender las correlaciones de tus datos es la primera defensa contra ese tipo de errores.

087 · ¿Es real o es suerte? Contraste de hipótesis

La idea en una fraseUn p-valor responde a esta pregunta: si todo fuera pura casualidad, ¿cuán raro sería lo que he visto?

Lanzas una moneda 100 veces y salen 60 caras. ¿Está trucada? El razonamiento tiene tres pasos:

  1. Suponemos lo aburrido (la hipótesis nula): la moneda es justa.
  2. Calculamos lo raro que sería el resultado si eso fuera cierto: la probabilidad de un resultado igual de alejado de 50 o más. Ese número es el p-valor.
  3. Decidimos: si el p-valor es muy pequeño (por convenio, menos de 0,05), la explicación «es casualidad» deja de ser creíble.
Caras de 100p-valorConclusión
600,057Podría ser suerte: pasa en 1 de cada 18 monedas justas
700,00008Casi imposible con una moneda justa: está trucada
Python
from scipy import stats

stats.binomtest(60, 100, p=0.5).pvalue    # 0.057  → podría ser suerte
stats.binomtest(70, 100, p=0.5).pvalue    # 0.00008 → casi seguro que está trucada

Error típico: un p-valor mayor que 0,05 no demuestra que la moneda sea justa: solo dice que con estos datos no se puede descartar. Y un p-valor pequeño no dice que el efecto sea grande ni importante.

¿Dónde aparece en IA? un test A/B compara dos versiones de un modelo (o de una web) con usuarios reales. Si la nueva mejora del 10 % al 11 %, el contraste de hipótesis dice si esa mejora es real o si podría ser ruido.

098 · Bayes: actualizar lo que crees

La idea en una fraseBayes es la regla para cambiar de opinión con pruebas: combina lo que creías antes con lo que acabas de ver.

El 30 % de tus correos es spam. La palabra «gratis» aparece en el 40 % de los correos de spam, pero solo en el 5 % de los normales. Te llega un correo con «gratis». ¿Qué probabilidad hay de que sea spam? Como en el nivel 1, lo más claro es contar con 1.000 correos:

CorreosCon «gratis»
Spam (30 %)300120 (el 40 %)
Normales (70 %)70035 (el 5 %)
Total1.000155

De los 155 correos con «gratis», 120 son spam: 120 / 155 ≈ 77 %. Antes de leer el correo creías un 30 % (la probabilidad previa); después de ver la palabra, un 77 % (la posterior). Cada palabra nueva es otra prueba que vuelve a actualizar la probabilidad.

P(spam∣gratis)=P(gratis∣spam)⋅P(spam)P(gratis)=0,40⋅0,300,155≈0,77P(\text{spam} \mid \text{gratis}) = \frac{P(\text{gratis} \mid \text{spam}) \cdot P(\text{spam})}{P(\text{gratis})} = \frac{0{,}40 \cdot 0{,}30}{0{,}155} \approx 0{,}77

¿Dónde aparece en IA? así funcionan los filtros de spam clásicos (Naive Bayes), y es la misma idea que en el nivel 1 con los falsos positivos. En general, un modelo que devuelve probabilidades está diciendo «con lo que he visto, esto es lo que creo».

10Ejercicios

Primero en papel, luego compruébalos en Colab con NumPy.

Ejercicio 1Las notas de un grupo son 4, 6, 6, 7, 9 y 10. Calcula la media, la mediana y la moda. Si la última nota fuera 100 (un error al teclear), ¿cuál de las tres cambia?

Pista: con un número par de datos, la mediana es la media de los dos centrales.

Solución

Media 42 / 6 = 7; mediana (6 + 7) / 2 = 6,5; moda 6. Con el 100, la media sube a 132 / 6 = 22; la mediana y la moda no cambian.

Ejercicio 2Calcula la desviación típica de 2, 4, 4, 4, 5, 5, 7, 9 sin mirar la lección.
Solución

Media 5. Diferencias: −3, −1, −1, −1, 0, 0, 2, 4. Cuadrados: 9, 1, 1, 1, 0, 0, 4, 16; su media es 32 / 8 = 4 (la varianza). Raíz: 2.

Ejercicio 3Las alturas siguen una normal de media 170 cm y desviación típica 8 cm. ¿Entre qué dos valores está el 95 % de la gente? ¿Es raro medir 150 cm?
Solución

Media ± 2 desviaciones: entre 154 y 186 cm. 150 cm está a 2,5 desviaciones por debajo: poco frecuente (menos del 1 % de la gente mide eso o menos), pero no imposible.

Ejercicio 4El ejercicio del nivel. Simula el teorema central del límite: toma 10.000 muestras de tamaño 1, 5 y 30 de una exponencial de media 10, calcula sus medias y dibuja los histogramas. ¿Qué forma tienen? ¿Cuánto vale su desviación típica?
Solución
rng = np.random.default_rng(0)
for n in (1, 5, 30):
    medias = rng.exponential(10, (10_000, n)).mean(axis=1)
    plt.hist(medias, bins=50, alpha=0.5, label=f"n = {n}")
    print(n, medias.std().round(2))
plt.legend(); plt.show()

La forma pasa de muy torcida a campana, y la desviación típica se acerca a 10/√n: unos 10, 4,5 y 1,8.

Ejercicio 5Una encuesta a 400 personas da una media de 6,2 horas de sueño con desviación típica 1,2. Calcula el intervalo de confianza del 95 %.
Solución

Error estándar = 1,2 / √400 = 1,2 / 20 = 0,06. Intervalo: 6,2 ± 1,96 × 0,06 = 6,2 ± 0,12 → [6,08, 6,32] horas.

Ejercicio 6Un estudio encuentra que los niños que duermen con la luz encendida tienen más miopía. ¿Significa que la luz causa miopía? Propón una explicación alternativa.
Solución

No necesariamente. Una variable oculta posible: los padres miopes (la miopía es en parte hereditaria) quizá dejan más la luz encendida porque ven peor. Un estudio posterior encontró precisamente esa explicación.

Ejercicio 7Una nueva versión de una web consigue un 5,4 % de compras frente al 5,0 % de la antigua, y el test da un p-valor de 0,30. ¿Qué concluyes?
Solución

Que no hay pruebas suficientes de que la nueva sea mejor: una diferencia así sale por azar con bastante frecuencia (un 30 % de las veces). Tampoco demuestra que sean iguales; harían falta más datos.

11Proyecto: correlaciones y outliers en California Housing

California Housing recoge 20.640 barrios de California del censo de 1990: ingresos medianos, edad de las casas, habitaciones, población, situación y el valor mediano de la vivienda. Tu misión: describir los datos como haría un estadístico antes de que nadie entrene un modelo con ellos.

Solución de referencia
import pandas as pd

URL = "https://raw.githubusercontent.com/vtarazona/mle-ai/main/notebooks/data/california_housing.csv"
casas = pd.read_csv(URL)                           # 20 640 barrios de California (censo de 1990)

# 1. Centro, dispersión y forma
v = casas["median_house_value"]
v.mean(), v.median(), v.skew()                     # 206 856 · 179 700 · 0.98 (cola a la derecha)
(v == v.max()).sum()                               # 965 barrios con el valor exacto 500 001: ¡un tope!

# 2. Correlaciones con el valor de la vivienda
casas["habitaciones_por_hogar"] = casas["total_rooms"] / casas["households"]
casas.drop(columns="ocean_proximity").corr()["median_house_value"].sort_values()

# 3. Outliers con la regla del rango intercuartílico
col = casas["habitaciones_por_hogar"]
q1, q3 = col.quantile([0.25, 0.75]); iqr = q3 - q1
fuera = (col < q1 - 1.5 * iqr) | (col > q3 + 1.5 * iqr)
fuera.sum(), col.max()                             # 511 barrios · máximo 141.9 habitaciones por hogar

# 4. Una variable de texto: la cercanía al océano
casas.groupby("ocean_proximity")["median_house_value"].median().sort_values()

Lo que deberías encontrar

1. Una distribución con cola a la derecha. El valor medio es 206.856 $ y la mediana, 179.700 $: la media queda por encima, como pasa siempre que hay unos pocos valores muy altos.

2. Dos «muros» artificiales. 965 barrios tienen un valor exacto de 500.001 $ y 1.273 tienen una edad de 52 años, el máximo. No son casas reales con ese valor exacto: al recoger los datos se recortó todo lo que pasaba de ese tope. Un modelo entrenado con ellos nunca predecirá más de 500.001 $, aunque la casa valga un millón.

3. Los ingresos lo dominan todo.

ingresos medianos+0,69
habitaciones por hogar+0,15
habitaciones totales+0,13
edad de la vivienda+0,11
población−0,03
longitud−0,05
latitud−0,14
Correlación de cada variable con el valor mediano de la vivienda. Solo los ingresos tienen una relación fuerte. La latitud negativa indica que hacia el norte, de media, las casas valen algo menos, pero eso no es una causa: refleja dónde están las grandes ciudades y la costa.

4. Outliers que son errores… o no. Con la regla de 1,5 × IQR salen 511 barrios con demasiadas habitaciones por hogar; el máximo es 141,9, lo que no es una casa normal. Seguramente son zonas de segundas residencias o de hoteles, con muchas habitaciones y pocos residentes fijos. En los ingresos, los 681 outliers (por encima de 8,01) son barrios ricos reales: no se deben borrar.

5. Una variable de texto que importa mucho. La mediana del valor es 108.500 $ en el interior (INLAND) frente a unos 215.000–234.000 $ cerca del océano o de la bahía.

Interior108.500 $
A menos de 1 h del océano214.850 $
Cerca del océano229.450 $
Cerca de la bahía233.800 $
Valor mediano de la vivienda según la cercanía al océano. Hay además 5 barrios en una isla, demasiado pocos para sacar conclusiones.

Para ir más allá: (1) repite la correlación entre ingresos y valor sin los barrios del tope: baja de 0,688 a 0,643, porque el recorte distorsiona la relación; (2) dibuja un mapa con plt.scatter(casas.longitude, casas.latitude, c=casas.median_house_value, s=2) y comprueba dónde están las casas caras; (3) cuenta cuántos nulos hay (207, todos en total_bedrooms) y decide cómo rellenarlos.

12Test de autoevaluación

  1. En un barrio, la mayoría gana unos 25.000 € al año y unos pocos, millones. ¿Qué describe mejor al vecino típico?

  2. Dos grupos tienen la misma media, pero uno tiene una desviación típica mucho mayor. Significa que…

  3. En una normal de media 100 y desviación típica 15, ¿qué porcentaje de los datos queda entre 70 y 130?

  4. Según la regla del IQR, un valor es sospechoso de ser outlier si…

  5. ¿Qué dice el teorema central del límite?

  6. Para reducir a la mitad el error estándar de una media, necesitas…

  7. ¿Qué significa un intervalo de confianza del 95 %?

  8. Dos variables tienen r = 0. ¿Qué puedes afirmar?

  9. Las ciudades con más bomberos tienen más incendios. ¿Cuál es la explicación más probable?

  10. Un test A/B da un p-valor de 0,40. ¿Qué concluyes?

13¿Has asimilado el nivel?

Marca cada punto solo si puedes hacerlo sin mirar la lección. El progreso se guarda solo en este navegador.

Para verlo explicado de otra forma

  1. StatQuest (J. Starmer). Vídeos cortos sobre desviación típica, teorema central del límite, p-valores e intervalos de confianza.
  2. D. Spiegelhalter (2019). The Art of Statistics. Pelican (traducido al español como El arte de la estadística). Estadística sin fórmulas, con ejemplos reales.
  3. P. Bruce, A. Bruce, P. Gedeck (2020). Practical Statistics for Data Scientists, 2.ª ed. O'Reilly. Capítulos 1 a 3.
  4. R. K. Pace, R. Barry (1997). Sparse spatial autoregressions. Statistics & Probability Letters, 33(3). Origen del dataset California Housing.

Ejecuta el código de la lección

Todos los ejemplos, las simulaciones y el proyecto, con los datos incluidos:

Anterior: Nivel 2 · Python · Siguiente: Nivel 4 · Machine Learning (en preparación) · Volver a la ruta