Now that you know how to solve the first problem in Problem set 1, you have to graph the answer. I used matplotlib. The website for this plotting module can be found here.
Here's a copy of code to plot the data for ps 1:
#Plots x1 vs x2 for Problem 1 of the Stanford machine learning class
from pylab import *
import numpy as np
from math import *
# we need to show when h=.5 as a line to separate the data. h=.5 when
# theta transpose x =0. so 0=theta0 +theta1*x1+theta2*x2
# solving for x2 give -theta0/theta2-theta1/theta2*x1
# Use different colors and markers to plot x1 vs x2 if y=0 or y=1
for i in range(0,98):
I used a for x1 and b as the calculated value for x2. Plotting a vs b gives that beautiful straight line across the plot.
One of my previous posts talked about expecting the unexpected in numpy. It happens again in this little short program. This line:
was not what I though it was. I thought this gave me a list of values between the minimum of x1 and the maximum of x1. I was wrong. Here is what this actually gives:
[ 0.57079941 7.7054006 1. 0.01 ]
If you want a list of values, you need to use this code:
This gives 25 values between the minimum and maximum of your data set.
The rest of the code is very straight forward. Just set up a loop. If y=1, the data plots as a red circle. If y=0, the data plots as a blue x.
I know I have posted this graph before but it is so pretty, I'm going to post it again: