def fit(self, data, class_name, categorial_name, multidimentionality=False): # X,y series self.categorial_name = categorial_name conjugate_matrix = ConjugateMatrix() conjugate_matrix.make(data, class_name, categorial_name) probability_matrix = ProbabilityMatrix() probability_matrix.make_form_cobjugate_matrix(conjugate_matrix) conjugate_matrix.get_D1() # conjugate_matrix = None D1 = probability_matrix.get_D1() D2 = probability_matrix.get_D2() D1_sqrt_ = fractional_matrix_power(D1, -0.5) D2_sqrt_ = fractional_matrix_power(D2, -0.5) PH = np.dot(np.dot(D1_sqrt_, probability_matrix.matrix), D2_sqrt_) T_1 = np.dot(PH.T, PH) # T_2 = np.dot(PH,PH.T) tags = Tags() tags.make(T_1, D2_sqrt_, multidimentionality) self.C = tags.tags return self
def fit(self, X, multidimentionality=False): X = deepcopy(X) # X - only caregorial self.columns = X.columns.values p = X.columns.values.shape[0] binary_matrix = BinaryMatrixData() binary_matrix = binary_matrix.make(X) D = binary_matrix.make_D() D_sqrt_ = fractional_matrix_power(D, -0.5) D = None F = np.dot(((1 / p ** 0.5) * binary_matrix.matrix), D_sqrt_) binary_matrix = None T_1 = np.dot(F.T, F) F = None tags = Tags() tags.make(T_1,D_sqrt_,multidimentionality) T_1 = None self.C = tags.tags return self