I am working on a basic fraud detection model. I have about 10 independent features and I am trying to predict if a given transaction is genuine or fraud. Most of the features are categorical and each categorical variable has hundreds of factors.

As each feature has so many factors what I am currently trying to bag factor levels into larger groups. For example assume feature 1 has about 1000 unique factors. Each factor appears multiple times in the training data. I calculated the percentage of fraud for each factor. All factors with less than 10% fraud transactions were put in group A, factors with less than 20% fraud transactions were put in group B and so on.

As I am using the dependent variable for bagging the independent variables I am not sure if my strategy is legit? Can some one help me with this? Alternatively what are other approaches for reducing the number of factors