{"id":523,"date":"2015-04-03T23:09:57","date_gmt":"2015-04-04T05:09:57","guid":{"rendered":"http:\/\/mattdturner.com\/wordpress\/?p=523"},"modified":"2018-08-02T20:50:46","modified_gmt":"2018-08-03T02:50:46","slug":"coursera-machine-learning-in-python-exercise-1","status":"publish","type":"post","link":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/","title":{"rendered":"Coursera Machine Learning In Python (Exercise 1)"},"content":{"rendered":"<p>&nbsp;<\/p>\n<div id=\"notebook\" class=\"border-box-sizing\" tabindex=\"-1\">\n<div id=\"notebook-container\" class=\"container\">\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>I have previously done the Coursera Machine Learning exercises in Matlab. I thought, now that I am starting to get away from Matlab and use Python more, I should re-do the exercises in Python. This is exercise 1.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[447]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"o\">%<\/span><span class=\"k\">matplotlib<\/span> inline\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">matplotlib.pyplot<\/span> <span class=\"kn\">as<\/span> <span class=\"nn\">plt<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">numpy<\/span> <span class=\"kn\">as<\/span> <span class=\"nn\">np<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">scipy<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Part 1: Create an eye matrix. While this is incredibly simple, I want to make sure that I go through each step and provide a resulting document that a novice can follow long and understand what is happening.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[448]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"n\">A<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">identity<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">A<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<p><!--more--><\/p>\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>[[ 1.  0.  0.  0.  0.]\r\n [ 0.  1.  0.  0.  0.]\r\n [ 0.  0.  1.  0.  0.]\r\n [ 0.  0.  0.  1.  0.]\r\n [ 0.  0.  0.  0.  1.]]\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Part 2: Read in the data from &#8216;ex1data1.txt&#8217; and plot it as a scatter plot<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[449]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Use the numpy genfromtext function to read the data<\/span>\r\n<span class=\"n\">data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">genfromtxt<\/span><span class=\"p\">(<\/span><span class=\"s\">'\/Users\/matthewturner\/Desktop\/Coursera_machine_learning\/'<\/span><span class=\"o\">+<\/span>\r\n                     <span class=\"s\">'machine-learning-ex1\/ex1\/ex1data1.txt'<\/span><span class=\"p\">,<\/span> <span class=\"n\">delimiter<\/span><span class=\"o\">=<\/span><span class=\"s\">','<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[450]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Pull out the first column (theta0) into the variable X, and the 2nd column (theta1)<\/span>\r\n<span class=\"c\"># into the variable y.  These variable names are consistent with the example.<\/span>\r\n<span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span> <span class=\"o\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">[:,<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"n\">data<\/span><span class=\"p\">[:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span>\r\n\r\n<span class=\"c\"># Set m = the length of y (i.e., the number of observations).<\/span>\r\n<span class=\"n\">m<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">y<\/span> <span class=\"o\">=<\/span> <span class=\"n\">y<\/span><span class=\"o\">.<\/span><span class=\"n\">reshape<\/span><span class=\"p\">(<\/span><span class=\"n\">m<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[451]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">scatter<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt output_prompt\">Out[451]:<\/div>\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>&lt;matplotlib.collections.PathCollection at 0x1091f5d50&gt;<\/pre>\n<\/div>\n<\/div>\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_png output_subarea \"><img decoding=\"async\" src=\"http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/scatter1.png\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Part 3: Gradient Descent<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[452]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Add a column of ones to the data<\/span>\r\n<span class=\"n\">X<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">c_<\/span><span class=\"p\">[<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">ones<\/span><span class=\"p\">((<\/span><span class=\"n\">m<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">)),<\/span><span class=\"n\">X<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">theta<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">zeros<\/span><span class=\"p\">((<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">))<\/span>\r\n\r\n<span class=\"n\">iterations<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1500<\/span>\r\n<span class=\"n\">alpha<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.01<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[453]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"k\">def<\/span> <span class=\"nf\">costFuncIter<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">cum_sum<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span>\r\n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">m<\/span><span class=\"p\">):<\/span>\r\n        <span class=\"n\">h<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">],<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"n\">y<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">]<\/span>\r\n        <span class=\"n\">cum_sum<\/span> <span class=\"o\">+=<\/span> <span class=\"mf\">1.0<\/span><span class=\"o\">\/<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"n\">m<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"n\">h<\/span> <span class=\"o\">*<\/span> <span class=\"n\">h<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">cum_sum<\/span>\r\n        \r\n<span class=\"n\">J<\/span> <span class=\"o\">=<\/span> <span class=\"n\">costFuncIter<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">J<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>[ 32.07273388]\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[454]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Compute and display the initial cost function<\/span>\r\n<span class=\"k\">def<\/span> <span class=\"nf\">costFunc<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">h<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"n\">y<\/span>\r\n    <span class=\"n\">h2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">h<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">,<\/span><span class=\"n\">h<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">J<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">1.<\/span><span class=\"o\">\/<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"n\">m<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"n\">h2<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">J<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\r\n\r\n<span class=\"n\">J<\/span> <span class=\"o\">=<\/span> <span class=\"n\">costFunc<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">J<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>32.0727338775\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[455]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Run the Gradient Descent Algorithm<\/span>\r\n<span class=\"k\">def<\/span> <span class=\"nf\">gradientDescent<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">,<\/span><span class=\"n\">alpha<\/span><span class=\"p\">,<\/span><span class=\"n\">iterations<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">J_history<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">zeros<\/span><span class=\"p\">(<\/span><span class=\"n\">iterations<\/span><span class=\"p\">)<\/span>\r\n    \r\n    <span class=\"k\">for<\/span> <span class=\"nb\">iter<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">iterations<\/span><span class=\"p\">):<\/span>\r\n        <span class=\"n\">h<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"n\">y<\/span>\r\n        <span class=\"n\">h_X<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">,<\/span><span class=\"n\">h<\/span><span class=\"p\">)<\/span>\r\n        \r\n        <span class=\"n\">temp<\/span> <span class=\"o\">=<\/span> <span class=\"n\">theta<\/span>\r\n        \r\n        <span class=\"n\">temp<\/span> <span class=\"o\">-=<\/span> <span class=\"n\">alpha<\/span> <span class=\"o\">\/<\/span> <span class=\"n\">m<\/span> <span class=\"o\">*<\/span> <span class=\"n\">h_X<\/span>\r\n        \r\n        <span class=\"n\">theta<\/span> <span class=\"o\">=<\/span> <span class=\"n\">temp<\/span>\r\n        \r\n        <span class=\"n\">J_history<\/span><span class=\"p\">[<\/span><span class=\"nb\">iter<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">costFunc<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span>\r\n        \r\n    <span class=\"k\">return<\/span> <span class=\"n\">theta<\/span><span class=\"p\">,<\/span><span class=\"n\">J_history<\/span>\r\n    \r\n<span class=\"n\">theta<\/span><span class=\"p\">,<\/span> <span class=\"n\">J_history<\/span> <span class=\"o\">=<\/span> <span class=\"n\">gradientDescent<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">,<\/span><span class=\"n\">alpha<\/span><span class=\"p\">,<\/span><span class=\"n\">iterations<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">theta<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>[[-3.63029144]\r\n [ 1.16636235]]\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[456]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Plot the timeseries of cost function<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">J_history<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt output_prompt\">Out[456]:<\/div>\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[&lt;matplotlib.lines.Line2D at 0x109fcfd90&gt;]<\/pre>\n<\/div>\n<\/div>\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_png output_subarea \"><img decoding=\"async\" src=\"http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/J_history1.png\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[457]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Plot the observations and the best fit line that we just solved for<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">scatter<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">[:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">[:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">theta<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt output_prompt\">Out[457]:<\/div>\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[&lt;matplotlib.lines.Line2D at 0x10a108810&gt;]<\/pre>\n<\/div>\n<\/div>\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_png output_subarea \"><img decoding=\"async\" src=\"http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/Bestfit1.png\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[458]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Make the 2 predictions<\/span>\r\n<span class=\"n\">predict1<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">array<\/span><span class=\"p\">([<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"mf\">3.5<\/span><span class=\"p\">])<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">predict2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">array<\/span><span class=\"p\">([<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"mi\">7<\/span><span class=\"p\">])<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">theta<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">predict1<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">predict2<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>[ 0.45197679]\r\n[ 4.53424501]\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Part 3: Now we do the multi variable exercise<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[490]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Use the numpy genfromtext function to read the data<\/span>\r\n<span class=\"n\">data2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">genfromtxt<\/span><span class=\"p\">(<\/span><span class=\"s\">'\/Users\/matthewturner\/Desktop\/Coursera_machine_learning\/'<\/span><span class=\"o\">+<\/span>\r\n                     <span class=\"s\">'machine-learning-ex1\/ex1\/ex1data2.txt'<\/span><span class=\"p\">,<\/span> <span class=\"n\">delimiter<\/span><span class=\"o\">=<\/span><span class=\"s\">','<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[491]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Pull out the first column (theta0) into the variable X, and the 2nd column (theta1)<\/span>\r\n<span class=\"c\"># into the variable y.  These variable names are consistent with the example.<\/span>\r\n<span class=\"n\">X2<\/span><span class=\"p\">,<\/span><span class=\"n\">y2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">data2<\/span><span class=\"p\">[:,<\/span><span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"mi\">2<\/span><span class=\"p\">],<\/span><span class=\"n\">data2<\/span><span class=\"p\">[:,<\/span><span class=\"mi\">2<\/span><span class=\"p\">]<\/span>\r\n\r\n<span class=\"c\"># Set m = the length of y (i.e., the number of observations).<\/span>\r\n<span class=\"n\">m2<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">y2<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">y2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">y2<\/span><span class=\"o\">.<\/span><span class=\"n\">reshape<\/span><span class=\"p\">(<\/span><span class=\"n\">m2<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Part 3.1: Feature Normalization<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[492]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"k\">def<\/span> <span class=\"nf\">featureNormalize<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">mu<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">mean<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">axis<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">sigma<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">std<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">axis<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">X_norm<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span> <span class=\"n\">X<\/span> <span class=\"o\">-<\/span> <span class=\"n\">mu<\/span> <span class=\"p\">)<\/span> <span class=\"o\">\/<\/span> <span class=\"n\">sigma<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">X_norm<\/span><span class=\"p\">,<\/span> <span class=\"n\">mu<\/span><span class=\"p\">,<\/span> <span class=\"n\">sigma<\/span>\r\n    \r\n<span class=\"n\">X_norm<\/span><span class=\"p\">,<\/span> <span class=\"n\">mu<\/span><span class=\"p\">,<\/span> <span class=\"n\">sigma<\/span> <span class=\"o\">=<\/span> <span class=\"n\">featureNormalize<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[516]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Add the column of ones to X2<\/span>\r\n<span class=\"n\">X2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">c_<\/span><span class=\"p\">[<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">ones<\/span><span class=\"p\">((<\/span><span class=\"n\">m2<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">)),<\/span><span class=\"n\">X_norm<\/span><span class=\"p\">]<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Part 3.2: Gradient Descent<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[517]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"k\">def<\/span> <span class=\"nf\">gradientDescentMulti<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">,<\/span><span class=\"n\">y2<\/span><span class=\"p\">,<\/span><span class=\"n\">theta2<\/span><span class=\"p\">,<\/span><span class=\"n\">alpha2<\/span><span class=\"p\">,<\/span><span class=\"n\">iterations2<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">J_history2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">zeros<\/span><span class=\"p\">(<\/span><span class=\"n\">iterations2<\/span><span class=\"p\">)<\/span>\r\n    \r\n    <span class=\"n\">max1<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">shape<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">)[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"n\">alpha_over_m<\/span> <span class=\"o\">=<\/span> <span class=\"n\">alpha2<\/span> <span class=\"o\">\/<\/span> <span class=\"n\">m2<\/span>\r\n    <span class=\"k\">for<\/span> <span class=\"nb\">iter<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">iterations2<\/span><span class=\"p\">):<\/span>\r\n        <span class=\"n\">temp2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">theta2<\/span>\r\n        <span class=\"n\">h2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">,<\/span><span class=\"n\">temp2<\/span><span class=\"o\">.<\/span><span class=\"n\">reshape<\/span><span class=\"p\">(<\/span><span class=\"n\">max1<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">))<\/span><span class=\"o\">-<\/span><span class=\"n\">y2<\/span>\r\n        <span class=\"n\">h3<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">,<\/span><span class=\"n\">h2<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"n\">temp2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">temp2<\/span><span class=\"o\">.<\/span><span class=\"n\">reshape<\/span><span class=\"p\">(<\/span><span class=\"n\">max1<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"n\">alpha_over_m<\/span> <span class=\"o\">*<\/span> <span class=\"n\">h3<\/span>\r\n        <span class=\"n\">theta2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">temp2<\/span>\r\n        \r\n        <span class=\"n\">J_history2<\/span><span class=\"p\">[<\/span><span class=\"nb\">iter<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">costFunc<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">,<\/span><span class=\"n\">y2<\/span><span class=\"p\">,<\/span><span class=\"n\">theta2<\/span><span class=\"p\">)<\/span>\r\n        \r\n    <span class=\"k\">return<\/span> <span class=\"n\">theta2<\/span><span class=\"p\">,<\/span><span class=\"n\">J_history2<\/span>\r\n    \r\n<span class=\"n\">theta2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">zeros<\/span><span class=\"p\">(<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">shape<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">)[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\r\n<span class=\"n\">alpha2<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.1<\/span>\r\n<span class=\"n\">iterations2<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">400<\/span>\r\n    \r\n<span class=\"n\">theta2<\/span><span class=\"p\">,<\/span> <span class=\"n\">J_history2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">gradientDescentMulti<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">,<\/span><span class=\"n\">y2<\/span><span class=\"p\">,<\/span><span class=\"n\">theta2<\/span><span class=\"p\">,<\/span><span class=\"n\">alpha2<\/span><span class=\"p\">,<\/span><span class=\"n\">iterations2<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">theta2<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>[[ 340412.65957447]\r\n [ 109447.79558639]\r\n [  -6578.3539709 ]]\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[518]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">J_history2<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt output_prompt\">Out[518]:<\/div>\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[&lt;matplotlib.lines.Line2D at 0x10a591fd0&gt;]<\/pre>\n<\/div>\n<\/div>\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_png output_subarea \"><img decoding=\"async\" src=\"http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/J_history2.png\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Part 3.3: Normal Equation<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[519]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"k\">def<\/span> <span class=\"nf\">normalEqn<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">pinv_X<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">linalg<\/span><span class=\"o\">.<\/span><span class=\"n\">pinv<\/span><span class=\"p\">(<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">,<\/span><span class=\"n\">X<\/span><span class=\"p\">))<\/span>\r\n    <span class=\"n\">X_y<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">,<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">theta<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">pinv_X<\/span><span class=\"p\">,<\/span><span class=\"n\">X_y<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">linalg<\/span><span class=\"o\">.<\/span><span class=\"n\">inv<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span> <span class=\"n\">X<\/span> <span class=\"p\">))<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span> <span class=\"n\">X<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span> <span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span> <span class=\"n\">y<\/span> <span class=\"p\">)<\/span>\r\n    \r\n<span class=\"n\">theta3<\/span> <span class=\"o\">=<\/span> <span class=\"n\">normalEqn<\/span><span class=\"p\">(<\/span><span class=\"n\">X2<\/span><span class=\"p\">,<\/span><span class=\"n\">y2<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">print<\/span> <span class=\"n\">theta3<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>[[ 340412.65957447]\r\n [ 109447.79646964]\r\n [  -6578.35485416]]\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[527]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython2\">\n<pre><span class=\"c\"># Predict proce of 1650 sq foot house with 3 bedrooms<\/span>\r\n<span class=\"n\">x_predict<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">1650<\/span><span class=\"p\">,<\/span><span class=\"mi\">3<\/span><span class=\"p\">]<\/span>\r\n<span class=\"n\">normalized_predict<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">x_predict<\/span> <span class=\"o\">-<\/span> <span class=\"n\">mu<\/span><span class=\"p\">)<\/span><span class=\"o\">\/<\/span><span class=\"n\">sigma<\/span>\r\n<span class=\"n\">normalized_predict<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">insert<\/span><span class=\"p\">(<\/span><span class=\"n\">normalized_predict<\/span><span class=\"p\">,<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">predict3<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">dot<\/span><span class=\"p\">(<\/span><span class=\"n\">normalized_predict<\/span><span class=\"p\">,<\/span><span class=\"n\">theta2<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"k\">print<\/span> <span class=\"n\">predict3<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>[ 293081.46452917]\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; I have previously done the Coursera Machine Learning exercises in Matlab. I thought, now that I am starting to get away from Matlab and use Python more, I should re-do the exercises in Python. This is exercise 1. In\u00a0[447]: %matplotlib inline import matplotlib.pyplot as plt import numpy as np import scipy Part 1: Create [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":532,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3,235,233,20],"tags":[249,240,250,248,80],"class_list":["post-523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-command-line","category-data-science","category-python","category-scripting","tag-coursera","tag-data-science","tag-ipython","tag-machine-learning","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Coursera Machine Learning In Python (Exercise 1) - Tech N Comp<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Coursera Machine Learning In Python (Exercise 1) - Tech N Comp\" \/>\n<meta property=\"og:description\" content=\"&nbsp; I have previously done the Coursera Machine Learning exercises in Matlab. I thought, now that I am starting to get away from Matlab and use Python more, I should re-do the exercises in Python. This is exercise 1. In\u00a0[447]: %matplotlib inline import matplotlib.pyplot as plt import numpy as np import scipy Part 1: Create [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Tech N Comp\" \/>\n<meta property=\"article:published_time\" content=\"2015-04-04T05:09:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-08-03T02:50:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/bigdatacomputers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"660\" \/>\n\t<meta property=\"og:image:height\" content=\"340\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/\"},\"author\":{\"name\":\"Admin\",\"@id\":\"http:\\\/\\\/mattdturner.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/ddfa8276a3c382cc0a217b9cba226f28\"},\"headline\":\"Coursera Machine Learning In Python (Exercise 1)\",\"datePublished\":\"2015-04-04T05:09:57+00:00\",\"dateModified\":\"2018-08-03T02:50:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/\"},\"wordCount\":142,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2015\\\/04\\\/bigdatacomputers.jpg\",\"keywords\":[\"coursera\",\"data science\",\"ipython\",\"machine learning\",\"Python\"],\"articleSection\":[\"Command Line\",\"Data Science\",\"Python\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/\",\"url\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/\",\"name\":\"Coursera Machine Learning In Python (Exercise 1) - Tech N Comp\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/mattdturner.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2015\\\/04\\\/bigdatacomputers.jpg\",\"datePublished\":\"2015-04-04T05:09:57+00:00\",\"dateModified\":\"2018-08-03T02:50:46+00:00\",\"author\":{\"@id\":\"http:\\\/\\\/mattdturner.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/ddfa8276a3c382cc0a217b9cba226f28\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/2015\\\/04\\\/coursera-machine-learning-in-python-exercise-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2015\\\/04\\\/bigdatacomputers.jpg\",\"contentUrl\":\"https:\\\/\\\/mattdturner.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2015\\\/04\\\/bigdatacomputers.jpg\",\"width\":660,\"height\":340},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/mattdturner.com\\\/wordpress\\\/#website\",\"url\":\"http:\\\/\\\/mattdturner.com\\\/wordpress\\\/\",\"name\":\"Tech N Comp\",\"description\":\"The one stop shop for everything Technology and Computer Related\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/mattdturner.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/mattdturner.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/ddfa8276a3c382cc0a217b9cba226f28\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f908010f32d1c51d493f0c45d4ecaadcc12862723680f7d4ff73e7619d611855?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f908010f32d1c51d493f0c45d4ecaadcc12862723680f7d4ff73e7619d611855?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f908010f32d1c51d493f0c45d4ecaadcc12862723680f7d4ff73e7619d611855?s=96&r=g\",\"caption\":\"Admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Coursera Machine Learning In Python (Exercise 1) - Tech N Comp","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/","og_locale":"en_US","og_type":"article","og_title":"Coursera Machine Learning In Python (Exercise 1) - Tech N Comp","og_description":"&nbsp; I have previously done the Coursera Machine Learning exercises in Matlab. I thought, now that I am starting to get away from Matlab and use Python more, I should re-do the exercises in Python. This is exercise 1. In\u00a0[447]: %matplotlib inline import matplotlib.pyplot as plt import numpy as np import scipy Part 1: Create [&hellip;]","og_url":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/","og_site_name":"Tech N Comp","article_published_time":"2015-04-04T05:09:57+00:00","article_modified_time":"2018-08-03T02:50:46+00:00","og_image":[{"width":660,"height":340,"url":"https:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/bigdatacomputers.jpg","type":"image\/jpeg"}],"author":"Admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/#article","isPartOf":{"@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/"},"author":{"name":"Admin","@id":"http:\/\/mattdturner.com\/wordpress\/#\/schema\/person\/ddfa8276a3c382cc0a217b9cba226f28"},"headline":"Coursera Machine Learning In Python (Exercise 1)","datePublished":"2015-04-04T05:09:57+00:00","dateModified":"2018-08-03T02:50:46+00:00","mainEntityOfPage":{"@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/"},"wordCount":142,"commentCount":1,"image":{"@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/#primaryimage"},"thumbnailUrl":"https:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/bigdatacomputers.jpg","keywords":["coursera","data science","ipython","machine learning","Python"],"articleSection":["Command Line","Data Science","Python","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/","url":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/","name":"Coursera Machine Learning In Python (Exercise 1) - Tech N Comp","isPartOf":{"@id":"http:\/\/mattdturner.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/#primaryimage"},"image":{"@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/#primaryimage"},"thumbnailUrl":"https:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/bigdatacomputers.jpg","datePublished":"2015-04-04T05:09:57+00:00","dateModified":"2018-08-03T02:50:46+00:00","author":{"@id":"http:\/\/mattdturner.com\/wordpress\/#\/schema\/person\/ddfa8276a3c382cc0a217b9cba226f28"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mattdturner.com\/wordpress\/2015\/04\/coursera-machine-learning-in-python-exercise-1\/#primaryimage","url":"https:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/bigdatacomputers.jpg","contentUrl":"https:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2015\/04\/bigdatacomputers.jpg","width":660,"height":340},{"@type":"WebSite","@id":"http:\/\/mattdturner.com\/wordpress\/#website","url":"http:\/\/mattdturner.com\/wordpress\/","name":"Tech N Comp","description":"The one stop shop for everything Technology and Computer Related","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/mattdturner.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/mattdturner.com\/wordpress\/#\/schema\/person\/ddfa8276a3c382cc0a217b9cba226f28","name":"Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f908010f32d1c51d493f0c45d4ecaadcc12862723680f7d4ff73e7619d611855?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f908010f32d1c51d493f0c45d4ecaadcc12862723680f7d4ff73e7619d611855?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f908010f32d1c51d493f0c45d4ecaadcc12862723680f7d4ff73e7619d611855?s=96&r=g","caption":"Admin"}}]}},"_links":{"self":[{"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/comments?post=523"}],"version-history":[{"count":6,"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/523\/revisions"}],"predecessor-version":[{"id":6131,"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/523\/revisions\/6131"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/media\/532"}],"wp:attachment":[{"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/media?parent=523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/categories?post=523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/tags?post=523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}