A continuación un mini curso sobre el concepto de árboles de decisión y bosques aleatorios en Machine learning.
Si te gusta esta foto |
A continuación un mini curso sobre el concepto de árboles de decisión y bosques aleatorios en Machine learning.
Si te gusta esta foto |
Para poner un equipo de Windows 10 dentro de un dominio, tenemos que pulsar con el botón derecho del ratón sobre el icono de Windows de la parte inferior izquierda de la pantalla. Esto nos abre un menú contextual en el cual elegimos la opción Sistema
Esto nos abre una pantalla sobre la cual tenemos que pulsar a la derecha hacia el centro donde dice configuración avanzada del sistema
Con lo que se nos abre otra pantalla con las propiedades del sistema, sobre ella elegimos la pestaña Nombres del equipo y pulsamos sobre el botón cambiar.
Lo que nos abre la pantalla final, sobre la cual aparece el nombre de nuestro equipo (que podemos cambiar si lo deseamos) y también podemos escribir el nombre del dominio al que deseamos que pertenezca. Normalmente será un dominio privado de una empresa o una red local. O bien un grupo de trabajo si pulsamos la opción inferior.
He seguido un montón de artículos, post, tutoriales sobre redes neuronales y en todos se explica muy bien como entrenar una Red neuronal (siempre con datos prefabricados, nunca con los propios datos del usuario) pero a la hora de utilizar la red neuronal entrenada, la mayoría de post o tutoriales dan la lección por aprendida e inexplicablemente terminan. Con lo que nos quedamos con una maravillosa red neuronal entrenada, pero no sabemos cómo utilizarla con nuestros propios datos porque nadie nos lo ha explicado.
Voy a intentar explicar aquí como entrenar (con nuestros propios datos) y utilizar una red neuronal también con nuestros propios datos. Aunque me voy a centrar más en la utilización, pues el entrenamiento está sobradamente explicado en miles de sitios en internet.
Comenzaremos generando nuestros propios datos En este caso he utilizado un dataset de 37.000 líneas de resultados de partidos de la liga española para predecir las quinielas.
El entrenamiento de la red neuronal lo explicaré solo con esta imagen.
El post completo con el código y sus pertinentes explicaciones ya lo publique aquí
Una vez entrenada nuestra red neuronal procedemos a utilizarla. Para ello debemos crear otro dataset con la misma estructura del que utilizamos para entrenar nuestra red, pero con los datos a predecir, es decir en este caso las columnas de resultados aparecen a cero.
Una vez entrenada la red neuronal cargamos el nuevo dataset que tendrá la misma estructura que el anterior pero con las etiquetas (datos de entrenamiento) a cero, Pues son los datos que la red debe predecir. En la imagen inferior se han recuadrado en rojo, los datos y en azul las etiquetas (los datos a predecir)
Lo primero que tenemos que hacer es cargar el nuevo dataset del que queremos predecir los resultados.
#Con clasificación en datos
quinielas = pd.read_csv('Dataset_Resultados_147.csv' )
quinielas = quinielas.sample(frac = 1).reset_index(drop = True)
Tratamos el dataset de la misma forma que hicimos en entrenamiento (post enlazado anteriormente)
from sklearn.preprocessing import LabelEncoder
lb_make = LabelEncoder()
x_Nuevos_data = quinielas.drop(columns=['temporada','Q1','QX','Q2','QGC0','QGC1','QGC2','QGCM','QGF0','QGF1','QGF2','QGFM','golesLocal','golesVisitante','fecha'])
ss = preprocessing.StandardScaler()
x_Nuevos_data = ss.fit_transform(x_Nuevos_data)
x_Nuevos_data[:19] #Numero de filas, si pongo más sale el máximo (19 en este
caso)
#Son 25 campos, le quitamos 15 de etiquetas quedan 10 campos
Igual que hicimos con los datos de entrenamiento cargamos los datos normalizados en un dataframe de Pandas
x_Nuevos_data = pd.DataFrame(x_Nuevos_data)
y_Nuevos_data = quinielas ['Q1'] #Va a predecir el valor Q1 1 es 1, 0 es no uno, es decir X o 2
x_Nuevos_data = np.array(x_Nuevos_data).astype('float32')
y_Nuevos_data = np.array(y_Nuevos_data).astype('float32')
Y finalmente, aquí es donde cambiamos la operativa respecto al entrenamiento de la red neuronal y predecimos los valores
loss, accuracy = model.evaluate(x_Nuevos_data,y_Nuevos_data,verbose = 0)
#vemos el valor de loss y accuracy
print('loss = {:2f}'.format(loss))
print('Accuracy =
{:2f}'.format(accuracy))
X_new = x_Nuevos_data[:19] #Numero de filas, si pongo más
sale el máximo (19 en este caso)
y_proba = model.predict(X_new)
y_proba.round(4)
#Redondeo a 4 decimales
Esta última línea nos genera un array de dos dimensiones, la primera columna muestra la probabilidad de 0 (es decir que sea una X o un 2 en la quiniela) y la segunda la probabilidad de 1 ( 1 en la quiniela).
También podemos visualizar los resultados finales en vez del array de probabilidades con estas líneas
y_pred =np.argmax(model.predict(X_new), axis=-1) #Un array con una predicción por línea (19 en este caso)
y_pred
En este caso, se muestra un array unidimensional sólo se muestra los resultados unos o ceros. (Ver parte inferior de la imagen superior)
Ya tenemos la predicción de nuestra red neuronal para los datos introducidos.
En la siguiente imagen describimos el proceso de predicción de la red entrenada.
Finalmente podemos comparar los resultados de la predicción de nuestra red neuronal con los datos reales (los tengo en un .csv) y ver los fallos y los aciertos.
Vemos que la red neuronal no tiene una bola de cristal y no es capaz de predecir muy bien (todo se andará 😉)Si cambiamos los datos del dataset a predecir (añadimos distancia a puntos entre clasificados) los datos de salida varían, pero siguen sin ser muy buenos.
Para cambiar la IP de un equipo cualquiera tenemos que abrir el panel de control de Windows, sobre el símbolo de sistema escribimos Panel de control en la lupa
Abrimos el panel de control y pulsamos sobre el epígrafe Redes e Internet
Nos abre una pantalla sobre la pulsamos Centros de redes y recursos compartidos
Que nos abre otra pantalla donde pulsamos sobre Cambiar configuración del adaptador.
Elegimos Ethernet si estamos conectados por cable de red y Wi-Fi si la conexión es inalámbrica.
Nos abre otra ventana en la que elegimos el botón propiedades
Elegimos protocolo de Internet versión 4 (TCP/IPv4) y de nuevo al botón propiedades
Finalmente se nos abre la ventana donde podemos forzarle la dirección que deseamos. ¡Ojo! Antes de cambiar nada, siempre conviene hacer una captura de la pantalla por si no funcionara y hubiera que volver a las anteriores direcciones.