Team Ai
Apppublic

sedeba19/Binary_Classification_Wine

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
binary_classification.ipynb945 linesDownload Raw Back to root
1{2 "cells": [3  {4   "cell_type": "code",5   "execution_count": 1,6   "metadata": {},7   "outputs": [],8   "source": [9    "import pandas as pd\n",10    "import numpy as np\n",11    "import matplotlib.pyplot as plt\n",12    "import seaborn as sns\n",13    "from sklearn.model_selection import train_test_split, cross_val_score\n",14    "from sklearn.preprocessing import LabelEncoder, StandardScaler\n",15    "from sklearn.linear_model import LogisticRegression\n",16    "from sklearn.naive_bayes import GaussianNB\n",17    "from sklearn.svm import SVC\n",18    "from sklearn.ensemble import RandomForestClassifier\n",19    "from sklearn.tree import DecisionTreeClassifier\n",20    "from xgboost import XGBClassifier\n",21    "from sklearn.neighbors import KNeighborsClassifier\n",22    "from sklearn.ensemble import GradientBoostingClassifier"23   ]24  },25  {26   "cell_type": "code",27   "execution_count": 2,28   "metadata": {},29   "outputs": [],30   "source": [31    "redwine_dir = r'./data/winequality-red.csv'\n",32    "whitewine_dir = r'./data/winequality-white.csv'\n",33    "df_redwine = pd.read_csv(redwine_dir, sep=';')\n",34    "df_whitewine= pd.read_csv(whitewine_dir, sep=';')"35   ]36  },37  {38   "cell_type": "code",39   "execution_count": 3,40   "metadata": {},41   "outputs": [],42   "source": [43    "# O = redwine; 1= whitewine\n",44    "df_redwine['wine_type'] = 0\n",45    "df_whitewine['wine_type']= 1"46   ]47  },48  {49   "cell_type": "code",50   "execution_count": 4,51   "metadata": {},52   "outputs": [53    {54     "data": {55      "text/plain": [56       "array([ True,  True,  True,  True,  True,  True,  True,  True,  True,\n",57       "        True,  True,  True,  True])"58      ]59     },60     "execution_count": 4,61     "metadata": {},62     "output_type": "execute_result"63    }64   ],65   "source": [66    "df_whitewine.columns == df_redwine.columns"67   ]68  },69  {70   "cell_type": "code",71   "execution_count": 5,72   "metadata": {},73   "outputs": [74    {75     "data": {76      "text/plain": [77       "13"78      ]79     },80     "execution_count": 5,81     "metadata": {},82     "output_type": "execute_result"83    }84   ],85   "source": [86    "len(df_whitewine.columns == df_redwine.columns)"87   ]88  },89  {90   "cell_type": "code",91   "execution_count": 6,92   "metadata": {},93   "outputs": [94    {95     "data": {96      "text/html": [97       "<div>\n",98       "<style scoped>\n",99       "    .dataframe tbody tr th:only-of-type {\n",100       "        vertical-align: middle;\n",101       "    }\n",102       "\n",103       "    .dataframe tbody tr th {\n",104       "        vertical-align: top;\n",105       "    }\n",106       "\n",107       "    .dataframe thead th {\n",108       "        text-align: right;\n",109       "    }\n",110       "</style>\n",111       "<table border=\"1\" class=\"dataframe\">\n",112       "  <thead>\n",113       "    <tr style=\"text-align: right;\">\n",114       "      <th></th>\n",115       "      <th>fixed acidity</th>\n",116       "      <th>volatile acidity</th>\n",117       "      <th>citric acid</th>\n",118       "      <th>residual sugar</th>\n",119       "      <th>chlorides</th>\n",120       "      <th>free sulfur dioxide</th>\n",121       "      <th>total sulfur dioxide</th>\n",122       "      <th>density</th>\n",123       "      <th>pH</th>\n",124       "      <th>sulphates</th>\n",125       "      <th>alcohol</th>\n",126       "      <th>wine_type</th>\n",127       "    </tr>\n",128       "  </thead>\n",129       "  <tbody>\n",130       "    <tr>\n",131       "      <th>0</th>\n",132       "      <td>7.4</td>\n",133       "      <td>0.70</td>\n",134       "      <td>0.00</td>\n",135       "      <td>1.9</td>\n",136       "      <td>0.076</td>\n",137       "      <td>11.0</td>\n",138       "      <td>34.0</td>\n",139       "      <td>0.9978</td>\n",140       "      <td>3.51</td>\n",141       "      <td>0.56</td>\n",142       "      <td>9.4</td>\n",143       "      <td>0</td>\n",144       "    </tr>\n",145       "    <tr>\n",146       "      <th>1</th>\n",147       "      <td>7.8</td>\n",148       "      <td>0.88</td>\n",149       "      <td>0.00</td>\n",150       "      <td>2.6</td>\n",151       "      <td>0.098</td>\n",152       "      <td>25.0</td>\n",153       "      <td>67.0</td>\n",154       "      <td>0.9968</td>\n",155       "      <td>3.20</td>\n",156       "      <td>0.68</td>\n",157       "      <td>9.8</td>\n",158       "      <td>0</td>\n",159       "    </tr>\n",160       "    <tr>\n",161       "      <th>2</th>\n",162       "      <td>7.8</td>\n",163       "      <td>0.76</td>\n",164       "      <td>0.04</td>\n",165       "      <td>2.3</td>\n",166       "      <td>0.092</td>\n",167       "      <td>15.0</td>\n",168       "      <td>54.0</td>\n",169       "      <td>0.9970</td>\n",170       "      <td>3.26</td>\n",171       "      <td>0.65</td>\n",172       "      <td>9.8</td>\n",173       "      <td>0</td>\n",174       "    </tr>\n",175       "    <tr>\n",176       "      <th>3</th>\n",177       "      <td>11.2</td>\n",178       "      <td>0.28</td>\n",179       "      <td>0.56</td>\n",180       "      <td>1.9</td>\n",181       "      <td>0.075</td>\n",182       "      <td>17.0</td>\n",183       "      <td>60.0</td>\n",184       "      <td>0.9980</td>\n",185       "      <td>3.16</td>\n",186       "      <td>0.58</td>\n",187       "      <td>9.8</td>\n",188       "      <td>0</td>\n",189       "    </tr>\n",190       "    <tr>\n",191       "      <th>4</th>\n",192       "      <td>7.4</td>\n",193       "      <td>0.70</td>\n",194       "      <td>0.00</td>\n",195       "      <td>1.9</td>\n",196       "      <td>0.076</td>\n",197       "      <td>11.0</td>\n",198       "      <td>34.0</td>\n",199       "      <td>0.9978</td>\n",200       "      <td>3.51</td>\n",201       "      <td>0.56</td>\n",202       "      <td>9.4</td>\n",203       "      <td>0</td>\n",204       "    </tr>\n",205       "  </tbody>\n",206       "</table>\n",207       "</div>"208      ],209      "text/plain": [210       "   fixed acidity  volatile acidity  citric acid  residual sugar  chlorides  \\\n",211       "0            7.4              0.70         0.00             1.9      0.076   \n",212       "1            7.8              0.88         0.00             2.6      0.098   \n",213       "2            7.8              0.76         0.04             2.3      0.092   \n",214       "3           11.2              0.28         0.56             1.9      0.075   \n",215       "4            7.4              0.70         0.00             1.9      0.076   \n",216       "\n",217       "   free sulfur dioxide  total sulfur dioxide  density    pH  sulphates  \\\n",218       "0                 11.0                  34.0   0.9978  3.51       0.56   \n",219       "1                 25.0                  67.0   0.9968  3.20       0.68   \n",220       "2                 15.0                  54.0   0.9970  3.26       0.65   \n",221       "3                 17.0                  60.0   0.9980  3.16       0.58   \n",222       "4                 11.0                  34.0   0.9978  3.51       0.56   \n",223       "\n",224       "   alcohol  wine_type  \n",225       "0      9.4          0  \n",226       "1      9.8          0  \n",227       "2      9.8          0  \n",228       "3      9.8          0  \n",229       "4      9.4          0  "230      ]231     },232     "execution_count": 6,233     "metadata": {},234     "output_type": "execute_result"235    }236   ],237   "source": [238    "merge_df = pd.concat([df_redwine,\n",239    "                      df_whitewine],\n",240    "                      axis = 0)\n",241    "merge_df.drop('quality', axis = 1, inplace= True)\n",242    "merge_df.head()"243   ]244  },245  {246   "cell_type": "code",247   "execution_count": 7,248   "metadata": {},249   "outputs": [250    {251     "data": {252      "text/plain": [253       "(6497, 12)"254      ]255     },256     "execution_count": 7,257     "metadata": {},258     "output_type": "execute_result"259    }260   ],261   "source": [262    "merge_df.shape"263   ]264  },265  {266   "cell_type": "code",267   "execution_count": 8,268   "metadata": {},269   "outputs": [270    {271     "data": {272      "text/plain": [273       "wine_type\n",274       "1    4898\n",275       "0    1599\n",276       "Name: count, dtype: int64"277      ]278     },279     "execution_count": 8,280     "metadata": {},281     "output_type": "execute_result"282    }283   ],284   "source": [285    "merge_df['wine_type'].value_counts()"286   ]287  },288  {289   "cell_type": "code",290   "execution_count": 9,291   "metadata": {},292   "outputs": [293    {294     "data": {295      "image/png": "iVBORw0KGgoAAAANSUhEUgAABqwAAAJOCAYAAADClyY7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACTA0lEQVR4nOzdd3hUZd7/8c+Z9JBGIBB670hHiWIBKSrgKvg86lpAxVUX3RVd9aePa1tXdt1V18a6rqvYEMWuLCAioEgsgKH3IiWQhEAqSaac+/dHzEhMISHlJJP367pymZz7nDPfM4yBOZ/53rdljDECAAAAAAAAAAAAHOJyugAAAAAAAAAAAAA0bQRWAAAAAAAAAAAAcBSBFQAAAAAAAAAAABxFYAUAAAAAAAAAAABHEVgBAAAAAAAAAADAUQRWAAAAAAAAAAAAcBSBFQAAAAAAAAAAABxFYAUAAAAAAAAAAABHEVgBAAAAAAAAAADAUQRWAAAA9axXr17q1auXnn32WadLqRMHDhzwX+P777/vdDmnpCFdw/vvv++v5cCBA47WAgAAAABAXSGwAgAAqMQDDzzgDwuSk5OrdezKlSv9xz766KN1VGFgOjGkcTowCkSpqan697//reuuu06jR4/WoEGDNGDAAJ199tm64YYbNHv2bO3fv9/pMgEAAAAATQiBFQAAQCV+9atf+b//+OOPq3XsRx995P/+kksuqa2SgFNWVFSkxx57TOPHj9ff//53rVq1SgcPHlRBQYGKioqUnp6ulStX6umnn9bYsWN1++2369ChQ06XXae+/fZbfzj67bffOl0OAAAAADRZwU4XAAAA0JANHTpUHTt21L59+/TZZ5/pwQcfVHh4+EmPO378uD7//HNJUo8ePdS/f3//2LZt2+qsXqAiR48e1S233KKUlBRJUrNmzTRx4kSNGDFCiYmJCg4O1pEjR7R27VotWbJEe/fu1cKFCzVo0CBNmzbN0doBAAAAAIGPwAoAAOAkfvWrX+nZZ59VXl6eli5dqgkTJpz0mM8++0zHjx+XJF188cV1XSJQKdu2dfvtt/vDqlGjRunPf/6zWrRoUWbf0aNH64477tDHH3+sxx9/vJ4rBQAAAAA0VUwJCAAAcBK/+tWvZFmWpKpPC1iyn8vlKjWtIOCE1157zT/d3ciRI/Xcc8+VG1aVcLlcuuSSS/xriQEAAAAAUNfosAIAADiJDh06aMiQIVqzZo1WrlypzMzMSm/2p6WlKTk5WZI0YsQItW7dutR4SQBw66236rbbbitzfE5Ojt58800tX75cu3fv1vHjxxUdHa34+Hh16dJFZ511lsaNG6eWLVtW67wlrrnmGn333Xc6/fTT9frrr5cZT09P15IlS/Ttt99q69atSk9Pl9frVfPmzdW/f39NmjRJF1xwgVyuhvvZp+zsbH3++edKTk7W5s2bdejQIXk8HsXGxqp3794aN26cLr30UoWGhlb5nAsXLtTbb7+tbdu2KT8/X23bttXYsWN14403KiYm5qTHf/PNN/rggw+0evVqHTlyREFBQWrXrp1GjhypadOmlXmd1Ba3263//Oc/kqSwsDA99thjCg6u2tuAxMREJSYmVnje+fPna9GiRdqxY4fy8vIUGxurvn37auLEiZo0aVKFr5GTvQZLPPvss3ruuecklT+V5i9f8+vXr9ecOXO0evVqHT16VM2bN9eIESN08803q1u3bqWOPXDggM4///xS26699toyjzFr1ixNnjy5whoBAAAAALWDwAoAAKAKLrnkEq1Zs0Zer1cLFiwo98Z2iU8//VS2bUtStburdu3apWnTpik9Pb3U9mPHjunYsWPatWuXPv/8c9m2rauvvrr6F3ISPp9P5557rr/+E6Wnp+uLL77QF198oXfffVfPPvusmjVrVus11IZLL71UBw8eLLP9yJEjWrlypVauXKl58+bpxRdfVEJCwknPd9999+m9994rtW3Pnj168cUX9eGHH2rOnDllApESRUVFuvfee7VgwYIyY9u3b9f27ds1b948PfHEExo9enQVr7DqVq5c6X89XXDBBbUSjB04cEA33nijdu/eXWr7kSNH9OWXX+rLL7/U22+/rdmzZysuLq7Gj1cVb775ph577DF5vV7/tvT0dH388cdasmSJ/v3vf2v48OH1UgsAAAAAoPoIrAAAAKrgwgsv1KOPPqqioiJ99NFHlQZWH330kSQpMjJS48aNq9bj3HXXXUpPT1dISIj+53/+R+ecc45atmwpY4wOHz6slJQUff755zW6lsoYYyQVd4adc8456tmzp+Lj45Wfn6/9+/dr/vz5+uGHH/T111/rkUce0V//+tc6q6UmfD6fBg4cqPPOO099+/ZVixYt5PF4dODAAX388cf66quvtHnz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bdu2TVdeeaWuu+46derUSXl5eVqxYoXmzp2ryMhItWrVql6ma5NUbvhWntGjRysuLs6/xlh6erouv/xy3XjjjerZs6eKior0zTff6NVXX5Xb7Va/fv2qNC1g//79tWzZMl155ZWaNm2aOnXqpMzMTH344YdasGCBJCkxMVG//e1vyxx75ZVXatWqVVqyZIkWLVqkzZs36/LLL9eAAQMUHR2tvLw87d69W999952++OILhYaG6uqrr67eE1QFLpdL//jHP3TzzTdr3bp1WrZsmcaMGaNJkyZpxIgRSkxMVHBwsI4cOaKUlBR99tln2r17d7nnmjFjhpYsWaL9+/fr2Wef1fbt2zV58mQlJCTowIEDeuONN/Tdd99JkgYPHqzLL7+8zDnOPfdctWvXTgcPHtTTTz+tY8eOaezYsQoLC9POnTv1+uuva/PmzRo0aJBSUlJq/fk4Udu2bZWYmKjDhw/r5ZdfVmJiorp06eKf9rNFixaKioqq0xoAAAAAAARWAAAApyQ8PFzjx4/X+++/7992wQUXlOqwOVUbNmyodN2kwYMH689//nOZ7T169NBdd92lWbNmKTs7W7NmzSo1HhcXp+eff15PP/10hWHTzJkztXbtWm3ZskUbN27UnXfeWeYczz77rJ555pl6C6zeffddvfvuuyfd78MPP1RcXJyuvfZarVq1SitXrtTevXv1f//3f6X2Cw8P11//+letWLGiSoHVVVddpe+//17vv/++Zs6cWWY8ISFB//nPfxQdHV1mzLIsPfXUU/rzn/+sefPmad++ffrb3/5W4WPV5XSS8fHxev311/X3v/9db731lvLz8zVv3jzNmzev3P0ty9KkSZN04YUXltoeFRWlOXPm6MYbb9Tu3bu1ePFiLV68uMzxQ4YM0T//+U9/8HOi0NBQPf7447rxxht1/PhxzZkzR3PmzPGPBwUF6b777lN2dnadB1aSdNNNN+nhhx/WgQMHygSPs2bN0uTJk+u8BgAAAABo6gisAAAATtGll15aKrCqyXSAkjRx4kS1aNFCq1at0oYNG5SWlqbMzEx5vV61aNFCffv21UUXXaQJEybI5Sp/Zudp06apW7dumjNnjjZs2KCCggK1atVK5557rqZPn662bdtWWkN0dLTeeustvfLKK1q4cKF+/PFHBQUFqU2bNjr33HM1depU/7pMDVVISIj+9a9/6a233tKHH36oXbt2yRij1q1bKykpSddee626deumFStWVPmcs2bN0llnnaW3335b27dv1/Hjx9W2bVuNGTNGv/nNbxQbG1tpPQ899JCuvPJKzZ8/X99++60OHTqk48ePKzIyUu3bt1e/fv10zjnnaNSoUbXxFFQoLCxM//d//6frrrtOn376qZKTk7V3714dPXpUxhjFxsaqZ8+eGj58uCZNmlRm2skS7du310cffaT58+dr0aJF2r59u/Lz8xUbG6s+ffpo0qRJmjRpUoWvU0kaNmyY3nvvPb3wwgtKTk7WsWPHFBcXpyFDhmjatGkaMmSInn322bp6Kkr59a9/rZYtW+rtt9/Wli1blJ2d3aDXaQMAAACAQGQZY4zTRQAAAAAAAAAAAKDpqvgjjwAAAAAAAAAAAEA9ILACAAAAAAAAAACAowisAAAAAAAAAAAA4CgCKwAAAAAAAAAAADiKwAoAAAAAAAAAAACOIrACAAAAAAAAAACAowisAAAAAAAAAAAA4CgCKwAAAAAAAAAAADiKwAoAAAAAAAAAAACOIrACAAAAAAAAAACAowisAAAAAAAAAAAA4CgCKwAAAAAAAAAAADiKwAoAAAAAAAAAAACOIrACAAAAAAAAAACAowisAAAAAAAAAAAA4CgCKwAAAAAAAAAAADiKwAoAAAAAAAAAAACOIrACAAAAAAAAAACAowisAAAAAAAAAAAA4CgCKwAAAAAAAAAAADiKwAoAAAAAAAAAAACOIrACAAAAAAAAAACAowisAAAAAAAAAAAA4CgCKwAAAAAAAAAAADiKwAoAAAAAAAAAAACOIrACAAAAAAAAAACAowisAAAAAAAAAAAA4CgCKwAAAAAAAAAAADiKwAoAAAAAAAAAAACOIrBCtXXu3FmWZZX6CgsLU8eOHXX55Zfrq6++crpE1KNp06bJsixNmzatTh/nvPPOk2VZWr58eZ0+TomS1/nevXvr5fEAAAAAoDJLlizRddddp549eyomJkZhYWFq06aNxo4dq6eeekoZGRlOl+gI3pMCABA4CKxwys466yxNnTpVU6dO1YUXXijbtvXOO+/o3HPP1ZNPPul0eQ0C/8AEAAAAANTEkSNHNHbsWI0bN05z5syRx+PRqFGjNGXKFPXp00erVq3SHXfcoa5du+rbb791utxqe+ihh2RZlh566CGnSwEAAA4LdroANF7Tp08v9QmmwsJC3XTTTXrttdd09913a+LEierZs6dzBQIAAAAA0IhlZ2dr5MiR2rZtm3r37q0XX3xRZ599dql9ioqK9Oqrr+rBBx/UoUOHHKoUAACg5uiwQq0JDw/X888/r2bNmsnn8+n99993uiQAAAAAABqt2267Tdu2bVPnzp319ddflwmrJCksLEy/+c1vlJKSoj59+jhQJQAAQO0gsEKtioqKUq9evSSpzDR427dv10033aRu3bopPDxcsbGxOuecc/TGG2+Ue64T54f+6quvNGnSJCUkJMjlcmnOnDn+/Y4fP65//OMfGjlypJo3b66wsDB16tRJkyZN0ty5c8s997vvvqsLLrhACQkJCg0NVbt27XT11Vdr8+bNZfbdu3evLMtS586dZYzRiy++qKFDh6pZs2aKjY3VuHHjlJycXOqYOXPmyLIs/fjjj5KkLl26lFrz68Q5r99//31Nnz5d/fv3V/PmzRUeHq4uXbro+uuv17Zt2yp8rvPz8/XHP/5RPXr0UFhYmNq2bavrr79eBw8ePOmUCmvWrNFVV12ljh07KiwsTPHx8Ro/frz++9//Vvh4tcXj8eiNN97QVVddpd69eysmJkYRERHq1auXfve73yk1NfWk51ixYoXGjRun+Ph4RUZG6vTTT9frr79e6TFLly7V5MmT1aZNG4WGhqpVq1a69NJLy/zZAQAAAEBDsHv3bv972ieffFLx8fGV7t+6dWv/+/ETzZs3T+eff77i4+P975evv/56bd++vdzzlLxvrUhFazmduD0lJUWTJ09Wy5YtFRYWpr59++qJJ56QMabMYz388MOSpIcffrjU++a6WpOK96QAADRcBFaodTk5OZKKP+VVYv78+Ro4cKBefPFFhYaG6qKLLtKwYcO0du1aXXPNNbr++usrPN/8+fN13nnnaffu3RozZozGjh3rP/f+/fs1fPhwzZw5Uz/88IOGDx+uyZMnq1OnTvrqq6903333lTqX1+vV5Zdfrv/5n//R8uXL1bNnT11yySVKSEjQm2++qWHDhmnRokUV1nLdddfp1ltvVVxcnCZOnKjExEQtWbJEo0aNKjVXePfu3TV16lQ1a9ZMkjRlyhT/el9Tp05VYmKif9///d//1VtvvaWIiAiNHj1a48ePl8vl0iuvvKKhQ4dq1apVZerIz8/XqFGj9Oijj+rw4cMaN26cRo4cqUWLFmnIkCH+oKw8Tz/9tE4//XTNnTtXLVq00MUXX6x+/fpp+fLlmjBhgh555JEKj60NaWlpuuaaa7RgwQI1b95cF1xwgUaPHq28vDw9++yzGjRokHbu3Fnh8R988IFGjx6tgwcPavz48Ro+fLjWrFmja6+9VnfeeWe5x/zhD3/QmDFj9NFHH6ljx4665JJL1LVrV3300Uc6++yz9corr9TV5QIAAADAKfn000/l8/kUFxeniy++uNrHG2M0depUXXnllfryyy81ePBgTZ48WeHh4XrllVc0ePDgSt//nqrFixfrjDPO0NatWzV27FglJSVp+/bt+sMf/qCZM2eW2nfq1KkaOHCgJGngwIGl3jePHDmy1muTeE8KAECDZoBq6tSpk5FkXnnllTJj69atMy6Xy0gyL7/8sjHGmPXr15uwsDATHh5u3nvvvVL7792715x22mlGknn11VdLjZ177rlGkpFknn/++TKP5fP5zLBhw4wkM27cOJOenl5qvKCgwCxYsKDUtvvuu89IMmeccYbZvXt3qbH58+eboKAg07x5c3Ps2DH/9j179vjr6NSpk9m2bZt/zOv1muuvv95fQ0XP1Z49e8qMlZg3b57Jy8srtc22bfP8888bSaZfv37Gtu1S4zNnzjSSTN++fU1qamqpa77sssv89T744IOljlu0aJGxLMu0bNnSrFixotTY+vXrTfv27Y0ks3z58grr/aWpU6caSWbq1KlV2j8nJ8d89NFHpqioqNR2t9tt7r33XiPJXHTRRWWOO/H18Nhjj5UaW758uYmIiDCSzKJFi0qNvfjii0aS6d69u1m3bl2psRUrVpjo6GgTGhpqtm/fXmqsKn92AAAAAFBXrrnmGiPJjB49+pSO/+c//2kkmZYtW5offvjBv922bfPggw8aSSYuLq7Me+mS910VKXlvtmzZsnK3SzIvvPBCqbGlS5cay7JMUFCQ2b9/f6mxklp++f61qnhPCgBA4CCwQrWVF1hlZWWZBQsWmG7duhlJpm3btv4Q5vLLLzeSzN///vdyz/fdd98ZSWbo0KGltpf8Y7Cif5x/+OGHRpJp06aNyc3NPWndmZmZJiIiwoSHh5sDBw6Uu89vf/tbI8k8++yz/m0nBlYff/xxmWMOHTpkJJmwsDDjdrtLjdX0H5hJSUlGktm0aZN/2/Hjx01UVJSRZBYvXlzmmPT0dBMZGVnuP/jPOOMMI8m8++675T7eO++8YySZKVOmVLnG6r45OJm2bdsal8tlcnJySm0veT0MHjy43OPuvPNOI8mMHTvWv83n85m2bdsaSWb16tXlHvf4448bSebOO+8stZ03BwAAAACcdMEFFxhJ5oorrjil40venz/zzDNlxmzbNgMGDDCSzJ///OdSYzUNrCZPnlzucSXX89prr5XaXt+B1cnwnhQAAOcEn1pfFlA8Pd51111XZnu3bt303nvvqVmzZrJtWwsXLpQkXX755eWeZ9iwYYqKitIPP/ygwsJChYeHlxq/7LLLyj2uZOqCX//614qKijppvcuWLVNBQYHOP/98tWvXrtx9zjvvPM2ePVurVq3SrbfeWmosODhYF1xwQZljEhMT1bx5cx07dkyZmZmlpvurqp07d2rRokXauXOncnNz5fP5JBVPVSBJ27ZtU9++fSUVrz+Vl5enli1baty4cWXOlZCQoLFjx+qjjz4qtf3IkSP67rvvFBERoUmTJlV4/ZLKnYawtq1bt05Lly7Vnj17lJ+fL9u2JRVP22jbtnbu3KnBgweXOe7aa68t93xTp07VE088oZUrV8rn8ykoKEg//PCDUlNT1a1bNw0dOrTc4+rzmgEAAACgPhw4cEC7du2SVPxe6Zcsy9J1112nmTNnatmyZWWm06+Jit5v9unTR4sWLdLBgwdr7bFqgvekAAA0PARWOGVnnXWWunfvLkn+BUNHjBihCy64QMHBxS+tzMxM/5pWHTp0OOk5MzMzy4RJnTt3LnffknWaevfuXaV6d+/eLal4odPKFpCVpIyMjDLb2rRpo5CQkHL3j4mJ0bFjx1RYWFilWkr4fD7deuut+te//lVm8dkTlTyHUvEbD6ni56WisT179sgYo4KCglLri5WnvOuvLfn5+brmmmv0wQcfVLrfidd8oi5dulS6vaCgQJmZmWrVqpX/z3zXrl2n9GcOAAAAAE5JSEiQJKWnp1f72JJQqEWLFoqJiSl3n27dupXat7Z07Nix3O0ldVT3fXNt4z0pAAANF4EVTtn06dM1bdq0Svcp+YSSVP6nun6pvCAlIiKi2rVVVkv37t111llnVbpveSGYy+WqlTpO9PTTT+uFF15QYmKinnzySZ155plq3bq1v8vs17/+td56661yw6zK/rFb3ljJ9UdFRWnKlCm1dAXVd++99+qDDz5Q79699Ze//EXDhw9Xy5YtFRoaKkk688wzlZycXGmAdzIlx5Zcc2JiosaPH1/pMS1btjzlxwMAAACA2jZ06FC9/vrrWrt2rb9jpyE48X1+eerivXNt4j0pAAANF4EV6lTLli0VERGhgoIC/f3vf6/Vf4CVfGpr69atVdq/pMOrV69emjNnTq3VURPvvPOOJOlf//qXLr744jLjO3bsKLOtpANt7969FZ63vLGS67csSy+//LJjbyJKrvntt9/WgAEDyoyXd80n2rNnT7nbS645PDxcLVq0kPTzNbdo0aLB/JkDAAAAQFVMnDhRd9xxh7KysvTxxx/r0ksvrfKxJe8bS2Y9Ka/LqqT755eznISEhMjj8Sg3N1fR0dFljiuZ7aSx4j0pAAANV8P+2AsavaCgII0dO1bSz/8orC0l60m99dZbys/PP+n+559/vkJDQ7V8+fJTmlLhVJR8Qsvr9ZY7fvToUUlSp06dyoxt2rRJKSkpZbYPHTpUkZGRysjI0Oeff15m/MiRI1qyZEmZ7W3bttWAAQOUm5vrX//LCZVd8+LFi3XkyJFKj3/jjTfK3f7aa69JkkaOHOmfkrLkk3KbN2/Wpk2balI2AAAAANSrbt266corr5Qk3Xnnnf73UhVJT0/Xtm3bJEnt27f3T/lXXlBijPFvHzVqVKmxkgBry5YtZY5bv3699u/fX63rOJmTvW+ubbwnBQCg4SKwQp178MEHFRoaqrvuukuvvvpqudMHbNy4Ue+//361znvxxRdr8ODBSk1N1f/8z/8oMzOz1HhhYaEWLlzo/7l169a67bbblJ+fr0mTJmnDhg1lzllUVKSPP/64yl1bJ9O+fXtJqvAfpn369JEkPf/886Wel0OHDunaa68t9x/skZGRmj59uiRp5syZSktLK1X/rbfeWmGA9+ijj0qSrrvuOn3yySdlxo0x+vbbb/XZZ59V5fJOSck1P/vss6W2b9u2TTfffPNJj1+zZo0ef/zxUttWrlyp559/XlLxc1IiJCREDz74oIwxuvTSS7Vy5coy5/P5fPriiy/0zTffVPtaAAAAAKAuPfvss+revbv27NmjkSNHlvuexu126+WXX9bgwYNLhUx/+MMfJEl/+tOftG7dOv92Y4weffRRpaSkKC4uTjfeeGOp840ZM0aS9PDDD6uoqMi/fe/evZo6dWqNpsorz8neN9c23pMCANBwMSUg6tyQIUP0xhtvaNq0aZo2bZruv/9+9e3bVwkJCTp69Kg2bNigAwcO6PLLL9fkyZOrfF6Xy6UPPvhA48eP18KFC9WxY0eNHDlSLVq00MGDB7Vu3TrFxcWVmh7vL3/5iw4dOqS5c+dq0KBBGjhwoLp27arg4GAdOHBAKSkpys/P18KFC8tdx6q6pkyZomXLlunqq6/WuHHj1Lx5c0nSXXfdpV69eum+++7TokWL9O9//1vLli3TkCFDlJOToxUrVqhr16669NJLy10I9s9//rO+/vprrVmzRt27d9fo0aMVHh6ulStXyu12a+rUqXr11Vf9n1QrMWnSJD399NO68847dfHFF6t79+7q1auXYmNjlZGRoXXr1ik9PV333HOPxo0bV61rXbBggUaMGFHh+PTp0zV9+nQ9+OCDuuyyy/THP/5R77zzjvr166f09HR99dVXOvvss9W2bVutWrWqwvP87ne/07333qvXXntNAwYMUGpqqr766ivZtq3f//73uuiii0rtf+utt2rfvn3629/+prPPPlv9+vVT9+7dFRERocOHDyslJUVZWVn65z//WWn9AAAAAFDfmjdvrq+//lqXX365li9frrPPPltdunTRgAEDFBkZqbS0NH333XfKy8tTTEyM2rZt6z/2pptu0qpVq/T6669r2LBhOvfcc9WqVSutXbtW27ZtU0REhObOnauEhIRSj3nffffp3Xff1X//+1/17NlTw4cPV0ZGhr7//nudddZZOvPMMyt9z1Zd48ePV7NmzfThhx9q5MiR6tGjh4KCgnTWWWfpuuuuq/J5eE8KAEAAMEA1derUyUgyr7zySrWO27Nnj5k5c6bp37+/adasmQkPDzedOnUy5513nvnLX/5idu7cWWr/c88910gyy5Ytq/S8ubm55q9//asZPny4iY6ONmFhYaZTp07m4osvNvPmzSv3mP/+979m8uTJpl27diYkJMTExcWZPn36mCuuuMLMnTvX5Ofnl6pbkunUqVOFNZQ8J3v27Cm13efzmVmzZpl+/fqZ8PBwI6nMNa1fv95cfPHFpk2bNiY8PNz06NHD3H333SYnJ8dMnTq1wuc6NzfX3HfffaZr164mNDTUJCYmmmuuucb8+OOP5vrrrzeSzL/+9a9y692wYYP5zW9+Y3r0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nDkzRVGM6niBcuzevTv9/f158cUX09nZWfZwAIB3yN/pMPHVarXs2bMnfX19b3mtYAUAQMNobW3NsmXL8uijj+baa69NUg9Qjz76aDZs2DDix7S1taWtre2IY93d3aM8UqARdHZ2urkFABOAv9NhYnurmVWHCVYAADSUjRs3Zt26dVm+fHlWrlyZe++9N/v27cv69evLHhoAAAAwSgQrAAAaykc+8pG8/PLLue2227Jt27ZceOGFeeSRR9LT01P20AAAAIBRIlgBANBwNmzYcMwlAAHa2tpy++23H7UcKAAwvvg7HXijolar1coeBAAAAAAAAJNXpewBAAAAAAAAMLkJVgAAAAAAAJRKsAIAAAAAAKBUghUAAADjygMPPJAFCxakvb09q1atylNPPVX2kACAt+Gxxx7LNddck76+vhRFkS1btpQ9JKABCFYAAACMGw8//HA2btyY22+/Pd/73veydOnSrF27Ni+99FLZQwMATtC+ffuydOnSPPDAA2UPBWggRa1Wq5U9CAAAADgRq1atyooVK3L//fcnSarVavr7+/PpT386n/nMZ0oeHQDwdhVFka997Wu59tpryx4KUDIzrAAAABgXDh48mKeffjpr1qwZPlapVLJmzZo88cQTJY4MAAA4WYIVAAAA48KOHTsyNDSUnp6eI4739PRk27ZtJY0KAAA4FQQrAAAAAAAASiVYAQAAMC7MmjUrTU1N2b59+xHHt2/fnt7e3pJGBQAAnAqCFQAAAONCa2trli1blkcffXT4WLVazaOPPprVq1eXODIAAOBkNZc9AAAAADhRGzduzLp167J8+fKsXLky9957b/bt25f169eXPTQA4ATt3bs3P/3pT4fff+GFF7J169bMmDEj8+bNK3FkQJmKWq1WK3sQAAAAcKLuv//+fP7zn8+2bdty4YUXZtOmTVm1alXZwwIATtB3vvOdvPe97z3q+Lp167J58+axHxDQEAQrAAAAAAAASmUPKwAAAAAAAEolWAEAAAAAAFAqwQoAAAAAAIBSCVYAAAAAAACUSrACAAAAAACgVIIVAAAAAAAApRKsAAAAAAAAKJVgBQAAAAAAQKkEKwAAAAAaxubNm9Pd3X3Sn6coimzZsuWkPw8AMDYEKwAAAABOqY9//OO59tpryx4GADCOCFYAAAAAAACUSrACAAAAYMzcc889ede73pWpU6emv78/f/iHf5i9e/cedd2WLVty9tlnp729PWvXrs2LL754xPl//Md/zMUXX5z29vYsWrQod9xxRwYHB8fqZQAAp5hgBQAAAMCYqVQq2bRpU5555pl86Utfyre//e3ccsstR1zz2muv5c4778yXv/zlPP7449m5c2duuOGG4fP//M//nBtvvDF/9Ed/lB/96Ef5m7/5m2zevDl33nnnWL8cAOAUKWq1Wq3sQQAAAAAwcXz84x/Pzp07s2XLlre89h/+4R/y+7//+9mxY0eSZPPmzVm/fn3+7d/+LatWrUqSPPvss1m8eHGefPLJrFy5MmvWrMmVV16ZW2+9dfjz/P3f/31uueWW/PrXv06SFEWRr33ta/bSAoBxornsAQAAAAAweXzrW9/KXXfdlWeffTa7d+/O4OBg9u/fn9deey1TpkxJkjQ3N2fFihXDH3Peeeelu7s7P/7xj7Ny5cp8//vfz+OPP37EjKqhoaGjPg8AMH4IVgAAAACMiZ///Oe5+uqr8wd/8Ae58847M2PGjPzLv/xLbrrpphw8ePCEQ9PevXtzxx135LrrrjvqXHt7+6keNgAwBgQrAAAAAMbE008/nWq1mi984QupVOpbq3/1q1896rrBwcF897vfzcqVK5Mkzz33XHbu3JnFixcnSS6++OI899xzOeuss8Zu8ADAqBKsAAAAADjldu3ala1btx5xbNasWRkYGMh9992Xa665Jo8//ngefPDBoz62paUln/70p7Np06Y0Nzdnw4YNueSSS4YD1m233Zarr7468+bNy/XXX59KpZLvf//7+eEPf5jPfvazY/HyAIBTrFL2AAAAAACYeL7zne/koosuOuLxd3/3d7nnnnvyF3/xF7ngggvy0EMP5a677jrqY6dMmZI//dM/zUc/+tFceumlmTZtWh5++OHh82vXrs3Xv/71fOMb38iKFStyySWX5K/+6q8yf/78sXyJAMApVNRqtVrZgwAAAAAAAGDyMsMKAAAAAACAUglWAAAAAAAAlEqwAgAAAAAAoFSCFQAAAAAAAKUSrAAAAAAAACiVYAUAAAAAAECpBCsAAAAAAABKJVgBAAAAAABQKsEKAAAAAACAUglWAAAAAAAAlEqwAgAAAAAAoFSCFQAAAAAAAKX6//QLwgVMOKOrAAAAAElFTkSuQmCC",296      "text/plain": [297       "<Figure size 2000x600 with 2 Axes>"298      ]299     },300     "metadata": {},301     "output_type": "display_data"302    }303   ],304   "source": [305    "label_count = merge_df['wine_type'].value_counts()\n",306    "fig,axes = plt.subplots(nrows=1, ncols=2, figsize=(20,6))\n",307    "\n",308    "sns.set_theme(style='darkgrid', palette='pastel')\n",309    "color = sns.color_palette(palette='pastel')\n",310    "explode = [0.02]*len(label_count)\n",311    "\n",312    "axes[0].pie(label_count.values, labels=label_count.index, autopct='%1.1f%%', colors=color, explode=explode)\n",313    "axes[0].set_title('Percentage Label',fontsize=16)\n",314    "\n",315    "sns.barplot(x=label_count.index, y=label_count.values, ax=axes[1])\n",316    "axes[1].set_title('Count Label',fontsize=16)\n",317    "axes[1].set_xlabel('Label')\n",318    "axes[1].set_ylabel('Count')\n",319    "\n",320    "fig.suptitle('Visual Label Count',fontsize=20)\n",321    "plt.tight_layout()\n",322    "plt.show()"323   ]324  },325  {326   "cell_type": "code",327   "execution_count": 10,328   "metadata": {},329   "outputs": [330    {331     "data": {332      "text/html": [333       "<div>\n",334       "<style scoped>\n",335       "    .dataframe tbody tr th:only-of-type {\n",336       "        vertical-align: middle;\n",337       "    }\n",338       "\n",339       "    .dataframe tbody tr th {\n",340       "        vertical-align: top;\n",341       "    }\n",342       "\n",343       "    .dataframe thead th {\n",344       "        text-align: right;\n",345       "    }\n",346       "</style>\n",347       "<table border=\"1\" class=\"dataframe\">\n",348       "  <thead>\n",349       "    <tr style=\"text-align: right;\">\n",350       "      <th></th>\n",351       "      <th>fixed acidity</th>\n",352       "      <th>volatile acidity</th>\n",353       "      <th>citric acid</th>\n",354       "      <th>residual sugar</th>\n",355       "      <th>chlorides</th>\n",356       "      <th>free sulfur dioxide</th>\n",357       "      <th>total sulfur dioxide</th>\n",358       "      <th>density</th>\n",359       "      <th>pH</th>\n",360       "      <th>sulphates</th>\n",361       "      <th>alcohol</th>\n",362       "      <th>wine_type</th>\n",363       "    </tr>\n",364       "  </thead>\n",365       "  <tbody>\n",366       "    <tr>\n",367       "      <th>0</th>\n",368       "      <td>7.4</td>\n",369       "      <td>0.70</td>\n",370       "      <td>0.00</td>\n",371       "      <td>1.9</td>\n",372       "      <td>0.076</td>\n",373       "      <td>11.0</td>\n",374       "      <td>34.0</td>\n",375       "      <td>0.99780</td>\n",376       "      <td>3.51</td>\n",377       "      <td>0.56</td>\n",378       "      <td>9.4</td>\n",379       "      <td>0</td>\n",380       "    </tr>\n",381       "    <tr>\n",382       "      <th>1</th>\n",383       "      <td>7.8</td>\n",384       "      <td>0.88</td>\n",385       "      <td>0.00</td>\n",386       "      <td>2.6</td>\n",387       "      <td>0.098</td>\n",388       "      <td>25.0</td>\n",389       "      <td>67.0</td>\n",390       "      <td>0.99680</td>\n",391       "      <td>3.20</td>\n",392       "      <td>0.68</td>\n",393       "      <td>9.8</td>\n",394       "      <td>0</td>\n",395       "    </tr>\n",396       "    <tr>\n",397       "      <th>2</th>\n",398       "      <td>7.8</td>\n",399       "      <td>0.76</td>\n",400       "      <td>0.04</td>\n",401       "      <td>2.3</td>\n",402       "      <td>0.092</td>\n",403       "      <td>15.0</td>\n",404       "      <td>54.0</td>\n",405       "      <td>0.99700</td>\n",406       "      <td>3.26</td>\n",407       "      <td>0.65</td>\n",408       "      <td>9.8</td>\n",409       "      <td>0</td>\n",410       "    </tr>\n",411       "    <tr>\n",412       "      <th>3</th>\n",413       "      <td>11.2</td>\n",414       "      <td>0.28</td>\n",415       "      <td>0.56</td>\n",416       "      <td>1.9</td>\n",417       "      <td>0.075</td>\n",418       "      <td>17.0</td>\n",419       "      <td>60.0</td>\n",420       "      <td>0.99800</td>\n",421       "      <td>3.16</td>\n",422       "      <td>0.58</td>\n",423       "      <td>9.8</td>\n",424       "      <td>0</td>\n",425       "    </tr>\n",426       "    <tr>\n",427       "      <th>4</th>\n",428       "      <td>7.4</td>\n",429       "      <td>0.70</td>\n",430       "      <td>0.00</td>\n",431       "      <td>1.9</td>\n",432       "      <td>0.076</td>\n",433       "      <td>11.0</td>\n",434       "      <td>34.0</td>\n",435       "      <td>0.99780</td>\n",436       "      <td>3.51</td>\n",437       "      <td>0.56</td>\n",438       "      <td>9.4</td>\n",439       "      <td>0</td>\n",440       "    </tr>\n",441       "    <tr>\n",442       "      <th>...</th>\n",443       "      <td>...</td>\n",444       "      <td>...</td>\n",445       "      <td>...</td>\n",446       "      <td>...</td>\n",447       "      <td>...</td>\n",448       "      <td>...</td>\n",449       "      <td>...</td>\n",450       "      <td>...</td>\n",451       "      <td>...</td>\n",452       "      <td>...</td>\n",453       "      <td>...</td>\n",454       "      <td>...</td>\n",455       "    </tr>\n",456       "    <tr>\n",457       "      <th>4893</th>\n",458       "      <td>6.2</td>\n",459       "      <td>0.21</td>\n",460       "      <td>0.29</td>\n",461       "      <td>1.6</td>\n",462       "      <td>0.039</td>\n",463       "      <td>24.0</td>\n",464       "      <td>92.0</td>\n",465       "      <td>0.99114</td>\n",466       "      <td>3.27</td>\n",467       "      <td>0.50</td>\n",468       "      <td>11.2</td>\n",469       "      <td>1</td>\n",470       "    </tr>\n",471       "    <tr>\n",472       "      <th>4894</th>\n",473       "      <td>6.6</td>\n",474       "      <td>0.32</td>\n",475       "      <td>0.36</td>\n",476       "      <td>8.0</td>\n",477       "      <td>0.047</td>\n",478       "      <td>57.0</td>\n",479       "      <td>168.0</td>\n",480       "      <td>0.99490</td>\n",481       "      <td>3.15</td>\n",482       "      <td>0.46</td>\n",483       "      <td>9.6</td>\n",484       "      <td>1</td>\n",485       "    </tr>\n",486       "    <tr>\n",487       "      <th>4895</th>\n",488       "      <td>6.5</td>\n",489       "      <td>0.24</td>\n",490       "      <td>0.19</td>\n",491       "      <td>1.2</td>\n",492       "      <td>0.041</td>\n",493       "      <td>30.0</td>\n",494       "      <td>111.0</td>\n",495       "      <td>0.99254</td>\n",496       "      <td>2.99</td>\n",497       "      <td>0.46</td>\n",498       "      <td>9.4</td>\n",499       "      <td>1</td>\n",500       "    </tr>\n",501       "    <tr>\n",502       "      <th>4896</th>\n",503       "      <td>5.5</td>\n",504       "      <td>0.29</td>\n",505       "      <td>0.30</td>\n",506       "      <td>1.1</td>\n",507       "      <td>0.022</td>\n",508       "      <td>20.0</td>\n",509       "      <td>110.0</td>\n",510       "      <td>0.98869</td>\n",511       "      <td>3.34</td>\n",512       "      <td>0.38</td>\n",513       "      <td>12.8</td>\n",514       "      <td>1</td>\n",515       "    </tr>\n",516       "    <tr>\n",517       "      <th>4897</th>\n",518       "      <td>6.0</td>\n",519       "      <td>0.21</td>\n",520       "      <td>0.38</td>\n",521       "      <td>0.8</td>\n",522       "      <td>0.020</td>\n",523       "      <td>22.0</td>\n",524       "      <td>98.0</td>\n",525       "      <td>0.98941</td>\n",526       "      <td>3.26</td>\n",527       "      <td>0.32</td>\n",528       "      <td>11.8</td>\n",529       "      <td>1</td>\n",530       "    </tr>\n",531       "  </tbody>\n",532       "</table>\n",533       "<p>6497 rows × 12 columns</p>\n",534       "</div>"535      ],536      "text/plain": [537       "      fixed acidity  volatile acidity  citric acid  residual sugar  chlorides  \\\n",538       "0               7.4              0.70         0.00             1.9      0.076   \n",539       "1               7.8              0.88         0.00             2.6      0.098   \n",540       "2               7.8              0.76         0.04             2.3      0.092   \n",541       "3              11.2              0.28         0.56             1.9      0.075   \n",542       "4               7.4              0.70         0.00             1.9      0.076   \n",543       "...             ...               ...          ...             ...        ...   \n",544       "4893            6.2              0.21         0.29             1.6      0.039   \n",545       "4894            6.6              0.32         0.36             8.0      0.047   \n",546       "4895            6.5              0.24         0.19             1.2      0.041   \n",547       "4896            5.5              0.29         0.30             1.1      0.022   \n",548       "4897            6.0              0.21         0.38             0.8      0.020   \n",549       "\n",550       "      free sulfur dioxide  total sulfur dioxide  density    pH  sulphates  \\\n",551       "0                    11.0                  34.0  0.99780  3.51       0.56   \n",552       "1                    25.0                  67.0  0.99680  3.20       0.68   \n",553       "2                    15.0                  54.0  0.99700  3.26       0.65   \n",554       "3                    17.0                  60.0  0.99800  3.16       0.58   \n",555       "4                    11.0                  34.0  0.99780  3.51       0.56   \n",556       "...                   ...                   ...      ...   ...        ...   \n",557       "4893                 24.0                  92.0  0.99114  3.27       0.50   \n",558       "4894                 57.0                 168.0  0.99490  3.15       0.46   \n",559       "4895                 30.0                 111.0  0.99254  2.99       0.46   \n",560       "4896                 20.0                 110.0  0.98869  3.34       0.38   \n",561       "4897                 22.0                  98.0  0.98941  3.26       0.32   \n",562       "\n",563       "      alcohol  wine_type  \n",564       "0         9.4          0  \n",565       "1         9.8          0  \n",566       "2         9.8          0  \n",567       "3         9.8          0  \n",568       "4         9.4          0  \n",569       "...       ...        ...  \n",570       "4893     11.2          1  \n",571       "4894      9.6          1  \n",572       "4895      9.4          1  \n",573       "4896     12.8          1  \n",574       "4897     11.8          1  \n",575       "\n",576       "[6497 rows x 12 columns]"577      ]578     },579     "execution_count": 10,580     "metadata": {},581     "output_type": "execute_result"582    }583   ],584   "source": [585    "merge_df"586   ]587  },588  {589   "cell_type": "code",590   "execution_count": 11,591   "metadata": {},592   "outputs": [],593   "source": [594    "# Split x and y\n",595    "x = merge_df.drop('wine_type', axis = 1)\n",596    "y = merge_df['wine_type']"597   ]598  },599  {600   "cell_type": "code",601   "execution_count": 12,602   "metadata": {},603   "outputs": [],604   "source": [605    "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.20, random_state=20)"606   ]607  },608  {609   "cell_type": "code",610   "execution_count": 13,611   "metadata": {},612   "outputs": [613    {614     "name": "stdout",615     "output_type": "stream",616     "text": [617      "KNN  0.994 0.002\n",618      "LR   0.994 0.002\n",619      "NB   0.976 0.007\n",620      "GBC  0.994 0.002\n",621      "SVC  0.996 0.002\n",622      "RFC  0.996 0.002\n",623      "DT   0.987 0.003\n",624      "XGB  0.995 0.003\n"625     ]626    }627   ],628   "source": [629    "encoded = LabelEncoder()\n",630    "sc = StandardScaler()\n",631    "\n",632    "x_sc = sc.fit_transform(x_train)\n",633    "\n",634    "df_sc = pd.DataFrame(x_sc, columns=x.columns)\n",635    "\n",636    "models = []\n",637    "models.append(('KNN', KNeighborsClassifier()))\n",638    "models.append(('LR', LogisticRegression()))\n",639    "models.append(('NB', GaussianNB()))\n",640    "models.append(('GBC', GradientBoostingClassifier()))\n",641    "models.append(('SVC', SVC()))\n",642    "models.append(('RFC', RandomForestClassifier()))\n",643    "models.append(('DT', DecisionTreeClassifier()))\n",644    "models.append(('XGB', XGBClassifier()))\n",645    "\n",646    "result = []\n",647    "names = []\n",648    "\n",649    "for name, model in models:\n",650    "    cvs = cross_val_score(model, x_sc, y_train, cv=10)\n",651    "    result.append(cvs)\n",652    "    names.append(name)\n",653    "    print('{:4} {:.3f} {:.3f}'.format(name, cvs.mean(), cvs.std()))"654   ]655  },656  {657   "cell_type": "code",658   "execution_count": 14,659   "metadata": {},660   "outputs": [661    {662     "data": {663      "image/png": "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nDp1Cl988QV+++03BAYGivfhKSwsRGRkpN79ZuqKv78/RowYoXcfngsXLsDHxweTJk0S2/Xt2xfu7u747LPPcOnSJXTo0AG3bt1CSkoKnnvuOWRlZdXKeI4cOYIPPvgAXbp0gYeHB1xcXPDnn3/iwIEDkMvlejdvrK/jk6iuMPAQ4f/O7owZM6bKdk8//TSeeeYZHDlyBCkpKRVecigXEREBV1dXxMfHY/fu3bC3t0evXr0wZ84chIeHVzjfYe3atQgICMCuXbvECdReXl54/fXX8eqrr9agQn2rV6/G+++/j8OHD+P777+HIAh44oknGnzgAR5OMt66dSv27duH77//HmfPnkVKSgrkcjlatWqFF198EaNGjYK/v7/Yx9HREV999RViY2Oxf/9+fPbZZ7C1tYWfnx/Cw8OrPR+opubNm4f9+/dj+/btuHnzJhwdHTF+/Hi8/fbbepOwmzZtioSEBKxZswa//PILTp06hdatW2Pq1KmYOHEikpKSamU8vXv3xq1bt3Dy5EkcOHAABQUFaNmyJYKDgzFhwgS95xCov+OTqC7IBEEQzD0IIktSUFCAZ555Bh06dBB/aZC0vfvuu/j6669x4MABPP300+YeDpFF4hweojpy9+5dg3v2lJWVYeXKlSguLtb7WAciIqpbvKRFVEf27duH9evX45lnnsETTzyBvLw8nDx5EteuXUOHDh0QGhpq7iESEVkMBh6iOtK5c2d069YNJ0+exL179wA8nAP05ptvYtKkSRXezp+IiOoG5/AQERGR5HEODxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSR4DDxEREUkeAw8RERFJHgMPERERSZ6VuQfQkAiCAJ1OMMu25XKZ2bZtTqzbsrBuy8K6LYu56pbLZZDJZI9tx8DzCJ1OwN27hfW+XSsrOZyc7KHR3EdZma7et28urJt1WwLWzbotgTnrdna2h0Lx+MDDS1pEREQkeQw8REREJHkMPERERCR5DDxEREQkeQw8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",664      "text/plain": [665       "<Figure size 640x480 with 1 Axes>"666      ]667     },668     "metadata": {},669     "output_type": "display_data"670    }671   ],672   "source": [673    "fig = plt.figure()\n",674    "fig.suptitle('Algorithm Comparison')\n",675    "ax = fig.add_subplot(111)\n",676    "plt.boxplot(result)\n",677    "ax.set_xticklabels(names)\n",678    "plt.show()"679   ]680  },681  {682   "cell_type": "markdown",683   "metadata": {},684   "source": [685    "# GridSearchCV"686   ]687  },688  {689   "cell_type": "code",690   "execution_count": 15,691   "metadata": {},692   "outputs": [693    {694     "name": "stdout",695     "output_type": "stream",696     "text": [697      "Best Hyperparameters: {'learning_rate': 0.2, 'max_depth': 3, 'n_estimators': 300}\n",698      "Best Score: 0.9969212260309469\n"699     ]700    }701   ],702   "source": [703    "from sklearn.model_selection import GridSearchCV\n",704    "from xgboost import XGBClassifier\n",705    "\n",706    "param_grid = {\n",707    "    'n_estimators': [100, 200, 300],  \n",708    "    'learning_rate': [0.01, 0.1, 0.2], \n",709    "    'max_depth': [3, 5, 7], }\n",710    "\n",711    "xgb = XGBClassifier()\n",712    "\n",713    "grid_search = GridSearchCV(estimator=xgb, param_grid=param_grid, cv=5, n_jobs=-1)\n",714    "grid_search.fit(x_sc, y_train)\n",715    "\n",716    "print(\"Best Hyperparameters:\", grid_search.best_params_)\n",717    "print(\"Best Score:\", grid_search.best_score_)"718   ]719  },720  {721   "cell_type": "code",722   "execution_count": 16,723   "metadata": {},724   "outputs": [725    {726     "name": "stdout",727     "output_type": "stream",728     "text": [729      "Cross val score:[1.   1.   1.   1.   0.99 1.   1.   1.   1.   0.99]\n",730      "Average 99.67 %\n"731     ]732    }733   ],734   "source": [735    "model = grid_search.best_estimator_\n",736    "cvs = cross_val_score(model,x_sc,y_train,cv=10)\n",737    "print('Cross val score:{}'.format(cvs.round(2)))\n",738    "print('Average {:.2f} %'.format(cvs.mean()*100))"739   ]740  },741  {742   "cell_type": "markdown",743   "metadata": {},744   "source": [745    "# RandomizedSearchCV"746   ]747  },748  {749   "cell_type": "code",750   "execution_count": 17,751   "metadata": {},752   "outputs": [753    {754     "name": "stdout",755     "output_type": "stream",756     "text": [757      "Best Hyperparameters: {'n_estimators': 300, 'max_depth': 3, 'learning_rate': 0.16}\n",758      "Best Score: 0.9965364255571185\n"759     ]760    }761   ],762   "source": [763    "from sklearn.model_selection import RandomizedSearchCV\n",764    "from xgboost import XGBClassifier\n",765    "import numpy as np\n",766    "\n",767    "param_dist = {\n",768    "    'n_estimators': np.arange(100, 1001, 100),  \n",769    "    'learning_rate': np.linspace(0.01, 0.2, 20),  \n",770    "    'max_depth': [3, 5, 7, 9],  }\n",771    "\n",772    "xgb = XGBClassifier()\n",773    "\n",774    "random_search = RandomizedSearchCV(estimator=xgb, param_distributions=param_dist, n_iter=10, cv=5, n_jobs=-1)\n",775    "random_search.fit(x_sc, y_train)\n",776    "\n",777    "print(\"Best Hyperparameters:\", random_search.best_params_)\n",778    "print(\"Best Score:\", random_search.best_score_)"779   ]780  },781  {782   "cell_type": "code",783   "execution_count": 18,784   "metadata": {},785   "outputs": [786    {787     "name": "stdout",788     "output_type": "stream",789     "text": [790      "Cross val score:[1.   1.   1.   1.   0.99 1.   1.   1.   1.   0.99]\n",791      "Average 99.71 %\n"792     ]793    }794   ],795   "source": [796    "model_rs = random_search.best_estimator_\n",797    "cvs = cross_val_score(model_rs,x_sc,y_train,cv=10)\n",798    "print('Cross val score:{}'.format(cvs.round(2)))\n",799    "print('Average {:.2f} %'.format(cvs.mean()*100))"800   ]801  },802  {803   "cell_type": "code",804   "execution_count": 19,805   "metadata": {},806   "outputs": [807    {808     "data": {809      "text/html": [810       "<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",811       "              colsample_bylevel=None, colsample_bynode=None,\n",812       "              colsample_bytree=None, early_stopping_rounds=None,\n",813       "              enable_categorical=False, eval_metric=None, feature_types=None,\n",814       "              gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n",815       "              interaction_constraints=None, learning_rate=0.16, max_bin=None,\n",816       "              max_cat_threshold=None, max_cat_to_onehot=None,\n",817       "              max_delta_step=None, max_depth=3, max_leaves=None,\n",818       "              min_child_weight=None, missing=nan, monotone_constraints=None,\n",819       "              n_estimators=300, n_jobs=None, num_parallel_tree=None,\n",820       "              predictor=None, random_state=None, ...)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",821       "              colsample_bylevel=None, colsample_bynode=None,\n",822       "              colsample_bytree=None, early_stopping_rounds=None,\n",823       "              enable_categorical=False, eval_metric=None, feature_types=None,\n",824       "              gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n",825       "              interaction_constraints=None, learning_rate=0.16, max_bin=None,\n",826       "              max_cat_threshold=None, max_cat_to_onehot=None,\n",827       "              max_delta_step=None, max_depth=3, max_leaves=None,\n",828       "              min_child_weight=None, missing=nan, monotone_constraints=None,\n",829       "              n_estimators=300, n_jobs=None, num_parallel_tree=None,\n",830       "              predictor=None, random_state=None, ...)</pre></div></div></div></div></div>"831      ],832      "text/plain": [833       "XGBClassifier(base_score=None, booster=None, callbacks=None,\n",834       "              colsample_bylevel=None, colsample_bynode=None,\n",835       "              colsample_bytree=None, early_stopping_rounds=None,\n",836       "              enable_categorical=False, eval_metric=None, feature_types=None,\n",837       "              gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n",838       "              interaction_constraints=None, learning_rate=0.16, max_bin=None,\n",839       "              max_cat_threshold=None, max_cat_to_onehot=None,\n",840       "              max_delta_step=None, max_depth=3, max_leaves=None,\n",841       "              min_child_weight=None, missing=nan, monotone_constraints=None,\n",842       "              n_estimators=300, n_jobs=None, num_parallel_tree=None,\n",843       "              predictor=None, random_state=None, ...)"844      ]845     },846     "execution_count": 19,847     "metadata": {},848     "output_type": "execute_result"849    }850   ],851   "source": [852    "random_search.best_estimator_"853   ]854  },855  {856   "cell_type": "markdown",857   "metadata": {},858   "source": [859    "# Classification"860   ]861  },862  {863   "cell_type": "code",864   "execution_count": 20,865   "metadata": {},866   "outputs": [867    {868     "name": "stdout",869     "output_type": "stream",870     "text": [871      "Accuracy Train: 0.99\n",872      "              precision    recall  f1-score   support\n",873      "\n",874      "           0       1.00      0.97      0.98       321\n",875      "           1       0.99      1.00      0.99       979\n",876      "\n",877      "    accuracy                           0.99      1300\n",878      "   macro avg       0.99      0.99      0.99      1300\n",879      "weighted avg       0.99      0.99      0.99      1300\n",880      "\n"881     ]882    }883   ],884   "source": [885    "from sklearn.pipeline import Pipeline\n",886    "from sklearn.metrics import accuracy_score,classification_report\n",887    "\n",888    "pipe1 = Pipeline([\n",889    "    ('scaler',StandardScaler()),\n",890    "    ('xgb',XGBClassifier(n_estimators= 500, max_depth=5, learning_rate=0.13))\n",891    "])\n",892    "\n",893    "pipe1.fit(x_train,y_train)\n",894    "y_pred = pipe1.predict(x_test)\n",895    "\n",896    "print('Accuracy Train: {:.2f}'.format(accuracy_score(y_test,y_pred)))\n",897    "print(classification_report(y_test,y_pred))"898   ]899  },900  {901   "cell_type": "code",902   "execution_count": 21,903   "metadata": {},904   "outputs": [905    {906     "data": {907      "text/plain": [908       "['model_wine_binary.pkl']"909      ]910     },911     "execution_count": 21,912     "metadata": {},913     "output_type": "execute_result"914    }915   ],916   "source": [917    "import joblib\n",918    "joblib.dump(model, 'model_wine_binary.pkl')"919   ]920  }921 ],922 "metadata": {923  "kernelspec": {924   "display_name": ".venv",925   "language": "python",926   "name": "python3"927  },928  "language_info": {929   "codemirror_mode": {930    "name": "ipython",931    "version": 3932   },933   "file_extension": ".py",934   "mimetype": "text/x-python",935   "name": "python",936   "nbconvert_exporter": "python",937   "pygments_lexer": "ipython3",938   "version": "3.10.12"939  },940  "orig_nbformat": 4941 },942 "nbformat": 4,943 "nbformat_minor": 2944}945