In [1]:
import pickle
path = '../../rsc/obj/'
X_train_path = path + 'X_train.sav'
train_features = pickle.load(open(X_train_path, 'rb'))
# import pickle # Módulo para serializar
# import numpy as np
# path = '..//..//rsc//obj//BoW_features//'
# for i in (15000,30000,45000,53688):
# daisy_features_path = path + 'BoW_features'+ str(i) +'.sav'
# if i == 15000:
# train_features = pickle.load(open(daisy_features_path, 'rb'))
# set_to_add = pickle.load(open(daisy_features_path, 'rb'))
# train_features = np.vstack((train_features,set_to_add))
La razón por la que utilizamos un algoritmo de clustering es para la agrupación de dichas palabras en un determinado número de grupos. De manera que estos grupos de palabras resulten en patrones visuales que aporten mayor información al clasificador y, por lo tanto, nos permitan llevar a cabo una clasificación más eficiente.
Vamos a proceder a entrenar dos variantes de algoritmos de clustering :
In [ ]:
%%time
from sklearn.cluster import MiniBatchKMeans as MiniKMeans
import warnings
warnings.filterwarnings("ignore")
# Se inicializa el algoritmo de Kmeans indicando el número de clusters
mini_kmeans = MiniKMeans(500)
#se construye el clusterr con todas las características del conjunto de entramiento
mini_kmeans.fit(train_features)
In [ ]:
import pickle # Módulo para serializar
path = '../../rsc/obj/'
mini_kmeans_path = path + 'mini_kmeans.sav'
pickle.dump(mini_kmeans, open(mini_kmeans_path, 'wb'))