diff --git a/machine_learning/NaiveBayes.ipynb b/machine_learning/NaiveBayes.ipynb new file mode 100644 index 000000000..5a427c5cb --- /dev/null +++ b/machine_learning/NaiveBayes.ipynb @@ -0,0 +1,1659 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from sklearn import datasets\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "iris = datasets.load_iris()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "df = pd.DataFrame(iris.data)\n", + "df.columns = [\"sl\", \"sw\", 'pl', 'pw']" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def abc(k, *val):\n", + " if k < val[0]:\n", + " return 0\n", + " else:\n", + " return 1" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 1\n", + "1 0\n", + "2 0\n", + "3 0\n", + "4 1\n", + "5 1\n", + "6 0\n", + "7 1\n", + "8 0\n", + "9 0\n", + "10 1\n", + "11 0\n", + "12 0\n", + "13 0\n", + "14 1\n", + "15 1\n", + "16 1\n", + "17 1\n", + "18 1\n", + "19 1\n", + "20 1\n", + "21 1\n", + "22 0\n", + "23 1\n", + "24 0\n", + "25 1\n", + "26 1\n", + "27 1\n", + "28 1\n", + "29 0\n", + " ..\n", + "120 1\n", + "121 1\n", + "122 1\n", + "123 1\n", + "124 1\n", + "125 1\n", + "126 1\n", + "127 1\n", + "128 1\n", + "129 1\n", + "130 1\n", + "131 1\n", + "132 1\n", + "133 1\n", + "134 1\n", + "135 1\n", + "136 1\n", + "137 1\n", + "138 1\n", + "139 1\n", + "140 1\n", + "141 1\n", + "142 1\n", + "143 1\n", + "144 1\n", + "145 1\n", + "146 1\n", + "147 1\n", + "148 1\n", + "149 1\n", + "Name: sl, dtype: int64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.sl.apply(abc, args=(5,))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def label(val, *boundaries):\n", + " if (val < boundaries[0]):\n", + " return 'a'\n", + " elif (val < boundaries[1]):\n", + " return 'b'\n", + " elif (val < boundaries[2]):\n", + " return 'c'\n", + " else:\n", + " return 'd'\n", + "\n", + "def toLabel(df, old_feature_name):\n", + " second = df[old_feature_name].mean()\n", + " minimum = df[old_feature_name].min()\n", + " first = (minimum + second)/2\n", + " maximum = df[old_feature_name].max()\n", + " third = (maximum + second)/2\n", + " return df[old_feature_name].apply(label, args= (first, second, third))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + " | sl | \n", + "sw | \n", + "pl | \n", + "pw | \n", + "sl_labeled | \n", + "sw_labeled | \n", + "pl_labeled | \n", + "pw_labeled | \n", + "
---|---|---|---|---|---|---|---|---|
0 | \n", + "5.1 | \n", + "3.5 | \n", + "1.4 | \n", + "0.2 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
1 | \n", + "4.9 | \n", + "3.0 | \n", + "1.4 | \n", + "0.2 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "
2 | \n", + "4.7 | \n", + "3.2 | \n", + "1.3 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
3 | \n", + "4.6 | \n", + "3.1 | \n", + "1.5 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
4 | \n", + "5.0 | \n", + "3.6 | \n", + "1.4 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
5 | \n", + "5.4 | \n", + "3.9 | \n", + "1.7 | \n", + "0.4 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "
6 | \n", + "4.6 | \n", + "3.4 | \n", + "1.4 | \n", + "0.3 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
7 | \n", + "5.0 | \n", + "3.4 | \n", + "1.5 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
8 | \n", + "4.4 | \n", + "2.9 | \n", + "1.4 | \n", + "0.2 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "
9 | \n", + "4.9 | \n", + "3.1 | \n", + "1.5 | \n", + "0.1 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
10 | \n", + "5.4 | \n", + "3.7 | \n", + "1.5 | \n", + "0.2 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
11 | \n", + "4.8 | \n", + "3.4 | \n", + "1.6 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
12 | \n", + "4.8 | \n", + "3.0 | \n", + "1.4 | \n", + "0.1 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "
13 | \n", + "4.3 | \n", + "3.0 | \n", + "1.1 | \n", + "0.1 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "
14 | \n", + "5.8 | \n", + "4.0 | \n", + "1.2 | \n", + "0.2 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "
15 | \n", + "5.7 | \n", + "4.4 | \n", + "1.5 | \n", + "0.4 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "
16 | \n", + "5.4 | \n", + "3.9 | \n", + "1.3 | \n", + "0.4 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "
17 | \n", + "5.1 | \n", + "3.5 | \n", + "1.4 | \n", + "0.3 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
18 | \n", + "5.7 | \n", + "3.8 | \n", + "1.7 | \n", + "0.3 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "
19 | \n", + "5.1 | \n", + "3.8 | \n", + "1.5 | \n", + "0.3 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "
20 | \n", + "5.4 | \n", + "3.4 | \n", + "1.7 | \n", + "0.2 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
21 | \n", + "5.1 | \n", + "3.7 | \n", + "1.5 | \n", + "0.4 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
22 | \n", + "4.6 | \n", + "3.6 | \n", + "1.0 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
23 | \n", + "5.1 | \n", + "3.3 | \n", + "1.7 | \n", + "0.5 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
24 | \n", + "4.8 | \n", + "3.4 | \n", + "1.9 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
25 | \n", + "5.0 | \n", + "3.0 | \n", + "1.6 | \n", + "0.2 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "
26 | \n", + "5.0 | \n", + "3.4 | \n", + "1.6 | \n", + "0.4 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
27 | \n", + "5.2 | \n", + "3.5 | \n", + "1.5 | \n", + "0.2 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
28 | \n", + "5.2 | \n", + "3.4 | \n", + "1.4 | \n", + "0.2 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "
29 | \n", + "4.7 | \n", + "3.2 | \n", + "1.6 | \n", + "0.2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "
... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
120 | \n", + "6.9 | \n", + "3.2 | \n", + "5.7 | \n", + "2.3 | \n", + "d | \n", + "c | \n", + "d | \n", + "d | \n", + "
121 | \n", + "5.6 | \n", + "2.8 | \n", + "4.9 | \n", + "2.0 | \n", + "b | \n", + "b | \n", + "c | \n", + "d | \n", + "
122 | \n", + "7.7 | \n", + "2.8 | \n", + "6.7 | \n", + "2.0 | \n", + "d | \n", + "b | \n", + "d | \n", + "d | \n", + "
123 | \n", + "6.3 | \n", + "2.7 | \n", + "4.9 | \n", + "1.8 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "
124 | \n", + "6.7 | \n", + "3.3 | \n", + "5.7 | \n", + "2.1 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "
125 | \n", + "7.2 | \n", + "3.2 | \n", + "6.0 | \n", + "1.8 | \n", + "d | \n", + "c | \n", + "d | \n", + "c | \n", + "
126 | \n", + "6.2 | \n", + "2.8 | \n", + "4.8 | \n", + "1.8 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "
127 | \n", + "6.1 | \n", + "3.0 | \n", + "4.9 | \n", + "1.8 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "
128 | \n", + "6.4 | \n", + "2.8 | \n", + "5.6 | \n", + "2.1 | \n", + "c | \n", + "b | \n", + "d | \n", + "d | \n", + "
129 | \n", + "7.2 | \n", + "3.0 | \n", + "5.8 | \n", + "1.6 | \n", + "d | \n", + "b | \n", + "d | \n", + "c | \n", + "
130 | \n", + "7.4 | \n", + "2.8 | \n", + "6.1 | \n", + "1.9 | \n", + "d | \n", + "b | \n", + "d | \n", + "d | \n", + "
131 | \n", + "7.9 | \n", + "3.8 | \n", + "6.4 | \n", + "2.0 | \n", + "d | \n", + "d | \n", + "d | \n", + "d | \n", + "
132 | \n", + "6.4 | \n", + "2.8 | \n", + "5.6 | \n", + "2.2 | \n", + "c | \n", + "b | \n", + "d | \n", + "d | \n", + "
133 | \n", + "6.3 | \n", + "2.8 | \n", + "5.1 | \n", + "1.5 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "
134 | \n", + "6.1 | \n", + "2.6 | \n", + "5.6 | \n", + "1.4 | \n", + "c | \n", + "b | \n", + "d | \n", + "c | \n", + "
135 | \n", + "7.7 | \n", + "3.0 | \n", + "6.1 | \n", + "2.3 | \n", + "d | \n", + "b | \n", + "d | \n", + "d | \n", + "
136 | \n", + "6.3 | \n", + "3.4 | \n", + "5.6 | \n", + "2.4 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "
137 | \n", + "6.4 | \n", + "3.1 | \n", + "5.5 | \n", + "1.8 | \n", + "c | \n", + "c | \n", + "d | \n", + "c | \n", + "
138 | \n", + "6.0 | \n", + "3.0 | \n", + "4.8 | \n", + "1.8 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "
139 | \n", + "6.9 | \n", + "3.1 | \n", + "5.4 | \n", + "2.1 | \n", + "d | \n", + "c | \n", + "d | \n", + "d | \n", + "
140 | \n", + "6.7 | \n", + "3.1 | \n", + "5.6 | \n", + "2.4 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "
141 | \n", + "6.9 | \n", + "3.1 | \n", + "5.1 | \n", + "2.3 | \n", + "d | \n", + "c | \n", + "c | \n", + "d | \n", + "
142 | \n", + "5.8 | \n", + "2.7 | \n", + "5.1 | \n", + "1.9 | \n", + "b | \n", + "b | \n", + "c | \n", + "d | \n", + "
143 | \n", + "6.8 | \n", + "3.2 | \n", + "5.9 | \n", + "2.3 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "
144 | \n", + "6.7 | \n", + "3.3 | \n", + "5.7 | \n", + "2.5 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "
145 | \n", + "6.7 | \n", + "3.0 | \n", + "5.2 | \n", + "2.3 | \n", + "c | \n", + "b | \n", + "c | \n", + "d | \n", + "
146 | \n", + "6.3 | \n", + "2.5 | \n", + "5.0 | \n", + "1.9 | \n", + "c | \n", + "a | \n", + "c | \n", + "d | \n", + "
147 | \n", + "6.5 | \n", + "3.0 | \n", + "5.2 | \n", + "2.0 | \n", + "c | \n", + "b | \n", + "c | \n", + "d | \n", + "
148 | \n", + "6.2 | \n", + "3.4 | \n", + "5.4 | \n", + "2.3 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "
149 | \n", + "5.9 | \n", + "3.0 | \n", + "5.1 | \n", + "1.8 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "
150 rows × 8 columns
\n", + "\n", + " | sl_labeled | \n", + "sw_labeled | \n", + "pl_labeled | \n", + "pw_labeled | \n", + "output | \n", + "
---|---|---|---|---|---|
0 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
1 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "0 | \n", + "
2 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
3 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
4 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
5 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "0 | \n", + "
6 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
7 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
8 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "0 | \n", + "
9 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
10 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
11 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
12 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "0 | \n", + "
13 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "0 | \n", + "
14 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "0 | \n", + "
15 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "0 | \n", + "
16 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "0 | \n", + "
17 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
18 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "0 | \n", + "
19 | \n", + "b | \n", + "d | \n", + "a | \n", + "a | \n", + "0 | \n", + "
20 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
21 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
22 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
23 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
24 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
25 | \n", + "a | \n", + "b | \n", + "a | \n", + "a | \n", + "0 | \n", + "
26 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
27 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
28 | \n", + "b | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
29 | \n", + "a | \n", + "c | \n", + "a | \n", + "a | \n", + "0 | \n", + "
... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
120 | \n", + "d | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
121 | \n", + "b | \n", + "b | \n", + "c | \n", + "d | \n", + "2 | \n", + "
122 | \n", + "d | \n", + "b | \n", + "d | \n", + "d | \n", + "2 | \n", + "
123 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "2 | \n", + "
124 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
125 | \n", + "d | \n", + "c | \n", + "d | \n", + "c | \n", + "2 | \n", + "
126 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "2 | \n", + "
127 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "2 | \n", + "
128 | \n", + "c | \n", + "b | \n", + "d | \n", + "d | \n", + "2 | \n", + "
129 | \n", + "d | \n", + "b | \n", + "d | \n", + "c | \n", + "2 | \n", + "
130 | \n", + "d | \n", + "b | \n", + "d | \n", + "d | \n", + "2 | \n", + "
131 | \n", + "d | \n", + "d | \n", + "d | \n", + "d | \n", + "2 | \n", + "
132 | \n", + "c | \n", + "b | \n", + "d | \n", + "d | \n", + "2 | \n", + "
133 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "2 | \n", + "
134 | \n", + "c | \n", + "b | \n", + "d | \n", + "c | \n", + "2 | \n", + "
135 | \n", + "d | \n", + "b | \n", + "d | \n", + "d | \n", + "2 | \n", + "
136 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
137 | \n", + "c | \n", + "c | \n", + "d | \n", + "c | \n", + "2 | \n", + "
138 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "2 | \n", + "
139 | \n", + "d | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
140 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
141 | \n", + "d | \n", + "c | \n", + "c | \n", + "d | \n", + "2 | \n", + "
142 | \n", + "b | \n", + "b | \n", + "c | \n", + "d | \n", + "2 | \n", + "
143 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
144 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
145 | \n", + "c | \n", + "b | \n", + "c | \n", + "d | \n", + "2 | \n", + "
146 | \n", + "c | \n", + "a | \n", + "c | \n", + "d | \n", + "2 | \n", + "
147 | \n", + "c | \n", + "b | \n", + "c | \n", + "d | \n", + "2 | \n", + "
148 | \n", + "c | \n", + "c | \n", + "d | \n", + "d | \n", + "2 | \n", + "
149 | \n", + "c | \n", + "b | \n", + "c | \n", + "c | \n", + "2 | \n", + "
150 rows × 5 columns
\n", + "