From 3dafde3a679fe4f12577a4e606e3c2bde3e27b16 Mon Sep 17 00:00:00 2001 From: YiHui Liu Date: Thu, 7 Jul 2022 15:50:43 +0800 Subject: [PATCH] add: GaussianMixture --- .gitignore | 2 +- GaussianMixture.py | 36 ++++++++++++++++++++++++++++++++++++ include/BlockHandler.h | 1 - requirements.txt | Bin 0 -> 140 bytes 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 GaussianMixture.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore index 85dae8f..3c918f3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,8 @@ *.log *.csv *.json -*.txt 2016Q3D/ +result/ # env venv/ diff --git a/GaussianMixture.py b/GaussianMixture.py new file mode 100644 index 0000000..e12e29a --- /dev/null +++ b/GaussianMixture.py @@ -0,0 +1,36 @@ +import os +import numpy as np +from tqdm import tqdm +from matplotlib import pyplot as plt +from sklearn.mixture import GaussianMixture + +path = 'result/bind' +file_list = os.listdir(path) + +pbar = tqdm(total=len(file_list)) + +for file in file_list: + name = file.split('.')[0] + file = os.path.join(path, file) + data = np.loadtxt(file, dtype=np.uint16) + x = data[:, 0] + y = data[:, 1] + + model = GaussianMixture(n_components=2) + model.fit(data) + + nx = np.array([]) + ny = model.predict(data) + fig = plt.figure(figsize=(8, 8)) + for cluster in np.unique(ny): + idx = np.where(ny == cluster)[0] + nx = idx if len(idx) > len(nx) else nx + plt.scatter(data[idx, 0], data[idx, 1], s=0.1) + fig.savefig('result/GMM/' + name + '.png') + plt.close() + + np.savetxt('result/bind-GMM/' + name + '.txt', data[nx], fmt='%d') + + pbar.update(1) + +pbar.close() diff --git a/include/BlockHandler.h b/include/BlockHandler.h index f6b7162..7919ef7 100644 --- a/include/BlockHandler.h +++ b/include/BlockHandler.h @@ -5,7 +5,6 @@ #include "BindHandler.h" #include "FileHandler.h" -#include "GaussFit.h" class BlockHandler { public: diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..2c74d8436865191074c0f44717ab592cdc5b811c GIT binary patch literal 140 zcmY+6(F#C75Jk_k@+q{)qmMxz#3H*M{5)Q)k&Z@Fky9%r oDG3V)R@520BHjaGV(aMjHz}S>jzP{{Kfx2&H^JjX{d@CS9^}3i{r~^~ literal 0 HcmV?d00001