Skip to content

Cleans a start-up dataset, transforms features, trains a Random Forest classifier to predict company status, evaluates it with cross-validation and a confusion matrix, and visualizes variable importance and status distribution

License

Notifications You must be signed in to change notification settings

arenkis/itam-startups-prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Predicción de estatus de start-ups con Random Forest

Este repositorio contiene un flujo de trabajo completo en R (archivo startup_status_rf.R) para:

  1. Limpiar y preparar una base de datos de start-ups (BD_startups.csv).
  2. Transformar variables (normalización y label encoding).
  3. Entrenar un modelo de clasificación Random Forest que predice el estatus de la empresa (operating, acquired, closed, etc.).
  4. Evaluar el rendimiento con validación cruzada y matriz de confusión.
  5. Visualizar la importancia de variables y la distribución de estatus.

Estructura de carpetas

.
├── BD_startups.csv            # Base de datos original
├── startup_status_rf.R        # Script principal
└── README.md                  # Este documento

Requisitos

Paquete Propósito
dplyr, tidyr Limpieza y manipulación de datos
ggplot2 Gráficos
randomForest Entrenamiento del modelo
caret Validación cruzada y métricas
countrycode Conversión de códigos de país (si se requiere)
rnaturalearth, sf (opcional) Mapas y visualizaciones geoespaciales
rpart, rpart.plot (opcional) Árboles de decisión interpretables

Instalación rápida

install.packages(c(
  "dplyr", "tidyr", "ggplot2", "randomForest",
  "caret", "countrycode", "rnaturalearth",
  "rnaturalearthdata", "sf", "rpart", "rpart.plot"
))

Ejecución paso a paso

  1. Clonar / descargar el repositorio y ubicar el archivo startup_status_rf.R.
  2. Ajustar la línea setwd("/wd") al directorio donde se encuentra BD_startups.csv.
  3. Ejecutar todo el script (RStudio: Source o Ctrl + Shift + Enter; R CLI: source("startup_status_rf.R")).

Detalle del flujo

Fase Descripción
Carga y exploración Se importan los datos, se inspecciona estructura (str, summary).
Limpieza - Se corrigen encabezados.
- Se eliminan filas/columnas vacías y duplicados.
- Se convierten variables categóricas en factor.
- Se normalizan métricas numéricas (función normalize).
Codificación Se aplica label encoding a market y country_code para convertirlos en enteros.
Partición 80/20 caret::createDataPartition() para conjuntos de entrenamiento y prueba.
Entrenamiento randomForest() con 500 árboles y mtry = 2.
Evaluación - Predicción sobre test.
- confusionMatrix de caret.
- Validación cruzada (5 folds).
Visualización - varImpPlot() de importancia.
- Gráfico de barras de estatus.
- Heatmap de matriz de confusión con ggplot2.

Rendimiento esperado

Tras la ejecución se imprimen:

  1. Resumen del modelo Random Forest (OOB error, precisión por clase).
  2. Matriz de confusión y métricas (Accuracy, Kappa, Sensitivity, etc.).
  3. Resultado de validación cruzada (caret::train) con media y desviación estándar de accuracy.

Personalización

  • Número de árboles / mtry: ajustar en la llamada randomForest().
  • Variables: modificar selected_features para experimentar con columnas adicionales o distintas.
  • Método de split: cambiar de Random Forest a otro algoritmo (xgboost, rpart) sustituyendo la sección de entrenamiento.

Preguntas frecuentes

Pregunta Respuesta
¿Por qué se reemplazan “-” por 0 en funding_total_usd? Algunos registros usan “-” como indicador de “sin financiamiento”. Para modelar se necesitan valores numéricos, por lo que se imputan como 0.
¿Por qué normalizar las métricas financieras? Mejora la convergencia y evita que variables en distinta escala dominen el cálculo de distancias internas del modelo.
¿Puedo usar One-Hot Encoding en vez de label encoding? Sí. Sustituya el bloque de codificación por model.matrix(~ market + country_code - 1, data).

Licencia

Este proyecto se distribuye bajo licencia MIT. Consulte el archivo LICENSE para más información.

About

Cleans a start-up dataset, transforms features, trains a Random Forest classifier to predict company status, evaluates it with cross-validation and a confusion matrix, and visualizes variable importance and status distribution

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages