30 lines
894 B
Python
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
|