Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save sandeshregmi/679c694c57a146138056ec844a6ff38a to your computer and use it in GitHub Desktop.
Save sandeshregmi/679c694c57a146138056ec844a6ff38a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Goal"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our goal is to train and test two kinds of classifiers on the labeled questions from Rareshare forum posts. We'll do so in the following steps.\n",
"\n",
"1. Load the data and make sure it's in the right format\n",
"2. Create training and test sets from the data\n",
"3. Transform text from the questions for train and test sets\n",
"4. Fit classifiers and evaluate their performance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Rareshare data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Load the data and make sure it's in the right format"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data_RS = pd.read_csv('labeled-questions.csv', sep='\\t')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can look some of the questions to get a sense for what other information we have."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Text</th>\n",
" <th>whProb</th>\n",
" <th>Primary</th>\n",
" <th>Secondary</th>\n",
" <th>Tertiary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Hi All, How is everyone doing?</td>\n",
" <td>0.999897</td>\n",
" <td>Irrelevant</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>What kind of tape are we talking about?</td>\n",
" <td>0.999756</td>\n",
" <td>Irrelevant</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>So, ginbo43, what's the diagnosis for which th...</td>\n",
" <td>0.999668</td>\n",
" <td>Treatment</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>How do we find out what NIH is doing to solve ...</td>\n",
" <td>0.999574</td>\n",
" <td>Literature</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>HI All, so what is everyone's story?</td>\n",
" <td>0.999443</td>\n",
" <td>Irrelevant</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Text whProb Primary \\\n",
"0 Hi All, How is everyone doing? 0.999897 Irrelevant \n",
"1 What kind of tape are we talking about? 0.999756 Irrelevant \n",
"2 So, ginbo43, what's the diagnosis for which th... 0.999668 Treatment \n",
"3 How do we find out what NIH is doing to solve ... 0.999574 Literature \n",
"4 HI All, so what is everyone's story? 0.999443 Irrelevant \n",
"\n",
" Secondary Tertiary \n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_RS.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also summarize the primary labels we gave each of the questions and their counts."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Irrelevant 718\n",
"Symptom 177\n",
"Treatment 171\n",
"Disease 102\n",
"Drug 68\n",
"Diagnosis 48\n",
"Resource 36\n",
"Literature 17\n",
"Location 16\n",
"Gene 6\n",
"Clinical Trial 4\n",
"Test 4\n",
"Nutrition 3\n",
"treatment 3\n",
"Side Effect 3\n",
"Payment 3\n",
"Drugs 2\n",
"Prevention 1\n",
"Community 1\n",
"Treament 1\n",
"Network 1\n",
"Risk 1\n",
"Treatement 1\n",
"dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_RS['Primary'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It looks like some of these are mistakes in spelling or capitalization. We can come back to correct this later, but for now we'll leave those out and only use labels with more than five instances. We don't want to know how to classify irrelevant questions, so we don't include them, but it might be useful to construct a classifier to distinguish relevant versus irrelevant questions."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Index([u'Symptom', u'Treatment', u'Disease', u'Drug', u'Diagnosis',\n",
" u'Resource', u'Literature', u'Location', u'Gene'],\n",
" dtype='object')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"labels = data_RS['Primary'].value_counts().keys()[1:10]\n",
"labels"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We'll use the primary labels here, but we can come back and use multiple labels later on."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data_RS = data_RS[data_RS['Primary'].isin(labels)]\n",
"data_RS = data_RS[['Text', 'Primary']]\n",
"data_RS = data_RS.dropna() # Exclude row where questions is blank"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So, the data that we have now is in the following format. Once we've removed irrelevant questions, we only have a couple hundred questions to test. This is fairly small, so we'll want to go back to the Rareshare data we have directly from the database to see if we can get more questions."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Text</th>\n",
" <th>Primary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>So, ginbo43, what's the diagnosis for which th...</td>\n",
" <td>Treatment</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>How do we find out what NIH is doing to solve ...</td>\n",
" <td>Literature</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>If so, how long, which treatment and where/whom?</td>\n",
" <td>Treatment</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>What about stress levels in the year leading u...</td>\n",
" <td>Symptom</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>I was wondering how many people who are member...</td>\n",
" <td>Location</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Text Primary\n",
"2 So, ginbo43, what's the diagnosis for which th... Treatment\n",
"3 How do we find out what NIH is doing to solve ... Literature\n",
"7 If so, how long, which treatment and where/whom? Treatment\n",
"8 What about stress levels in the year leading u... Symptom\n",
"9 I was wondering how many people who are member... Location"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_RS.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(640, 2)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_RS.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Create training and test sets from the data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have the whole data set in the correct format, we're going to split it into training and test sets so that we can build classifiers and see how well they actually do on classifying questions. In this case we're going to use 80% of the data to train the model and test it on the other 20% that we've held out."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn.cross_validation import train_test_split\n",
"train, test = train_test_split(data_RS, test_size = 0.2, random_state=0) # Set seed for reproducibility"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here are the size of each of the resulting sets."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(512, 2)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train.shape"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(128, 2)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Transform text from the questions for train and test sets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have the data split, we want to transform it into a format that can be used to fit and test the classifier. We start by importing functions that allow us different ways of counting and weighting the words that show up in a given questions, and dealing with the fact that the feature vectors are sparse: most words don't show up in any given question."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.feature_extraction.text import TfidfVectorizer\n",
"tfidf_vectorizer = TfidfVectorizer(stop_words='english') # Exclude words like 'and', 'not', etc."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we transform the text to use in fitting the classifier."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"X_train = tfidf_vectorizer.fit_transform(train['Text'])\n",
"y_train = train['Primary']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For each training example we have a description of the questions in terms of the vocabulary across all questions."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<512x1197 sparse matrix of type '<type 'numpy.float64'>'\n",
"\twith 2192 stored elements in Compressed Sparse Row format>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For example, let's take the first question in the training set."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'Is RUS generic/whats the likelihood that it would be passed down to my future children?'"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train['Text'].iloc[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The vectorizer we used to transform these text weights terms by a combination of how often words occur within the question versus how often they occur across all questions. We can look at the non-zero weights for this question in particular."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" (0, 184)\t0.358553914449\n",
" (0, 449)\t0.376174320915\n",
" (0, 765)\t0.358553914449\n",
" (0, 616)\t0.401008888992\n",
" (0, 1170)\t0.401008888992\n",
" (0, 456)\t0.401008888992\n",
" (0, 912)\t0.344886465376\n"
]
}
],
"source": [
"print X_train[0,:]"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"If we take a look at the training data feature vectors we can see the benefit of using a sparse matrix. There are millions of potential values to remember, but we're only using a very small fraction of them. In fact, less than 1% of the values are something other than zero."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.0035766499582289054"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(X_train.nonzero()[0]) / float(X_train.shape[0] * X_train.shape[1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We do the exact same thing for the test data."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"X_test = tfidf_vectorizer.transform(test['Text'])\n",
"y_test = test['Primary']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the test data is defined by the same size vocabulary. That is, the number of columns across the train and test sets is exactly the same."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<128x1197 sparse matrix of type '<type 'numpy.float64'>'\n",
"\twith 343 stored elements in Compressed Sparse Row format>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Fit classifiers and evaluate their performance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have the data in the correct format, we want to see how well we can classify the different kinds of questions. Here we'll use two kinds of classifiers: a Multinomial Naive Bayes Classifier and a Support Vector Machine."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Multinomail Naive Bayes Classifier"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.naive_bayes import MultinomialNB"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For both models we'll want to see how well the classifiers do for each of the different categories, and what kinds of mistakes the classifiers make."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import classification_report # Different measures of how well the classifier does\n",
"from sklearn.metrics import confusion_matrix # Kinds of errors the classifier makes\n",
"from sklearn.metrics import accuracy_score # The overall accuracy of the classifier\n",
"from time import time # Function for timing code execution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, we fit a multinomial naive bayes classifier. This can be done very quickly given the amount of data we have."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"done training in 0.004543s\n"
]
}
],
"source": [
"t0 = time()\n",
"parameters = {'alpha': 0.01} #\n",
"clf = MultinomialNB(**parameters).fit(X_train, y_train)\n",
"print(\"done training in %fs\" % (time() - t0))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Second, we predict the labels for the test set."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"done testing in 0.000840s\n"
]
}
],
"source": [
"t0 = time()\n",
"pred = clf.predict(X_test)\n",
"print(\"done testing in %fs\" % (time() - t0))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Third, we can look at different evaluation measures. Note that the categories the classifier does poorly on are those which have very few examples. For example, both `Literature` and `Location` are some of the least frequent categories. Here's a quick summary of the different measures, where a measure closer to one indicates better performance.\n",
"\n",
"\\begin{equation}\n",
" Precision = \\frac{\\text{True positives}}{\\text{True positives} + \\text{False positives}}\n",
"\\end{equation}\n",
"\n",
"\\begin{equation}\n",
" Recall = \\frac{\\text{True positives}}{\\text{True positives} + \\text{False negatives}}\n",
"\\end{equation}\n",
"\n",
"\\begin{equation}\n",
" F = 2 \\cdot \\frac{Precision \\cdot Recall}{Precision + Recall}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" Diagnosis 0.40 0.36 0.38 11\n",
" Disease 0.33 0.42 0.37 19\n",
" Drug 0.11 0.20 0.14 5\n",
" Gene 0.00 0.00 0.00 1\n",
" Literature 0.00 0.00 0.00 8\n",
" Location 0.67 0.33 0.44 6\n",
" Resource 0.27 0.50 0.35 6\n",
" Symptom 0.45 0.45 0.45 33\n",
" Treatment 0.53 0.51 0.52 39\n",
"\n",
"avg / total 0.41 0.41 0.41 128\n",
"\n",
"Overall accuracy:\n",
"0.4140625\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/cahern/anaconda/lib/python2.7/site-packages/sklearn/metrics/classification.py:958: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
" 'precision', 'predicted', average, warn_for)\n"
]
}
],
"source": [
"clf_report = classification_report(y_test, pred)\n",
"print(clf_report)\n",
"print(\"Overall accuracy:\")\n",
"print(accuracy_score(y_test, pred))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"One point of comparison for how well the classifier is doing is to see how well we could do by simply just guessing the most frequent category in the training set (Note that this is also the most frequent category in the testing set as well). So, it looks like the classifier is capturing some kind of signal."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Most frequent category in training:\n",
"0.28125\n",
"Most frequent category in testing:\n",
"0.3046875\n"
]
}
],
"source": [
"print(\"Most frequent category in training:\")\n",
"print(max(y_train.value_counts()) / float(y_train.shape[0]))\n",
"print(\"Most frequent category in testing:\")\n",
"print(max(y_test.value_counts()) / float(y_test.shape[0]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can get more insight as well by looking at the kinds of mistakes that the classifier makes, and visualizing them. The kinds of mistakes might also suggest a better set of labels, or using multiple labels. For example, the scientific literature could be thought of as a resource for patients; using multiple labels might allow us to capture the fact that people tend to ask questions about symptoms and treatment in the same question."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Diagnosis 11\n",
"Disease 19\n",
"Drug 5\n",
"Gene 1\n",
"Literature 8\n",
"Location 6\n",
"Resource 6\n",
"Symptom 33\n",
"Treatment 39\n",
"dtype: int64"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_test.value_counts().sort_index()"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 4 2 0 0 0 1 0 3 1]\n",
" [ 3 5 0 0 0 0 0 7 4]\n",
" [ 0 1 1 0 0 0 0 1 2]\n",
" [ 0 0 0 0 0 0 0 0 1]\n",
" [ 1 2 0 0 0 0 3 2 0]\n",
" [ 0 0 0 0 0 3 1 2 0]\n",
" [ 0 1 0 0 0 0 2 0 3]\n",
" [ 0 4 2 0 0 0 0 18 9]\n",
" [ 3 2 4 0 0 0 1 6 23]]\n",
"[11 19 5 1 8 6 6 33 39]\n"
]
}
],
"source": [
"confusion_mtx = confusion_matrix(y_test, pred)\n",
"print(confusion_mtx)\n",
"print(confusion_mtx.sum(axis=1))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['Diagnosis', 'Disease', 'Drug', 'Gene', 'Literature', 'Location',\n",
" 'Resource', 'Symptom', 'Treatment'], dtype=object)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"label_names = np.unique(y_test)\n",
"label_names"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/cahern/anaconda/lib/python2.7/site-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" if self._edgecolors == str('face'):\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f498a1a39d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize = (10, 10))\n",
"plt.imshow(confusion_mtx, interpolation = 'nearest', cmap = 'hot');\n",
"plt.colorbar(orientation = 'vertical', shrink = 0.6);\n",
"plt.xticks(np.arange(len(np.unique(label_names))), label_names, rotation=45);\n",
"plt.yticks(np.arange(len(np.unique(label_names))), label_names);\n",
"plt.tick_params(labelsize = 14);\n",
"plt.tight_layout();\n",
"plt.ylabel('True category', fontsize = 14, fontweight = 'semibold');\n",
"plt.xlabel('Predicted category', fontsize = 14, fontweight = 'semibold');\n",
"plt.title('Label confusion matrix', fontsize = 16, fontweight = 'semibold');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also look into the ten best features for each class, and these seem to make sense."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Diagnosis: scan, testing, tests, confirm, did, doctors, disease, tested, diagnosis, diagnosed\n",
"Disease: kidney, maybe, people, common, stones, like, amn, dent, disease, scls\n",
"Drug: using, steroids, rituximab, did, does, lipitor, started, help, effects, ivig\n",
"Gene: regarding, tested, readers, mutated, sdhb, wondered, cyclic, wnk4, wnk1, gene\n",
"Literature: yes, scientists, listen, medical, abstract, literature, consist, stemline, does, premeds\n",
"Location: state, live, uk, port, thoughts, locations, support, location, tested, hospital\n",
"Resource: know, disease, hematologist, good, going, patients, idea, doctors, nih, doctor\n",
"Symptom: rash, feel, wondering, disease, episode, attacks, remission, does, did, symptoms\n",
"Treatment: medications, cellcept, treatments, surgery, help, did, effects, long, ivig, treatment\n"
]
}
],
"source": [
"feature_names = tfidf_vectorizer.get_feature_names()\n",
"for i, label in enumerate(label_names):\n",
" top10 = np.argsort(clf.coef_[i])[-10:]\n",
" print(\"%s: %s\" % (label, \", \".join(feature_names[j] for j in top10)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So, now let's see what the classifier predicts for a given question. Test out your own, and see if the results make sense to you."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"new_question = [\"What is the best treatment for Hailey-Hailey disease?\"]\n",
"new_vector = tfidf_vectorizer.transform(new_question) # Convert question to proper format\n",
"prob_values = clf.predict_proba(new_vector) # Predict probabilities of classes"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f49885b4f90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.bar(np.arange(len(np.unique(y_train))), prob_values.ravel(), align='center') # Plot result\n",
"plt.xticks(np.arange(len(np.unique(y_train)))-.3, np.unique(y_train), rotation=45)\n",
"plt.ylim(0,1)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let's try a question that has multiple potential responses. In this case it looks like `Literature` is the most probable category according to the classifier, but `Literature`, `Gene`, and `Disease` are also fairly probable. This is close to what we want if we are only using a single label for each question. We can simply return information if the probability of that category applying exceeds a given threshold."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f498a1a3850>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"new_question = [\"Has a genetic mutation been associated with Hailey-Hailey disease in the research literature?\"]\n",
"new_vector = tfidf_vectorizer.transform(new_question) # Convert question to proper format\n",
"prob_values = clf.predict_proba(new_vector) # Predict probabilities of classes\n",
"plt.bar(np.arange(len(label_names)), prob_values.ravel(), align='center') # Plot result\n",
"plt.xticks(np.arange(len(label_names))-.3, label_names, rotation=45)\n",
"plt.ylim(0,1)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"One last thing to consider is if the question is either not in English or is nonsense. In this case, the classifier just yields the prior probability over labels in the training set. Basically, the question that's been input has no information in it, so it guesses according to how often it has seen the different categories."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAEhCAYAAACwbiEIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xe8HVW5//HPk0YNAoYaQg8QapAqUg6EEiAUuQIiIiAl\nQQKICIiKJNeCyg8UBEORdpUrSrvipVngXJSOElAIGESEgCKKIgpKIM/vj2dNzmRzWnJm9t4r+b5f\nr/3KntmTvdaZPfPMmtXG3B0REcnLoFZnQERE5p+Ct4hIhhS8RUQypOAtIpIhBW8RkQwpeIuIZKjP\n4G1mV5jZS2b2q162ucDMZprZo2a2ebVZFBGRRv0peV8JjO/pQzPbC1jX3UcDxwLTKsqbiIj0oM/g\n7e4/A/7ayyb7AlenbR8AljWzlarJnoiIdKeKOu+RwPOl5VnAahV8r4iI9KCqBktrWNaYexGRGg2p\n4DteAEaVlldL6+ZhZgroIiILwN0bC8iVlLxvBj4CYGbbAn9z95d6yEAtr7POOqu2784tH+2Qh3bJ\nRzvkoV3y0Q55aJd8tEMe5ufVkz5L3mb2XWAnYISZPQ+cBQxNwfgSd7/VzPYys6eBfwJHzmfwFxGR\n+dRn8Hb3Q/qxzeRqsiMiIv2xUIyw7OjoaHUWgPbIRzvkAdojH+2QB2iPfLRDHqA98tEOeaiC9Van\nUmlCZt6stEREFhZmhtfUYCkiIk2m4C0ikiEFbxGRDCl4i4hkSMFbRCRDCt4iIhlS8BYRyZCCt4hI\nhhS8RUQypOAtIpIhBW8RkQwpeIuIZEjBW0QkQwreIiIZUvAWEcmQgreISIYUvEVEMqTgLSKSIQVv\nEZEMKXiLiGRIwVtEJEMK3iIiGVLwFhHJkIK3iEiGFLxFRDKk4C0ikiEFbxGRDCl4i4hkSMFbRCRD\nCt4iIhlS8BYRyZCCt4hIhhS8RUQypOAtIpKhPoO3mY03syfNbKaZnd7N5yPM7HYzm25mvzazI2rJ\nqYiIzGXu3vOHZoOBp4BdgReAh4BD3H1GaZspwGLufoaZjUjbr+TubzV8l/eWloiIvJOZ4e7WuL6v\nkvfWwNPu/qy7zwauBfZr2OYPwDLp/TLAXxoDt4iIVGtIH5+PBJ4vLc8CtmnY5jLgTjN7ERgOHFRd\n9kREpDt9lbz7U8/xaWC6u68KjAUuMrPhA86ZiIj0qK+S9wvAqNLyKKL0XbYd8EUAd/+tmf0OWB94\nuPHLpkyZMvd9R0cHHR0d851hEZGFWWdnJ52dnX1u11eD5RCiAXIc8CLwIO9ssDwPeNXdp5rZSsAv\ngE3d/ZWG71KDpYjIfOqpwbLXkre7v2Vmk4E7gMHA5e4+w8wmps8vAb4EXGlmjxLVMKc1Bm4REalW\nryXvShNSyVtEZL4taFdBERFpQwreIiIZUvAWEcmQgreISIYUvEVEMqTgLSKSIQVvEZEMKXiLiGRI\nwVtEJEMK3iIiGVLwFhHJkIK3iEiGFLxFRDKk4C0ikiEFbxGRDCl4i4hkSMFbRCRDCt4iIhlS8BYR\nyZCCt4hIhhS8RUQypOAtIpIhBW8RkQwpeIuIZEjBW0QkQwreIiIZUvAWEcmQgreISIYUvEVEMqTg\nLSKSIQVvEZEMKXiLiGRIwVtEJEMK3iIiGVLwFhHJUJ/B28zGm9mTZjbTzE7vYZsOM3vEzH5tZp2V\n51JEROZh7t7zh2aDgaeAXYEXgIeAQ9x9RmmbZYF7gD3cfZaZjXD3P3fzXd5bWiIi8k5mhrtb4/q+\nSt5bA0+7+7PuPhu4FtivYZsPATe4+yyA7gK3iIhUq6/gPRJ4vrQ8K60rGw0sb2Z3mdnDZnZYlRkU\nEZF3GtLH5/2p5xgKvAcYBywJ3Gdm97v7zIFmTkREutdX8H4BGFVaHkWUvsueB/7s7m8Ab5jZ3cBm\nwDuC95QpU+a+7+jooKOjY/5zLCKyEOvs7KSzs7PP7fpqsBxCNFiOA14EHuSdDZYbABcCewCLAQ8A\nB7v7Ew3fpQZLEZH51FODZa8lb3d/y8wmA3cAg4HL3X2GmU1Mn1/i7k+a2e3AY8Ac4LLGwC0iItXq\nteRdaUIqeYuIzLcF7SooIiJtSMFbRCRDCt4iIhlS8BYRyZCCt4hIhhS8RUQypOAtIpIhBW8RkQwp\neIuIZEjBW0QkQwreIiIZUvAWEcmQgreISIYUvEVEMqTgLSKSIQVvEZEMKXiLiGRIwVtEJEMK3iIi\nGVLwFhHJkIK3iEiGFLxFRDKk4C0ikiEFbxGRDCl4i4hkSMFbRCRDCt4iIhlS8BYRyZCCt4hIhhS8\nRUQypOAtIpIhBW8RkQwpeIuIZEjBW0QkQwreIiIZUvAWEclQn8HbzMab2ZNmNtPMTu9lu63M7C0z\nO6DaLIqISKNeg7eZDQYuBMYDGwKHmNmYHrb7CnA7YDXkU0RESvoqeW8NPO3uz7r7bOBaYL9utjsB\nuB54ueL8iYhIN/oK3iOB50vLs9K6ucxsJBHQp6VVXlnuRESkW30F7/4E4q8Dn3J3J6pMVG0iIlKz\nIX18/gIwqrQ8iih9l20BXGtmACOAPc1strvf3PhlU6ZMmfu+o6ODjo6O+c+xiMhCrLOzk87Ozj63\nsygw9/Ch2RDgKWAc8CLwIHCIu8/oYfsrgR+6+43dfOa9pSUiIu9kZrj7O2o0ei15u/tbZjYZuAMY\nDFzu7jPMbGL6/JJacisiIr3qteRdaUIqeYuIzLeeSt4aYSkikiEFbxGRDCl4i4hkSMFbRCRDCt4i\nIhlS8BYRyZCCt4hIhhS8RUQy1NfcJiIiCyzNedQ0i9JAQAVvEalZswJqzxeKhfEiouAtIouI1l9E\nqqQ6bxGRDCl4i4hkSMFbRCRDCt4iIhlS8BYRyZCCt4hIhhS8RUQypOAtIpIhBW8RkQwpeIuIZEjB\nW0QkQwreIiIZUvAWEcmQgreISIYUvEVEMqTgLSKSIQVvEZEMKXiLiGRIwVtEJEMK3iIiGVLwFhHJ\nkIK3iEiGFLxFRDKk4C0ikiEFbxGRDPUreJvZeDN70sxmmtnp3Xx+qJk9amaPmdk9ZrZp9VkVEZFC\nn8HbzAYDFwLjgQ2BQ8xsTMNmzwA7uvumwOeBS6vOqIiIdOlPyXtr4Gl3f9bdZwPXAvuVN3D3+9z9\n1bT4ALBatdkUEZGy/gTvkcDzpeVZaV1PjgJuHUimRESkd0P6sY3398vMbGfgo8D7uvt8ypQpc993\ndHTQ0dHR368WEVkkdHZ20tnZ2ed25t57bDazbYEp7j4+LZ8BzHH3rzRstylwIzDe3Z/u5nu8r7RE\nZOFiZsxH+W+gqdFTjGmXfCzQt5nh7ta4vj/VJg8Do81sTTMbBhwM3Nzw5asTgfvD3QVuERGpVp/V\nJu7+lplNBu4ABgOXu/sMM5uYPr8E+BywHDAtrnDMdvet68u2iMiirc9qk8oSUrWJyCKnXaor2iUf\nC/RtA6g2ERGRNqPgLSKSIQVvEZEMKXiLiGRIwVtEJEMK3iIiGVLwFhHJkIK3iEiGFLxFRDKk4C0i\nkqH+TAkrvUhzuTSFphcQkYKCdyWaEVSbd5EQkfanahMRkQwpeIuIZEjBW0QkQwreIiIZUvAWEcmQ\ngreISIYUvEVEMqTgLSKSIQVvEZEMKXiLiGRIwVtEJEOa22Qh0MzJsUATZIm0AwXvhUazAqomyBJp\nB6o2ERHJkIK3iEiGFLxFRDKk4C0ikiEFbxGRDCl4i4hkSMFbRCRDCt4iIhnSIB2RhZRG3i7csg3e\nOjBF+kMjbxdWfVabmNl4M3vSzGaa2ek9bHNB+vxRM9u8+mz2xJv0EhFpL70GbzMbDFwIjAc2BA4x\nszEN2+wFrOvuo4FjgWk15bUXnc1Psludrc4A7ZEH6OzsbHUW2iIP0C756Gx1BpLOVmeA9sjDwPVV\n8t4aeNrdn3X32cC1wH4N2+wLXA3g7g8Ay5rZSpXntFedzU2uR52tzgDtkYfWBSwzm/vaeeed51mu\n49VXHpqRj/7prGwfD0xnqzNAe+Rh4PoK3iOB50vLs9K6vrZZbeBZk5w0BpSpU6e2MGAV1V1n0brq\ntPJ2deZDFlV9Be/+Hh2NZ5OOqkWSApZIs1hvvSjMbFtgiruPT8tnAHPc/SulbS4GOt392rT8JLCT\nu7/U8F0660REFoC7v+N2s6+ugg8Do81sTeBF4GDgkIZtbgYmA9emYP+3xsDdU+IiIrJgeg3e7v6W\nmU0G7gAGA5e7+wwzm5g+v8TdbzWzvczsaeCfwJG151pEZBHXa7WJiIi0J81tIiKSoUUueFtSXm5m\n2s1Kq5Vpyvxrl9/JzN4RE1p53Lbzfmm1tstQnYoDwd3dzHYwszW8SfVGZjaoSMvMhpjZYjWnZ2Zm\n6W/d1MxWrjO9XvLR7THWbidDK/PTcGy0Oh9z0vsNzWwDiPOlVXkClml1ADezZYH10vvNzWxEK/NT\nWKTqvM1ssLu/bTGk/xvAMe5+Z5PzcBKwGbAkcLW731ZTOkXg3giYCrwNnODuf6ojvd7ykN4fCSwO\nDAWmpRG7baEhn/sCywO/AH7j7v9uYtqHAZsDPwB+7u5v15l2L3k6EfgAMfhuNWCcu7/VgnzsSwwY\nuBN4wt2vbEEeDHgvsD0wBlif2B9vNDsvjdqq9FMXM1vFzBZLgXsU8GXgQHe/M5Uw3mNmw5uQj2OA\nfYDPEgHiw3WllQL3/sBVxEm4NHC+ma1SV5rd5QHAzD4OHJbyMRE4pll56I9SPicDZwDvBn4M7NjE\ntA8luty+CnydmEfoXXWn38jMdgcmAOOAGWn1nNLntZWCy1WaqXS7P3A28CAwwcyOryvtnqTf5xFg\nS+AA4KoicLf67nGhD95mNowIHGulA+MVolS1jZldBJwPfAvYrYa0Gw/0JYEjiP7ybwNHmNkwM1u1\nhrSHEH3yP+HuJwOfAH4PfNXMVqg6vV7ysQSwkbvvAmwE/A641MyWbIPb4UGl9ysBOwMdwN+AXwN3\nNiOPZvZeYlK3o9x9KjCF+O32SbfsdabdGAP+BFwBnA7sBOzm7nPS3WptVSgNVZrbEl2O/+bu1wM/\nBC4Bdjazk+tIv5v8zN0vKVh/DTiXiCMHpvVzzGzJZuSnOwt98Hb3N4GLgH8AlwL/Iq7kmwC3u/tu\nxMRaO0J1JYuGesy10+pVgbuAbdx9z1R1cBRwZAq2A02zKLUslW5z3wWMTR8/DTxE1N1NrSsodBMM\nhgArmtkNxERnH0h5O4QIDi3RUL/7IeBNooT1X8TFdY9UbTEp3a1Vmnbp/RBgFeLCPilV7f0AuBiY\nBOxRVwmvYR8ckOq4hwFfIqoGdnP3N83sCGCymS1XRz4KRVsU8RuMAQ4ysw53/xcxm9SVwC5mtkbd\ndwCl/XJYqs5azN3/E/gjsIOZ7Z7ulg61mH21+dx9oXwR860MKi2vRRwU5wHDSuu3AX5FlDAqS7v0\n/iTgMuLkXAq4D7icGPR0DPAEsEGFaW9IVMusQtTV3U5UEUHU212R9sO2dezz0vv3ACuk9wcRI3R3\nSsuHp797jTY4Tg4ggvYGwFeAe4kpjiEuML8C1qwwvcZjclR6vwdxF3hqsQ2wJ7B6E/bBycA9wJjS\n7/NHovT7ReBRYOMm5GMM8DPgfWn5FOA2YMe0PAwYUXMeysfwAcAzaR/cBkxM6ycTF5LfE3eVrTl2\nW5VwEw6EojF2L+CU0sHxzRRMl0gnz4+AfRt/uIrycBhwP7BSWh4ELAf8D/Ad4CdV/PgNB9zWRD33\nGSmA7g38Nl0wXiBK4tOAg+vY3+n98UR96T3A0SkwHg48l/b9L1t10DcEz82Bp4Aj0/IGxLTH/wVc\nB0yvKmgRhYnyPvoE8ABxN/StdGzuR8yf/7mqj8Ve9sG6KWC+u/w7AgcCp6XAtX5N+bCG5R3S7/Gt\n0rqTU/46mnycfJioKlk/Lb+PGGl+TFoeXpzXrXq1LOEm/QD7pRNwn9K6dYgGoauIW/pVigOpqhOm\ndAKcm07S0cCniEawi0rpLV3h37oxsGR6vxVRVfQpYCVgFFGXuy6wHVGaXKemfb4/8F1gMaJxdloK\n5sPTvl8XGNnqYyPldSmiymw6sHZat0oK6ruTSsUVpbV06f12xEV9ONH75ltEqXtY2n//rwimNfzN\n5cC9BXE39jCwVFo3NP07vOZ9P/d8A1YAViztm/8GPlfa9lRg65rzU9ztFHk6G/gLsGexX1IAv4/o\ntdX647fVGajxx1giBZGN0km6M/AFYv7xDdMJs1Fp+wEF7oaTojgBtk+B4ccpgG2VDszVKvj7ygf/\niulvuwZYIq3bNh1oFwDrpXVjiVL/ZhXu53JpciXgJuCh0roJRGPT6e0QtNN+251oAxicTsqziZL2\nWjWluVb63YvjYixwA7B8Wh5CNKIfngJ4rYEzpbkXUUW0HHE3enSRLtGofjnRtbOWO4DSsbt/ysfD\nwDkpeO+QjuUv9nSsVZyX8rm7MbB4en9SOn/XSstDiWrW2quy+pXvVmegyoOhIZAMSyfkNcTMh+em\nYFaUfJeo6cc/nKhzfn9aXpZo7CgO1OlUUKoqHfx7pr9vK+KW+1K6SlFTUzAtDr6lqbDOkO4vWFsR\nF6svlj57P1GyXK5Vx0Y3624kGq4HERf6zxO3xZWVtht+p+WAXYiqrKWB7xMFinelzz8NfLhJ++MI\nospm+7R8WDo/fpLy8RSp/rvO34O4C3uQKEytTLRH/SdRGNmJuMCtW1fQ7iZfk4kOBecA30zriq6K\n6zb7uO0zv63OQA0HxLZE4882RCPhMaRbLuKqektdQYQoXd9LPPPzNeAzRGl0GPAR4EkqqEOl6xZv\nk3TCbZaWNyJK2rcQVRb3AtuV/0/V+zu9n0Tc6p9GVI1sS9Tpf760TWVVRAPI89jy/ifuzH6VAvjS\nwJlUcFdU+v7hpfcjgI8TXRBXI+5IfgB8NQWsp6iw4bqPfG0C/Bs4pzg20u82keiyWFcd92Kl90sR\nVVR30VXfviJRwCrqlZt2sQd2Bf4vxYxrgO+WPjsXuJtUQGmXV8szUPEPMD6dHOcRt6EXlj57fzpR\n96sh3UFECeGHxOCbj6WD8KdEt6vViIbEAV29S0F7SPr380SvgG2K9UT94TnEXcc+aX3VDbGDS++P\nBH5OjDx7FTiRuL3cmrgjOLOFx8NSpX22btonZ5SDE1H3/FT6DSvbT0Sd/ySi4e8goifLMKL+9iGi\n+m5jonBxdl0BsyFPE4DJ6f2mRPfZE5v0WwwmumAemo6Ni9IF42JiNOeItN0xzcgTXYW94t89gOOI\ni9eP6Lpb3jL9u0Kzj98+/4ZWZ6CqH4Kon/tfunqODCZ6NXwlLV8M7FXavrI67tK6ZYhb4860vD3R\nf/hoBnjVJvpnf4EY1n8hUWpZmWgRv5iG3ht0VZ1U1hBb+puOKh3U5xIlucOJ6pJhaf3iRBVBS+q5\niZL0nkSJ6mSiamA7oqvkKXR1izsqBdM1asjDusBLxHNdi3rUQcQdyn2ku4Aqf5+G9Bt7c+xH3Kkd\nnZY3S/k7rUm/yYrEIK2XgQ3TumOIOvcL0m/xLNHHvM58lKv7it9ldMrb9NJnk4hS+JLN2D/z+8p2\nkE65k77Hnn6TKIW+mta9TQTNd6fNTvJ4cISV/s8Cp+1dnfj3NbOjzWxz4A1iKPGbadNlidLnHT6A\nuTzS4IkbidGhTxMB+RdE6e3rxKi4Y81sk+L/uPs/078+kL+1IR/jiQvHW8SFCqKv6/lE16rdPQZ1\nfIao8/+lu79QRdoL4A3iFvjLwAnAg+5+L3Gh2xA42symESXBfdz991UkWhooZSkPvwD+SnoClbvP\ncfevEg3H3zSzxeEdz4CtRPG7p+kfhngM/jkX2N/MJrr7o0RX0klmtlwdA18avvM14HHiPN0j5fEy\nov7/KeJicoy7/7TOQTilc/cY4DtpEM7rxF3yDDObZGaTiAvLl9399bryMiCtvnoM4OpZbvRYJr3/\nGBHclkvL44nS4HBKt/oV5qHog/pZokpmAtEt7xKiLm/AA3CIeuzppDuK0vrPEv22VyOC+NlEt7xa\n6paJroa/pWFwD1FPfBNRyl2SqCaYTo0NXn3ks1yqGkmMzPs2UeosjpMxRDA9nwoHnzSk/e7imCPu\nTH5BFCAgRvOuDSzbhP2xJtEt9jN0VbftQ9wNfDItL1Zj+sV5ugZRmFkq/S53A1PTZ6Mp3flQ8d1i\nD7/PbkR13xHEAJwTiTuzjnS8nFvlsVHLvm11BhbkYGDeeqpZxK3Nl4g63yKQnktc5SfUlI81gGvS\n+48R9WRG1PeOJCb2WbuCdLYnHvpcLC9Zev814Nvp/ebA6Br3+8dLwafcF/b3xAXzLGI0513AJi06\nNson56pEFcWwdEGZBnwkfTaamvpRp+8/lWj/eBD4j7TuvUTp8rq0vpbuZjRU5xHVh+OJ6rbT6eoV\ndE3Ky7tq3A/FcTKBGKX5CNFAW8xz8wjRsP1LUrtN3XlJ77cg2iGKHmHbERe4U4CVm33cLuhrwPNp\nNJsXv4TZNkR/0IOIqop9iSqEU4jeFssC17n7/RVVlcydByJ5GfiTmd1EdDXby93dzD4I3O3uP13Q\ntMrc/edmtreZPQNs5e5/MbMlPCbLuZ8oUeLuj1SRXi/WIVVJAaSJikYB/0EEgllEaXaQu/+l5rx0\ny7tuhycTDdSPAE+6+7fSBFlbm9k+RMm78onIUtrHEcfCzunYuMzMhrv7VWmfHQp81t2fqyHtcnXe\n0cQFbChpSgiiQHGemT1GnB/Hu/urPX3fQKXzYTPiwn8g0cPlQKLQdQFxBzAZuMLdH6grH2m/FHHj\nOOJucQawjpnd6e73mtlbxKC2t8zsm95GUxb3qNVXjwW8cg4jGhceLa17DzGU9wpKpRoqbpwkugPu\nSwTsTxO3f1ukzw4jSvtr1PD370lUWyxfWrc/0dgzjIq7AnaT/jiiCqr4W4fS1SL/GZrUR7kfx8bh\nxLD81YHvAY+RerwQvRxOo8Kh+Y37nbiArU6MrL0uHSuvAR9r4v44nKi62o3o8XQBUb24GVFVdAvN\nmatkeeLC8RxdIyhXJ9qBjm38DQd6nvYjPzsQg6VWTcvnE3eKxWCpLYrPcni1PAPzseOLW7Bix48C\n/gB8obTNlkT1SS237UQJ4sHi5CdKcOcTdb7fJbop1nZSpAD+THq/PnEbPr5J+38pYtDPOZSGKgMf\nSsFywFVEAzku0vsNiJLdu4kS3R3EkOb7SfWrFaddvqhPIEq6g4leFXeQ+oynYHUPNY2cLJ0bg4mq\nwyuAD5Y+vwr4Tmm5lt4TzFulWfy7GXA9UY1ZzPFzEtGQPIQaCx1Ej6OimqgY5Xo/XROkDSaqHh+h\nCe0PVb+yqDYpbntSVck3zOxmd/+CmW0NPJA+PtPdHzaz37j73ytKdyvgDXf/dZrveW+imuDvaU7f\nxYmW8r8RJ+4Md59VRdrdcffbzOx4M3uDmO3sZHe/vXxbWGPa/zSzS4gW+HPM7JdEb4oPEHWHz9SZ\nfncabocnEqXLc4ggsgtRx/2SmT0PjDWzFb3CJwl5VxXFcUSPlr09HvjxV6LL28Fm9jpR3TTZ3V+r\nKu1CQ3Xecu7+ZzObCaxhZsukc+FY4CYzW97dX/Gaek+Ufot9gN3M7FV3P9PMphADgK41s6uIXmCn\neo1P57GYZ3tHYJDF06ReIwZDfZyY0vVld3/CzD5J3LG/iziP89Hqq8d8XEX3IhrEphFd44rGs5HA\n34kuPVWmtxjwQaI/ddF75QZiTpTriLkf7iYNemjyvhhHV2NL7bebDWkvQTSiTiEC+XptcGyMI2YC\nLKZXLUbu7UL0JvgfahpkQQy0eZA0bSzRSDqIriHnj1DT3Rjz3nWcSIxzGERU1dxMVKutQRQ47qO+\nnkjlEvdqRC+rw4g70rvT+vWIEaW30DV4bEjNx8XeRC+fZ4BN07ox6Rw+s1iX66vlGejngbFsOhmL\nQTY7ELc/n07LqwO71pT+eilIr5dO1KNI3f+IEs23iTrnpgXQUt4qHRWYy4t5qwmGE884/CUxr0rR\nPW9yutjeC2xeQ9rlrqrfLf0exSClYsTgMk3YH5PS+TC6tG5fYvrdHxDDvmsLVKV9UczGeHzpsx8A\n/5feb0JUa55LTfNyM29V1nLpIvZtoiBWzC+/DtEe8klq7CZZ++/e6gz0djA0rLuI6FlSNJIdRJS4\nD+3uhxtA2usRXYd2oavEfWo6CDcv8peC+OOkkWJ6Ne3YKJ+cyxb/EtVXUymVsImBREvVlHYxodRi\nxIx4ny19dhQxmKmWkiXzlriHpIC4JdFofxLRVfYAYj6VlUiNhXX+HkSB6jmibv9npHrl9NmPgQfS\n+91Ik0/VfGysTRSqhhBtRdNIjaREe9k40nTQub7a7unx5W59ZrYi8Lq7/8PiidbrA19395lmtjHR\nNXADoi/39ArSnkAcWM8RjR3rEd2ZfkOUbsYRAWJGSvtr7v74QNOV+WfxMNrdiIFK9xENhFen95e6\n+0s1pj2RCI7PEdUiNwC3En2ZZxG360e6+2M1pN3YZRUzO5aoc/89UVVhRFXJEXXuh1L6uxINtpcT\nXWiPT3m43d1/nrbZyt0fSu+X9BpHLaauogcTMye+5O7nWDyMezeiSm1TYkbFP9aVh6Zo9dWjlyv5\n3kRd4tdJs9MRt1vXEB37nyRuWb9IemzSANPdk/ixdyqtm0KcoJuk5RPpqkJpqxnGFqUX0RXuLqJ0\ndT1dg6VGEaW+M6ipFwPRQPsoMWvlrkQ7zFlEKf8UorqmltkBmbfEfQLRDe9SooS9Fl3z2exMVJXU\nNhCplI/BRFfROcDYtG5TohB0Hl09O4waRjl3k5/D0jGwcooVjwHnpc82JAphLRn9W/nf2uoMlHb6\n4qX3OxHd7jZMJ+JfgItLB8aHUgDdheguN6BJ9Im6sTl0NaSU8zKV6F89nOi3OpGK53zWq8/fZ3DD\n8lHEHdckYmTr0BRElksnbW2/D9GP+8T03oj2llsGegzOZx6OIyaYWjtdSL5R+uwU4m6gsgdu9JKP\ndYGr0vtp6TxZOi2PJapzap0tkVIbBNH76wCiq+bx6djYnKjK+Uad+WjFqy0mpkpPpf6ymRWTHS1G\nnCSjiBb/oVDCAAAGu0lEQVTzHYAtzOwqd3/M3f+bqMu6iHga+e8Gkr67/5WoHvmSmY1w93+lCYNw\n97OA54leFa8Qz9d7fiDpSf+Z2QiiPhczO9LM1iRO0nuJ6X139xgNdxQx18zLVf0+Fk92n/tvMgj4\neOp26B4jJV8jLuy1MLNhDatWJqoF3k9U03zCzBZP+ZxB9PF+tIZ8FJNuFXFjEOBmtpS7H0fcDT2Y\nuihOB85296eqzkcpP4M8RW6ifnu2u99IjOTcCfiox8jj3wGrmNnKdeWlFdqln/cg4hZreTNb391/\nlIYzn0ZUmTxhZp3ABDMb6+7T07od3f3lKjLg7reY2Rzi4NvC3f9qZsPc/U2iYXR22u7tKtKTvqW+\nunOIYLk4Udq+xd0vMrOxxPGyPFGVcQIRtCr5fdJF42Eze4+7v2JmQ919trtfY2ZjgJ+mWek2IHov\nVHIcdpOP3YgZIx8BHveYGXAVorrmaWB/d5+d6uHfdPdLa8rHqsRF8xmigfgVd/9NumB8Ezjc3Y82\ns6uBR81sXWKmvtp4Vz/7k4ieRsPM7Hp3/376/bYzs+HEoK2PVBUr2kYri/101W8X/36SmAWueLjA\nxcSt8X7Ereno8vY15WlP4gAthsweTtSF19Zir1e3v8MYYFJ6fxgxHe5ZaXkIcWt8KdGH+3+p4Wn0\nRHe7p+jqdVR+EswpxMjFG6hvRG/RDjOZqEO+Ou2X0cTd4KlpuyOIvtW19LknLlBPEI2gG6f9fTrR\n538FouA1prR9M4beF9UlRxNdRVcmJgP7flr/AaIH0p1U2FW0nV6tS/idDxcYSdRdTk4HxwbEYJAr\niVvkDzT+cDXmbU+iu1XxRJyWzJK3KL9SkFghHQf7EPOS3E5UjRT1qsUJXOeUpsWcMvMEcKIudUvq\n6w5YtMMUDxdZjWioPyAtb0p0UbyaqNOt/OKV0lmLaH8qHuCwTPptbiBmlbwl/S7l4fjzPIm96vyU\n3i9JtH+tmY6L24gq12GlY6SyZ9W226slXQUtHi5wPTEHw9tEID+AKOlMJ3p17EAMwnmiGOZb7kbY\nhDxOILpdjXV1B2yahiHvyxMlzleJx4itQcwl8z2i//L2xDHz7zqPCTPbk2hf2dKjCuUEYpj1Ll7R\nQxx6SHdvYgrV96bj/zbignYTMcbgUeJBD7h7LUO7zeyjxDlwYqrrHktcSFYg5sMeR9ydGhHAa5sm\nIZ2TXyMuHkcTbWLF49Xud/eD0nYfI46PL3gOswMuqGZfLej94QIvEq33g4jbstuI+rXaruR95LUt\nH3+0sL7oeljA0NK69xIBbCoRMDYm7tZupIm3w3TdjX2C6KY6tknp7gXMJO5ObyWqA44lutFeRk2T\nXZXS34ko2Y8nClvXEheOK1L6xfNbzyMuMnXlYw/Sw02Ii8eP6BpNexfRLXAJojfY4ywk3QF7ezW9\n5G1m2xPzHQxKy3M77JvZecQV8zDiRF3C3Z9tagalJYoGQqBoICwai4u52w8kenVc7e7PWtec5s3M\n4wRiuPXmXkNvjl7S3Y0YhLSKp0E3ZjaYaJeptREuNRofSzxoeiZx5/M4EUA/SVSnvGlm1wIz3f3M\nGvKwOzHE/R6iHew4Ij5MdPfHzWwpon77ZaIx92R3f6LqfLSbVlWbFLeh8zxcwMwOJkrkhzZsX/us\nedJ6ZrYvMSvgtp56+xDdv4pJ/Y8hRhFe4O7/blEeax0d2Eu6exKD1Hb2Joya7Cb95T26yhbLHcQA\nuUOIieKuA85w919XnO6uRB/yKUSj5FCihL0m0bnhJ566hqZqnSU8Pb91YdeSroKepjYluuVtVToo\n/g28mk7atzx1BVLgXjS4+81mNpvoordlCuCLEcfFUGK03E2tCtwpjy15GG06Z4YBt6eurHP6/E/V\npv8KgJkNJSafOpsI1s+l9Qd4PfXLrxLD/O8xsw2JCaZeJ+byfx/Rz7zT3Z9N+2SRCNzQopL33MRT\nCdzd1zaz9Ylb0pPc/faWZUparpsGwslEA2GH1zhfeg7MbGl3/0eL0h5KTAswFTg/XWyb0onAzAZ7\nzJW+PtHD5HWi58s6RBfB73mN84O3o5ZPTJVO1BuJvtWnuvutqiaRdFx8legqeizRk2HAk4/JwKQA\nPsLd/9DM3l8NeVif6GEymOhOeam7/6GZeWgHLQ/eAGY2jpj3+KZWHRDSflrVQCj908pClsXTcfYl\nAndLHnjdam0RvAupwcEVuKXQqgZCaX/lHkmLorYK3iIi0j9tMaugiIjMHwVvEZEMKXiLiGRIwVtE\nJEMK3iIiGVLwFhHJkIK3iEiGFLxFRDL0/wFq2xjEU39EXAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4984843e90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"new_question = [\"asdf asdf asdf j 2erjwn\"]\n",
"new_vector = tfidf_vectorizer.transform(new_question) # Convert question to proper format\n",
"prob_values = clf.predict_proba(new_vector) # Predict probabilities of classes\n",
"plt.bar(np.arange(len(label_names)), prob_values.ravel(), align='center') # Plot result\n",
"plt.xticks(np.arange(len(label_names))-.3, label_names, rotation=45)\n",
"plt.ylim(0,1)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can test for this two ways. First, we can simply count up the number of non-zero elements in the vectorized question. Second, we can calculate the amount of information gained from the question."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(new_vector.nonzero()[0])"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from scipy.stats import entropy"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.07226562, 0.16015625, 0.12304688, 0.00976563, 0.01757812,\n",
" 0.01953125, 0.05859375, 0.28125 , 0.2578125 ])"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"prob_values[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When the question entered is random typing, there should be zero information carried by the question. This is exactly what we find, which is a good thing. One way of deciding whether or not to present a given kind of information might be to set a threshold for determining how much of a shift is required."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"4.3368086899420177e-17"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_counts = np.array(y_train.value_counts().sort_index().tolist())\n",
"prior_prob = train_counts / float(train_counts.sum())\n",
"entropy(prob_values[0], prior_prob)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Support Vector Machine"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can do the same thing for a support vector machine."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.linear_model import SGDClassifier # A class of models trained using Stochastic Gradient Descent"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"done training in 0.031745s\n",
"done testing in 0.000454s\n",
" precision recall f1-score support\n",
"\n",
" Diagnosis 0.36 0.36 0.36 11\n",
" Disease 0.29 0.26 0.28 19\n",
" Drug 0.14 0.20 0.17 5\n",
" Gene 0.00 0.00 0.00 1\n",
" Literature 0.00 0.00 0.00 8\n",
" Location 0.75 0.50 0.60 6\n",
" Resource 0.29 0.33 0.31 6\n",
" Symptom 0.46 0.55 0.50 33\n",
" Treatment 0.53 0.59 0.56 39\n",
"\n",
"avg / total 0.41 0.44 0.42 128\n",
"\n",
"Overall accuracy:\n",
"0.4375\n"
]
}
],
"source": [
"t0 = time()\n",
"parameters = {\n",
" 'loss': 'log', # This makes it a linear SVM, can change to 'log' for logistic regression\n",
" 'penalty': 'l2',\n",
" 'n_iter': 50,\n",
" 'alpha': 0.00001,\n",
" 'fit_intercept': True,\n",
"}\n",
"clf = SGDClassifier(**parameters).fit(X_train, y_train)\n",
"print(\"done training in %fs\" % (time() - t0))\n",
"t0 = time()\n",
"pred = clf.predict(X_test)\n",
"print(\"done testing in %fs\" % (time() - t0))\n",
"print(classification_report(y_test, pred))\n",
"print(\"Overall accuracy:\")\n",
"print(accuracy_score(y_test, pred))"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f498842e6d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize = (10, 10))\n",
"plt.imshow(confusion_mtx, interpolation = 'nearest', cmap = 'hot');\n",
"plt.colorbar(orientation = 'vertical', shrink = 0.6);\n",
"plt.xticks(np.arange(len(np.unique(label_names))), label_names, rotation=45);\n",
"plt.yticks(np.arange(len(np.unique(label_names))), label_names);\n",
"plt.tick_params(labelsize = 14);\n",
"plt.tight_layout();\n",
"plt.ylabel('True category', fontsize = 14, fontweight = 'semibold');\n",
"plt.xlabel('Predicted category', fontsize = 14, fontweight = 'semibold');\n",
"plt.title('Label confusion matrix', fontsize = 16, fontweight = 'semibold');"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Diagnosis: confirm, sour, whatsoever, proof, scan, syrinx, attention, testing, diagnosis, diagnosed\n",
"Disease: lgl, women, ill, ra, desease, 30, peter, stones, guess, children\n",
"Drug: maxalon, narcotic, octagam, john, life, rituximab, singulair, lipitor, steroids, thalidomide\n",
"Gene: regarding, variability, mutated, readers, sdhb, gene, wondered, cyclic, wnk4, wnk1\n",
"Literature: medical, say, http, abstract, stemline, literature, consist, listen, scientists, premeds\n",
"Location: live, state, members, uk, port, locations, support, tested, location, hospital\n",
"Resource: cleveland, june, idea, misreading, referral, new, hematologist, educate, nih, doctor\n",
"Symptom: attacks, remission, rash, episode, guys, unpleasant, itching, feeling, symptoms, telling\n",
"Treatment: chemo, pills, treatments, difference, controlled, used, chemotherapy, surgery, treatment, everyday\n"
]
}
],
"source": [
"feature_names = tfidf_vectorizer.get_feature_names()\n",
"for i, label in enumerate(label_names):\n",
" top10 = np.argsort(clf.coef_[i])[-10:]\n",
" print(\"%s: %s\" % (label, \", \".join(feature_names[j] for j in top10)))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nIiIZ+v9IjhUqxJ0kMQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4989751fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"new_question = [\"What is the best treatment for Hailey-Hailey disease?\"]\n",
"new_vector = tfidf_vectorizer.transform(new_question)\n",
"prob_values = clf.predict_proba(new_vector)\n",
"plt.bar(np.arange(len(label_names)), prob_values.ravel(), align='center')\n",
"plt.xticks(np.arange(len(label_names))-.3, label_names, rotation=45)\n",
"plt.ylim(0,1)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f49884351d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"new_question = [\"Has a genetic mutation been associated with Hailey-Hailey disease in the research literature?\"]\n",
"new_vector = tfidf_vectorizer.transform(new_question) # Convert question to proper format\n",
"prob_values = clf.predict_proba(new_vector) # Predict probabilities of classes\n",
"plt.bar(np.arange(len(label_names)), prob_values.ravel(), align='center') # Plot result\n",
"plt.xticks(np.arange(len(label_names))-.3, label_names, rotation=45)\n",
"plt.ylim(0,1)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment