from sklearn.linear_model import LinearRegression
import numpy as np
def cargar_datos(ruta):
print(f"Cargando datos desde {ruta}...")
return [[1, 2], [0.5, -1], [0.2, 4]] # Aquí debería devolver los datos leídos
def preprocesar_datos(datos, tipo):
# Problema: Lógica de preprocesamiento en una única función
if tipo == "filtrado":
print("Filtrando datos...")
return [x for x in datos if all(i >= 0 for i in x)]
if tipo == "normalizacion":
print("Aplicando normalización...")
return [[(i - min(x)) / (max(x) - min(x)) for i in x] for x in datos]
else:
print(f"Preprocesamiento desconocido {tipo}")
return datos
def predecir(entrada, datos, modelo_tipo):
# Problema: Función que mezcla la lógica de entrenamiento y predicción
if modelo_tipo == "media":
print("Entrenando modelo de clasificación con", datos)
valor_medio = sum(sum(x) for x in datos) / sum(len(x) for x in datos)
return valor_medio
elif modelo_tipo == "regresion_lineal":
print("Entrenando modelo de regresión con", datos)
X = np.array([x[:-1] for x in datos])
y = np.array([x[-1] for x in datos])
modelo = LinearRegression()
modelo.fit(X, y)
prediccion = modelo.predict([entrada])
return prediccion
else:
print("Tipo de modelo desconocido")
return None
if __name__ == "__main__":
datos = cargar_datos('/ruta/al/dataset')
datos = preprocesar_datos(datos, 'filtrado')
datos = preprocesar_datos(datos, 'normalizacion')
print(datos)
prediccion = predecir([1], datos, 'regresion_lineal')
print(f'La predicción es {prediccion}')