Pravimo dva niza, x10 i x11, sa slučajnim brojevima od kojih kreiramo matricu X1.

In [8]:
x10 = np.random.randn(1000, 1)
x11 = np.random.randn(1000, 1) * 2 + 3
X1 = np.hstack ([x10, x11]) #stavljamo na niz x10 niz x11 i dobijamo matricu X1 (1000x2) 
In [9]:
X1.shape
Out[9]:
(1000, 2)

Na isti način pravimo i matricu X2.

In [10]:
x20 = np.random.randn(1000,1) * 0.8 + 3
x21 = np.random.randn(1000,1) * 1   + 5
X2 =  np.hstack([x20, x21])

Grafički prikaz matrice X1 i X2.

In [11]:
plt.scatter(X1[:,0], X1[:,1])
plt.scatter(X2[:,0], X2[:,1])
plt.title("Raspodela slučajnih promenljivih (x,y) iz X1 i X2");

Na kraju pravimo matricu X vertikalno spajajući X1 i X2:

In [12]:
X = np.vstack([X1, X2])
In [13]:
y = np.ones(2000)
y[1000:2000] = 2
In [14]:
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
clf  = LinearDiscriminantAnalysis()
clf.fit(X, y)
Out[14]:
LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=None,
              solver='svd', store_covariance=False, tol=0.0001)