def run_ward_cluster(df_features, feature_names, num_clusters,output_dir,output_postfix):

    redundancy_removed_features_names = remove_correlated_features(df_features, feature_names, 0.95)
    print(" The %d features that are not closely correlated are %s" % (
        len(redundancy_removed_features_names), redundancy_removed_features_names))

    #num_clusters, dunn_index1 = affinity_propagation(merged, redundancy_removed_features_names, output_dir + '/ap' + postfix, swc_screenshot_folder, REMOVE_OUTLIERS)
    linkage, df_zscore = ward_cluster(df_features, redundancy_removed_features_names, num_clusters, output_dir + '/ward' + output_postfix)
    silhouette_clusternumber(linkage, df_zscore, output_dir + '/ward' + output_postfix)
    return redundancy_removed_features_names