Skip to content

MrBugHere/OII443_Desafio_3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OII443_Desafio_3

Descripción

Manuel está interesado en el mercado del desarrollo móvil, por lo que comenzó a recopilar toda la información de las aplicaciones más descargadas de una tienda. Manuel le pide a su equipo (uds.) que le hagan un programa que, a partir de los datos recopilados, obtenga información de aplicaciones similares a las que se encuentra desarrollando.

Solución

Para realizar el programa solicitado por manuel, el equipo acordó utilizar la estructura KDTree para determinar que aplicaciones son similares y poder analizar de mejor manera los datos recopilados por Manuel.

Preprocesamiento de datos

El preprocesado que se utiliza es el one hot encoding, en el caso de la columna Genre, se obtienen los elementos únicos para generar la matriz de ceros y unos. Por ejemplo la fila 1 referencia al elemento 1 del dataset y las columnas se refieren a todos los géneros que se encuentran en el dataset. Si el elemento pertenece al género 7, en la matriz se inserta un 1 en la fila 1 columna 7 para indicar ese género. Esto se aplica también a los datos ratingUser, price y contentRating.

Implementación de KDTree

Para la implementación se utilizaron las clases KDnode y KDtree. La primera contiene la información que se está analizando. Luego la clase KDtree cuenta con los atributos: Nodo raíz, la data que se está analizando y las dimensiones. Dentro también se encuentra la función generateTree(), la cual es la encargada de crear el árbol que buscará los elementos de mayor similitud.

class KDnode:
    def __init__(self, content, depth, split):
        self.content = content
        self.depth = depth
        self.split = split
        self.left = None
        self.right = None
class KDtree:
    def __init__(self, data, dimensions):
        self.rootNode = None
        self.data = []
        self.data = data
        self.dimensions = dimensions
        self.generateTree()

La función generateTree() crea el nodo raíz y luego mediante la función expandNode() se expande, donde se itera este proceso dependiendo de los niveles que se deseen.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages