Как скопировать обучающие данные n раз во время классификации?

У меня проблема классификации с двумя наборами данных с 200 и 50 точками соответственно. Из этих 40 точек данных берутся в качестве тестового набора. Я выбрал kNN в качестве классификатора, учитывающего пять ближайших соседей.

n_neighbors = 5
std = 5

# generate data

X0, y0 = make_blobs(n_samples=200, centers=2, n_features=2, cluster_std = std, random_state=42)
h = .1  # step size in the mesh

X1, y1 = make_blobs(n_samples=50, centers=2, n_features=2, cluster_std = std, random_state=42)

# split into training and test set
X0_train, X0_test, y0_train, y0_test = train_test_split(X0, y0, test_size=0.2, random_state=42)

X1_train, X1_test, y1_train, y1_test = train_test_split(X1, y1, test_size=0.2, random_state=42)

Мне нужно обогатить данные таким образом, чтобы обучающие данные для класса 1 копировались 16 раз, чтобы класс 1 имел тот же размер обучения, что и класс 0.

Как я могу скопировать данные обучения шестнадцать раз? Я понятия не имею, что именно здесь означает копирование.

Может ли кто-нибудь бросить несколько строк кода, чтобы объяснить то же самое?


person Rishik Mani    schedule 15.12.2016    source источник


Ответы (1)


Я предполагаю, что вы говорите о проблеме дисбаланса классов, чтобы преодолеть эту проблему, вам нужно выполнить выборку (выборку вверх или вниз). Посмотрите, может ли помочь следующая техника: (https://www.cs.cmu.edu/afs/cs/project/jair/pub/volume16/chawla02a-html/chawla2002.html)

person MargS    schedule 16.12.2016