Merge branch 'devel' of gitea-s2i2s.isti.cnr.it:moreo/QuaPy into devel

This commit is contained in:
Alejandro Moreo Fernandez 2024-04-15 18:00:56 +02:00
commit 99bc8508ac
1 changed files with 6 additions and 10 deletions

View File

@ -108,8 +108,7 @@ class LabelledCollection:
""" """
Returns an index to be used to extract a random sample of desired size and desired prevalence values. If the Returns an index to be used to extract a random sample of desired size and desired prevalence values. If the
prevalence values are not specified, then returns the index of a uniform sampling. prevalence values are not specified, then returns the index of a uniform sampling.
For each class, the sampling is drawn with replacement if the requested prevalence is larger than For each class, the sampling is drawn with replacement.
the actual prevalence of the class, or without replacement otherwise.
:param size: integer, the requested size :param size: integer, the requested size
:param prevs: the prevalence for each class; the prevalence value for the last class can be lead empty since :param prevs: the prevalence for each class; the prevalence value for the last class can be lead empty since
@ -153,7 +152,7 @@ class LabelledCollection:
for class_, n_requested in n_requests.items(): for class_, n_requested in n_requests.items():
n_candidates = len(self.index[class_]) n_candidates = len(self.index[class_])
index_sample = self.index[class_][ index_sample = self.index[class_][
np.random.choice(n_candidates, size=n_requested, replace=(n_requested > n_candidates)) np.random.choice(n_candidates, size=n_requested, replace=True)
] if n_requested > 0 else [] ] if n_requested > 0 else []
indexes_sample.append(index_sample) indexes_sample.append(index_sample)
@ -168,8 +167,7 @@ class LabelledCollection:
def uniform_sampling_index(self, size, random_state=None): def uniform_sampling_index(self, size, random_state=None):
""" """
Returns an index to be used to extract a uniform sample of desired size. The sampling is drawn Returns an index to be used to extract a uniform sample of desired size. The sampling is drawn
with replacement if the requested size is greater than the number of instances, or without replacement with replacement.
otherwise.
:param size: integer, the size of the uniform sample :param size: integer, the size of the uniform sample
:param random_state: if specified, guarantees reproducibility of the split. :param random_state: if specified, guarantees reproducibility of the split.
@ -179,13 +177,12 @@ class LabelledCollection:
ng = RandomState(seed=random_state) ng = RandomState(seed=random_state)
else: else:
ng = np.random ng = np.random
return ng.choice(len(self), size, replace=size > len(self)) return ng.choice(len(self), size, replace=True)
def sampling(self, size, *prevs, shuffle=True, random_state=None): def sampling(self, size, *prevs, shuffle=True, random_state=None):
""" """
Return a random sample (an instance of :class:`LabelledCollection`) of desired size and desired prevalence Return a random sample (an instance of :class:`LabelledCollection`) of desired size and desired prevalence
values. For each class, the sampling is drawn without replacement if the requested prevalence is larger than values. For each class, the sampling is drawn with replacement.
the actual prevalence of the class, or with replacement otherwise.
:param size: integer, the requested size :param size: integer, the requested size
:param prevs: the prevalence for each class; the prevalence value for the last class can be lead empty since :param prevs: the prevalence for each class; the prevalence value for the last class can be lead empty since
@ -202,8 +199,7 @@ class LabelledCollection:
def uniform_sampling(self, size, random_state=None): def uniform_sampling(self, size, random_state=None):
""" """
Returns a uniform sample (an instance of :class:`LabelledCollection`) of desired size. The sampling is drawn Returns a uniform sample (an instance of :class:`LabelledCollection`) of desired size. The sampling is drawn
with replacement if the requested size is greater than the number of instances, or without replacement with replacement.
otherwise.
:param size: integer, the requested size :param size: integer, the requested size
:param random_state: if specified, guarantees reproducibility of the split. :param random_state: if specified, guarantees reproducibility of the split.