У меня очень несбалансированный набор данных, принадлежащий 5 различным классам. Итак, сначала я использовал передискретизацию, и основная задача - настроить LightGBM только для одного класса (данные, принадлежащие другим классам, не имеют значения). Поэтому я настраиваю модель вручную, так как GridSearchCV запрашивает оценку параметра, и я не думаю, что передача макроса «micor» или «будет полезно» (нужна модель только для одного класса). Нужна помощь, чтобы проверить, если это правильный способ сделать это или нет. Пожалуйста, найдите код ниже:
learnrate=[0.15,0.1,0.05,0.01,0.005,0.001]
numleav=[16,18,20,22,24,26,28,30,32,34]
nestm=[70,100,150,200,250]
result={}
for i in learnrate:
for j in numleav:
for k in nestm:
model = lgb.LGBMClassifier(num_leaves=j, learning_rate=i,n_estimators=k,boosting_type='dart', random_state=15)
model.fit(x_train_os,y_train_os)
train_preds_os=model.predict(x_train_os)
test_preds_os=model.predict(x_test)
result[i,j,k]=train_preds_os, test_preds_os
print(i,j,k,precision_score(y_train_os,train_preds_os, average=None)[1])
print(precision_score(y_test, test_preds_os, average=None)[1])