Proyecto Aplicado a la Ingeniería Química
Optimizar el proceso deproducción de biodiésel.ipynb
Proyecto Aplicado a la Ingeniería
Química
Optimizar el proceso de
producción de biodiésel
1. Planteamiento del Problema
Problema: Optimización de la producción de biodiésel a
partir de aceite de cocina usado.
En este proyecto, buscamos optimizar el proceso de
producción de biodiésel utilizando como materia prima aceite de cocina usado.
El objetivo es maximizar la eficiencia del proceso mientras se minimizan los
costos y se mantiene la calidad del biodiésel producido.
2. Uso de Datos: Generación de un Dataset
Ficticio
Para este proyecto, necesitamos un conjunto de datos
que incluya variables como:
Tipo de aceite:
Variedad de aceites de cocina usados.
Cantidad de aceite:
Cantidad de aceite utilizado en cada lote (en litros).
Proceso de tratamiento:
Diferentes métodos de tratamiento previo del aceite.
Condiciones de reacción:
Temperatura, presión, y tiempo de reacción.
Cantidad de catalizador:
Tipo y cantidad de catalizador usado.
Rendimiento de biodiésel:
Porcentaje de biodiésel producido en relación con el aceite usado.
He creado un dataset ficticio para el proyecto de
producción de biodiésel. Puedes descargarlo a través del siguiente enlace:
Descargar Dataset de
Biodiésel
import pandas as pd
import numpy as np
# Creación de un dataset ficticio para el proyecto
de producción de biodiésel
# Número de muestras en el dataset
n_muestras = 100
# Generación de datos ficticios
np.random.seed(0)
datos = {
"Tipo_Aceite":
np.random.choice(["Girasol",
"Oliva",
"Maíz", "Soja", "Canola"], n_muestras),
"Cantidad_Aceite_Litros":
np.random.uniform(50,
500, n_muestras).round(2),
"Proceso_Tratamiento":
np.random.choice(["Centrifugado",
"Filtrado",
"Decantación"],
n_muestras),
"Temperatura_Reacción_C":
np.random.uniform(50,
150, n_muestras).round(1),
"Presión_Reacción_bar":
np.random.uniform(1,
10, n_muestras).round(2),
"Tiempo_Reacción_min":
np.random.uniform(30,
120, n_muestras).round(1),
"Tipo_Catalizador":
np.random.choice(["Ácido sulfúrico",
"Hidróxido de sodio",
"Metóxido de sodio"],
n_muestras),
"Cantidad_Catalizador_g":
np.random.uniform(5,
20, n_muestras).round(2),
"Rendimiento_Biodiésel_%":
np.random.uniform(60,
95, n_muestras).round(2)
}
# Creación del DataFrame
df = pd.DataFrame(datos)
# Guardar el DataFrame como un archivo CSV
file_path = '/content/Dataset_Biodiesel.csv'
df.to_csv(file_path, index=False)
file_path
Este dataset incluye datos como el tipo de aceite,
cantidad de aceite en litros, proceso de tratamiento, condiciones de reacción,
tipo y cantidad de catalizador, y el rendimiento del biodiésel. Recuerda que
estos datos son completamente ficticios y se han generado para ilustrar cómo
podrías trabajar con un conjunto de datos en un proyecto real.
3. Desarrollo de Script Python
Se desarrollaría un script en Python para analizar
estos datos. El script incluiría:
Importación de bibliotecas como Pandas para manejo de
datos, Matplotlib y Seaborn para visualización, y Scikit-learn para modelado
estadístico.
Carga y limpieza preliminar de datos.
Análisis descriptivo de los datos.
Se codificaron las variables categóricas y se
prepararon los datos para el análisis.
Se utilizó un modelo de regresión lineal para predecir
el rendimiento del biodiésel en función de las variables del dataset.
Los datos se dividieron en un conjunto de
entrenamiento y prueba.
import pandas as pd
import
matplotlib.pyplot as
plt
import seaborn as sns
from
sklearn.preprocessing import
LabelEncoder
from
sklearn.linear_model import
LinearRegression
from
sklearn.model_selection import
train_test_split
from
sklearn.metrics import
mean_squared_error, r2_score
# Cargar el dataset
file_path = '/content/Dataset_Biodiesel.csv'
df = pd.read_csv(file_path)
# 3. Desarrollo de Script Python
# Codificación de variables categóricas
label_encoders = {column: LabelEncoder() for column in
df.select_dtypes(include=['object']).columns}
for col, le in
label_encoders.items():
df[col] = le.fit_transform(df[col])
# División del dataset en características (X) y
objetivo (y)
X = df.drop('Rendimiento_Biodiésel_%',
axis=1)
y = df['Rendimiento_Biodiésel_%']
# División en datos de entrenamiento y prueba
X_train, X_test, y_train, y_test =
train_test_split(X, y, test_size=0.2,
random_state=0)
# Modelo de regresión lineal
modelo = LinearRegression()
modelo.fit(X_train, y_train)
# Predicciones
y_pred = modelo.predict(X_test)
# Métricas de rendimiento
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
4. Análisis Exploratorio de Datos (EDA)
En esta etapa, realizaríamos un análisis exploratorio,
incluyendo:
Histogramas y diagramas de caja para entender la
distribución de las variables.
Gráficos de dispersión para identificar correlaciones
entre variables.
Análisis estadísticos para entender la variabilidad y
las tendencias centrales de los datos.
5. Interpretación de Resultados y
Conclusiones
Finalmente, interpretaríamos los resultados obtenidos:
Identificar las condiciones óptimas para maximizar el
rendimiento de biodiésel.
Analizar el impacto del tipo de aceite y del proceso
de tratamiento en la eficiencia.
Sugerir recomendaciones para mejorar la producción de
biodiésel a partir de aceite de cocina usado.
Conclusiones
Las correlaciones observadas en el análisis EDA
sugieren que ciertas variables podrían influir en el rendimiento del biodiésel,
pero el modelo actual no capta estas relaciones de manera efectiva.
El bajo R2 Score sugiere que el modelo no es adecuado
o que se requieren más datos o variables adicionales para mejorar la
predicción.
Sería útil explorar modelos más complejos o técnicas
de análisis de datos adicionales para obtener una mejor comprensión y
predicción del rendimiento del biodiésel.



