From e263ef444d487f6fa805b134994244cf656d701f Mon Sep 17 00:00:00 2001 From: Tuan Vu Date: Thu, 7 Apr 2016 20:07:22 -0700 Subject: [PATCH] Exploring precision and recall Week 6: Exploring precision and recall --- ...ecall-assignment-graphlab-checkpoint.ipynb | 160 ++++++++---------- .../week6/images/lec6_quiz01_pic05.png | Bin 11223 -> 19653 bytes ...precision-recall-assignment-graphlab.ipynb | 160 ++++++++---------- .../week6/quiz-week6-assignment.ipynb | 2 +- 4 files changed, 135 insertions(+), 187 deletions(-) diff --git a/machine_learning/3_classification/assigment/week6/.ipynb_checkpoints/module-9-precision-recall-assignment-graphlab-checkpoint.ipynb b/machine_learning/3_classification/assigment/week6/.ipynb_checkpoints/module-9-precision-recall-assignment-graphlab-checkpoint.ipynb index cd30fa2..e0f21a8 100644 --- a/machine_learning/3_classification/assigment/week6/.ipynb_checkpoints/module-9-precision-recall-assignment-graphlab-checkpoint.ipynb +++ b/machine_learning/3_classification/assigment/week6/.ipynb_checkpoints/module-9-precision-recall-assignment-graphlab-checkpoint.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -76,9 +76,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -128,70 +128,70 @@ " Planetwise Wipe Pouch\n", " it came early and was not
disappointed. i love ...\n", " 5.0\n", - " {'and': 3L, 'love': 1L,
'it': 3L, 'highly': 1L, ...\n", + " {'and': 3, 'love': 1,
'it': 3, 'highly': 1, ...\n", " 1\n", " \n", " \n", " Annas Dream Full Quilt
with 2 Shams ...\n", " Very soft and comfortable
and warmer than it ...\n", " 5.0\n", - " {'and': 2L, 'quilt': 1L,
'it': 1L, 'comfortable': ...\n", + " {'and': 2, 'quilt': 1,
'it': 1, 'comfortable': ...\n", " 1\n", " \n", " \n", " Stop Pacifier Sucking
without tears with ...\n", " This is a product well
worth the purchase. I ...\n", " 5.0\n", - " {'and': 3L, 'ingenious':
1L, 'love': 2L, 'is': ...\n", + " {'and': 3, 'ingenious':
1, 'love': 2, 'what': 1, ...\n", " 1\n", " \n", " \n", " Stop Pacifier Sucking
without tears with ...\n", " All of my kids have cried
non-stop when I tried to ...\n", " 5.0\n", - " {'and': 2L, 'all': 2L,
'help': 1L, 'cried': 1L, ...\n", + " {'and': 2, 'all': 2,
'help': 1, 'cried': 1, ...\n", " 1\n", " \n", " \n", " Stop Pacifier Sucking
without tears with ...\n", " When the Binky Fairy came
to our house, we didn't ...\n", " 5.0\n", - " {'and': 2L, 'cute': 1L,
'help': 2L, 'habit': 1L, ...\n", + " {'and': 2, 'this': 2,
'her': 1, 'help': 2, ...\n", " 1\n", " \n", " \n", " A Tale of Baby's Days
with Peter Rabbit ...\n", " Lovely book, it's bound
tightly so you may no ...\n", " 4.0\n", - " {'shop': 1L, 'be': 1L,
'is': 1L, 'bound': 1L, ...\n", + " {'shop': 1, 'noble': 1,
'is': 1, 'it': 1, 'as': ...\n", " 1\n", " \n", " \n", " Baby Tracker® - Daily
Childcare Journal, ...\n", " Perfect for new parents.
We were able to keep ...\n", " 5.0\n", - " {'and': 2L, 'all': 1L,
'right': 1L, 'able': 1L, ...\n", + " {'and': 2, 'all': 1,
'right': 1, 'had': 1, ...\n", " 1\n", " \n", " \n", " Baby Tracker® - Daily
Childcare Journal, ...\n", " A friend of mine pinned
this product on Pinte ...\n", " 5.0\n", - " {'and': 1L, 'fantastic':
1L, 'help': 1L, 'give': ...\n", + " {'and': 1, 'fantastic':
1, 'help': 1, 'give': 1, ...\n", " 1\n", " \n", " \n", " Baby Tracker® - Daily
Childcare Journal, ...\n", " This has been an easy way
for my nanny to record ...\n", " 4.0\n", - " {'all': 1L, 'standarad':
1L, 'another': 1L, ...\n", + " {'all': 1, 'standarad':
1, 'another': 1, 'when': ...\n", " 1\n", " \n", " \n", " Baby Tracker® - Daily
Childcare Journal, ...\n", " I love this journal and
our nanny uses it ...\n", " 4.0\n", - " {'all': 2L, 'nannys': 1L,
'just': 1L, 'sleep': 2L, ...\n", + " {'all': 2, 'nannys': 1,
'just': 1, 'food': 1, ...\n", " 1\n", " \n", "\n", @@ -226,23 +226,23 @@ "+-------------------------------+-----------+\n", "| word_count | sentiment |\n", "+-------------------------------+-----------+\n", - "| {'and': 3L, 'love': 1L, 'i... | 1 |\n", - "| {'and': 2L, 'quilt': 1L, '... | 1 |\n", - "| {'and': 3L, 'ingenious': 1... | 1 |\n", - "| {'and': 2L, 'all': 2L, 'he... | 1 |\n", - "| {'and': 2L, 'cute': 1L, 'h... | 1 |\n", - "| {'shop': 1L, 'be': 1L, 'is... | 1 |\n", - "| {'and': 2L, 'all': 1L, 'ri... | 1 |\n", - "| {'and': 1L, 'fantastic': 1... | 1 |\n", - "| {'all': 1L, 'standarad': 1... | 1 |\n", - "| {'all': 2L, 'nannys': 1L, ... | 1 |\n", + "| {'and': 3, 'love': 1, 'it'... | 1 |\n", + "| {'and': 2, 'quilt': 1, 'it... | 1 |\n", + "| {'and': 3, 'ingenious': 1,... | 1 |\n", + "| {'and': 2, 'all': 2, 'help... | 1 |\n", + "| {'and': 2, 'this': 2, 'her... | 1 |\n", + "| {'shop': 1, 'noble': 1, 'i... | 1 |\n", + "| {'and': 2, 'all': 1, 'righ... | 1 |\n", + "| {'and': 1, 'fantastic': 1,... | 1 |\n", + "| {'all': 1, 'standarad': 1,... | 1 |\n", + "| {'all': 2, 'nannys': 1, 'j... | 1 |\n", "+-------------------------------+-----------+\n", "[166752 rows x 5 columns]\n", "Note: Only the head of the SFrame is printed.\n", "You can use print_rows(num_rows=m, num_columns=n) to print more rows and columns." ] }, - "execution_count": 6, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -262,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": { "collapsed": true }, @@ -284,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 12, "metadata": { "collapsed": false, "scrolled": true @@ -437,10 +437,10 @@ { "data": { "text/html": [ - "
| 1         | 5        | 0.000002  | 2.599260     | 0.840754          |
" + "
| 1         | 5        | 0.000002  | 2.029531     | 0.840754          |
" ], "text/plain": [ - "| 1 | 5 | 0.000002 | 2.599260 | 0.840754 |" + "| 1 | 5 | 0.000002 | 2.029531 | 0.840754 |" ] }, "metadata": {}, @@ -449,10 +449,10 @@ { "data": { "text/html": [ - "
| 2         | 9        | 3.000000  | 3.728373     | 0.931350          |
" + "
| 2         | 9        | 3.000000  | 2.996681     | 0.931350          |
" ], "text/plain": [ - "| 2 | 9 | 3.000000 | 3.728373 | 0.931350 |" + "| 2 | 9 | 3.000000 | 2.996681 | 0.931350 |" ] }, "metadata": {}, @@ -461,10 +461,10 @@ { "data": { "text/html": [ - "
| 3         | 10       | 3.000000  | 4.147415     | 0.882046          |
" + "
| 3         | 10       | 3.000000  | 3.344468     | 0.882046          |
" ], "text/plain": [ - "| 3 | 10 | 3.000000 | 4.147415 | 0.882046 |" + "| 3 | 10 | 3.000000 | 3.344468 | 0.882046 |" ] }, "metadata": {}, @@ -473,10 +473,10 @@ { "data": { "text/html": [ - "
| 4         | 11       | 3.000000  | 4.604461     | 0.954076          |
" + "
| 4         | 11       | 3.000000  | 3.705052     | 0.954076          |
" ], "text/plain": [ - "| 4 | 11 | 3.000000 | 4.604461 | 0.954076 |" + "| 4 | 11 | 3.000000 | 3.705052 | 0.954076 |" ] }, "metadata": {}, @@ -485,10 +485,10 @@ { "data": { "text/html": [ - "
| 5         | 12       | 3.000000  | 5.062506     | 0.960964          |
" + "
| 5         | 12       | 3.000000  | 4.058600     | 0.960964          |
" ], "text/plain": [ - "| 5 | 12 | 3.000000 | 5.062506 | 0.960964 |" + "| 5 | 12 | 3.000000 | 4.058600 | 0.960964 |" ] }, "metadata": {}, @@ -497,10 +497,10 @@ { "data": { "text/html": [ - "
| 6         | 13       | 3.000000  | 5.517552     | 0.975033          |
" + "
| 6         | 13       | 3.000000  | 4.398042     | 0.975033          |
" ], "text/plain": [ - "| 6 | 13 | 3.000000 | 5.517552 | 0.975033 |" + "| 6 | 13 | 3.000000 | 4.398042 | 0.975033 |" ] }, "metadata": {}, @@ -583,7 +583,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -614,7 +614,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -662,7 +662,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -677,6 +677,11 @@ " count\n", " \n", " \n", + " 1\n", + " -1\n", + " 1406\n", + " \n", + " \n", " -1\n", " -1\n", " 3798\n", @@ -688,11 +693,6 @@ " \n", " \n", " 1\n", - " -1\n", - " 1406\n", - " \n", - " \n", - " 1\n", " 1\n", " 26689\n", " \n", @@ -712,15 +712,15 @@ "+--------------+-----------------+-------+\n", "| target_label | predicted_label | count |\n", "+--------------+-----------------+-------+\n", + "| 1 | -1 | 1406 |\n", "| -1 | -1 | 3798 |\n", "| -1 | 1 | 1443 |\n", - "| 1 | -1 | 1406 |\n", "| 1 | 1 | 26689 |\n", "+--------------+-----------------+-------+\n", "[4 rows x 3 columns]" ] }, - "execution_count": 11, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -739,55 +739,27 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "text/html": [ - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
target_labelpredicted_labelcount
-111443
\n", - "[? rows x 3 columns]
Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.
You can use len(sf) to force materialization.\n", - "
" - ], "text/plain": [ - "Columns:\n", - "\ttarget_label\tint\n", - "\tpredicted_label\tint\n", - "\tcount\tint\n", - "\n", - "Rows: Unknown\n", - "\n", - "Data:\n", - "+--------------+-----------------+-------+\n", - "| target_label | predicted_label | count |\n", - "+--------------+-----------------+-------+\n", - "| -1 | 1 | 1443 |\n", - "+--------------+-----------------+-------+\n", - "[? rows x 3 columns]\n", - "Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.\n", - "You can use len(sf) to force materialization." + "dtype: int\n", + "Rows: ?\n", + "[1443, ... ]" ] }, - "execution_count": 16, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "confusion_matrix[(confusion_matrix['target_label'] == -1) & (confusion_matrix['predicted_label'] == +1)]" + "false_positive = confusion_matrix['count'][(confusion_matrix['target_label'] == -1) & (confusion_matrix['predicted_label'] == +1)]\n", + "false_positive" ] }, { @@ -809,7 +781,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": true }, @@ -821,7 +793,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -868,7 +840,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -895,7 +867,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -903,16 +875,18 @@ { "data": { "text/plain": [ - "0.05129390018484292" + "dtype: float\n", + "Rows: ?\n", + "[0.04328653707703384, ... ]" ] }, - "execution_count": 22, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "1 - precision" + "false_positive/confusion_matrix['count'].sum()" ] }, { @@ -1602,7 +1576,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/machine_learning/3_classification/assigment/week6/images/lec6_quiz01_pic05.png b/machine_learning/3_classification/assigment/week6/images/lec6_quiz01_pic05.png index d9faf541458d58e51346b3fe703c57c61585db5f..b24dd58112e1ad82fd8034375e92e7c835958ccb 100644 GIT binary patch literal 19653 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 literal 11223 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 diff --git a/machine_learning/3_classification/assigment/week6/module-9-precision-recall-assignment-graphlab.ipynb b/machine_learning/3_classification/assigment/week6/module-9-precision-recall-assignment-graphlab.ipynb index cd30fa2..e0f21a8 100644 --- a/machine_learning/3_classification/assigment/week6/module-9-precision-recall-assignment-graphlab.ipynb +++ b/machine_learning/3_classification/assigment/week6/module-9-precision-recall-assignment-graphlab.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -76,9 +76,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -128,70 +128,70 @@ " Planetwise Wipe Pouch\n", " it came early and was not
disappointed. i love ...\n", " 5.0\n", - " {'and': 3L, 'love': 1L,
'it': 3L, 'highly': 1L, ...\n", + " {'and': 3, 'love': 1,
'it': 3, 'highly': 1, ...\n", " 1\n", " \n", " \n", " Annas Dream Full Quilt
with 2 Shams ...\n", " Very soft and comfortable
and warmer than it ...\n", " 5.0\n", - " {'and': 2L, 'quilt': 1L,
'it': 1L, 'comfortable': ...\n", + " {'and': 2, 'quilt': 1,
'it': 1, 'comfortable': ...\n", " 1\n", " \n", " \n", " Stop Pacifier Sucking
without tears with ...\n", " This is a product well
worth the purchase. I ...\n", " 5.0\n", - " {'and': 3L, 'ingenious':
1L, 'love': 2L, 'is': ...\n", + " {'and': 3, 'ingenious':
1, 'love': 2, 'what': 1, ...\n", " 1\n", " \n", " \n", " Stop Pacifier Sucking
without tears with ...\n", " All of my kids have cried
non-stop when I tried to ...\n", " 5.0\n", - " {'and': 2L, 'all': 2L,
'help': 1L, 'cried': 1L, ...\n", + " {'and': 2, 'all': 2,
'help': 1, 'cried': 1, ...\n", " 1\n", " \n", " \n", " Stop Pacifier Sucking
without tears with ...\n", " When the Binky Fairy came
to our house, we didn't ...\n", " 5.0\n", - " {'and': 2L, 'cute': 1L,
'help': 2L, 'habit': 1L, ...\n", + " {'and': 2, 'this': 2,
'her': 1, 'help': 2, ...\n", " 1\n", " \n", " \n", " A Tale of Baby's Days
with Peter Rabbit ...\n", " Lovely book, it's bound
tightly so you may no ...\n", " 4.0\n", - " {'shop': 1L, 'be': 1L,
'is': 1L, 'bound': 1L, ...\n", + " {'shop': 1, 'noble': 1,
'is': 1, 'it': 1, 'as': ...\n", " 1\n", " \n", " \n", " Baby Tracker&reg; - Daily
Childcare Journal, ...\n", " Perfect for new parents.
We were able to keep ...\n", " 5.0\n", - " {'and': 2L, 'all': 1L,
'right': 1L, 'able': 1L, ...\n", + " {'and': 2, 'all': 1,
'right': 1, 'had': 1, ...\n", " 1\n", " \n", " \n", " Baby Tracker&reg; - Daily
Childcare Journal, ...\n", " A friend of mine pinned
this product on Pinte ...\n", " 5.0\n", - " {'and': 1L, 'fantastic':
1L, 'help': 1L, 'give': ...\n", + " {'and': 1, 'fantastic':
1, 'help': 1, 'give': 1, ...\n", " 1\n", " \n", " \n", " Baby Tracker&reg; - Daily
Childcare Journal, ...\n", " This has been an easy way
for my nanny to record ...\n", " 4.0\n", - " {'all': 1L, 'standarad':
1L, 'another': 1L, ...\n", + " {'all': 1, 'standarad':
1, 'another': 1, 'when': ...\n", " 1\n", " \n", " \n", " Baby Tracker&reg; - Daily
Childcare Journal, ...\n", " I love this journal and
our nanny uses it ...\n", " 4.0\n", - " {'all': 2L, 'nannys': 1L,
'just': 1L, 'sleep': 2L, ...\n", + " {'all': 2, 'nannys': 1,
'just': 1, 'food': 1, ...\n", " 1\n", " \n", "\n", @@ -226,23 +226,23 @@ "+-------------------------------+-----------+\n", "| word_count | sentiment |\n", "+-------------------------------+-----------+\n", - "| {'and': 3L, 'love': 1L, 'i... | 1 |\n", - "| {'and': 2L, 'quilt': 1L, '... | 1 |\n", - "| {'and': 3L, 'ingenious': 1... | 1 |\n", - "| {'and': 2L, 'all': 2L, 'he... | 1 |\n", - "| {'and': 2L, 'cute': 1L, 'h... | 1 |\n", - "| {'shop': 1L, 'be': 1L, 'is... | 1 |\n", - "| {'and': 2L, 'all': 1L, 'ri... | 1 |\n", - "| {'and': 1L, 'fantastic': 1... | 1 |\n", - "| {'all': 1L, 'standarad': 1... | 1 |\n", - "| {'all': 2L, 'nannys': 1L, ... | 1 |\n", + "| {'and': 3, 'love': 1, 'it'... | 1 |\n", + "| {'and': 2, 'quilt': 1, 'it... | 1 |\n", + "| {'and': 3, 'ingenious': 1,... | 1 |\n", + "| {'and': 2, 'all': 2, 'help... | 1 |\n", + "| {'and': 2, 'this': 2, 'her... | 1 |\n", + "| {'shop': 1, 'noble': 1, 'i... | 1 |\n", + "| {'and': 2, 'all': 1, 'righ... | 1 |\n", + "| {'and': 1, 'fantastic': 1,... | 1 |\n", + "| {'all': 1, 'standarad': 1,... | 1 |\n", + "| {'all': 2, 'nannys': 1, 'j... | 1 |\n", "+-------------------------------+-----------+\n", "[166752 rows x 5 columns]\n", "Note: Only the head of the SFrame is printed.\n", "You can use print_rows(num_rows=m, num_columns=n) to print more rows and columns." ] }, - "execution_count": 6, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -262,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": { "collapsed": true }, @@ -284,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 12, "metadata": { "collapsed": false, "scrolled": true @@ -437,10 +437,10 @@ { "data": { "text/html": [ - "

| 1         | 5        | 0.000002  | 2.599260     | 0.840754          |
" + "
| 1         | 5        | 0.000002  | 2.029531     | 0.840754          |
" ], "text/plain": [ - "| 1 | 5 | 0.000002 | 2.599260 | 0.840754 |" + "| 1 | 5 | 0.000002 | 2.029531 | 0.840754 |" ] }, "metadata": {}, @@ -449,10 +449,10 @@ { "data": { "text/html": [ - "
| 2         | 9        | 3.000000  | 3.728373     | 0.931350          |
" + "
| 2         | 9        | 3.000000  | 2.996681     | 0.931350          |
" ], "text/plain": [ - "| 2 | 9 | 3.000000 | 3.728373 | 0.931350 |" + "| 2 | 9 | 3.000000 | 2.996681 | 0.931350 |" ] }, "metadata": {}, @@ -461,10 +461,10 @@ { "data": { "text/html": [ - "
| 3         | 10       | 3.000000  | 4.147415     | 0.882046          |
" + "
| 3         | 10       | 3.000000  | 3.344468     | 0.882046          |
" ], "text/plain": [ - "| 3 | 10 | 3.000000 | 4.147415 | 0.882046 |" + "| 3 | 10 | 3.000000 | 3.344468 | 0.882046 |" ] }, "metadata": {}, @@ -473,10 +473,10 @@ { "data": { "text/html": [ - "
| 4         | 11       | 3.000000  | 4.604461     | 0.954076          |
" + "
| 4         | 11       | 3.000000  | 3.705052     | 0.954076          |
" ], "text/plain": [ - "| 4 | 11 | 3.000000 | 4.604461 | 0.954076 |" + "| 4 | 11 | 3.000000 | 3.705052 | 0.954076 |" ] }, "metadata": {}, @@ -485,10 +485,10 @@ { "data": { "text/html": [ - "
| 5         | 12       | 3.000000  | 5.062506     | 0.960964          |
" + "
| 5         | 12       | 3.000000  | 4.058600     | 0.960964          |
" ], "text/plain": [ - "| 5 | 12 | 3.000000 | 5.062506 | 0.960964 |" + "| 5 | 12 | 3.000000 | 4.058600 | 0.960964 |" ] }, "metadata": {}, @@ -497,10 +497,10 @@ { "data": { "text/html": [ - "
| 6         | 13       | 3.000000  | 5.517552     | 0.975033          |
" + "
| 6         | 13       | 3.000000  | 4.398042     | 0.975033          |
" ], "text/plain": [ - "| 6 | 13 | 3.000000 | 5.517552 | 0.975033 |" + "| 6 | 13 | 3.000000 | 4.398042 | 0.975033 |" ] }, "metadata": {}, @@ -583,7 +583,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -614,7 +614,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -662,7 +662,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -677,6 +677,11 @@ " count\n", " \n", " \n", + " 1\n", + " -1\n", + " 1406\n", + " \n", + " \n", " -1\n", " -1\n", " 3798\n", @@ -688,11 +693,6 @@ " \n", " \n", " 1\n", - " -1\n", - " 1406\n", - " \n", - " \n", - " 1\n", " 1\n", " 26689\n", " \n", @@ -712,15 +712,15 @@ "+--------------+-----------------+-------+\n", "| target_label | predicted_label | count |\n", "+--------------+-----------------+-------+\n", + "| 1 | -1 | 1406 |\n", "| -1 | -1 | 3798 |\n", "| -1 | 1 | 1443 |\n", - "| 1 | -1 | 1406 |\n", "| 1 | 1 | 26689 |\n", "+--------------+-----------------+-------+\n", "[4 rows x 3 columns]" ] }, - "execution_count": 11, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -739,55 +739,27 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { - "text/html": [ - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
target_labelpredicted_labelcount
-111443
\n", - "[? rows x 3 columns]
Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.
You can use len(sf) to force materialization.\n", - "
" - ], "text/plain": [ - "Columns:\n", - "\ttarget_label\tint\n", - "\tpredicted_label\tint\n", - "\tcount\tint\n", - "\n", - "Rows: Unknown\n", - "\n", - "Data:\n", - "+--------------+-----------------+-------+\n", - "| target_label | predicted_label | count |\n", - "+--------------+-----------------+-------+\n", - "| -1 | 1 | 1443 |\n", - "+--------------+-----------------+-------+\n", - "[? rows x 3 columns]\n", - "Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated.\n", - "You can use len(sf) to force materialization." + "dtype: int\n", + "Rows: ?\n", + "[1443, ... ]" ] }, - "execution_count": 16, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "confusion_matrix[(confusion_matrix['target_label'] == -1) & (confusion_matrix['predicted_label'] == +1)]" + "false_positive = confusion_matrix['count'][(confusion_matrix['target_label'] == -1) & (confusion_matrix['predicted_label'] == +1)]\n", + "false_positive" ] }, { @@ -809,7 +781,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": true }, @@ -821,7 +793,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -868,7 +840,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -895,7 +867,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -903,16 +875,18 @@ { "data": { "text/plain": [ - "0.05129390018484292" + "dtype: float\n", + "Rows: ?\n", + "[0.04328653707703384, ... ]" ] }, - "execution_count": 22, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "1 - precision" + "false_positive/confusion_matrix['count'].sum()" ] }, { @@ -1602,7 +1576,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/machine_learning/3_classification/assigment/week6/quiz-week6-assignment.ipynb b/machine_learning/3_classification/assigment/week6/quiz-week6-assignment.ipynb index 55e81ce..0e47f55 100644 --- a/machine_learning/3_classification/assigment/week6/quiz-week6-assignment.ipynb +++ b/machine_learning/3_classification/assigment/week6/quiz-week6-assignment.ipynb @@ -222,7 +222,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4,