RoadMap
INTRODUCCIÓN
Si llegaste a este blog es porque te interesa el Machine learning y el Data Science el cual a partir de ahora lo llamaremos ML/DS. Es un tema que se ha puesto muy de moda en los últimos años y por supuesto muchas personas cada día se interesan en aprender sobre éstas disciplinas, sin embargo, para personas de habla hispana sin dominio en el inglés se les dificulta el acceso a la información y a personas sin experiencia añoran ese artículo en el cuál pueda conseguir un hoja de ruta que les indique el camino a seguir.
Sin lugar a dudas el primer paso a dar en éste mundo es conocer la herramienta principal con la cual vas trabajar y como quzá sabes o tal vez leiste esa herramienta es el Python, sin embargo python es un lenguaje muy versátil y de propósito general, nostros no quedaremos con la parte de Python que nos ayuda con las estructuras de datos y el análisis númerico.
PRIMEROS PASOS
Si tu experiencia con Python es nula primero debes empezar por la sintáxis del lenguaje. Por ejemplo:1. Python y su modo iterativo y modo script.2. Los identificadores.
- Las palabras reservadas.
- Las identaciones.
- Estructura y comentarios.
Cuando aprendemos solos se vuelve todo mas complicado y engorroso, lo mas sencillo es cometer errores y dejar puntos sin estudiar que a largo plazo te causarán mucho daño, por ello es importante estar atentos de cada paso que realizas y si tienes la posibilidad de un asesor recurre a el que seguro estará dispuesto a darte consejos para seguir un buen camino.
def sum(num1, num2):
result = num1 + num2
return result
num1 = 1
num2 = 1
result = sum(num1, num2)
print(result)
Si no entendiste nada en el ejemplo de arriba no te preocupes su principal objetivo es demostrarte varias cosas.
A diferencias de otros lenguajes los bloques de códigos se separa entre llaves, en Python a esas sangría que engloban ese bloque de código se le llaman identaciones y es muy importante tenerlas en claro porque al principio de nuestra aventura suele darnos muchos problemas.
Las palabras como por ejemplo def o return son palabras reservadas para realizar acciones predefinidas en el lenguaje, reconocerlas es bastante sencillo porque cambiarán su color dependiendo del editor de codigo que estemos uutilizando.
LOS DATOS
Luego de tener claro los temas básicos es importante tomar en cuenta que para programar ML/DS las estructuras de datos, puesto que, son la columna vertebral de nuestros algoritmos. Python nos permite trabajar con datos enteros, con coma flotante, cadena de carácteres o string, sin embargo, lo importante es como manejamos estos datos y para ello nuevamente Python no ofrece contenedores tales como:1. Listas.2. Arrays.
- Tuplas.
- Diccionarios.
Esos serán tus principales aliados al momentos de desarrollar los algoritmos, puesto que para analizar grandes volumenes de datos los debemos organizar de alguna manera y eso es lo que nos ofrecen éstos contenedores.
Cada uno de estos contendores tiene métodos para acceder a sus valores, agregar nuevo o eliminarlos es importate conocer cada uno de éstos metodos.
#Define una lista vacia
python_list = [] #Las listas en Python se definen entre corchetes []
num1 = 1
num2 = 3
#Para añadir elementos a la lista utlizamos el metodo append()
python_list.append(num1)
python_list.append(num2)
print('Haz añadido elementos en la lista de python')
print(python_list)
print('')
#Para verificar cuantos elemtos hay en tu lista utilizaos el metodo len()
print('La longitud de la lista es: ')
elements_qty = len(python_list)
print(elements_qty)
print('')
#Verifica el indice de un valor específico con el metodo Index()
index = python_list.index(1)
print('El indice del elemento seleccionado es :')
print(index)
print('')
#A la listas puedes añadir string y si quieres añadir el dato en cualquier posicion de la lista utiliza el medoto insert()
char = 'Hola'
python_list.insert(0, char) #En este caso insertamos en la posición 0 nuetra variable char
print('Esta es tu nueva lista: ')
print(python_list)
print('')
#Para acceder a un elemento de la lista
element = python_list[1]
print('Elemento de la lista en la posicion 1: ')
print(element)
print('')
#Y si quieres eliminar todos los elemetos de la lista utliza el metodo clear()
python_list.clear()
print('Ahora esta es tu lista vacia: ')
print(python_list)
Éste es solo un pequeño ejemplo del poder que tienen las listas en Pytthon, por ello es importante que aprendas a utilizarlas muy bien y de esa manera puedas sacarle todo el provecho que ellas te dan.
Las tuplas es otro de los contenedores de datos muy utilizadas en em ML/DS al igual que las listas nos sirven para empaquetar datos de distintos tipos con la diferencia que son inmutables, es decir, no se pueden cambiar o modificar. Son utiles para tener valores separados por coma, como por ejemplo en Python las coordenadas (x, y) las representamos con tuplas. Python te permite tener listas de tuplas y en este caso las tuplas pasan a ser elementos de una lista como la que vimos en el punto anterior.
#Define una tupla, notese que las tuplas se definen con parentesis
my_tuple = ('Python', 'ML', 'DS', 5, 5)
#Para contar la cantidad de un elemento X en una tuple utiliza el mentodo count(), Este método tambien es aplicable a listas
python_count = my_tuple.count('Python')
ML_count = my_tuple.count('ML')
five_count = my_tuple.count(5)
print('Cantidad de Python en la tupla')
print(python_count)
print('')
print('Cantidad de ML en la tupla')
print(ML_count)
print('')
print('Cantidad cincos en la tupla')
print(five_count)
#El metodo len() nos devuelve la longitud de la tupla
length = len(my_tuple)
print('')
print('Longitud de la tupla: ')
print(length)
print('')
#Podemos asignar los elementos de la tupla a variables
python, ml, ds, x, y = my_tuple
print('Un ejemplo de ello: ')
print(ml, python, ds)
print('')
#Podemos crear una lista de tuplas
tuple_1 = (5,5)
tuple_2= (10, 10)
tuple_3 = (18, 18)
tuple_list = [tuple_1, tuple_2, tuple_3]
print('Lista de tuplas: ')
print(tuple_list)
Con éstos dos ejemplos te invito a seguir esta ruta haciendo los mismo análisis e implementación con los diccionarios y los arrays y no te detengas hasta tener un sólido conocimiento de ello, recuerda que éstos serán los cimientos de tus algoritmos.
Bucles y condicionales
Son parte fundamental de la programación y es de vital importancía compenderlos de manera microscopica.
Los condicionales, son la estructura de control del porgrama y con ello puedes ejecutar intrucciones siempre y cuando se cumpla una condición. (if, else, elif)
Los bucles son bloques de codigo que se ejecutan de manera cíclica hasta cumplir un objetivo. (for, while)
#Podemos hacer print de manera iterativa a los elementos de la lista que definimos anteriormente
print('Elementos de una lista')
for i in tuple_list:
print(i)
#Podríamos leer el siguiente extracto de código de la siguiente forma:
#Para i en my_list imprimir i. Tomar en cuenta que el trabajo del bucle for
#es recorrer bien sea lista, o hacer iteraciones un numero predefinido de veces
#como veremos ahora.
print('')
print('El bucle for como contador')
for i in range(0, 10):
print(i)
print('')
print('Función del bucle while')
var = 0
while var < 10:
print(var)
var += 1
def math(num1, num2):
if num1 > num2:
return num1 - num2
else:
return num1 + num2
result_1 = math(1, 2)
result_2 = math(2, 1)
print('Resultado si se cumple la conducion')
print(result_1)
print('')
print('Resultado si no se cumple la condicion')
print(result_2)
Visualización de datos
Es una práctica que nos permite traducir información en nuestros datos que en ocasiones puede estar oculta a un gráfico, pueden ser mapas ó gráficos. El objetivo principal de ésta práctica es análisis de los datos, indetificar patrones o tal vez tendencias, tambien valores a típicos y ésto nos ayudará a decidir que camino vamos a tomar para resolver el problema que vamos a enfrentar.
Dentro del ML/DS trataremos con muy grandes volúmenes de datos ello hace casi imposible analizar los datos en bruto y sin la ayuda de los gráficos, por esa razón, es importate que las personas que aspiran a ser profesionales en ésta disciplina tengan un sólida base con la visualización de los datos y eso te va a resolver muchos problemas.
En Python hay librerías que nos ayudan a visualizar los datos y las principales utilizadas por la mayoría de los científicos de datos son Matplotlib y Seaborn sin duda alguna recomiendo profundizar en las implementaciones con éstas librerías.
Es importante que profundices en el tema hasta que seas nivel experto, dejar brechas en el aprendizaje puede cobrar factura más adelante al enfrentarte a problemas complejos, por esa razón te invito a navegar en la web conseguirás mucha información sobre éstos temas.
Clases y funciones
Una función es una porción o bloque de código reutilizable que se encarga de realizar una determinada tarea.
Una clase es un tipo de dato definido por el usuario, y la crear instancias de una clase hace relación a la creación de objetos de ese tipo. Las clases y los objetos son considerados los principales bloques de desarrollo para Python, el cual es un lenguaje de programación orientado a objetos.
Como puedes notar es algo más complejo de entender pero dominarlas es lo que nos dará esa soltura para escribir código y resolver problemas. Aunque pueda parecer muy complicado no te desanimes al principio son algo engorrosas pero sin duda es la clave para hacerte la vida mucho más sencilla al momento de escribir código.
Veamos un pequeño ejemplo de clases:
class Person:
name = ''
school = ''
def print_information(self, name, school):
print(self.name)
print(self.school)
jorge = Person()
jorge.name = 'Jorge'
jorge.school = 'Universidad de la vida'
jorge.print_information(jorge.name, jorge.school)
¿Y ahora que sigue?
Si dominas la sintaxis, tipos de datos, funciones y clases ya estás listo para empezar con los algoritmos básicos de Machine Learning. Mi recomendacion muy personal es que siempre escribas código si aprendes un nuevo algoritmo escribe código, pruebalo hazle cambios y juega, esa es la única forma en la que el conocimiento adquirido quedará impregnado en tu memoria.
Puedes seguirnos en nuestra cuenta de twiter y unirte a nuestra comunidad, tenemos sesiones de estudio grupales, mentores que pueden ayudarte a resolver cualquier duda que tengas.
twitter: https://twitter.com/ia_en_venezuela