← capítulo

El clasificador más simple

Una feature. Una línea. Todos los de arriba, enfermos; los de abajo, sanos.

El modelo más tonto que podría funcionar — y la vara que todo lo demás tiene que superar.

Por qué empezar aquí

Los datos

768 pacientes de diabetes, ocho mediciones cada uno. Usamos una: glucosa en sangre.

Los dos grupos se traslapan, pero las lecturas de los diabéticos se cargan hacia arriba.

El modelo completo

Predice diabético cuando la glucosa supera un corte:

y^i(θ)=1 ⁣[giθ]\hat{y}_i(\theta) = \mathbb{1}\!\left[\, g_i \ge \theta \,\right]

"Entrenar" es una línea de búsqueda — el corte con la accuracy más alta:

θ=argmaxθ  1Ni1 ⁣[y^i(θ)=yi]\theta^{*} = \arg\max_{\theta} \; \frac{1}{N}\sum_i \mathbb{1}\!\left[\hat{y}_i(\theta) = y_i\right]

Eso es todo. Un argmax sobre un entero.

Mira la búsqueda

Cada cuadro es una iteración real. Los anillos rojos son los errores actuales del corte; el panel inferior traza la accuracy conforme la línea se mueve.

El trade-off del que no escapas

Corte bajo: atrapas a todos los diabéticos, marcas a la mitad de los sanos. Corte alto: al revés. Ninguna configuración anula ambos errores.

Dónde pones la línea es una decisión sobre qué error prefieres cometer.

Desde cero vs. librería

DecisionTreeClassifier(max_depth=1) es el mismo modelo. Las barras quedan una encima de la otra.

Conclusiones