Есть ли какой-нибудь скрипт / функция для разделения данных, подсчитывающего количество появлений классов в каждом изображении и балансирующего их? Я пробовал sklearn train_test_split таким образом:
data = pd.read_csv('train_labels.csv')
data.head()
Класс - это то, что я хочу предсказать, на одном изображении у меня может быть 0..n прямоугольников, и каждый прямоугольник имеет класс.
data = data.drop_duplicates(subset="filename")
y = data['class']
X = data.drop('class',axis = 1)
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.2)
Но когда я удаляю дубликаты в именах файлов, я теряю информацию и, возможно, отправляю файлы для обучения или тестирования со многими другими классами, но если я не удаляю их, у меня может быть файл в обучении и тестировании.
Спасибо за вашу помощь.
stratify
аргументtrain_test_split
. Думаю, звонок будетtrain_test_split(X, y, test=0.2, stratify=y)
. - person Engineero   schedule 05.03.2020imbalanced-learn
. - person Engineero   schedule 05.03.2020