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 0000000..2c74d84 Binary files /dev/null and b/requirements.txt differ