{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\"Open\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Naive Bayes text classifier" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "from IPython.display import Image\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "from sklearn.naive_bayes import MultinomialNB\n", "from sklearn.metrics import accuracy_score\n", "import numpy as np\n", "import scipy.io as io\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "plt.style.use('fivethirtyeight')\n", "\n", "plt.rcParams['font.family'] = 'sans-serif'\n", "plt.rcParams['font.serif'] = 'Ubuntu'\n", "plt.rcParams['font.monospace'] = 'Ubuntu Mono'\n", "plt.rcParams['font.size'] = 10\n", "plt.rcParams['axes.labelsize'] = 10\n", "plt.rcParams['axes.labelweight'] = 'bold'\n", "plt.rcParams['axes.titlesize'] = 10\n", "plt.rcParams['xtick.labelsize'] = 8\n", "plt.rcParams['ytick.labelsize'] = 8\n", "plt.rcParams['legend.fontsize'] = 10\n", "plt.rcParams['figure.titlesize'] = 12\n", "plt.rcParams['image.cmap'] = 'jet'\n", "plt.rcParams['image.interpolation'] = 'none'\n", "plt.rcParams['figure.figsize'] = (16, 8)\n", "plt.rcParams['lines.linewidth'] = 2\n", "\n", "colors = ['#008fd5', '#fc4f30', '#e5ae38', '#6d904f', '#8b8b8b', '#810f7c', '#137e6d', '#be0119', '#3b638c', '#af6f09',\n", " '#c79fef', '#80f9ad']" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "import urllib.request\n", "\n", "filepath = \"../dataset/\"\n", "url = \"https://tvml.github.io/ml2324/dataset/\"\n", "\n", "def get_file(filename):\n", " IS_COLAB = ('google.colab' in str(get_ipython()))\n", " if IS_COLAB:\n", " urllib.request.urlretrieve (url+filename, filename)\n", " return filename\n", " else:\n", " return filepath+filename\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Legge il dataset" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "data = io.loadmat(get_file('XwindowsDocData.mat'))\n", "\n", "xtrain = data['xtrain']\n", "ytrain = data['ytrain']\n", "\n", "ndocs = xtrain.shape[0] \n", "nterms = xtrain.shape[1]\n", "classes = np.unique(ytrain)\n", "nclasses = classes.shape[0]" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "600 termini\n", "900 documenti\n" ] } ], "source": [ "print('{} termini'.format(nterms))\n", "print('{} documenti'.format(ndocs))" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "f = lambda x: x[0]\n", "vocab = np.array(list(map(f, data['vocab'][:,0])))" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [1],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2],\n", " [2]], dtype=uint8)" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ytrain" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Documento 18: 11 termini diversi, 1.83% di tutto il vocabolario\n", "Id dei termini: [ 23 106 122 205 225 279 316 408 444 514 532]\n" ] } ], "source": [ "doc_id = 18\n", "doc = np.argwhere(xtrain[doc_id,:]== 1)[:,1]\n", "print('Documento {1:3d}: {0:2.0f} termini diversi, {2:5.2f}% di tutto il vocabolario'.format(doc.shape[0], doc_id,\n", " doc.shape[0]/xtrain.shape[1]*100))\n", "print('Id dei termini: {}'.format(doc))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Crea un classificatore Naive-Bayes ed effettua il learning sul dataset" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MultinomialNB(alpha=1e-09)" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clf = MultinomialNB(alpha=1.0e-9)\n", "clf.fit(xtrain, ytrain.ravel())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deriva probabilità a priori delle classi $p(C_i)$" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.5, 0.5])" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prior=np.exp(clf.class_log_prior_)\n", "prior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deriva probabilità dei termini date le classi (likelihood) $p(t_j|C_i)$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 600)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lik=np.exp(clf.feature_log_prob_)\n", "lik.shape" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1.67448091e-04, 1.67448091e-13, 3.34896182e-04, 1.67448091e-04],\n", " [6.09013398e-04, 6.09013398e-04, 6.09013398e-04, 1.52253350e-13]])" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lik[:,:4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deriva probabilità a priori delle feature (evidenza) $p(t_j)=p(t_j|C_1)p(C_1)+p(t_j|C_2)p(C_2)$" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(600,)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "evid=np.array([lik[0,i]*prior[0]+lik[1,i]*prior[1] for i in range(lik.shape[1])])\n", "evid.shape" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3.88230745e-04, 3.04506699e-04, 4.71954790e-04, 8.37240457e-05,\n", " 2.43574766e-04, 6.16610769e-04, 7.61266749e-05, 9.43909581e-04,\n", " 4.18620228e-04, 4.69660282e-03])" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "evid[:10]" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probabilità dei primi 20 termini\n", "\n", "A priori: \n", "[3.88230745e-04 3.04506699e-04 4.71954790e-04 8.37240457e-05\n", " 2.43574766e-04 6.16610769e-04 7.61266749e-05 9.43909581e-04\n", " 4.18620228e-04 4.69660282e-03 1.59850720e-04 2.00953006e-03\n", " 6.24208140e-04 4.64357420e-04 3.95828116e-04 4.03425486e-04\n", " 3.19701441e-04 2.69467013e-03 2.87731297e-03 1.37012718e-03]\n", "\n", "Condizionata alla classe 0: \n", "[1.67448091e-04 1.67448091e-13 3.34896182e-04 1.67448091e-04\n", " 3.34896182e-04 1.67448091e-04 1.67448091e-13 6.69792364e-04\n", " 8.37240456e-04 4.52109846e-03 1.67448091e-04 2.34427328e-03\n", " 3.34896182e-04 1.67448091e-04 3.34896182e-04 5.02344273e-04\n", " 3.34896182e-04 2.34427328e-03 3.01406564e-03 1.67448091e-03]\n", "\n", "Condizionata alla classe 1: \n", "[6.09013398e-04 6.09013398e-04 6.09013398e-04 1.52253350e-13\n", " 1.52253350e-04 1.06577345e-03 1.52253350e-04 1.21802680e-03\n", " 1.52253350e-13 4.87210719e-03 1.52253350e-04 1.67478685e-03\n", " 9.13520098e-04 7.61266748e-04 4.56760049e-04 3.04506699e-04\n", " 3.04506699e-04 3.04506699e-03 2.74056029e-03 1.06577345e-03]\n" ] } ], "source": [ "k= 20\n", "print('Probabilità dei primi {} termini\\n\\nA priori: \\n{}\\n\\nCondizionata alla classe 0: \\n{}\\n\\nCondizionata alla classe 1: \\n{}'.format(k, evid[:k], lik[0,:k], lik[1,:k]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Applica la regola di Bayes per calcolare le probabilità a posteriori delle classi data l'occorrenza dei termini\n", "\n", "$$p(C_k|t_j)=\\frac{p(t_j|C_k)p(C_k)}{p(t_j)}$$" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "post = np.zeros([lik.shape[0],lik.shape[1]])\n", "for i in range(lik.shape[0]):\n", " for j in range(lik.shape[1]):\n", " post[i,j] = lik[i,j]*prior[i]/evid[j]" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 600)" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "post.shape" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probabilità delle due classi condizionata all'occorrenza dei primi 20 termini\n", "\n", "Classe 0: \n", "[2.15655372e-01 2.74949765e-10 3.54796889e-01 9.99999999e-01\n", " 6.87460749e-01 1.35781030e-01 1.09979906e-09 3.54796889e-01\n", " 1.00000000e+00 4.81315818e-01 5.23763955e-01 5.83288929e-01\n", " 2.68256821e-01 1.80300868e-01 4.23032333e-01 6.22598584e-01\n", " 5.23763955e-01 4.34983348e-01 5.23763955e-01 6.11067694e-01]\n", "\n", "Classe 1: \n", "[7.84344628e-01 1.00000000e+00 6.45203111e-01 9.09257002e-10\n", " 3.12539251e-01 8.64218970e-01 9.99999999e-01 6.45203111e-01\n", " 1.81851401e-10 5.18684182e-01 4.76236045e-01 4.16711071e-01\n", " 7.31743179e-01 8.19699132e-01 5.76967667e-01 3.77401416e-01\n", " 4.76236045e-01 5.65016652e-01 4.76236045e-01 3.88932306e-01]\n" ] } ], "source": [ "k= 20\n", "print(\"Probabilità delle due classi condizionata all'occorrenza dei primi {} termini\\n\\nClasse 0: \\n{}\\n\\nClasse 1: \\n{}\".format(k, post[0,:k], post[1,:k]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Applica la regola di Bayes per calcolare le probabilità a posteriori delle classi data la non occorrenza dei termini\n", "\n", "$$p(C_k|\\lnot t_j)=\\frac{p(\\lnot t_j|C_k)p(C_k)}{p(\\lnot t_j)}=\\frac{(1-p(t_j|C_k))p(C_k)}{1-p(t_j)}$$" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "post_n = np.zeros([lik.shape[0],lik.shape[1]])\n", "for i in range(lik.shape[0]):\n", " for j in range(lik.shape[1]):\n", " post_n[i,j] = (1-lik[i,j])*prior[i]/(1-evid[j])" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probabilità delle due classi condizionata alla non occorrenza dei primi 20 termini\n", "\n", "Classe 0: \n", "[2.15655372e-01 2.74949765e-10 3.54796889e-01 9.99999999e-01\n", " 6.87460749e-01 1.35781030e-01 1.09979906e-09 3.54796889e-01\n", " 1.00000000e+00 4.81315818e-01 5.23763955e-01 5.83288929e-01\n", " 2.68256821e-01 1.80300868e-01 4.23032333e-01 6.22598584e-01\n", " 5.23763955e-01 4.34983348e-01 5.23763955e-01 6.11067694e-01]\n", "\n", "Classe 1: \n", "[0.49988957 0.4998477 0.49993144 0.50004187 0.50004567 0.49977528\n", " 0.49996193 0.49986281 0.5002094 0.49991183 0.5000038 0.50016771\n", " 0.49985525 0.49985148 0.49996952 0.50004948 0.5000076 0.49982433\n", " 0.50006857 0.50015239]\n" ] } ], "source": [ "k= 20\n", "print(\"Probabilità delle due classi condizionata alla non occorrenza dei primi {} termini\\n\\nClasse 0: \\n{}\\n\\nClasse 1: \\n{}\".format(k, post[0,:k], post_n[1,:k]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deriva probabilità a posteriori delle feature (termini) $p(t_j|C_i)$" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "pf=np.exp(clf.feature_log_prob_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot del modello generale di linguaggio, per l'unione delle due classi" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABA0AAAGkCAYAAABaVtxsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAAsTAAALEwEAmpwYAABC4klEQVR4nO3deXQUVaLH8V8WCYLZRCBgVEACCIHBQGQQJURZEnDXAcGHCqMiPN8MAwGMCiISIRI8PgcYZwzCE1lkQBSHTUDMQXAIAZkHgzDBBSUTjAJJILJke3/kpe1Obqc7oTvdnXw/53DoVFVX3666davq17eq/PLz88sFAAAAAABQhb+nCwAAAAAAALwToQEAAAAAADAiNAAAAAAAAEaEBgAAAAAAwIjQAAAAAAAAGBEaAAAAAAAAI0IDAHDS8uXLFRYWpq+//trTRYELDBs2TMOGDav1+yrrwfHjx11Sjh9++EEPP/yw2rVrp7CwMC1atMgl861J1e++c+dOhYWFaefOnS7/rOPHj2vOnDn69ttvq43r3r27xo8f7/LPxOVbvny5li1bZhzuTDt4/PhxhYWFafny5e4qIgCgngR6ugAAADRmr776qnbv3q2FCxcqIiJC119/vaeL5FLfffedUlNT1bdvX7Vr185m3LvvvquQkBDPFAw1WrFihUpLSzV69Og6vT8iIkJbt25V+/btXVwyAEB9IzQAAMCDjh49qm7duunuu+/2dFHq3a9+9StPFwFuEhQUpNjYWE8XAwDgAlyeAAAutH//fj366KPq2rWrIiIi1Lt3b82aNUvnz5+3mW7YsGFKSEjQp59+qv79+6tNmzbq27evPvroo2rzXLNmjWJjY9W6dWvdeuut2rhxY7Xu5fa6zM+ZM0dhYWE2w/7yl79o0KBBateuna6//noNHDhQW7Zsqfa53377rX7zm9+oTZs26tixo55//nktXbrU+DlLly5Vv3791Lp1a3Xo0EHPPPOMzpw543B5de/eXU899ZRWrVql3r17KyIiQomJifrqq69UVFSkiRMnqn379oqKitLzzz+vkpISm/dnZ2frkUce0fXXX6+IiAgNHDhQ27Ztq/Y5a9euVWxsrFq1aqVf//rXxuUsST/99JP+8Ic/6KabblKrVq0UGxurpUuXOvweJuXl5Vq4cKF69+6tli1bqnPnzpoyZYoKCwsl/dJ9+7PPPtPnn3+usLAwh5c9/PTTT5o8ebK6deumVq1aqVu3bnrqqad08eJFyzTbtm3ToEGDLL0WRo0apezs7Dp9h/Xr12vgwIFq06aNrr/+ej322GP6/vvvq033P//zP+rfv78iIiJ0ww03aOjQodqzZ4927txpCUPuu+8+y3esvAzCdHnCvn37dO+99+raa69V27Ztdc8992jfvn0204wfP15du3bVP/7xDyUmJqpNmzaKiYnR22+/XafvWbkulixZopSUFHXu3FnXX3+9RowYoZycHJtpi4uLNXv2bHXv3l0tW7ZU9+7dNXv2bBUXFzv8nD/96U+65ZZbLMtpwIABNnWxsl3Ytm2bbrvtNkVEROj2229XVlaWSkpKNGvWLHXu3Fnt2rXT+PHjVVRUZDP/kydPaty4cerQoYNatWqlW2+9Ve+99161cjhaxsOGDdOuXbv097//3bLOql7Kc+rUKT355JO67rrr1KVLF02dOlUXLlyotkytL0+ozXr79NNPdfvtt6t169a6+eab9c4772j8+PHq3r27w+UMAHAtehoAgAt9//336t69u0aNGqWrrrpKR44c0auvvqpvv/222oHxN998o2effVZ/+MMf1KJFCy1YsECPP/649u7dqw4dOkiSduzYoSeffFKJiYlKSUnRTz/9pOTkZF28eFE33nhjncr43XffafTo0brhhhtUUlKizZs3a8SIEVqzZo0GDhwoSbp06ZLuu+8+Xbp0SfPnz9c111yjd955Rx9++GG1+c2cOVMLFizQuHHj9PLLL+vf//63UlJS9OWXX+rjjz9WQEBAjeXZvXu3vvnmG82cOVPFxcVKTk7W6NGj1a5dO3Xo0EFvv/22du3apbS0NLVv315PPPGEJCk3N1cJCQm66qqrNG/ePIWEhCg9PV3Dhw/Xe++9p0GDBkmqOPl44oknNHjwYM2ePduyDIuLi9WxY0dLOQoLC5WQkKALFy7o2Wef1Q033KDt27dr0qRJunjxosaNG1er5fzyyy/rtdde05NPPqmEhAQdOXJEr7zyig4dOqQNGzZYum9PnDhRAQEBmj9/vqSKbt0m+fn5Gjx4sM6cOaOkpCRFR0frxx9/1MaNG3Xp0iUFBQVp27ZtGj58uPr376+3335bRUVFeuWVV5SQkKCdO3eqbdu2Tpf/7bff1qRJk/TII49o6tSpOnfunObO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i8CeyvVq3XPGWuW6qVwmtbnsoSZnzpyxW/78/HxjGaxZbz91UXWbbNKkiSRZ5mlvvVb+XdN6HTlypC5evKhly5Zp8eLFuuKKKzRo0CClpKTYhIC12R5KSkpUWlqqwMDAGpedddlqs4xrYlpW1tunPc6st5raH9OjOwEA7kVoAAAucuHCBW3cuFHPPvuszc3d/vnPf9Zpfi1atNAVV1xhOYGzlpeXp8jISMvfTZs2laRqN2OreqK7fft2FRYWasmSJbr22mstw6v+6tm6dWvjL+t5eXk2f1debrFu3TrjyYApGHGV8PDwauWRKk44/Pz8FBYWpubNm+uKK64wTpeXl6frrrvO8vfVV1+tli1bau7cucbPs76UwZmyVX7GTTfdZBleUlKi06dP12m5tGjRQrm5uXbHh4WFyc/PTz/88EO1cT/88EOtPrNyvS5atMim/JWuuuoqS5mkivtLREVFOT1/e8LDw+2W31S/6pv1erV+lGBlmWtaxn5+fhozZozGjBmj/Px8ffLJJ3rhhRc0duxYbd++3SVls+4tZK9s3r6MpYr2x167BwCof1yeAAAucvHiRZWWllp+Gay0YsWKOs0vICBAN998sz766CNLF2Sp4vKCqnfYrzz5PXz4sGVYSUmJduzYYTNdZThgXcZjx45pz549NtPFxsbqxIkTNndULy8v1/r1622mi4+Pl7+/v77//nvdfPPN1f5Zd7N2tX79+mnv3r02y6K0tFTr1q1Tjx49FBISooCAAMXExGj9+vUqKyuzTJeVlaXvvvvOZn533nmn/vWvfykyMtL4XareCK4msbGxatKkidauXWsz/P3331dJSYluu+22Wn/f+Ph47du3TwcPHjSOb968uXr27KkPP/xQpaWlluHfffedMjMza/WZt9xyi4KDg/X1118bl0VlQDBgwAD5+/vX+ISJoKAgSar2BBGTfv36aevWrTp79qxl2NmzZ7V58+Y6LTNXu/XWWyWp2nr961//KklOlzEsLEwPPPCA7rvvPn355ZcuKVu/fv2Uk5Ojv//97zbD16xZo5YtW6pLly6W6ZxZxkFBQU6tM3eIjY3V1q1bbcLMkydPVmunAAD1g54GAFBL27Ztq9a9NyQkRPHx8YqNjdWCBQvUunVrtWjRQu+++26Nvw47kpycrPvvv1+PPPKIHn/8cZ06dUpz585V69atba7R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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(16,6))\n", "ax=plt.subplot(1,1,1)\n", "ax.bar(range(clf.feature_count_.shape[1]), evid, facecolor=colors[0], alpha=0.9, edgecolor=colors[0], lw=2)\n", "plt.title('$p(t_j)$', fontsize=14)\n", "plt.suptitle('Language model of collection, no smoothing ', fontsize=16)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot del modello di linguaggio risultante per le due classi" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABA0AAAGkCAYAAABaVtxsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAAsTAAALEwEAmpwYAABdZklEQVR4nO3de1xUdf7H8fcAimncNMVYbNXETCeXVDLLJEoTtK1Vd22zTY0ts8uWa3jBtrtkJPZoN2m7kPqzzGrXLFtErLZ4mLYRErsQathWW4RZKoOLNy7z+8NlYuDAzMAMMwOv5+Phw+GcM+d85sznfM85n/mec0yVlZVWAQAAAAAANBHg7QAAAAAAAIBvomgAAAAAAAAMUTQAAAAAAACGKBoAAAAAAABDFA0AAAAAAIAhigYAAAAAAMAQRQMAaIcNGzYoPDxc//73v70dCtxg6tSpmjp1qsvva8iDr776ygNRNVdfX6+lS5fqvPPOU0REhGbNmtXmee3YsUPh4eHasWOHGyOEv/jb3/6m1atXNxvekBfvv/++w3mEh4drxYoVHogOAOALgrwdAAAAcM2bb76pZ555RsuXL9dFF12k3r17ezsk+Kns7Gzl5eXpzjvvbPM83n77bUVFRbkxKgCAL6FoAACAn9m3b58k6fbbb1dAAJ0G4V1xcXHeDgEA4EEcaQCAhxUWFmr27NkaPny4+vfvrzFjxujhhx/W8ePH7aabOnWqEhMT9f7772vChAk6++yzNW7cOL311lvN5vnXv/5VcXFxioyM1CWXXKKtW7c261rfUpf5FStWKDw83G7Yc889p0mTJmngwIE655xzNHHiROXm5jZb7pdffqlf/epXOvvsszVkyBDde++9WrduneFy1q1bp0svvVSRkZEaPHiw7rzzTh05csTh+rrgggs0b948vfLKKxozZoz69++vpKQkff7556qurtaCBQs0aNAgxcTE6N5771Vtba3d+8vKynTDDTfonHPOUf/+/TVx4kS98847zZazadMmxcXFqV+/frr44osN17Mk/fDDD/r973+v888/X/369VNcXJzWrVvn8HP85S9/0WWXXaaf/OQnGjBggC655BKtXbvW4fveeecdTZo0Sf3799c555yjWbNmqayszG79PPbYY5Kk3r17Kzw8XBs2bGhxfrW1tXryySc1duxYRUZG6txzz9WMGTP02Weftfiev//97/rVr36l8847z5aHTz31lOrq6lz6jIWFhfrFL36hQYMGqX///vrZz36me+65x24eX375pW655Rade+656tevn8aPH9/su9i/f79uuOEGDRkyRJGRkTKbzZozZ06z794Z4eHhWr58uZ555hmNHDlS0dHRmjJlivbs2WM3ndVqVWZmpsaMGaO+ffvqvPPO06JFi1RVVeVwGY7Wy2233abhw4frk08+0VVXXWVrFxq2udWrV+uCCy7QgAEDdP311+uHH36wm39VVZUWLVqkYcOGqV+/fhozZowyMzNltVrtpnO0Ldx2223auHGjvv32W4WHhys8PFwXXHCB3TyOHTumRYsWafDgwRo8eLDmzZunysrKZuu08eUJDW3M559/rpkzZ+onP/mJzGaz0tPTVV9fb/feoqIiJSUlqX///hoxYoRWrVqlRx99tFkbBQDwHnoaAICHff3117rgggs0a9YsnXnmmdq7d68ef/xxffnll1qzZo3dtF988YWWLl2q3//+9+rTp49Wr16tuXPn6uOPP9bgwYMlSe+9955uueUWJSUlKS0tTT/88INSU1N18uRJnXvuuW2K8T//+Y9uvPFG/fSnP1Vtba22bdum6667Tn/96181ceJESdKpU6f0i1/8QqdOndKqVat01llnaf369XrzzTebze/BBx/U6tWrdeutt+qRRx7Rt99+q7S0NO3Zs0fbt29XYGBgq/Hs2rVLX3zxhR588EHV1NQoNTVVN954owYOHKjBgwdrzZo12rlzpzIyMjRo0CDdfPPNkqSKigolJibqzDPP1MqVKxUaGqqsrCzNnDlTr776qiZNmiRJev/993XzzTfrqquu0vLly23rsKamRkOGDLHFUVVVpcTERJ04cUJLly7VT3/6U7377rtauHChTp48qVtvvdUw/g8//FDz5s2zff76+np99tlnslgsrX7ud955RzNnztSECRO0Zs0aVVdX69FHH1ViYqJ27NihqKgovfTSS3r22Wf18ssv6+2335YkDRo0qMV5JicnKzs7W7fddpsuv/xynThxQrt27dKBAwc0dOhQw/d8+eWXmjBhgubNm6fg4GAVFRUpPT1dhw4d0oMPPujUZ/zvf/+r6dOna/To0Xr66ad15pln6j//+Y/y8/Nty/nmm280ceJE9e3bV48++qjOOussvf7665o9e7Y2bNigKVOmSJJmzpyp8PBwrVq1Sn369FFFRYXefvvtZiegznr11VcVExOjxx57TDU1Nbrvvvs0a9YsffzxxwoKOn1o9Mgjj+iJJ57QLbfcosTERO3du1ePPvqoSkpKlJ2d3WIPD2e/+6NHj2r+/Pm68847dfbZZ2vVqlWaPXu2br75Zu3fv18ZGRk6ePCgli1bppSUFFuhqr6+Xtddd53++c9/KjU1VSNGjFBubq7uvfdeHTp0SPfff78k57aFxYsX69ChQyosLNTGjRslSd27d7eLc+nSpZo8ebKysrJUVlamBx54QAEBAXrmmWccruff/OY3mjVrlm6//Xbl5ORoxYoV+slPfqLf/OY3kqRDhw7p2muv1dlnn60///nP6tatm55++mn95z//cf7LBAB4HEUDAPCwa6+91vbaarXq4osvVkhIiObPn6+MjAy769EPHTqkrVu32k7+f/azn+m8887T5s2bbb/QrlixQsOGDdOGDRtkMpkkScOHD9fll1/e5qLB8uXLba/r6+sVHx+v/fv364UXXrAVDV5++WV9+eWXevfddzV69GhJ0qRJkzR+/Hh98803tvd/9dVX+tOf/qQlS5ZoyZIltuFDhgxRYmKicnJydPXVV7caz3//+1/99a9/VVhYmCTpu+++09KlSzV69GhbrAkJCdq+fbveeOMNW9EgMzNTlZWVevvtt21Flquuukpjx47VI488YisarFixQkOHDtXGjRttJ39Dhw7VpEmT7IoGzzzzjL7++mvt2rXLtm4vv/xyWSwWpaen67e//a3tJLOxgoIChYWF2XoESNIVV1zR6meWTn8PAwcO1F//+lfbfOPi4jRmzBitXr1ajz76qH72s5/Zrh931C08Ly9PW7Zs0WOPPab58+fbhjta/8nJybbXVqtVl1xyiU6dOqWnnnpK999/vwICAhx+xrKyMlVWVuqhhx6S2Wy2Db/hhhtsrx977DFZrVZlZ2fbtoMrr7xS5eXlevTRRzVlyhQdOnRI//73v/Xyyy/bigiS9Ktf/arVz9Cabt266dVXX1W3bt1sw+bMmaPdu3dr7NixOnLkiFavXq3rr79eK1eutMV11lln6dZbb9W2bdvsYmnM2e/+6NGjeuKJJ3TppZdKkvr376/x48crNzdXH330ka2wtmfPHj333HOqq6tTYGCgtm/frg8//FCZmZm2dXnFFVfo2LFjWr16te644w716dPHqW1h0KBB6tOnj7p3795iLl1yySW2dXDFFVdo//79Wr9+vf785z/b2p+W3HHHHbYCweWXX64dO3Zo06ZNtmGZmZk6fvy4Nm3apJ/85Ce29Txy5MhW5wsA6FhcngAAHlZVVaUHHnhAsbGx6tevn+3Ew2q16vPPP7eb9txzz7U78e/bt6/69u1rOymvq6vTJ598op///Od2B+yxsbH66U9/2uYYi4qKdN111ykmJkZ9+vTRWWedpffee0/79++3TfPxxx8rOjraVjCQJJPJpGuuucZuXu+//77q6+s1c+ZM1dbW2v6NGTNGISEh2rVrl8N4LrroIlvBQJLtF/Err7zSbrqhQ4eqvLzc9veuXbsUFxdnO0mSpMDAQM2YMUPFxcWqqqpSXV2dCgsLdc0119j9WhwXF6dzzjnHbv4NBZKGHhgN/6688kodPnxYe/fuNYz/wgsvVGVlpebNm6dt27Y1685tpLq6Wv/85z81ffp0u0LEwIEDNXbsWO3cudPhPJp67733ZDKZNGfOHJfed+DAAS1YsEBms1l9+/bVWWedpeXLl8tisej777+X5PgzDh48WGFhYfr973+vV1991a6w1ODdd9/VpEmTFBoa2mz9lpSUqKqqSr1799bAgQP10EMP6f/+7/+abTNtkZCQYFcwGD58uCTZYvz444916tQpXXfddXbvmzFjhoKCglr9Lpz97nv16mUrGEg/5vjll19u1xNn6NChqq2t1YEDBySdzvGAgIBmRZOZM2fq1KlTtp4czmwLzpg8ebLd38OHD9fJkyd18OBBl997/vnn2+XBxx9/rDFjxtgKBpJ0xhln6KqrrnIqNgBAx6BoAAAedscdd2jt2rW69dZbtXnzZr333nvKyMiQJJ04ccJu2oiIiGbv7969u226Q4cOqaamRn379m02Xb9+/doU3zfffKNrrrlGR44c0eOPP67t27frvffe08SJE+3i++6775xabuOTyrPOOsvu39GjR3X48GGHMTW9nrnhBM9o+MmTJ21/HzlyRJGRkc3mFxkZKavVqsrKSts6NFpfRp9l165dzT5Hw0l4S59l/Pjx+r//+z998803+s1vfqMhQ4bo2muvVUlJSYufubKyUlartcX4nbkfRFOHDx9WRESEzjjjDKffU19fr+uvv165ublatGiRtmzZovfee08pKSmSfsxZR58xLCxMb731lvr376+UlBSZzWaNGzfO7nKW77//Xq+88kqz9XvffffZ4jeZTHrjjTcUGxurhx56SKNHj9bPfvYzvfDCCy6vjwZNt7OGLvkNn61hXTf9LoKCgtS7d+9Wvwtnv/vGRbHGMbSU+w15fuTIEUVERDS7jKAh1obYnNkWnOFoXbn63ra0KQAA7+LyBADwoBMnTmjr1q1aunSpbrvtNtvwTz/9tE3z69Onj7p162Y7MW/s4MGDio6Otv3do0cPSVJNTY3ddE1PdN99911VVVVp7dq1dr/4HTt2zG66yMhIw1/Wm/7i2NDNfPPmzYY3MzMqjLhLRESE4S+g3333nUwmk8LDw9WrVy9169bNcLqDBw9qwIABtr979+6tvn372nU1b6zxpQxNXXvttbr22mv13//+Vx988IEefPBB/fKXv1Rpaanh9fDh4eEymUz67rvvDONvy3rr06ePjhw5ouPHjztdOPjiiy/0ySef6Nlnn7X7pT0nJ6fZtI4+48iRI/Xiiy+qtrZWn3zyiZ544gnddNNN+uCDDzR8+HD17t1b48aN04IFCwxjOfvssyWd7m3x7LPPymq1qri4WM8//7zuuecenXPOObZLTtypYV0fPHhQ559/vm14bW2trRDTGle/e1djO3LkiE6dOmVXOGjIm4bYnNkWvC0yMrLFtgwA4DvoaQAAHnTy5EnV1dXZdYWWTt8foC0CAwN14YUX6q233rK7U3pRUVGzpxc0nPyWlpbahtXW1uq9996zm66hONA4xv379+ujjz6ymy4uLk7ffPONdu/ebRtmtVq1ZcsWu+kSEhIUEBCgr7/+WhdeeGGzfwMHDmzDJ3fOpZdeqo8//thuXdTV1Wnz5s0aOXKkQkNDFRgYqFGjRmnLli12N9IrKChodgO2K6+8Up999pmio6MNP0tISIjDmM4880wlJiZq7ty5OnDgQIu9E3r16qXY2Fi9+eabdk8paLh54Pjx411dHUpISJDVatX69eudfo9RPtTU1Ogvf/lLi+9x9BmDgoIUFxene++913ZjQOn0+v300081bNgww/UbHBxsNx+TyaSRI0cqLS1Nkpo98cBd4uLi1L17d23atMlu+Ouvv67a2lqnvwtnv3tXXHrppaqvr9cbb7xhN/wvf/mLunfvrosuusg2naNtQZKCg4ObPcmlo8TFxenjjz+2u8To+PHj2r59u1fiAQAYo6cBALjBO++806wrcGhoqBISEhQXF6fVq1crMjJSffr00UsvvaSKioo2Lys1NVXTpk3TDTfcoLlz5+rQoUN67LHHFBkZafcr5qhRozRo0CDdf//9slqt6t69u1544QW77vzS6Wuog4KCbHdyP3DggFasWKHo6Gi7k+pZs2bpySef1I033qg//OEPtqcnNNwVvmHZgwYN0oIFC7R48WLt379fl156qXr06KFvvvlG77//vm688UZNmDChzZ+/NbfffrtefvllTZs2TampqQoJCdELL7yg/fv367XXXmu2DmfNmqWbbrpJP/zwg1asWNHsO7z99tu1efNmJSUl6fbbb9eQIUN07NgxlZWVadeuXbY7zjeVlpam77//Xpdddpn69++vb7/9Vs8++6wuuOACnXXWWS3Gf++992rmzJm67rrr9Nvf/lbV1dVasWKFQkNDdeedd7q8PiZMmKBrrrlG9957r8rLyzVhwgTV1NRo165duuqqq3TZZZc1e895552nAQMG6JFHHlFgYKCCgoL09NNPu/wZt23bpnXr1mnq1Kn66U9/qmPHjunZZ59VSEiI7aZ7y5Yt05VXXqkpU6bolltu0TnnnKPKykrt2bNHX375pTIzM1VSUqKlS5dq+vTpGjx4sOrq6vTyyy8rKCjILo8uuOACnXPOOcrOznZ5PTUVERGhO++8U0888YR69uypq666Svv27VNaWprGjRvX7Fp9V9ZLe02aNEnjxo3TwoUL9cMPP+j888/X9u3btX79ei1cuFB9+vSR5Py2cN555+nIkSN64YUXbIWaESNGtDtOZ9xxxx164YUXNGPGDC1ZskTdu3dXZmamgoODHd5kEQDQcSgaAIAbLF68uNmw888/Xx9++KGysrJ0zz33aNGiRerRo4fthL/pTdaclZCQoOeff17p6en6zW9+o8GDB2v58uV6/PHHbb8eSqd/3X355ZeVkpKi22+/XREREZo/f75Gjx6t9PR0uziff/55Pfroo7r++us1aNAgPfjgg3rnnXf0wQcf2Kbr3r27Nm/erMWLF2vhwoXq1auXfvnLX2rMmDF68MEH7ZZ9//33a+jQocrKylJWVpZMJpN+8pOfKD4+vs1PeHDG2WefrW3btumBBx7QPffco5MnT+qCCy7Qa6+9ZnsKhHS6UPL888/r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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(16,6))\n", "for i,c in enumerate(classes):\n", " ax=plt.subplot(nclasses,1,i+1)\n", " ax.bar(range(clf.feature_count_.shape[1]), lik[i,:], facecolor=colors[i], alpha=0.9, edgecolor=colors[i], lw=2)\n", " plt.title('$p(t_j|C_{0:1d})$'.format(c), fontsize=14)\n", "plt.suptitle('Language models of classes, no smoothing ', fontsize=16)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABAgAAAInCAYAAAAVs2vDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAAsTAAALEwEAmpwYAAB7cUlEQVR4nO3deXQUVf738U9CMAhCArKJqIDEBRARiMiAYBCFiOMCM6g4CqLjOu5swREVZRAFx1FBHRUdkHF5BlEUQXHLQVAjIAoqGtcfIgoCCRi2bM8foZteqrqquqv39+scj6Sr6t5vVd17q/r2rVsZZWVltQIAAAAAAGktM94BAAAAAACA+KODAAAAAAAA0EEAAAAAAADoIAAAAAAAAKKDAAAAAAAAiA4CAAAAAAAgOggAmCgpKdGoUaN03HHHqUWLFmrfvr3OO+88/fe//1V1dbUkad68ecrNzdWPP/4Y52jj48cff9TUqVP1ww8/uJ72smXLlJubq2XLlrmedrwMGTJEgwcPdi29a665Rp06dbJcz6icnnDCCbrmmmtCrjN16lQVFxe7Fq8TJSUlOv3009WmTRvl5ubqs88+M1zvtdde0yOPPBLj6IDU89lnn2nq1Knavn170LLc3Fzdc889lmkMGTJEQ4YMiUZ4ABAzdBAACDJr1iwNGjRI27dv15133qmXX35ZjzzyiDp27Khbb71VS5YsiXeICeH//u//NG3atKh0EJx44olaunSpTjzxRNfTTjeDBg3S0qVL1bp1a0frTJs2LW4dNNdff72qqqr03HPPaenSperYsaPheosWLdKsWbNiHB2QetauXatp06YZdhDYNWPGDM2YMcPFqAAg9rLiHQCAxLJ8+XLddttt+utf/6r77rvPb9mQIUN03XXXqaKiIk7Rpb7q6mrV1taqSZMmys/PdzXNrCx3m/za2lpVVlbqoIMOcjVdtzVv3lzNmzePeJ1YqampUWlpqW699Vb1798/5vnv3btX2dnZMc83kZgdg8rKSmVlZSkjIyMOUSHRHXfccfEOAQAixggCAH7+9a9/qWnTppo8ebLh8vbt26tLly6m28+fP19//OMfdfTRR+vwww/Xqaeeqv/+979B6z366KM6+eST1bp1ax111FE67bTT9Oqrr3qXv/322zrzzDN15JFH6vDDD1fPnj01bdq0kLF7hokvX75cI0aM0OGHH6727dtrzJgx2r17t9+6v/zyi6666ip16NBBLVu21B/+8Ae98MILfuv8+uuvuvrqq3XcccepZcuWOvbYY3XBBRdoy5YtWrZsmf74xz9Kks477zzl5uYGPRLwzDPPqE+fPmrVqpU6dOigv/3tb0G/TuXm5uruu+/WP//5T3Xt2lUtWrTQ559/bviIQW1trWbOnKmePXuqRYsWOvbYYzV27Fjt2LHDVppGfvzxR+Xm5urJJ5/UxIkT1bFjRx122GG64IILgh4dOeGEE3TllVdq7ty5ys/PV4sWLfTGG29Ikt566y2dccYZat26tY488kiNGDFCpaWlhnkuWrRIvXv3VsuWLZWfn68FCxb4Lf/uu+905ZVXqmvXrmrdurVOPPFE3XLLLSorKzNM76OPPlJBQYFatWqlE044QY8//rjfcjuPwgSuk5ubK0maPn2699xOnTpVDz/8sFq2bKnffvvNb/va2lqdeOKJGj16tGkekrRjxw6NHTvWW6Z69uypmTNnqra21htHs2bNVFNTo/vvv1+5ubk64YQTDNO65ppr9Nxzz+nnn3/2xui77m+//aabb75Zxx9/vPdYP/PMM4b7vXz5co0cOVJHHnmkTj/9dEkHzvfzzz+vnj17qnXr1iosLNS3336riooK3XTTTWrfvr3y8vJ02223qaqqKuS+S/bqnST98MMPuvLKK3XMMceoZcuWOvHEEzV+/Hi/dd5//32dd955OvLII9WmTRv16dNHc+bM8S73nDNfnvI+b948v+PYqVMnlZSU6Mwzz1Tr1q01adIkv7oxadIk7zkrLy+XJC1cuFADBw7UYYcdpiOPPFIjR47Uhg0b/PLzHMP58+fr5JNPVps2bXTaaafpgw8+CNpnq/2R7LUpdnke+XnvvffUr18/HXbYYerdu7dfO+zhpH77Wr16tc477zy1b9/eW5dvvfVW73JP+fvoo480atQotW3bVnl5eXrggQe8+Z566qlq06aNCgoKtGbNGr/07baJdurdddddJ0nq3r27tz4FthmPPfaYunbtqrZt2+qss87Sl19+GXRMfR8x8LTjr7/+usaOHasOHTqoQ4cOuvLKK4Pas99++02XX365jjjiCB111FG69tpr9frrr6fco2YAEh8jCAB4VVdXa9myZRoyZIgaNGgQVho//PCDzj33XN18883KzMzU8uXLdcMNN2jPnj3eL08vvvii/v73v2vcuHHq3bu39uzZo88//9x7o/vDDz/ooosu0rnnnqtx48apfv36+u6772wP5b/qqqt03nnn6YorrtCqVat03333qaKiQo8++qgkqaKiQkOGDFFZWZkmTZqkww8/XC+++KKuuuoq7d69W6NGjfKms2HDBk2ePFmHH364tmzZouLiYu3atUsnnniipk+frjFjxmjatGnq3r27JOnYY4+VJN1555165JFHdNVVV+nuu+/Wzz//rClTpujLL7/Um2++qXr16nnj/e9//6t27drp7rvvVqNGjXTYYYcF3eBK0t13360HHnhAf/3rXzV48GCtX79e//jHP7Ru3TotWrRImZmZIdMM5Z///Ke6dOmimTNnasuWLbr77rs1dOhQffjhh6pfv753vWXLlmnt2rUaP368WrRooSOPPFJvvfWWhg8frn79+mn27NmqqKjQP/7xDw0ePFjLli1TmzZtvNt/9913Gj9+vCZMmKAWLVpo9uzZGj16tA499FD169dPkrRp0ya1bdtWU6dOVW5urn744Qc98MAD+vOf/6ylS5f6xb1z506NHj1aN954ozp06KD58+dr/PjxOuSQQ3TxxRdblhUzS5cu1RlnnKERI0bosssukyS1adNGDRs21JQpUzRv3jzdeOON3vXfeecd/fjjjyHnA6ipqdEFF1ygTz/9VEVFRercubPeeOMN3Xbbbdq6dasmTZqkQYMGacmSJRo8eLAuueQSXXrppaYjNMaNG6etW7dq9erVeu655yTJu+6OHTs0ePBg7dmzRxMmTNBRRx2lt99+W7fccov27t2rq666yi+tK6+8UsOGDdOcOXP8vuivWLFC33//ve68805VVlaqqKhIl1xyidq1a6cOHTpo9uzZWr58uaZPn6727dvriiuuMN1/u/Xuhx9+0Omnn66DDz5YEydOVIcOHfTTTz/p3Xff9aa1aNEiXXrpperVq5f++c9/6tBDD9WXX34Z9AXdrh07dmj06NG6/vrrdfvtt+vggw/2LpsxY4ZOOukkPfjgg6qurlZ2drZmz56tW265RRdffLHGjRun33//Xffee6+GDBmi5cuXq3Hjxn7HsLS0VLfddpuys7M1ZcoUXXDBBfrss8+8HVF29sdJm2LX999/rwkTJujmm2/WoYceqkceeUSjRo3Sxx9/rA4dOkiSo/rt6/fff9fQoUPVo0cPzZo1S4cccoj+7//+TyUlJUHrXnPNNbrwwgs1atQovfzyy5o8ebLKy8u1dOlS3XrrrWrUqJHuuOMOXXzxxfrkk0+85dxOm2i33o0ZM0bTp0/Xf/7zH+8++T5y9MILLygvL0/33nuvKisrdfvtt2vEiBH6+OOPLUdnTZgwQYMGDdKTTz6p0tJS3XHHHcrMzNRjjz3mXeeSSy7R559/rkmTJqlDhw5auHChxo0b5+yEAoAL6CAA4LV161bt3r1bRxxxRNhp+P46VFNTo759++rXX3/VU0895e0g+Pjjj9W5c2e/XwTPPPNM778//fRT7du3TzNmzFCTJk0kydFQ6zPOOMM7odSAAQOUkZGhf/zjH7r11lvVsWNHzZs3T99++61effVVnXrqqd5tNm/erHvuuUeXXHKJ6tWrp48//li33367hg8f7k37vPPO8/7b0xlw7LHH+j0O8OOPP+qhhx7S+PHj/faxY8eOGjx4sBYvXqyzzz7b+3ltba1eeuklvy8lX331ld8+bd++XY888oguuugi3X///ZKk008/Xc2bN9dVV12lJUuW6KyzzgqZZiiHHHKInnvuOW8ngyfW5557Tpdeeql3vbKyMr333ntq1aqV97PLLrtM7dq10//+9z/vjXJ+fr569uypRx55RP/4xz+8627evFlLly71Hq+BAwfqlFNO0dSpU70dBH369FGfPn282/Tq1UsdOnRQYWGhPv30U795GXbu3KkHH3xQw4YN86a3adMmTZ06VSNGjAh7KLgnvjZt2gQ96nH++efrmWee0Q033OBN/+mnn9YxxxzjLU9G3nzzTX3wwQeaOXOmt/NiwIAB2rVrlx555BFdd911at68ufdLo1Hevtq3b69DDz1UBx10UNB6jz32mDZs2KAVK1bo6KOPliSddtppKi8v17Rp03T55Zf7fak555xzDEcN/f777/rf//6nnJwcSXWjaiZMmKAePXp461hBQYHefPNNvfzyyyE7COzWu6lTp2rPnj16//33/Tq2RowYIamubE+YMEEnnHCCXnvtNW+ZPe2000zztvL777/r8ccf9/v11/PrcYsWLTRv3jzvuf79999155136uKLL9bMmTO963fv3l35+fmaO3eurr32Wu/nO3fu1Pvvv+89r61atVJBQYGWLl2qP//5z7b2x2mbYtfWrVv1+uuve8vIiSeeqGOPPVYLFizwtuX33HOP7frtq7S0VGVlZbrrrrv8Rp0ZddxdcMEF3i/Dffv21WuvvaaZM2dq5cqVateunaS668mIESNUUlKivn372m4T7da79u3bS6ob9eHpHPFVv359vfDCC34dpiNHjtSqVavUq1evkMf5D3/4gzfGAQMG6JtvvtGcOXP06KOPKiMjQ++8844++OADPf300zr//PO9+3LhhRfqp59+Cpk2ALiNRwwAuOrbb7/V5ZdfruOPP977XPecOXP0zTffeNc56aSTtHbtWo0dO1bvvfeedu3a5ZfGCSecoPr16+vyyy/XK6+8oi1btjiKwfdLvCQNGzZMNTU1WrVqlaS6X/TatGkT9GVu+PDh+u2337R+/XpvnA8//LAeffRRff75597hqFbee+891dTUaPjw4aqqqvL+17NnTzVu3FgrVqzwW9/za2koH3/8sfbt26cLLrggaN+ysrK0fPlyx2n6Ouecc/xGIJxyyik6/PDD9fHHH/ut17NnT7/OgYqKCn366acaOnSo3xfOdu3aqVevXkFxtW3b1u/LbL169XTuuedq1apVqqmpkSRv51B+fr5at26t5s2bq7CwUJL8ypFn+3POOcfvs6FDh+qnn37Szz//bHv/nbjiiiv0/fffe99w8Msvv2jJkiUaOXJkyO1WrFihzMxM/fnPf/b7fPjw4dq3b5/hL6vhevvtt9WjRw8dddRRfmXw9NNP17Zt27xl3MPsy+XJJ5/s7RyQpGOOOUaSvI8h+H6+cePGkDHZrXfvvvuuBg0aZDrqpbS0VBs2bNCll17qV2YjUb9+fdM3bAwZMsSvo+njjz/Wjh07guq3Z3h8YP0++eSTvZ0Dkrxv3vB88bOzP07bFLuOPvpob+eAVNcZ0qJFC29sTuu3rw4dOignJ0c333yzXnjhhZBfdM844wzvv7OystShQwd17NjR2zkgHSh7nnJmt010q94VFBT4dQ4EnsdQBg0a5Pd3p06dtHfvXm3evNm7L/Xq1Quqh+eee66t2ADATXQQAPBq1qyZDj744LCH6f7+++8677zztG7dOt1xxx1avHix3n33Xf3lL3/R3r17vetddNFFeuCBB7Rq1SoNHTpU7du311/+8hfvL3aeoeI1NTW66qqrdMwxx2jgwIF6//33bcXRsmVLv79btGghqW7oulT3a7zvl1wPz2eeRx2efvppFRYW6qGHHlKfPn10/PHHa9q0ad4vsmY8HRonnXSSt5PE89/OnTu1bds2v/VDza7v4YkpMO6srCw1a9Ys6DlkO2n6CjxmUt1x8xwzs3TLyspUW1trejwD4/Kci8C89+3b532u/6677tK9996r4cOH64UXXtA777yjuXPnSpL27Nnjt21ubq7fTbvvvgTG7pYePXqoW7dumj17tiRpzpw5ysrK8v7CbWb79u1q2rRp0CMDgeXODVu2bNGKFSuCyp+nE8NuGfT9YivJe6yNPvet40bs1rtt27aZDlv3jT3UOk41b97cdIh+4LHx1O9zzz036Ph+8cUXQce2adOmfn97Jj/0lGU7++O0TbErMDap7jEVT2xO67evnJwcvfrqq2rdurXGjBmjLl26qHfv3nrllVeC1jUqT2Zlz1PO7LaJbtW7wGPlSS+wTQpn219//TVkWwYAscQjBgC8srKy1LdvX7377rthzWT+8ccfa8OGDVq8eLF69+7t/Txw8rKMjAxddtlluuyyy1RWVqZ33nlHf//73zV69Gi9/fbbkqR+/fqpX79+2rt3rz788ENNnTrV+9zuoYceGjKOzZs36/jjj/f+7bm59vwi2bRp06BfoqW6mzTPcqnuy+z06dM1ffp0lZaW6rnnntPUqVPVvHlzXX755ab5N2vWTJK0YMGCoJtc3/R9j4cVzzaB+1ZVVaVt27aFlaYvzy9ZvrZs2RI0QV5gurm5ucrIyPAeO1+//vprUFxGo0E2b96sgw46yPsWgZdeekkXXnihxo4d613n999/N4y7rKxMlZWVfjfWnn2xmnchEpdffrluvvlm/fzzz5ozZ47OPfdcwy9bvpo2bart27dr3759fl9WAsudG5o1a6YWLVro3nvvNVwe+NrEWMzKb7feHXrooSE7dzz136oDKDs7W5WVlX6fmX0ZDLX/gcs89XvWrFl+ddHjkEMOCRlXIDv747RNcYvT+h2oa9eumjt3rqqqqvTJJ5/ogQce0GWXXab333/f+wt8uOy2ibGsd+Fq1apVyLYMAGKJEQQA/Nx0003atm2bJk2aZLj8hx9+0Lp16wyXeR4V8L3BKSsr0+uvv26aX25uroYOHarzzjsvaEZoqe4mv3///rrhhhtUUVERciZ6j5dfftnv7/nz5yszM1M9e/aUVPeM+8aNG/Xhhx/6rfe///1PLVq0MHxVVV5eniZNmqTc3FxvnJ4OlMA3JBQUFCgzM1MbNmzQSSedFPSf77BZu/Lz83XQQQdp/vz5fp+/9NJLqqqqUt++fR2n6WvhwoV+IyM+/PBDbdy40fJVi40aNVK3bt30yiuvqLq62vu5ZzKywLh++uknv8cWqqur9corr6hHjx7e4dW7du0K+iXNd9Z5X9XV1Vq4cKHfZy+99JLatm0b8S/MBx10UNC59fjTn/6kQw45RFdccYV++ukny7cXSHXlrqamJqh8/r//9/900EEH6eSTT3YcY3Z2tmGMp59+ur7++mu1bdvWsAz6TqIXK3brXUFBgd544w398ssvhul07NhRRx55pObMmRPysZ8jjjhCX3zxhd9nnrduROLkk09W48aN9d133xke27y8PEfp2dmfaLQpdjit32aysrKUn5+v2267TTU1Nfr6668jjs1um2i33pm157GQn5+v6upqvfbaa36fB8YMALHACAIAfvr06aMpU6botttu01dffaURI0aobdu2KisrU3FxsebOnasnnnjC8FWHvXr1UpMmTTRmzBgVFRVp165duv/++3XooYf6zcp/44036pBDDtHJJ5+s5s2b69tvv9ULL7yggoICSdLs2bO1YsUKnXHGGTr88MO1detW/fOf/9Rhhx1m+ItdoKVLl+r222/XgAEDtGrVKk2bNk0XXnih91nbESNG6LHHHtMll1yi22+/XW3atNGLL76od999Vw8++KDq1aun8vJynXfeefrzn/+sY445RvXr19eiRYtUVlbmjbNjx47KysrSs88+q6ZNmyo7O1sdO3ZU+/btddNNN2ncuHH65ptv1KdPHzVo0EA//fST3nvvPV1yySXeCfnsatq0qf72t7/pgQceUMOGDXXmmWfqq6++0pQpU9S7d++gZ1yd+v33370z9v/222+aPHmyjj76aF100UWW2952220aPny4LrjgAl1++eWqqKjQ1KlT1aRJE/3tb3/zW7dly5a67LLLVFRUpObNm2v27Nn65ptvNGPGDO86AwcO1HPPPadOnTqpQ4cOevXVV02fE27cuLHuuOMObd26VUcffbT+97//6b333tOsWbMi/lX82GOP1ZtvvqmBAwcqNzdXrVu39o5KOPjggzVixAjNmjVLnTp1spykTKp7zrp379665ZZb9Ntvv+n444/Xm2++qTlz5uiWW26xHBljFuP27dv11FNP6aSTTlJ2drY6d+6sa6+9VgsWLFBhYaGuvfZadezYUbt27VJpaalWrFjhfetBLNmpd5JUVFSkpUuX6swzz9Stt96q9u3ba9OmTXr77bf173//WxkZGZo6daouueQS/fGPf/S+BePrr7/Wli1bNHHiREl1c1F4RgDl5+drxYoVQV8mw9GkSRNNnjxZY8aM0datWzVw4EA1adJEmzZt0vLly9W3b9+g591DsbM/TtoUz+svzV4L6pST+u1ryZIleuaZZzRkyBAdddRR2rVrlx5//HE1btzYsuPRDrttot1655l09sknn9RFF12k+vXrq3PnzqZvEXHTgAEDdMopp+jGG2/U1q1b1aFDB73yyive19O6NdcGANhBBwGAINdee6331VS33367tm7dqkMOOUQnnXSS/vnPf3onjAvUvHlzzZ07V3//+981cuRItW7dWldffbW2b9+uadOmedfr1auX5s2bpxdeeEE7duxQ69atNXz4cBUVFUmSunTpoqVLl2ry5MnasmWLmjZtqlNOOUVPPPGErYn3Hn/8cT3yyCOaPXu26tevr5EjR+ruu+/2Lm/UqJEWLVqkSZMm6c4779Tvv/+ujh076vHHH/dOeNWgQQOdeOKJmjNnjjZs2KDMzEx17NhRTzzxhHem82bNmun+++/Xgw8+qCFDhqi6uto7Q/ukSZN0zDHH6Mknn9STTz6pjIwMHX744erfv7/fpGBO3H777Tr00EP19NNP66mnnlKzZs104YUXatKkSRHfQN5888367rvvdO2112rXrl069dRTdd999wX9km9k4MCBevHFFzVt2jRddtllOuigg9SnTx9Nnjw5aJh/hw4ddMMNN+juu+/Wt99+qyOPPFJPPfWUX4fJfffdp9raWu85O/PMM/XUU09pwIABQXk3btxYTz31lCZMmKAvvvjCO6zeaj4AO+6//36NHz9eF154ofbu3avx48d7y6hUNxnmrFmzvK9BtJKZmakXXnhBd999t/71r39p27ZtOvLIIzVlyhS/We+duPTSS7Vy5Urva+GOOOIIrV27Vjk5OXrzzTc1bdo0Pfjgg9q0aZNycnKUl5enP/7xj2HlFSk79U6SjjrqKL311lu65557dNddd6miokKHHXaY31s6hgwZogULFuj+++/X9ddfL6lu4rxrrrnGu84tt9yi8vJyPfHEE3rwwQd1xhln6PHHHw+aYDEcl112mQ4//HA99NBD+t///qeqqioddthh6t27d9BjOXbY2R+7bcquXbtcfXbdSf32dfTRR+vggw/W/fffr19//VWHHHKIunfvrgULFujwww93JTY7baLdenfCCSdowoQJ+s9//qP//Oc/qqmp0aeffqqjjjrKlVitPPvssxo3bpzuvPNOZWZmqrCwUBMnTtS1117rfZsPAMRCRllZmb1puQEgwc2bN0/XXXedVq9ebfiaKgT78ccfdeKJJ+qhhx7ye50hrN1999167LHH9OWXX3IDj4Rx3HHH6ZprrtGNN94Y71AQobFjx2revHn6/vvvHc8JBADhYgQBAAAOfPrpp/rmm2/02GOPaeTIkXQOIGF8++232rt3b8hJVJGY5s2bpx07duj444/Xvn379NZbb+mpp57SDTfcQOcAgJiigwAAAAf+8pe/aMuWLRowYIDfIwdAvB199NH6/vvv4x0GwtCoUSM9+uij+uGHH7R3714dddRRmjRpkm644YZ4hwYgzfCIAQAAAAAA4DWHAAAAAACADgIAAAAAACA6CAAAAAAAgOggAAAAAAAAooMAAAAAAACIDgIAAAAAACA6CAAAAAAAgOggAAAAAAAAooMAAAAAAACIDgIAAAAAACA6CAAAAAAAgOggAAAAAAAAooMAAAAAAACIDgIAAAAAACA6CAAAAAAAgOggAAAAAAAAooMAAAAAAACIDgIAAAAAACA6CAAAAAAAgOggAAAAAAAAooMAAAAAAACIDgIAAAAAACA6CAAAAAAAgOggAAAAAAAAooMAAIC0UlZWpry8PH3//feupbls2TKdcMIJjrcbOXKkHn74YdfiAAAAkaGDAACANDJjxgydccYZat++fdCyzz77TH/961/VqVMntWrVSl27dtXIkSO1evXqsPK6/fbbNXToUNPl48aN04wZM1ReXh5W+gAAwF10EAAAkCZ27dqlOXPm6JJLLglaNm/ePBUUFOiggw7S7NmztXLlSj366KPKzs7W7Nmzw8pv1apV6t69u+nyzp07q127dnrxxRfDSh8AALiLDgIAAFLE1q1blZubq5kzZ6qgoECtWrVSjx499M4770iSli5dqoyMDJ1yyil+25WUlOiGG27Q5MmTNXPmTJ1yyik64ogj1KdPH/373//W3Xff7SiOffv2qUWLFlqxYoWmT5+u3Nxc9erVy3DdwsJCzZ8/P7wdBgAArqKDAACAFLF27VpJ0ty5c3XnnXdq+fLl6ty5s6644grt3r1bK1asULdu3ZSRkeG33d///nf17NlT1113nWG6TZs2dRRHVlaWli5dKkl6++239dVXX+mNN94wXLdHjx5atWqVdu/e7SgPAADgPjoIAABIEWvXrlW9evX07LPPqn///urYsaPuuusubdu2TV9//bU2bNig1q1b+23z7bffqqSkRFdeeaVl+hdffLGOOuooXXrppSHXy8zM1C+//KLGjRure/fuatWqlXJzcyVJH330kaZPn+5dt3Xr1qqsrNQvv/zifIcBAICr6CAAACBFrF27VoMHD1bHjh29nzVu3Nj77z179qhBgwZ+23z66aeSpJNOOsky/auvvlqPPfaYrVg+++wzdenSJWi0Qq9evTRmzBjv3wcffLAkMYIAAIAEQAcBAAApYu3ateratavfZx999JEaNGigvLw8HXrooSorK/NbvmvXLklSo0aNLNM/9dRTdcghh9iOxejVhyNHjtQnn3zi/Xv79u2SpObNm9tKFwAARA8dBAAApIA9e/aotLRUNTU1fp8/8sgjGjp0qBo2bKiuXbvqq6++8lveqVMnSdLy5csN0/V0IDi1bt06denSJejz9evX67jjjvP+/cUXX6hNmzZq2bJlWPkAAAD30EEAAEAK+PLLL1VbW6v58+drxYoVKi0t1ZVXXqnvv/9ed9xxhyRpwIAB+uqrr7Rt2zbvdt27d9cZZ5yhcePGad68efr222/13XffacGCBTrvvPO8jyA4VVVVpa+//lqbNm3yjlrYtWuXMjIyvI8VSNIHH3ygAQMGhL/jAADANXQQAACQAtauXaujjz5aRUVFuuKKK9SvXz+Vl5dr8eLFatWqlSSpc+fO6tGjR9BrBZ999lldf/31mjlzpk499VQVFBTowQcfVH5+vq25CYzcfvvteumll9SpUydNnjxZUl0nhu/ogT179mjRokUaOXJkmHsNAADclBXvAAAAQOTWrl2rTp06adiwYRo2bJjpeuPHj9eECRM0evRo1atXT5KUnZ2tG2+8UTfeeKNr8QwfPlzDhw/3++zzzz9X586dvX/PnTtXPXr0UH5+vmv5AgCA8DGCAACAFLB27Vq/L99mBg4cqCuuuEIbN250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zz7TX//6V3Xq1EmtWrVS165dNXLkSK1evTqsvG6//XYNHTrUdPm4ceM0Y8YMlZeXh5U+AABwFx0EAACkiV27dmnOnDm65JJLgpbNmzdPBQUFOuiggzR79mytXLlSjz76qLKzszV79uyw8lu1apW6d+9uurxz585q166dXnzxxbDSBwAA7qKDAACAFLF161bl5uZq5syZKigoUKtWrdSjRw+98847kqSlS5cqIyNDp5xyit92JSUluuGGGzR58mTNnDlTp5xyio444gj16dNH//73v3X33Xc7imPfvn1q0aKFVqxYoenTpys3N1e9evUyXLewsFDz588Pb4cBAICr6CAAACBFrF27VpI0d+5c3XnnnVq+fLk6d+6sK664Qrt379aKFSvUrVs3ZWRk+G3397//XT179tR1111nmG7Tpk0dxZGVlaWlS5dKkt5++2199dVXeuONNwzX7dGjh1atWqXdu3c7ygMAALiPDgIAAFLE2rVrVa9ePT377LPq37+/OnbsqLvuukvbtm3T119/rQ0bNqh169Z+23z77bcqKSnRlVdeGTLtn376SUOGDFGvXr30hz/8QS+//LLpupmZmfrll1/UuHFjde/eXa1atVJubq4k6aOPPtL06dO967Zu3VqVlZX65Zdfwt5vAADgjqx4BwAAANyxdu1aDR48WB07dvR+1rhxY++/9+zZo5YtW/pt8+mnn0qSTjrppJBpZ2VlaerUqeratat+/fVXnXbaaTrjjDPUqFEjw/U/++wzdenSJWi0Qq9evfweNzj44IMliREEAAAkAEYQAACQItauXauuXbv6ffbRRx+pQYMGysvL06GHHqqysjK/5bt27ZIk0y/6Hq1bt/am3apVKzVr1kzbt28PGYvRqw9HjhypTz75xPu3J43mzZuHzB8AAEQfHQQAAKSAPXv2qLS0VDU1NX6fP/LIIxo6dKgaNmyorl276quvvvJb3qlTJ0nS8uXLDdP1dCD4WrNmjWpqatS2bVvTeNatW6cuXboEfb5+/Xodd9xx3r+/+OILtWnTJmhkAwAAiD06CAAASAFffvmlamtrNX/+fK1YsUKlpaW68sor9f333+uOO+6QJA0YMEBfffWVtm3b5t2ue/fuOuOMMzRu3DjNmzdP3377rb777jstWLBA5513nvcRBI/t27fr6quv1oMPPhgynqqqKn399dfa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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(16,8))\n", "for i,c in enumerate(classes):\n", " ax=plt.subplot(nclasses,1,i+1)\n", " ax.bar(range(clf.feature_count_.shape[1]), post[i,:], facecolor=colors[i], alpha=0.9, edgecolor=colors[i], lw=2)\n", " plt.title('$p(C_{0:1d}|t_j)$'.format(c), fontsize=14)\n", "plt.suptitle('Class posterior probability of term occurrence, no smoothing ', fontsize=16)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABBgAAAInCAYAAAAyHeorAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAAsTAAALEwEAmpwYAACK70lEQVR4nOzdeXwU9f3H8feSQBDCJkFOOeRIUElEREKkHhA5NAbLpaC0glLA4MFlFCIIglIOg9DK0QqlFkQ8UQTEQinJz4IaA0VBBFLEA4sNErOJMQg5fn+EHXc3u9lNNpvshtfz8eBBdmZ25vOd+c53vvPZ7+yacnNzSwUAAAAAAOCFerUdAAAAAAAACHwkGAAAAAAAgNdIMAAAAAAAAK+RYAAAAAAAAF4jwQAAAAAAALxGggEAAAAAAHiNBAMAOxkZGbrvvvt05ZVXqnnz5urYsaOGDBmil19+WcXFxZKkDRs2KDw8XF999VUtR1s7vvrqKy1YsEBffvllta/7/fffV3h4uN5///1qX3dtSUxM1G233VZt65s4caK6du3qdjln9fTqq6/WxIkTK1xmwYIFSk9Pr7Z4KyMjI0P9+vXTZZddpvDwcH366adOl9u6dauWL19ew9EB8DVX7Y837R4A1CQSDAAMK1eu1K233qoffvhBTz31lN5++20tX75ckZGRevTRR/Xee+/Vdoh+4euvv9aiRYt8kmC45pprtHPnTl1zzTXVvu6Lza233qqdO3eqVatWlVpm0aJFtZbgeeSRR1RUVKSNGzdq586dioyMdLrctm3btHLlyhqODoCvedv+eNLuAYAvBdd2AAD8w549ezRz5kyNHz9eixcvtpuXmJiohx56SAUFBbUUXd1XXFys0tJSmc1mxcbGVus6g4Ort6kvLS3V+fPn1aBBg2pdb3Vr1qyZmjVr5vUyNaWkpERZWVl69NFH1adPnxrf/s8//6yQkJAa3y6cq+h4cKzgij+1aQAuToxgACBJ+sMf/qCIiAjNmzfP6fyOHTsqJibG5fvffPNN3XHHHercubPatGmjm266SS+//HK55VatWqVevXqpVatWuvzyy9W3b19t2bLFmL9r1y4NHDhQ7du3V5s2bdSzZ08tWrSowtitQ0L37NmjUaNGqU2bNurYsaOSk5NVWFhot+x3332nBx54QJ06dVKLFi30q1/9Sq+++qrdMv/73/+UlJSkK6+8Ui1atNAVV1yhkSNH6vTp03r//fd1xx13SJKGDBmi8PDwco80vPjii7rhhhvUsmVLderUSQ8//LB++OEHu22Eh4fr6aef1tKlS9WtWzc1b95cn332mdNHJEpLS7VixQr17NlTzZs31xVXXKHHHntMeXl5Hq3Tma+++krh4eFas2aNnnjiCUVGRqp169YaOXJkuaG1V199tSZMmKD169crNjZWzZs319///ndJ0j/+8Q8NGDBArVq1Uvv27TVq1ChlZWU53ea2bdvUu3dvtWjRQrGxsXrrrbfs5n/xxReaMGGCunXrplatWumaa67RtGnTlJub63R9H330keLj49WyZUtdffXV+vOf/2w335Ohwo7LhIeHS5JSU1ONY7tgwQI9//zzatGihb7//nu795eWluqaa67R2LFjXW5DkvLy8vTYY48Zdapnz55asWKFSktLjTiaNm2qkpISPfvsswoPD9fVV1/tdF0TJ07Uxo0b9d///teI0XbZ77//XlOnTtVVV11l7OsXX3zRabn37NmjMWPGqH379urXr5+kX473K6+8op49e6pVq1ZKSEjQ8ePHVVBQoClTpqhjx46KiorSzJkzVVRUVGHZrXXtr3/9q+bPn68rrrhC7du318iRI/Xtt9/aLXv+/Hk988wzuvrqq9W8eXNdffXVeuaZZ3T+/Pkqrc8ZT8+noqIiLVu2THFxcWrZsqU6d+6s4cOH69ixY3b7+tFHH1V0dLRatGih6OhoTZgwQT///LNxrJwdx8TERCUmJhqvref9O++8o0mTJqlz586Kiooylr3tttu0fft23XTTTWrRooXWrFkjSfryyy81fvx4de7cWS1atNCNN95o155KZUPuw8PDdfz4cY0YMUJt2rRRTEyMFi1apJKSErtl3ZVHkg4ePKi7775bl19+uVq1aqVbb71Ve/fudbvfnbHWw48//ljjx49Xu3btdOWVV+rxxx/X2bNn7Zb1pO125scff9Rjjz2mmJgYtWjRQpGRkRo8eLDdcQwPD9czzzyj559/XjExMWrdurVGjBih06dP6/Tp07rvvvvUvn17RUdHa9myZeW2sW/fPg0ePFht2rTRZZddpl//+tfat29fueVeffVVu2vDhAkT9N1339nFIZVvf2x98sknSkhIUOvWrdWjRw+tXbvW6T51fDRswoQJevPNN9WrVy9ddtll6tu3rz744INyMa5cuVJXX321WrZsqVtuuUUfffRRuUfLAKAijGAAoOLiYr3//vtKTExUw4YNq7SOL7/8UoMHD9bUqVNVr1497dmzR5MmTdLZs2eNm6/XXntNs2bN0uOPP67evXvr7Nmz+uyzz4yb7y+//FL33HOPBg8erMcff1z169fXF1984fGjCA888ICGDBmicePGad++fVq8eLEKCgq0atUqSVJBQYESExOVm5ur2bNnq02bNnrttdf0wAMPqLCwUPfdd5+xnm+++Ubz5s1TmzZtdPr0aaWnp+unn37SNddco9TUVCUnJ2vRokXq0aOHJOmKK66QJD311FNavny5HnjgAT399NP673//q/nz5+vzzz/Xjh07FBQUZMT78ssvq0OHDnr66afVuHFjtW7dutxNjiQ9/fTTeu655zR+/HjddtttOnLkiH7/+9/r0KFD2rZtm+rVq1fhOiuydOlSxcTEaMWKFTp9+rSefvppDRs2TB9++KHq169vLPf+++/r4MGDmj59upo3b6727dvrH//4h0aMGKGbb75Za9euVUFBgX7/+9/rtttu0/vvv6/LLrvMeP8XX3yh6dOna8aMGWrevLnWrl2rsWPH6tJLL9XNN98sSTp16pTatm1r3BB9+eWXeu6553TXXXdp586ddnHn5+dr7Nixmjx5sjp16qQ333xT06dPV2hoqH7zm9+4rSuu7Ny5UwMGDNCoUaN0//33S5Iuu+wyNWrUSPPnz9eGDRs0efJkY/l//vOf+uqrryr8PoSSkhKNHDlSn3zyiVJSUhQdHa2///3vmjlzps6cOaPZs2fr1ltv1XvvvafbbrtN9957r0aPHu1yhMjjjz+uM2fOaP/+/dq4caMkGcvm5eXptttu09mzZzVjxgxdfvnl2rVrl6ZNm6aff/5ZDzzwgN26JkyYoOHDh2vdunV2iYK9e/fqxIkTeuqpp3T+/HmlpKTo3nvvVYcOHdSpUyetXbtWe/bsUWpqqjp27Khx48a53bfPPfec4uLitHz5cp0+fVqzZs3ShAkTtG3bNmOZiRMn6q233tK0adPUu3dvffTRR1qyZIm+/PJL46a6MutzxtPzaezYsdq2bZsmTpyovn376uzZs9q7d6++++47denSRbm5uRo4cKB++OEHJScnKyYmRqdPn9a7776rc+fOVWmEwfTp09W/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PZ92794tk8lU4bHdvXu3evToUa1fyOrqeLRv394uuSCVHesBAwbIbDaXO9aHDh0qNxrq1ltvtXt91VVX2e0rd+UpLCzUnj17NHjwYNWrV8/YXmlpqfr06VPlxyScxda1a1e72Dxtu5259tpr9fLLL2vJkiX697//bfwakqP4+Hi7tsxZnQ8ODlanTp3s6vzevXt12223GTfukmQ2m5WQkGDUp6ysLJ0+fdouaS1JvXv3Vrt27crVbVcaNWpkl0gICQlRZGRkhXXeqlevXnYxOp4v3377rb799lsNHjzY7n2JiYnV/j0+AOo2EgwA1LRpU11yySX65ptvqvT+H3/8UUOGDNGhQ4c0Z84cbd++Xbt379Zvf/tbu2d377nnHj333HPat2+fhg0bpo4dO+q3v/2t8ayodah7SUmJHnjgAXXp0kX9+/fXv/71L4/iaNGihd3r5s2bSyobei+VfXppe5NsZZ1mfVTjr3/9qxISEvTHP/5RN9xwg6666iqnzys7siZErr32WiPJYv2Xn5+vnJwcu+U9+ZZva0yOcQcHB6tp06blvtuhst8c7rjPpLL9Zt1nrtabm5ur0tJSl/vTMS7rsXDc9rlz54zvNZg7d64WLlyoESNG6NVXX9U///lPrV+/XpLKPY8dHh5u9wiHbVkcY68u1113nbp37258Arlu3ToFBwdr1KhRFb7vhx9+UERERLlHHhzrXXU4ffq09u7dW67+WW+UPa2Dtjcikox97Wy67TlekYiICLvX1v1hPbau6rqr/eRufc54ej7l5OQoIiKiwmRdTk6O3fD16uDqeDibfvr0ab3yyivljvWTTz5pxGfL2f6y3VfuyvPDDz+ouLhYzz77bLltrl69Wrm5uW7bSFecxWZbrzxtu51ZvHix7r//fr300kuKj49XZGSkUlJSyiW4q1rnK4rN+v0xruqddZqnbYBjLFL54+iK4z62PsJjfe///vc/SeXb6qCgIF166aUexQcAEo9IAFBZ5/rGG2/U7t27q/Tt5B9//LG++eYbbd++Xb179zamO375m8lk0v3336/7779fubm5+uc//6lZs2Zp7Nix2rVrlyTp5ptv1s0336yff/5ZH374oRYsWGA8J+quk5Odna2rrrrKeG294bcOl46IiCj3Sbj0S8fK2gFr3ry5UlNTlZqaqqysLG3cuFELFixQs2bN9Lvf/c7l9q3DlN966y2nHUHHDp4nw/it73EsW1FRkXETVNl12srOzi437fTp0+W+mM5xveHh4TKZTMa+s/W///2vXFzORqNkZ2erQYMGxjeeb9q0SXfffbcxHFkqS145k5ubq/Pnz9slGaxlcfe9E9743e9+p6lTp+q///2v1q1bp8GDB5crq6OIiAj98MMPOnfunF2SwbHeVYemTZuqefPmWrhwodP5jj97WdVHSXzBtq537NjRmF6d+8nT8+nSSy/VDz/8oMLCQpdJhksvvdRtMqthw4Z2X1BpZU06OXJ1PJxNb9q0qXr37q0pU6Y4fU9lzwN35QkLC1O9evU0btw43XPPPU6XsR0NVZ08bbudCQ0N1Zw5czRnzhx9/fXX2rx5s+bOnasGDRpo7ty51RKbq3bQeh2wxudquap+d0V1siY/HNvq4uJinTlzpjZCAhCgGMEAQJI0ZcoU5eTkaPbs2U7nf/nllzp06JDTedZPgmxv9nJzc/Xuu++63F54eLiGDRumIUOG6PPPPy83PyQkRH369NGkSZNUUFBQ4S8BWL399tt2r998803Vq1dPPXv2lFT2jP+3336rDz/80G65N954Q82bN9eVV15Zbp1RUVGaPXu2wsPDjTitCRjHX6iIj49XvXr19M033+jaa68t969Dhw5uy+AoNjZWDRo00Jtvvmk3fdOmTSoqKtKNN95Y6XXaeuedd+w+dfzwww/17bffuv2pzMaNG6t79+7avHmz3ZDjr7/+WhkZGeXiOnnypN1jF8XFxdq8ebOuu+4646bkp59+KjcqYcOGDU63X1xcrHfeecdu2qZNm9S2bVuvP1Vu0KBBuWNrdeeddyo0NFTjxo3TyZMn3f56hFRW70pKSsrVz9dff10NGjRQr169Kh1jSEiI0xj79eunY8eOqW3btk7rYJMmTSq9rZryq1/9SpLK1fXXX39dkryu65Ln51N8fLxKS0u1bt06l+uKj4/Xvn37dPDgQZfLtGvXTtnZ2Xa/PnLixAmXv7RSGf369dNnn32mK6+80umxrmyi2F15GjdurN69e+vQoUO65pprnG7TV6rSdjvTvn17PfLII+ratavT605VY9u5c6fy8/ONafn5+XrvvfeM+hQVFaUWLVpo06ZNdu/96KOP9M0339jV7YraH19q06aN2rRpo82bN9tN37p1q9tfigEAW4xgACCprJM0f/58zZw5U0ePHtWoUaPUtm1b5ebmKj09XevXr9fq1aud/lRlXFyczGazkpOTjaGnzz77rC699FK754AnT56s0NBQ9erVS82aNdPx48f16quvKj4+XpK0du1a7d27VwMGDFCbNm105swZLV26VK1bt7b7tNGVnTt36sknn9Qtt9yiffv2adGiRbr77ruNL7sbNWqU/vSnP+nee+/Vk08+qcsuu0yvvfaadu/erWXLlikoKEgWi0VDhgzRXXfdpS5duqh+/fratm2bcnNzjTgjIyMVHBysl156SREREcZzsB07dtSUKVP0+OOP6z//+Y9uuOEGNWzYUCdPnlRaWpruvfdet1/E5SgiIkIPP/ywnnvuOTVq1EgDBw7U0aNHNX/+fPXu3bvcs8uV9eOPPxrfWP79999r3rx56ty5s8tPKG3NnDlTI0aM0MiRI/W73/1OBQUFWrBggcxmsx5++GG7ZVu0aKH7779fKSkpatasmdauXav//Oc/WrJkibFM//79tXHjRnXt2lWdOnXSli1bXH4/QZMmTTRnzhydOXNGnTt31htvvKG0tDStXLnS60/lr7jiCu3YsUP9+/dXeHi4WrVqZXwafMkll2jUqFFauXKlunbtqri4OLfrGzBggHr37q1p06bp+++/11VXXaUdO3Zo3bp1mjZtWpWGH19xxRX64Ycf9Je//MW4mYyOjtaDDz6ot956SwkJCXrwwQcVGRmpn376SVlZWdq7d6/xqxP+qGvXrrrzzju1cOFCFRUVKS4uThkZGXr22Wd15513Kjo62utteHo+3Xzzzfr1r3+tmTNn6ttvv9XNN9+s8+fPa+/evRo4cKBuuukmPfjgg3rjjTc0ZMgQJScnq2vXrsrJydG7776r5557Tk2aNNGQIUM0f/58TZgwQQ899JDRplXHkPMnnnhC/fr10+23367x48erffv2ys3N1eeff64vv/xSK1asqNT6PCnP/PnzlZiYqGHDhunee+9Vy5YtdebMGX366acqLi7WU089JUnGz/nafrGpNzxpu10ZMGCAEhIS1LVrVzVu3Fh79uzRoUOHPGrjPPHYY4/p73//uwYPHqzJkyfLZDLpD3/4gwoLC/X4449LKnvM4IknntCUKVM0YcIEjRgxQv/973/1zDPPqHPnzsYXbUoVtz++VK9ePU2fPl2TJk3SI488oiFDhujLL7/U0qVLZTabfTY6BUDdQ4IBgOHBBx/Uddddp5UrV+rJJ5/UmTNnFBoaqmuvvVZLly41vnDPUbNmzbR+/XrNmjVLY8aMUatWrZSUlKQffvhBixYtMpaLi4vThg0b9OqrryovL0+tWrXSiBEjjG+Mj4mJ0c6dOzVv3jydPn1aERERuv7667V69WqPvrjwz3/+s5YvX661a9eqfv36GjNmjJ5++mljfuPGjbVt2zbNnj1bTz31lH788UdFRkbqz3/+s/Glbw0bNtQ111yjdevW6ZtvvlG9evUUGRmp1atXG79b37RpUz377LPGT5EVFxcb324+e/ZsdenSRWvWrNGaNWtkMpnUpk0b9enTx0h0VNaTTz6pSy+9VH/961/1l7/8RU2bNtXdd9+t2bNne93pmzp1qr744gs9+OCD+umnn3TTTTdp8eLF5UYSONO/f3+99tprWrRoke6//341aNBAN9xwg+bNm1euQ9ypUydNmjRJTz/9tI4fP6727dvrL3/5i13CZfHixSotLTWO2cCBA/WXv/xFt9xyS7ltN2nSRH/5y180Y8YMHT582HgswN33IXji2Wef1fTp03X33Xfr559/tvtVA6nsy0RXrlxp/IycO/Xq1dOrr76qp59+Wn/4wx+Uk5Oj9u3ba/78+XrwwQerFOPo0aOVmZmpefPmyWKxqF27djp48KDCwsK0Y8cOLVq0SMuWLdOpU6cUFhamqKgop9+c729WrlypDh066KWXXlJqaqpatWqlKVOm2P0qi7c8PZ/Wrl2rZcuWaePGjVq1apXMZrN69OhhfKN+eHi4/v73v+uZZ57RsmXLlJOToxYtWuimm24yHoXp1KmT/va3v2n+/Pn6zW9+o86dO2v+/Pl2ibWqateunXbv3q2FCxfq6aef1vfff6+mTZvqqquuqtLNsyfl6d69u/75z39q0aJFmj59uvLy8tSsWTN169bNbjSPdVSbs+8cqApP2m5XfvWrX+mtt97SsmXLVFRUpA4dOuj3v/+93a+DeCMmJkZbt27V008/rQcffFClpaXq2bOntm3bZveo2X333adLLrlEf/zjHzVq1Cg1btxYAwYM0Lx589S4cWNjOXftjy+NHj1aP/74o1auXKnXXntNV111lV544QXdc889xi87AYA7ptzcXM++Hh0A/NSGDRv00EMPaf/+/erUqVNthxMQvvrqK11zzTX64x//yE+QVdLTTz+tP/3pT/r888/pdANOzJs3T9u3b9fevXv96ns+UHn//ve/FR8frz/96U+6++67azscAAGAEQwAAHjgk08+0X/+8x/96U9/0pgxY0guAC7s2bNH06ZNI7kQYL788kutWbNGvXv3VpMmTXTs2DE999xzuvzyy8v9LDAAuEKCAQAAD/z2t7/V6dOndcstt9TYkGUgEP3973+v7RBQBZdccok+//xzvfLKK8rNzVV4eLj69u2rOXPmqFGjRrUdHoAAwSMSAAAAAADAa3wlLAAAAAAA8BoJBgAAAAAA4DUSDAAAAAAAwGskGAAAAAAAgNdIMAAAAAAAAK+RYAAAAAAAAF4jwQAAAAAAALxGggEAAAAAAHiNBAMAAAAAAPAaCQYAAAAAAOA1EgwAAAAAAMBrJBgAAAAAAIDXSDAAAAAAAACvkWAAAAAAAABeI8EAAAAAAAC8RoIBAAAAAAB4jQQDAAAAAADwGgkGAAAAAADgNRIMAAAAAADAayQYAAAAAACA10gwAAAAAAAAr5FgAAAAAAAAXiPBAAAAAAAAvEaCAQAAAAAAeI0EAwAAF6Hc3FxFRUXpxIkT1bbO999/X1dffXW1rc8XxowZo+eff762wwAAoE4iwQAAwEVoyZIlGjBggDp27Fhu3qeffqrx48era9euatmypbp166YxY8Zo//79tRCplJiYqMcee8yjZZ988kkNGzbM5fzHH39cS5YskcViqa7wAADABSQYAAC4yPz0009at26d7r333nLzNmzYoPj4eDVo0EBr165VZmamVq1apZCQEK1du7YWoq2cffv2qUePHi7nR0dHq0OHDnrttddqMCoAAC4OJBgAAKhjzpw5o/DwcK1YsULx8fFq2bKlrrvuOv3zn/+UJO3cuVMmk0nXX3+93fsyMjI0adIkzZs3TytWrND111+vdu3a6YYbbtALL7ygp59+utKxJCYm6tFHH9W8efPUqVMnRUZGatasWSopKTGW+fnnnzVjxgxFRUWpZcuW6t+/vz744ANJ0sSJE7Vnzx6tXr1a4eHhCg8P11dffVVuO+fOnVPz5s21d+9epaamKjw8XHFxcU5jSkhI0JtvvlnpsgAAgIqRYAAAoI45ePCgJGn9+vV66qmntGfPHkVHR2vcuHEqLCzU3r171b17d5lMJrv3zZo1Sz179tRDDz3kdL0RERFViuf1119XUFCQduzYoWeffVarVq3Spk2bjPmzZ8/WW2+9peXLl+v//u//1LVrV91555367rvvtHDhQvXq1Uu/+c1vdPToUR09elRt27Ytt43g4GDt3LlTkrRr1y4dPXpUf//7353Gc91112nfvn0qLCysUnkAAIBzJBgAAKhjDh48qKCgIL300kvq06ePIiMjNXfuXOXk5OjYsWP65ptv1KpVK7v3HD9+XBkZGZowYYLb9f/mN7/R5ZdfrtGjR3sUzxVXXKGZM2cqMjJSQ4cO1U033aT09HRJUkFBgdauXaunnnpKt956q6644gotXbpUzZs315o1axQWFqb69eurUaNGatmypVq2bKmgoKBy26hXr56+++47NWnSRD169FDLli0VHh4uSfroo4+UmppqLNuqVSudP39e3333nUfxAwAAz5BgAACgjjl48KBuu+02RUZGGtOaNGli/H327Fk1bNjQ7j2ffPKJJOnaa691u/6kpCT96U9/8jie6Ohou9etWrXS6dOnJUknTpzQ+fPn7R7XCAoKUq9evXTkyBGPtyGVfTllTExMuZEZcXFxSk5ONl5fcsklksQIBgAAqhkJBgAA6piDBw+qW7dudtM++ugjNWzYUFFRUbr00kuVm5trN/+nn36SJDVu3Njt+m+66SaFhoZ6HE/9+vXtXptMJpWWlrp9n2OiwJ2DBw86/ZnMMWPG6N///rfx+ocffpAkNWvWrFLrBwAAFSPBAABAHXL27FllZWXZfYmiJC1fvlzDhg1To0aN1K1bNx09etRufteuXSVJe/bscbpeawKiunXs2FENGjTQhx9+aEwrLi5WRkaGrrjiCklSgwYNVFxc7HZdhw4dUkxMTLnpR44c0ZVXXmm8Pnz4sC677DK1aNGiGkoAAACsSDAAAFCHfP755yotLdWbb76pvXv3KisrSxMmTNCJEyc0Z84cSdItt9yio0ePKicnx3hfjx49NGDAAD3++OPasGGDjh8/ri+++EJvvfWWhgwZYjxCUd0aN26ssWPH6qmnntKOHTt09OhRTZs2TadPn9a4ceMkSe3bt9e+ffv01Vdf6cyZM+WSJ1ZFRUU6duyYTp06ZYzQ+Omnn2QymYzHIiTpgw8+0C233OKT8gAAcDEjwQAAQB1y8OBBde7cWSkpKRo3bpxuvvlmWSwWbd++XS1btpRU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na3HOu27C+eF9ZzY3utsuePhLFZr+2l7zXc8N2zjta1Dzqa76yM42w/fOemL2sZoez21tr2OyzleH5zN92T/2i5b0b5zvN7Yxut4TfKkj+B4Hbdtd8vYX2Oc1XvH/nBRcUO77Tg7H21fu7qG2U53dj67+tvd/rDdF479LFfHydX57qyPbctZX9pVP9kxLlfrcnY8HK8njnG565tWxFnddIwlUO53JSkqquIvVHKbYIiNjdWLL76ooUOHKj09XaNGjTLmWR9ryMrKMhIE0dHRysjIUHR0tPLz82U2mz2eVtVC+IuyoXklKksuuK94JSp/EnrSSXG2rLXxsV1fcFCQ7tgXqpxz9p88BAcFSXLMqDnfsqfxVCZuW8FBQYqKirJ5vKT8J2uuOmHOOpaO3F2MrDFIzj+Zctyms/d5WnpP9rsnZbKtX85icHXcbXlyk+yqfLbTPel0VjUvW9n9W9GxLvtky31d96S++ILtcXd1vNwt47h8RcmcipXVr8pus6LjlXPOpDv2hV5YrmwZ6/IlKvGw3ld9+86UOLynsu+38uRm37HtddyGq/1rbR+D953yqL12tX1XddtZPBXFInl23XCt1O7mzZPzzVUd9OR4Oda7Eody1obKtom254ntOhzL71geT250c86ZFPevRsbxtJ6b3sRbmRjKtlnxcazc9svqlyftY1ViccWTa64nrMekxSX1jPPeWSzu+nqelqMqibTKLO9pe2dt5yQ5LbNtO+guMus5n3PO9XKO55Rj/9lV/7JEpco55/roOjsnXV1jXPXdbO93nJXXVX/Y2fatHNtQT4+tu2u0Y1/Qk750RXXT07gq6i84nhsVnY+2sVTU1/G2729d8vsL7a2z7VjXGSj3u55wm2Do3r27QkJClJCQoJiYGLVt21apqalKTk7W+PHjZbFYZDKZtGTJEknS5MmTlZSUpLNnzyolJaVS0y5G3lyMKlpfWabTecfDdll3N9U1oTLP7dny9EbL31S036szXm/XVZt1oyp1szqire7zsbLbro5lqlN1bq+i787wx/PUU5VJwlblnHL1HHRNcryeVFfb4E0Cu6LHnByXuxi/ZKsyiUhf7aNAPq+rojLlddcvc/dYpic3QrWputoJT/eHLW8eiXU2stHVMlXlbN/YltObLwa3rqu664a/1S138z05Ru4ebfMFf9qPvubRz1Ta/jSl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j49Xy5Ytdd111+mf//ynJGnnzp0ymUy6/vrr7d6XkZGhSZMmad68eVqxYoWuv/56tWvXTjfccINeeOEFPf3005WOJTExUY8++qjmzZunTp06KTIyUrNmzVJJSYmxzM8//6wZM2YoKipKLVu2VP/+/fXBBx9IkiZOnKg9e/Zo9erVCg8PV3h4uL766qty2zl37pyaN2+uvXv3KjU1VeHh4YqLi3MaU0JCgt58881KlwUAAFSMBAMAAHXMwYMHJUnr16/XU089pT179ig6Olrjxo1TYWGh9u7dq+7du8tkMtm9b9asWerZs6ceeughp+uNiIioUjyvv/66goKCtGPHDj377LNatWqVNm3aZMyfPXu23nrrLS1fvlz/93//p65du+rOO+/Ud999p4ULF6pXr176zW9+o6NHj+ro0aNq27ZtuW0EBwdr586dkqRdu3bp6NGj+vvf/+40nuuuu0779u1TYWFhlcoDAACcI8EAAEAdc/DgQQUFBemll15Snz59FBkZqblz5yonJ0fHjh3TN998o1atWtm95/jx48rIyNCECRMqXPfJkyeVmJiouLg4/epXv9Lbb7/tNp4rrrhCM2fOVGRkpIYOHaqbbrpJ6enpkqSCggKtXbtWTz31lG699VZdccUVWrp0qZo3b641a9YoLCxM9evXV6NGjdSyZUu1bNlSQUFB5bZRr149fffdd2rSpIl69Oihli1bKjw8XJL00UcfKTU11Vi2VatWOn/+vL777ju3sQMAAM8F13YAAACgeh08eFC33XabIiMjjWlNmjQx/j579qxatGhh955PPvlEknTttddWuO7g4GAtWLBA3bp10//+9z/17dtXAwYMUOPGjV2+Jzo62u51q1atdPr0aUnSiRMndP78ebvHNYKCgtSrVy8dOXLETUntffrpp4qJiSk3MiMuLs7ucYlLLrlEkhjBAABANWMEAwAAdczBgwfVrVs3u2kfffSRGjZsqKioKF166aXKzc21m//TTz9JUoWJAqksOWBdd8uWLdW0aVP98MMPFb6nfv36dq9NJpNKS0vdlsMxUeDOwYMHnf5M5pgxY/Tvf//beG2Nt1mzZpVaPwAAqBgJBgAA6pCzZ88qKyvL7ksUJWn58uUaNmyYGjVqpG7duuno0aN287t27SpJ2rNnj9P1WhMQtg4cOKCSkhKn34ngqY4dO6pBgwb68MMPjWnFxcXKyMjQFVdcIUlq0KCBiouL3a7r0KFDiomJKTf9yJEjuvLKK43Xhw8f1mWXXVZuFAcAAPAOCQYAAOqQzz//XKWlpXrzzTe1d+9eZWVlacKECTpx4oTmzJkjSbrlllt09OhR5eTkGO/r0aOHBgwYoMcff1wbNmzQ8ePH9cUXX+itt97SkCFDjEcorH744QclJSVp2bJlXsXbuHFjjR07Vk899ZR27Niho0ePatq0aTp9+rTGjRsnSWrfvr327dunr776SmfOnCmXPLEqKirSsWPHdOrUKWOExk8//SSTyWQ8FiFJH3zwgW655Rav4gYAAOWRYAAAoA45ePCgOnfurJSUFI0bN04333yzLBaLtm/frpYtW0oq+06E6667rtxPNb700kt65JFHtGLFCt10002Kj4/XsmXLFBsba/fdDD///LNGjRqlKVOmuPwpyMqYO3euhg4dqoceekg33XSTPvvsM73xxhvGF1E+8sgjatCgga6//np17txZ33zzjdP1PPnkk9q0aZO6du2qefPmSSpLuNiOXjh79qy2bdumMWPGeB03AACwZ8rNzXX/ECQAAAgIjz32mE6fPq0XX3yxwuX+8Y9/aMaMGfroo4+c/iqDK6WlpRo3bpwiIyOVkpJiN+/999/Xgw8+aPxMpj9Yt26d/ve//+mxxx6TJK1evVrvvvuu3nrrrVqODACAuocRDAAA1CEHDx4s96sNzvTv31/jxo3Tt99+W6n1f/jhh9q0aZO2bdumG2+8UTfeeKM+++yzqobrc4cOHbLbH/Xr19fixYtrMSIAAOoufqYSAIA6orS0VJ999pkmTZrk0fJJSUmV3kbv3r3d/mqEP/nwww81bdo04/V9991Xe8EAAFDHkWAAAKCOMJlMLr+foCa0b99eEydOrLXt2zp37pz69++v/v37G9/lAAAAfMujRyRSUlKUkJCg6dOn202fOHGi+vXrp8TERL3++uuSpPXr16tbt26aMGGCsdypU6d0xx13aODAgUpLS3M5DQAABK7LL79cDz74YG2HIanspy3/7//+T7Nnz67tUAAAuGi4TTAcOHBABQUF2r59u86fP6/9+/fbzV+9erW2bdumu+66S5J0++236+2337ZbZunSpZo5c6Y2bdqkZ5991uU0AAAAAAAQmNwmGDIzMxUfHy9J6tOnjzIyMox5JpNJSUlJ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(16,8))\n", "for i,c in enumerate(classes):\n", " ax=plt.subplot(nclasses,1,i+1)\n", " ax.bar(range(clf.feature_count_.shape[1]), post_n[i,:], facecolor=colors[i], alpha=0.9, edgecolor=colors[i], lw=2)\n", " plt.ylim([0.49,0.51])\n", " plt.title(r'$p(C_{0:1d}|$not $ t_j)$'.format(c), fontsize=14)\n", "plt.suptitle('Class posterior probability of term non occurrence, no smoothing ', fontsize=16)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Applicazione del classificatore al training set e derivazione della accuracy" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy = 0.9211111\n" ] } ], "source": [ "preds = clf.predict(xtrain)\n", "print('Accuracy = {0:8.7f}'.format(accuracy_score(ytrain, preds)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Istanza classificatore Naive-Bayes con Dirichlet smoothing simmetrico, con iperparametro $\\alpha$ ed effettua il learning sul dataset" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MultinomialNB(alpha=50)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "α = 50\n", "clf1 = MultinomialNB(alpha=α)\n", "clf1.fit(xtrain, ytrain.ravel())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deriva probabilità a posteriori delle feature (termini) $p(t_j|C_i)$" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "pf1=np.exp(clf1.feature_log_prob_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot del modello di linguaggio risultante per le due classi" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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2s0TSf9G05+xEu54NBXNvh0zZozlsiI9LkIxPQ7CCRWjV6Q5GGlfx2qssfP+++/r9ddf19y5cwPae3p6lJ+fryuuuCLkcz/zmc8YfR+Df4HWTmlpqY499li1trb62vLy8izvPAh1pwIApAsKCQDS1oMPPqj/+I//0HXXXedr++ijj6Ja1uGHH65DDjlEH3zwQb9p27dvV2FhYUDbiBEj1NPT02/e7u7ugIt2uxgjWW9ubq4yMjI0b9483y3YwQZ6YW8lLy9PDodD77//fr9p77//vm97vduyffv2fvNt377d97njgWxHUVGR/ud//kcej0dtbW266667dO211+qoo44KeEc5mvhN5eXlKSMjI6ovgDPJWZNtDDfPaaedZty/0fSnFdPjIdai2beRvLCMhulxEI5djAPJQRODNda8+eabkhRw99X+/fv1hz/8QePHj1d2dnbI5w70ow3h+Pf/hAkTtHXr1n7zbN261fdxGwBIR/xqA4C0tWfPHt87hF733ntvVMsaNmyYTjrpJD3yyCPyeDy+9i1btujtt9/uN/+4ceO0fft2/fvf//a1vfXWW/2+Kd4uxkjWO2rUKE2dOlXt7e068cQTddJJJ/X7Fw+jRo1SaWmp/vd//zfgy83++c9/qrm5WWeccYZvW8rKyrRu3bqAL+traWnRP//5z5huh8Ph0OTJk1VfXy9JevXVVwccv6mRI0fq1FNP1f3336+9e/dG9NxIctZkG63miaZ/I+lPK6bHQ6zFet/GgulxMBADyUETkeRQVlZW1DF4ixHd3d2+trvvvltbt261/SJF70cb7P7ddtttxvG89NJL6uzsVFlZma+tpqZGf/3rX/WPf/zD1/b222/rhRdeUE1NjfGyASDVcEcCgJT3xBNP9Lt1OScnR9OmTdPatWs1ceJEHX300XrkkUfU3Nwc9XqcTqdmzpypiy66SHPmzNGOHTv0i1/8QgUFBf3effv617+u+vp6XXrppbriiiu0Y8cO/dd//ZcOP/zwgPlMYoxkvfX19Zo+fbrOP/98XXzxxSooKNCOHTv08ssva//+/frpT38a9faH86Mf/UizZs3ShRdeqO9+97vavXu3Fi9e7PvCsuBtmT17tr7zne/o3//+txYvXtxv/0WzHe3t7br++ut1/vnn6+ijj9b+/ft13333KTMzU2eeeWZM4je1aNEiTZ8+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CQAAAAAAwBiFBAAAAAAAYIxCAgAAAAAAMEYhAQAAAAAAGKOQAAAAAAAAjFFIAAAAAAAAxigkAAAAAAAAYxQSAABAPy6XS8XFxXrrrbciet6zzz6rL3zhCzGN5ZJLLtHtt98e02UCAIDoUUgAAAD93HrrrTr33HM1fvz4gPaf/OQnOv/88yNe3ssvv6zvfe97mjhxogoKCjR58mRdcsklam1ttX3uggULdOutt8rtdke8XgAAEHsUEgAAQIA9e/Zo9erVuvjii/tNe/HFF1VWVhbR8u69915VVlZq+PDhuueee9TS0qLf/va3ysrK0j333GP7/EmTJqmoqEj3339/ROsFAADxQSEBAIAhZseOHcrLy9Py5ctVWVmpgoICnXzyyXrqqackSY8//rgcDodOPfVU33P27dunI444Qs8995waGhqUl5enKVOm2K6rublZV111lW655RYtX75cp556qsaNG6fTTz9dd955p372s58ZxVxTU6MHHnggug0GAAAxRSEBAIAhpq2tTZK0Zs0a/fSnP9XmzZs1adIkzZs3T3v37tVzzz2n0tJSORwO33MyMzP1+OOPS5KefPJJvfbaa9q4caPtun784x/rlFNO0RVXXGE5PT8/3yjmk08+WS+++KL27t1rND8AAIgfCgkAAAwxbW1tGjZsmH7/+9+roqJCxx57rG6++WZ9+OGHev311/XOO+9ozJgxAc/JyMjQe++9p+zsbJWVlamgoEB5eXl64YUX1NDQYLmeN954Q83Nzbr00kvDxvPuu+9q+vTpmjJlik477TQ9/PDD/eYZM2aMenp69N5770W93QAAIDYyEx0AAAAYXG1tbaqurtaxxx7ra8vOzvY9/vjjjzV69Oh+z3v55ZdVUlIScKfClClTQn7E4W9/+5sk6aSTTgobT2ZmphYvXqzJkyfr/fff11lnnaVzzz1Xo0aN8s1z6KGHShJ3JAAAkAS4IwEAgCGmra1NkydPDmh74YUXNGLECBUXF+vwww+Xy+WyfF7wTztecskleumllyzXs2fPHkkKKAhYGTNmjC+egoICHXbYYeru7g6Yx/v3Zz/72bDLAgAA8UchAQCAIeTjjz9WZ2en+vr6Atp/85vf6Pzzz9fIkSM1efJkvfbaa/2e297erpKSkoC2rVu3asKECZbrmjhxoiRp8+bNltO9hQZ/W7ZsUV9fnwoLCwPaOzo6NHbsWMs7JQAAwOCikAAAwBDy6quvyuPx6IEHHtBzzz2nzs5OXXrppXrrrbd00003SZLOPvtsvfbaa/rwww8Dntvb26vXX39d27Ztk8vl0p49e+RwOHwfOwhWVlamc889VwsWLNC9996rN954Q2+++aYeeughff3rX/d99MGru7tbl112mW677bZ+y3r++ed19tlnx6YTAADAgFBIAABgCGlra9Mxxxwjp9OpefPm6cwzz5Tb7VZjY6MKCgokSZMmTdLJJ5/c7+cWf/KTn+jBBx/UxIkTdcstt+jVV18NeTeC1+9//3tdeeWVWr58ub70pS+psrJSt912m8rLywO+O+GTTz7R7NmzNX/+/H7fufDxxx9r/fr1uuSSS2LUCwAAYCAcLpfLk+ggAADA4Ljuuuv0wQcfaNWqVWHne+KJJ3T99dfrhRde0LBhwyznWb16td5//31dd911vrZnn31WP/jBD3w/MWnC4/Fo3rx5OvbYY+V0OvtNv+uuu/TYY4/poYceMl4mAACIH+5IAABgCGlra9OkSZNs55s2bZrmzZunrq6ukPO0t7cbLcvOX/7yFz344INav369zjjjDJ1xxhl65ZVXfNMPOeQQLV26dMDrAQAAscHPPwIAMER4PB698soruuqqq4zmv+yyy8JO/8tf/qJrrrlmwHFNnTq13680+JszZ86A1wEAAGKHQgIAAEOEw+HQO++8M+Dl7Nu3T9OmTdO0adM0ZsyYgGlHHXWULr/88gGvAwAAJC++IwEAAAAAABjjOxIAAAAAAIAxCgkAAAAAAMAYhQQAAAAAAGCMQgIAAAAAADBmVEhwOp2qqanRwoULA9o7OjpUXV2tqqoqtbe3S5IaGho0YcIELVq0KGDevXv36rjjjtMzzzwTm8iTQGdnZ6JDQBojvxBP5BfiifxCPJFfiCfyC/GUTvllW0jYsmWLdu/ercbGRvX09Ki1tdU3rb6+XitWrNDKlStVX18vSaqtrdWdd97ZbzmrV6/WxIkTYxg6AAAAAAAYbLaFhJaWFlVWVkqSKioq1Nzc7JvmcrlUWFiosWPHyu12S5JGjx4th8MRsIx9+/appaVFU6ZMiWXsAAAAAABgkGXazeB2u1VUVCRJys3N1datW33T+vr6fI89Hk/IZdx3332aNWuWWlpawq4rFW/1SMWYkTrIL8QT+YV4Ir8QT+QX4on8QjylUn4VFxeHnGZbSMjJydGuXbskSTt37lRubq5vmv+dBxkZ1jc39Pb26sknn9SaNWtsCwnhAk1GnZ2dKRczUgf5hXgivxBP5BfiifxCPJFfiKd0yi/bjzaUl5erqalJktTU1KTy8nLftPz8fHV1dWnbtm3Kzs62fP727dv17rvv6oILLtD999+vm2++WS6XKzbRAwAAAACAQWV7R0JpaamysrJUU1OjkpISFRYWqqGhQXV1dXI6nZo7d64kadmyZZIOfKni3Xffre7ubrlcLjU0NOjpp5+WJC1evFhTp05VXl5e/LYIAAAAAADEjcPlcoX+cgOElU63piD52OXX0j9e7Xu84MJfDUZISCOMX4gn8gvxRH4hnsgvxFM65ZftRxsAJK+P9roTHQIAAACAIYZCAgAAAAAAMEYhAQAAAAAAGKOQAAAAAAAAjFFIAAAAAAAAxigkAAAAAAAAYxQSAAAAAACAMQoJAAAAAADAGIUEAAAAAABgjEICAAAAAAAwRiEBAAAAAAAYo5AAAAAAAACMUUgAAAAAAADGKCQAAAAAAABjFBIAAAAAAIAxCgkAAAAAAMAYhQQAAAAAAGCMQgIAAAAAADBGIQEAAAAAABijkAAAAAAAAIxRSAAAAAAAAMYoJAAAAAAAAGNGhQSn06mamhotXLgwoL2jo0PV1dWqqqpSe3u7JKmhoUETJkzQokWLfPPNnz9fVVVVqq6u9s0HAAAAAABSj20hYcuWLdq9e7caGxvV09Oj1tZW37T6+nqtWLFCK1euVH19vSSptrZWd955Z8Ay5s+fr40bN2r58uVasmRJjDcBAAAAAAAMFttCQktLiyorKyVJFRUVam5u9k1zuVwqLCzU2LFj5Xa7JUmjR4+Ww+EIWEZRUZEkKTMzU8OGDYtV7AAAAAAAYJBl2s3gdrt9hYDc3Fxt3brVN62vr8/32OPx2K7slltu0fe///2Q0zs7O22XkWxSMWakjnD51dvbK8+n/yUPEQ3yBvFEfiGeyC/EE/mFeEql/CouLg45zbaQkJOTo127dkmSdu7cqdzcXN80/zsPMjLC39xwxx136Pjjj9fUqVOjCjQZdXZ2plzMSB12+ZXZmilHz4E7fchDRIrxC/FEfiGeyC/EE/mFeEqn/LL9aEN5ebmampokSU1NTSovL/dNy8/PV1dXl7Zt26bs7OyQy3jqqafU3Nys6667LgYhAwAAAACARLG9I6G0tFRZWVmqqalRSUmJCgsL1dDQoLq6OjmdTs2dO1eStGzZMknS6tWrdffdd6u7u1sul0sNDQ1asGCBsrOzNWPGDBUXF+u2226L60YBAAAAAID4sC0kSOr3Swt1dXWSpJKSEm3cuDFgWm1trWprawPaWlpaBhIjAAAAAABIErYfbQAAAAAAAPCikAAAAAAAAIxRSAAAAAAAAMYoJAAAAAAAAGMUEgAAAAAAgDEKCQAAAAAAwBiFBAAAAAAAYIxCAgAAAAAAMEYhAQAAAAAAGKOQAAAAAAAAjFFIAAAAAAAAxigkAAAAAAAAYxQSAAAAAACAMQoJAAAAAADAGIUEAAAAAABgjEICAAAAAAAwRiEBAAAAAAAYo5AAAAAAAACMUUgAAAAAAADGKCQAAAAAAABjFBIAAAAAAIAxo0KC0+lUTU2NFi5cGNDe0dGh6upqVVVVqb29XZLU0NCgCRMmaNGiRWHnAwAAAAAAqce2kLBlyxbt3r1bjY2N6unpUWtrq29afX29VqxYoZUrV6q+vl6SVFtbqzvvvDNgGVbzAQAAAACA1GNbSGhpaVFlZaUkqaKiQs3Nzb5pLpdLhYWFGjt2rNxutyRp9OjRcjgcAcuwmg8AAAAAAKQe20KC2+1Wdna2JCk3NzegENDX1+d77PF4Qi7DdD4AAAAAAJDcMu1myMnJ0a5duyRJO3fuVG5urm+a/50HGRmhaxKm83V2dtqFk3RSMWakjnD51dvbK8+n/yUPEQ3yBvFEfiGeyC/EE/mFeEql/CouLg45zbaQUF5erlWrVmnmzJlqamrS7NmzfdPy8/PV1dWljIwM310LVkznCxdoMurs7Ey5mJE67PIrszVTjh4pMzOTPETEGL8QT+QX4on8QjyRX4indMov20JCaWmpsrKyVFNTo5KSEhUWFqqhoUF1dXVyOp2aO3euJGnZsmWSpNWrV+vuu+9Wd3e3XC6XGhoaLOcDAAAAAACpx7aQIElLliwJ+Luurk6SVFJSoo0bNwZMq62tVW1tbUCb1XwAAAAAACD12H7ZIgAAAAAAgBeFBAAAAAAAYIxCAgAAAAAAMEYhAQAAAAAAGKOQAAAAAAAAjFFIAAAAAAAAxox+/hEAAABD19I/Xu17vODCXyUwEgBAMuCOBAAAANj6aK870SEAAJIEhQQAAAAAAGCMQgIAAAAAADBGIQEAAAAAABijkAAAAAAAAIxRSAAAAAAAAMYoJAAAAAAAAGMUEgAAAAAAgDEKCQAAAAAAwBiFBAAAAAAAYIxCAgAAAAAAMEYhAQAAAAAAGKOQAAAAAAAAjFFIAAAAAAAAxigkAAAAAAAAY0aFBKfTqZqaGi1cuDCgvaOjQ9XV1aqqqlJ7e3vItocfflhnn322zjnnHK1fvz7GmwAAAAAAAAaLbSFhy5Yt2r17txobG9XT06PW1lbftPr6eq1YsUIrV65UfX19yLY77rhDjz76qB599FEtX748TpsCAAAAAADiLdNuhpaWFlVWVkqSKioq1NzcrLKyMkmSy+VSYWGhJMntdodsKyoq0p49eyRJ2dnZMd4EAEA6WPrHq32PF1z4qwRGAgDJzX+8lBgzAQw+20KC2+1WUVGRJCk3N1dbt271Tevr6/M99ng8IdtmzJihM888Ux6PJ+wdCZ2dnZFFnwRSMWakjnD51dvbK8+n/yUPEY1ky5ve3l7t7dmtQw8ZlXSxIXLsw/SSbOecZIghkbzjpSTGzDigPxFPqZRfxcXFIafZFhJycnK0a9cuSdLOnTuVm5vrm+ZwOHyPMzIyQrYtXbpUf/nLXyRJs2bN0tlnnx1xoMmos7Mz5WJG6rDLr8zWTDl6pMzMTPIQEUvG8YucTh/JmF8YmGQ6Psmvg/tDSo59kk7IL8RTOuWX7XcklJeXq6mpSZLU1NSk8vJy37T8/Hx1dXVp27Ztvo8sWLVlZWVp5MiRGjVqlPbt2xeP7QAAAAAAAIPA9o6E0tJSZWVlqaamRiUlJSosLFRDQ4Pq6urkdDo1d+5cSdKyZcskybJt7ty5qqqqkiTNmTMnHtsBAMCQwHdJAACARLMtJEjSkiVLAv6uq6uTJJWUlGjjxo0B06zaLrroIl100UUDiRMAAHzqo71ufebQXPsZASAOKGgCsP1oAwAAAAD4+2ivO9EhAEggCgkAAAAAAMAYhQQAAAAAAGCMQgIAAAAAADBGIQEAAAAAABijkAAAAAAAAIxRSAAAAAAAAMYoJAAAAAAAAGMUEgAAAAAAgDEKCQAAAAAAwBiFBAAAAAAAYIxCAgAAAAAAMEYhAQAAAAAAGKOQAAAAAAAAjFFIAAAAAAAAxigkAAAAAAAAYxQSAAAAAACAMQoJAAAAAADAGIUEAAAAAABgjEICAAAAAAAwRiEBAAAAAAAYMyokOJ1O1dTUaOHChQHtHR0dqq6uVlVVldrb20O2dXd3a86cOfrKV76ihoaGGG8CAAAAAAAYLJl2M2zZskW7d+9WY2OjrrnmGrW2tqqsrEySVF9frxUrVigjI0PXXnut1q5da9n2i1/8QjfccIOOO+64uG8QAAAAAACIH9s7ElpaWlRZWSlJqqioUHNzs2+ay+VSYWGhxo4dK7fbHbLt1Vdf1a233qoZM2YEPB8AAAAAAKQW2zsS3G63ioqKJEm5ubnaunWrb1pfX5/vscfjCdnW3NyspqYm5efnq7a2Vhs2bIhJ8AAAAAAAYHDZFhJycnK0a9cuSdLOnTuVm5vrm+ZwOHyPMzIyQrYdc8wxOv744/tND9bZ2RlJ7EkhFWNG6giXX729vfJ8+l/yENFItrwhp82kSj8lc2yIXLLlXTLEkEje/eF9PNj9kWz5EGvpuE1IHqmUX8XFxSGn2RYSysvLtWrVKs2cOVNNTU2aPXu2b1p+fr66urqUkZGh7OzskG3HHnus3nvvPWVnZ2v//v1RBZqMOjs7Uy5mpA67/MpszZSjR8rMzCQPEbFkHL/IaTOp0E/JmF8YmGTKO/Lr4P6QErNPkikfYo38QjylU37ZFhJKS0uVlZWlmpoalZSUqLCwUA0NDaqrq5PT6dTcuXMlScuWLZOkkG3f/e539fHHH/f75QcAAAAAAJA6bAsJkrRkyZKAv+vq6iRJJSUl2rhxY8A0q7YJEyZo/fr1A4kTAAAAAAAkAdtfbQAAAAAAAPAyuiMBAAAgGSz949W+xwsu/FUCIwEAYOjijgQAAJBSPtrrTnQIAAAMaRQSAAAAAACAMQoJAAAAAADAGIUEAAAAAABgjEICAAAAAAAwRiEBAAAAAAAYo5AAAAAAAACMZSY6AAAAAABId0v/eLXv8YILf5XASICBo5AAAECK4qIUAFLLR3vd+syhuYkOAxgwPtoAAEAK+2ivO9EhAACAIYZCAgAAAAAAMMZHGwAAAAAAaYOP/sUfdyQAAAAAANIKH/2LLwoJAAAAAADAGIUEAAAAAABgjO9IAACExecMAQAA4I9CAgDAVrS/e00RAgAAIP1QSEDC+b/QkHixAaSbaIsQAAAASE4UEpAUvN+qmogXGxQyAAAAAMAchQRAiS1kAEgsPn4BAAAQGaNfbXA6naqpqdHChQsD2js6OlRdXa2qqiq1t7eHbJOkvXv36rjjjtMzzzwTu+gBAIgBfmsaAADAnG0hYcuWLdq9e7caGxvV09Oj1tZW37T6+nqtWLFCK1euVH19fcg2SVq9erUmTpwYh00AAAAAAACDxfajDS0tLaqsrJQkVVRUqLm5WWVlZZIkl8ulwsJCSZLb7Q7Ztm/fPrW0tGjKlCmx3wIAAAAAADBobAsJbrdbRUVFkqTc3Fxt3brVN62vr8/32OPxhGy77777NGvWLLW0tIRdV2dnp3nkSSIVY042vb298vg9Huw+TfT6wwkXizfuZIsZqcM0bwaSa5E8N1E5nWrHkn+8kpI29njFk2r7K10kW78nQwyJlOhrl2TLh1hj/Ep9ydzXyRZPOMXFxSGn2RYScnJytGvXLknSzp07lZt78MvoHA6H73FGRoZlW29vr5588kmtWbPGtpAQLtBk1NnZmXIxJ6PM1kw5ej59nJk56H2a6PWHYpdf3riTKWakjkjGr4HkWiTPTVROp9qx5B+vpKSMPZ7nx1TbX+kimfqd66/EX7skUz7EGuNXekjWvk6n8cu2kFBeXq5Vq1Zp5syZampq0uzZs33T8vPz1dXVpYyMDGVnZ1u2bd++Xe+++64uuOACvfnmm/rzn/+s0tJS5eXlxW2jAAAAAGCo45eJEC+2hYTS0lJlZWWppqZGJSUlKiwsVENDg+rq6uR0OjV37lxJ0rJlyySpX9vYsWP19NNPS5IWL16sqVOnUkQAAAAAgEHw0V43P3GOmLMtJEjSkiVLAv6uq6uTJJWUlGjjxo0B06zavJxOZzQxAgAAAACAJGH7848AAAAAAABeFBIAAAAAAIAxCgkAAAAAAMCY0XckAAAQL95vlP5orzvBkQAAAMAEdyQAABKOIgIAAEDqoJAAAAAAAACMUUgAAAAAAADGKCQAAAAAAABjFBIAAAAAAIAxfrUBAAAASBDvL9dI0oILf5XASDDY2PfJjf0THnckAAAAAAnEL9cMXez75Mb+CY07EgBIouoKAAAAwAyFBAA+H+116zOH5iY6DACABq/ASyEZABApPtoAAACQpAbrtlpu300sjzz6aK87oKiDyCz949W+fwDijzsSAAAAgATzyJPoEFJeIu+s5M4eDDUUEhA3gzmghloXgzoAAAAGAx8RxVBCIQFxNZgDaqh1MagDADA08YYCAMQHhQQAGGKW/vFq9fb2KrM1kwtrYICCP4/NMZV8eEMBAGKPL1sEgCFob8/uRIcApI2P9rr5skIAwJDCHQmIiUTcOpiIb+XlFsn4on8BwFyqj5nczQEAqYtCwiCLx0k/WS4kEnHrYDzXGeoCh1sk4ysW/cvFKYChYjDPg/HgvZOD8ypSlfc44a4kDDVGH21wOp2qqanRwoULA9o7OjpUXV2tqqoqtbe3h2ybP3++qqqqVF1d7WsbyuIx0DB4hef9beZIL4q4XTV1se+A+ON329Mf4yhgj+MEQ5HtHQlbtmzR7t271djYqGuuuUatra0qKyuTJNXX12vFihXKyMjQtddeq7Vr11q2zZ8/X0VFRXrjjTf005/+VGvWrIn7hgHBuJMA3Klgjz5CpBhbAZhKlrto002ynruTNS7Ehm0hoaWlRZWVlZKkiooKNTc3+woJLpdLhYWFkiS32x2yraio6MDKMjM1bNiw2G4BkEb8B9yZZT9MYCTpi9to7dFHABCIF8CxM9SLjx55fHfKxtJHe93yyCOHHFr6x6uTJk+5pkhftoUEt9vtKwTk5uZq69atvml9fX2+xx6PJ2Sb1y233KLvf//7AwoYSHdD/QQLIP3xogypKFnPz8EvSoOPKY63xLIqGHjksZgzNuK5bMCfbSEhJydHu3btkiTt3LlTubkHB1CHw+F7nJGREbJNku644w4df/zxmjp1ash1dXZ2RhB6cog05t7eXnk+/a/Jc/9f822+x9/84vyYLDMerGIwjcs7nwzmDbVOSZbr8l92qOWHWr9/+669bv383is+/ck8T8R9bbIfrbbJpN9itd8HM49C9UesYjDZp4k8XhLNm1+mx8NA9ovJcwOPU4/veAt3rMRSMoyhkTAZ+xIRS/D67cavvT27degho+J+Ho23eI4rdtsa6zEz1Dl0oLlmN+Z7H0ey3GiuFeLRR7Hg7V/vY5PlB1/f7Pr0XV+rY2ogx5vd+iPtj3j3Y6yWHc02+f8dfBx5+z/4eVJsxvBwMSRyzEzkdVcstjtefZcM5y5TxcXFIafZFhLKy8u1atUqzZw5U01NTZo9e7ZvWn5+vrq6upSRkaHs7OyQbU899ZSam5u1cuXKqANNRp2dnRHHnNmaKUfPgY95mDw3szVTu/a65JBDD7X+xrKSHOky48EqBtO4vPNJ4ecNrqj7L1+S5br8lx1q+aHWH/zcjz8tItjFGWobve9kmPSFd5tM543Ffh/MPLLqj6V/vNrXxwONwWSfJvJ4SbTM1kwpxL626qOB5IbJc/3X6fn0/wdz/0Syfcnwzp7J2JeIWPzXb3d+jHdOxYrJ/o7nuGK3rbHqi1DLiVWuhToHRtt3kVx/xbuPYsE7Jkvm45D3fOmQI2BauHE9lrFHu8x492Mslh3p9b3dtWbwceS/r6XYjOHedXhftEdzPR7KQM57ibzuikU+xCNfo3n9mKxsCwmlpaXKyspSTU2NSkpKVFhYqIaGBtXV1cnpdGru3LmSpGXLlkmSZduCBQuUnZ2tGTNmqLi4WLfddlucNid9cZvSAd4LkaV/vNr3WbBgg/Xt4bF+QRFumyKNJ1YxDTbyPPVY5V08jsFkeAHvFevbm622zWR7vZ87tTtukqnvkp1VXyXr7ezoL965HvzZ9kQeT5Ec95GItA+TpT8QX4yDsGJbSJCkJUuWBPxdV1cnSSopKdHGjRsDplm1tbS0DCRGRCndLx7DnUTtBjz/vhnIT/bEemAdSBHB/0t2BuM3xdMxp5JVsve71RcpxeOiI50vZKy2zWR7TceMaPou2fPORDTbEI88S/VCr2nRKhnEe5zwFhNSYSwKF2e4YyPS7UuV/gASJV2/TN2okID4GIyLtGgH93jGliwXp8nym7/e/hhoPOEu8GLZ55HkVDz2dbLkj2Qfi0msptvjfzeOyfxDTar3S7hv8R7ItvkXGUO9cxjpC4pUu+vL+/HAeHyLeXARN5xw31yeCvmbjEWEgR4b0T43Xfgf37G6FonUYBTZkmFfe8dgDK5kuosoHQtuFBLiIJKLrEiSarAPhHgmfDoeTF6RvniU7E/csTjRhnoh6n/x4D/ghlqHyTxW640lu3dZTC/s4x1L8PRQuWH6zrP/u4LZh+YNIOqBidUdPbEWz48c+K8jXsK90zmQbfN/ARjp8r0x3bhqjqSDL4LtCgxW77hEU4CIdLtDrSMVviHdm1vJcMHrjWMwx9LgdXsF58BA3j23Ovdajc9W64m1SI+HwSjgmY5vsc4N/yJbvF70x/L8YBpjcHHGtL9CLT/SvklUcWigQuV6JNvsL5Z3ESVDUSqZUEiI0tI/Xq1de91ybD7Y9plDcwM+U+lt8/5td5HmnW7yrmQ08Xolqmpv9YL1xlVzfBdhsb5QMRm4/S8A/eeJ9F2m4As/k/1kui8j/diCyQt9/3fovLH4P9+Odx6TC69oq8EDuWiKxfdMhLrDwOT3kMOdvIMLOpF810fwC8JEvuAwuTDxPwYjjTfc/NFe8Fvtv+CCTrhjOXibw13shVtPsrO6+DXlfc7/a75Nma2Z/bbbO/YMNK5wBY6BfsTL6u4Qk/z1yKNde11hz+cmvx9v8tG84DE7kuJu8LK867Taz9F+/0ZwjMFxBs9vxT8mb954x87e3t4DX1AYhXD9azK++8870Osjk+uA4OMxkrwOLkCHmh4qH4PHMv9tHEgBzX+9wecJr1i+6At1vgq13Sa3nptew4U7V4bbN6GW7z0W/Mc+u9cNoYR6Y2kggnMm2iKG//YHX7NaifTNGSvR3iEanLepdL4fKAoJAxKb9yG8Fz3Bg0MsBJ9EvMsPvtAKNYAEvwPqf9CEuhAPF7//hUFw71ldhJmwO0lGK1Scwet0yBHRO8rRDNSRbkfwRfZAlmkXr/8AGmoQDlcNthqIrd55D1fssLpo9V+W1Qsjb655//a+uAl+tz94+0P1W6h3HkK9KAm1Hf7sXnTZjRl2F8vB67TaZ97p0Rb/TN4ND8X/ZB38Qid4G+xeXAbHE+rCxCrGcEVJq+X4x+r/LrPVi9xwFxzB47f/tgXHEirHQi3T/zzg3y9W2xCNvT0fydFj/XGCcMeGZH8BF25stvvunFDjmdWLXqt5/PMxFO/4Iilgf/lPtxrjgqf7Pzc49uBjMFTu233kymossnvxZZVrVrfH+8fov3z/YyZ43A+37sB+k7IzA49Tq3HCzkDOy8FxhnvRHWq7rG53tzp3Bx8zwdO8rMZku/4IV2Dwn27aT1a5YVUE8T9O/NuCtyGSaxD/2K3OySbFYruPHtmxG6ut5g9eT3AeR1PcDXXeCnWdYXV9b3XuDI7RfwwKPp8E79/g3A7ua7vzof9ygveZVaE5mH/xKrhfgrfZP85w40S442QoFBQcLpcrFq+Fh5wDdyS4AtqsLshCHWDB8/qfaO0ehzpRhFt+OP7Ls1qO1QWLVSxW80cai1VckfadSSzh4ok03nB94S9UjKHjlW8JwbFEuq9D7Qu7fW21PVbPDbXOSGIPl/emMQY/N1qRbv9AtiN4nZHuU7vH4WK0mh683miOh3B9Ee7uIJPxI5qxza4fg9cfzbhmt38jiTEW5we7+U1jCTeP6THgzzRP/eePNK5QbeHy3vSYjfZ8ZhWv6XkrVOyh5gnVL9EeDyaxmBwzoWKMlOl+9Gc6f6j8iXYctIohmuM6+LHp+kPlg39MwfNHm4OhziEmcQXPEyqnQj2O5Tn3wLwH/jLNC9O+s3scbl3h+stqHtNj1vR6wTQeOwMZ+03OPwOJy395pucqu2uEYJ85NFczy36YNj//mJHoANKJ59P/BbfZPY5mPf7rC/47VCwmy7OLL9T2hVtXJLGEWlckfWcXi8k8A4k3OFarZZltjyfs8weyr+3arJYbyXPDxWWy3GhjjJXgYytUDLHaDv91Bj8eqHAxWk2zmieSWOzmDzVe2c1v1xZNLKGWF++4gp8Tbr9Es7yBPNdkfI10bDZdbvD8kRwPkfTjQM4n8RhvIllupOuPRT+axGJyzMSayfgcSa6GG/uiGZNNx7h4sDv/DnRcDdduep4zXU+k441JrMGx9N9Xofd7PPM+mvPvQI/ZSKaHa4+W1dgfbl0DyQe7OCLNKZNrhGjGjlRCIQEAAAAAABijkAAAAAAAAIxRSAAAAAAAAMYoJAAAAAAAAGMUEgAAAAAAgDEKCQAAAAAAwBiFBAAAAAAAYIxCAgAAAAAAMEYhAQAAAAAAGKOQAAAAAAAAjFFIAAAAAAAAxigkAAAAAAAAYxQSAAAAAACAMQoJAAAAAADAGIUEAAAAAABgjEICAAAAAAAwZlRIcDqdqqmp0cKFCwPaOzo6VF1draqqKrW3t0fUBgAAAAAAUo9tIWHLli3avXu3Ghsb1dPTo9bWVt+0+vp6rVixQitXrlR9fX1EbQAAAAAAIPVk2s3Q0tKiyspKSVJFRYWam5tVVlYmSXK5XCosLJQkud3uiNpS3YILf5XoEAAAAAAAGHS2dyS43W5lZ2dLknJzcwMKAX19fb7HHo8nojYAAAAAAJB6bAsJOTk52rVrlyRp586dys3N9U1zOBwHF5SREVEbAAAAAABIPbav6svLy9XU1CRJampqUnl5uW9afn6+urq6tG3bNt9dC6ZtAAAAAAAg9dh+R0JpaamysrJUU1OjkpISFRYWqqGhQXV1dXI6nZo7d64kadmyZZJk3AYAAAAAAFKPw+Vy8aUFUXA6ndqyZYsmT56sJUuWJDocpLBt27bpwgsv1Guvvaauri5lZmZa5hc5h0i1tLTohhtuUEZGhk466SQtXrxYv/71r/XYY49p3LhxuuOOO3TIIYdYtgF2Ojo6NH/+fA0bNkzjx4/X8uXLdcMNNzB2IaaWL1+uRx55RBs2bODciJh5++23NW3aNB133HEaPny4HnroIc6PiKm1a9dq7dq12r9/v+666y7dfvvtaTd+8YUFUQj3k5hApPLz87Vu3Tqdcsopkqzzi5xDNMaNG6d169Zpw4YN+ve//61Nmzbp2Wef1YYNGzRp0iStX79eH3zwQb82wERxcbH+/Oc/q7GxUZL04osvMnYhpj755BO1tbVJ4tyI2KusrNT69ev10EMPWZ4LOT8iWv/617+0efNmrVu3TuvXr9f27dvTcvyikBAFq5/EBKI1YsQI5eXl+f62yi9yDtEoKCjQiBEjJEmZmZnaunWrzjjjDEnSWWedpebmZr300kv92gAT/u/MZWVlqampibELMbVmzRp961vfksS5EbH37LPPqqamRsuXL7c8F3J+RLSefPJJ7d+/X1/96ld13XXX6a9//Wtajl8UEqIQ7icxgYGyyi9yDgPR3t6uHTt2KDc315dHOTk5/XLL2waYeuyxxzR16lRt375dPT09jF2ImZ6eHm3atEkVFRWSODcitsaMGaOWlhY98sgjampq0ksvvcT5ETHzwQcfqKenR+vWrdPIkSO1c+fOtBy/KCREIdxPYgIDZZVf5Byi1d3dreuuu0633347uYWYO++88/T8889r7NixyszMJL8QM3/4wx/0jW98w/c34xdiKSsrS6NGjVJmZqaqqqo0fvx48gsxk5OTo9NPP12SdOaZZ8rj8aRlflFIiEK4n8QEBsoqv8g5RKO3t1eXXnqpFi1apIKCApWVlWnz5s2SDuaRVRtg4pNPPvE9zsnJkcPhYOxCzPz973/XPffcowsuuECvvvqqduzYQX4hZrwv4CTphRde0NFHH835ETHzxS9+Ua+88ookqa2tLW3PjxQSouD/k5gZGRk6+eSTEx0SUlhPT4++9rWvqb29Xeeff756e3v75Rc5h2g8/PDDam1t1Y033qjp06frrbfe0mmnnabq6mq1tbVp+vTpOuKII/q1ASaeeOIJnXfeeTrvvPO0fft2/ed//idjF2Lm5ptv1oMPPqgHHnhAJ5xwgq6//nryCzHz/PPPq6KiQl/+8pf1uc99TqeccgrnR8TM5MmTNWLECE2fPl2tra268sor03L84ucfAQAAAACAMe5IAAAAAAAAxigkAAAAAAAAYxQSAAAAAACAMQoJAAAAAADAGIUEAAAAAABgjEICAAAAAAAwRiEBAAAAAAAYo5AAAAAAAACM/X/KJOXPe9zrQQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(16,8))\n", "for i,c in enumerate(classes):\n", " ax=plt.subplot(nclasses,1,i+1)\n", " ax.bar(range(clf1.feature_count_.shape[1]), pf1[i,:], facecolor=colors[i+2], alpha=0.9, edgecolor=colors[i+2], lw=2)\n", " plt.title('$p(t_j|C_{0:1d})$'.format(c), fontsize=14)\n", "plt.suptitle(r\"Language models of classes, uniform dirichlet, $\\alpha= {0:2d}$\".format(α), fontsize=16)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Applicazione del classificatore al training set e derivazione della accuracy" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy = 0.8722222\n" ] } ], "source": [ "preds1 = clf1.predict(xtrain)\n", "print('Accuracy = {0:8.7f}'.format(accuracy_score(ytrain, preds1)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Definizione della funzione che calcola la mutua informazione di un termine $t$ rispetto alle classi\n", "\n", "$$\\sum_{C_0,C_1}\\sum_{t=0,1} p(C,t)\\log\\frac{p(C,t)}{p(C)p(t)}=\\sum_{C_0,C_1}\\sum_{t=0,1} p(t|C)p(C)\\log\\frac{p(t|C)p(C)}{p(C)p(t)}$$" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [], "source": [ "def mutual_information(term):\n", " s = 0\n", " for cl in [0,1]:\n", " s += lik[cl, term]*prior[cl]*np.log2(lik[cl, term]*prior[cl]/(prior[cl]*evid[term]))\n", " s += (1-lik[cl, term])*prior[cl]*np.log2((1-lik[cl, term])*prior[cl]/(prior[cl]*(1-evid[term])))\n", " return s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calcolo del valore della mutua informazione per ogni termine" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "mi = np.array([mutual_information(f) for f in range(pf.shape[1])])" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(600,)" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi.shape" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([9.62563749e-05, 3.04573603e-04, 2.91429482e-05, 8.37291002e-05,\n", " 2.53176066e-05, 2.63387759e-04, 7.61308530e-05, 5.83130360e-05,\n", " 4.18746689e-04, 4.75424659e-06, 2.60609121e-07, 4.04920273e-05,\n", " 1.00587796e-04, 1.48316789e-04, 6.79559175e-06, 1.76827334e-05,\n", " 5.21301554e-07, 3.30490050e-05, 4.70374366e-06, 4.92447892e-05])" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mi[:20]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ordinamento crescente delle feature rispetto alla mutua informazione" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [], "source": [ "ordered_terms = np.flip(np.argsort(mi),0)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['windows', 'microsoft', 'motif', 'dos', 'window', 'sun', 'xterm',\n", " 'code', 'server', 'win'], dtype='" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(16,8))\n", "plt.bar(range(clf1.feature_count_.shape[1]), mi, facecolor=colors[6], alpha=0.9, edgecolor=colors[6], lw=2)\n", "plt.title(r\"Mutual information\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Seleziona i termini più informativi e riduci il training set considerando solo quelli" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "k = 50" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot della mutua informazione delle feature selezionate" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABBIAAAH7CAYAAABxK7wrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAAsTAAALEwEAmpwYAABR80lEQVR4nO3deWANZ////9dJTuxJxBYqxL4mGtQSddtLQsuNVn21pVRtrVKUaquqrdrS6qq11NaWUhQVpLXciC4oqqhWGyLUrknIgpOc3x9+Zz6JnJMMDpL0+fiLmTPvc82cmWsmr3PNHEt8fLxdAAAAAAAAJnjc7QYAAAAAAIC8gyABAAAAAACYRpAAAAAAAABMI0gAAAAAAACmESQAAAAAAADTCBIAAAAAAIBpBAkAAORCxYsX14ABA4z/22w2Va1aVY8++mi2y8XHx2vOnDm39N6DBw/WqlWrskyfOHGi/ve//2W77OXLl9WlSxc1b95cK1asuKV2mHX9Op88eVK9e/e+I+8NAMC/EUECAAC5UNGiRXXw4EGlpKRIkjZv3qxy5crluFxCQoI+/fTT29Kml19+Wa1atcr2Nfv27ZMkRUdHq1u3bqbqpqWl3VK7rl/ncuXKaeHChbdUEwAAuEaQAABALtW+fXt9++23kqRly5bp4YcfNuZNmjRJH3zwgfH/0NBQxcbGasKECTpy5IiaN2+ucePGadu2bZlGMbzwwgv64osvJElTpkxR69atFRoaqmHDhslut2fbnowjFYKDg/XWW2+pRYsWatasmf744w+dPXtWAwYM0J49e9S8eXMdOXJEW7Zs0X/+8x81a9ZMzzzzjC5fvmwsP378eLVo0UIrV65UcHCwJkyYoObNm6tVq1bau3evunXrppCQEM2dO1eSdOnSJXXu3Nl4z8jISEnKss6xsbEKDQ2VJKWmpmrIkCFq1qyZ/vOf/2jr1q2SpC+++EKPP/64unfvrgYNGujVV1+9+Q8KAIB/GYIEAAByqW7dumn58uVKTU3VgQMH1LBhwxyXGT9+vCpXrqzo6Gi98cYb2b52wIAB2rx5s3744QelpKRo/fr1N9S+kiVLauvWrerXr58++OADlS5dWu+//75CQ0MVHR2tcuXKaciQIZo3b56+//572Wy2TCMHSpQooa1bt6p79+6SpICAAEVHRys0NFRDhgzRggULtGHDBk2aNEmSVKhQIX3++efaunWrvvnmG73yyiuy2+3ZrvPs2bNlsVj0/fff69NPP9WQIUOUmpoqSfr11181d+5cff/991qxYoWOHz9+Q+sPAMC/FUECAAC5VFBQkI4dO6Zly5apffv2bq+/detWtW3bVs2aNdO2bdt06NChG1r+oYcekiSFhITo2LFjWeYfPnxYFStWVLVq1SRJvXr10vfff2/M79q1a6bXh4eHS5Lq1Kmj++67T97e3ipVqpQKFiyo+Ph42e12vfHGG2rWrJm6dOmikydP6syZM9m28ccff1SPHj0kSTVq1FCFChX0559/SpJatmwpX19fFSpUSLVq1VJcXNwNrT8AAP9W1rvdAAAA4Fp4eLjGjRunNWvW6MKFC8Z0q9Wq9PR04/+Ob9mv5+p1qampGjVqlDZv3qyAgABNmjTJZQ1XChYsKEny9PSUzWa7oWWla8+BcFbPw8PD+LckWSwWpaWlaenSpTp37py2bNkiLy8vBQcH33Cbnb2fdPPrAADAvxEjEgAAyMUef/xxjRkzRnXr1s00vWLFivrll18kSXv37lVsbKwkydvbWxcvXjReV6FCBR06dEiXL19WfHy8tmzZIun/AoWSJUvq0qVLWr16tdvbXr16dcXFxSkmJkaS9OWXX+r++++/6XqJiYkqVaqUvLy8tHXrVmMEwfXrnFFoaKi++uorSdKff/6puLg4Va9e/abbAAAAGJEAAECuVr58eQ0aNCjL9M6dO+vLL79U06ZN1bBhQ+P2gRIlSqhp06YKDQ1Vu3bt9MYbb6hr164KDQ1VYGCg6tWrJ+naz0v26dNHoaGh8vf3V/369d3e9kKFCumjjz5Snz59lJaWpvr166tfv343Xa9Hjx7q2bOnmjVrppCQENWoUUNS1nXu37+/sUz//v01YsQINWvWTJ6enpoxY0amkQgAAODGWeLj47N/RDMAAAAAAMD/j1sbAAAAAACAaQQJAAAAAADANIIEAAAAAABgGkECAAAAAAAwjSABAAAAAACYRpAAAAAAAABMI0gAAAAAAACmESTcJocPH85VddxZK7fVcWet3FbHnbXyax131sptddxZK7fVcWet/FrHnbVyWx131sqvddxZK7fVcWet3FbHnbXyax131sptddxZK7fVcWet/FrH3bVyO4IEAAAAAABgGkECAAAAAAAwjSABAAAAAACYRpAA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VaooNjZWRYoU0bPPPmukk6+88opatWql9evXa9KkSapbt67xLUZMTIz69++vP/74QyVLltTIkSN18uRJbd26VR4eHvrwww8lSc8884xKlCihevXq6eDBg5o7d67S0tLUuXNnRUZGauHChVq8eLGka99+hoSE6P7771fdunUVFxeniIiIG9p3JenKlStZPu8HH3xQJUqU0AMPPKAvv/xSq1atUufOnbVmzRp5eHioT58+mjp1quLi4jR+/HjZbDY98cQTql69urp37y5fX1+VK1dOnp6e8vPz07lz5zRnzhxVqlRJTz75pM6cOaOCBQtqwYIF8vHxMdahdu3aCg0N1fjx42W1WvXUU0+pW7dukq4lwe+//748PT11/vx5Pfnkk1qyZIkKFSqkZ599Vlu3blVAQIAOHjyoTp06aerUqbp06VKmY+b6bb5gwQJt3rxZHTt2VPHixbVz507de++9atmypWbMmKHy5cvrzJkzql+/vjZs2KCOHTvq8OHD6tmzp3bv3q0DBw7o9ddfV9u2bdWpUyfVqVNHe/bs0eOPP64nn3xSgwcPzvSNzbJly/Tyyy8rODhYP/30k1q0aKHNmzerQ4cOSk1NVZcuXbR27VpdvXpVR44cUWhoqGbNmqX4+Pgs+3f58uU1ZcqUTOsTGBiobdu2acuWLYqMjFSNGjV09OhRTZ8+XTVq1NCjjz6qJUuW6KuvvlJycrKeeeYZbdu2Te+99548PT0VHx+vZcuWafz48Tp8+LAKFy6sWbNmafz48RoyZIhq1qypmTNnqkyZMvrPf/6jHj166PTp0+rQoYNiY2OVmpqqQ4cOKS0tTfPnz1eTJk2yPc6aNGmi4sWL66mnntKBAwc0d+5cRUREaPjw4frmm29ksVh03333qVatWrrvvvt0/vx53XPPPVq0aJGk/xs94Ofnp2LFiunChQt6/fXXVaJECVWsWFE2m02zZ8/Wnj17VKZMGc2fP19HjhzRpEmT1KFDB82ZM0eFChXSb7/9platWunFF180PitHn3TixAmdPn1aNWvWVLNmzbRw4UJdunRJ5cqV04YNG5SYmKjNmzfr4Ycf1u+//641a9YY/WSFChXUrl071atXT+fPn9eBAwfk5+enRo0aaeHChfLw8NDAgQP18ssvKyEhQX369DE+rwYNGmjJkiWaPXu2PD09FRERoeDg4CzT4uLijH0+LCxMP//8sx5++GFdvnxZb7zxhmJjY9WzZ0/jGPT19dXjjz8ui8WiOnXqaOrUqZnOgRmXX7hwoWbNmuX0mOnUqZMWLFigUaNGZTmerxcWFqa5c+fqlVdeMdWnXS8xMVEDBgzQs88+q0mTJhn9Tbt27TR27FjNmzdPNptNXbt21cKFC7OsX0593NmzZ7VhwwZdvnxZ77zzjqpUqaKhQ4dq/vz5CgsL0zPPPKPvvvtOFy9eVO/evTP1r/3798/UBz7++OPatWtXlmkOX331lX7++WdNnjzZ6TXIu+++q3Xr1qlAgQKaMWOGNm7cmKlPq1u3rvHan376KVP/FhcXpyeeeCJTH3H9uXvp0qVKTk7W0qVL9fvvv+udd97RkiVLdOnSJfn4+LjlXFS4cGEtW7ZMqampqlixoj777DMlJSVp+PDhSklJUdWqVfXaa6/pscceU+HChVW0aFG98MILevXVVyVJZcqU0ZAhQ9S7d2916tRJISEh+v7779W3b1/17t3b6fb98ccfjfNGy5Yt9fHHHys5OVmrVq3Sfffdp++++04NGzZUeHi4ZsyYoUuXLmnJkiXat2+fpk2bpgYNGigqKkrBwcFq3LixYmNjFRAQoJCQECUkJGj06NFauXKlSpQooeDgYBUoUEA+Pj76888/NWPGDD399NOy2WyqW7eu3n77bW3btk0fffSRzp8/rwoVKig4OFj33HOP0tLS5OXlJYvFIh8fH507d06nTp1SyZIlZbPZVKRIEV29elUDBw5U9+7dNXfuXM2YMUMlS5ZUo0aN9PPPP8vf31/lypXTsWPH9Ndff6lmzZqqXLmyjh49qtTUVP3++++qUaOGPvjgAwUHByssLEzr169XbGysJk+erI8//tjolwoVKqQGDRpo+PDh8vDwkN1uV6FChVSvXj2VLVtWMTExCgwMlI+PjxYsWKAVK1Zk2h9Hjhyp9evX648//tBTTz2lI0eOqEyZMkpKSlJ6errRT3Tp0sXYN6KiolSlShWdO3dO/v7+2r9/v7y8vDRu3DhdvXpV48ePl4eHh4KCgtS6dWvj/UaNGiVvb+9sP/unnnpKa9euzXKd+8QTT+jAgQOqW7euEhISVKNGDS1YsEB9+/bV2bNndebMGRUuXFi1atVSsWLFVLhwYW3ZskXe3t5KTk7WF198YVxvLFmyRNHR0XrnnXfk6elp9JUZOfrppKQkFStWTJKM0YljxoxRbGysXn75ZX377bfavHmzPDw8NGfOHNWsWVPdu3fX+fPnde+992bqQ9evXy9J6tixo6pWraq9e/fq2LFjSk9P13vvvae1a9dq9erV2rFjh9LS0tSwYUOdOnVKDz30kKZPn66iRYtq6NChatOmjQYOHKgTJ07o+PHjCggIUIECBXT+/HlJ0muvvaZdu3apefPmWf5mGDBgQKZrOovFookTJ2rWrFnatm2bFi1apD179ujPP/9UhQoV1L9/f1WuXFm9e/fWpEmT1Lx5c0nKdM2xfPlyeXl5qU+fPrp69ap8fX3Vtm1bPfbYY8b6O44nSTp58qS2bNmSZX+uU6eONm7cqIceekiTJ0/WpEmTtGDBAlmt1kz7wqxZs4y6jmu0BQsW6OjRo1qwYIFee+01vfXWW3rppZc0evRonTp1Sjabzegnv/zyS0VHR+vvv//WkiVLtHLlyizX1nFxcRoyZIiuXLmi8PBwDR8+XA8//LCWLVumN954Q0lJSZo8ebK6d++u5cuXq1mzZqpTp45+++03ffzxx3lmBD8jEpxo3LixduzYoR9//FHlypXTxYsXdfbsWZUqVcp4Tb169bRq1SodP35c8fHxxs75+eef659//pEknTp1Sm+88Yaef/55nT59Wq+++qoqVKig9evX6+TJk5KujQJo2rSpPvroI1WoUEG9evVSnz599PXXXys6Olo1a9bUunXrVKtWLa1evVrfffedXnvtNa1Zs0ZPPPGEdu/erdTUVIWGhurNN9+Un5+fAgMD1ahRI3Xq1Enly5dXixYt9Oeffxo1+vTpo549e2YactalSxcFBwdr9erVqlKliiIjI9WwYUMtX75cJUuW1Pnz55WcnKx169apW7dumjdvnqKjo/Xkk09q8uTJqlWr1i1vrwULFqhr165at26dUlJStGvXLjVs2FC7du3S7t27deHCBY0bN05NmjRR5cqVnX52ly5d0oIFC/TMM89o9erVCgsL05kzZzRs2DB17txZo0eP1sSJEzVx4kQtXLhQ4eHh+uabb9S8eXOtWrVK0rWfOV26dKl8fX116dIlzZ8/X8OGDdPy5cv19ddfq2LFirp06ZLWrl2rpUuXavLkyVqxYoVWrFiht956S9K1oVKRkZF66aWXdObMGUnSG2+8oUaNGmnx4sW67777VL58eZ08eVKRkZGKiIjQ9OnTJUnnzp3TvHnzNGrUKMXHxys1NVXff/+9mjVrpvPnz2vt2rVau3atFi1aZPwB8Pfff2v69OkaMmTIDe+7krJ83hnb8cQTTxjLNm3aVD/++KOSk5OVlJQkf39/vfXWW1q8eLHWr1+vr776SlFRUapUqZLmzZunOXPm6J9//tHnn3+uyZMn67333pMkzZgxQ2vXrlXXrl319ddfZ1qH559/XhMmTNCiRYsUGRmp//73v5k+Y6vVqi+//FJhYWHat2+fVq9erXLlyhlJ8pNPPqk6deooMjJSdevWzXTM1K9fP8s279Onj1q3bq3BgwerXLlyat26tZYuXapFixbp0Ucf1YoVK3TixAl99NFHqlOnjo4fP66oqChNmTJFb775ppYtW6bZs2cb7evevbuioqK0aNEiXblyxel+Kl0LFIoUKaLatWurYsWKKlmypAYNGqR58+Zp0qRJKleunIKDg43jzdn+vX//fqf7kMPJkyf10UcfafHixZoyZYqKFSumkSNHatiwYVq9enWm4ZpeXl5asmSJHnjgASOQ+eabb/T0009r7ty56tKli3GMfPfdd2rfvr2mT5+uyZMnq3nz5vrpp59Uu3ZtnThxQgMGDNDRo0fVsmXLHI+zAQMGGEN1V69erc6dO2v9+vW6dOmShgwZok8++URnz55VcnKykpOTdeTIEc2dO9dY16NHj6pfv37avn27jh07pscff1xt27ZV6dKl1a1bN50+fVoxMTE6duyYqlevrgYNGujQoUPat2+fcaJu06aN1q9fr++++y7T9nP0SWFhYQoJCdFrr72m1q1bq127djp+/LgsFotmzZql5cuXq0qVKlq2bJmqVKmiyZMna8yYMZo/f74k6fz58xo5cqT69++vtLQ0DR061NhHfvnlFx04cMDp55WWlqaZM2dq3bp1mjVrlt58802n0zp27Gjs8yEhIbLb7Vq2bJn69u2rzZs3ZzkG9+3bp+bNm2vNmjWaMmVKln0z4/KzZs1yecxERkaqVKlSTo9nZ+655x7TfVpGjhBh/PjxeueddzL1NyVKlFBycrIuXryoLVu2qFWrVk7XL6c+btCgQVq7dq1mz56tDz/8UN7e3rp06ZIuX75sBIxFihRRkSJFsvSv1/eBV65ccTrNcdzv3LnTZYhw+vRpbd26VVFRUXrppZc0ffr0LH1aRhn7txYtWmTpI3bv3p3l3N24cWOtXbtW7dq1U4sWLVS8eHHFxsZqw4YNbjsXPfzww/Lz89N9992nY8eOqXnz5nr99dfVq1cv/fXXX/L29tbkyZNVpkwZffvtt/Lz89Prr7+umjVr6o033tD9999vhBSS1KNHD61fv96Y5mz7ZjxvXL58WS+88IKGDh2qmTNnKiUlRW3atNF///tfTZ06VVOnTlWnTp2MLwGSkpI0dOhQlS1bViVKlFC7du30448/qnbt2lqzZo18fX1VsGBBTZ48WSVKlFDTpk0VFxenJk2a6Ouvv1bJkiW1cuVKrV+/XhcvXtRff/0lSbp69apeffVVFS1aVImJiYqKilLhwoVVoUIFLViwQD///LPmzp2rihUrauPGjfruu+/07bffasOGDZo/f74KFCigdu3aqVq1atq4caMOHTqkYcOGacyYMdqxY4fGjRun+++/X2FhYRozZowuXrwoi8WiiIgItW/fPtsh2I5+6a233tLkyZM1bdo0HTt2TFu3blX9+vXVpk0bffvtt1q+fLmCg4ON49vV/jhhwgTjGmfXrl2KiorK1E9k3Dfsdrs+/PBDNW/eXJcvX5a/v7/at2+v4OBgRUREKCIiQlu3btXvv/+uJk2aGO/XunXrHD/7//73v06vc9PT07Vjxw5Vr15d27dvl9Vq1fTp0/XPP//om2++UUREhLy8vPToo4/q4Ycf1v79+xUaGqpXX31V5cuXz3S98csvv0jK3Fc6+ntJmfrpkSNHKiYmRt999528vb21adMmHT16VBMmTFC9evX0ww8/6MiRI1qwYIFGjBghm82m48eP69ChQxo7dqzTz+7ChQsqXbq0ihUrpl27dqlu3brGepcpU8ZY7wcffFCzZs3SN998o3nz5umbb77RAw88oDVr1qhmzZoaNGiQqlSpogEDBqhixYpKTU3VwIED9cADDxjvdf22dHZNd73KlSvrvvvu07Bhw1SmTBmnr8l4zeH44qNJkyZavny5ihcv7nSZq1ev6ssvv1ThwoWzzPvnn380btw4DRkyRNu3bzemz549O8u+4EyfPn30wAMPqE+fPsa0xMREnT9/XjExMRowYIDGjRunv/76S/7+/ipevLi+/PJL1a5dW1LWa+v33ntPY8eOVVRUlLZt26aTJ0+qatWqOnz4sOLi4pSQkKC///5b5cuXlySdPXtWH374od5+++1MfV9ux4gEJ5o2bapx48bJbrfrkUce0dq1a1W6dGnFxcUZr6lTp44kqWzZskpMTNTRo0dVr149Wa1Wo2MtUKCA7r33XqWlpSk4OFgxMTGqU6eOUlNTZbPZ5O/vr6tXr+ree+9V5cqVVbduXS1evNj4ZYwjR44YaWT9+vW1d+9ePfXUU4qIiNBnn32mgQMH6ujRo6pWrZqKFi2q+vXra8GCBapTp45++eUXlS1bVhcuXFCFChUy1ShdunSO28CxPtK1B27Gx8dnasv27dvVr18/TZ48WXFxcUpMTFTZsmVvaXsdOXLE6Lzq16+vmJgYNW3aVFFRUUpJSVFYWJimT5+us2fPZvoZUbvdbvzEaK1ateTh4aFy5coZ9zj37dtXjzzyiCIiIvTOO+8Yy/3xxx/au3ev5s2bp8uXL6t79+7y8fHJ9G2Yo17ZsmWNdbhy5YrKlSsn6drPmTq+VZBkDP/38PBQsWLFVKxYMeOPeEfnsWrVKqWkpKhEiRKKjo427n8rW7aspGtDQh112rRpo++++05bt241vqncv3+/HnzwwUyfV/Xq1VW0aNGb2neLFy+e5fO+vh0OnTt31uLFi3X27Fm1a9dOkrR//379v//3/yRdO7l17txZixYt0syZMzVkyBDVqVNHVqvVOAbS0tL06quv6sCBA7p48aKxLo51cHBc7F//k7EZ2+/YtmXLllVwcLDT4XcZj5m6des63eaS9NdffykkJETbtm0zPteCBQvKx8dHhQoVUrFixVSgQAHZbDYVLFhQNWrUME6QjlE10rWTiaenpypUqKCzZ89maY8k4yTp7++vnTt3Kjg4WCdPnlTRokVVtGhRHTt2TC1btjTCD8dJ8fr9+/Dhwy7XR5KqVKli7IeJiYmSpNatW+uFF17Q2LFjM21bx3YtV66cfv31V33zzTfauHGj0tLS1KhRI7Vo0ULTp09X3759jXb+8ccfeu2113Tx4kX99ttvev755xUfH68ff/xRw4YN08svv5zjcebt7W18E/L9999r9OjR+vDDD7Vt2zYdPHhQGzZskK+vr65evaqUlJQs61qiRAmFhITo/PnzSkpK0vz58+Xp6SkvLy+FhITo4sWLio6OVtmyZbV7924988wz+uGHH2S32+Xl5ZVp3QsVKpRp+zn6pJYtW+qpp57Syy+/rHr16mnnzp3q2LGjzp07p99++00eHh7GZ3r58mWNGTNGRYoUUY0aNSRJpUuXVvny5RUTEyN/f3+dOnVKycnJGjBggNLS0owhvtd/XufOnVOFChXk5eWlwMBAl9Ou5ziWg4ODjXNCxmOwWbNmio6O1tNPP622bduqZ8+eLpefMGGCvLy8XO5jro5nV8z2aRmtXr1avXv3Vu3atbP0N+fOndNDDz2ktWvXauvWrXrhhRdUvnz5LOuXUx+3ZMkSLV261Dj2JSkwMFArV65U+/bttXPnTlksFiUmJspms2XqXzdt2pSlTc7aKV0bbeD4VtGZY8eOGe2sX7++06Ano+uvCa7vI66/jti+fbuGDh2qQoUKKSoqSmXKlNHSpUt14cIFI7R1x7lIuvarX9u2bdOLL76owYMHKy4uTlFRUdq5c6fOnTsnPz8/lSlTRlWqVFHhwoVVuXJleXh4qEmTJtqyZUuW/snLy8uY5mr7Os4b/fv314gRI3T06FF5eXmpdu3a+uuvvxQYGCgvLy9ZrVb5+voqMTFRdrtd3t7eKlGihOrXr69Tp04pISFBPj4+mc6BycnJmjlzpmJjY/XFF1/IarUa+9KFCxc0YsQIJSQk6NixY8aXRY5tf+zYMRUpUkTStT/g9+3bp0OHDik9Pd34smPIkCG6fPmyzp8/r/T0dB06dMh47ypVqujo0aM6fvy4PvjgA3l6eqpAgQJq1qyZVq9ebXzr6tiGFSpU0LFjx7L0DxlvN3P0S9K1YHfXrl3avHmzBg4cqMTERMXExKhjx46KiYmRzWbTrl27sj1OL1y4YIQAjv3R1b7h5+cnSQoICFB0dLTq1aun8uXLKy4uzrh2DgwMVIECBbK8T06fvaufmU9ISJDFYlFwcLACAwNlsVgUExOjkiVL6v3339e3336rs2fPKiIiQj4+Prp48aLq1KmjkJAQFS5cONO1R0JCgjw8PDL1lZs3bzbeK2M/7e/vr4IFC0qS7r//fq1evVoWi0UPPvigvvrqK6WkpBjHXkpKiuLj41WqVCkVLFjQ6egsu92ulJQUNW7cWD/88INxTe8YTZKRY/lRo0YpIiJCNptNo0aNMvqFgwcP6v7771dMTIyqVatmBGCO93Hm+vOJo7/MuEydOnW0fft2lStXThaLxRiZm7FmxmuOhIQEnT592vh7IDg42Ol7ZxyhcX29UqVKqXTp0vLz81NKSkq262DWqVOnlJKSogcffFCnT5+WxWJRUFCQJk2apJSUFO3bt89Yj+uvrTP2vcHBwYqNjVXTpk21fft2eXl5qVChQtq8ebMaN24s6doxXqhQIWN75BWMSHCidOnSOn36tDw9PdWkSRN98MEHatKkSabXXH/gBAYGav/+/UpLS9PBgwclXftjwfHgjri4OFWuXFn+/v7as2ePihYtqrZt2+r7779Xo0aNdPnyZQ0ePFgPPfSQ9u7dqzNnzqhy5crG8nv27FHlypVVvHhxvf3225owYYImTZqkypUr688//5TFYtGePXtUunTpTG0rV66c8SBDRw0vL68cH5znWB/p2kNHPD09s7TFy8tLb731lj799FPt3r37lreXs/WtV6+eNm/ebAyjPn/+vJ5//nm9++67OnXqlCQZyzt7n/T0dE2bNk2jR4/W9OnTM617tWrV9NxzzykyMlIbNmxQ//79JWU+CWWs5/i3v7+/cb9ienq60tPTlZiYqMTERKN2enq6kpKSdOLECeMkV716dc2ZM0eHDh3S9u3bFRMTY6T1kZGR+uSTT7K8f5cuXbR69WodOnRIQUFBCgwMVIMGDYxlVq5cmWmZm9l3nX3e17fDISQkxPgjs3PnzpKu/dGxdOlSRUZGauvWrapZs6YxbHXSpEn67bfflJaWpv3796ty5cr69ddflZSUpHXr1unpp5822nD9+124cMHYlq7a72xdrp+e8ZjZtm1blm3u2CeqVaum33//XadPnzY+v8uXLysxMVGpqalKSkrSlStXjJ+wdfXejv06Li7OZWjnGAmSkpKili1bymKxyG63y8fHR4mJiQoMDDQeDuQ4Fpy9Z9WqVZ3uQw4xMTFKSkrK9NO7c+fO1aOPPqoFCxbo8uXLTreZr6+vevbsqcjISK1fv16vvvqqrFarAgMD9f777xsXk9WqVdObb76pMmXKaMKECfrjjz9UpkwZDRs2TM2bN9eiRYtMHWedOnXSe++9p6pVq8rT01PVqlVTq1at9Mgjj2j9+vWqWLGirFarKlWqlGVdixUrpv3796tkyZLy9vZW3759FRoaqujoaO3du9cYBrt//37Fx8erefPm+uKLL4yT/vXrnpGjTypevLiqVq2q4cOHa926dapQoYLWrl0rPz8/BQQEqHz58oqPj9eFCxd06NAhTZkyRS+//LLTfdtiscjf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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(16,8))\n", "plt.bar(range(k), mi[ordered_terms[:k]], facecolor=colors[6], alpha=0.9, edgecolor=colors[6], lw=2)\n", "plt.xticks(range(k), vocab[ordered_terms[:k]])\n", "plt.title(r\"Mutual information\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Crea un nuovo classificatore Naive Bayes ed effettua l'apprendimento sul training set ridotto " ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(900, 50)" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_red = xtrain[:,ordered_terms[:k]]\n", "x_red.shape" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MultinomialNB(alpha=1e-09)" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clf2 = MultinomialNB(alpha=1.0e-9)\n", "clf2.fit(x_red, ytrain.ravel())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Applicazione del classificatore al training set ridotto e derivazione della accuracy" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy = 0.8900000\n" ] } ], "source": [ "preds2 = clf2.predict(x_red)\n", "print('Accuracy = {0:8.7f}'.format(accuracy_score(ytrain, preds2)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8", "language": "python", "name": "python3.8" }, "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.8.0" } }, "nbformat": 4, "nbformat_minor": 4 }