30 lines
894 B
Python

from werkzeug.datastructures import FileStorage
from backend import regression
from backend.dataset import Dataset
from backend.dataset.model import DatasetParams, SplittedDataset
from backend.regression.model import RegressionResult, RegressionTreeParams
def run_regression(
path: str | None,
file: FileStorage,
dataset_params: DatasetParams,
tree_params: RegressionTreeParams,
) -> RegressionResult:
try:
dataset: Dataset = Dataset(path=path, file=file)
data = dataset.read(dataset_params)
splitted_dataset: SplittedDataset = dataset.split(
data=data,
params=dataset_params,
random_state=tree_params.random_state,
)
result = regression.learn_regression_model(
data=splitted_dataset,
params=tree_params,
)
finally:
dataset.remove()
return result