diff --git a/2017/04-knn-exercicio/knn_gabriel_gomes_thiago_sousa.ipynb b/2017/04-knn-exercicio/knn_gabriel_gomes_thiago_sousa.ipynb new file mode 100644 index 0000000..4a670e0 --- /dev/null +++ b/2017/04-knn-exercicio/knn_gabriel_gomes_thiago_sousa.ipynb @@ -0,0 +1,631 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Gabriel Gomes 374178 e Thiago de Sousa 374204" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn.metrics import classification_report, accuracy_score\n", + "from sklearn.neighbors import DistanceMetric\n", + "from sklearn.preprocessing import LabelEncoder, MinMaxScaler\n", + "from sklearn.model_selection import train_test_split\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "class KNNClassifier(object):\n", + " def __init__(self):\n", + " self.X_train = None\n", + " self.y_train = None\n", + " self.dist = DistanceMetric.get_metric(\"euclidean\")\n", + "\n", + " def euc_distance(self,row, point):\n", + " return self.dist.pairwise([row], [point])[0,0]\n", + " \n", + " def closest(self, row, K):\n", + " allDist = [self.euc_distance(row, points) for points in self.X_train]\n", + " closests = np.argsort(allDist)[:K]\n", + " return self.y_train[closests]\n", + "\n", + " def fit(self, training_data, training_labels):\n", + " self.X_train = training_data\n", + " self.y_train = training_labels\n", + "\n", + " def predict(self, to_classify, K):\n", + " predictions = []\n", + " for row in to_classify:\n", + " labels = np.argmax(np.bincount(self.closest(row, K)))\n", + " predictions.append(labels)\n", + " return predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", + "
" + ], + "text/plain": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22.0 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", + "2 Heikkinen, Miss. Laina female 26.0 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", + "4 Allen, Mr. William Henry male 35.0 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S " + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_train = pd.read_csv(\"train.csv\")\n", + "data_train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PclassSexAgeSibSpParchFareCabinEmbarked
11038.01071.2833800
31035.01053.1000542
61154.00051.86251282
10304.01116.70001442
111058.00026.5500482
\n", + "
" + ], + "text/plain": [ + " Pclass Sex Age SibSp Parch Fare Cabin Embarked\n", + "1 1 0 38.0 1 0 71.2833 80 0\n", + "3 1 0 35.0 1 0 53.1000 54 2\n", + "6 1 1 54.0 0 0 51.8625 128 2\n", + "10 3 0 4.0 1 1 16.7000 144 2\n", + "11 1 0 58.0 0 0 26.5500 48 2" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_train[\"Age\"] = data_train.Age.fillna(data_train.Age.mean())\n", + "data_train = data_train.dropna(axis=0, how=\"any\")\n", + "data_train.drop(labels=[\"Name\", \"Ticket\"], axis=1, inplace=True)\n", + "X_train = data_train.loc[:,\"Pclass\":]\n", + "y_train = data_train[[\"Survived\"]]\n", + "LE = LabelEncoder()\n", + "for feature in [\"Sex\", \"Cabin\", \"Embarked\"]:\n", + " X_train[[feature]] = X_train[[feature]].astype(str)\n", + " LE.fit(X_train.loc[:,feature])\n", + " X_train[[feature]] = LE.transform(X_train.loc[:,feature])\n", + " \n", + "X_train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PclassSexAgeSibSpParchFareCabinEmbarked
Pclass1.000000-0.060014-0.287184-0.0869720.056288-0.3117400.4940000.170303
Sex-0.0600141.0000000.167361-0.152552-0.110574-0.137185-0.0837680.096805
Age-0.2871840.1673611.000000-0.139881-0.246928-0.076680-0.125576-0.090462
SibSp-0.086972-0.152552-0.1398811.0000000.2623480.2917770.0567450.002228
Parch0.056288-0.110574-0.2469280.2623481.0000000.3849700.0012910.061455
Fare-0.311740-0.137185-0.0766800.2917770.3849701.000000-0.262818-0.239213
Cabin0.494000-0.083768-0.1255760.0567450.001291-0.2628181.0000000.231418
Embarked0.1703030.096805-0.0904620.0022280.061455-0.2392130.2314181.000000
\n", + "
" + ], + "text/plain": [ + " Pclass Sex Age SibSp Parch Fare \\\n", + "Pclass 1.000000 -0.060014 -0.287184 -0.086972 0.056288 -0.311740 \n", + "Sex -0.060014 1.000000 0.167361 -0.152552 -0.110574 -0.137185 \n", + "Age -0.287184 0.167361 1.000000 -0.139881 -0.246928 -0.076680 \n", + "SibSp -0.086972 -0.152552 -0.139881 1.000000 0.262348 0.291777 \n", + "Parch 0.056288 -0.110574 -0.246928 0.262348 1.000000 0.384970 \n", + "Fare -0.311740 -0.137185 -0.076680 0.291777 0.384970 1.000000 \n", + "Cabin 0.494000 -0.083768 -0.125576 0.056745 0.001291 -0.262818 \n", + "Embarked 0.170303 0.096805 -0.090462 0.002228 0.061455 -0.239213 \n", + "\n", + " Cabin Embarked \n", + "Pclass 0.494000 0.170303 \n", + "Sex -0.083768 0.096805 \n", + "Age -0.125576 -0.090462 \n", + "SibSp 0.056745 0.002228 \n", + "Parch 0.001291 0.061455 \n", + "Fare -0.262818 -0.239213 \n", + "Cabin 1.000000 0.231418 \n", + "Embarked 0.231418 1.000000 " + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "corrMatrix = X_train.corr()\n", + "corrMatrix" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 0. 0. 0.46889226 ..., 0.13913574 0.55172414 0. ]\n", + " [ 0. 0. 0.43095599 ..., 0.1036443 0.37241379 1. ]\n", + " [ 0. 1. 0.67121902 ..., 0.10122886 0.88275862 1. ]\n", + " ..., \n", + " [ 0. 0. 0.69650986 ..., 0.16231419 0.47586207 0. ]\n", + " [ 0. 0. 0.22862924 ..., 0.0585561 0.2 1. ]\n", + " [ 0. 1. 0.31714719 ..., 0.0585561 0.40689655 0. ]]\n" + ] + } + ], + "source": [ + "X_train = MinMaxScaler().fit_transform(X_train)\n", + "np.disp(X_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(X_train, y_train.values.flatten(), test_size=0.25)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Numero otimo de vizihos: 7\n", + "Score: 87.5 %\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "knn = KNNClassifier()\n", + "knn.fit(X_train, y_train)\n", + "\n", + "score_cv = []\n", + "k_cv = np.arange(3, 123, 4)\n", + "\n", + "for k in k_cv:\n", + " _, X_cv, _, Y_cv = train_test_split(X_train, y_train, test_size=0.1)\n", + " y_pred_cv = knn.predict(X_cv, k) \n", + " score_cv.append(accuracy_score(y_pred=y_pred_cv, y_true=Y_cv))\n", + " \n", + "optK = k_cv[np.argmax(score_cv)]\n", + "print(\"Numero otimo de vizihos: \", optK)\n", + "print(\"Score: \", np.max(score_cv)*100, \"%\")\n", + " \n", + "plt.figure()\n", + "plt.plot(k_cv, score_cv, 'g-')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " Sobreviveu 0.54 0.35 0.42 20\n", + "Não Sobreviveu 0.66 0.81 0.72 31\n", + "\n", + " avg / total 0.61 0.63 0.61 51\n", + "\n" + ] + } + ], + "source": [ + "y_pred = knn.predict(X_test, optK)\n", + "print(classification_report(y_test, y_pred, target_names=[\"Sobreviveu\", \"Não Sobreviveu\"]))" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [default]", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2017/05-naive-bayes/naiveBayes_gabrielgomes_thiago_sousa.ipynb b/2017/05-naive-bayes/naiveBayes_gabrielgomes_thiago_sousa.ipynb new file mode 100644 index 0000000..43861a9 --- /dev/null +++ b/2017/05-naive-bayes/naiveBayes_gabrielgomes_thiago_sousa.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Thiago de Sousa - 374204 e Gabriel Gomes - 374178" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from sklearn.naive_bayes import MultinomialNB, GaussianNB\n", + "from sklearn.cross_validation import train_test_split\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.metrics import accuracy_score, classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "class NaiveBayes:\n", + " def __init__(self):\n", + " ''' Default Constructor '''\n", + " self.lEncoder = LabelEncoder()\n", + " self.X = None; self.y = None\n", + " self.classProb = None; self.likeTable = {}\n", + " \n", + " def separateByClass(self):\n", + " ''' This functions separates all the dataset indexing dictionaries by the classes '''\n", + " separated = {}\n", + " for i in range(len(self.y)):\n", + " if (self.y[i] not in separated):\n", + " separated[self.y[i]] = []\n", + " separated[self.y[i]].append(self.X[i])\n", + " return separated\n", + " \n", + " def makeLikeTable(self):\n", + " ''' This functions counts the occurences of each attribute based on the classes\n", + " and construct the Likelihood table (in this case a Dictionary) calculating all\n", + " the propers probabilities '''\n", + " sepClass = self.separateByClass()\n", + " classSizes = [len(sepClass[i]) for i in sepClass.keys()] \n", + " self.classProb = np.array(classSizes) / sum(classSizes)\n", + " \n", + " self.likeTable = {}\n", + " for label in sepClass.keys():\n", + " aux = np.column_stack(sepClass[label])\n", + " for attribute,idx in zip(aux, range(len(aux))):\n", + " counts = np.asarray(np.unique(attribute, return_counts=True)).T\n", + " for i in range(4):\n", + " self.likeTable[(label, idx, i)] = 0\n", + " for count_it in counts:\n", + " self.likeTable[(label, idx, count_it[0])] = count_it[1] / len(sepClass[label])\n", + "\n", + " def calculateProbability(self, inputVector):\n", + " ''' Utilizes the maximum likelihood estimation to calculate the probabilty of\n", + " each row in inputVector belongs to each possible class '''\n", + " sepClass = self.separateByClass()\n", + " \n", + " probabilities = {}\n", + " for label,_ in sepClass.items():\n", + " probabilities[label] = self.classProb[label]\n", + " for i in range(len(inputVector)):\n", + " probabilities[label] *= self.likeTable[label, i, inputVector[i]]\n", + " \n", + " return probabilities\n", + "\n", + " def fit(self, X_train, y_train):\n", + " ''' Assign the training data and calls the Likelihood Table creator '''\n", + " self.X = X_train\n", + " self.y = y_train\n", + " \n", + " self.makeLikeTable()\n", + " \n", + " def predict(self, inputArray):\n", + " ''' Return a list of predictions for each row in inputArray correspondent to\n", + " the label of the class with the maximum probability '''\n", + " predictions = []\n", + " for row in inputArray:\n", + " probabilities = self.calculateProbability(row)\n", + " predictions.append(max(probabilities, key=probabilities.get))\n", + " return predictions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.read_csv(\"carData.csv\", header=None)\n", + "\n", + "\n", + "for i in range(0, data.shape[1]):\n", + " data.iloc[:,i] = LabelEncoder().fit_transform(data.iloc[:,i])\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(data.iloc[:,:-1], data.iloc[:,-1], test_size=0.2)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multinomial Naive Bayes (Versão do Sklearn)\n", + "Acurácia Total:: 0.7109826589595376%\n", + "\n", + "Classification Report:\n", + " precision recall f1-score support\n", + "\n", + " unacc 1.00 0.04 0.08 75\n", + " acc 0.00 0.00 0.00 16\n", + " good 0.71 1.00 0.83 243\n", + " vgood 0.00 0.00 0.00 12\n", + "\n", + "avg / total 0.71 0.71 0.60 346\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/petcomp1/anaconda3/lib/python3.5/site-packages/sklearn/metrics/classification.py:1113: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n", + " 'precision', 'predicted', average, warn_for)\n" + ] + } + ], + "source": [ + "clf = MultinomialNB()\n", + "clf.fit(X_train.values, y_train.values)\n", + "\n", + "y_pred = clf.predict(X_test.values)\n", + "\n", + "\n", + "print(\"Multinomial Naive Bayes (Versão do Sklearn)\")\n", + "print(\"Acurácia Total:: {}%\".format(accuracy_score(y_true=y_test, y_pred=y_pred)))\n", + "\n", + "print(\"\\nClassification Report:\")\n", + "print(classification_report(y_true=y_test, y_pred=y_pred, target_names=[\"unacc\", \"acc\", \"good\", \"vgood\"]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Naive Bayes (Nossa Versão)\n", + "Acurácia Total: 0.838150289017341%\n", + "\n", + "Classification Report:\n", + " precision recall f1-score support\n", + "\n", + " unacc 0.63 0.68 0.65 75\n", + " acc 0.50 0.19 0.27 16\n", + " good 0.92 0.95 0.93 243\n", + " vgood 0.75 0.50 0.60 12\n", + "\n", + "avg / total 0.83 0.84 0.83 346\n", + "\n" + ] + } + ], + "source": [ + "nBayes = NaiveBayes()\n", + "nBayes.fit(X_train.values, y_train.values)\n", + "y_pred = nBayes.predict(X_test.values)\n", + "\n", + "print(\"Naive Bayes (Nossa Versão)\")\n", + "print(\"Acurácia Total: {}%\".format(accuracy_score(y_true=y_test, y_pred=y_pred)))\n", + "\n", + "print(\"\\nClassification Report:\")\n", + "print(classification_report(y_true=y_test, y_pred=y_pred, target_names=[\"unacc\", \"acc\", \"good\", \"vgood\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [default]", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2017/06-linear-regression/resp_gabrielgomes_thiago_sousa.ipynb b/2017/06-linear-regression/resp_gabrielgomes_thiago_sousa.ipynb new file mode 100644 index 0000000..2795371 --- /dev/null +++ b/2017/06-linear-regression/resp_gabrielgomes_thiago_sousa.ipynb @@ -0,0 +1,235 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Regressão Linear Simples - Trabalho\n", + "##### Thiago de Sousa - 374204 e Gabriel Gomes - 374178\n", + "\n", + "## Estudo de caso: Seguro de automóvel sueco\n", + "\n", + "Agora, sabemos como implementar um modelo de regressão linear simples. Vamos aplicá-lo ao conjunto de dados do seguro de automóveis sueco. Esta seção assume que você baixou o conjunto de dados para o arquivo insurance.csv, o qual está disponível no notebook respectivo.\n", + "\n", + "O conjunto de dados envolve a previsão do pagamento total de todas as reclamações em milhares de Kronor sueco, dado o número total de reclamações. É um dataset composto por 63 observações com 1 variável de entrada e 1 variável de saída. Os nomes das variáveis são os seguintes:\n", + "\n", + "1. Número de reivindicações.\n", + "2. Pagamento total para todas as reclamações em milhares de Kronor sueco.\n", + "\n", + "Voce deve adicionar algumas funções acessórias à regressão linear simples. Especificamente, uma função para carregar o arquivo CSV chamado *load_csv ()*, uma função para converter um conjunto de dados carregado para números chamado *str_column_to_float ()*, uma função para avaliar um algoritmo usando um conjunto de treino e teste chamado *split_train_split ()*, a função para calcular RMSE chamado *rmse_metric ()* e uma função para avaliar um algoritmo chamado *evaluate_algorithm()*.\n", + "\n", + "Utilize um conjunto de dados de treinamento de 60% dos dados para preparar o modelo. As previsões devem ser feitas nos restantes 40%. \n", + "\n", + "Compare a performabce do seu algoritmo com o algoritmo baseline, o qual utiliza a média dos pagamentos realizados para realizar a predição ( a média é 72,251 mil Kronor).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import csv\n", + "import matplotlib.pyplot as plt\n", + "from math import sqrt\n", + "from random import randrange" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def str_column_to_float(data):\n", + " newData = []\n", + " for lines in data:\n", + " aux = [float(x) for x in lines]\n", + " newData.append(aux)\n", + " return newData\n", + "\n", + "def load_csv(filename):\n", + " lines = csv.reader(open(filename + \".csv\", \"r\"))\n", + " data = list(lines)\n", + " return str_column_to_float(data)\n", + "\n", + "def split_train_test(data, test_size=0.4):\n", + " dataTrain = list(data)\n", + " dataTest = []\n", + " size = int(len(dataTrain)*test_size)\n", + " for _ in range(size):\n", + " idx = randrange(len(dataTrain))\n", + " dataTest.append(dataTrain.pop(idx))\n", + " return [dataTrain, dataTest]\n", + "\n", + "def mean(values):\n", + " return sum(values)/len(values)\n", + "\n", + "def variance(values, mean):\n", + " return sum([(x-mean)**2 for x in values])\n", + "\n", + "def covariance(x, mean_x, y, mean_y):\n", + " covar = 0.0\n", + " for i in range(len(x)):\n", + " covar += (x[i] - mean_x) * (y[i] - mean_y)\n", + " return covar\n", + "\n", + "def coefficients(dataset):\n", + " x = [row[0] for row in dataset]\n", + " y = [row[1] for row in dataset]\n", + " x_mean, y_mean = mean(x), mean(y)\n", + " b1 = covariance(x, x_mean, y, y_mean) / variance(x, x_mean)\n", + " b0 = y_mean - b1 * x_mean\n", + " return [b0, b1]\n", + "\n", + "def simple_linear_regression(train, test):\n", + " predictions = list()\n", + " b0, b1 = coefficients(train)\n", + " for row in test:\n", + " ypred = b0 + b1 * row[0]\n", + " predictions.append(ypred)\n", + " return predictions\n", + "\n", + "def rmse_metric(actual, predicted):\n", + " sum_error = 0.0\n", + " for i in range(len(actual)):\n", + " prediction_error = predicted[i] - actual[i]\n", + " sum_error += (prediction_error ** 2)\n", + " mean_error = sum_error / float(len(actual))\n", + " return sqrt(mean_error)\n", + "\n", + "def evaluate_algorithm(train_set, test_set, algorithm):\n", + " predicted = algorithm(train_set, test_set)\n", + " actual = [row[-1] for row in test_set]\n", + " rmse = rmse_metric(actual, predicted)\n", + " return rmse\n", + "\n", + "def baseline(train_set, test_set):\n", + " pays = [row[-1] for row in train_set]\n", + " meanValue = mean(pays)\n", + " predictions = [meanValue for i in range(len(test_set))]\n", + " return predictions\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A Regressão Linear Simples obteve os coeficientes: alfa = 20.68 e beta = 3.42\n", + "O erro RMSE desse algoritmo é 30.10\n", + "O erro RMSE para o baseline (média dos pagamentos) é 112.82\n", + "\n", + "Primeiras 10 predições:\n", + "Y real: 0.00 \t| Y previsto: 20.68 \t | Y baseline: 95.87\n", + "Y real: 422.20 \t| Y previsto: 444.50 \t | Y baseline: 95.87\n", + "Y real: 217.60 \t| Y previsto: 229.17 \t | Y baseline: 95.87\n", + "Y real: 32.10 \t| Y previsto: 71.95 \t | Y baseline: 95.87\n", + "Y real: 58.10 \t| Y previsto: 61.69 \t | Y baseline: 95.87\n", + "Y real: 77.50 \t| Y previsto: 68.53 \t | Y baseline: 95.87\n", + "Y real: 57.20 \t| Y previsto: 58.27 \t | Y baseline: 95.87\n", + "Y real: 12.60 \t| Y previsto: 34.35 \t | Y baseline: 95.87\n", + "Y real: 50.90 \t| Y previsto: 41.18 \t | Y baseline: 95.87\n", + "Y real: 48.70 \t| Y previsto: 51.44 \t | Y baseline: 95.87\n" + ] + } + ], + "source": [ + "data = load_csv(\"insurance\")\n", + "[trainData, testData] = split_train_test(data, test_size=0.4)\n", + "\n", + "coef = coefficients(trainData)\n", + "predRegre = simple_linear_regression(trainData, testData)\n", + "predBase = baseline(trainData, testData)\n", + "\n", + "avalRegre = evaluate_algorithm(trainData, testData, simple_linear_regression)\n", + "avalBase = evaluate_algorithm(trainData, testData, baseline)\n", + "\n", + "print(\"A Regressão Linear Simples obteve os coeficientes: alfa = {:.2f} e beta = {:.2f}\".format(coef[0], coef[1]))\n", + "print(\"O erro RMSE desse algoritmo é {:.2f}\".format(avalRegre))\n", + "print(\"O erro RMSE para o baseline (média dos pagamentos) é {:.2f}\".format(avalBase))\n", + "\n", + "print(\"\\nPrimeiras 10 predições:\")\n", + "for i in range(10):\n", + " print(\"Y real: {:.2f} \\t| Y previsto: {:.2f} \\t | Y baseline: {:.2f}\".format(testData[i][-1], predRegre[i], predBase[i]))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n2muUlZXRuXNnRo4cyd/+9jcqKiooKiri008/5dhjj+Wtt96ioKCASy+9lL///e9N/hnat29fe9yu\nXTuqqqqa8Q40fB3nHH379q39GRYsWMBrr73Wouu3ZSOG9iE3J/4/3tycdowY2iegiCRbNLUNmzdv\nntowtWFtz1FHwbx53vHmzdCxY0peptEeLefcO0B981sTjmJ0zo0BxrQirniNfGpLtY4dO/LAAw8w\nbNgwrr76ak488UTGjh1LcXExnTt3pqysjJycHIqKirjyyisZNWoUVVVVvPTSSwwfPrzea/74xz/m\nj3/8IyNGjABg7ty59O/fn3//+9/069ePfv368dFHH/Hpp5+Sm5tLt27d+K//+i+2b9/OJ598wsUX\nX1x7rWOOOYZLL72UkSNHsmXLFp577jkee+yxlL8vffr04auvvuL999/nyCOPpLKyks8++4y+ffum\n/LWzybBCb67I+OlLWb2hgq55uYwY2qe2XrKArw2rCGARzrpt2NChQ7nttttq27DVq1ez5557hqIN\nc86pDZPUO/FEeP9973jjRujcOWUvFdqV4cOmsLCQQw45hCeeeIJhw4ZRWlrKkUceCXgDLidPnsxh\nhx3GGWecwSGHHEJ+fj79+vVjjwQD6x544AGuueYaDjnkEKqqqjj22GN5+OGHue+++5g1axa77LIL\nffv25ZRTTuHJJ59k/Pjx5OTk0Llz550+DQ4YMIBLL72Uww8/vHYwfGFhYbO62H//+99zn+8/g1Wr\nVjX6nN12241nnnmG6667jo0bN1JVVcUNN9ygRqoFhhUWKLGSlPK3YRdddBFLliypbcNyc3N54okn\nQtGGgTcYvrCwkIULF9b30vVSGyZNdvrp3uB3gG++gd13T+3rOecC/xo4cKDzmzVrllu8eLELq02b\nNiV8bPPmzc4557Zs2eIGDhzoZs+ena6wnHMNxxak6O9z1qxZwQbSCMXXcs2NDfjYhaD9ScZX3TbM\nOZewDQvj36g/pqDbML+wvFf+32UY/wYVU9PMmjXLuXPOcQ68r6++avG1mtN+qUcryYYPH87ixYvZ\ntm0bl1xyCQMGDAg6JBGRJlMbJtnqB2PHQnQM3tq1sM8+aXldJVpJ9vjjjwcdgohIi6kNk6x01VXs\nF02yysogPz9tL92UWYciIiIimemGG+Avf/GOS0uha9e0vrwSLREREclOI0fC/fcD8MGUKXDAAWkP\nQYmWiIiIZJ/bb4c77/SOly5lW4KerClToGdP2GUX7/uUKckNQ4mWiIiIZJdx4yCyBzELF3rb7NRj\nyhQYPty7o+ic93348OQmW0q0Eli/fj39+/enf//+7LfffhQUFNSWd+zY0aRr/PznP2fp0qVNfs2/\n/e1v7LvvvhQWFtK7d29OPvlkPvjgg0afN3XqVD799NMmv46IZL9ktGEAEydOZO3atfU+duGFF9Kr\nVy8OPfRQvv/973PJJZewevXqRq95zz33sG3btibHINIs994Lo0Z5x3PmQAProo0eDXW23mTrVq8+\nWZRoJbD33nvXbstw1VVXceONN9aWd9ttN8Bbg6ympibhNR555BH69GneNirFxcXMmTOHZcuWccst\nt3DmmWfy2WefNfgcJVoiUldT2rCmaCjRArj33nuZN28en376Kf369eOEE06gsrKywWsq0ZKUeegh\nuOkm7/ijj7y9DBuwcmXz6lsiaxKtaXPKKBo3k14jX6Zo3EymzSlLyessX76cww47jOLiYvr27cua\nNWsYPnw4gwYNom/fvtxxxx215x599NHMnTuXqqoq8vLyGDlyJIceeihHHnkk69ata/S1hgwZwuWX\nX85f//pXAB5++GEOO+wwDj30UM455xwqKip4++23+ec//8mNN95I//79KS0trfc8EQm3VI8T8Zs0\naRKHH344/fv35+qrr6ampoaqqiouuugi+vXrx8EHH8wDDzzAU089xdy5czn33HMb7QnbZZdduOWW\nW9hrr71q9wusr2289957WbduHccccwxDhgxJeJ5Is02cCNdc4x2/+y4MGtToUxKNjU/mmPmsSLSm\nzSlj1NQFlG2owAFlGyoYNXVBypKtzz77jBtvvJHFixdTUFDAuHHj+Pjjj5k3bx6vv/563I72URs3\nbuS4445j3rx5HHnkkUycOLFJrzVgwIDa3qpzzjmHjz76iHnz5nHggQfy6KOPcswxx3Dqqady7733\nMnfuXHr06FHveSISXukYJxK1cOFCnnvuOd57773aD4LPPPMMs2fP5uuvv2bBggUsXLiQiy++uDbB\niiZcTekJ87dZ9bWNN954I9/5znd4++23eeONNxKeJ9IskydDdGP0khJvw+gmGDNm572kO3b06pMl\nKxKt8dOXUlFZHVdXUVnN+OlNHx/VHL169WKQL1N+4oknGDBgAAMGDGDJkiX1NhK5ubmccsopAAwc\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "X_train = [row[0] for row in trainData]; X_test = [row[0] for row in testData]\n", + "Y_train = [row[1] for row in trainData]; Y_test = [row[1] for row in testData]\n", + "predTrain = simple_linear_regression(trainData, trainData)\n", + "predTest = predRegre\n", + "\n", + "plt.figure(figsize=[10, 5])\n", + "\n", + "plt.subplot(1,2,1); plt.title(\"Dados de Treino\")\n", + "plt.scatter(X_train, Y_train, label=\"Train Data\")\n", + "plt.plot(X_train, predTrain, 'r-', label=\"Regression Line\")\n", + "plt.grid()\n", + "plt.legend()\n", + "\n", + "plt.subplot(1,2,2); plt.title(\"Dados de Teste\")\n", + "plt.scatter(X_test, Y_test, c=\"blue\", label=\"Test Data\")\n", + "plt.plot(X_test, predTest, 'r-', label=\"Regression Line\")\n", + "plt.grid()\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [default]", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2017/09-clustering/cl_gabriel_gomes_thiago_sousa.ipynb b/2017/09-clustering/cl_gabriel_gomes_thiago_sousa.ipynb new file mode 100644 index 0000000..acac858 --- /dev/null +++ b/2017/09-clustering/cl_gabriel_gomes_thiago_sousa.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "\n", + "## Thiago de Sousa - 374204 e Gabriel Gomes - 374178\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from sklearn import metrics\n", + "from sklearn.cluster import KMeans\n", + "from sklearn.decomposition import PCA\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.read_csv(\"wine.data\")\n", + "X = data.iloc[:,1:].values\n", + "y = data.iloc[:,0].values\n", + "\n", + "X = (X - X.mean(axis=0)) / X.std(axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pcaData = PCA(n_components=3).fit_transform(X)\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.scatter(pcaData[:,0], pcaData[:,1], pcaData[:,2], c=y, cmap=plt.cm.Dark2)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWQAAADuCAYAAAAOR30qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXlwJPd15/nJum/c9330gb6J7mYfbIqULFISJcqitCtp\nLO9IIXs9tD22fIQntKOZWW841t712I7RhGdiNOtLI9mWpaFEUSRFWaJ4s9ndvLqbfaBx30ABqPuu\nzMr9A53ZVUAVUFWoAqrB/ETwD1YXMrOqMr/58v3e+z5BlmU0NDQ0NHYe3U4fgIaGhobGKpoga2ho\naFQImiBraGhoVAiaIGtoaGhUCJoga2hoaFQImiBraGhoVAiaIGtoaGhUCJoga2hoaFQImiBraGho\nVAiGAt+vtfVpaGhoFI6Qz5u0CFlDQ0OjQtAEWUNDQ6NC0ARZQ0NDo0LQBFlDQ0OjQtAEWUNDQ6NC\n0ARZQ0NDo0LQBFlDQ0OjQtAEWUNDQ6NC0ARZQ0NDo0LQBFlDQ0OjQtAEWUNDQ6NC0ARZQ0NDo0Io\n1FxIQ2NDZFlGkiQA9Ho9gpCXp4qGhgaaIGuUiFQqhSRJiKJIPB5XXxcEAb1er/6n0+nQ6XQIgqCJ\ntYbGGjRB1tgSqVQKURTVqFgQBFVwZXnVrVUR6nSU9+n1egwGgybUGhqAoFw0eaL5IWsgyzKyLJNM\nJpmamsJsNtPY2KiKcCKR2FRUlW2kn3/T09O0t7djMBg0odbYbeR18moRskbeyLKsRsSpVAoAURQx\nGAwFi2U2gV1ZWaG9vV1NfyQSiYx/T099KOkPTag1dhOaIGtsylohVkRQSTsU+JS1Ico2cx2DJEnI\nspwhwukCvTZPraFxN6EJskZOlIoJURRVEVwbkabnirfKRtvKFQlvJNSKQGdbUNTQqEQ0QdZYRzYh\nzha1wqroKemLnWAjoVby3Gtz2ppQa1QqmiBrqMiyjCiKTE5O0tzcrC6qbYQgCOsEuVhhK3W0nUuo\nYTX3nUwmM/4tFothMpmw2WyaUGvsCJoga6hCrJSmLSwsqFUTm1FKEVWOpZwon2ntZ5NlGbfbjc1m\nW3cTUmqp06s+tKYXjXKgCfL7mPRmDqCohbpSLurtpMAp+1bEVmFtLbWSwpFlecPUhybWGsWgCfL7\nkGzNHGtzrPnmhbOlLNYuruVLqaPtQsl23BtF1LBx04tST60JtUa+aIL8PiF9kUsR0FwCUagg76SI\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "kmeans = KMeans(n_clusters=2, random_state=0)\n", + "\n", + "kmeans.fit(X)\n", + "clts = kmeans.predict(X)\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.scatter(pcaData[:,0], pcaData[:,1], pcaData[:,2], c=clts, cmap=plt.cm.Dark2)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Avaliação (2 Clusters)\n", + "Homogeneity: \t0.402\n", + "Completeness: \t0.664\n", + "V-Measure: \t0.501\n" + ] + } + ], + "source": [ + "\n", + "homoScore = metrics.homogeneity_score(y, clts)\n", + "complScore = metrics.completeness_score(y, clts) \n", + "vMeasureScore = metrics.v_measure_score(y, clts)\n", + "\n", + "print(\"Avaliação ({0} Clusters)\".format(kmeans.n_clusters))\n", + "print(\"Homogeneity: \\t{0:.3}\".format(homoScore))\n", + "print(\"Completeness: \\t{0:.3}\".format(complScore))\n", + "print(\"V-Measure: \\t{0:.3}\".format(vMeasureScore))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "........." + ] + }, + { + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "numK = np.arange(1,10); inertias = []\n", + "for i in numK:\n", + " print(\".\", end=\"\")\n", + " kmeans.n_clusters = i\n", + " kmeans.fit(X)\n", + " \n", + " inertias.append(kmeans.inertia_)\n", + " \n", + "plt.figure()\n", + "plt.title(\"Elbow Method\")\n", + "plt.xlabel(\"Numero de Clusters\"); plt.ylabel(\"Inertia\")\n", + "plt.plot(numK, inertias, 'go-')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Avaliação (3 Clusters) \n", + "Homogeneity: \t0.878\n", + "Completeness: \t0.872\n", + "V-Measure: \t0.875\n" + ] + }, + { + "data": { + "image/png": "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\nccQRxxzB/wdgNDkaz0JajwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "kmeans.n_clusters = 3\n", + "kmeans.fit(X)\n", + "clts = kmeans.predict(X)\n", + "\n", + "homoScore = metrics.homogeneity_score(y, clts)\n", + "complScore = metrics.completeness_score(y, clts) \n", + "vMeasureScore = metrics.v_measure_score(y, clts)\n", + "\n", + "print(\"Avaliação ({0} Clusters) \".format(kmeans.n_clusters))\n", + "print(\"Homogeneity: \\t{0:.3}\".format(homoScore))\n", + "print(\"Completeness: \\t{0:.3}\".format(complScore))\n", + "print(\"V-Measure: \\t{0:.3}\".format(vMeasureScore))\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "ax.scatter(pcaData[:,0], pcaData[:,1], pcaData[:,2], c=clts, cmap=plt.cm.Dark2)\n", + "plt.show()" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [default]", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}