¿Clasificación o regresión en Python? [Ejercicio práctico]

Autor: | Última modificación: 16 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este post veremos un ejercicio práctico para, posteriormente, determinar si es clasificación o regresión en Python.

Ejercicio: sobre el conjunto de datos que verás a continuación, debemos indicar si se trata de un problema de regresión o de clasificación y calcular los siguientes valores:

  • N: número de muestras
  • d: dimensionalidad del espacio de entrada
  • x(10): muestra i = 10
  • x1: característica/variable/feature 1
#Ejercicio de clasificación o regresión en Python
from sklearn import datasets

diabetes = datasets.load_diabetes ()
x = diabetes.data
y = diabetes.target

Desarrollo del ejercicio de clasificación o regresión en Python

Lo primero que haremos será determinar qué es x y qué es y, los datos de entrada:

x
Clasificación o regresión en Python

x, entonces, es un array que tiene una serie de valores, es decir, una cantidad de datos determinada.

type (x)

numpy.ndarray

Además de ser un array, x es un array de numpy.

Ahora observemos qué pasa con y:

y
¿Clasificación o regresión en Python? [Ejercicio práctico]

Observamos que también es un array.

type (y)

numpy.ndarray

y, al igual que x, es un array de numpy.

Ahora determinaremos cuántas filas y cuántas columnas tiene x. Esto se hace por medio de una función denominada shape:

x.shape

(442 . 10)

El shape nos dice que la matriz o array de x tiene 442 filas y 10 columnas.

¿Qué crees que pasa con y? ¿Poseerá las mismas características que x? Veamos:

y.shape

(442, )

¿Qué nos indica esto? Que y, a diferencia de x, tiene 442 filas, pero una sola columna.

Cada una de las filas en la tabla de datos va a tener un vector x de 10 valores y un número y.

Ahora veamos el número de muestras y sus respectivas dimensionalidades. Hay dos formas de hacerlo:

#clasificación o regresión en Python
N, d = X.shape
#Primera forma
print (f' El numero de muestras es {X.shape [0]} y la dimensionalidad es {X.shape [1]} ' )
#Segunda forma
print (f' El numero de muestras es {N} y la dimensionalidad es {d} ' )

El numero de muestras es 442 y la dimensionalidad es 10

El numero de muestras es 442 y la dimensionalidad es 10

Ahora lo que calcularemos será la muestra 10.

Como sabemos, las listas en Python empiezan en 0. Entonces, si lo que queremos es el elemento número 10, lo que necesitamos es la posición 9 en el array (0 = 1, 1 = 2, 2 = 3, 3 = 4, 4 = 5, 5 = 6, 6 = 7, 7 = 8, 8 = 9, 9 = 10).

Por la forma que tiene Python de manejar las listas o los vectores, queremos el elemento o fila número 9 y todas las columnas:

x [9, :]

array ([-0.07090025, -0.04464164, -0.03906215, -0.03321358, -0.01257658, -0.03450761, -0.02499266, -0.00259226, -0.06773633, -0.01350402])

Por último, determinaremos la característica/variable/feature 1.

El punto anterior, el de calcular la muestra 10, lo que nos estaba pidiendo era un afila. Por el contrario, este último punto lo que nos pide es una columna, en concreto la columna 1:

#clasificación o regresión en Python
#Así se saca la característica 1
x [: , 0]
#Determinar cuántas filas tiene el ejercicio que acabamos de hacer
print (len (X [: , 0]))
¿Clasificación o regresión en Python? [Ejercicio práctico]

442

Ahora bien, volvamos a la pregunta inicial: ¿tenemos suficientes datos para saber si esto es clasificación o regresión en Python?

Lo único que sabemos con certeza hasta el momento es que hay 442 muestras, pero no tenemos más información sobre esas muestras. Por ello, con lo que sabemos no podemos decir nada más; esto significa que no podemos determinar todavía si es clasificación o regresión en Python.

¿Cuál sería el dato crítico para poder definir si es o no clasificación o regresión en Python?

Necesitamos saber si la variable objetivo es continua o no.

Hay varias formas de acceder a esta información, veamos una de ellas, el numpy o np:

#clasificación o regresión en Python
#Nos muestra todos los elementos no repetidos del array
np.unique (y)
#Determinar cuántos elementos sin repetir tiene el array
len (np.unique (y))
¿Clasificación o regresión en Python? [Ejercicio práctico]

214

Con esta información ya podemos asumir que la variable objetivo es continua, por tanto concluimos que es un ejercicio de regresión.

No puede ser de clasificación porque tenemos 442 muestras en total y 214 no repetidas. Para ser de clasificación tendríamos que formar 214 grupos de entre 2 y 3 muestras cada uno, lo cual no califica como clasificación óptima. Esta es la razón para determinar que, efectivamente, es un ejercicio de regresión.

¿Quieres seguir aprendiendo? ¡En KeepCoding te tenemos la solución! Accede a nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que adquirirás todas las herramientas necesarias para incursionar en el sector IT. ¡Anímate a continuar tu viaje en el mundo IT y solicita más información!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado