示例#1
0
    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))
示例#2
0
    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))
示例#3
0
    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