In [12]:
    
# Global imports and settings
# Matplotlib
%matplotlib inline
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = (8, 8)
plt.rcParams["figure.max_open_warning"] = -1
# Print options
import numpy as np
np.set_printoptions(precision=3)
# Silence warnings
import warnings
warnings.simplefilter(action="ignore", category=FutureWarning)
warnings.simplefilter(action="ignore", category=UserWarning)
warnings.simplefilter(action="ignore", category=RuntimeWarning)
    
In [73]:
    
# Generating datasets for lines, our data will be a list of 2D points...
#hits = (np.random.rand(1000, 2) - 0.5) * 20
def createLine():
    p = (np.random.rand(1,2) -0.5) * 5
    x = np.linspace(-10, 10, 50)
    y = p[0,0] + x * p[0,1]
    
    X = np.transpose(np.vstack((x, y)))
    return X
def createLabeledLine(label):
    X = createLine()
    y = np.array([ label ] * X.shape[0])
    return X,y
    
def createTrackSet(labels):
    hits = np.empty((0, 2))
    track = None
    for c in labels:
        (X, y) = createLabeledLine(c)
        hits = np.vstack((hits, X))
        if track == None:
             track = y
        else:
            track = np.hstack((track, y))
            
    # Now shuffling the data
    from sklearn.utils import shuffle
    X, y = shuffle(hits, track)
    return X, y
# Creating our data sets
labels = [ "r", "g", "b"]
X, y = createTrackSet(labels)
X_test, y_test = createTrackSet(labels)
    
In [94]:
    
ax = plt.subplot(111, polar=True)
theta = np.arctan(X[:,1]/X[:,0])
r = np.sqrt(np.square(X[:,0]) + np.square(X[:,1]))
for label in labels:
    mask = (track == label)
    plt.scatter(theta[mask], r[mask], c=label)
    
    
In [88]:
    
# Printing our tracks to check...
for label in labels:
    mask = (track == label)
    plt.scatter(hits[mask, 0], hits[mask, 1], c=label)
plt.xlim(-10, 10)
plt.ylim(-10, 10)
plt.axis('off')
plt.savefig("lines.png")
plt.show()
    
    
In [ ]:
    
    
In [81]:
    
from sklearn.ensemble import BaggingClassifier 
from tutorial import plot_clf
clf = BaggingClassifier()
clf.fit(X, y)
plot_clf(clf, X, y)
    
    
In [ ]:
    
    
In [ ]: