diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1d74e21 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/ diff --git a/Classification/4) MNIST/MNIST Dataset Solution.ipynb b/Classification/4) MNIST/MNIST Dataset Solution.ipynb deleted file mode 100644 index 2cff8bb..0000000 --- a/Classification/4) MNIST/MNIST Dataset Solution.ipynb +++ /dev/null @@ -1,472 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Loading and viewing the Dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.datasets import load_digits\n", - "digits=load_digits()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(1797, 64)" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "digits.data.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1797,)\n" - ] - } - ], - "source": [ - "print(digits.target.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.gray()\n", - "plt.matshow(digits.images[0])\n", - "#print(digits.target[0])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Split data into Training and Testing Dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import train_test_split\n", - "x_train, x_test, y_train, y_test = train_test_split(digits.data,digits.target,shuffle=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Accuracy Function\n" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "def accuracy(y_pred,y_test):\n", - " from sklearn.metrics import accuracy_score,confusion_matrix, f1_score\n", - " import seaborn as sns\n", - " import matplotlib.pyplot as plt\n", - " import numpy as np\n", - " import pandas as pd\n", - " print(\"accuracy score:\",accuracy_score(y_test, y_pred))\n", - " print(\"confusion matrix:\\n\",confusion_matrix(y_test, y_pred))\n", - " print(\"f1 score:\",f1_score(y_test, y_pred, average='macro'))\n", - " # using heatmat to plot accuracy\n", - " a=np.array(y_pred).reshape(-1,1)\n", - " b=np.array(y_test).reshape(-1,1)\n", - " df=pd.DataFrame(np.append(a,b,axis=1))\n", - " df.columns=[\"predicted_vals\",\"true_vals\"]\n", - " cor = df.corr()\n", - " sns.heatmap(cor)\n", - " #to use scatter plot uncomment the below given code\n", - " #plt.scatter(y_test,y_pred)\n", - " plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 1) Using RandomForestClassifier from sklearn.ensemble to generate, fit the model and predict the output.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\Juhi Kamdar\\Anaconda3\\lib\\site-packages\\sklearn\\ensemble\\forest.py:246: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n", - " \"10 in version 0.20 to 100 in 0.22.\", FutureWarning)\n" - ] - } - ], - "source": [ - "from sklearn.ensemble import RandomForestClassifier\n", - "model = RandomForestClassifier(max_depth=2, random_state=0)\n", - "model.fit(x_train, y_train)\n", - "y_pred_randf=model.predict(x_test)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 2) Using Naive Bayes Classifier from sklearn.ensemble to generate, fit the model and predict the output\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.naive_bayes import GaussianNB\n", - "gnb = GaussianNB()\n", - "y_pred_naiveBayes = gnb.fit(x_train, y_train).predict(x_test)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 3) Using Support vector Machine from sklearn.ensemble to generate, fit the model and predict the output\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\Juhi Kamdar\\Anaconda3\\lib\\site-packages\\sklearn\\svm\\base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", - " \"avoid this warning.\", FutureWarning)\n" - ] - } - ], - "source": [ - "from sklearn import svm\n", - "clf = svm.SVC()\n", - "clf.fit(x_train, y_train)\n", - "y_pred_SVM=clf.predict(x_test)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 4) Using Stochastic Gradient Descent from sklearn.ensemble to generate, fit the model and predict the output\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\Juhi Kamdar\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:183: FutureWarning: max_iter and tol parameters have been added in SGDClassifier in 0.19. If max_iter is set but tol is left unset, the default value for tol in 0.19 and 0.20 will be None (which is equivalent to -infinity, so it has no effect) but will change in 0.21 to 1e-3. Specify tol to silence this warning.\n", - " FutureWarning)\n" - ] - } - ], - "source": [ - "from sklearn.linear_model import SGDClassifier\n", - "clf = SGDClassifier(loss=\"hinge\", penalty=\"l2\", max_iter=5)\n", - "clf.fit(x_train, y_train)\n", - "SGDClassifier(max_iter=5)\n", - "y_pred_SGD=clf.predict(x_test)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 5) Using KNN from sklearn.ensemble to generate, fit the model and predict the output\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.neighbors import KNeighborsClassifier\n", - "neigh = KNeighborsClassifier(n_neighbors=2)\n", - "neigh.fit(x_train,y_train)\n", - "y_pred_KNN=neigh.predict(x_test)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Checking the results of all the methods" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Random Forest Accuracy\n", - "accuracy score: 0.6844444444444444\n", - "confusion matrix:\n", - " [[38 0 0 0 0 0 0 0 0 0]\n", - " [ 0 12 2 1 12 2 7 8 3 2]\n", - " [ 1 2 31 5 0 0 6 1 1 0]\n", - " [ 1 0 1 41 0 1 1 2 0 1]\n", - " [ 2 0 0 0 38 1 0 0 0 0]\n", - " [ 4 0 0 5 2 39 1 2 1 1]\n", - " [ 2 0 0 0 2 0 37 0 0 0]\n", - " [ 0 1 0 0 3 1 0 37 0 0]\n", - " [ 2 1 11 5 3 0 2 9 13 0]\n", - " [ 0 4 0 8 1 1 1 5 1 22]]\n", - "f1 score: 0.6642764950401785\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Naive Bayes Accuracy\n", - "accuracy score: 0.8577777777777778\n", - "confusion matrix:\n", - " [[38 0 0 0 0 0 0 0 0 0]\n", - " [ 0 42 0 0 0 0 3 1 2 1]\n", - " [ 0 1 31 2 0 0 0 0 13 0]\n", - " [ 0 1 0 36 0 2 0 1 6 2]\n", - " [ 0 0 0 0 39 0 0 1 1 0]\n", - " [ 0 0 0 2 0 49 0 0 3 1]\n", - " [ 0 0 0 0 0 0 41 0 0 0]\n", - " [ 0 0 0 0 1 0 0 41 0 0]\n", - " [ 0 1 0 0 0 1 0 4 40 0]\n", - " [ 0 2 0 1 1 1 0 7 2 29]]\n", - "f1 score: 0.8618676682121231\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Support Vector Machine Accuracy\n", - "accuracy score: 0.4955555555555556\n", - "confusion matrix:\n", - " [[26 0 0 0 0 0 0 0 0 12]\n", - " [ 0 14 0 0 0 0 0 0 0 35]\n", - " [ 0 0 16 0 0 0 0 0 0 31]\n", - " [ 0 0 0 29 0 0 0 0 0 19]\n", - " [ 0 0 0 0 35 0 0 0 0 6]\n", - " [ 0 0 0 0 0 6 0 0 0 49]\n", - " [ 0 0 0 0 0 0 32 0 0 9]\n", - " [ 0 0 0 0 0 0 0 18 0 24]\n", - " [ 0 0 0 0 0 0 0 0 4 42]\n", - " [ 0 0 0 0 0 0 0 0 0 43]]\n", - "f1 score: 0.5547374360835768\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Stochastic Gradient Decent Accuracy\n", - "accuracy score: 0.9222222222222223\n", - "confusion matrix:\n", - " [[38 0 0 0 0 0 0 0 0 0]\n", - " [ 0 40 0 0 0 1 4 0 2 2]\n", - " [ 0 0 47 0 0 0 0 0 0 0]\n", - " [ 0 0 1 40 0 0 1 0 6 0]\n", - " [ 0 0 0 0 40 0 0 0 1 0]\n", - " [ 0 0 0 0 0 50 0 0 2 3]\n", - " [ 0 0 0 0 1 0 40 0 0 0]\n", - " [ 0 0 0 0 0 0 0 39 3 0]\n", - " [ 0 0 1 0 0 2 0 0 43 0]\n", - " [ 0 0 0 0 0 1 0 0 4 38]]\n", - "f1 score: 0.9260829698102133\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " KNN Accuracy\n", - "accuracy score: 0.9866666666666667\n", - "confusion matrix:\n", - " [[38 0 0 0 0 0 0 0 0 0]\n", - " [ 0 49 0 0 0 0 0 0 0 0]\n", - " [ 0 0 47 0 0 0 0 0 0 0]\n", - " [ 0 0 0 48 0 0 0 0 0 0]\n", - " [ 0 0 0 0 41 0 0 0 0 0]\n", - " [ 0 0 0 0 0 54 0 0 0 1]\n", - " [ 0 0 0 0 0 0 41 0 0 0]\n", - " [ 0 0 0 0 0 0 0 42 0 0]\n", - " [ 0 3 0 0 0 0 0 0 43 0]\n", - " [ 0 0 0 0 0 1 0 0 1 41]]\n", - "f1 score: 0.9872376649429648\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "print(\"Random Forest Accuracy\")\n", - "accuracy(y_pred_randf,y_test)\n", - "print(\"\\nNaive Bayes Accuracy\")\n", - "accuracy(y_pred_naiveBayes,y_test)\n", - "print(\"\\nSupport Vector Machine Accuracy\")\n", - "accuracy(y_pred_SVM,y_test)\n", - "print(\"\\nStochastic Gradient Decent Accuracy\")\n", - "accuracy(y_pred_SGD,y_test)\n", - "print(\"\\n KNN Accuracy\")\n", - "accuracy(y_pred_KNN,y_test)" - ] - }, - { - "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.7.1" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/MNIST_models b/MNIST_models new file mode 100644 index 0000000..e25fe30 --- /dev/null +++ b/MNIST_models @@ -0,0 +1,559 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MNIST" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading and viewing the Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_digits\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.metrics import accuracy_score,confusion_matrix, f1_score\n", + "import seaborn as sns\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "sklearn.utils.Bunch" + }, + "metadata": {}, + "execution_count": 5 + } + ], + "source": [ + "digits=load_digits()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1797, 64)" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "digits.data.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "(1797, 8, 8)" + }, + "metadata": {}, + "execution_count": 40 + } + ], + "source": [ + "digits.images.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Number of samples in dataset: 1797\nNumber of parameters per sample: 64\n" + } + ], + "source": [ + "m = digits.images.shape[0]\n", + "x = digits.images.shape[1]\n", + "\n", + "print(f\"Number of samples in dataset: {m}\")\n", + "print(f\"Number of parameters per sample: {x * x}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Class Names: [0 1 2 3 4 5 6 7 8 9]\n" + } + ], + "source": [ + "y = digits.target_names\n", + "print(f\"Class Names: {y}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [], + "source": [ + "def display_data(X,Y):\n", + " # set up array\n", + " fig, ax = plt.subplots(nrows=5, ncols=5, figsize=(8,8))\n", + " fig.suptitle( \"MNIST Set\")\n", + " # r = np.random.randint(X.shape[0])\n", + " # images_and_labels = [(X[r, :].reshape(8, 8), Y[r :]) for i in range(10)]\n", + "\n", + " # for ax, (img, label) in zip(ax[0, :], images_and_labels):\n", + " # ax.set_title(f\"Label: {label}\")\n", + " # ax.imshow(img, cmap=plt.cm.gray_r)\n", + " # plt.setp(ax.get_xticklabels(), visible=False)\n", + " # plt.setp(ax.get_yticklabels(), visible=False)\n", + "\n", + " for i in range(5):\n", + " for j in range(5):\n", + " ind = np.random.randint(X.shape[0])\n", + " tmp = X[ind,:].reshape(8, 8)\n", + " ax[i,j].set_title(\"Label: {}\".format(Y[ind]))\n", + " ax[i,j].imshow(tmp, cmap=plt.cm.gray_r) # display it as gray colors.\n", + " plt.setp(ax[i,j].get_xticklabels(), visible=False)\n", + " plt.setp(ax[i,j].get_yticklabels(), visible=False)\n", + " \n", + " fig.subplots_adjust(hspace=0.5, wspace=0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "display_data(digits.images, digits.target)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Split data into Training and Testing Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "x_train, x_test, y_train, y_test = train_test_split(digits.data, digits.target, shuffle=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accuracy Function\n" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "def accuracy(y_pred, y_test):\n", + " print(\"accuracy score:\",accuracy_score(y_test, y_pred))\n", + " print(\"confusion matrix:\\n\",confusion_matrix(y_test, y_pred))\n", + " print(\"f1 score:\", f1_score(y_test, y_pred, average='macro'))\n", + " # using heatmat to plot accuracy\n", + " a=np.array(y_pred).reshape(-1,1)\n", + " b=np.array(y_test).reshape(-1,1)\n", + " df=pd.DataFrame(np.append(a,b,axis=1))\n", + " df.columns=[\"predicted_vals\",\"true_vals\"]\n", + " cor = df.corr()\n", + " sns.heatmap(cor)\n", + " #to use scatter plot uncomment the below given code\n", + " #plt.scatter(y_test,y_pred)\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1) Using RandomForestClassifier from sklearn.ensemble to generate, fit the model and predict the output.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "model = RandomForestClassifier(max_depth=2, random_state=0)\n", + "model.fit(x_train, y_train)\n", + "y_pred_randf=model.predict(x_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2) Using Naive Bayes Classifier from sklearn.ensemble to generate, fit the model and predict the output\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.naive_bayes import GaussianNB\n", + "gnb = GaussianNB()\n", + "y_pred_naiveBayes = gnb.fit(x_train, y_train).predict(x_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3) Using Support vector Machine from sklearn.ensemble to generate, fit the model and predict the output\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Juhi Kamdar\\Anaconda3\\lib\\site-packages\\sklearn\\svm\\base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", + " \"avoid this warning.\", FutureWarning)\n" + ] + } + ], + "source": [ + "from sklearn import svm\n", + "clf = svm.SVC()\n", + "clf.fit(x_train, y_train)\n", + "y_pred_SVM=clf.predict(x_test)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4) Using Stochastic Gradient Descent from sklearn.ensemble to generate, fit the model and predict the output\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Juhi Kamdar\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:183: FutureWarning: max_iter and tol parameters have been added in SGDClassifier in 0.19. If max_iter is set but tol is left unset, the default value for tol in 0.19 and 0.20 will be None (which is equivalent to -infinity, so it has no effect) but will change in 0.21 to 1e-3. Specify tol to silence this warning.\n", + " FutureWarning)\n" + ] + } + ], + "source": [ + "from sklearn.linear_model import SGDClassifier\n", + "clf = SGDClassifier(loss=\"hinge\", penalty=\"l2\", max_iter=5)\n", + "clf.fit(x_train, y_train)\n", + "SGDClassifier(max_iter=5)\n", + "y_pred_SGD=clf.predict(x_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5) Using KNN from sklearn.ensemble to generate, fit the model and predict the output\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "neigh = KNeighborsClassifier(n_neighbors=2)\n", + "neigh.fit(x_train,y_train)\n", + "y_pred_KNN=neigh.predict(x_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Checking the results of all the methods" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Random Forest Accuracy\n", + "accuracy score: 0.6844444444444444\n", + "confusion matrix:\n", + " [[38 0 0 0 0 0 0 0 0 0]\n", + " [ 0 12 2 1 12 2 7 8 3 2]\n", + " [ 1 2 31 5 0 0 6 1 1 0]\n", + " [ 1 0 1 41 0 1 1 2 0 1]\n", + " [ 2 0 0 0 38 1 0 0 0 0]\n", + " [ 4 0 0 5 2 39 1 2 1 1]\n", + " [ 2 0 0 0 2 0 37 0 0 0]\n", + " [ 0 1 0 0 3 1 0 37 0 0]\n", + " [ 2 1 11 5 3 0 2 9 13 0]\n", + " [ 0 4 0 8 1 1 1 5 1 22]]\n", + "f1 score: 0.6642764950401785\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Naive Bayes Accuracy\n", + "accuracy score: 0.8577777777777778\n", + "confusion matrix:\n", + " [[38 0 0 0 0 0 0 0 0 0]\n", + " [ 0 42 0 0 0 0 3 1 2 1]\n", + " [ 0 1 31 2 0 0 0 0 13 0]\n", + " [ 0 1 0 36 0 2 0 1 6 2]\n", + " [ 0 0 0 0 39 0 0 1 1 0]\n", + " [ 0 0 0 2 0 49 0 0 3 1]\n", + " [ 0 0 0 0 0 0 41 0 0 0]\n", + " [ 0 0 0 0 1 0 0 41 0 0]\n", + " [ 0 1 0 0 0 1 0 4 40 0]\n", + " [ 0 2 0 1 1 1 0 7 2 29]]\n", + "f1 score: 0.8618676682121231\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Support Vector Machine Accuracy\n", + "accuracy score: 0.4955555555555556\n", + "confusion matrix:\n", + " [[26 0 0 0 0 0 0 0 0 12]\n", + " [ 0 14 0 0 0 0 0 0 0 35]\n", + " [ 0 0 16 0 0 0 0 0 0 31]\n", + " [ 0 0 0 29 0 0 0 0 0 19]\n", + " [ 0 0 0 0 35 0 0 0 0 6]\n", + " [ 0 0 0 0 0 6 0 0 0 49]\n", + " [ 0 0 0 0 0 0 32 0 0 9]\n", + " [ 0 0 0 0 0 0 0 18 0 24]\n", + " [ 0 0 0 0 0 0 0 0 4 42]\n", + " [ 0 0 0 0 0 0 0 0 0 43]]\n", + "f1 score: 0.5547374360835768\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Stochastic Gradient Decent Accuracy\n", + "accuracy score: 0.9222222222222223\n", + "confusion matrix:\n", + " [[38 0 0 0 0 0 0 0 0 0]\n", + " [ 0 40 0 0 0 1 4 0 2 2]\n", + " [ 0 0 47 0 0 0 0 0 0 0]\n", + " [ 0 0 1 40 0 0 1 0 6 0]\n", + " [ 0 0 0 0 40 0 0 0 1 0]\n", + " [ 0 0 0 0 0 50 0 0 2 3]\n", + " [ 0 0 0 0 1 0 40 0 0 0]\n", + " [ 0 0 0 0 0 0 0 39 3 0]\n", + " [ 0 0 1 0 0 2 0 0 43 0]\n", + " [ 0 0 0 0 0 1 0 0 4 38]]\n", + "f1 score: 0.9260829698102133\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " KNN Accuracy\n", + "accuracy score: 0.9866666666666667\n", + "confusion matrix:\n", + " [[38 0 0 0 0 0 0 0 0 0]\n", + " [ 0 49 0 0 0 0 0 0 0 0]\n", + " [ 0 0 47 0 0 0 0 0 0 0]\n", + " [ 0 0 0 48 0 0 0 0 0 0]\n", + " [ 0 0 0 0 41 0 0 0 0 0]\n", + " [ 0 0 0 0 0 54 0 0 0 1]\n", + " [ 0 0 0 0 0 0 41 0 0 0]\n", + " [ 0 0 0 0 0 0 0 42 0 0]\n", + " [ 0 3 0 0 0 0 0 0 43 0]\n", + " [ 0 0 0 0 0 1 0 0 1 41]]\n", + "f1 score: 0.9872376649429648\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "print(\"Random Forest Accuracy\")\n", + "accuracy(y_pred_randf,y_test)\n", + "print(\"\\nNaive Bayes Accuracy\")\n", + "accuracy(y_pred_naiveBayes,y_test)\n", + "print(\"\\nSupport Vector Machine Accuracy\")\n", + "accuracy(y_pred_SVM,y_test)\n", + "print(\"\\nStochastic Gradient Decent Accuracy\")\n", + "accuracy(y_pred_SGD,y_test)\n", + "print(\"\\n KNN Accuracy\")\n", + "accuracy(y_pred_KNN,y_test)" + ] + }, + { + "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.7.5-final" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file