Newer
Older
"source": [
"### Plurality Learner\n",
"\n",
"The Plurality Learner always returns the class with the most training samples. In this case, `1`."
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n"
]
}
],
"source": [
"pL = PluralityLearner(MNIST_DataSet)\n",
"print(pL(177))"
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Actual class of test image: 8\n"
]
},
{
"data": {
"text/plain": [
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"print(\"Actual class of test image:\", test_lbl[177])\n",
"plt.imshow(test_img[177].reshape((28,28)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is obvious that this Learner is not very efficient. In fact, it will guess correctly in only 1135/10000 of the samples, roughly 10%. It is very fast though, so it might have its use as a quick first guess."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Naive-Bayes\n",
"The Naive-Bayes classifier is an improvement over the Plurality Learner. It is much more accurate, but a lot slower."
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"7\n"
]
}
],
"source": [
"# takes ~45 Secs. to execute this\n",
"nBD = NaiveBayesLearner(MNIST_DataSet, continuous=False)\n",
"print(nBD(test_img[0]))"
]
},
{
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Actual class of test image: 7\n"
},
{
"data": {
"text/plain": [
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nRK5CYII=\n",
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"print(\"Actual class of test image:\", test_lbl[0])\n",
"plt.imshow(test_img[0].reshape((28,28)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### k-Nearest Neighbors\n",
"We will now try to classify a random image from the dataset using the kNN classifier."
]
},
{
"cell_type": "code",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5\n"
]
}
],
"source": [
"# takes ~20 Secs. to execute this\n",
"kNN = NearestNeighborLearner(MNIST_DataSet, k=3)\n",
]
},
{
"cell_type": "markdown",
"source": [
"To make sure that the output we got is correct, let's plot that image along with its label."
]
},
{
"cell_type": "code",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Actual class of test image: 5\n"
]
},
{
"data": {
"text/plain": [
]
},
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADdVJREFUeJzt3X+oVHUax/HPk7kFKWVUauqurcnSIlnLLQq3UCqtJdAt\nNixY3BDv/mFgEGFoP/wjQZZ+QyzdTUkhMyF/QZu7Kku1sElXkczMNsLUumhmpVcKU5/94x6Xm93z\nnWnmzJy5Pu8XyJ05zzlzHgY/95y533Pma+4uAPGcVXYDAMpB+IGgCD8QFOEHgiL8QFCEHwiK8ANB\nEX4gKMIPBHV2M3dmZlxOCDSYu1s169V15DezW81sl5l9bGYP1fNaAJrLar2238wGSPpI0i2S9kl6\nV9Ld7v5BYhuO/ECDNePIf62kj939E3c/JmmFpKl1vB6AJqon/CMk7e31fF+27AfMrN3MOs2ss459\nAShYPX/w6+vU4ken9e7eIalD4rQfaCX1HPn3SRrV6/lISZ/X1w6AZqkn/O9KGmtml5nZzyRNl7Su\nmLYANFrNp/3uftzM7pP0D0kDJC1x9x2FdQagoWoe6qtpZ3zmBxquKRf5AOi/CD8QFOEHgiL8QFCE\nHwiK8ANBEX4gKMIPBEX4gaAIPxAU4QeCIvxAUIQfCIrwA0ERfiAowg8ERfiBoAg/EBThB4Ii/EBQ\nhB8IivADQRF+ICjCDwRF+IGgCD8QFOEHgiL8QFCEHwiq5im6JcnMdks6IumEpOPu3lZEUwAar67w\nZya5+8ECXgdAE3HaDwRVb/hd0j/NbIuZtRfREIDmqPe0f4K7f25ml0jaYGYfuvtbvVfIfinwiwFo\nMebuxbyQ2QJJ3e7+RGKdYnYGIJe7WzXr1Xzab2bnmdngU48lTZb0fq2vB6C56jntHypptZmdep3l\n7r6+kK4ANFxhp/1V7YzT/nDOP//83Np1112X3Pb111+va9/d3d25tVRfkrRr165kfcKECcn6l19+\nmaw3UsNP+wH0b4QfCIrwA0ERfiAowg8ERfiBoIq4qw9nsLa29F3a7e3pK7fvvPPO3Fp2jUiunTt3\nJusLFy5M1kePHl3ztnv27EnWv//++2S9P+DIDwRF+IGgCD8QFOEHgiL8QFCEHwiK8ANBcUvvGW7g\nwIHJ+vz585P1WbNmJeuHDh1K1p977rnc2ubNm5Pb7tixI1mfNGlSsr548eLc2tdff53cduLEicn6\nV199layXiVt6ASQRfiAowg8ERfiBoAg/EBThB4Ii/EBQjPOfAaZMmZJbe/jhh5Pbjh8/PllfsWJF\nsv7ggw8m64MGDcqt3Xvvvcltb7755mT9hhtuSNY3btyYW5s7d25y223btiXrrYxxfgBJhB8IivAD\nQRF+ICjCDwRF+IGgCD8QVMVxfjNbIul2SQfcfVy27EJJr0oaLWm3pLvcveINzozz12bBggXJeuqe\n/Erj1YsWLUrWDx48mKzfeOONyfrMmTNza6NGjUpuu3379mT9mWeeSdbXrFmTW6t0P39/VuQ4/0uS\nbj1t2UOSNrn7WEmbsucA+pGK4Xf3tySd/nUtUyUtzR4vlTSt4L4ANFitn/mHunuXJGU/LymuJQDN\n0PC5+sysXVJ6QjcATVfrkX+/mQ2XpOzngbwV3b3D3dvcPT3jI4CmqjX86yTNyB7PkLS2mHYANEvF\n8JvZK5L+I+lXZrbPzGZKWiTpFjP7r6RbsucA+hHu528Blcbx582bl6x3dnbm1lL3+kvSkSNHkvVK\nvT3yyCPJ+vLly3NrqfvtJWn16tXJ+uHDh5P1qLifH0AS4QeCIvxAUIQfCIrwA0ERfiAohvqaYMyY\nMcn622+/nayvXZu+hmrOnDm5tWPHjiW3rWTAgAHJ+rnnnpusf/vtt7m1kydP1tQT0hjqA5BE+IGg\nCD8QFOEHgiL8QFCEHwiK8ANBNfxrvCCNHTs2WR86dGiyfvz48WS93rH8lBMnTiTrR48ebdi+0Vgc\n+YGgCD8QFOEHgiL8QFCEHwiK8ANBEX4gKMb5m6DSVNN79+5N1i+44IJk/ayz8n+Hc8888nDkB4Ii\n/EBQhB8IivADQRF+ICjCDwRF+IGgKo7zm9kSSbdLOuDu47JlCyTNkvRFtto8d/97o5rs7z777LNk\nvdJ1APfcc0+yPnjw4NzatGnTktsirmqO/C9JurWP5U+7+1XZP4IP9DMVw+/ub0k61IReADRRPZ/5\n7zOz98xsiZkNKawjAE1Ra/j/KmmMpKskdUl6Mm9FM2s3s04z66xxXwAaoKbwu/t+dz/h7icl/U3S\ntYl1O9y9zd3bam0SQPFqCr+ZDe/19PeS3i+mHQDNUs1Q3yuSJkq6yMz2SXpM0kQzu0qSS9ot6c8N\n7BFAA5i7N29nZs3bWT9y8cUXJ+urVq1K1q+//vrc2sKFC5Pbvvjii8l6pe8aQOtxd6tmPa7wA4Ii\n/EBQhB8IivADQRF+ICjCDwTFUF8/MGRI+taJN954I7d2zTXXJLetNNT3+OOPJ+sMBbYehvoAJBF+\nICjCDwRF+IGgCD8QFOEHgiL8QFCM858BBg0alFubPn16ctsXXnghWf/mm2+S9cmTJyfrnZ18e1uz\nMc4PIInwA0ERfiAowg8ERfiBoAg/EBThB4JinP8MZ5Ye8h02bFiyvn79+mT9iiuuSNavvPLK3NqH\nH36Y3Ba1YZwfQBLhB4Ii/EBQhB8IivADQRF+ICjCDwR1dqUVzGyUpGWShkk6KanD3Z81swslvSpp\ntKTdku5y968a1ypqUek6jq6urmR99uzZyfqbb76ZrKfu92ecv1zVHPmPS3rA3a+QdJ2k2Wb2a0kP\nSdrk7mMlbcqeA+gnKobf3bvcfWv2+IiknZJGSJoqaWm22lJJ0xrVJIDi/aTP/GY2WtLVkjZLGuru\nXVLPLwhJlxTdHIDGqfiZ/xQzGyTpNUn3u/vhSteM99quXVJ7be0BaJSqjvxmNlA9wX/Z3Vdli/eb\n2fCsPlzSgb62dfcOd29z97YiGgZQjIrht55D/GJJO939qV6ldZJmZI9nSFpbfHsAGqWa0/4Jkv4o\nabuZbcuWzZO0SNJKM5spaY+kPzSmRTTSyJEjk/VHH320rtdnCu/WVTH87v5vSXkf8G8qth0AzcIV\nfkBQhB8IivADQRF+ICjCDwRF+IGgqr68N7pLL700tzZ37tzktnPmzCm6naqdc845yfr8+fOT9Ztu\nSo/mrly5MlnfsGFDso7ycOQHgiL8QFCEHwiK8ANBEX4gKMIPBEX4gaCYortKl19+eW5t69atyW0n\nTZqUrG/ZsqWmnk4ZN25cbm3ZsmXJbcePH5+sVxrHnzVrVrLe3d2drKN4TNENIInwA0ERfiAowg8E\nRfiBoAg/EBThB4Lifv4qffrpp7m1559/PrntmjVrkvXvvvsuWX/nnXeS9dtuuy23Vul+/jvuuCNZ\n37hxY7J+9OjRZB2tiyM/EBThB4Ii/EBQhB8IivADQRF+ICjCDwRV8X5+MxslaZmkYZJOSupw92fN\nbIGkWZK+yFad5+5/r/Ba/fZ+/pSzz05fLlHpnvcpU6Yk6yNGjEjWU2PxmzZtqnlb9E/V3s9fzUU+\nxyU94O5bzWywpC1mdmomhqfd/YlamwRQnorhd/cuSV3Z4yNmtlNS+lAEoOX9pM/8ZjZa0tWSNmeL\n7jOz98xsiZkNydmm3cw6zayzrk4BFKrq8JvZIEmvSbrf3Q9L+qukMZKuUs+ZwZN9befuHe7e5u5t\nBfQLoCBVhd/MBqon+C+7+ypJcvf97n7C3U9K+pukaxvXJoCiVQy/mZmkxZJ2uvtTvZYP77Xa7yW9\nX3x7ABqlmqG+30p6W9J29Qz1SdI8SXer55TfJe2W9Ofsj4Op1zojh/qAVlLtUB/f2w+cYfjefgBJ\nhB8IivADQRF+ICjCDwRF+IGgCD8QFOEHgiL8QFCEHwiK8ANBEX4gKMIPBEX4gaCaPUX3QUm957q+\nKFvWilq1t1btS6K3WhXZ2y+qXbGp9/P/aOdmna363X6t2lur9iXRW63K6o3TfiAowg8EVXb4O0re\nf0qr9taqfUn0VqtSeiv1Mz+A8pR95AdQklLCb2a3mtkuM/vYzB4qo4c8ZrbbzLab2baypxjLpkE7\nYGbv91p2oZltMLP/Zj/7nCatpN4WmNln2Xu3zcx+V1Jvo8zsX2a208x2mNmcbHmp712ir1Let6af\n9pvZAEkfSbpF0j5J70q6290/aGojOcxst6Q2dy99TNjMbpTULWmZu4/Llv1F0iF3X5T94hzi7nNb\npLcFkrrLnrk5m1BmeO+ZpSVNk/QnlfjeJfq6SyW8b2Uc+a+V9LG7f+LuxyStkDS1hD5anru/JenQ\naYunSlqaPV6qnv88TZfTW0tw9y5335o9PiLp1MzSpb53ib5KUUb4R0ja2+v5PrXWlN8u6Z9mtsXM\n2stupg9DT82MlP28pOR+Tldx5uZmOm1m6ZZ572qZ8bpoZYS/r9lEWmnIYYK7/0bSbZJmZ6e3qE5V\nMzc3Sx8zS7eEWme8LloZ4d8naVSv5yMlfV5CH31y98+znwckrVbrzT68/9QkqdnPAyX383+tNHNz\nXzNLqwXeu1aa8bqM8L8raayZXWZmP5M0XdK6Evr4ETM7L/tDjMzsPEmT1XqzD6+TNCN7PEPS2hJ7\n+YFWmbk5b2ZplfzetdqM16Vc5JMNZTwjaYCkJe6+sOlN9MHMfqmeo73Uc8fj8jJ7M7NXJE1Uz11f\n+yU9JmmNpJWSfi5pj6Q/uHvT//CW09tE/cSZmxvUW97M0ptV4ntX5IzXhfTDFX5ATFzhBwRF+IGg\nCD8QFOEHgiL8QFCEHwiK8ANBEX4gqP8B1flLsMvfVy4AAAAASUVORK5CYII=\n",
"text/plain": [
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"print(\"Actual class of test image:\", test_lbl[211])\n",
"plt.imshow(test_img[211].reshape((28,28)))"
{
"cell_type": "markdown",
"source": [
"Hurray! We've got it correct. Don't worry if our algorithm predicted a wrong class. With this techinique we have only ~97% accuracy on this dataset."
}
],
"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",
}
},
"nbformat": 4,