示例#1
0
文件: linear.py 项目: PRMLiA/taichi
def main():
    gmm = GMM(N=1000)
    gmm.append(normalDist(array([0.,10.]), 
                          array([[5.,0.],
                                 [0.,3.]])),
               0.4)
    gmm.append(normalDist(array([-5.,-10.]),
                          array([[5.,0.],
                                 [0.,5.]])),
               0.3)
    gmm.append(normalDist(array([15.,15.]),
                          array([[5.,0.],
                                 [0.,5.]])))
    (t,x) = gmm.sample().mixtures()
    colors = [['blue', 'red', 'green'][int(label)] for label in t]
    plt.scatter(x[:,0], x[:,1], color=colors)
    
    cls = linear()
    cls.fit(x,t,target=1)
    print(cls.wml)

    xlim = [min(x[:,0]), max(x[:,0])]
    tics = arange(xlim[0]-3,xlim[1]+3,0.01)
    plt.xlim(xlim[0]-3,xlim[1]+3)
    plt.plot(*cls.cPlane(tics),
             color='black')
    
    plt.show()
示例#2
0
def main():
    gmm = GMM(N=1000)
    gmm.append(normalDist(array([0., 10.]), array([[5., 0.], [0., 3.]])), 0.4)
    gmm.append(normalDist(array([-5., -10.]), array([[5., 0.], [0., 5.]])),
               0.3)
    gmm.append(normalDist(array([15., 15.]), array([[5., 0.], [0., 5.]])))
    (t, x) = gmm.sample().mixtures()
    colors = [['blue', 'red', 'green'][int(label)] for label in t]
    plt.scatter(x[:, 0], x[:, 1], color=colors)

    cls = linear()
    cls.fit(x, t, target=1)
    print(cls.wml)

    xlim = [min(x[:, 0]), max(x[:, 0])]
    tics = arange(xlim[0] - 3, xlim[1] + 3, 0.01)
    plt.xlim(xlim[0] - 3, xlim[1] + 3)
    plt.plot(*cls.cPlane(tics), color='black')

    plt.show()
示例#3
0
def composeGMM(type=1):
    if type == 1:
        gmm = GMM(N=1000)
        gmm.append(normalDist(array([-10.,5.]), 
                              array([[5.,0.],
                                     [0.,3.]])),
                   0.4)
        gmm.append(normalDist(array([-5.,-10.]),
                              array([[5.,0.],
                                     [0.,5.]])),
                   0.3)
        gmm.append(normalDist(array([15.,15.]),
                              array([[5.,0.],
                                     [0.,5.]])))
    elif type == 2:
        gmm = GMM(N=1000)
        gmm.append(normalDist(array([0.,5.]), 
                              array([[5.,0.],
                                     [0.,3.]])),
                   0.3)
        gmm.append(normalDist(array([-2.,-10.]),
                              array([[5.,0.],
                                     [0.,5.]])),
                   0.3)
        gmm.append(normalDist(array([-5.,15.]),
                              array([[5.,0.],
                                     [0.,5.]])))
    elif type == 3:
        gmm = GMM(N=1000)
        gmm.append(normalDist(array([5.,5.]), 
                              array([[20.,0.],
                                     [0.,3.]])),
                   0.5)
        gmm.append(normalDist(array([-5.,-5.]),
                              array([[20.,0.],
                                     [0.,3.]])))
    return gmm
示例#4
0
def composeGMM(type=1):
    if type == 1:
        gmm = GMM(N=1000)
        gmm.append(normalDist(array([-10., 5.]), array([[5., 0.], [0., 3.]])),
                   0.4)
        gmm.append(normalDist(array([-5., -10.]), array([[5., 0.], [0., 5.]])),
                   0.3)
        gmm.append(normalDist(array([15., 15.]), array([[5., 0.], [0., 5.]])))
    elif type == 2:
        gmm = GMM(N=1000)
        gmm.append(normalDist(array([0., 5.]), array([[5., 0.], [0., 3.]])),
                   0.3)
        gmm.append(normalDist(array([-2., -10.]), array([[5., 0.], [0., 5.]])),
                   0.3)
        gmm.append(normalDist(array([-5., 15.]), array([[5., 0.], [0., 5.]])))
    elif type == 3:
        gmm = GMM(N=1000)
        gmm.append(normalDist(array([5., 5.]), array([[20., 0.], [0., 3.]])),
                   0.5)
        gmm.append(normalDist(array([-5., -5.]), array([[20., 0.], [0., 3.]])))
    return gmm