import pandas as pd
from torch import FloatTensor, Generator, LongTensor
from torch.utils.data.dataset import random_split
[docs]def split_random(dataset, fracs: list) -> list:
"""Randomly split dataset."""
assert abs(sum(fracs) - 1) < 1e-6, "Sum of fractions must be 1"
tot = len(dataset)
values = []
for i in fracs[1:]:
values.append(int(i * tot))
values = [tot - sum(values)] + values
return random_split(dataset, values)
[docs]def minmax_normalise(s: pd.Series) -> pd.Series:
"""MinMax normalisation of a pandas series."""
return (s - s.min()) / (s.max() - s.min())
[docs]def to_prob(s: pd.Series) -> pd.Series:
"""Convert to probabilities."""
return s / s.sum()