import itertools import networkx as nx import numpy as np # https://www.dezyre.com/article/top-10-machine-learning-algorithms/202 algos_list1 = [ "Naive Bayes", "k-Means", "SVM", "Apriori", "Linear Regression", "Logistic Regression", "ANN", "Random Forests", "Decision Tree", "kNN" ] # https://www.quora.com/What-are-the-top-10-data-mining-or-machine-learning-algorithms algos_list2 = [ "Decision Trees ", "k-Means", "SVM", "Apriori", "Expectation Maximization", "PageRank", "AdaBoost", "kNN", "Naive Bayes", ] algos_list3 = [ "Naive Bayes", "k-Means", "Kernel PCA", "Linear Regression", "kNN", "NNMF", "SVM", "Dimensionality Reduction", "SVD", "Decision Tree", "Bootstapped SVM", "Decision Tree", "Gaussian Processes", "Logistic Regression", "Logit Boost", "Model Tree", "PLS", "Random Forests", "Ridge Regression", ] algos_list4 = [ "Linear Regression", "Logistic Regression", "k-Means", "SVM", "Random Forests", "SVD", "Decision Tree", "Naive Bayes", "ANN", "Bayesian Networks", "Elastic Nets", "LDA", "Conditional Random Fields", "HDPs" ] algos_list6 = [ "SVM", "ANN", "Logistic Regression", "Naive Bayes", "KNN", "Random Forests", "Decision Tree", "Bagged Tree" ] algos_list7 = [ "Linear Regression", "Logistic Regression", "SVM", "SVD", "PCA", "Kernel PCA", "k-Means", "Decision Trees", "Random Forests", "Neural Networks", "Regularization", "Boosting", "Naive Bayes" ] algos_list8 = [ "Convolution Neural Network", "RNN", "Deep Q-Learning", "Deep Neural Network", "Random Forests", "Probabilistic Graphical Models", "Compressed Sensing", "Kernel Machines", "Counter Factual Regret Minimization", "Gaussian Processes", ] algos_list9 = [ "k-Means", "KNN", "Dimensionality Reduction", "PCA", "Collaborative filtering", "Association Rules", "Logistic Regression", "LDA", "Shortest Path", "PageRank" ] algos_list10 = [ "Linear Regression", "Logistic Regression", "k-Means", "SVM", "Random Forests", "SVD", "Boosted Trees", "Naive Bayes", "ANN", "AdaBoost" ] algos_list11 = [ "Apriori", "FPGrowth", "GSP", "PrefixSpan", "k-Means", "Regression Tree", "Decision Tree", "SVM", "PageRank", "Naive Bayes" ] algos_list12 = [ "Decision Tree", "Apriori", "ANN", "SVM", "SOM", "Genetic Algorithms", "Naive Bayes", "Ant Colony Optimization", "Linear Regression" ] # https://bickson.blogspot.in/2011/06/what-are-most-widely-deployed-machine.html?spref=tw algos_list5 = [ "SVD", "k-Means", "Naive Bayes", "Dirichlet clustering", "Matrix Factorization", "Frequent Pattern Mining", "LDA", "Expectation Maximization", "SVM", "Decision Tree", "Logistic Regression", "Random Forests" ] all_algos = [ algos_list1, algos_list2, algos_list3, algos_list4, algos_list5, algos_list6, algos_list7, algos_list8, algos_list9, algos_list10, algos_list11, algos_list12 ] items_list = list(set(itertools.chain(*all_algos))) id2items_dict = {i+1: x for i,x in enumerate(items_list)} items2id_dict = {x: i+1 for i,x in enumerate(items_list)} N = len(items_list) rank_counts = np.zeros(shape=(N, N)) for items in all_algos: for i, item in enumerate(items): rank = i+1 rank_counts[rank-1, items2id_dict[item]-1] += 1 G = nx.Graph() for item in items_list: for i in range(N): rank = i+1 weight = rank_counts[rank-1, items2id_dict[item]-1] if weight > 0.0: # print((item, rank, {'weight': weight})) G.add_edge(item, rank, attr_dict={'weight': weight}) matchings = nx.max_weight_matching(G, maxcardinality=True) for i in range(1,20): print("Rank %2d: %s" % (i, matchings[i]))