def fit(self, X, y):
self.classes_ = unique_labels(y)<EOL>X = csr_matrix(X, dtype=bool)  <EOL>pvals = X[np.array(y == <NUM_LIT:1>), :].mean(axis=<NUM_LIT:0>)<EOL>nvals = X[np.array(y != <NUM_LIT:1>), :].mean(axis=<NUM_LIT:0>)<EOL>self.coef_ = self.__get_vtt_angles(pvals, nvals).toarray()<EOL>pnvals = (nvals + pvals).T<EOL>if self.intercept_ is None:<EOL><INDENT>self.intercept_ = -(self.coef_.dot(pnvals)/<NUM_LIT>)[<NUM_LIT:0>, <NUM_LIT:0>]<EOL><DEDENT>for b, val in self.B.items():<EOL><INDENT>self.coef_[<NUM_LIT:0>, b] = <NUM_LIT:1.>/val<EOL><DEDENT>return self<EOL>
Fit the VTT classifier model

        Args:
                X (sparse matrix, shape = [n_samples, n_features]) : Training data
                y (array-like, shape = [n_samples]) : Target values