У меня очень несбалансированный набор данных, который мне нужен, чтобы построить модель поверх проблемы классификации. В наборе данных содержится около 30000 выборок, из которых около 1000 выборок помечены как «1», а остальные равны 0. Я строю модель по следующим строкам:
X_train=training_set
y_train=target_value
my_classifier=GradientBoostingClassifier(loss='deviance',learning_rate=0.005)
my_model = my_classifier.fit(X_train, y_train)
Поскольку это несбалансированные данные, неправильно строить модель, как в приведенном выше коде, поэтому я попытался использовать веса классов следующим образом:
class_weights = compute_class_weight('balanced',np.unique(y_train), y_train)
Теперь я понятия не имею, как я могу использовать class_weights
(который в основном включает значения 0,5 и 9,10) для обучения и построения модели с использованием GradientBoostingClassifier
.
Есть идеи? Как мне справиться с этими несбалансированными данными с помощью взвешенного класса или других методов?