1def doIt(X, method, ncomponents, nneighbors, njobs, rstate, params):
9 for mod
in [
"numpy",
"scipy",
"sklearn"]:
10 if importlib.util.find_spec(mod)
is None:
12 print(
"[DimensionReduction] Python error: " + mod +
" module not found.")
19 from sklearn
import manifold
20 from sklearn
import decomposition
22 from sys
import platform
23 from packaging
import version
34 if seParams[2] ==
"None":
35 se = manifold.SpectralEmbedding(
36 n_components=ncomponents,
40 n_neighbors=nneighbors,
44 se = manifold.SpectralEmbedding(
45 n_components=ncomponents,
48 eigen_solver=seParams[2],
49 n_neighbors=nneighbors,
52 Y = se.fit_transform(X)
55 lle = manifold.LocallyLinearEmbedding(
56 n_neighbors=nneighbors,
57 n_components=ncomponents,
59 eigen_solver=lleParams[1],
61 max_iter=lleParams[3],
63 hessian_tol=lleParams[5],
64 modified_tol=lleParams[6],
65 neighbors_algorithm=lleParams[7],
68 Y = lle.fit_transform(X)
72 n_components=ncomponents,
75 max_iter=mdsParams[2],
78 dissimilarity=mdsParams[5],
81 Y = mds.fit_transform(X)
83 tsneParams = params[3]
84 if version.parse(sklearn.__version__) >= version.parse(
"1.7.0"):
86 n_components=ncomponents,
87 perplexity=tsneParams[0],
88 early_exaggeration=tsneParams[1],
89 learning_rate=tsneParams[2],
90 max_iter=tsneParams[3],
91 n_iter_without_progress=tsneParams[4],
92 min_grad_norm=tsneParams[5],
95 verbose=tsneParams[8],
100 tsne = manifold.TSNE(
101 n_components=ncomponents,
102 perplexity=tsneParams[0],
103 early_exaggeration=tsneParams[1],
104 learning_rate=tsneParams[2],
105 n_iter=tsneParams[3],
106 n_iter_without_progress=tsneParams[4],
107 min_grad_norm=tsneParams[5],
108 metric=tsneParams[6],
110 verbose=tsneParams[8],
111 method=tsneParams[9],
112 angle=tsneParams[10],
114 Y = tsne.fit_transform(X)
116 isoParams = params[4]
117 iso = manifold.Isomap(
118 n_neighbors=nneighbors,
119 n_components=ncomponents,
120 eigen_solver=isoParams[0],
122 max_iter=isoParams[2],
123 path_method=isoParams[3],
124 neighbors_algorithm=isoParams[4],
128 Y = iso.fit_transform(X)
130 pcaParams = params[5]
131 if pcaParams[4] ==
"auto":
132 pca = decomposition.PCA(
133 n_components=ncomponents,
136 svd_solver=pcaParams[2],
138 iterated_power=
"auto",
141 pca = decomposition.PCA(
142 n_components=ncomponents,
145 svd_solver=pcaParams[2],
147 iterated_power=int(pcaParams[4]),
149 Y = pca.fit_transform(X)
151 L = [Y.shape[0], Y.shape[1], np.ravel(Y,
"F")]
153 except Exception
as inst:
155 "[DimensionReduction] Error: unexpected behaviour detected in the python script."