Prof , me paso un problema , en la linea de crear las variables dummy me da un memory errror: onehotencoder = OneHotEncoder(categories="auto") X= onehotencoder.fit_transform(X).toarray() X= X[:, 1:] MemoryError: Unable to allocate 1.26 GiB for an array with shape (10000, 16935) and data type float64 ----------------------------- Lo otro es que previamente actualice python a la version de mayo de 2021 , luego instale tensorflow directamente en la consola con "pip install tensorflow" y luego segui el mismo procedimiento con keras "pip install keras", no cree un ambiente sino los instale cada uno por separado en directamente en la consola de simbolo del sistema, la instalacion concluyo sin errores pero al hacer el "import keras" en el notebook de jupyter me dice que el modulo no existe. En este equipo no tengo instalado en Anaconda , todo lo trabajo con jupyter.
@jacobavilacamacho76443 жыл бұрын
Al parecer esta tratando de sacar variables dummies para todas las variables, por eso crece demasiado, ahí en transform(x) se tendría que delimitar que columnas de x. para el tema de Jupyter checa en la configuración que versión de python está usando cual es el path que usa, seguro es diferente al de la versión más reciente que instalaste por eso no encuentra las librerías
@cMonsalveAdm3 жыл бұрын
@@jacobavilacamacho7644 Volvi a ejecutar y ahora el MemoryError lo da al crear el conjunto de pruebas y de entrenamiento train_test_split X_train, X_test, y_test, y_test = train_test_split(X,y, test_size= 0.2, random_state= 0) -------- MemoryError: Unable to allocate 1.01 GiB for an array with shape (8000, 16934) and data type float64
@cMonsalveAdm3 жыл бұрын
Hasta el momento tengo la verdion 3.9.5 del 3 de mayo de 2021
@jacobavilacamacho76443 жыл бұрын
@@cMonsalveAdm Que ejecuta antes del split? el esquema de las variables dummies?
@cMonsalveAdm3 жыл бұрын
@@jacobavilacamacho7644 Si señor las variables dummy, Prof. podemos hablar del tema por linkedin?
@jorgeonaserrano42272 жыл бұрын
Excelente explicación, una pregunta: ¿podrías hacer lo mismo pero en jupyter notebook? por favor
@jacobavilacamacho76442 жыл бұрын
Hola, muchas gracias por tus comentarios. Si, finalmente es lo mismo, en el caso de jupyter pondríamos cada bloque de código en un cuadro de ejecución para código. El punto quizás que cambiaría sería la ruta para cargar el archivo de datos. Lo preparo
@gianfrancorivaschavez70723 жыл бұрын
debido a la gran diferencia de precisión entre el conjunto de entrenamiento y el conjunto de prueba es probable que la red haya caído en un sobre ajuste?
@jacobavilacamacho76443 жыл бұрын
Hola Gian Franco. No necesariamente, por que el objetivo de una red neuronal es aprender del conjunto de entrenamiento para poder clasificar o predecir datos del conjunto de prueba, que serían datos desconocidos y que no se encontraban en el conjunto de entrenamiento. Cuando se da el sobre ajuste es por la complejidad del problema, es decir la relación entre la variable dependiente con respecto a las variables independientes. Por lo que sería importante entrenar con un grupo de clases balanceadas, es decir, que existan la misma cantidad de registros para cada clase a predecir o clasificar y/o reducir las dimensiones, es decir, la cantidad de variables independientes.
@mpk52kevin4 жыл бұрын
Muy buenas , muy buen vídeo .Por favor podría compartirme su base de datos.
@jacobavilacamacho76444 жыл бұрын
Hola, Muchas gracias!!! Esta es la liga para descargar el dataset drive.google.com/file/d/1PAOw035GLhin_aPw7lcrpYT_j5qdsPcd/view?usp=sharing
@danielmontoya7602 жыл бұрын
Buena explicacion, disculpa tengo un error en las variables dummy, me podrías ayudar: 1 one = OneHotEncoder(categories="auto") ----> 3 x_temp = one.fit_transform(X[:, 1].reshape(-1,1)).toarray() //el error esta aca pero no se como modificarlo 4 x = np.concatenate((x_temp, X), axis=1) 5 x = np.delete(X, 4, 1) IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
@jacobavilacamacho76442 жыл бұрын
Hola Daniel, el error menciona que el arreglo es de 1 dimensión y que le envías 2, prueba sin el reshape por que ahí es donde se convierte a un arreglo de 2 dimensiones
@salvadornunez232 жыл бұрын
buenas muy buen tutorial, podrias pasar el dataset para seguir el video a la par gracias
@salvadornunez232 жыл бұрын
ahi encontre mas abajo , mil gracias por compartir.
@jacobavilacamacho76442 жыл бұрын
@@salvadornunez23 Si Salvador. Te dejo de todas formas la liga de la carpeta de los datasets de los demás videos también. drive.google.com/drive/folders/1Jdg2ttdM8pvSdC2ndd5tS5rPI37uTC_t?usp=sharing
Buen video. Me podrias ayudr en esto: Como puedo asignarle el accuracy a una variable, como por ejemplo,, a=accuracy or a = binary_accuracy. Este es parte del código de una red neuronal: model = Sequential() model.add(Dense(48, input_dim=48, activation='relu')) model.add(Dense(24, activation='relu')) model.add(Dense(2, activation='sigmoid')) model.compile(loss='mean_squared_error', optimizer='adam', metrics=['binary_accuracy']) model.fit(training_data, target_data, epochs=1000) scores = model.evaluate(training_data, target_data) "training_data, target_data are arrays" Result of evaluation: binary_accuracy: 0.5000 binary_accuracy: 50.00%
@jacobavilacamacho76444 жыл бұрын
Se lo puedes asignar así tal cual lo estas poniendo: a = 'binary_accuracy' *** lleva las comillas despues en la red metrics = [a] o si mandas los dos: a = ['accuracy', 'binary_accuracy'] y luego metrics = a No se si era por ahí tu pregunta o me confundí?
@juank469834 жыл бұрын
@@jacobavilacamacho7644 Hola Jacob, escribí como me dices, pero el resultado es imprimir la palabas binary_accuracy, pero no el valor numérico de accuracy o exactitud.
@jacobavilacamacho76444 жыл бұрын
@@juank46983 Ahhhh ok, entonces lo que necesitas más bien es obtener el valor de la precisión que dio en la predicción? Si es así lo puedes obtener con lo siguiente: Después de entrenar, haces la predicción: target_predict= model.predict(test_data) from sklearn.metrics import accuracy_score score= accuracy_score(target_data, target_preditc) Checas la variable score y contiene la precisión del modelo, el accuracy
@EdgarMorales-ec3vu4 жыл бұрын
Saludos, estoy probando el código en en google colab, y tengo este error 4 labelencoder_X_2=LabelEncoder() 5 X[:,2]=labelencoder_X_2.fit_transform(X[:,2]) ----> 6 onehotencoder=OneHotEncoder(categorical_features=[1]) 7 X=onehotencoder.fit_transform(x).toarray() 8 X=X[:,1:] TypeError: __init__() got an unexpected keyword argument 'categorical_features' Muchas gracias por su ayuda
@jacobavilacamacho76444 жыл бұрын
Hola. Si, cambió la versión de OneHotEncoder y ahora el parámetro es categories, ya no es categorica_features, úsalo así: categories='auto' La creación de las variables dummy las puedes hacer de esta forma, ya que también hubo cambios en lo que retorna: onehot = OneHotEncoder(categories='auto') x_temp = onehot.fit_transform(x[:, 1].reshape(-1,1)).toarray() x = np.concatenate((x_temp, x), axis=1) x = np.delete(x, 4, 1)
@cMonsalveAdm3 жыл бұрын
Prof gracias por compartir, no me quedo clara la parte de codificar y posterior hallar las variables dummy, no hubiese sino mejor sacar las variables dummy con pandasen el mismo paso ? Geography_dummy = pd.get_dummies(data["Geography"] , prefix="Geograpy") - Lo otro fue como saber si incementra las epocas, o las capas o el numeor de neuronas o el back_size para incrementar la efectividad del modelo ? , por ensayo y error hasta que el porcentaje vaya subiendo?
@jacobavilacamacho76443 жыл бұрын
SI, es otra opción para obtener las variables dummy, también se puede usar. En cuanto al esquema de entrenamiento si es un poco de prueba y error, hasta que el error disminuya, si empieza a aumentar, entonces ya esta sobre entrenado y es lo máximo que da el modelo.
@amadodejesusvazquezacuna56443 жыл бұрын
Excelente contenido. Tengo una duda en que casos es recomendable usar redes neuronales ?. Saludos.
@jacobavilacamacho76443 жыл бұрын
Cuando el problema no es lineal, ya sea para clasificar o para predecir, pero tenemos varias variables independientes y no es una recta como en la regresión.