Я новичок в этом, и я хотел бы применить RandomUnderSampler (from imblearn.under_sampling import RandomUnderSampler
), чтобы сбалансировать распределение классов, а затем построить точки, принадлежащие каждому классу, с другим цветом.
ТакПока я сделал следующее, я думаю, что это могло бы работать, но я не знаю, как преобразовать X_res, y_res
в DataFrame.
X_res, y_res = RandomUnderSampler(random_state=seed, sampling_strategy=1.0).fit_resample(X, y)
// Do something with X_res and y_res to get a DataFrame
from sklearn.decomposition import PCA
# split data into min and maj classes
(min_points, maj_points, _, _, _) = splitByClass(df)
# fit PCA with minority points
pca = PCA(n_components=2)
pca_min = pca.fit_transform(min_points)
fig, ax = plt.subplots()
ax.scatter(pca_min[:, 0], pca_min[:, 1], color='r', label='minority', alpha=0.4, edgecolors='none')
pca_maj = pca.fit_transform(maj_points)
ax.scatter(pca_maj[:, 0], pca_maj[:, 1], color='b', label='majority', alpha=0.4, edgecolors='none')
ax.legend()
ax.grid(True)
plt.tight_layout()
plt.show()