You have at least two options:
-
Transform all your data into a categorical representation by computing percentiles for each continuous variables and then binning the continuous variables using the percentiles as bin boundaries. For instance for the height of a person create the following bins: “very small”, “small”, “regular”, “big”, “very big” ensuring that each bin contains approximately 20% of the population of your training set. We don’t have any utility to perform this automatically in scikit-learn but it should not be too complicated to do it yourself. Then fit a unique multinomial NB on those categorical representation of your data.
-
Independently fit a gaussian NB model on the continuous part of the data and a multinomial NB model on the categorical part. Then transform all the dataset by taking the class assignment probabilities (with
predict_proba
method) as new features:np.hstack((multinomial_probas, gaussian_probas))
and then refit a new model (e.g. a new gaussian NB) on the new features.