Learning From Data - Homework 5 - A solution in LIONoso

Courtesy of Giovanni Pellegrini

We provide a solution to exercise 7, about Gradient Descent.
Before proceeding, be sure to have Python installed on your computer.

Connecting the Gradient Descent Python script to LIONoso

You can download the Gradient Descent Algorithm script , containing our solution to the exercise.
Please read the notes for Windows users if you are using this operating system.

Load the script by dragging a Parametric table element into the workbench, and by specifying the filename of your script.

In the above figure we just loaded the script (Exercise7-Gradient.py).
Then you can specify the number of iterations, the learning rate of the algorithm and the initial values of u and v.

By clicking the "Compute" button, the script is launched and a table containing the results of each experiment is produced. The table contains the iterations, the Error and the values of v and u.

To compute the average of the Error open a Bubblechart from the output table (right click on the table generated, select "New panel"->"Bubble") and drag the "Error" column onto the y axis. Select the "Advanced properties" tab in the left panel and select "Show polynomial fit" with 0 degree. A red line will appear on the plot showing the average value.

Results

The result with default values (30 Iterations, 0.1 learning rate, v = 1 and u = 1) are:

Error:
After 30 iteration: 0.07

Notes for Windows users

While on most UNIX-based systems (such as Linux and Mac OS X) it is possible to declare the script interpreter in the top line of the script, Windows bases the choice of the interpreter on the filename extension. There can be two types of problems:

  1. The interpreter is installed, but it did not register the file extension (as it happens, e.g., with R)
  2. A specialized application “stole” the file extension and is executed in place of the interpreter (as it happens, e.g., with Canopy, which appropriates the .py extension of Python)
In these cases, it is possible to execute the script from within LIONoso by providing a “wrapper shell script”. In the Python case, use a text editor (e.g., Notepad) to create the file Exercise7-Gradient-b.bat containing the following text:
        @echo off
        C:\Python27\python.exe Exercise7-Gradient.py %*
where C:\Python27\python.exe must be replaced by the path of the python.exe executable in your system. Next, import this file in the Parametric table.