def train(self, k, train_set, valid_set): train_wavs, train_folds, train_labels = zip(*list(chain(*train_set))) train_wavs, train_folds, train_labels = np.array(train_wavs), np.array( train_folds), np.array(train_labels) train_sample = len(train_wavs) train_x, _ = self.fix_frame(train_sample, train_wavs, train_folds, train_labels) # Test Model valid_wavs, valid_folds, valid_labels = zip(*valid_set) valid_wavs, valid_folds, valid_labels = np.array(valid_wavs), np.array( valid_folds), np.array(valid_labels) valid_sample = len(valid_wavs) valid_x, valid_y = self.fix_frame(valid_sample, valid_wavs, valid_folds, valid_labels) if config.isPCA: pca = PCA(n_components=config.n_pca) pca.fit(train_x) train_x = pca.transform(train_x) valid_x = pca.transform(valid_x) kmeans = KMeans(n_clusters=self.n_class, random_state=0).fit(train_x) joblib.dump(kmeans, f"{self.model_path}/kmeans-{k}.pkl") score = purity_score(np.argmax(valid_y, axis=1), kmeans.predict(valid_x)) print('Accuracy:{0:.3f}'.format(score * 100))
def train(self, k, train_set, valid_set): train_wavs, train_folds, train_labels = zip(*list(chain(*train_set))) train_wavs, train_folds, train_labels = np.array(train_wavs), np.array(train_folds), np.array(train_labels) train_sample = len(train_wavs) train_x, _ = self.fix_frame(train_sample, train_wavs, train_folds, train_labels) # Test Model valid_wavs, valid_folds, valid_labels = zip(*valid_set) valid_wavs, valid_folds, valid_labels = np.array(valid_wavs), np.array(valid_folds), np.array(valid_labels) valid_sample = len(valid_wavs) valid_x, valid_y = self.fix_frame(valid_sample, valid_wavs, valid_folds, valid_labels) if config.isPCA: pca = PCA(n_components=config.n_pca) pca.fit(train_x) train_x = pca.transform(train_x) valid_x = pca.transform(valid_x) gmm = GaussianMixture(n_components=self.component).fit(train_x) joblib.dump(gmm, f"{self.model_path}/gmm-{k}.pkl") score = purity_score(np.argmax(valid_y, axis=1), gmm.predict(valid_x)) print('Accuracy:{0:.3f}'.format(score))
def test(self, k, test_set): # Test Model load_model = joblib.load(f"{self.model_path}/gmm-{k}.pkl") test_wavs, test_folds, test_labels = zip(*test_set) test_wavs, test_folds, test_labels = np.array(test_wavs), np.array(test_folds), np.array(test_labels) test_samples = len(test_wavs) test_x, test_y = self.fix_frame(test_samples, test_wavs, test_folds, test_labels) score = purity_score(np.argmax(test_y, axis=1), load_model.predict(test_x)) return score