diff --git a/22-06-10-Naive_Bayes/Codes.ipynb b/22-06-10-Naive_Bayes/Codes.ipynb new file mode 100644 index 0000000..0e26067 --- /dev/null +++ b/22-06-10-Naive_Bayes/Codes.ipynb @@ -0,0 +1,2316 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Naive Bayes.ipynb", + "provenance": [], + "collapsed_sections": [], + "authorship_tag": "ABX9TyMuPZYgLeZZEYtTydvuY0vm", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Notes**\n", + "\n", + "[open in browser]('https://onedrive.live.com/view.aspx?resid=B7999797B4FEAE64%211201&id=documents&wd=target%28Naive%20Bayes.one%7C5A03ED1E-CF67-4C12-AD8B-C16112311CD6%2FIntro%7C26B8385D-A330-42F6-9B6F-C565F43A2472%2F%29')\n", + "\n", + "[open in OneNote]('onenote:https://d.docs.live.net/b7999797b4feae64/Documents/DS%20December/Naive%20Bayes.one#Intro§ion-id={5A03ED1E-CF67-4C12-AD8B-C16112311CD6}&page-id={26B8385D-A330-42F6-9B6F-C565F43A2472}&end')" + ], + "metadata": { + "id": "tkHggcg_bKPf" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "bqorb4nTy4XE" + }, + "outputs": [], + "source": [ + "import plotly.express as px\n", + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Scratch\n", + "\n", + "i used this to explane implementation **play_tennis**" + ], + "metadata": { + "id": "Tj6lBRxtTDBD" + } + }, + { + "cell_type": "code", + "source": [ + "df = pd.read_csv('https://gist.githubusercontent.com/DiogoRibeiro7/c6590d0cf119e87c39e31c21a9c0f3a8/raw/4a8e3da267a0c1f0d650901d8295a5153bde8b21/PlayTennis.csv')\n", + "df" + ], + "metadata": { + "id": "ti-n0DM8sgYd", + "outputId": "5030f2f9-6091-4406-fd66-827f57d10250", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488 + } + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Outlook Temperature Humidity Wind Play Tennis\n", + "0 Sunny Hot High Weak No\n", + "1 Sunny Hot High Strong No\n", + "2 Overcast Hot High Weak Yes\n", + "3 Rain Mild High Weak Yes\n", + "4 Rain Cool Normal Weak Yes\n", + "5 Rain Cool Normal Strong No\n", + "6 Overcast Cool Normal Strong Yes\n", + "7 Sunny Mild High Weak No\n", + "8 Sunny Cool Normal Weak Yes\n", + "9 Rain Mild Normal Weak Yes\n", + "10 Sunny Mild Normal Strong Yes\n", + "11 Overcast Mild High Strong Yes\n", + "12 Overcast Hot Normal Weak Yes\n", + "13 Rain Mild High Strong No" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
OutlookTemperatureHumidityWindPlay Tennis
0SunnyHotHighWeakNo
1SunnyHotHighStrongNo
2OvercastHotHighWeakYes
3RainMildHighWeakYes
4RainCoolNormalWeakYes
5RainCoolNormalStrongNo
6OvercastCoolNormalStrongYes
7SunnyMildHighWeakNo
8SunnyCoolNormalWeakYes
9RainMildNormalWeakYes
10SunnyMildNormalStrongYes
11OvercastMildHighStrongYes
12OvercastHotNormalWeakYes
13RainMildHighStrongNo
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "source": [ + "pd.crosstab(df['Outlook'], df['Play Tennis'], normalize='columns')" + ], + "metadata": { + "id": "o20tVEUhslOa", + "outputId": "36bc0063-99d6-4885-b767-73f1cecdef03", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + } + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Play Tennis No Yes\n", + "Outlook \n", + "Overcast 0.0 0.444444\n", + "Rain 0.4 0.333333\n", + "Sunny 0.6 0.222222" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Play TennisNoYes
Outlook
Overcast0.00.444444
Rain0.40.333333
Sunny0.60.222222
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "Kg84gTlSslLj" + }, + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "iris = px.data.iris()" + ], + "metadata": { + "id": "d6nEo9SGzWUy" + }, + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# X = iris.drop(['species_id', 'species'], axis = 1)\n", + "# Y = iris['species_id']\n", + "\n", + "from sklearn.preprocessing import OrdinalEncoder\n", + "X = df.drop(['Play Tennis'], axis = 1)\n", + "Y = df['Play Tennis']" + ], + "metadata": { + "id": "CKh0-frNzll3" + }, + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import accuracy_score\n", + "\n", + "class NaiveBayes():\n", + " def __init__(self):\n", + " pass\n", + " \n", + " def fit(self, X, Y):\n", + " self.label_type = Y.dtype\n", + " self.prob = {}\n", + " self.label_prob = Y.value_counts(normalize=True)\n", + " self.features = X.columns\n", + "\n", + " for col in X.columns:\n", + " self.prob[col] = pd.crosstab(X[col], Y, normalize = 'columns')\n", + " \n", + " return self.prob\n", + " \n", + " def pred(self, x):\n", + " \n", + " maxprob = 0\n", + " maxlab = ''\n", + " for lab in self.label_prob.index:\n", + " currprob = self.label_prob[lab]\n", + " currlab = lab\n", + " \n", + " for fet in self.features:\n", + " p = self.prob[fet][lab][x[fet]]\n", + " currprob = currprob*p\n", + " \n", + " if currprob > maxprob:\n", + " maxprob = currprob\n", + " maxlab = currlab\n", + " \n", + " return maxlab\n", + "\n", + " def predict(self, X):\n", + " y_pred = np.full(X.shape[0], 0,dtype = self.label_type)\n", + "\n", + " for i, (_, x) in enumerate(X.iterrows()):\n", + " lab = self.pred(x)\n", + " y_pred[i] = lab\n", + " \n", + " return y_pred\n", + " \n", + " def score(self, X, Y):\n", + " return accuracy_score(self.predict(X), Y)" + ], + "metadata": { + "id": "-6klPoA31hkI" + }, + "execution_count": 28, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "model = NaiveBayes()\n", + "prob = model.fit(X, Y)" + ], + "metadata": { + "id": "ucIUTwH42gZC" + }, + "execution_count": 29, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "model.predict(X)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Zj8LwA9TMD4n", + "outputId": "4441d02f-ef4c-4573-a6dd-79a8ae80d315" + }, + "execution_count": 30, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array(['No', 'No', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'No', 'Yes', 'Yes',\n", + " 'Yes', 'Yes', 'Yes', 'No'], dtype=object)" + ] + }, + "metadata": {}, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model.score(X, Y)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "l1q-nnUIJMiK", + "outputId": "03f80920-8f45-4184-90eb-2e5a92513672" + }, + "execution_count": 31, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.9285714285714286" + ] + }, + "metadata": {}, + "execution_count": 31 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.naive_bayes import MultinomialNB\n", + "\n", + "modelsk = MultinomialNB()\n", + "\n", + "X = OrdinalEncoder().fit_transform(X)\n", + "\n", + "modelsk.fit(X, Y)\n", + "# accuracy_score(modelsk.predict(X), Y)\n", + "modelsk.score(X, Y)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "SPMrudjK2mIW", + "outputId": "8d34222c-6087-4f97-f449-68cc6cd2dcf4" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.8571428571428571" + ] + }, + "metadata": {}, + "execution_count": 32 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Project" + ], + "metadata": { + "id": "alxgN5iQTAOX" + } + }, + { + "cell_type": "code", + "source": [ + "data = df = pd.read_csv(\"https://raw.githubusercontent.com/DependerKumarSoni/Naive-Bayes/main/adult.csv\")\n", + "df.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "4t3OZXtcTBKr", + "outputId": "c035feff-1507-454a-baae-b7fb4da2aade" + }, + "execution_count": 33, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " 39 State-gov 77516 Bachelors 13 Never-married \\\n", + "0 50 Self-emp-not-inc 83311 Bachelors 13 Married-civ-spouse \n", + "1 38 Private 215646 HS-grad 9 Divorced \n", + "2 53 Private 234721 11th 7 Married-civ-spouse \n", + "3 28 Private 338409 Bachelors 13 Married-civ-spouse \n", + "4 37 Private 284582 Masters 14 Married-civ-spouse \n", + "\n", + " Adm-clerical Not-in-family White Male 2174 0 40 \\\n", + "0 Exec-managerial Husband White Male 0 0 13 \n", + "1 Handlers-cleaners Not-in-family White Male 0 0 40 \n", + "2 Handlers-cleaners Husband Black Male 0 0 40 \n", + "3 Prof-specialty Wife Black Female 0 0 40 \n", + "4 Exec-managerial Wife White Female 0 0 40 \n", + "\n", + " United-States <=50K \n", + "0 United-States <=50K \n", + "1 United-States <=50K \n", + "2 United-States <=50K \n", + "3 Cuba <=50K \n", + "4 United-States <=50K " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
39State-gov77516Bachelors13Never-marriedAdm-clericalNot-in-familyWhiteMale2174040United-States<=50K
050Self-emp-not-inc83311Bachelors13Married-civ-spouseExec-managerialHusbandWhiteMale0013United-States<=50K
138Private215646HS-grad9DivorcedHandlers-cleanersNot-in-familyWhiteMale0040United-States<=50K
253Private23472111th7Married-civ-spouseHandlers-cleanersHusbandBlackMale0040United-States<=50K
328Private338409Bachelors13Married-civ-spouseProf-specialtyWifeBlackFemale0040Cuba<=50K
437Private284582Masters14Married-civ-spouseExec-managerialWifeWhiteFemale0040United-States<=50K
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 33 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Data Cleaning" + ], + "metadata": { + "id": "Wq691TTZT_sY" + } + }, + { + "cell_type": "code", + "source": [ + "col_names = ['age', 'workclass', 'fnlwgt', 'education', 'education_num', 'marital_status', 'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss', 'hours_per_week', 'native_country', 'income']\n", + "df.columns = col_names\n", + "df.sample(2)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 193 + }, + "id": "276K_qWYTyWe", + "outputId": "5f44e832-385f-4de0-cedd-65a24196212d" + }, + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " age workclass fnlwgt education education_num marital_status \\\n", + "4260 26 Private 333541 HS-grad 9 Never-married \n", + "30961 35 Private 301862 HS-grad 9 Never-married \n", + "\n", + " occupation relationship race sex capital_gain \\\n", + "4260 Other-service Not-in-family White Male 0 \n", + "30961 Craft-repair Unmarried White Male 0 \n", + "\n", + " capital_loss hours_per_week native_country income \n", + "4260 0 24 United-States <=50K \n", + "30961 0 50 United-States <=50K " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ageworkclassfnlwgteducationeducation_nummarital_statusoccupationrelationshipracesexcapital_gaincapital_losshours_per_weeknative_countryincome
426026Private333541HS-grad9Never-marriedOther-serviceNot-in-familyWhiteMale0024United-States<=50K
3096135Private301862HS-grad9Never-marriedCraft-repairUnmarriedWhiteMale0050United-States<=50K
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 34 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Objective**\n", + "The goal of this machine learning project is to predict whether a person makes over 50K a year or not given their demographic variation. This is a classification problem.\n", + "\n", + "\n", + "**1. Categorical Attributes**\n", + "\n", + "* **workclass**: Private, Self-emp-not-inc, Self-emp-inc, Federal-gov, Local-gov, State-gov, Without-pay, Never-worked.\n", + "Individual work category\n", + "* **education**: Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10th, Doctorate, 5th-6th, Preschool.\n", + "Individual's highest education degree\n", + "* **marital-status**: Married-civ-spouse, Divorced, Never-married, Separated, Widowed, Married-spouse-absent, Married-AF-spouse.\n", + "Individual marital status\n", + "* **occupation**: Tech-support, Craft-repair, Other-service, Sales, Exec-managerial, Prof-specialty, Handlers-cleaners, Machine-op-inspct, Adm-clerical, Farming-fishing, Transport-moving, Priv-house-serv, Protective-serv, Armed-Forces.\n", + "Individual's occupation\n", + "* **relationship**: Wife, Own-child, Husband, Not-in-family, Other-relative, Unmarried.\n", + "Individual's relation in a family\n", + "* **race**: White, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black.\n", + "Race of Individual\n", + "* **sex**: Female, Male.\n", + "* **native-country**: United-States, Cambodia, England, Puerto-Rico, Canada, Germany, Outlying-US(Guam-USVI-etc), India, Japan, Greece, South, China, Cuba, Iran, Honduras, Philippines, Italy, Poland, Jamaica, Vietnam, Mexico, Portugal, Ireland, France, Dominican-Republic, Laos, Ecuador, Taiwan, Haiti, Columbia, Hungary, Guatemala, Nicaragua, Scotland, Thailand, Yugoslavia, El-Salvador, Trinadad&Tobago, Peru, Hong, Holand-Netherlands.\n", + "Individual's native country\n", + "\n", + "\n", + "**2. Continuous Attributes**\n", + "\n", + "* **age**: continuous.\n", + "Age of an individual\n", + "* **fnlwgt**: final weight, continuous.\n", + "The weights on the CPS files are controlled to independent estimates of the civilian noninstitutional population of the US. These are prepared monthly for us by Population Division here at the Census Bureau.\n", + "* **capital-gain**: continuous.\n", + "* **capital-loss**: continuous.\n", + "* **hours-per-week**: continuous.\n", + "Individual's working hour per week" + ], + "metadata": { + "id": "YxoEyfG-UZ3Q" + } + }, + { + "cell_type": "code", + "source": [ + "attrib, counts = np.unique(data['workclass'], return_counts = True)\n", + "most_freq_attrib = attrib[np.argmax(counts, axis = 0)]\n", + "data['workclass'][data['workclass'] == ' ?'] = most_freq_attrib" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "kdWMMYohUB4m", + "outputId": "135c50ab-ea5d-4157-ae41-ef11ddbeec98" + }, + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " This is separate from the ipykernel package so we can avoid doing imports until\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "data['occupation'].replace({' ?': np.nan}, inplace = True)\n", + "data['native_country'].replace({' ?': np.nan}, inplace = True)" + ], + "metadata": { + "id": "B-wD2y7fUi-q" + }, + "execution_count": 36, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.impute import SimpleImputer\n", + "\n", + "si = SimpleImputer(strategy = 'most_frequent')\n", + "data[['occupation', 'native_country']] = si.fit_transform(data[['occupation', 'native_country']])" + ], + "metadata": { + "id": "jPOZFeaaUou2" + }, + "execution_count": 37, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "data['income'] = np.where(data['income'] == ' <=50K', 0, 1)" + ], + "metadata": { + "id": "w-BrC12KUuSz" + }, + "execution_count": 38, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## EDA" + ], + "metadata": { + "id": "qTlskxwTU5Hk" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Feature Engineering" + ], + "metadata": { + "id": "IuG6784AU8sx" + } + }, + { + "cell_type": "code", + "source": [ + "num_col = ['age', 'fnlwgt', 'capital_gain', 'capital_loss', 'hours_per_week']" + ], + "metadata": { + "id": "Ly--b-01Uzxy" + }, + "execution_count": 39, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "y = data['income']" + ], + "metadata": { + "id": "TPlyHYjkVBZy" + }, + "execution_count": 40, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "num_data = data[num_col]\n", + "cat_data = data.drop(num_col, axis = 1).drop(['income'], axis = 1)" + ], + "metadata": { + "id": "4mz1e_gvVCzl" + }, + "execution_count": 41, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Select and Train" + ], + "metadata": { + "id": "BpBROLCKVPZU" + } + }, + { + "cell_type": "markdown", + "source": [ + "### Numerical" + ], + "metadata": { + "id": "u0bE1N-ZVTfn" + } + }, + { + "cell_type": "code", + "source": [ + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "\n", + "for col in num_col:\n", + " sns.distplot(num_data[col])\n", + " plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "0l8POSxKVOGQ", + "outputId": "71e31fee-ed79-4ac5-c5de-1a2f7acb02d4" + }, + "execution_count": 42, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + " warnings.warn(msg, FutureWarning)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "X = num_data.drop(['capital_gain', 'capital_loss'], axis = 1)\n", + "X['capital_change'] = data['capital_gain']-data['capital_loss']" + ], + "metadata": { + "id": "xhzpnZ7WVbeM" + }, + "execution_count": 43, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import RobustScaler, MinMaxScaler\n", + "\n", + "a = RobustScaler().fit_transform(X)\n", + "X = pd.DataFrame(a, columns = X.columns)\n", + "\n", + "xtrain, xtest, ytrain, ytest = train_test_split(X, y, random_state=20)" + ], + "metadata": { + "id": "nziUKkh-VwUm" + }, + "execution_count": 44, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.naive_bayes import GaussianNB\n", + "\n", + "gnb = GaussianNB()\n", + "gnb.fit(xtrain, ytrain)\n", + "gnb.score(xtest, ytest)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "QnFAULkAV-sZ", + "outputId": "ac38acc2-cf96-485e-8fa6-2160337d8e04" + }, + "execution_count": 45, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.7896805896805896" + ] + }, + "metadata": {}, + "execution_count": 45 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Categorical " + ], + "metadata": { + "id": "yiPgoRtKWOFw" + } + }, + { + "cell_type": "code", + "source": [ + "Z = cat_data" + ], + "metadata": { + "id": "hlcb3OT_WOaT" + }, + "execution_count": 46, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.preprocessing import OrdinalEncoder, OneHotEncoder\n", + "# Label Encoder Can be used here\n", + "\n", + "od = OrdinalEncoder()\n", + "Z[Z.columns] = od.fit_transform(Z)" + ], + "metadata": { + "id": "OQZYtDBAWQen" + }, + "execution_count": 47, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "Z.sample(7)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 269 + }, + "id": "8FOCsjO2Wyua", + "outputId": "f0f4c1f3-483e-416a-81eb-9deeb6861d09" + }, + "execution_count": 48, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " workclass education education_num marital_status occupation \\\n", + "30801 3.0 7.0 11.0 2.0 11.0 \n", + "16043 3.0 11.0 8.0 0.0 11.0 \n", + "9015 3.0 9.0 12.0 2.0 11.0 \n", + "22087 3.0 15.0 9.0 2.0 3.0 \n", + "22054 3.0 15.0 9.0 2.0 0.0 \n", + "28671 3.0 15.0 9.0 2.0 2.0 \n", + "16541 3.0 12.0 13.0 2.0 9.0 \n", + "\n", + " relationship race sex native_country \n", + "30801 0.0 3.0 1.0 23.0 \n", + "16043 2.0 4.0 0.0 38.0 \n", + "9015 0.0 2.0 1.0 38.0 \n", + "22087 3.0 4.0 1.0 38.0 \n", + "22054 0.0 1.0 1.0 25.0 \n", + "28671 0.0 4.0 1.0 38.0 \n", + "16541 0.0 4.0 1.0 38.0 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
workclasseducationeducation_nummarital_statusoccupationrelationshipracesexnative_country
308013.07.011.02.011.00.03.01.023.0
160433.011.08.00.011.02.04.00.038.0
90153.09.012.02.011.00.02.01.038.0
220873.015.09.02.03.03.04.01.038.0
220543.015.09.02.00.00.01.01.025.0
286713.015.09.02.02.00.04.01.038.0
165413.012.013.02.09.00.04.01.038.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 48 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "xtrain, xtest, ytrain, ytest = train_test_split(Z, y, random_state=20)" + ], + "metadata": { + "id": "YVN65qCBW53H" + }, + "execution_count": 49, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.naive_bayes import MultinomialNB\n", + "\n", + "mnb = MultinomialNB()\n", + "mnb.fit(xtrain, ytrain)\n", + "print('Test', mnb.score(xtest, ytest))\n", + "print('Train', mnb.score(xtrain, ytrain))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "F11VxUB6W6ZK", + "outputId": "977f1538-f394-4825-e885-1b4afd334885" + }, + "execution_count": 50, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Test 0.7932432432432432\n", + "Train 0.8002866502866502\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### MIX type features" + ], + "metadata": { + "id": "WddLwBfXXDhu" + } + }, + { + "cell_type": "code", + "source": [ + "!pip install mixed-naive-bayes" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "_r8yYxr0XmGz", + "outputId": "95c8b30d-61ee-40a4-b454-4924b701b99d" + }, + "execution_count": 51, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting mixed-naive-bayes\n", + " Downloading mixed_naive_bayes-0.0.1-py3-none-any.whl (8.9 kB)\n", + "Requirement already satisfied: numpy>=1.16.1 in /usr/local/lib/python3.7/dist-packages (from mixed-naive-bayes) (1.21.6)\n", + "Requirement already satisfied: scikit-learn>=0.20.2 in /usr/local/lib/python3.7/dist-packages (from mixed-naive-bayes) (1.0.2)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn>=0.20.2->mixed-naive-bayes) (3.1.0)\n", + "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.7/dist-packages (from scikit-learn>=0.20.2->mixed-naive-bayes) (1.1.0)\n", + "Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn>=0.20.2->mixed-naive-bayes) (1.4.1)\n", + "Installing collected packages: mixed-naive-bayes\n", + "Successfully installed mixed-naive-bayes-0.0.1\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "X = num_data\n", + "X[X.columns] = RobustScaler().fit_transform(X)\n", + "\n", + "Y = cat_data\n", + "od = OrdinalEncoder()\n", + "Y[Y.columns] = od.fit_transform(Y)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "HsWURJ4nXrak", + "outputId": "b8f76962-8e19-466e-8d9d-b7ef907d3183" + }, + "execution_count": 52, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.7/dist-packages/pandas/core/frame.py:3678: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " self[col] = igetitem(value, i)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "X = X.join(Y)\n", + "X.sample(7)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 333 + }, + "id": "sW8oU_bMXxuX", + "outputId": "383fecf9-b1f0-41ba-e423-f78f3aed689d" + }, + "execution_count": 53, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " age fnlwgt capital_gain capital_loss hours_per_week workclass \\\n", + "4330 1.55 0.526836 0.0 0.0 -4.8 5.0 \n", + "28464 -0.25 1.116907 0.0 0.0 -0.4 3.0 \n", + "27872 0.25 1.179747 2885.0 0.0 1.0 3.0 \n", + "310 -0.15 -0.297476 7298.0 0.0 -1.0 3.0 \n", + "24317 0.05 -0.480008 0.0 0.0 0.0 3.0 \n", + "24178 -0.65 -0.434061 0.0 0.0 -4.0 1.0 \n", + "4327 -0.35 0.145836 0.0 0.0 -2.6 3.0 \n", + "\n", + " education education_num marital_status occupation relationship \\\n", + "4330 5.0 3.0 2.0 3.0 0.0 \n", + "28464 11.0 8.0 4.0 2.0 3.0 \n", + "27872 11.0 8.0 2.0 13.0 0.0 \n", + "310 12.0 13.0 2.0 3.0 0.0 \n", + "24317 11.0 8.0 2.0 9.0 0.0 \n", + "24178 9.0 12.0 4.0 9.0 3.0 \n", + "4327 11.0 8.0 4.0 5.0 3.0 \n", + "\n", + " race sex native_country \n", + "4330 4.0 1.0 38.0 \n", + "28464 2.0 1.0 38.0 \n", + "27872 4.0 1.0 38.0 \n", + "310 1.0 1.0 35.0 \n", + "24317 4.0 1.0 38.0 \n", + "24178 4.0 0.0 38.0 \n", + "4327 4.0 1.0 38.0 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
agefnlwgtcapital_gaincapital_losshours_per_weekworkclasseducationeducation_nummarital_statusoccupationrelationshipracesexnative_country
43301.550.5268360.00.0-4.85.05.03.02.03.00.04.01.038.0
28464-0.251.1169070.00.0-0.43.011.08.04.02.03.02.01.038.0
278720.251.1797472885.00.01.03.011.08.02.013.00.04.01.038.0
310-0.15-0.2974767298.00.0-1.03.012.013.02.03.00.01.01.035.0
243170.05-0.4800080.00.00.03.011.08.02.09.00.04.01.038.0
24178-0.65-0.4340610.00.0-4.01.09.012.04.09.03.04.00.038.0
4327-0.350.1458360.00.0-2.63.011.08.04.05.03.04.01.038.0
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 53 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "xtrain, xtest, ytrain, ytest = train_test_split(X, y, random_state=20)" + ], + "metadata": { + "id": "KYMpJ-7GX0Fe" + }, + "execution_count": 54, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from mixed_naive_bayes import MixedNB\n", + "\n", + "model = MixedNB(categorical_features=np.arange(5, 14))\n", + "model.fit(xtrain, ytrain)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "a3hpx7bdX2zG", + "outputId": "0907d88f-1337-4271-8233-4b9178f80e23" + }, + "execution_count": 55, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[ 8 16 16 7 14 6 5 2 41]\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "MixedNB(alpha=0.5, var_smoothing=1e-09)" + ] + }, + "metadata": {}, + "execution_count": 55 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model.score(xtest, ytest)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "s-g1suFPYE2D", + "outputId": "57a308b6-3d10-4e21-9279-f7d5b2d323f0" + }, + "execution_count": 56, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.8242014742014742" + ] + }, + "metadata": {}, + "execution_count": 56 + } + ] + }, + { + "cell_type": "code", + "source": [ + "model = MixedNB(alpha=1, categorical_features=np.arange(5, 14))\n", + "model.fit(xtrain, ytrain)\n", + "model.score(xtest, ytest)" + ], + "metadata": { + "id": "8vQ85-Ln09hN", + "outputId": "fa6c0d8e-8347-464f-bde6-d890ede2e1d1", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 62, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[ 8 16 16 7 14 6 5 2 41]\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.8242014742014742" + ] + }, + "metadata": {}, + "execution_count": 62 + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "tVoWYMgQ1NI9" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file