def generate_princomp(xo, filen='testsave.py'): # import mlabwrap only when run as script import mlabwrap from mlabwrap import mlab np.set_printoptions(precision=14, linewidth=100) data = HoldIt('data') data.xo = xo data.save(filename='testsave.py', comment='generated data, divide by 1000') res_princomp = HoldIt('princomp1') res_princomp.coef, res_princomp.factors, res_princomp.values = \ mlab.princomp(x, nout=3) res_princomp.save(filename=filen, header=False, comment='mlab.princomp(x, nout=3)') res_princomp = HoldIt('princomp2') res_princomp.coef, res_princomp.factors, res_princomp.values = \ mlab.princomp(x[:20,], nout=3) np.set_printoptions(precision=14, linewidth=100) res_princomp.save(filename=filen, header=False, comment='mlab.princomp(x[:20,], nout=3)') res_princomp = HoldIt('princomp3') res_princomp.coef, res_princomp.factors, res_princomp.values = \ mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3) np.set_printoptions(precision=14, linewidth=100) res_princomp.save(filename=filen, header=False, comment='mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3)')
def generate_princomp(xo, filen='testsave.py'): # import mlabwrap only when run as script from mlabwrap import mlab np.set_printoptions(precision=14, linewidth=100) data = HoldIt('data') data.xo = xo data.save(filename='testsave.py', comment='generated data, divide by 1000') res_princomp = HoldIt('princomp1') res_princomp.coef, res_princomp.factors, res_princomp.values = \ mlab.princomp(x, nout=3) res_princomp.save(filename=filen, header=False, comment='mlab.princomp(x, nout=3)') res_princomp = HoldIt('princomp2') res_princomp.coef, res_princomp.factors, res_princomp.values = \ mlab.princomp(x[:20,], nout=3) np.set_printoptions(precision=14, linewidth=100) res_princomp.save(filename=filen, header=False, comment='mlab.princomp(x[:20,], nout=3)') res_princomp = HoldIt('princomp3') res_princomp.coef, res_princomp.factors, res_princomp.values = \ mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3) np.set_printoptions(precision=14, linewidth=100) res_princomp.save(filename=filen, header=False, comment='mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3)')
def dim_reduce_pca(self, tables, dims): if not dims: return [0] * len(tables), [0] * len(tables), None average_vectors = np.array([t.get_average(*dims) for t in tables]) print average_vectors.shape from mlabwrap import mlab #extra_points, mapping = mlab.compute_mapping( # average_vectors, 'PCA', 2, nout=2) coeffs, extra_points = mlab.princomp(average_vectors, nout=2) print extra_points.shape return extra_points.T[0], extra_points.T[1], coeffs
def dim_reduce_pca(self, tables, dims): if not dims: return [0] * len(tables), [0] * len(tables), None average_vectors = np.array([t.get_average(*dims) for t in tables]) print average_vectors.shape from mlabwrap import mlab #extra_points, mapping = mlab.compute_mapping( # average_vectors, 'PCA', 2, nout=2) coeffs, extra_points = mlab.princomp(average_vectors, nout=2) print extra_points.shape return extra_points.T[0], extra_points.T[1], coeffs