def METHOD_NAME(self, X, y, sample_weight=None, eval_set=None, sample_weight_eval_set=None, **kwargs):
    orig_cols = list(X.names)
    text_names = X[:, [str]].names
    lb = LabelEncoder()
    lb.METHOD_NAME(self.labels)
    y = lb.transform(y)
    model = LogisticRegression(C=self.params["C"],
                               max_iter=self.params["max_iter"],
                               fit_intercept=False,
                               random_state=520)
    count_objs = {}
    new_X = None
    for col in text_names:
        XX = X[:, col].to_pandas()
        XX = XX[col].astype(str).values.tolist()
        if not self.use_tfidf:
            count_vec = CountVectorizer(max_features=self.params["max_features"],
                                        binary=self.binary_count)
        else:
            count_vec = TfidfVectorizer(max_features=self.params["max_features"])
        try:
            XX = count_vec.fit_transform(XX)
        except ValueError as e:
            if 'vocab' in str(e):
                # skip non-text-like column
                continue
            else:
                raise
        count_objs[col] = count_vec
        if new_X is None:
            new_X = XX
        else:
            new_X = sp.sparse.hstack([new_X, XX])
    model.METHOD_NAME(new_X, y)
    model = (model, count_objs)
    importances = [1] * len(orig_cols)
    self.set_model_properties(model=model,
                              features=orig_cols,
                              importances=importances,
                              iterations=0)