nlp-lab/Jonas_Solutions/Task_02_JonasWeinz.ipynb
2018-05-13 14:22:07 +02:00

1523 lines
187 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# NLP-LAB Exercise 02 by Jonas Weinz (2571421)\n",
"## links:\n",
"\n",
"* Article: https://miguelmalvarez.com/2017/03/23/how-can-machine-learning-and-ai-help-solving-the-fake-news-problem/\n",
" * corresponding code: https://github.com/kjam/random_hackery/blob/master/Attempting%20to%20detect%20fake%20news.ipynb\n",
"\n",
"* Tutorial on Datacamp: https://www.datacamp.com/community/tutorials/scikit-learn-fake-news\n",
"\n",
"* liar dataset paper: https://www.cs.ucsb.edu/~william/papers/acl2017.pdf\n",
" * dataset: https://www.cs.ucsb.edu/~william/data/liar_dataset.zip"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dependencies for this Notebook:\n",
"* library [rdflib](https://github.com/RDFLib/rdflib)\n",
" * install: `pip3 install rdflib`\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import itertools\n",
"import sklearn.utils as sku\n",
"from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer, HashingVectorizer\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.linear_model import PassiveAggressiveClassifier\n",
"from sklearn.naive_bayes import MultinomialNB\n",
"from sklearn import metrics\n",
"import matplotlib.pyplot as plt\n",
"from pprint import pprint as pp\n",
"from IPython.display import display, Markdown, Latex\n",
"import collections\n",
"import traceback\n",
"import os"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tools used later"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def plot_confusion_matrix(cm, classes,\n",
" title,\n",
" normalize=False,\n",
" cmap=plt.cm.Blues):\n",
" fig_1, ax_1 = plt.subplots()\n",
" \"\"\"\n",
" See full source and example: \n",
" http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html\n",
" \n",
" This function prints and plots the confusion matrix.\n",
" Normalization can be applied by setting `normalize=True`.\n",
" \"\"\"\n",
" plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
" plt.title('Confusion Matrix for:\\n' + title)\n",
" plt.colorbar()\n",
" tick_marks = np.arange(len(classes))\n",
" plt.xticks(tick_marks, classes, rotation=45)\n",
" plt.yticks(tick_marks, classes)\n",
"\n",
" if normalize:\n",
" cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
" print(\"Normalized confusion matrix\")\n",
" else:\n",
" print('Confusion matrix, without normalization')\n",
"\n",
" thresh = cm.max() / 2.\n",
" for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
" plt.text(j, i, cm[i, j],\n",
" horizontalalignment=\"center\",\n",
" color=\"white\" if cm[i, j] > thresh else \"black\")\n",
"\n",
" plt.tight_layout()\n",
" plt.ylabel('True label')\n",
" plt.xlabel('Predicted label')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def test_classifier(labels, title, Xt, yt, clf):\n",
" pred = clf.predict(Xt)\n",
" score = metrics.accuracy_score(yt, pred)\n",
" pp(\"score: \" + str(score))\n",
" cm = metrics.confusion_matrix(yt, pred, labels=labels)\n",
" plot_confusion_matrix(cm, classes=labels, title=title)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generate/Download Datasets we are working on\n",
"\n",
"* running bash script to download all needed data and store it into the `data` subfolder"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"================================================================================\n",
"checking whether unzip is installed\n",
"================================================================================\n",
"UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.\n",
"\n",
"Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip/ ;\n",
"see ftp://ftp.info-zip.org/pub/infozip/UnZip.html for other sites.\n",
"\n",
"Compiled with gcc 6.3.0 20170415 for Unix (Linux ELF).\n",
"\n",
"UnZip special compilation options:\n",
" ACORN_FTYPE_NFS\n",
" COPYRIGHT_CLEAN (PKZIP 0.9x unreducing method not supported)\n",
" SET_DIR_ATTRIB\n",
" SYMLINKS (symbolic links supported, if RTL and file system permit)\n",
" TIMESTAMP\n",
" UNIXBACKUP\n",
" USE_EF_UT_TIME\n",
" USE_UNSHRINK (PKZIP/Zip 1.x unshrinking method supported)\n",
" USE_DEFLATE64 (PKZIP 4.x Deflate64(tm) supported)\n",
" UNICODE_SUPPORT [wide-chars, char coding: UTF-8] (handle UTF-8 paths)\n",
" LARGE_FILE_SUPPORT (large files over 2 GiB supported)\n",
" ZIP64_SUPPORT (archives using Zip64 for large files supported)\n",
" USE_BZIP2 (PKZIP 4.6+, using bzip2 lib version 1.0.6, 6-Sept-2010)\n",
" VMS_TEXT_CONV\n",
" WILD_STOP_AT_DIR\n",
" [decryption, version 2.11 of 05 Jan 2007]\n",
"\n",
"UnZip and ZipInfo environment options:\n",
" UNZIP: [none]\n",
" UNZIPOPT: [none]\n",
" ZIPINFO: [none]\n",
" ZIPINFOOPT: [none]\n",
"================================================================================\n",
"successfully finished action: checking whether unzip is installed\n",
"================================================================================\n",
"================================================================================\n",
"downloading and unpacking https://www.cs.ucsb.edu/~william/data/liar_dataset.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"successfully finished action: downloading and unpacking https://www.cs.ucsb.edu/~william/data/liar_dataset.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"downloading and unpacking https://raw.githubusercontent.com/GeorgeMcIntire/fake_real_news_dataset/master/fake_or_real_news.csv.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"successfully finished action: downloading and unpacking https://raw.githubusercontent.com/GeorgeMcIntire/fake_real_news_dataset/master/fake_or_real_news.csv.zip if not already existing\n",
"================================================================================\n",
"================================================================================\n",
"downloading Helper script: script_dataset3.py\n",
"================================================================================\n",
"================================================================================\n",
"successfully finished action: downloading Helper script: script_dataset3.py\n",
"================================================================================\n"
]
}
],
"source": [
"%%bash\n",
"./Task_2_gen_data.sh"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 1"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"df_1 = pd.read_csv('data/fake_or_real_news.csv').set_index('Unnamed: 0')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* display first 10 entries"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(6335, 3)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>title</th>\n",
" <th>text</th>\n",
" <th>label</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Unnamed: 0</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8476</th>\n",
" <td>You Can Smell Hillarys Fear</td>\n",
" <td>Daniel Greenfield, a Shillman Journalism Fello...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10294</th>\n",
" <td>Watch The Exact Moment Paul Ryan Committed Pol...</td>\n",
" <td>Google Pinterest Digg Linkedin Reddit Stumbleu...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3608</th>\n",
" <td>Kerry to go to Paris in gesture of sympathy</td>\n",
" <td>U.S. Secretary of State John F. Kerry said Mon...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10142</th>\n",
" <td>Bernie supporters on Twitter erupt in anger ag...</td>\n",
" <td>— Kaydee King (@KaydeeKing) November 9, 2016 T...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>875</th>\n",
" <td>The Battle of New York: Why This Primary Matters</td>\n",
" <td>It's primary day in New York and front-runners...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6903</th>\n",
" <td>Tehran, USA</td>\n",
" <td>\\nIm not an immigrant, but my grandparents ...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7341</th>\n",
" <td>Girl Horrified At What She Watches Boyfriend D...</td>\n",
" <td>Share This Baylee Luciani (left), Screenshot o...</td>\n",
" <td>FAKE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>Britains Schindler Dies at 106</td>\n",
" <td>A Czech stockbroker who saved more than 650 Je...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4869</th>\n",
" <td>Fact check: Trump and Clinton at the 'commande...</td>\n",
" <td>Hillary Clinton and Donald Trump made some ina...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2909</th>\n",
" <td>Iran reportedly makes new push for uranium con...</td>\n",
" <td>Iranian negotiators reportedly have made a las...</td>\n",
" <td>REAL</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" title \\\n",
"Unnamed: 0 \n",
"8476 You Can Smell Hillarys Fear \n",
"10294 Watch The Exact Moment Paul Ryan Committed Pol... \n",
"3608 Kerry to go to Paris in gesture of sympathy \n",
"10142 Bernie supporters on Twitter erupt in anger ag... \n",
"875 The Battle of New York: Why This Primary Matters \n",
"6903 Tehran, USA \n",
"7341 Girl Horrified At What She Watches Boyfriend D... \n",
"95 Britains Schindler Dies at 106 \n",
"4869 Fact check: Trump and Clinton at the 'commande... \n",
"2909 Iran reportedly makes new push for uranium con... \n",
"\n",
" text label \n",
"Unnamed: 0 \n",
"8476 Daniel Greenfield, a Shillman Journalism Fello... FAKE \n",
"10294 Google Pinterest Digg Linkedin Reddit Stumbleu... FAKE \n",
"3608 U.S. Secretary of State John F. Kerry said Mon... REAL \n",
"10142 — Kaydee King (@KaydeeKing) November 9, 2016 T... FAKE \n",
"875 It's primary day in New York and front-runners... REAL \n",
"6903 \\nIm not an immigrant, but my grandparents ... FAKE \n",
"7341 Share This Baylee Luciani (left), Screenshot o... FAKE \n",
"95 A Czech stockbroker who saved more than 650 Je... REAL \n",
"4869 Hillary Clinton and Donald Trump made some ina... REAL \n",
"2909 Iranian negotiators reportedly have made a las... REAL "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(df_1.shape)\n",
"display(df_1[:10])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* create test dataset"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"X1, Xt1, y1, yt1 = train_test_split(df_1.drop('label', axis=1)['text'], df_1.label, test_size=0.25, random_state=4222)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"count_vectorizer_1 = CountVectorizer(stop_words='english')\n",
"count_train_1 = count_vectorizer_1.fit_transform(X1)\n",
"count_test_1 = count_vectorizer_1.transform(Xt1)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"tfidf_vectorizer_1 = TfidfVectorizer(stop_words='english', max_df=0.7)\n",
"tfidf_train_1 = tfidf_vectorizer_1.fit_transform(X1)\n",
"tfidf_test_1 = tfidf_vectorizer_1.transform(Xt1)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"#display(count_vectorizer.get_feature_names()[0:10])\n",
"#display(count_vectorizer.get_feature_names()[-10:])\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"#display(tfidf_vectorizer.get_feature_names()[:10])\n",
"#display(tfidf_vectorizer.get_feature_names()[-10:])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"#count_df = pd.DataFrame(count_train.A, columns=count_vectorizer.get_feature_names())\n",
"#tfidf_df = pd.DataFrame(count_train.A, columns=tfidf_vectorizer.get_feature_names())\n",
"#diff = set(count_df.columns) - set(tfidf_df.columns)\n",
"#pp(count_df.equals(tfidf_df))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"#clf = MultinomialNB()\n",
"#clf.fit(tfidf_train_1, y1)\n",
"#pred = clf.predict(tfidf_test_1)\n",
"#score = metrics.accuracy_score(yt1, pred)\n",
"#pp(\"score: \" + str(score))\n",
"#cm = metrics.confusion_matrix(yt1, pred, labels=[\"FAKE\", \"REAL\"])\n",
"#plot_confusion_matrix(cm, classes=[\"FAKE\", \"REAL\"], title= \"TFIDF_Vecctorizer, Multinomial Naive Bayes\")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.9320143127762577'\n",
"Confusion matrix, without normalization\n",
"'score: 0.8838383838383839'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2bd45ff28>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2bd481240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf_a = MultinomialNB()\n",
"clf_a.fit(count_train_1, y1)\n",
"test_classifier(labels=[\"FAKE\",\"REAL\"], title=\"Configuration 1, model a -- train\", Xt=count_train_1,yt=y1, clf=clf_a)\n",
"test_classifier(labels=[\"FAKE\",\"REAL\"], title=\"Configuration 1, model a -- test\", Xt=count_test_1,yt=yt1, clf=clf_a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* try to get most important features"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\ndef most_informative_feature_for_binary_classification(vectorizer, classifier, n=100):\\n \"\"\"\\n See: https://stackoverflow.com/a/26980472\\n \\n Identify most important features if given a vectorizer and binary classifier. Set n to the number\\n of weighted features you would like to show. (Note: current implementation merely prints and does not \\n return top classes.)\\n \"\"\"\\n\\n class_labels = classifier.classes_\\n feature_names = vectorizer.get_feature_names()\\n topn_class1 = sorted(zip(classifier.coef_[0], feature_names))[:n]\\n topn_class2 = sorted(zip(classifier.coef_[0], feature_names))[-n:]\\n \\n l = []\\n \\n for coef, feat in topn_class1:\\n l.append((class_labels[0], coef, feat))\\n\\n display(l)\\n\\n for coef, feat in reversed(topn_class2):\\n l.append((class_labels[1], coef, feat))\\n \\n display(l)\\n\\n\\nmost_informative_feature_for_binary_classification(tfidf_vectorizer_1, linear_clf, n=30)\\n'"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"'''\n",
"def most_informative_feature_for_binary_classification(vectorizer, classifier, n=100):\n",
" \"\"\"\n",
" See: https://stackoverflow.com/a/26980472\n",
" \n",
" Identify most important features if given a vectorizer and binary classifier. Set n to the number\n",
" of weighted features you would like to show. (Note: current implementation merely prints and does not \n",
" return top classes.)\n",
" \"\"\"\n",
"\n",
" class_labels = classifier.classes_\n",
" feature_names = vectorizer.get_feature_names()\n",
" topn_class1 = sorted(zip(classifier.coef_[0], feature_names))[:n]\n",
" topn_class2 = sorted(zip(classifier.coef_[0], feature_names))[-n:]\n",
" \n",
" l = []\n",
" \n",
" for coef, feat in topn_class1:\n",
" l.append((class_labels[0], coef, feat))\n",
"\n",
" display(l)\n",
"\n",
" for coef, feat in reversed(topn_class2):\n",
" l.append((class_labels[1], coef, feat))\n",
" \n",
" display(l)\n",
"\n",
"\n",
"most_informative_feature_for_binary_classification(tfidf_vectorizer_1, linear_clf, n=30)\n",
"'''\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 2\n",
"\n",
"* read data"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"----\n",
"#### Train Data:"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>label</th>\n",
" <th>statement</th>\n",
" <th>subjects</th>\n",
" <th>speaker</th>\n",
" <th>job</th>\n",
" <th>state</th>\n",
" <th>party</th>\n",
" <th>#barely_true</th>\n",
" <th>#false</th>\n",
" <th>#half_true</th>\n",
" <th>#mostly_true</th>\n",
" <th>#pants_on_fire</th>\n",
" <th>context</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2635.json</td>\n",
" <td>false</td>\n",
" <td>Says the Annies List political group supports ...</td>\n",
" <td>abortion</td>\n",
" <td>dwayne-bohac</td>\n",
" <td>State representative</td>\n",
" <td>Texas</td>\n",
" <td>republican</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>a mailer</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1123.json</td>\n",
" <td>false</td>\n",
" <td>Health care reform legislation is likely to ma...</td>\n",
" <td>health-care</td>\n",
" <td>blog-posting</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>none</td>\n",
" <td>7.0</td>\n",
" <td>19.0</td>\n",
" <td>3.0</td>\n",
" <td>5.0</td>\n",
" <td>44.0</td>\n",
" <td>a news release</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>12465.json</td>\n",
" <td>true</td>\n",
" <td>The Chicago Bears have had more starting quart...</td>\n",
" <td>education</td>\n",
" <td>robin-vos</td>\n",
" <td>Wisconsin Assembly speaker</td>\n",
" <td>Wisconsin</td>\n",
" <td>republican</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>2.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>a an online opinion-piece</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>5947.json</td>\n",
" <td>false</td>\n",
" <td>When Mitt Romney was governor of Massachusetts...</td>\n",
" <td>history,state-budget</td>\n",
" <td>mitt-romney</td>\n",
" <td>Former governor</td>\n",
" <td>Massachusetts</td>\n",
" <td>republican</td>\n",
" <td>34.0</td>\n",
" <td>32.0</td>\n",
" <td>58.0</td>\n",
" <td>33.0</td>\n",
" <td>19.0</td>\n",
" <td>an interview with CBN News</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>620.json</td>\n",
" <td>true</td>\n",
" <td>McCain opposed a requirement that the governme...</td>\n",
" <td>federal-budget</td>\n",
" <td>barack-obama</td>\n",
" <td>President</td>\n",
" <td>Illinois</td>\n",
" <td>democrat</td>\n",
" <td>70.0</td>\n",
" <td>71.0</td>\n",
" <td>160.0</td>\n",
" <td>163.0</td>\n",
" <td>9.0</td>\n",
" <td>a radio ad</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id label statement \\\n",
"0 2635.json false Says the Annies List political group supports ... \n",
"3 1123.json false Health care reform legislation is likely to ma... \n",
"5 12465.json true The Chicago Bears have had more starting quart... \n",
"12 5947.json false When Mitt Romney was governor of Massachusetts... \n",
"16 620.json true McCain opposed a requirement that the governme... \n",
"\n",
" subjects speaker job \\\n",
"0 abortion dwayne-bohac State representative \n",
"3 health-care blog-posting NaN \n",
"5 education robin-vos Wisconsin Assembly speaker \n",
"12 history,state-budget mitt-romney Former governor \n",
"16 federal-budget barack-obama President \n",
"\n",
" state party #barely_true #false #half_true #mostly_true \\\n",
"0 Texas republican 0.0 1.0 0.0 0.0 \n",
"3 NaN none 7.0 19.0 3.0 5.0 \n",
"5 Wisconsin republican 0.0 3.0 2.0 5.0 \n",
"12 Massachusetts republican 34.0 32.0 58.0 33.0 \n",
"16 Illinois democrat 70.0 71.0 160.0 163.0 \n",
"\n",
" #pants_on_fire context \n",
"0 0.0 a mailer \n",
"3 44.0 a news release \n",
"5 1.0 a an online opinion-piece \n",
"12 19.0 an interview with CBN News \n",
"16 9.0 a radio ad "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"----\n",
"#### Test Data:"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>label</th>\n",
" <th>statement</th>\n",
" <th>subjects</th>\n",
" <th>speaker</th>\n",
" <th>job</th>\n",
" <th>state</th>\n",
" <th>party</th>\n",
" <th>#barely_true</th>\n",
" <th>#false</th>\n",
" <th>#half_true</th>\n",
" <th>#mostly_true</th>\n",
" <th>#pants_on_fire</th>\n",
" <th>context</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>11972.json</td>\n",
" <td>true</td>\n",
" <td>Building a wall on the U.S.-Mexico border will...</td>\n",
" <td>immigration</td>\n",
" <td>rick-perry</td>\n",
" <td>Governor</td>\n",
" <td>Texas</td>\n",
" <td>republican</td>\n",
" <td>30</td>\n",
" <td>30</td>\n",
" <td>42</td>\n",
" <td>23</td>\n",
" <td>18</td>\n",
" <td>Radio interview</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11685.json</td>\n",
" <td>false</td>\n",
" <td>Wisconsin is on pace to double the number of l...</td>\n",
" <td>jobs</td>\n",
" <td>katrina-shankland</td>\n",
" <td>State representative</td>\n",
" <td>Wisconsin</td>\n",
" <td>democrat</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>a news conference</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>11096.json</td>\n",
" <td>false</td>\n",
" <td>Says John McCain has done nothing to help the ...</td>\n",
" <td>military,veterans,voting-record</td>\n",
" <td>donald-trump</td>\n",
" <td>President-Elect</td>\n",
" <td>New York</td>\n",
" <td>republican</td>\n",
" <td>63</td>\n",
" <td>114</td>\n",
" <td>51</td>\n",
" <td>37</td>\n",
" <td>61</td>\n",
" <td>comments on ABC's This Week.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5962.json</td>\n",
" <td>true</td>\n",
" <td>Over the past five years the federal governmen...</td>\n",
" <td>federal-budget,pensions,retirement</td>\n",
" <td>brendan-doherty</td>\n",
" <td>NaN</td>\n",
" <td>Rhode Island</td>\n",
" <td>republican</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>a campaign website</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>7070.json</td>\n",
" <td>true</td>\n",
" <td>Says that Tennessee law requires that schools ...</td>\n",
" <td>county-budget,county-government,education,taxes</td>\n",
" <td>stand-children-tennessee</td>\n",
" <td>Child and education advocacy organization.</td>\n",
" <td>Tennessee</td>\n",
" <td>none</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>in a post on Facebook.</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id label statement \\\n",
"0 11972.json true Building a wall on the U.S.-Mexico border will... \n",
"1 11685.json false Wisconsin is on pace to double the number of l... \n",
"2 11096.json false Says John McCain has done nothing to help the ... \n",
"5 5962.json true Over the past five years the federal governmen... \n",
"6 7070.json true Says that Tennessee law requires that schools ... \n",
"\n",
" subjects speaker \\\n",
"0 immigration rick-perry \n",
"1 jobs katrina-shankland \n",
"2 military,veterans,voting-record donald-trump \n",
"5 federal-budget,pensions,retirement brendan-doherty \n",
"6 county-budget,county-government,education,taxes stand-children-tennessee \n",
"\n",
" job state party \\\n",
"0 Governor Texas republican \n",
"1 State representative Wisconsin democrat \n",
"2 President-Elect New York republican \n",
"5 NaN Rhode Island republican \n",
"6 Child and education advocacy organization. Tennessee none \n",
"\n",
" #barely_true #false #half_true #mostly_true #pants_on_fire \\\n",
"0 30 30 42 23 18 \n",
"1 2 1 0 0 0 \n",
"2 63 114 51 37 61 \n",
"5 1 2 1 1 0 \n",
"6 0 0 0 0 0 \n",
"\n",
" context \n",
"0 Radio interview \n",
"1 a news conference \n",
"2 comments on ABC's This Week. \n",
"5 a campaign website \n",
"6 in a post on Facebook. "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"----\n",
"#### Valid Data:"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>label</th>\n",
" <th>statement</th>\n",
" <th>subjects</th>\n",
" <th>speaker</th>\n",
" <th>job</th>\n",
" <th>state</th>\n",
" <th>party</th>\n",
" <th>#barely_true</th>\n",
" <th>#false</th>\n",
" <th>#half_true</th>\n",
" <th>#mostly_true</th>\n",
" <th>#pants_on_fire</th>\n",
" <th>context</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>7891.json</td>\n",
" <td>false</td>\n",
" <td>Says Having organizations parading as being so...</td>\n",
" <td>campaign-finance,congress,taxes</td>\n",
" <td>earl-blumenauer</td>\n",
" <td>U.S. representative</td>\n",
" <td>Oregon</td>\n",
" <td>democrat</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>a U.S. Ways and Means hearing</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>9416.json</td>\n",
" <td>false</td>\n",
" <td>Says when armed civilians stop mass shootings ...</td>\n",
" <td>guns</td>\n",
" <td>jim-rubens</td>\n",
" <td>Small business owner</td>\n",
" <td>New Hampshire</td>\n",
" <td>republican</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>in an interview at gun shop in Hudson, N.H.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>6861.json</td>\n",
" <td>true</td>\n",
" <td>Says Tennessee is providing millions of dollar...</td>\n",
" <td>education,state-budget</td>\n",
" <td>andy-berke</td>\n",
" <td>Lawyer and state senator</td>\n",
" <td>Tennessee</td>\n",
" <td>democrat</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>a letter to state Senate education committee c...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1122.json</td>\n",
" <td>false</td>\n",
" <td>The health care reform plan would set limits s...</td>\n",
" <td>health-care</td>\n",
" <td>club-growth</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>none</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>a TV ad</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>13138.json</td>\n",
" <td>true</td>\n",
" <td>Says Donald Trump started his career back in 1...</td>\n",
" <td>candidates-biography,diversity,housing</td>\n",
" <td>hillary-clinton</td>\n",
" <td>Presidential candidate</td>\n",
" <td>New York</td>\n",
" <td>democrat</td>\n",
" <td>40</td>\n",
" <td>29</td>\n",
" <td>69</td>\n",
" <td>76</td>\n",
" <td>7</td>\n",
" <td>the first presidential debate</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id label statement \\\n",
"2 7891.json false Says Having organizations parading as being so... \n",
"5 9416.json false Says when armed civilians stop mass shootings ... \n",
"6 6861.json true Says Tennessee is providing millions of dollar... \n",
"7 1122.json false The health care reform plan would set limits s... \n",
"8 13138.json true Says Donald Trump started his career back in 1... \n",
"\n",
" subjects speaker \\\n",
"2 campaign-finance,congress,taxes earl-blumenauer \n",
"5 guns jim-rubens \n",
"6 education,state-budget andy-berke \n",
"7 health-care club-growth \n",
"8 candidates-biography,diversity,housing hillary-clinton \n",
"\n",
" job state party #barely_true #false \\\n",
"2 U.S. representative Oregon democrat 0 1 \n",
"5 Small business owner New Hampshire republican 1 1 \n",
"6 Lawyer and state senator Tennessee democrat 0 0 \n",
"7 NaN NaN none 4 5 \n",
"8 Presidential candidate New York democrat 40 29 \n",
"\n",
" #half_true #mostly_true #pants_on_fire \\\n",
"2 1 1 0 \n",
"5 0 1 0 \n",
"6 0 0 0 \n",
"7 4 2 0 \n",
"8 69 76 7 \n",
"\n",
" context \n",
"2 a U.S. Ways and Means hearing \n",
"5 in an interview at gun shop in Hudson, N.H. \n",
"6 a letter to state Senate education committee c... \n",
"7 a TV ad \n",
"8 the first presidential debate "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"names = [\n",
" \"id\",\n",
" \"label\",\n",
" \"statement\",\n",
" \"subjects\",\n",
" \"speaker\",\n",
" \"job\",\n",
" \"state\",\n",
" \"party\",\n",
" \"#barely_true\",\n",
" \"#false\",\n",
" \"#half_true\",\n",
" \"#mostly_true\",\n",
" \"#pants_on_fire\",\n",
" \"context\"\n",
"]\n",
"\n",
"df_2_train = pd.read_csv(\"data/train.tsv\", delimiter='\\t', names=names)\n",
"df_2_test = pd.read_csv(\"data/test.tsv\", delimiter='\\t', names=names)\n",
"df_2_valid= pd.read_csv(\"data/valid.tsv\", delimiter='\\t', names=names)\n",
"\n",
"# use only 'False' and 'True' statements\n",
"df_2_train = df_2_train[df_2_train['label'].isin([\"false\",\"true\"])]\n",
"df_2_test = df_2_test[df_2_test['label'].isin([\"false\",\"true\"])]\n",
"df_2_valid = df_2_valid[df_2_valid['label'].isin([\"false\",\"true\"])]\n",
"\n",
"display(Markdown(\"----\\n#### Train Data:\"))\n",
"display(df_2_train.head())\n",
"display(Markdown(\"----\\n#### Test Data:\"))\n",
"display(df_2_test.head())\n",
"display(Markdown(\"----\\n#### Valid Data:\"))\n",
"display(df_2_valid.head())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### tdidf vectorizer on new dataset\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"X2 = df_2_train['statement']\n",
"y2 = df_2_train['label']\n",
"Xt2 = df_2_test['statement']\n",
"yt2 = df_2_test['label']\n",
"Xv2 = df_2_valid['statement']\n",
"yv2 = df_2_valid['label']\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"count_vectorizer_2 = TfidfVectorizer(stop_words='english', max_df=0.7)\n",
"count_train_2 = count_vectorizer_2.fit_transform(X2)\n",
"count_test_2 = count_vectorizer_2.transform(Xt2)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf_b = MultinomialNB()\n",
"clf_b.fit(count_train_2, y2)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.8700626532280032'\n",
"Confusion matrix, without normalization\n",
"'score: 0.6192560175054704'\n",
"Confusion matrix, without normalization\n",
"'score: 0.6504629629629629'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2bd36ff60>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2bd3ad048>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2badfee48>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test_classifier(labels=[\"true\", \"false\"], title=\"configuration 2 -- train\", Xt=count_train_2, yt=y2, clf=clf_b)\n",
"test_classifier(labels=[\"true\", \"false\"], title=\"configuration 2 -- test\", Xt=count_test_2, yt=yt2, clf=clf_b)\n",
"test_classifier(labels=[\"true\", \"false\"], title=\"configuration 2 -- valid\", Xt=count_vectorizer_2.transform(Xv2), yt=yv2, clf=clf_b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 3"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.4617067833698031'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2bd3a9198>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yt2_c3 = yt2.copy()\n",
"yt2_c3[yt2_c3 == \"true\"] = \"REAL\"\n",
"yt2_c3[yt2_c3 == \"false\"] = \"FAKE\"\n",
"\n",
"test_classifier(labels=[\"REAL\", \"FAKE\"], \n",
" title=\"configuration 3: model a) → dataset 2\",\n",
" Xt=count_vectorizer_1.transform(Xt2),\n",
" yt=yt2_c3, clf=clf_a)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.4936868686868687'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2bad9d8d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yt1_c3 = yt1.copy()\n",
"yt1_c3[yt1_c3 == \"REAL\"] = \"true\"\n",
"yt1_c3[yt1_c3 == \"FAKE\"] = \"false\"\n",
"\n",
"test_classifier(labels=[\"true\", \"false\"], \n",
" title=\"configuration 3: model b) → dataset 1\",\n",
" Xt=count_vectorizer_2.transform(Xt1),\n",
" yt=yt1_c3, clf=clf_b)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## configuration 4)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"def get_dataset3_split(dataset1_in, dataset2_in):\n",
" try:\n",
" print('processing datasets')\n",
" print('ds1=', dataset1_in)\n",
" print('ds2=', dataset2_in)\n",
"\n",
" print('-- fake news')\n",
" df1 = pd.read_csv(dataset1_in, sep=',', usecols=['title','text','label'])\n",
" df1['claim'] = df1[['title', 'text']].apply(lambda x: '. '.join(x), axis=1)\n",
" del df1['title']\n",
" del df1['text']\n",
" df1.rename(index=str, columns={'label': 'y'}, inplace=True)\n",
" print(df1.keys())\n",
" print(len(df1[df1['y']=='REAL']))\n",
" print(len(df1[df1['y']=='FAKE']))\n",
" df1['y'] = np.where(df1['y'] == 'FAKE', 'false', 'true')\n",
" print(len(df1))\n",
"\n",
" print('-- liar liar')\n",
" df2 = pd.read_csv(dataset2_in, sep='\\t', header=None, usecols=[1,2], names=['y', 'claim'])\n",
" print(df2.keys())\n",
" print(set(df2.y), len(df2))\n",
" print(len(df2[df2['y'] == 'true']))\n",
" print(len(df2[df2['y'] == 'false']))\n",
" df2=df2[(df2['y'] == 'true') | (df2['y'] == 'false')]\n",
" print(set(df2.y), len(df2))\n",
"\n",
" df3=pd.concat([df1, df2], ignore_index=True)\n",
"\n",
" print(df3['y'].value_counts())\n",
" print('done')\n",
" return train_test_split(df3['claim'], df3['y'], test_size=0.25, random_state=4222)\n",
" except Exception as e:\n",
" print(e)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"processing datasets\n",
"ds1= data/fake_or_real_news.csv\n",
"ds2= data/train.tsv\n",
"-- fake news\n",
"Index(['y', 'claim'], dtype='object')\n",
"3171\n",
"3164\n",
"6335\n",
"-- liar liar\n",
"Index(['y', 'claim'], dtype='object')\n",
"{'true', 'half-true', 'pants-fire', 'false', 'mostly-true', 'barely-true'} 10240\n",
"1676\n",
"1995\n",
"{'true', 'false'} 3671\n",
"false 5159\n",
"true 4847\n",
"Name: y, dtype: int64\n",
"done\n"
]
}
],
"source": [
"X3, Xt3, y3, yt3 = get_dataset3_split('data/fake_or_real_news.csv', 'data/train.tsv')"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"count_vectorizer_3 = CountVectorizer(stop_words='english')\n",
"count_train_3 = count_vectorizer_3.fit_transform(X3)\n",
"count_test_3 = count_vectorizer_3.transform(Xt3)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf_3 = MultinomialNB()\n",
"clf_3.fit(count_train_3, y3)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'score: 0.8030383795309168'\n",
"Confusion matrix, without normalization\n",
"'score: 0.746203037569944'\n",
"Confusion matrix, without normalization\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2ba8eb2b0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2bd3ac860>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test_classifier(labels=[\"true\",\"false\"], title=\"Configuration 4 -- train\", Xt=count_train_3, yt=y3, clf=clf_3)\n",
"test_classifier(labels=[\"true\",\"false\"], title=\"Configuration 4 -- test\", Xt=count_test_3, yt=yt3, clf=clf_3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}