Читать книгу: «Introducción al Machine Learning con MATLAB», страница 5

Шрифт:

Varianza

Al tratarse de una muestra, se utiliza la ecuación 2.21. Del ejemplo anterior tenemos que n = 16 y = 70; por tanto, sustituyendo los valores, obtenemos lo siguiente:


Desviación estándar

Para la desviación estándar, se calcula la raíz cuadrada de la varianza:


Rango

El cálculo del rango involucra la diferencia entre el valor máximo y el mínimo del conjunto de datos, como se muestra a continuación:



Figura 2.7. Medidas de variabilidad.

Al igual que las medidas de tendencia central, MATLAB integra funciones para el cálculo de las medidas de variabilidad. Se realizan con los siguientes comandos:

sigma = var(datos);

s = std(datos);

R = range(datos);

El programa en MATLAB correspondiente se muestra a continuación:

% Se cargan los datos

X = [70,50,40,70,80,70,60,90,70,70,100,80,60,70,80,60];


% Cálculos de medidas de variabilidad

sigma = var(X);

s = std(X);

R = range(X);


% Resultados

fprintf('Medidas de variabilidad: \n');

fprintf('Varianza: %f \n Desviación estándar: %f \n Rango: %f

\n\n',sigma,s,R);


----------------------------------------------------------------

Resultados

----------------------------------------------------------------

Medidas de variabilidad:

Varianza: 213.333333

Desviación estándar: 14.605935

Rango: 60.000000

Algoritmo 2.2. Medidas de variabilidad.

2.3.3. Herramientas gráficas

Las herramientas gráficas dentro de la estadística poseen un rol muy importante para conseguir una clara descripción de los datos. El principal potencial de los métodos gráficos permite identificar determinados patrones, o relaciones entre los datos, de forma relativamente sencilla y rápida. Existen una gran variedad de métodos y teoría detrás de la representación de los datos de forma gráfica. En este apartado se presentan algunos de los métodos básicos. Se recomienda explorar la bibliografía para profundizar en el tema [6-7].

2.3.3.1 Gráfica de líneas

La gráfica de líneas se utiliza para observar las tendencias de una variable a través del tiempo. El eje-x, generalmente, se usa para representar la variable de tiempo de manera ordenada, y en el eje-y se coloca el valor de la medición. Los elementos graficados se unen mediante una línea recta, de ahí el nombre de «gráfica de líneas»:

plot(x,y);

donde x es la variable del tiempo e y las mediciones. La función plot, al igual que otras que se introducen en este apartado, cuenta con más opciones de configuración, las cuales se deja al lector para que profundice en ellas en la documentación oficial [8]. En la figura 2.8 se muestra la gráfica de línea referente a la población de cinco estados de México entre 1990-2020, donde se puede apreciar, de forma clara, una tendencia creciente.


Figura 2.8. Gráfica de líneas.

2.3.3.2 Gráfica de barras

La gráfica de barras se utiliza, principalmente, para comparar elementos o para observar cómo evolucionan en el tiempo. La gráfica se construye a partir de datos categóricos, y en ella se muestra la frecuencia de los datos. En la gráfica más común de este tipo, se exhiben en el eje-x las mediciones o los periodos de tiempo, y en el eje-y la frecuencia de los datos. Existen variantes, utilizadas para comparar diversas categorías, como las gráficas de barras agrupadas y apiladas.

En la figura 2.9 se ilustran las ventas mensuales de algunos productos de una tienda departamental en distintas presentaciones de gráficas de barras. En los gráficos 2.9(a) y 2.9(b) se muestra la venta mensual del mismo producto en la gráfica de barras de tipo vertical y horizontal, respectivamente. En la figura 2.9(c) se agrupan las ventas de tres productos distintos por mes, lo que permite una rápida comparación entre los diversos elementos involucrados. Por último, en la figura 2.9(d) se apilan las ventas de los productos en una barra por mes, lo que ofrece otra perspectiva de los datos.


Figura 2.9. (a) Gráfica de barras vertical, (b) horizontal, (c) agrupada y (d) apilada.

Las funciones empleadas para las cuatro gráficas de barras de la figura 2.9 tienen las siguientes sintaxis:

bar(datos,w);

barh(datos,w);

bar(datos2,w);

bar(datos2,w,'stacked');

donde datos es un vector columna de n elementos, que representan la frecuencia de cada categoría; w es el ancho de la barra que, por defecto, es 0.8; bar coloca en la gráfica las barras de forma horizontal; datos2 es una matriz de datos de n categorías por m clases —en nuestra gráfica, tenemos seis categorías (meses) de tres productos (clases)—, y 'stacked' sirve para indicar que corresponde a una gráfica de barras apilada. El código completo se presenta en el algoritmo 2.3.

%V ector de 6x1 datos aleatorios

datos = randi(50,6,1);


% Gráfica 2.8(a)

subplot(2,2,1);

bar(datos,0.5);

% Manejador de ejes

ax = gca;

ax.XTick=1:6;

ax.XTickLabels={'Enero','Febrero','Marzo','Abril','Mayo','Junio'};

ax.XTickLabelRotation = 45;


% Gráfica 2.8(b)

subplot(2,2,2);

barh(datos,0.5);

% Manejador de ejes

ay = gca;

ay.YTick=1:6;

ay.YTickLabels={'Enero','Febrero','Marzo','Abril','Mayo','Junio'};

ay.YTickLabelRotation = 45;


% Vector de 6x3 datos aleatorios

datos2 = randi(50,6,3);


% Gráfica 2.8(c)

subplot(2,2,3);

bar(datos2,0.5);

% Manejador de ejes

ax = gca;

ax.XTick=1:6;

ax.XTickLabels={'Enero','Febrero','Marzo','Abril','Mayo','Junio'};

ax.XTickLabelRotation = 45;

legend('P1','P2','P3');


% Gráfica 2.8(d)

subplot(2,2,4);

bar(datos2,0.5,'stacked');

% Manejador de ejes

ax = gca;

ax.XTick=1:6;

ax.XTickLabels={'Enero','Febrero','Marzo','Abril','Mayo','Junio'};

ax.XTickLabelRotation = 45;

legend('P1','P2','P3');

Algoritmo 2.3. Gráficas de barras.

2.3.3.3 Gráfica de cajas

Los diagramas de cajas son una herramienta versátil, que brinda información tanto de tendencia central como de variabilidad de los datos, en un espacio relativamente pequeño. La estructura del diagrama de cajas se muestra en la figura 2.10, en la cual se aprecian los elementos principales, que son el mínimo, el primer cuartil (Q1), la mediana (Me), el tercer cuartil (Q3) y el máximo. Son cinco valores que forman cuatro intervalos. Cada uno de ellos contiene el 25 % de los datos; es decir, entre el mínimo y el Q1 se encuentra el 25 % de los datos más pequeños, y así para los otros intervalos. Para formar la caja, se tienen tres componentes Me, la mediana del conjunto total de los datos. Q1 es la mediana del grupo de datos más pequeño a Me, y Q3 la mediana de los datos que se hallan entre Me y el dato más grande. El valor mínimo y máximo se obtiene con las siguientes ecuaciones:




donde IQR es el rango intercuartil y el valor de 1.5 es un factor que puede variar, de acuerdo con cómo de estricto o flexible se quiera ser para considerar determinados datos, como valores válidos o atípicos. A las líneas que unen a los valores mínimo y máximo con los extremos de la caja Q1 y Q3, respectivamente, se las conoce como «bigotes».


Figura 2.10. Elementos de diagrama de caja.


Tabla 2.1. Extracto de conjunto de datos iris.

Para implementar las gráficas de cajas en MATLAB, se utiliza la base de datos iris. El conjunto iris contiene 50 instancias de 3 especies distintas de iris, y cada instancia es la medición en centímetros del largo y ancho del sépalo y el pétalo. Un extracto de los datos iris se muestra en la tabla 2.1.

El comando para construir la gráfica tiene la siguiente sintaxis:

boxplot(datos);

donde datos puede ser un vector para graficar una sola caja o una matriz para múltiples cajas en el mismo gráfico, como se muestra en la figura 2.11. El código de implementación se presenta en el algoritmo 2.4.

En la figura 2.11 se presentan cuatro gráficas de cajas, correspondientes a cada uno de los atributos de la base de datos iris. Al inspeccionar los diagramas, se pueden observar ciertas características de los datos, como que el largo del pétalo y el ancho del sépalo son las mediciones con mayor y menor variabilidad respectivamente, o la presencia de valores atípicos en el ancho del sépalo, entre otros. Además del gráfico en el programa 2.4 se utiliza la función quantile para el cálculo numérico de Q1 y Q3 de la siguiente manera:

Q = quantile(datos,p);

donde p es el valor de la probabilidad acumulada y tiene valor entre el intervalo [0,1]. Al ejecutar el algoritmo 2.4, se calcula de forma numérica los valores mínimo y máximo mediante las ecuaciones 2.25 y 2.26. Si los comparamos con el gráfico pueden variar un poco, debido a que la función boxplot toma del conjunto de datos el valor más próximo a los calculados, siempre y cuando no entren en la categoría de valores atípicos.


Figura 2.11. Gráfica de caja.

% Se cargan los datos

load iris.dat

etiquetas = {'Largo Sépalo','Ancho Sépalo','Largo Pétalo','Ancho Pétalo'};


% Gráfico de caja

boxplot(iris(:,1:4),etiquetas);


% Valores numéricos para los boxplot

D = zeros(4,8);

for i=1:4

datos = iris(:,i);

Y = quantile(datos,[0.25 0.75]); %Q1 y Q3

D(i,2)= Y(1); D(i,4)=Y(2); %Q1 y Q3

D(i,3) = median(datos); %Mediana

D(i,6) = D(i,4) - D(i,2); % IQR

D(i,1) = D(i,2) - D(i,6)*1.5; % mínimo

D(i,5) = D(i,4) + D(i,6)*1.5; % máximo

D(i,7) = min(datos); %Dato mínimo

D(i,8) = max(datos); %Dato máximo

end


% Resultados

fprintf("Cálculos numéricos: \n\n");

calculos = {'Minimo','Q1','Media','Q3','Maximo','IQR','Min','Max'};

T = array2table(D,'VariableNames',calculos,'RowNames',etiquetas);

disp(T)


----------------------------------------------------------------

RESULTADO

----------------------------------------------------------------

Cálculos numéricos:


Mínimo Q1 Media Q3 Máximo IQR Min Max

______ __ _____ __ ______ ___ ___ ___


Largo Sépalo 31.5 51 58 64 83.5 13 43 79

Ancho Sépalo 20.5 28 30 33 40.5 5 20 44

Largo Pétalo -36.5 16 43.5 51 103.5 35 10 69

Ancho Pétalo -19.5 3 13 18 40.5 15 1 25

Algoritmo 2.4. Gráfico de caja.

2.3.3.4 Histograma

El histograma es una herramienta muy utilizada en la estadística, ya que permite generar una idea sobre la distribución aproximada de los datos. Los histogramas están construidos por intervalos adyacentes, consecutivos, y en la mayoría de los casos del mismo tamaño. Cada elemento del conjunto de datos se asigna a un intervalo, que se representa con una barra del tamaño de la frecuencia de los datos. Debido a la forma en que se construye, se puede confundir con una gráfica de barras; sin embargo, cabe recordar que las gráficas de barras se utilizan para comparar datos y mostrar cambios en el tiempo, y, con los histogramas, se busca representar la distribución de los datos. Para graficar un histograma en MATLAB, se cuenta con la función histogram, que dispone de la siguiente sintaxis:

h = histogram(datos);

Donde h es un objeto que almacena distintas propiedades del histograma, como la frecuencia de cada intervalo o el número de intervalos. La función calcula, de manera automática, el ancho de los intervalos, de tal manera que todos sean del mismo tamaño y no exista traslape entre ellos. En la figura 2.12 se muestra el histograma de un conjunto de datos. En una inspección rápida del gráfico, podemos determinar algunas características, como la distribución aproximadamente normal, con una media cercana a 30, y ligeramente asimétrica positiva. La media real de los datos es de 30.57, la cual resulta muy cercana a lo observado y refleja una de las ventajas de los histogramas. En el algoritmo 2.5 se expone el código de implementación del histograma.


Figura 2.12. Histograma.

% Cargar los datos iris

load iris.dat

% Histograma del ancho del sépalo

h = histogram(iris(:,2));

% Número de intervalos

fprintf('Número de intervalos: %i \n', h.NumBins);

% Media

fprintf('Media: %.2f \n', mean(iris(:,2)));


----------------------------------------------------------------

RESULTADOS

----------------------------------------------------------------


Número de Intervalos: 25

Media: 30.57

Algoritmo 2.5. Histograma.

2.4 Álgebra lineal

El álgebra lineal es un campo de las matemáticas universalmente aceptado como un requisito para una comprensión más profunda del Machine Learning. Por otra parte, también engloba numerosas teorías, herramientas y notaciones. A continuación, se presentará una base de álgebra lineal centrada en el uso del Machine Learning. Se ha de recordar que el álgebra lineal es el estudio de los vectores, las matrices, los espacios vectoriales y sus transformaciones lineales [5].

2.4.1. Vectores y matrices

En su forma elemental, las matrices y vectores son solamente una lista de valores reales en diferentes estructuras o formatos. Un n-vector es una lista de n números (x1, x2, …, xn). Dicho vector fila también se podría escribir/estructurar con un vector columna, como se muestra a continuación:


El conjunto de todos los n-vectores es denotado como . El conjunto está representado por un valor real. El conjunto está representado por un plano cartesiano, y el conjunto consiste en puntos en un espacio tridimensional.

2.4.2. Suma, resta y producto escalar de vectores

Existen dos operaciones básicas vectoriales: la suma de vectorial y el producto escalar. Considere los siguientes vectores:


Como se puede ver, la suma vectorial está definida como una suma de los componentes de cada vector.

En la multiplicación escalar se encuentra definida una multiplicación de sus componentes. Un escalar es solamente un valor numérico. Inicialmente, se usa el término «escalar» para referirnos a un número real. Suponga un número real r. La multiplicación de un vector x por el escalar r se halla definida como se muestra a continuación:


La resta de vectores se define simplemente como:


donde, formalmente, la resta de vectores puede definirse así:


% Se definirán 2 vectores fila a y b, adicionalmente el escalar r

a=[-4,3,8]

b=[2,4,6]

r=-0.5;

% Realizamos la operación de suma, resta y producto

suma=a+b

resta=b-a

prod=r*a

---------------------------------------------------------------

RESULTADO

---------------------------------------------------------------

a = -4 3 8

b = 2 4 6

suma =-2 7 14

resta =6 1 -2

prod = 2.0000 -1.5000 -4.0000

Algoritmo 2.6. Programa para la definición de vectores y sus operaciones básicas.

2.4.3. Norma vectorial

El cálculo de la longitud o magnitud de vectores se requiere, frecuentemente, como una medida de regularización en el aprendizaje máquina. En este apartado, descubrirá la manera de calcular la magnitud de un vector o la norma de un vector. La norma del vector es un número no negativo con el que se describe la extensión del vector en el espacio y se calcula utilizando alguna medida con la que se resume la distancia del vector desde el origen del espacio vectorial.

2.4.3.1 Norma L1

La longitud de un vector puede ser calculada usando la norma Manhattan, también conocida como norma L1, la cual es definida por:


donde |−| constituye el valor absoluto. Esta norma se calcula realizando la suma absoluta de los valores del vector. En varias aplicaciones de aprendizaje máquina, resulta importante discriminar entre elementos que son exactamente cero y elementos muy cercanos a cero, pero no cero. Esta norma se utiliza, a menudo, cuando se ajustan los algoritmos de aprendizaje máquina como método de regularización.

2.4.3.2 Norma L2

La longitud de un vector puede ser calculada usando la norma euclidiana, también conocida como la norma L2. Está definida como:


De donde se desprende como resultado un valor positivo, correspondiente a la distancia desde el origen hasta la posición del vector. La norma L2 es la más utilizada como método de regularización en algoritmos de Machine Learning:

% Definimos el vector columna x e y

x=[4;1;10]

y=[1;2;3]

% Con l especificamos el tipo de norma a calcular

l=1;

% Se calcula norma L1 respecto al origen

N1 = norm(x,l)

% Se calcula norma L2 entre los vectores x e y

l=2;

n2 = norm((x-y),l)

---------------------------------------------------------------

RESULTADO

---------------------------------------------------------------

n1 = 15

ns = 7.6811

Algoritmo 2.7. Programa para la definición de vectores y el cálculo de diferentes normas.

2.4.4. Matrices

Las matrices son la principal estructura de datos utilizada en el aprendizaje máquina. En MATLAB, los llamados n-vectores o arreglos n-dimensionales se usan como la estructura principal para representar datos.

Una matriz de m × n es una estructura rectangular de datos con m filas y n columnas. Una matriz m × n tiene la siguiente forma:


Se usa la convención de los elementos de la matriz aij. Están estructurados, donde el subíndice i hace referencia a la fila, y el subíndice j a la columna del elemento. Por lo tanto, el elemento a31 es aquel que se encuentra en la tercera fila, la primera columna de la matriz A.

Una matriz A de m × n y una matriz B de m′ × n′ son idénticas si el tamaño (m = m′ y n = n′) y los correspondientes elementos son iguales (aij = bij).

Existe cierta redundancia en los términos «vector» y «matriz». Considere un vector fila de n elementos, que puede ser considerado como una matriz 1 × n elementos, y un vector columna de n elementos, que puede ser concebido como una matriz n × 1.

2.4.4.1 Suma, resta y multiplicación de matrices

De forma análoga a la suma de vectores, la suma de dos matrices de m × n elementos supone la suma de sus respectivos componentes, donde la restricción para realizar la suma de las matrices es que tengan las mismas cantidades de filas y columnas, como se muestra en el ejemplo:


Restar es muy parecido a sumar, por lo que la misma restricción de la suma se aplica a la resta de matrices:


Existen dos tipos de multiplicaciones de matrices. Una se llama «producto punto» y la otra «producto cruz».

2.4.4.2 Multiplicación escalar de una matriz

En la multiplicación escalar de una matriz es el producto del valor escalar por cada elemento de la matriz, como se muestra a continuación:


% Definimos las matrices a y b, adicionalmente el escalar c

A=[1,2,3;4,5,6]

B=[1,1,1;2,2,2]

c=2


% Realizamos la suma de las matrices A+B

S=A+B

% Realizamos la resta de las matrices A-B

R=A-B


% Realizamos el producto escalar c*A

P=c*A

---------------------------------------------------------------

RESULTADO

---------------------------------------------------------------

S =

2 3 4

6 7 8



R =

0 1 2

2 3 4



P =

2 4 6

8 10 12

Algoritmo 2.8. Programa para la suma, resta y producto escalar de matrices.

2.4.4.3 Multiplicación de matrices

El producto punto también es conocido como «producto interno». La notación cambia; en vez de ser una ×, debemos colocar un punto. Así, ·, la multiplicación, funciona de esta forma: cada dos elementos correspondientes, los multiplicamos y, luego, se suma cada elemento. El resultado será un escalar. Tenga en cuenta que el producto punto no es más que la suma de los productos de los elementos correspondientes.

Solo podemos multiplicar una matriz mxn por una matriz nxk. Básicamente, la segunda dimensión de la primera matriz tiene que coincidir con la primera dimensión de la segunda matriz. La operación se realiza de la siguiente forma:



Ejemplo numérico: producto punto de dos matrices

Para este ejemplo se consideran las matrices A y B:


Para este caso, las operaciones se realizan de la siguiente manera:


Con estos valores de las matrices, las operaciones toman esta forma:


El resultado es:


A continuación, se realizará el mismo ejemplo en el ambiente de programación de MATLAB:

% Definimos las matrices A y B

A=[1,2,3;4,5,6]

B=[2,4;-1,1;3,6]

% Realizamos el producto punto de A*B

P=A*B

---------------------------------------------------------------

RESULTADO

---------------------------------------------------------------


P =

9 24

21 57

Algoritmo 2.9. Programa para el producto punto de dos matrices.

Бесплатный фрагмент закончился.

1 355,03 ₽

Начислим

+41

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе

Жанры и теги

Возрастное ограничение:
0+
Объем:
595 стр. 576 иллюстраций
ISBN:
9788426733542
Издатель:
Правообладатель:
Bookwire
Формат скачивания:
18+
Текст
Средний рейтинг 4,7 на основе 136 оценок
Черновик, доступен аудиоформат
Средний рейтинг 4,5 на основе 49 оценок
Черновик
Средний рейтинг 4,6 на основе 21 оценок
Аудио
Средний рейтинг 4,1 на основе 1017 оценок
Текст, доступен аудиоформат
Средний рейтинг 4,4 на основе 18 оценок
Текст, доступен аудиоформат
Средний рейтинг 4,7 на основе 997 оценок
Черновик
Средний рейтинг 4,3 на основе 51 оценок
Черновик
Средний рейтинг 4,9 на основе 211 оценок
Аудио
Средний рейтинг 4,8 на основе 5215 оценок
Аудио
Средний рейтинг 4,6 на основе 1058 оценок
Текст
Средний рейтинг 0 на основе 0 оценок