Desarrolla un programa en Python que genere un modelo de Random Forest sin utilizar la biblioteca scikit-learn. ¿Cómo se construyen árboles de decisión individuales y se combinan para formar un modelo completo? ¿Qué métodos se pueden utilizar para medir la importancia de las características y seleccionar las más relevantes? ¿Cómo se realiza la validación cruzada y se evalúa la precisión del modelo?