Está en la página 1de 21

Ingeniería en Sistemas Computacionales

“REPORTE DE PRACTICAS”

PRESENTA

Carreola Sanchez Yannet


Sanchez Sanchez Jose Luis
Serapio Reyes Alejandra
Tellez Agustin Luis Angel

SEMESTRE

Cuarto

DOCENTE

BRUNO EMYR CARRETO CID DE LEÓN

ASIGNATURA

METODOS NUMERICOS

GRUPO

IC-0403
ÍNDICE
FUNCIONAMIENTO DEL ALGORITMO...............................................................................2

ANÁLISIS POR NUBE DE PUNTOS (K-MEANS)............................................................2


Funcionamiento.....................................................................................................................4
IMPLEMENTACIÓN DE LA MAQUINA DE APRENDIZAJE NO SUPERVISADA.........6

ANÁLISIS POR NUBE DE PUNTOS (K-MEANS)............................................................6


PRUEBA DE LA MAQUINA DE APRENDIZAJE NO SUPERVISADO............................7

ANÁLISIS POR NUBE DE PUNTOS..................................................................................7


Análisis Clustertizacion jerárquica..............................................................................................8

ANÁLISIS DE CLUSTERIZACION JERÁRQUICA.........................................................13


ANÁLISIS POR COMPONENTES PRINCIPALES.........................................................13
Conclusiones.........................................................................................................................19

Referencias.............................................................................................................................19

Manual de usuario.................................................................................................................19

ANÁLISIS POR NUBES DE PUNTOS (K-MEANS)........................................................19


ANÁLISIS POR CLUSTERIZACIÓN JERÁRQUICA......................................................20
ANÁLISIS POR COMPONENTES PRINCIPALES.........................................................21
FUNCIONAMIENTO DEL ALGORITMO

ANÁLISIS POR NUBE DE PUNTOS (K-MEANS)


El análisis de nube de puntos utilizando el algoritmo X-means es una técnica de
agrupamiento o clustering utilizada en el campo del aprendizaje automático y la
minería de datos. Este método es una extensión del algoritmo K-means, que
busca dividir un conjunto de datos en grupos o clusters basándose en la
similitud entre los puntos de datos.

K-means es un algoritmo de clasificación no supervisada (clusterización) que


agrupa objetos en k grupos basándose en sus características. El agrupamiento
se realiza minimizando la suma de distancias entre cada objeto y el centroide
de su grupo o cluster. Se suele usar la distancia cuadrática.

El algoritmo consta de tres pasos:

Inicialización: una vez escogido el número de grupos, k, se


establecen k centroides en el espacio de los datos, por ejemplo, escogiéndolos
aleatoriamente.

Asignación objetos a los centroides: cada objeto de los datos es asignado a su


centroide más cercano.

Actualización centroides: se actualiza la posición del centroide de cada grupo


tomando como nuevo centroide la posición del promedio de los objetos
pertenecientes a dicho grupo.
El código realizado para expresar el análisis de nubes (x - means) tiene como
función calcular los rangos de ingresos tanto los máximos como los mínimos, lo
mismos sucede con las transacciones que se ingresan dentro del programa.

Para poder iniciar con nuestro código empezamos utilizando los” import” que
sirven para utilizar diferentes bibliotecas externas, esto permite acceder a esos
objetos directamente sin tener que usar el nombre completo del módulo cada
vez que se hace referencia a ellos.

Dentro de nuestra estructura se ocupa un “def” que este nos ayuda a definir
una función, seguido de esto utilizamos una condición “while” que se puede
ejecutar mientras se realiza otra operación en el programa o simplemente para
evitar números infinitos dentro del programa.

Esta función nos servirá para pedir números enteros al usuario, esto lo
mandamos llamar con un print que lanzara el mensaje mostrado entre comillas,
así como en la parte posterior se puede visualizar que se define el numero a
llamar como valor que es igual a un int esto quiere decir que sea un tipo de
dato que permite representar números enteros, es decir, positivos y negativos
no decimales.
Continuamos con obtener la cantidad de datos para las matrices de saldo y
transacciones que se realizó de la siguiente manera:

Se puede ver que se definió como num_datos, a lo que también se le agrego la


función antes llamada, para así mandar un texto al usuario.

Por siguiente se generan las matrices aleatorias de números enteros dentro de


un rango especificado que solicita solo los rangos primero solicita el mínimo
rango de saldos y luego el máximo luego pasa a transacciones solicita el rango
mínimo y el máximo

La técnica es una de las más utilizadas para poder reducir la dimensionalidad


de los datos, pero conservando los datos que se tengan conocimiento, es decir
pasar de dos dimensiones a una sola dimensionalidad, o de tres dimensiones a
solo dos y así sucesivamente.

La manera de trabajar del análisis asume que mientras a mayor varianza más
información hay, es un método de proyección ya que otorga observaciones de
un espacio dimensional con n variable en un espacio de k dimensiones.

Se puede considerar un método para la minería de datos, ya que permite la


fácil extracción de un conjunto enorme de datos

Funcionamiento
Primero es obtener nuestro conjunto de datos

Después de tener nuestro conjunto de datos pasamos a estandarizar los datos,


se obtendrá prácticamente la misma posición de los datos salvo que con una
aproximación cercana a 0.
El siguiente paso es calcular la matriz de covarianza, se tiene que hacer esto
ya que el modelo se basa en una relación de covarianza que es igual a
información si se quiere reducir la dimensionalidad se tiene que medir como
varian dos variables.

Encontrar los vectores Eigen que se calcula a partir de la varianza.

Hacer la reducción de la dimensionalidad, rotando los vectores sobre los cuales


se va a proyectar los datos en una línea recta, a esto se le conoce como
reducción de dimensiones, pero conservando la mayor cantidad de información
posible.
IMPLEMENTACIÓN DE LA MAQUINA DE APRENDIZAJE NO
SUPERVISADA
ANÁLISIS POR NUBE DE PUNTOS (K-MEANS)

Teniendo en cuenta que también que se añaden las variables de cluster que se
buscan particiones en las que las observaciones sean similares entre sí

En esta parte del código se empieza la implementación de los datos que se


necesitan definir y se añade un DataFrame para poder trabajar con datos
tabulares, lo mismo se realiza con el escalador, que de este mismo se
desprende la función (datos) clientes. En la parte de numCluster

Que este nos ayudara para que muestre los datos al usuario correspondiente
respecto a los datos que ingresó.

No obstante, se definió otra función que fue llamada como mostrar_grafica,


como bien se nombró, es para que se muestre una gráfica de acuerdo con los
resultados lanzados.

Como se puede ver se define el tamaño con plt.figure, así como los colores que
se podrían utilizar al azar apoyándonos del comando colores y definiendo los
colores entre comillas en inglés, así mismo se integraron los cluster que antes
mencionado sirve para buscar particiones en las que las observaciones sean
similares entre sí, por otro lado, se define el título de la ventana, así como los
datos que integran la grafica

Por consiguiente, se crea el menú a mostrar, apoyándonos de la función


definida anteriormente, en donde entre comillas se puede ver las opciones que
se le da al menú
En esta parte del código se hizo uso de un “if” para poder seleccionar alguna
opción del menú ya que se mostrará que si no se elige la opción 1 se podrá
hacer la segunda opción del menú y de esta manera se podrá escoger la
opción seleccionada.

PRUEBA DE LA MAQUINA DE APRENDIZAJE NO SUPERVISADO

ANÁLISIS POR NUBE DE PUNTOS

Para nuestra prueba de maquina solo se agregaron los datos que se pedían en
el programa, como se puede ver en las ilustraciones, para agregar el valor de
las matrices de saldo y las transacciones que se piden.

Al finalizar de ingresar los datos se desplegará un menú en el cual se le


solicitará ingresar cualquiera de las tres opciones

Si selecciona la opción número 1 se mostrarán los datos que se generaron


para análisis de estos mismos.

Como se puede ver dependiendo de la opción que ingrese el usuario lo


mandara a realizar lo que se indicó.
Análisis Clustertizacion jerárquica

Para poder iniciar nuestro código iniciamos primero importamos todas nuestras
librerías que vamos a utilizar

Por medio de un diccionario se guardan los datos para el salario y las horas
trabajadas de la siguiente manera.

Primero se solicitan ingresar la cantidad de datos que va a guardar cada uno


de nuestros diccionarios, pasamos a ingresar el rango de los sobre la
generación de números aleatorios y posteriormente se generan los datos para
guardarlos en los diccionarios. Importante guardar los datos en un DataFrame

Con el siguiente código visualizamos de forma gráfica donde se ubica cada uno
de los datos, lo que hace es traer los datos ya generados de nuestros
diccionarios para agruparlos en la grafica
Pasamos al implemento de nuestro algoritmo como primer paso la
estandarización de nuestros datos donde vamos a agrupar a nuestros datos lo
más cercano a 0. Para estandarizarlos utilizamos la librería sklearn con la
función StandardScale que es lo que hace, nada más le pasamos nuestros
datos para que realice nuestra estandarización. También nos mostrara dos
diagramas de dispersión donde nos mostrara la gráfica normal y la
estandarizada.

El siguiente paso es la obtención de la matriz de la covarianza lo único que


tenemos que hacer es llamar a nuestra función .cov() y esta se encargara en
automático de hacer nuestra covarianza. Del mismo modo graficamos si
nuestra covarianza tiende a positivo o negativo
Para el siguiente paso hay que sacar los valores de Eigenovalores y
Eigenovectores se utiliza la librería numpy y su módulo de algebra lineal

Lo único que va a recibir es la matriz de covarianza, de igual manera se


grafican los vectores donde se van a ver las direcciones donde se proyectan
los datos
El último paso se tiene que hacer la proyección de los datos de la siguiente
manera solo hay que multiplicar los datos por los valores que obtuvimos
anteriormente

Por ultimó seleccionamos los componentes es decir las proyecciones de los


datos, importamos nuestro PCA y lo único que tenemos que hacer es generará
la instancia a través del método fit_transform una vez que le pasamos los
datos, esta contendrá las proyecciones.

Graficamos como lo hemos venido haciendo en los anteriores pasos


Se puede interpretar los datos como datos normalizados y en el apartado de
cluster indica a que apartado pertenece cada uno de los datos es decir 0=1,
1=2, 2=3 y así sucesivamente

Al seleccionar la opción 2 nos arrojara la gráfica donde se puede ver la


agrupación de los clusters que le asignamos al principio cada uno en un color
diferente.

ANÁLISIS DE CLUSTERIZACION JERÁRQUICA


ANÁLISIS POR COMPONENTES PRINCIPALES
Al realizar la ejecución del programa se obtuvieron los siguientes resultados:
Primero nos solicitara ingresar algunos datos

Una vez ingresados nos darán los resultados de cada paso que realizamos en
el código

Primero obtenemos nuestra organización de datos

Después nuestra estandarización de los datos, si observamos la gráfica a la


derecha todos los puntos tienden aproximarse al número 0
Visualizamos si nuestra covarianza es positiva o negativa
Checamos las direcciones de proyección de nuestros datos

Hacemos la extracción de nuestros componentes y graficamos sus


proyecciones
Conclusiones

Referencias

Manual de usuario

ANÁLISIS POR NUBES DE PUNTOS (K-MEANS)

Una vez ejecutado el programa nos solicitara ingresar el número de datos que
queremos generar, hay que ingresar datos enteros esta parte solo acepta
números enteros.

De la misma manera sucede con los demás datos al momento de ingresar lo


que solicite, ten en cuenta que para cada saldo le corresponde un número de
transacciones te recomendamos que las transacciones sean menores que los
saldos para tener un mejor resultado.
Una vez ingresados los datos se te desplegará un menú en donde vas a elegir
cualquiera de las tres opciones siéntete libre de elegir cualquiera de ellas solo
ingresa el número que le corresponde.

ANÁLISIS POR CLUSTERIZACIÓN JERÁRQUICA

Al momento de ejecutar el código se desplegó la solicitud de datos hay que


ingresar datos enteros no va a aceptar datos en punto decimal

Una vez ingresados los datos se desplegará un menú en donde hay que
seleccionar cualquiera de las opciones que aparecen ahí del mimo modo hay
que señalar de que no va a aceptar otros números que no estén señalados en
el menú

ANÁLISIS POR COMPONENTES PRINCIPALES

Al ejecutar este código lo único que te solicitara es que agregues los datos que
te solicitan, tienen que ser números enteros en todos los casos
Aquí a diferencia de los otros se te comenzara a desplegar una ventana, hay que cerrar la
ventana para que te de los demás datos de la gráfica una vez terminado de dar los resultados
el programa ya abra terminado

También podría gustarte