Создайте Python-приложение, которое загружает датасет, использует модель линейной регрессии для предсказания, и сохраняет метрики модели (MAE, RMSE) в файл
metrics.json. Программа должна уметь загружать датасет в формате CSV, обучать модель и выводить результаты.➡️ Пример:
•
python app.py train data.csv — обучает модель, выводит метрики и сохраняет в metrics.json.Решение задачи ⬇️
import sys
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error, mean_squared_error
import json
def train_model(file_path):
# Загружаем данные
data = pd.read_csv(file_path)
X = data.drop('target', axis=1)
y = data['target']
# Разделение на тренировочные и тестовые данные
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучаем модель
model = LinearRegression()
model.fit(X_train, y_train)
# Предсказание
y_pred = model.predict(X_test)
# Вычисляем метрики
mae = mean_absolute_error(y_test, y_pred)
rmse = mean_squared_error(y_test, y_pred, squared=False)
# Сохраняем метрики
metrics = {'MAE': mae, 'RMSE': rmse}
with open('metrics.json', 'w') as f:
json.dump(metrics, f)
print(f"MAE: {mae}, RMSE: {rmse}")
if __name__ == "__main__":
if len(sys.argv) > 1:
train_model(sys.argv[1])
else:
print("Укажите путь к CSV-файлу.")