{"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":"http:\/\/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"],"_links":{"self":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/523"}],"collection":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/comments?post=523"}],"version-history":[{"count":6,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/523\/revisions"}],"predecessor-version":[{"id":6131,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/523\/revisions\/6131"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/media\/532"}],"wp:attachment":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/media?parent=523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/categories?post=523"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/tags?post=523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}