pca = PCA(n_components=20)
X_pca_20 = pca.fit_transform(X)
print(X_pca_20.shape)

from sklearn.decomposition import PCA
pca = PCA(n_components=30)
X_pca_30 = pca.fit_transform(X)
print(X_pca_30.shape)

# In[211]:

#check if final features are independent or not
print("Using Heatmap check if final features are independent or not.")
X_chi_20 = pd.DataFrame(X_mutual_info_classif_20,
                        columns=X_mutual_info_classif_20_feature_names)
corr = X_chi_20.corr()
import numpy as np
from pandas import DataFrame
from matplotlib import pyplot
import seaborn as sns

a4_dims = (30, 30)
fig, ax = pyplot.subplots(figsize=a4_dims)
sns.set(font_scale=1)
sns.heatmap(corr, annot=True, ax=ax, annot_kws={"size": 20})
plt.show()
# In[217]:

print("Model building starts:")

from sklearn.tree import DecisionTreeClassifier