def poly_16features(X): """Expand data polynomially """ X_exp = np.zeros((X.shape[0],X.shape[1]+14)) X_exp[:,:2] = X X_exp[:,2] = X[:,0]*X[:,1] X_exp[:,3] = X[:,0]**2 X_exp[:,4] = X[:,1]**2 X_exp[:,5] = X[:,0]**3 X_exp[:,6] = X[:,1]**3 X_exp[:,7] = X[:,0]**2*X[:,1] X_exp[:,8] = X[:,1]**2*X[:,0] X_exp[:,9] = X[:,0]**4 X_exp[:,10] = X[:,1]**4 X_exp[:,11] = X[:,0]**3*X[:,1] X_exp[:,12] = X[:,1]**3*X[:,0] X_exp[:,13] = X[:,0]**2*X[:,0]**2 X_exp[:,14] = X[:,0]**5 X_exp[:,15] = X[:,1]**5 return X_exp