Nothing Special   »   [go: up one dir, main page]

Ejemplos Adicionales CRISP-DM

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

1.

EJEMPLO 1: CLASIFICACIÓN USANDO EL CONJUNTO DE DATOS IRIS

1.1. Fase 1: Comprensión del Negocio


El objetivo del negocio es clasificar las flores en tres especies (setosa, versicolor,
virginica) basándose en las medidas de sus sépalos y pétalos.
objetivo_negocio <- "Clasificar las flores en tres especies basándose en las
medidas de sus sépalos y pétalos."
criterios_exito <- "El modelo debe tener una precisión mayor al 90% en el
conjunto de prueba."

1.2. Fase 2: Comprensión de los Datos


Exploramos el conjunto de datos iris.
data(iris)
str(iris)
summary(iris)
pairs(iris, col = iris$Species)

1.3. Fase 3: Preparación de los Datos


Preparamos los datos para el modelado.
# Dividir los datos en conjuntos de entrenamiento y prueba
set.seed(123)
library(caTools)
split <- sample.split(iris$Species, SplitRatio = 0.7)
train_data <- subset(iris, split == TRUE)
test_data <- subset(iris, split == FALSE)

1.4. Fase 4: Modelado


Entrenamos un modelo de clasificación usando un árbol de decisión.
# Instalar y cargar el paquete necesario
install.packages("rpart")
library(rpart)
# Entrenar el modelo
modelo <- rpart(Species ~ ., data = train_data, method = "class")
# Visualizar el árbol
install.packages("rpart.plot")
library(rpart.plot)
rpart.plot(modelo)
1.5. Fase 5: Evaluación
Evaluamos el rendimiento del modelo.
# Realizar predicciones
predicciones <- predict(modelo, newdata = test_data, type = "class")

# Calcular la precisión
precision <- sum(predicciones == test_data$Species) / nrow(test_data)
print(paste("Precisión:", precision))

1.6. Fase 6: Despliegue


Guardamos el modelo para su uso en producción.
# Guardar el modelo

saveRDS(modelo, file = "modelo_clasificacion_iris.rds")

# Cargar el modelo guardado

modelo_desplegado <- readRDS("modelo_clasificacion_iris.rds")

# Predicción con el modelo desplegado

nuevas_predicciones <- predict(modelo_desplegado, newdata = test_data, type =


"class")
2. EJEMPLO 2: SERIES TEMPORALES USANDO EL CONJUNTO DE DATOS
AIRPASSENGERS

2.1. Fase 1: Comprensión del Negocio


El objetivo del negocio es predecir el número de pasajeros aéreos mensuales
para planificar la capacidad de la aerolínea.
objetivo_negocio <- "Predecir el número de pasajeros aéreos mensuales para planificar la
capacidad de la aerolínea."

criterios_exito <- "El modelo debe tener un error absoluto medio (MAE) menor a 10%."

2.2. Fase 2: Comprensión de los Datos


Exploramos el conjunto de datos AirPassengers.

data(AirPassengers)

str(AirPassengers)

summary(AirPassengers)

plot(AirPassengers)

2.3. Fase 3: Preparación de los Datos


Preparamos los datos para el modelado.

# Dividir los datos en entrenamiento y prueba (80% entrenamiento, 20% prueba)

train_data <- window(AirPassengers, start = c(1949, 1), end = c(1958, 12))

test_data <- window(AirPassengers, start = c(1959, 1))

2.4. Fase 4: Modelado


Entrenamos un modelo ARIMA para la serie temporal.
# Instalar y cargar el paquete necesario

install.packages("forecast")

library(forecast)

# Entrenar el modelo ARIMA

modelo <- auto.arima(train_data)

# Resumen del modelo

summary(modelo)
2.5. Fase 5: Evaluación
Evaluamos el rendimiento del modelo.
# Realizar predicciones

predicciones <- forecast(modelo, h = length(test_data))

# Visualizar las predicciones

plot(predicciones)

lines(test_data, col = 'red')

# Calcular el error absoluto medio (MAE)

mae <- mean(abs(predicciones$mean - test_data))

print(paste("MAE:", mae))

2.6. Fase 6: Despliegue


Guardamos el modelo para su uso en producción.
# Guardar el modelo

saveRDS(modelo, file = "modelo_arima_airpassengers.rds")

# Cargar el modelo guardado

modelo_desplegado <- readRDS("modelo_arima_airpassengers.rds")

# Predicción con el modelo desplegado

nuevas_predicciones <- forecast(modelo_desplegado, h = length(test_data))

2.7. Resumen Completo del Ejemplo 2 en R


Aquí tienes el flujo completo para el ejemplo de series temporales.
# Fase 1: Comprensión del Negocio

objetivo_negocio <- "Predecir el número de pasajeros aéreos mensuales para planificar la


capacidad de la aerolínea."

criterios_exito <- "El modelo debe tener un error absoluto medio (MAE) menor a 10%."

# Fase 2: Comprensión de los Datos

data(AirPassengers)
str(AirPassengers)

summary(AirPassengers)

plot(AirPassengers)

# Fase 3: Preparación de los Datos

train_data <- window(AirPassengers, start = c(1949, 1), end = c(1958, 12))

test_data <- window(AirPassengers, start = c(1959, 1))

# Fase 4: Modelado

install.packages("forecast")

library(forecast)

modelo <- auto.arima(train_data)

summary(modelo)

# Fase 5: Evaluación

predicciones <- forecast(modelo, h = length(test_data))

plot(predicciones)

lines(test_data, col = 'red')

mae <- mean(abs(predicciones$mean - test_data))

print(paste("MAE:", mae))

# Fase 6: Despliegue

saveRDS(modelo, file = "modelo_arima_airpassengers.rds")

modelo_desplegado <- readRDS("modelo_arima_airpassengers.rds")

nuevas_predicciones <- forecast(modelo_desplegado, h = length(test_data))


3. EJEMPLO: TITANIC PARA UN PROBLEMA DE CLASIFICACIÓN (SOBREVIVIR
O NO SOBREVIVIR)

3.1. Fase 1: Comprensión del Negocio


El objetivo del negocio es predecir si un pasajero del Titanic sobrevivió o no
basado en diversas características como edad, clase, sexo, etc.
objetivo_negocio <- "Predecir si un pasajero del Titanic sobrevivió o no basado en diversas
características."

criterios_exito <- "El modelo debe tener una precisión mayor al 80% en el conjunto de
prueba."

3.2. Fase 2: Comprensión de los Datos


Exploramos el conjunto de datos Titanic que está disponible en varios paquetes
de R.
# Cargar el conjunto de datos Titanic

install.packages("titanic")

library(titanic)

data("titanic_train")

# Exploración inicial de los datos

str(titanic_train)

summary(titanic_train)

# Visualización de algunos datos

library(ggplot2)

ggplot(titanic_train, aes(x = factor(Pclass), fill = factor(Survived))) +

geom_bar() +

labs(x = "Clase", y = "Cantidad", fill = "Sobrevivió") +

theme_minimal()

ggplot(titanic_train, aes(x = Age, fill = factor(Survived))) +

geom_histogram(binwidth = 5) +

labs(x = "Edad", y = "Cantidad", fill = "Sobrevivió") +

theme_minimal()
3.3. Fase 3: Preparación de los Datos
Preparamos los datos para el modelado.
# Manejar valores perdidos

titanic_train$Age[is.na(titanic_train$Age)] <- median(titanic_train$Age, na.rm = TRUE)

# Convertir variables categóricas a factores

titanic_train$Pclass <- as.factor(titanic_train$Pclass)

titanic_train$Sex <- as.factor(titanic_train$Sex)

titanic_train$Embarked <- as.factor(titanic_train$Embarked)

# Eliminar columnas no necesarias

titanic_train <- titanic_train[, c("Survived", "Pclass", "Sex", "Age", "SibSp", "Parch", "Fare",
"Embarked")]

# Dividir los datos en conjuntos de entrenamiento y prueba

set.seed(123)

split <- sample.split(titanic_train$Survived, SplitRatio = 0.7)

train_data <- subset(titanic_train, split == TRUE)

test_data <- subset(titanic_train, split == FALSE)

3.4. Fase 4: Modelado


Entrenamos un modelo de clasificación utilizando Random Forest.
# Instalar y cargar el paquete necesario

install.packages("randomForest")

library(randomForest)

# Entrenar el modelo

modelo <- randomForest(Survived ~ ., data = train_data, ntree = 100)

# Resumen del modelo

print(modelo)
3.5. Fase 5: Evaluación
Evaluamos el rendimiento del modelo.
# Realizar predicciones en el conjunto de prueba

predicciones <- predict(modelo, newdata = test_data)

# Calcular la precisión

precision <- sum(predicciones == test_data$Survived) / nrow(test_data)

print(paste("Precisión:", precision))

# Matriz de confusión

table(Predicted = predicciones, Actual = test_data$Survived)

3.6. Fase 6: Despliegue


Guardamos el modelo para su uso en producción.
# Guardar el modelo

saveRDS(modelo, file = "modelo_random_forest_titanic.rds")

# Cargar el modelo guardado

modelo_desplegado <- readRDS("modelo_random_forest_titanic.rds")

# Predicción con el modelo desplegado

nuevas_predicciones <- predict(modelo_desplegado, newdata = test_data)

3.7. Resumen Completo del Ejemplo en R


# Fase 1: Comprensión del Negocio

objetivo_negocio <- "Predecir si un pasajero del Titanic sobrevivió o no basado en diversas


características."

criterios_exito <- "El modelo debe tener una precisión mayor al 80% en el conjunto de
prueba."

# Fase 2: Comprensión de los Datos

install.packages("titanic")

library(titanic)

data("titanic_train")
str(titanic_train)

summary(titanic_train)

library(ggplot2)

ggplot(titanic_train, aes(x = factor(Pclass), fill = factor(Survived))) +

geom_bar() +

labs(x = "Clase", y = "Cantidad", fill = "Sobrevivió") +

theme_minimal()

ggplot(titanic_train, aes(x = Age, fill = factor(Survived))) +

geom_histogram(binwidth = 5) +

labs(x = "Edad", y = "Cantidad", fill = "Sobrevivió") +

theme_minimal()

# Fase 3: Preparación de los Datos

titanic_train$Age[is.na(titanic_train$Age)] <- median(titanic_train$Age, na.rm = TRUE)

titanic_train$Pclass <- as.factor(titanic_train$Pclass)

titanic_train$Sex <- as.factor(titanic_train$Sex)

titanic_train$Embarked <- as.factor(titanic_train$Embarked)

titanic_train <- titanic_train[, c("Survived", "Pclass", "Sex", "Age", "SibSp", "Parch", "Fare",
"Embarked")]

set.seed(123)

library(caTools)

split <- sample.split(titanic_train$Survived, SplitRatio = 0.7)

train_data <- subset(titanic_train, split == TRUE)

test_data <- subset(titanic_train, split == FALSE)

# Fase 4: Modelado

install.packages("randomForest")

library(randomForest)
modelo <- randomForest(Survived ~ ., data = train_data, ntree = 100)

print(modelo)

# Fase 5: Evaluación

predicciones <- predict(modelo, newdata = test_data)

precision <- sum(predicciones == test_data$Survived) / nrow(test_data)

print(paste("Precisión:", precision))

table(Predicted = predicciones, Actual = test_data$Survived)

# Fase 6: Despliegue

saveRDS(modelo, file = "modelo_random_forest_titanic.rds")

modelo_desplegado <- readRDS("modelo_random_forest_titanic.rds")

nuevas_predicciones <- predict(modelo_desplegado, newdata = test_data)

También podría gustarte