Несбалансированная случайная функция набора данных и линейная функция - PullRequest
1 голос
/ 05 марта 2020

Я должен вывести номер выборки линейно, а не случайно. Я определил случайную функцию (Вы можете видеть, как показано ниже)

def random_distort_dataset(features, labels):
    sub_features = []
    sub_labels = []

    for label in np.unique(labels):

        indices = np.argwhere(labels == label)[:,0]
        np.random.shuffle(indices)
        samples_to_get = int(indices.shape[0] * np.random.rand(1))
        sub_features.extend(features[indices[:samples_to_get]])
        sub_labels.extend(labels[indices[:samples_to_get]]) 

    return np.array(sub_features), np.array(sub_labels)

, но она случайным образом не извлекает ни одного из образцов из 62 классов (например: класс 1; 263, класс 2: 287, класс 3: 3, класс 4: 78 ..... класс 62: 127) ... но теперь я хочу извлечь число выборки из каждого класса линейно, без итерации. например, в 1-й итерации в каждом классе число выборок должно быть одинаковым (например, класс 1; 262, класс 2: 262 ... класс 262), но оно должно линейно уменьшаться во всех других классах, кроме класса 1 ... и на последней итерации номер выборки в классе 62 должен быть 1 ...

Как я могу это сделать?

...