Autor
|
Tema: [PYTHON] ¿Se pueden crear árboles de decisión con funciones y condicionales? (Leído 7,161 veces)
|
Yidu
Desconectado
Mensajes: 133
|
Seguramente se podrá hacer. Pero la mayoría de ejemplos que veo por la red, utilizan el paradigma de POO. Y antes de llegar a dicho paradigma de programación utilizo la funcional. Se trataría de crear un árbol de decisión o alguno mas simple (por ejemplo árbol binario). Y además, que los datos que se fueran introduciendo se pudieran escribir y leer de un archivo. Es decir, para que nuestro código fuera aprendiendo. ¿Cómo se debería enfocar? Esta el típico programa que hace de adivinador. Y que a medida que uno le introduce datos, estos se escriben en un archivo para luego no tener que teclearlos de nuevo. En este enlace https://gist.github.com/adrigm/5330110 el usuario postea un código usando la POO. Me gustaría poder aprender como se haría igual usando IF, funciones, FOR, etc... Por cierto, no es un trabajo que me hayan mandado hacer. Aprendo los ratos que puedo y por hobby. Gracias!
|
|
« Última modificación: 6 Diciembre 2014, 14:15 pm por Yidu »
|
En línea
|
|
|
|
daryo
|
si se puede en python , no hay ninguna necesidad de usar objetos.EL programa que pusiste funciona con dos o tres animales maximo por eso es muy simple , si aprendiera ya es algo (mucho)mas complejo xD.
yo lo enfocaria de esta forma
supon que tienes una lista de animales marcados con caracteristicas propias(solo de este) y generales(compartidas por muchos animales)por ejemplo si son acuaticos o terrestres esas serian compartidas por muchos animales hasta las mas especificas compartidas por unos pocos o ninguno por ejemplo si son "el mejor amigo del hombre xD"
Entonces las preguntas irian desde lo mas general a lo mas especifico descartando a los animanes que no poseen esas cualidades hasta llegar a las propias..
en caso de que el animal no exista entonces el usuario nos habra dado mucha informacion sobre este animal a medida que va contestando preguntas(cuando se han contestado todas las caracteristicas generales y no cumple ninguna de las propias sabremos que no existe xD)
Asi que se guardarian todas las caracteristicas generales que respondio el usuario y se le pregunta por una propia del animal. para agregarlo a la base de datos
si por ejemplo el usuario dice "tiene alas" lo marcaremos dentro de los animales que poseen esta caracteristica. y asi con cada caracteristica general que nos dio el usuario , ademas de preguntarle una especifica
|
|
« Última modificación: 6 Diciembre 2014, 17:27 pm por daryo »
|
En línea
|
buenas
|
|
|
Yidu
Desconectado
Mensajes: 133
|
Ok. Supongo que en ese caso, debería usar listas o diccionarios ¿No es así?
Y luego quedaría el asunto de como guardar los datos introducidos cuando cerrásemos el programa. Osea, que deberíamos ir escribiendo en un archivo todas las respuestas que fuéramos dando. Y cuando lo volviésemos a ejecutar, leyera el archivo y así poder continuar. No empezar de cero. De ese modo, cuando otra persona probara el programa, ya tendría una base de respuestas y animales considerable.
|
|
|
En línea
|
|
|
|
daryo
|
los diccionarios y listas si son utiles en este caso pero es cuestion de imaginacionj y como planees hacerlo xD (otra opcion interesante seria usar una base de datos como sqlite) yo pondria cada animal como una lista animales=[gato,perro,ballena] gato=[mamifero,terrestre,felino] perro=[mamifero,terretre,canino] ballena=[mamifero,acuatico,nose] #opciones escogidas por el usuario: opciones=[mamifero,acuatico,felino] existe algun elemento en animales con estas opciones? si existe preguntar si es ese. si no preguntar cual es al usuario y agregarlo
etc xD y de los archivos estoy de acuerdo ademas de tener algunos animales en la lista por defecto.
|
|
|
En línea
|
buenas
|
|
|
|
Yidu
Desconectado
Mensajes: 133
|
Gracias por el aporte. Creo que le vi alguna vez por la red. Pero como dice el titulo del libro, es IA avanzada. Y claro, demasiado avanzado para mi. En todo caso, dejo un enlace de un vídeo, que he visto en Youtube, de mas o menos lo que quiero hacer. Pero en Python. Es un juego para un ordenador de 8 bits. El mitico Amstrad CPC https://www.youtube.com/watch?v=m0SWW0sR0rICreo que para ese tipo de programa se deberá usar árbol de decisión o binario. Y como por aquella época, la programación orientada a objetos no se usaba en estos ordenadores, me gustaría hacer lo mismo pero con la potencia de Python. Sin usar tampoco la POO. Me queda pilar el concepto de carga izquierda o derecha sin usar la POO. En todos los diagramas de árbol veo esto. Que desde la raíz se separan dos ramas (izq. y der.). La cosa es, que no se como aplicarlo con la programación funcional. O si no es necesario aplicar este concepto en la prog. funcional. ¿Cómo se sustituye este tipo de carga y nodos sin la POO?
|
|
« Última modificación: 7 Diciembre 2014, 10:58 am por Yidu »
|
En línea
|
|
|
|
|
Yidu
Desconectado
Mensajes: 133
|
Dándole vueltas al asunto (e intentando crear esta estructura sin POO) me asaltan nuevas dudas.
De momento quiero crear un árbol simple, osea, binario. Los numerosos ejemplos se basan en la raíz principal y dos nodos izquierdo y derecho. Para estos ejemplos se usan números. En el nodo principal (padre) se pone un número cualquiera. Y los que se generan después, si son mayor o igual al nodo padre, se sitúan al nodo derecho. Si son menores, al nodo izquierdo. Esto se va repitiendo y creando por los diferentes nodos.
Bien, ¿Pero como se implementa cuando se trata de preguntas y no números? He de suponer que ya no vale el 'mayor o igual que' o 'menor que' ¿Estos operadores se sustituyen en su caso por 'si' y 'no'?
Cuando tenga un primer borrador de código lo posteo. Aunque seguro que me lloverán criticas a diestro y siniestro.
|
|
« Última modificación: 13 Diciembre 2014, 10:55 am por Yidu »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Python] Importar Funciones de C++ a Modulo de Python
Python
|
Di6it4Lj4ck4L
|
2
|
4,380
|
2 Mayo 2011, 19:08 pm
por Di6it4Lj4ck4L
|
|
|
[C] Funciones para arboles binarios
Programación C/C++
|
gasparenaide
|
0
|
2,172
|
19 Marzo 2013, 01:47 am
por gasparenaide
|
|
|
[Python]Se pueden ejecutar comandos del sistema en python
Python
|
Proxmond
|
2
|
6,428
|
1 Julio 2014, 01:32 am
por EzianGES
|
|
|
¿Sobrecargar las funciones standard o crear nuestros propios metodos? [PYTHON]
Scripting
|
Yidu
|
2
|
3,209
|
15 Enero 2017, 18:31 pm
por Yidu
|
|
|
Funciones y Condicionales en javascript
Desarrollo Web
|
Ali Baba
|
6
|
3,141
|
9 Marzo 2017, 17:50 pm
por engel lex
|
|