├── README.md └── Run_Code.py /README.md: -------------------------------------------------------------------------------- 1 | # GenderClassifier 2 | Gender_classification_challenge 3 | 4 | ## Dependencies 5 | 6 | * Scikit-learn 7 | * numpy 8 | * scipy 9 | 10 | ## Usage 11 | 12 | ``` 13 | python Run_Code.py 14 | ``` 15 | -------------------------------------------------------------------------------- /Run_Code.py: -------------------------------------------------------------------------------- 1 | from sklearn import tree 2 | from sklearn.svm import SVC 3 | from sklearn.linear_model import Perceptron 4 | from sklearn.neighbors import KNeighborsClassifier 5 | from sklearn.metrics import accuracy_score 6 | import numpy as np 7 | 8 | # Data and labels 9 | X = [[181, 80, 44], [177, 70, 43], [160, 60, 38], [154, 54, 37], [166, 65, 40], [190, 90, 47], [175, 64, 39], 10 | [177, 70, 40], [159, 55, 37], [171, 75, 42], [181, 85, 43]] 11 | 12 | Y = ['male', 'male', 'female', 'female', 'male', 'male', 'female', 'female', 'female', 'male', 'male'] 13 | 14 | # Classifiers 15 | # using the default values for all the hyperparameters 16 | clf_tree = tree.DecisionTreeClassifier() 17 | clf_svm = SVC() 18 | clf_perceptron = Perceptron() 19 | clf_KNN = KNeighborsClassifier() 20 | 21 | # Training the models 22 | clf_tree.fit(X, Y) 23 | clf_svm.fit(X, Y) 24 | clf_perceptron.fit(X, Y) 25 | clf_KNN.fit(X, Y) 26 | 27 | # Testing using the same data 28 | pred_tree = clf_tree.predict(X) 29 | acc_tree = accuracy_score(Y, pred_tree) * 100 30 | print('Accuracy for DecisionTree: {}'.format(acc_tree)) 31 | 32 | pred_svm = clf_svm.predict(X) 33 | acc_svm = accuracy_score(Y, pred_svm) * 100 34 | print('Accuracy for SVM: {}'.format(acc_svm)) 35 | 36 | pred_per = clf_perceptron.predict(X) 37 | acc_per = accuracy_score(Y, pred_per) * 100 38 | print('Accuracy for perceptron: {}'.format(acc_per)) 39 | 40 | pred_KNN = clf_KNN.predict(X) 41 | acc_KNN = accuracy_score(Y, pred_KNN) * 100 42 | print('Accuracy for KNN: {}'.format(acc_KNN)) 43 | 44 | # The best classifier from svm, per, KNN 45 | index = np.argmax([acc_svm, acc_per, acc_KNN]) 46 | classifiers = {0: 'SVM', 1: 'Perceptron', 2: 'KNN'} 47 | print('Best gender classifier is {}'.format(classifiers[index])) 48 | --------------------------------------------------------------------------------