def fit(self, X, y=None, input_type='<STR_LIT>'):
X = self._validate_input(X, input_type)<EOL>self.fit_geometry(X, input_type)<EOL>random_state = check_random_state(self.random_state)            <EOL>self.embedding_, self.eigen_vectors_, self.P_ = spectral_clustering(self.geom_, K = self.K, <EOL>eigen_solver = self.eigen_solver, <EOL>random_state = self.random_state, <EOL>solver_kwds = self.solver_kwds,<EOL>renormalize = self.renormalize,<EOL>stabalize = self.stabalize,<EOL>additional_vectors = self.additional_vectors)<EOL>
Fit the model from data in X.

Parameters
----------
input_type : string, one of: 'similarity', 'distance' or 'data'.
    The values of input data X. (default = 'data')
X : array-like, shape (n_samples, n_features)
    Training vector, where n_samples in the number of samples
    and n_features is the number of features.

If self.input_type is similarity:
X : array-like, shape (n_samples, n_samples),
    copy the similarity matrix X to S.