Сохранить большую модель PCA на диске: struct.error: в формате 'i' требуется -2147483648 <= число <= 2147483647
У меня есть подмножество большого набора данных из примерно 2,5 миллионов примеров, называемого моим набором данных, где я взял 10000 выборок, таких что:
sample_dataset.shape
(10000,28980)
Я хотел бы применить PCA для уменьшения размерности (и оставить компоненты, которые объясняют 95% дисперсии данных) следующим образом:
pca = PCA()
pca.fit_transform(sample_dataset)
values = pca.explained_variance_ratio_.cumsum()
max_val=filter(lambda x : x >= 0.95,values)[0] # to keep only the components that explain 95% of data variance
arg_idx=np.where(values == max_val)
arg_idx=arg_idx[0][0]
results=[pca,values,arg_idx]
print('Store PCA model')
filename = 'pca_model.pkl'
pickle.dump(results,open(filename,'wb'),protocol=pickle.HIGHEST_PROTOCOL)
Поскольку модель слишком велика, я получаю ошибку в:
pickle.dump(results,open(filename,'wb'),protocol=pickle.HIGHEST_PROTOCOL)
это struct.error: для формата 'i' требуется -2147483648 <= число <= 2147483647
Любой сигнал, чтобы сохранить эту большую модель? так что цель состоит в том, чтобы загрузить эту модель, чтобы применить ее к тестовым данным следующим образом:
pickle_off = open('pca_model.pkl', 'rb')
config_file=pickle.load(pickle_off)
model_pca=config_file[0]
results_pca = model_pca.transform(test_data)
results_pca = results_pca[:, :config_file[2]]# config_file[2] contains the number of components that explain 95% of data variance
Спасибо за помощь