def reduceDimensionality(X, y, method="selectkbest", targetDim=10):
""" Reduces the dimensionality of [X] to [targetDim] """
try:
# Check for the required methodology first
if method.lower() == "selectkbest":
prettyPrint("Selecting %s best features from dataset" % targetDim, "debug")
kBestSelector = SelectKBest(k=targetDim)
X_new = kBestSelector.fit_transform(X, y).tolist()
elif method.lower() == "pca":
prettyPrint("Extracting %s features from dataset using PCA" % targetDim, "debug")
pcaExtractor = PCA(n_components=targetDim)
# Make sure vectors in X are positive
X_new = pcaExtractor.fit_transform(X, y).tolist()
else:
prettyPrint("Unknown dimensionality reduction method \"%s\"" % method, "warning")
return X
except Exception as e:
prettyPrint("Error encountered in \"reduceDimensionality\": %s" % e, "error")
return X
# Return the reduced dataset
return X_new
评论列表
文章目录