<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _process_using_meta_feature_generator(self, X, meta_feature_generator):
 """Process using secondary learner meta-feature generator Since secondary learner meta-feature generator can be anything e.g. predict, predict_proba, this internal method gives the ability to use any string. Just make sure secondary learner has the method. Args: X (array-like):
 Features array meta_feature_generator (str, unicode):
 Method for use by secondary learner """


        all_learner_meta_features = []
        for idx, base_learner in enumerate(self.base_learners):
            single_learner_meta_features = getattr(base_learner,
                                                   self.meta_feature_generators[idx])(X)

            if len(single_learner_meta_features.shape) == 1:
                single_learner_meta_features = single_learner_meta_features.reshape(-1, 1)
            all_learner_meta_features.append(single_learner_meta_features)

        all_learner_meta_features = np.concatenate(all_learner_meta_features, axis=1)

        out = getattr(self.secondary_learner, meta_feature_generator)(all_learner_meta_features)

        return out