Python,R

profileshreyachand
Decision_Tree_using_dummy_data1.ipynb

{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import pandas" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Volume in drive C is Windows\n", " Volume Serial Number is F2FF-6BF8\n", "\n", " Directory of C:\\Users\\Vivek Singh\\Downloads\\DSS for BI Videos\\Module 5\\jupyter_files\\new_files\\Synthetic data\n", "\n", "09/20/2020 07:40 PM <DIR> .\n", "09/20/2020 07:40 PM <DIR> ..\n", "09/20/2020 07:17 PM <DIR> .ipynb_checkpoints\n", "09/20/2020 07:38 PM 36,180 Dummy data.tscproj\n", "09/20/2020 06:52 PM 9,330 dummy_data.xlsx\n", "09/20/2020 07:25 PM 117,344 Module 5 Synthetic Data.pptx\n", "09/20/2020 07:27 PM 407,664 Narration_Dummy data 1.m4a\n", "09/20/2020 07:28 PM 878,483 Narration_Dummy data 2.m4a\n", "09/20/2020 07:31 PM 3,276,130 Narration_Dummy data 3.m4a\n", "09/20/2020 07:33 PM 771,874 Narration_Dummy data 4.m4a\n", "09/20/2020 07:37 PM 537,989 Narration_Dummy data 5.m4a\n", "09/20/2020 07:40 PM 37,132 Supervised_learning_decision_on_dummy_data.ipynb\n", " 9 File(s) 6,072,126 bytes\n", " 3 Dir(s) 767,832,555,520 bytes free\n" ] } ], "source": [ "%ls" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "data=pandas.read_excel('dummy_data.xlsx')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>X0</th>\n", " <th>X1</th>\n", " <th>Y</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>7</td>\n", " <td>12</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>8</td>\n", " <td>4</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>4</td>\n", " <td>6</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>1</td>\n", " <td>14</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>9</td>\n", " <td>7</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>10</td>\n", " <td>9</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>5</td>\n", " <td>14</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", " <td>6</td>\n", " <td>8</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>5</td>\n", " <td>15</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>6</td>\n", " <td>12</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>10</th>\n", " <td>4</td>\n", " <td>12</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>11</th>\n", " <td>3</td>\n", " <td>5</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>12</th>\n", " <td>10</td>\n", " <td>6</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>13</th>\n", " <td>4</td>\n", " <td>16</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>14</th>\n", " <td>1</td>\n", " <td>2</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>15</th>\n", " <td>6</td>\n", " <td>8</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>16</th>\n", " <td>2</td>\n", " <td>16</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>17</th>\n", " <td>3</td>\n", " <td>4</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>18</th>\n", " <td>10</td>\n", " <td>6</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>19</th>\n", " <td>7</td>\n", " <td>2</td>\n", " <td>0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " X0 X1 Y\n", "0 7 12 1\n", "1 8 4 1\n", "2 4 6 1\n", "3 1 14 1\n", "4 9 7 1\n", "5 10 9 1\n", "6 5 14 1\n", "7 6 8 1\n", "8 5 15 1\n", "9 6 12 1\n", "10 4 12 1\n", "11 3 5 1\n", "12 10 6 1\n", "13 4 16 1\n", "14 1 2 0\n", "15 6 8 1\n", "16 2 16 1\n", "17 3 4 1\n", "18 10 6 1\n", "19 7 2 0" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from sklearn import tree" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "import matplotlib as plt" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "clf = tree.DecisionTreeClassifier()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "clf = clf.fit(data[['X0','X1']], data[['Y']])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[Text(167.4, 163.07999999999998, 'X[1] <= 3.0\\ngini = 0.18\\nsamples = 20\\nvalue = [2, 18]'),\n", " Text(83.7, 54.360000000000014, 'gini = 0.0\\nsamples = 2\\nvalue = [2, 0]'),\n", " Text(251.10000000000002, 54.360000000000014, 'gini = 0.0\\nsamples = 18\\nvalue = [0, 18]')]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "tree.plot_tree(clf.fit(data[['X0','X1']], data[['Y']])) " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "import os\n", "os.environ[\"PATH\"] += os.pathsep + 'C:\\\\Users\\\\Vivek Singh\\\\Downloads\\\\DSS for BI Videos\\\\Module 5\\\\graphviz\\\\Graphviz\\\\bin'" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "import graphviz" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n", "<!-- Generated by graphviz version 2.44.1 (20200629.0800)\r\n", " -->\r\n", "<!-- Title: Tree Pages: 1 -->\r\n", "<svg width=\"228pt\" height=\"161pt\"\r\n", " viewBox=\"0.00 0.00 228.00 161.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 157)\">\r\n", "<title>Tree</title>\r\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-157 224,-157 224,4 -4,4\"/>\r\n", "<!-- 0 -->\r\n", "<g id=\"node1\" class=\"node\">\r\n", "<title>0</title>\r\n", "<path fill=\"#4fa8e8\" stroke=\"black\" d=\"M148,-153C148,-153 67,-153 67,-153 61,-153 55,-147 55,-141 55,-141 55,-101 55,-101 55,-95 61,-89 67,-89 67,-89 148,-89 148,-89 154,-89 160,-95 160,-101 160,-101 160,-141 160,-141 160,-147 154,-153 148,-153\"/>\r\n", "<text text-anchor=\"start\" x=\"81\" y=\"-138.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">X</text>\r\n", "<text text-anchor=\"start\" x=\"91\" y=\"-138.8\" font-family=\"Helvetica,sans-Serif\" baseline-shift=\"sub\" font-size=\"14.00\">1</text>\r\n", "<text text-anchor=\"start\" x=\"98\" y=\"-138.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\"> � 3.0</text>\r\n", "<text text-anchor=\"start\" x=\"74\" y=\"-124.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.18</text>\r\n", "<text text-anchor=\"start\" x=\"64\" y=\"-110.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 20</text>\r\n", "<text text-anchor=\"start\" x=\"63\" y=\"-96.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2, 18]</text>\r\n", "</g>\r\n", "<!-- 1 -->\r\n", "<g id=\"node2\" class=\"node\">\r\n", "<title>1</title>\r\n", "<path fill=\"#e58139\" stroke=\"black\" d=\"M85,-53C85,-53 12,-53 12,-53 6,-53 0,-47 0,-41 0,-41 0,-12 0,-12 0,-6 6,0 12,0 12,0 85,0 85,0 91,0 97,-6 97,-12 97,-12 97,-41 97,-41 97,-47 91,-53 85,-53\"/>\r\n", "<text text-anchor=\"start\" x=\"19.5\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n", "<text text-anchor=\"start\" x=\"9\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 2</text>\r\n", "<text text-anchor=\"start\" x=\"8\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2, 0]</text>\r\n", "</g>\r\n", "<!-- 0&#45;&gt;1 -->\r\n", "<g id=\"edge1\" class=\"edge\">\r\n", "<title>0&#45;&gt;1</title>\r\n", "<path fill=\"none\" stroke=\"black\" d=\"M87.69,-88.94C82.12,-80.2 76.02,-70.65 70.34,-61.74\"/>\r\n", "<polygon fill=\"black\" stroke=\"black\" points=\"73.15,-59.64 64.82,-53.09 67.25,-63.4 73.15,-59.64\"/>\r\n", "<text text-anchor=\"middle\" x=\"59.43\" y=\"-73.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\r\n", "</g>\r\n", "<!-- 2 -->\r\n", "<g id=\"node3\" class=\"node\">\r\n", "<title>2</title>\r\n", "<path fill=\"#399de5\" stroke=\"black\" d=\"M208,-53C208,-53 127,-53 127,-53 121,-53 115,-47 115,-41 115,-41 115,-12 115,-12 115,-6 121,0 127,0 127,0 208,0 208,0 214,0 220,-6 220,-12 220,-12 220,-41 220,-41 220,-47 214,-53 208,-53\"/>\r\n", "<text text-anchor=\"start\" x=\"138.5\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n", "<text text-anchor=\"start\" x=\"124\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 18</text>\r\n", "<text text-anchor=\"start\" x=\"123\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 18]</text>\r\n", "</g>\r\n", "<!-- 0&#45;&gt;2 -->\r\n", "<g id=\"edge2\" class=\"edge\">\r\n", "<title>0&#45;&gt;2</title>\r\n", "<path fill=\"none\" stroke=\"black\" d=\"M127.65,-88.94C133.31,-80.2 139.51,-70.65 145.29,-61.74\"/>\r\n", "<polygon fill=\"black\" stroke=\"black\" points=\"148.39,-63.39 150.9,-53.09 142.52,-59.58 148.39,-63.39\"/>\r\n", "<text text-anchor=\"middle\" x=\"156.11\" y=\"-73.84\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\r\n", "</g>\r\n", "</g>\r\n", "</svg>\r\n" ], "text/plain": [ "<graphviz.files.Source at 0x18560972dc0>" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph_viz_data = tree.export_graphviz(clf, out_file=None, \n", "... filled=True, rounded=True, \n", "... special_characters=True) \n", "graph = graphviz.Source(graph_viz_data) \n", "graph " ] }, { "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.8.3" } }, "nbformat": 4, "nbformat_minor": 2 }