Excelente!!! muy buen trabajo, da gusto ver materias tan bien dominadas y explicadas... asi se hace mucho mas facil el proceso de aprender, gracias mil y no dejes de publicar, tendras mucho exito con esto. Saludos desde Chile, Ricardo
@@ESdatons No estoy en un proyecto laboral, solo estoy partiendo en un post titulo de Machine Learning y de verdad que de todo lo que he visto e investigado, tu video ha sido el mas claro, asi que tienes un don que explotar, adelante con tu proyecto que dara que hablar.
Ah, comprendo! Si, la gran mayoría de mis clientes vienen de cursos / post títulos donde les enseñan Ciencia de Datos y me contratan para que les enseñe conceptos puntuales. Es una pena porque hay muchos profesores que no llegan a comprender lo que pasa por la mente de los alumnos y los alumnos se complican ma vida 10 veces más de lo necesario; y esto causa una frustración enorme. A través de prueba y error, tras muchas horas de clase, vi que todos tenemos las mismas trampas mentales para comprender los conceptos porque carecemos de una idea general de cómo funciona, por ejemplo, Machine Learning. Tras un tiempo me di cuenta de que siempre enseñaba lo mismo de la misma forma y entonces lo puse todo en un curso que estoy elaborando actualmente. Aunque en Inglés porque pienso que hay mayor alcance. Pero comentarios como el tuyo me hacen replantearme que haga más cosas en español. Tengo algunas cosas grabadas en español que intentaré hacer un curso. Si quieres háblame en el twitter y te doy acceso a los materiales twitter.com/jsulopzs
Buenas! Excelente video. Me gustó mucho como pudiste ir explicando paso a paso y aplicando razonamiento. Estoy haciendo un curso de Data Science y para los que no estamos acostumbrados al ámbito de la programación se nos hace un poco mas complicado pero la claridad que encontré en el video hizo que pudiera entender con mayor facilidad. Seguiré practicando y te ganaste un suscriptor. Saludos!
Saludos Jesús, estaba buscando información sobre árboles de decisión para presentar un examen importante, lo que no esperaba era encontrar la aplicación de arboles de decisión con python en un proyecto al mismo tiempo que lo explicaban. Muchas gracias por eso 👏👏👏
Gracias por tu reconocimiento!! Justo ahora acabo de publicar un vídeo tutorial extra para que aprendas a desarrollar cualquier modelo de Machine Learning de manera creativa: th-cam.com/video/xV0Dx81VLpg/w-d-xo.html Ya me dices qué tal!! Un saludo!!
Me alegra enormemente que le saques partido! Muchas gracias por tus palabras, le dan más significado y me motivan a seguir creando contenido! Saludos ❤️❤️
Hay un error al cargar los datos porque he modificado mi cuenta de github. La línea de código para cargar los datos es la siguiente: df = pd.read_csv('raw.githubusercontent.com/jsulopz/data/main/uso_internet_espana.csv') Enlace datos: raw.githubusercontent.com/jsulopz/data/main/uso_internet_espana.csv Discuplen las molestias!
@@ESdatons Hay tanto en tu canal y tan bien explicado que no se me ocurre un tema puntual que pedirte y te agradezco que ademas de ser un Maestro explicando tengas en cuenta a tus seguidores. En general solo porque es adonde quiero orientarme seria acerca de invertir en bolsa de valores, pantallazo de que es lo que hay, como se podrian predecir los precios, lectura de precios con API, como se usarian los algoritmos de clasificacion o regresion en estos casos etc. Desde Rosario Argentina un gran abrazo amigo y muchas gracias!!!
@@rodrigoe4201 pues también tengo un curso de trading algorítmico que justo explico lo que tú comentas. academy.datons.ai/c/finance-algorithmic-trading/ Y otro por aquí en colaboración con LinkedIn Learning: www.linkedin.com/learning-login/share?forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%2Fpractical-python-for-algorithmic-trading%3Ftrk%3Dshare_ent_url%26shareId%3Daq0fB1IPTsu5vV3BnJVmyA%253D%253D Si aún no te has suscrito, te dejan un mes de prueba gratis. Ya por último, cada semana estoy haciendo workshops gratuitos en directo. Si quieres estar al tanto: stories.datons.ai/newsletter-es Buen recuerdo de los asados que me has traído jeje
1. Separa los datos en Train y Test con la función train_test_split(…) 2. Entrena el modelo con fit(…) 3. Puntuación del modelo en datos de train score(xtrain, ytrain) 4. Puntuación del modelo en datos de test score(xtest, ytest) 5. Si la diferencia del score entre train y yes es muy grande, existe overfitting
Entonces tienes overfitting. Prueba a reducir el tamaño del árbol para que sea más genérico en los datos de testeo. DecisionTreeClassifier(max_depth=4)
Gracias por tu apreciación, señor! Son las observaciones que se solapan de un grupo y de otro. Al final, deberías tener en cuenta la altura maxima en cada color para asociarlos al grupo correspondiente (solo son 2, no 3).
Tengo un problema y es que desde el principio me muestra falla con la librería panda y no se si tenga algo que ver que estoy usanfo un jupyter. Lab online y que en el kernel solo me aparece la opción Pyolite y SQlite
Estimado, disculpa que te consulte, pero estoy trabajando con SMOTE para realizar un sobremuestreo. He realizado el procedimiento pero al generar un dataframe para los nuevos datos pierdo el nombre de las columnas originales. ¿Sabes que puedo hacer para mantenerlas? Muchas gracias,
Una pregunta, cómo puedo hacer para separar cada rama del arbol y representarlo en una tabla, para ver cual es la ruta desde arriba hasta el ultimo cuadrito en todas las ramas?
Creo recordar que model.classes_ Si no, busca presionando con el tabulador después del punto; model. y te aparecerá toda la información que puedes extraer del modelo.
Hola, muy bien explicado entendí a la primera muchas cosas, tengo un problema al realizar el ejercicio con python desde el IDE Pycharm y Visual porque no me genera la figura del árbol solo me muestra los datos, hay alguna manera de obtener la figura generada del árbol? Gracias!
Buenas! Sí, el objetivo de este vídeo es hacer un árbol de decisión solamente. Puedes mirar aquí si necesitas saber cómo se hace el train test split: blog.resolvingpython.com/03-train-test-split-for-model-selection
Excelente explicación, pero tengo una duda, al ejecutar model.fit(X=explicativa, y=objetivo), me genera un error, no sé que hacer, me podrías ayudar porfavor
Me sale este error: "InvalidParameterError: The 'feature_names' parameter of plot_tree must be an instance of 'list' or None. Got Index(['edad', 'sexo_Mujer', 'estudios_Medios universitarios', 'estudios_Primaria', 'estudios_Secundaria', 'estudios_Sin estudios', 'estudios_Superiores'], dtype='object') instead."
La única explicación que se me ocurre es que hayas podido alterar la ejecución de comandos. Si pruebas a ejecutar todo desde el principio, probablemente te salga.
Tienes algún curso, estoy interesado en iniciarlo desde cero. Actualmente estoy sacando algunos cursos relacionados, pero me parece que eres muy didáctico.
Misma pregunta, yo igual cuento con varios cursos que he comprado pero me es más fácil entender tu manera de explicar. Y una duda más Hay alguna manera de exportar el modelo a alguna aplicación? Así como las redes neuronales te arroja los pesos para poder implementar el algoritmo en X aplicación, habrá forma de realizar algo semejante con DecisionTreeClassifier? Saludos y muy buen trabajo.
Muchas gracias por tus palabras! Me animan mucho a seguir generando contenido!! Esta playlist th-cam.com/video/YFYDvu-dSSg/w-d-xo.html es lo más parecido a un curso que tengo. Es probable que me ponga durante los próximos meses a grabar curso. Antes no he podido porque tenía mucha carga de trabajo.
En el siguiente tutorial blog.pythonresolver.com/tutorial-or-machine-learning-model-deployment muestro cómo poner un modelo de Machine Learning en un servidor web. Aunque lo aplico a la Regresión Lineal, será lo mismo para el Árbol de Decisión.
Muy buen vídeo Jesús Quería preguntarte como sería posible , por ejemplo, obtener el perfil de los usuarios que más han usado internet. Es decir, que el script devuelva las columnas de explicativas del último nodo que más ha supuesto que usen internet. Gracias
Una forma rápida sería: 1. Realizar las predicciones de la probabilidad .predict_proba() en el DataFrame 2. Ordenar las filas según la probabilidad de mayor a menor. 3. Obtener las 10 primeras filas y mirar a ojo cuáles son las características que más determinan que una persona use internet. Aunque el problema es más complejo porque en Machine Learning, hay muchos patrones a los que se llegan por diferentes caminos.
Muchas gracias por el video!! Una consulta, al ejecutar model.fit(X=explicativas, y =objetivo) Me sale el error ValueError: could not convert string to float: 'Mujer' Podrías ayudarme por favor? Muchas gracias!!
@@ESdatons tengo el mismo error de Miguel, si ejecuté el pd.get_dummies, sin embargo me arroja el problema de conversión --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Input In [9], in () ----> 1 model.fit(X=explicativas, y=objetivo) File ~\anaconda3\lib\site-packages\sklearn\tree\_classes.py:937, in DecisionTreeClassifier.fit(self, X, y, sample_weight, check_input, X_idx_sorted) 899 def fit( 900 self, X, y, sample_weight=None, check_input=True, X_idx_sorted="deprecated" 901 ): 902 """Build a decision tree classifier from the training set (X, y). 903 904 Parameters (...) 934 Fitted estimator. 935 """ --> 937 super().fit( 938 X, 939 y, 940 sample_weight=sample_weight, 941 check_input=check_input, 942 X_idx_sorted=X_idx_sorted, 943 ) 944 return self File ~\anaconda3\lib\site-packages\sklearn\tree\_classes.py:165, in BaseDecisionTree.fit(self, X, y, sample_weight, check_input, X_idx_sorted) 163 check_X_params = dict(dtype=DTYPE, accept_sparse="csc") 164 check_y_params = dict(ensure_2d=False, dtype=None) --> 165 X, y = self._validate_data( 166 X, y, validate_separately=(check_X_params, check_y_params) 167 ) 168 if issparse(X): 169 X.sort_indices() File ~\anaconda3\lib\site-packages\sklearn\base.py:578, in BaseEstimator._validate_data(self, X, y, reset, validate_separately, **check_params) 572 if validate_separately: 573 # We need this because some estimators validate X and y 574 # separately, and in general, separately calling check_array() 575 # on X and y isn't equivalent to just calling check_X_y() 576 # :( 577 check_X_params, check_y_params = validate_separately --> 578 X = check_array(X, **check_X_params) 579 y = check_array(y, **check_y_params) 580 else: File ~\anaconda3\lib\site-packages\sklearn\utils\validation.py:746, in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator) 744 array = array.astype(dtype, casting="unsafe", copy=False) 745 else: --> 746 array = np.asarray(array, order=order, dtype=dtype) 747 except ComplexWarning as complex_warning: 748 raise ValueError( 749 "Complex data not supported {} ".format(array) 750 ) from complex_warning File ~\anaconda3\lib\site-packages\pandas\core\generic.py:2064, in NDFrame.__array__(self, dtype) 2063 def __array__(self, dtype: npt.DTypeLike | None = None) -> np.ndarray: -> 2064 return np.asarray(self._values, dtype=dtype) ValueError: could not convert string to float: 'Mujer'
@@ESdatons Disculpa la demora en responder. Efectivamente, hubo problemas con el get_dummies. En el minuto 1:33 el punto rojo tapa cuando se define df=pd.get_dummies(data=df, drop_first=True). Yo solo había digitado: df=pd.get_dummies(data=df, drop_first=True) Muchas gracias nuevamente!
Otra observación, al cargar el csv, me sale una columna adicional: Unnamed: 0 Lo que hice fue borrarla con del(df['Unnamed: 0']) De repente fue porque se actualizó el archivo
Si no tienes instalado Jupyter Lab y estás comenzando a trabajar con Python, te recomendamos ver los tutoriales de esta playlist: th-cam.com/play/PL8HtbO24Pl3hiXO5LjIvJc86HyzWBvhZj.html
Si, este vídeo se centra en desarrollar el algoritmo del Árbol de Decisión. No tanto en la técnica de train test split. Pero puede que saque un vídeo sobre ello
Para los que habéis preguntado por cursos de formación conmigo: lo tengo publicados en udemy.com/user/jsulopzs
el mejor video que he visto del mundo mundial
Muchas gracias fenómeno! Cualquier sugerencia es bienvenida 🙌🏼
Excelente!!! muy buen trabajo, da gusto ver materias tan bien dominadas y explicadas... asi se hace mucho mas facil el proceso de aprender, gracias mil y no dejes de publicar, tendras mucho exito con esto. Saludos desde Chile, Ricardo
Muchas gracias por tus palabras bien hombre!
Cómo has parado a ver el vídeo?
Estás trabajando en algún proyecto de Machine Learning?
@@ESdatons No estoy en un proyecto laboral, solo estoy partiendo en un post titulo de Machine Learning y de verdad que de todo lo que he visto e investigado, tu video ha sido el mas claro, asi que tienes un don que explotar, adelante con tu proyecto que dara que hablar.
Ah, comprendo!
Si, la gran mayoría de mis clientes vienen de cursos / post títulos donde les enseñan Ciencia de Datos y me contratan para que les enseñe conceptos puntuales.
Es una pena porque hay muchos profesores que no llegan a comprender lo que pasa por la mente de los alumnos y los alumnos se complican ma vida 10 veces más de lo necesario; y esto causa una frustración enorme.
A través de prueba y error, tras muchas horas de clase, vi que todos tenemos las mismas trampas mentales para comprender los conceptos porque carecemos de una idea general de cómo funciona, por ejemplo, Machine Learning.
Tras un tiempo me di cuenta de que siempre enseñaba lo mismo de la misma forma y entonces lo puse todo en un curso que estoy elaborando actualmente. Aunque en Inglés porque pienso que hay mayor alcance.
Pero comentarios como el tuyo me hacen replantearme que haga más cosas en español.
Tengo algunas cosas grabadas en español que intentaré hacer un curso. Si quieres háblame en el twitter y te doy acceso a los materiales twitter.com/jsulopzs
Muy buen video, eres muy claro y ordenado para explicar, solo me hubiese gustado que adjuntaras la ruta a la data utilizada.
Muchas gracias Rafael. En los primeros comentarios están las referencias. Un saludo!
Excelente todo el proceso de Árbol de Decisión en Python muy bien explicado, se agradece, saludos y siempre LIKE
Muchas gracias por tus palabras! Un saludo 😄
GRAN VIDEO! EXPLICANDO CON CALMA Y SOBRE TODO SE NOTA SU DOMINIO DEL TEMA! NUEVO SUB
Me sirvió demasiado , muy bien explicado mil gracias
Me alegra saberlo, ánimo con los estudios!
Buenas! Excelente video. Me gustó mucho como pudiste ir explicando paso a paso y aplicando razonamiento. Estoy haciendo un curso de Data Science y para los que no estamos acostumbrados al ámbito de la programación se nos hace un poco mas complicado pero la claridad que encontré en el video hizo que pudiera entender con mayor facilidad. Seguiré practicando y te ganaste un suscriptor. Saludos!
Muchas gracias por tus palabras fenómeno! Me ayuda muchísimo a seguir motivado para hacer más vídeos 🙌🏼🙌🏼
Gracias.
Un placer!
wow, estaba buscando cobre y encontre oro!!!,
gracias master!
Gracias por tus palabras Diego!! Por qué necesitabas ver el vídeo? Quizás me ayude a crear más contenido de calidad jeje
Saludos Jesús, estaba buscando información sobre árboles de decisión para presentar un examen importante, lo que no esperaba era encontrar la aplicación de arboles de decisión con python en un proyecto al mismo tiempo que lo explicaban. Muchas gracias por eso 👏👏👏
Muchas gracias por compartir esta información!!
Gracias por tu reconocimiento!!
Justo ahora acabo de publicar un vídeo tutorial extra para que aprendas a desarrollar cualquier modelo de Machine Learning de manera creativa: th-cam.com/video/xV0Dx81VLpg/w-d-xo.html
Ya me dices qué tal!!
Un saludo!!
Muy buen video, muy claro y fácil de entender
Muchas gracias por tus palabras, Juan! Un abrazo 😄😄
Excelente video, lo seguí paso a paso!!!
Me alegra enormemente que le saques partido! Muchas gracias por tus palabras, le dan más significado y me motivan a seguir creando contenido! Saludos ❤️❤️
Muchas gracias!
Buen vídeo, todo claro y muy bien explicado. A seguir así 🔥🔥
Muy buen video. Bien explicado cada paso. Gracias.
Muchas gracias por tus palabras César! 🙌🏼
Bro muy buen vídeo te felicito porque explicas de una manera clara y concisa.
Muchas gracias Patricio! Estos comentarios me ayudan a seguir motivado para sacar más vídeos!!!
Buenísimo, me ayudo un montón, muchísimas graciaaas!
Muchas gracias! Muy bien explicado 👌🙌
muy bueno ojalá hagas más
Alguna recomendación en particular?
@@ESdatons una hoja de ruta con tecnologías necesarias para entrar en el mundo de la AI, estaría bueno! Saludos desde Buenos Aires.
Muy buena explicación!!!
Muchas gracias por tus palabras Gustavo!! A seguir a tope!!! :D
Hay un error al cargar los datos porque he modificado mi cuenta de github.
La línea de código para cargar los datos es la siguiente:
df = pd.read_csv('raw.githubusercontent.com/jsulopz/data/main/uso_internet_espana.csv')
Enlace datos: raw.githubusercontent.com/jsulopz/data/main/uso_internet_espana.csv
Discuplen las molestias!
gracias amigo , pero hay un problema,el link no funciona, si lo pudieras arreglar por favor te agredeceria
raw.githubusercontent.com/jsulopz/data/main/uso_internet_espana.csv
Gracias por comentarlo! Ya está solucionado jejeje
Gracias
Saber del tema y saber explicar que mas se puede pedir? Muchas gracias!!!
Muchas gracias Rodrigo! ¿Qué otros temas te gustaría aprender sobre la programación?
@@ESdatons Hay tanto en tu canal y tan bien explicado que no se me ocurre un tema puntual que pedirte y te agradezco que ademas de ser un Maestro explicando tengas en cuenta a tus seguidores. En general solo porque es adonde quiero orientarme seria acerca de invertir en bolsa de valores, pantallazo de que es lo que hay, como se podrian predecir los precios, lectura de precios con API, como se usarian los algoritmos de clasificacion o regresion en estos casos etc. Desde Rosario Argentina un gran abrazo amigo y muchas gracias!!!
@@rodrigoe4201 pues también tengo un curso de trading algorítmico que justo explico lo que tú comentas.
academy.datons.ai/c/finance-algorithmic-trading/
Y otro por aquí en colaboración con LinkedIn Learning: www.linkedin.com/learning-login/share?forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%2Fpractical-python-for-algorithmic-trading%3Ftrk%3Dshare_ent_url%26shareId%3Daq0fB1IPTsu5vV3BnJVmyA%253D%253D
Si aún no te has suscrito, te dejan un mes de prueba gratis.
Ya por último, cada semana estoy haciendo workshops gratuitos en directo. Si quieres estar al tanto: stories.datons.ai/newsletter-es
Buen recuerdo de los asados que me has traído jeje
Muchas gracias me ha ayudado a entender el codigo, ese arbol de decision podriamos guardarlo como una imagen o pdf?
Tendrías que usar matplotlib con el comando plt.savefig()
Por favor y donde consigo la data para hacer las pruebas? Gracias
Muchas gracias, muy claro todo.
Tengo una consulta, como puedo saber didácticamente si el modelo está sobre ajustado.
1. Separa los datos en Train y Test con la función train_test_split(…)
2. Entrena el modelo con fit(…)
3. Puntuación del modelo en datos de train score(xtrain, ytrain)
4. Puntuación del modelo en datos de test score(xtest, ytest)
5. Si la diferencia del score entre train y yes es muy grande, existe overfitting
Muchas gracias, efectivamente tengo 0.99 con entrenamiento y 0.92 con test
Entonces tienes overfitting. Prueba a reducir el tamaño del árbol para que sea más genérico en los datos de testeo.
DecisionTreeClassifier(max_depth=4)
Muchas gracias,!!
Amigo gracias por el video. Fue suepr claro, solo tebgo duda en em histograma los datos en color gris que significan?
Gracias por tu apreciación, señor!
Son las observaciones que se solapan de un grupo y de otro.
Al final, deberías tener en cuenta la altura maxima en cada color para asociarlos al grupo correspondiente (solo son 2, no 3).
Una pregunta, que tipo de arbol de decision utiliza python, sabiendo que hay tipos como ID3,CART,CHAID, MARS
?
Si pero con otras librerías www.analyticsvidhya.com/blog/2021/05/implement-of-decision-tree-using-chaid/
Tengo un problema y es que desde el principio me muestra falla con la librería panda y no se si tenga algo que ver que estoy usanfo un jupyter. Lab online y que en el kernel solo me aparece la opción Pyolite y SQlite
Este es un problema de la configuración de Jupyter. Deberías de desinstalar anaconda y volverlo a instalar si quieres una solución fácil y rápida.
Muy bueno, muchas gracias
Muchas gracias Nicolás!
Estimado, disculpa que te consulte, pero estoy trabajando con SMOTE para realizar un sobremuestreo. He realizado el procedimiento pero al generar un dataframe para los nuevos datos pierdo el nombre de las columnas originales. ¿Sabes que puedo hacer para mantenerlas? Muchas gracias,
X = pd.DataFrame(X, columns=X.columns)
Una pregunta, cómo puedo hacer para separar cada rama del arbol y representarlo en una tabla, para ver cual es la ruta desde arriba hasta el ultimo cuadrito en todas las ramas?
Para este tipo de consultas tendríamos que hacer una sesión de consultoría. Lo único que podría decirte es que investigues la función decision_path
Haz más de árbol de decisión porfa
Qué te gustaría aprender concretamente?
como puedo sacar a que grupo o nodo pertenece cada registro?
Creo recordar que model.classes_
Si no, busca presionando con el tabulador después del punto; model. y te aparecerá toda la información que puedes extraer del modelo.
Excelente!
Hola, ¿como haces para que te aparezca la la guía de toda la información que debes colocar dentro de una función, por ejemplo en el minuto 2:41 ?
Ya lo he encontrado, Shift+Tab
Hola, muy bien explicado entendí a la primera muchas cosas, tengo un problema al realizar el ejercicio con python desde el IDE Pycharm y Visual porque no me genera la figura del árbol solo me muestra los datos, hay alguna manera de obtener la figura generada del árbol?
Gracias!
Prueba a usar plt.show() debajo del plot_tree()
@@jesuslopez3306 Muchas gracias, me sirvió a la primera tu solución 💪
@@jesuslopez3306 sabes como puedo hacer el plt.show() pero a la grafica que hace con el sns.histplot(x=df.edad, hue=df.uso_internet) ??
@@nicolasmontagut4644 justo debajo
eres un crack!
muchas gracias fenómeno!! cómo te ha ayudado el video tutorial?
Hola, una pregunta, estaríamos usando el propio dataset de entrenamiento como validación? Buen video!
Buenas! Sí, el objetivo de este vídeo es hacer un árbol de decisión solamente.
Puedes mirar aquí si necesitas saber cómo se hace el train test split:
blog.resolvingpython.com/03-train-test-split-for-model-selection
Disculpa, como se llama la pagina en donde estas programando ?
Jupyter Lab
Excelente explicación, pero tengo una duda, al ejecutar model.fit(X=explicativa, y=objetivo), me genera un error, no sé que hacer, me podrías ayudar porfavor
Estoy usando colab de Google
Qué te dice el error?
Buend video, se puede obtener el data set de algun lado?
en el vídeo aparece la forma en que me lo descargo, al principio
Me sale este error: "InvalidParameterError: The 'feature_names' parameter of plot_tree must be an instance of 'list' or None. Got Index(['edad', 'sexo_Mujer', 'estudios_Medios universitarios',
'estudios_Primaria', 'estudios_Secundaria', 'estudios_Sin estudios',
'estudios_Superiores'],
dtype='object') instead."
La única explicación que se me ocurre es que hayas podido alterar la ejecución de comandos. Si pruebas a ejecutar todo desde el principio, probablemente te salga.
gracias por el vídeo :)
A ti por la apreciación! Cualquier cosa que nos quieras sugerir para mejorar, bienvenida sea 🤗
Todo va bien pero al momento de obtener los datos no sale el árbol, alguien sabe como se puede solucionar ?
Quizás tengas que hacer una nueva línea con:
plt.show()
@@jesuslopez3306 Lo hago y todo se queda igual, obtengo los datos pero sin el árbol
@@richardalexanderjimenezrij2197 estás usando jupyter lab?
Genial !!!!!!!
Tienes algún curso, estoy interesado en iniciarlo desde cero. Actualmente estoy sacando algunos cursos relacionados, pero me parece que eres muy didáctico.
Misma pregunta, yo igual cuento con varios cursos que he comprado pero me es más fácil entender tu manera de explicar.
Y una duda más
Hay alguna manera de exportar el modelo a alguna aplicación?
Así como las redes neuronales te arroja los pesos para poder implementar el algoritmo en X aplicación, habrá forma de realizar algo semejante con DecisionTreeClassifier?
Saludos y muy buen trabajo.
Muchas gracias por tus palabras! Me animan mucho a seguir generando contenido!!
Esta playlist th-cam.com/video/YFYDvu-dSSg/w-d-xo.html es lo más parecido a un curso que tengo. Es probable que me ponga durante los próximos meses a grabar curso. Antes no he podido porque tenía mucha carga de trabajo.
En el siguiente tutorial blog.pythonresolver.com/tutorial-or-machine-learning-model-deployment muestro cómo poner un modelo de Machine Learning en un servidor web. Aunque lo aplico a la Regresión Lineal, será lo mismo para el Árbol de Decisión.
Enormeeeeeeeeeeeeeeee!!!!!
Muy buen vídeo Jesús Quería preguntarte como sería posible , por ejemplo, obtener el perfil de los usuarios que más han usado internet. Es decir, que el script devuelva las columnas de explicativas del último nodo que más ha supuesto que usen internet. Gracias
Una forma rápida sería:
1. Realizar las predicciones de la probabilidad .predict_proba() en el DataFrame
2. Ordenar las filas según la probabilidad de mayor a menor.
3. Obtener las 10 primeras filas y mirar a ojo cuáles son las características que más determinan que una persona use internet.
Aunque el problema es más complejo porque en Machine Learning, hay muchos patrones a los que se llegan por diferentes caminos.
Te recomendaría que revisases los Shapley Values.
Muchas gracias por el video!! Una consulta, al ejecutar
model.fit(X=explicativas, y =objetivo)
Me sale el error
ValueError: could not convert string to float: 'Mujer'
Podrías ayudarme por favor?
Muchas gracias!!
Creo que se te olvidó ejecutar la celda de pd.get_dummies
@@ESdatons tengo el mismo error de Miguel, si ejecuté el pd.get_dummies, sin embargo me arroja el problema de conversión
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [9], in ()
----> 1 model.fit(X=explicativas, y=objetivo)
File ~\anaconda3\lib\site-packages\sklearn\tree\_classes.py:937, in DecisionTreeClassifier.fit(self, X, y, sample_weight, check_input, X_idx_sorted)
899 def fit(
900 self, X, y, sample_weight=None, check_input=True, X_idx_sorted="deprecated"
901 ):
902 """Build a decision tree classifier from the training set (X, y).
903
904 Parameters
(...)
934 Fitted estimator.
935 """
--> 937 super().fit(
938 X,
939 y,
940 sample_weight=sample_weight,
941 check_input=check_input,
942 X_idx_sorted=X_idx_sorted,
943 )
944 return self
File ~\anaconda3\lib\site-packages\sklearn\tree\_classes.py:165, in BaseDecisionTree.fit(self, X, y, sample_weight, check_input, X_idx_sorted)
163 check_X_params = dict(dtype=DTYPE, accept_sparse="csc")
164 check_y_params = dict(ensure_2d=False, dtype=None)
--> 165 X, y = self._validate_data(
166 X, y, validate_separately=(check_X_params, check_y_params)
167 )
168 if issparse(X):
169 X.sort_indices()
File ~\anaconda3\lib\site-packages\sklearn\base.py:578, in BaseEstimator._validate_data(self, X, y, reset, validate_separately, **check_params)
572 if validate_separately:
573 # We need this because some estimators validate X and y
574 # separately, and in general, separately calling check_array()
575 # on X and y isn't equivalent to just calling check_X_y()
576 # :(
577 check_X_params, check_y_params = validate_separately
--> 578 X = check_array(X, **check_X_params)
579 y = check_array(y, **check_y_params)
580 else:
File ~\anaconda3\lib\site-packages\sklearn\utils\validation.py:746, in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator)
744 array = array.astype(dtype, casting="unsafe", copy=False)
745 else:
--> 746 array = np.asarray(array, order=order, dtype=dtype)
747 except ComplexWarning as complex_warning:
748 raise ValueError(
749 "Complex data not supported
{}
".format(array)
750 ) from complex_warning
File ~\anaconda3\lib\site-packages\pandas\core\generic.py:2064, in NDFrame.__array__(self, dtype)
2063 def __array__(self, dtype: npt.DTypeLike | None = None) -> np.ndarray:
-> 2064 return np.asarray(self._values, dtype=dtype)
ValueError: could not convert string to float: 'Mujer'
Te aseguraste de guardarlo de nuevo en la variable?
explanatory = pd.get_dummies(…)?
@@jhonfreddyortizgomez9412 de repente tienes el mismo error que yo!
@@ESdatons Disculpa la demora en responder. Efectivamente, hubo problemas con el get_dummies. En el minuto 1:33 el punto rojo tapa cuando se define df=pd.get_dummies(data=df, drop_first=True).
Yo solo había digitado:
df=pd.get_dummies(data=df, drop_first=True)
Muchas gracias nuevamente!
Gracias
buenas tardes, excelente video. No encuentro la base de datos, ¿me podría ayudar?, muchas gracias, dios te bendiga
ya está solucionado! muchas gracias por hacérmelo saber!
Otra observación, al cargar el csv, me sale una columna adicional:
Unnamed: 0
Lo que hice fue borrarla con
del(df['Unnamed: 0'])
De repente fue porque se actualizó el archivo
Gracias por avisar 🔝
no se entiende nada no podes expkicar mejor desde como se empieza loco
Si no tienes instalado Jupyter Lab y estás comenzando a trabajar con Python, te recomendamos ver los tutoriales de esta playlist: th-cam.com/play/PL8HtbO24Pl3hiXO5LjIvJc86HyzWBvhZj.html
Hola, una pregunta, estaríamos usando el propio dataset de entrenamiento como validación? Buen video!
Si, este vídeo se centra en desarrollar el algoritmo del Árbol de Decisión.
No tanto en la técnica de train test split. Pero puede que saque un vídeo sobre ello