mirror of
https://github.com/20kaushik02/CSE515_MWDB_Project.git
synced 2025-12-06 07:54:07 +00:00
task 3
This commit is contained in:
parent
f5392d61e9
commit
b68007f647
7675
Phase 3/task_3.ipynb
7675
Phase 3/task_3.ipynb
File diff suppressed because it is too large
Load Diff
243
Phase 3/task_3_sklearn_decision_tree.ipynb
Normal file
243
Phase 3/task_3_sklearn_decision_tree.ipynb
Normal file
@ -0,0 +1,243 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from utils import *\n",
|
||||
"warnings.filterwarnings('ignore')\n",
|
||||
"%matplotlib inline\n",
|
||||
"from statistics import mode\n",
|
||||
"import pickle\n",
|
||||
"from sklearn.metrics import precision_recall_fscore_support\n",
|
||||
"from sklearn.decomposition import PCA\n",
|
||||
"from sklearn.tree import DecisionTreeClassifier"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"fd_collection = getCollection(\"team_5_mwdb_phase_2\", \"fd_collection\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"selected_feature_model = \"fc_fd\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"all_images = list(fd_collection.find())\n",
|
||||
"all_images = sorted(all_images, key = lambda x: x[\"image_id\"])\n",
|
||||
"\n",
|
||||
"odd_image_ids = [img[\"image_id\"] for img in all_images if img[\"image_id\"] % 2 == 0]\n",
|
||||
"\n",
|
||||
"even_image_labels = [img[\"true_label\"] for img in all_images if img[\"image_id\"] % 2 == 0]\n",
|
||||
"odd_image_labels = [img[\"true_label\"] for img in all_images if img[\"image_id\"] % 2 != 0]\n",
|
||||
"\n",
|
||||
"feature_vectors = [np.array(img[selected_feature_model]).flatten() for img in all_images]\n",
|
||||
"\n",
|
||||
"total_len = len(feature_vectors)\n",
|
||||
"even_feature_vectors = []\n",
|
||||
"odd_feature_vectors = []\n",
|
||||
"\n",
|
||||
"for i in range(total_len):\n",
|
||||
" if i % 2 == 0:\n",
|
||||
" even_feature_vectors.append(feature_vectors[i])\n",
|
||||
" else:\n",
|
||||
" odd_feature_vectors.append(feature_vectors[i])\n",
|
||||
"\n",
|
||||
"even_feature_vectors = np.array(even_feature_vectors)\n",
|
||||
"odd_feature_vectors = np.array(odd_feature_vectors)\n",
|
||||
"\n",
|
||||
"odd_len = odd_feature_vectors.shape[0]\n",
|
||||
"even_len = even_feature_vectors.shape[0]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"max_depth = 10\n",
|
||||
"reduced_dimensionality = 150\n",
|
||||
"\n",
|
||||
"# pca = PCA(n_components = reduced_dimensionality)\n",
|
||||
"# even_feature_vectors = pca.fit_transform(even_feature_vectors)\n",
|
||||
"# odd_feature_vectors = pca.fit_transform(odd_feature_vectors)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"clf = DecisionTreeClassifier()\n",
|
||||
"clf.fit(even_feature_vectors, even_image_labels)\n",
|
||||
"predictions = clf.predict(odd_feature_vectors)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Class 0: Precision=0.7946428571428571, Recall=0.8202764976958525, F1-score=0.8072562358276645\n",
|
||||
"Class 1: Precision=0.8195121951219512, Recall=0.7706422018348624, F1-score=0.7943262411347518\n",
|
||||
"Class 2: Precision=0.9361702127659575, Recall=0.88, F1-score=0.9072164948453608\n",
|
||||
"Class 3: Precision=0.9897172236503856, Recall=0.9649122807017544, F1-score=0.9771573604060915\n",
|
||||
"Class 4: Precision=1.0, Recall=0.9259259259259259, F1-score=0.9615384615384615\n",
|
||||
"Class 5: Precision=0.9503722084367245, Recall=0.9575, F1-score=0.9539227895392279\n",
|
||||
"Class 6: Precision=0.09523809523809523, Recall=0.09523809523809523, F1-score=0.09523809523809523\n",
|
||||
"Class 7: Precision=0.875, Recall=0.6666666666666666, F1-score=0.7567567567567567\n",
|
||||
"Class 8: Precision=0.9473684210526315, Recall=0.75, F1-score=0.8372093023255814\n",
|
||||
"Class 9: Precision=0.5652173913043478, Recall=0.48148148148148145, F1-score=0.52\n",
|
||||
"Class 10: Precision=0.7307692307692307, Recall=0.8260869565217391, F1-score=0.7755102040816326\n",
|
||||
"Class 11: Precision=1.0, Recall=0.875, F1-score=0.9333333333333333\n",
|
||||
"Class 12: Precision=0.8524590163934426, Recall=0.8125, F1-score=0.8319999999999999\n",
|
||||
"Class 13: Precision=0.7272727272727273, Recall=0.8163265306122449, F1-score=0.7692307692307693\n",
|
||||
"Class 14: Precision=0.32, Recall=0.36363636363636365, F1-score=0.3404255319148936\n",
|
||||
"Class 15: Precision=0.5102040816326531, Recall=0.5952380952380952, F1-score=0.5494505494505494\n",
|
||||
"Class 16: Precision=0.5471698113207547, Recall=0.6304347826086957, F1-score=0.5858585858585859\n",
|
||||
"Class 17: Precision=0.7931034482758621, Recall=0.92, F1-score=0.851851851851852\n",
|
||||
"Class 18: Precision=0.75, Recall=0.5714285714285714, F1-score=0.6486486486486486\n",
|
||||
"Class 19: Precision=0.9824561403508771, Recall=0.9032258064516129, F1-score=0.9411764705882352\n",
|
||||
"Class 20: Precision=0.9090909090909091, Recall=0.43478260869565216, F1-score=0.5882352941176471\n",
|
||||
"Class 21: Precision=0.84, Recall=0.7, F1-score=0.7636363636363636\n",
|
||||
"Class 22: Precision=0.7083333333333334, Recall=0.5483870967741935, F1-score=0.6181818181818182\n",
|
||||
"Class 23: Precision=0.5254237288135594, Recall=0.5849056603773585, F1-score=0.5535714285714286\n",
|
||||
"Class 24: Precision=0.64, Recall=0.6666666666666666, F1-score=0.6530612244897959\n",
|
||||
"Class 25: Precision=0.6, Recall=0.7058823529411765, F1-score=0.6486486486486486\n",
|
||||
"Class 26: Precision=0.78125, Recall=0.6756756756756757, F1-score=0.7246376811594203\n",
|
||||
"Class 27: Precision=0.5227272727272727, Recall=0.6571428571428571, F1-score=0.5822784810126581\n",
|
||||
"Class 28: Precision=0.5, Recall=0.48, F1-score=0.4897959183673469\n",
|
||||
"Class 29: Precision=0.6086956521739131, Recall=0.56, F1-score=0.5833333333333334\n",
|
||||
"Class 30: Precision=0.7241379310344828, Recall=0.7241379310344828, F1-score=0.7241379310344829\n",
|
||||
"Class 31: Precision=1.0, Recall=0.9696969696969697, F1-score=0.9846153846153847\n",
|
||||
"Class 32: Precision=0.7272727272727273, Recall=0.6153846153846154, F1-score=0.6666666666666667\n",
|
||||
"Class 33: Precision=0.875, Recall=0.6363636363636364, F1-score=0.7368421052631579\n",
|
||||
"Class 34: Precision=0.5609756097560976, Recall=0.6764705882352942, F1-score=0.6133333333333334\n",
|
||||
"Class 35: Precision=0.7027027027027027, Recall=0.7027027027027027, F1-score=0.7027027027027027\n",
|
||||
"Class 36: Precision=0.9259259259259259, Recall=0.78125, F1-score=0.847457627118644\n",
|
||||
"Class 37: Precision=0.7096774193548387, Recall=0.8148148148148148, F1-score=0.7586206896551724\n",
|
||||
"Class 38: Precision=0.9285714285714286, Recall=0.8125, F1-score=0.8666666666666666\n",
|
||||
"Class 39: Precision=0.8541666666666666, Recall=0.9761904761904762, F1-score=0.9111111111111111\n",
|
||||
"Class 40: Precision=0.8888888888888888, Recall=0.9411764705882353, F1-score=0.9142857142857143\n",
|
||||
"Class 41: Precision=0.7647058823529411, Recall=0.7878787878787878, F1-score=0.7761194029850745\n",
|
||||
"Class 42: Precision=0.5, Recall=0.5217391304347826, F1-score=0.5106382978723404\n",
|
||||
"Class 43: Precision=0.8888888888888888, Recall=0.47058823529411764, F1-score=0.6153846153846153\n",
|
||||
"Class 44: Precision=0.8333333333333334, Recall=0.8823529411764706, F1-score=0.8571428571428571\n",
|
||||
"Class 45: Precision=0.2926829268292683, Recall=0.48, F1-score=0.3636363636363636\n",
|
||||
"Class 46: Precision=1.0, Recall=0.98, F1-score=0.98989898989899\n",
|
||||
"Class 47: Precision=0.96, Recall=0.96, F1-score=0.96\n",
|
||||
"Class 48: Precision=0.5416666666666666, Recall=0.6190476190476191, F1-score=0.5777777777777778\n",
|
||||
"Class 49: Precision=0.92, Recall=0.8518518518518519, F1-score=0.8846153846153846\n",
|
||||
"Class 50: Precision=0.3333333333333333, Recall=0.36363636363636365, F1-score=0.34782608695652173\n",
|
||||
"Class 51: Precision=0.8461538461538461, Recall=0.825, F1-score=0.8354430379746836\n",
|
||||
"Class 52: Precision=0.5217391304347826, Recall=0.8, F1-score=0.6315789473684211\n",
|
||||
"Class 53: Precision=0.68, Recall=0.53125, F1-score=0.5964912280701754\n",
|
||||
"Class 54: Precision=0.9545454545454546, Recall=0.9767441860465116, F1-score=0.9655172413793104\n",
|
||||
"Class 55: Precision=0.8392857142857143, Recall=0.8245614035087719, F1-score=0.8318584070796461\n",
|
||||
"Class 56: Precision=0.6774193548387096, Recall=0.6774193548387096, F1-score=0.6774193548387096\n",
|
||||
"Class 57: Precision=0.8604651162790697, Recall=0.925, F1-score=0.891566265060241\n",
|
||||
"Class 58: Precision=0.8787878787878788, Recall=0.7435897435897436, F1-score=0.8055555555555556\n",
|
||||
"Class 59: Precision=0.5333333333333333, Recall=0.38095238095238093, F1-score=0.4444444444444444\n",
|
||||
"Class 60: Precision=0.6206896551724138, Recall=0.5454545454545454, F1-score=0.5806451612903226\n",
|
||||
"Class 61: Precision=0.36, Recall=0.42857142857142855, F1-score=0.391304347826087\n",
|
||||
"Class 62: Precision=0.5263157894736842, Recall=0.5, F1-score=0.5128205128205129\n",
|
||||
"Class 63: Precision=0.5625, Recall=0.6136363636363636, F1-score=0.5869565217391304\n",
|
||||
"Class 64: Precision=0.45454545454545453, Recall=0.3125, F1-score=0.3703703703703703\n",
|
||||
"Class 65: Precision=0.3090909090909091, Recall=0.4473684210526316, F1-score=0.3655913978494624\n",
|
||||
"Class 66: Precision=1.0, Recall=0.8888888888888888, F1-score=0.9411764705882353\n",
|
||||
"Class 67: Precision=0.2777777777777778, Recall=0.2777777777777778, F1-score=0.2777777777777778\n",
|
||||
"Class 68: Precision=0.6923076923076923, Recall=0.9473684210526315, F1-score=0.7999999999999999\n",
|
||||
"Class 69: Precision=0.6875, Recall=0.4583333333333333, F1-score=0.5499999999999999\n",
|
||||
"Class 70: Precision=0.9333333333333333, Recall=0.7368421052631579, F1-score=0.8235294117647058\n",
|
||||
"Class 71: Precision=0.85, Recall=0.7727272727272727, F1-score=0.8095238095238095\n",
|
||||
"Class 72: Precision=0.8076923076923077, Recall=0.7777777777777778, F1-score=0.7924528301886792\n",
|
||||
"Class 73: Precision=1.0, Recall=0.7647058823529411, F1-score=0.8666666666666666\n",
|
||||
"Class 74: Precision=0.3617021276595745, Recall=0.6071428571428571, F1-score=0.4533333333333333\n",
|
||||
"Class 75: Precision=1.0, Recall=1.0, F1-score=1.0\n",
|
||||
"Class 76: Precision=0.7, Recall=0.7, F1-score=0.7\n",
|
||||
"Class 77: Precision=0.7241379310344828, Recall=0.875, F1-score=0.7924528301886793\n",
|
||||
"Class 78: Precision=0.9090909090909091, Recall=1.0, F1-score=0.9523809523809523\n",
|
||||
"Class 79: Precision=0.7096774193548387, Recall=0.6875, F1-score=0.6984126984126984\n",
|
||||
"Class 80: Precision=0.2777777777777778, Recall=0.2631578947368421, F1-score=0.27027027027027023\n",
|
||||
"Class 81: Precision=0.803921568627451, Recall=0.9761904761904762, F1-score=0.8817204301075269\n",
|
||||
"Class 82: Precision=0.5294117647058824, Recall=0.3103448275862069, F1-score=0.391304347826087\n",
|
||||
"Class 83: Precision=0.4, Recall=0.35294117647058826, F1-score=0.37500000000000006\n",
|
||||
"Class 84: Precision=0.8181818181818182, Recall=0.84375, F1-score=0.8307692307692308\n",
|
||||
"Class 85: Precision=0.39285714285714285, Recall=0.4782608695652174, F1-score=0.4313725490196078\n",
|
||||
"Class 86: Precision=1.0, Recall=0.9534883720930233, F1-score=0.9761904761904763\n",
|
||||
"Class 87: Precision=0.7, Recall=0.7241379310344828, F1-score=0.711864406779661\n",
|
||||
"Class 88: Precision=0.8333333333333334, Recall=0.9375, F1-score=0.8823529411764706\n",
|
||||
"Class 89: Precision=0.8, Recall=0.8888888888888888, F1-score=0.8421052631578948\n",
|
||||
"Class 90: Precision=0.868421052631579, Recall=0.7857142857142857, F1-score=0.825\n",
|
||||
"Class 91: Precision=0.9615384615384616, Recall=1.0, F1-score=0.9803921568627451\n",
|
||||
"Class 92: Precision=0.8333333333333334, Recall=0.9302325581395349, F1-score=0.8791208791208791\n",
|
||||
"Class 93: Precision=0.9090909090909091, Recall=0.8108108108108109, F1-score=0.8571428571428571\n",
|
||||
"Class 94: Precision=0.925, Recall=0.925, F1-score=0.925\n",
|
||||
"Class 95: Precision=0.2857142857142857, Recall=0.2222222222222222, F1-score=0.25\n",
|
||||
"Class 96: Precision=0.53125, Recall=0.5666666666666667, F1-score=0.5483870967741935\n",
|
||||
"Class 97: Precision=0.5555555555555556, Recall=0.5882352941176471, F1-score=0.5714285714285715\n",
|
||||
"Class 98: Precision=0.78125, Recall=0.8928571428571429, F1-score=0.8333333333333334\n",
|
||||
"Class 99: Precision=0.3125, Recall=0.2631578947368421, F1-score=0.2857142857142857\n",
|
||||
"Class 100: Precision=0.6666666666666666, Recall=0.6666666666666666, F1-score=0.6666666666666666\n",
|
||||
"Accuracy: 77.82%\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"precision, recall, f1_score, _ = precision_recall_fscore_support(odd_image_labels, predictions, labels=range(101))\n",
|
||||
"\n",
|
||||
"for i in range(101):\n",
|
||||
" print(f\"Class {i}: Precision={precision[i]}, Recall={recall[i]}, F1-score={f1_score[i]}\")\n",
|
||||
"\n",
|
||||
"correct_predictions = sum(1 for actual, predicted in zip(odd_image_labels, predictions) if actual == predicted)\n",
|
||||
"accuracy = (correct_predictions / len(odd_image_labels)) * 100.0\n",
|
||||
"print(f\"Accuracy: {accuracy:.2f}%\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.4"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user