Балансировка данных в питоне - PullRequest
0 голосов
/ 10 мая 2019

Для моего задания DeepLearning я хочу соответствующим образом сбалансировать свои данные. Набор данных - это «Набор данных по диагностике рака молочной железы в Висконсине», полученный из https://www.kaggle.com/uciml/breast-cancer-wisconsin-data

В настоящее время данные несбалансированы: 357 классов помечены как доброкачественные, против 212 злокачественных.

Мне интересно, что было бы лучшим способом сбалансировать данные. Является ли SMOTE хорошим вариантом для этой проблемы? Какой код мне нужен, чтобы сбалансировать столбец классов диагностики? И как определить, что столбец «диагноз» должен быть сбалансирован? Смотрите мои попытки ниже.

data = pd.read_csv('C:/Users/Vincent/Desktop/DeepLearning/data.csv')

classifier = RandomForestClassifier

X_train, X_test, y_train, y_test = train_test_split(data['data'], data['target'], random_state=2)

smote_pipeline = make_pipeline_imb(SMOTE(random_state=4), classifier(random_state=42))
smote_model = smote_pipeline.fit(X_train,y_train)
smote_prediction = smote_model.predict(X_test)
...