def dim_red(self, col, method, params, kws, load_fit=None):
if method == 'PCA':
self.do_dim_red = PCA(*params, **kws)
if method == 'FastICA':
self.do_dim_red = FastICA(*params, **kws)
if method == 't-SNE':
self.do_dim_red = TSNE(*params, **kws)
if method == 'LLE':
self.do_dim_red = LocallyLinearEmbedding(*params, **kws)
if method == 'JADE-ICA':
self.do_dim_red = JADE(*params, **kws)
# TODO: Add ICA-JADE here
if load_fit:
self.do_dim_red = load_fit
else:
if method != 't-SNE':
self.do_dim_red.fit(self.df[col])
dim_red_result = self.do_dim_red.transform(self.df[col])
else:
dim_red_result = self.do_dim_red.fit_transform(self.df[col])
for i in list(range(1, dim_red_result.shape[1] + 1)): # will need to revisit this for other methods that don't use n_components to make sure column names still mamke sense
self.df[(method, str(i))] = dim_red_result[:, i - 1]
return self.do_dim_red
评论列表
文章目录