{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Naive Bayes\n", "\n", "## Lung Cancer" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline \n", "\n", "import string\n", "import nltk\n", "# if you have never done so, you need to download stopwords from nltk\n", "# nltk.download('stopwords')\n", "# nltk.download('wordnet')\n", "from nltk.corpus import stopwords\n", "from nltk.stem.wordnet import WordNetLemmatizer\n", "from nltk.tokenize import TweetTokenizer\n", "from sklearn.model_selection import train_test_split\n", "import re\n", "import itertools\n", "from sklearn.feature_extraction.text import CountVectorizer\n", "\n", "from sklearn.metrics import confusion_matrix\n", "from sklearn.naive_bayes import MultinomialNB\n", "from wordcloud import WordCloud\n", "\n", "from nltk.sentiment.util import mark_negation\n", "from nltk import word_tokenize" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | patient_id | \n", "age | \n", "gender | \n", "air_pollution | \n", "alcohol_use | \n", "dust_allergy | \n", "occupational_hazards | \n", "genetic_risk | \n", "chronic_lung_disease | \n", "balanced_diet | \n", "... | \n", "fatigue | \n", "weight_loss | \n", "shortness_of_breath | \n", "wheezing | \n", "swallowing_difficulty | \n", "clubbing_of_finger_nails | \n", "frequent_cold | \n", "dry_cough | \n", "snoring | \n", "level | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "P1 | \n", "33 | \n", "1 | \n", "2 | \n", "4 | \n", "5 | \n", "4 | \n", "3 | \n", "2 | \n", "2 | \n", "... | \n", "3 | \n", "4 | \n", "2 | \n", "2 | \n", "3 | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "Low | \n", "
1 | \n", "P10 | \n", "17 | \n", "1 | \n", "3 | \n", "1 | \n", "5 | \n", "3 | \n", "4 | \n", "2 | \n", "2 | \n", "... | \n", "1 | \n", "3 | \n", "7 | \n", "8 | \n", "6 | \n", "2 | \n", "1 | \n", "7 | \n", "2 | \n", "Medium | \n", "
2 | \n", "P107 | \n", "44 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "7 | \n", "8 | \n", "2 | \n", "4 | \n", "5 | \n", "3 | \n", "High | \n", "
3 | \n", "P189 | \n", "39 | \n", "2 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
4 | \n", "P19 | \n", "38 | \n", "2 | \n", "2 | \n", "1 | \n", "5 | \n", "3 | \n", "2 | \n", "3 | \n", "2 | \n", "... | \n", "6 | \n", "7 | \n", "2 | \n", "5 | \n", "8 | \n", "1 | \n", "3 | \n", "2 | \n", "3 | \n", "Medium | \n", "
5 | \n", "P190 | \n", "49 | \n", "1 | \n", "6 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
6 | \n", "P191 | \n", "37 | \n", "1 | \n", "8 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
7 | \n", "P192 | \n", "26 | \n", "2 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "2 | \n", "7 | \n", "6 | \n", "7 | \n", "6 | \n", "7 | \n", "2 | \n", "3 | \n", "1 | \n", "High | \n", "
8 | \n", "P193 | \n", "37 | \n", "2 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "7 | \n", "... | \n", "4 | \n", "2 | \n", "3 | \n", "1 | \n", "4 | \n", "5 | \n", "6 | \n", "7 | \n", "5 | \n", "High | \n", "
9 | \n", "P194 | \n", "33 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "... | \n", "8 | \n", "5 | \n", "7 | \n", "6 | \n", "7 | \n", "8 | \n", "7 | \n", "6 | \n", "2 | \n", "High | \n", "
10 | \n", "P195 | \n", "44 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "7 | \n", "8 | \n", "2 | \n", "4 | \n", "5 | \n", "3 | \n", "High | \n", "
11 | \n", "P196 | \n", "37 | \n", "2 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "9 | \n", "6 | \n", "5 | \n", "7 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "4 | \n", "High | \n", "
12 | \n", "P197 | \n", "25 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
13 | \n", "P108 | \n", "64 | \n", "2 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "9 | \n", "6 | \n", "5 | \n", "7 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "4 | \n", "High | \n", "
14 | \n", "P198 | \n", "18 | \n", "2 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
15 | \n", "P199 | \n", "47 | \n", "1 | \n", "6 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
16 | \n", "P2 | \n", "25 | \n", "2 | \n", "3 | \n", "1 | \n", "4 | \n", "3 | \n", "2 | \n", "3 | \n", "4 | \n", "... | \n", "3 | \n", "2 | \n", "2 | \n", "4 | \n", "2 | \n", "2 | \n", "3 | \n", "4 | \n", "3 | \n", "Low | \n", "
17 | \n", "P20 | \n", "19 | \n", "1 | \n", "3 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "2 | \n", "3 | \n", "... | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "5 | \n", "4 | \n", "Medium | \n", "
18 | \n", "P200 | \n", "26 | \n", "2 | \n", "8 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
19 | \n", "P201 | \n", "37 | \n", "1 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "7 | \n", "... | \n", "4 | \n", "2 | \n", "3 | \n", "1 | \n", "4 | \n", "5 | \n", "6 | \n", "7 | \n", "5 | \n", "High | \n", "
20 | \n", "P202 | \n", "35 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
21 | \n", "P203 | \n", "33 | \n", "1 | \n", "2 | \n", "4 | \n", "5 | \n", "4 | \n", "3 | \n", "2 | \n", "2 | \n", "... | \n", "3 | \n", "4 | \n", "2 | \n", "2 | \n", "3 | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "Low | \n", "
22 | \n", "P204 | \n", "25 | \n", "2 | \n", "3 | \n", "1 | \n", "4 | \n", "3 | \n", "2 | \n", "3 | \n", "4 | \n", "... | \n", "3 | \n", "2 | \n", "2 | \n", "4 | \n", "2 | \n", "2 | \n", "3 | \n", "4 | \n", "3 | \n", "Low | \n", "
23 | \n", "P205 | \n", "35 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "... | \n", "1 | \n", "4 | \n", "3 | \n", "2 | \n", "4 | \n", "6 | \n", "2 | \n", "4 | \n", "1 | \n", "Medium | \n", "
24 | \n", "P109 | \n", "39 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "6 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "7 | \n", "5 | \n", "6 | \n", "Medium | \n", "
25 | \n", "P206 | \n", "27 | \n", "2 | \n", "2 | \n", "3 | \n", "4 | \n", "2 | \n", "4 | \n", "3 | \n", "3 | \n", "... | \n", "1 | \n", "2 | \n", "4 | \n", "6 | \n", "5 | \n", "4 | \n", "2 | \n", "1 | \n", "5 | \n", "Medium | \n", "
26 | \n", "P207 | \n", "48 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "7 | \n", "8 | \n", "2 | \n", "4 | \n", "5 | \n", "3 | \n", "High | \n", "
27 | \n", "P208 | \n", "64 | \n", "1 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "9 | \n", "6 | \n", "5 | \n", "7 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "4 | \n", "High | \n", "
28 | \n", "P209 | \n", "39 | \n", "1 | \n", "4 | \n", "5 | \n", "6 | \n", "6 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "7 | \n", "5 | \n", "6 | \n", "Medium | \n", "
29 | \n", "P21 | \n", "33 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "4 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "5 | \n", "High | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
970 | \n", "P974 | \n", "31 | \n", "2 | \n", "3 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "2 | \n", "3 | \n", "... | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "5 | \n", "4 | \n", "Medium | \n", "
971 | \n", "P975 | \n", "38 | \n", "2 | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "2 | \n", "4 | \n", "3 | \n", "... | \n", "4 | \n", "1 | \n", "2 | \n", "4 | \n", "6 | \n", "5 | \n", "4 | \n", "2 | \n", "5 | \n", "Medium | \n", "
972 | \n", "P976 | \n", "35 | \n", "1 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "2 | \n", "... | \n", "2 | \n", "7 | \n", "6 | \n", "5 | \n", "1 | \n", "9 | \n", "3 | \n", "4 | \n", "2 | \n", "Medium | \n", "
973 | \n", "P977 | \n", "44 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "7 | \n", "8 | \n", "2 | \n", "4 | \n", "5 | \n", "3 | \n", "High | \n", "
974 | \n", "P978 | \n", "33 | \n", "1 | \n", "2 | \n", "4 | \n", "5 | \n", "4 | \n", "3 | \n", "2 | \n", "2 | \n", "... | \n", "3 | \n", "4 | \n", "2 | \n", "2 | \n", "3 | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "Low | \n", "
975 | \n", "P979 | \n", "45 | \n", "1 | \n", "3 | \n", "1 | \n", "4 | \n", "3 | \n", "2 | \n", "3 | \n", "4 | \n", "... | \n", "3 | \n", "2 | \n", "2 | \n", "4 | \n", "2 | \n", "2 | \n", "3 | \n", "4 | \n", "3 | \n", "Low | \n", "
976 | \n", "P98 | \n", "26 | \n", "2 | \n", "8 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
977 | \n", "P980 | \n", "53 | \n", "1 | \n", "3 | \n", "1 | \n", "4 | \n", "2 | \n", "3 | \n", "2 | \n", "3 | \n", "... | \n", "2 | \n", "2 | \n", "3 | \n", "4 | \n", "1 | \n", "5 | \n", "2 | \n", "6 | \n", "2 | \n", "Low | \n", "
978 | \n", "P187 | \n", "19 | \n", "1 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "9 | \n", "6 | \n", "5 | \n", "7 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "4 | \n", "High | \n", "
979 | \n", "P981 | \n", "35 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
980 | \n", "P982 | \n", "46 | \n", "1 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
981 | \n", "P983 | \n", "27 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "2 | \n", "7 | \n", "6 | \n", "7 | \n", "6 | \n", "7 | \n", "2 | \n", "3 | \n", "1 | \n", "High | \n", "
982 | \n", "P984 | \n", "26 | \n", "1 | \n", "3 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "2 | \n", "3 | \n", "... | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "5 | \n", "4 | \n", "Medium | \n", "
983 | \n", "P985 | \n", "37 | \n", "1 | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "2 | \n", "4 | \n", "3 | \n", "... | \n", "4 | \n", "1 | \n", "2 | \n", "4 | \n", "6 | \n", "5 | \n", "4 | \n", "2 | \n", "5 | \n", "Medium | \n", "
984 | \n", "P986 | \n", "28 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "7 | \n", "8 | \n", "2 | \n", "4 | \n", "5 | \n", "3 | \n", "High | \n", "
985 | \n", "P987 | \n", "19 | \n", "1 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "9 | \n", "6 | \n", "5 | \n", "7 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "4 | \n", "High | \n", "
986 | \n", "P988 | \n", "29 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
987 | \n", "P989 | \n", "39 | \n", "2 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
988 | \n", "P99 | \n", "37 | \n", "1 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "7 | \n", "... | \n", "4 | \n", "2 | \n", "3 | \n", "1 | \n", "4 | \n", "5 | \n", "6 | \n", "7 | \n", "5 | \n", "High | \n", "
989 | \n", "P188 | \n", "29 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
990 | \n", "P990 | \n", "49 | \n", "1 | \n", "6 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
991 | \n", "P991 | \n", "37 | \n", "1 | \n", "8 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
992 | \n", "P992 | \n", "26 | \n", "2 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "2 | \n", "7 | \n", "6 | \n", "7 | \n", "6 | \n", "7 | \n", "2 | \n", "3 | \n", "1 | \n", "High | \n", "
993 | \n", "P993 | \n", "37 | \n", "2 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "7 | \n", "... | \n", "4 | \n", "2 | \n", "3 | \n", "1 | \n", "4 | \n", "5 | \n", "6 | \n", "7 | \n", "5 | \n", "High | \n", "
994 | \n", "P994 | \n", "33 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "... | \n", "8 | \n", "5 | \n", "7 | \n", "6 | \n", "7 | \n", "8 | \n", "7 | \n", "6 | \n", "2 | \n", "High | \n", "
995 | \n", "P995 | \n", "44 | \n", "1 | \n", "6 | \n", "7 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "5 | \n", "3 | \n", "2 | \n", "7 | \n", "8 | \n", "2 | \n", "4 | \n", "5 | \n", "3 | \n", "High | \n", "
996 | \n", "P996 | \n", "37 | \n", "2 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "9 | \n", "6 | \n", "5 | \n", "7 | \n", "2 | \n", "4 | \n", "3 | \n", "1 | \n", "4 | \n", "High | \n", "
997 | \n", "P997 | \n", "25 | \n", "2 | \n", "4 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
998 | \n", "P998 | \n", "18 | \n", "2 | \n", "6 | \n", "8 | \n", "7 | \n", "7 | \n", "7 | \n", "6 | \n", "7 | \n", "... | \n", "3 | \n", "2 | \n", "4 | \n", "1 | \n", "4 | \n", "2 | \n", "4 | \n", "2 | \n", "3 | \n", "High | \n", "
999 | \n", "P999 | \n", "47 | \n", "1 | \n", "6 | \n", "5 | \n", "6 | \n", "5 | \n", "5 | \n", "4 | \n", "6 | \n", "... | \n", "8 | \n", "7 | \n", "9 | \n", "2 | \n", "1 | \n", "4 | \n", "6 | \n", "7 | \n", "2 | \n", "High | \n", "
1000 rows × 25 columns
\n", "