예제 #1
0
def eaData3Classify(m=1000):
    distance = 8
    np.random.seed(1)
    X1 = 2 * np.random.randn(2, m)
    Y1 = np.zeros((3, m))
    Y1[0] = 1
    type1 = np.zeros((1, m))

    X2 = 2 * np.random.randn(2, m)
    X2[0] += distance
    Y2 = np.zeros((3, m))
    Y2[1] = 1
    type2 = 1 + np.zeros((1, m))

    X3 = 2 * np.random.randn(2, m)
    X3[0] += distance / 2
    X3[1] += distance * math.sin(math.pi / 3)
    Y3 = np.zeros((3, m))
    Y3[2] = 1
    type3 = 2 + np.zeros((1, m))

    X = np.c_[X1, X2, X3]
    Y = np.c_[Y1, Y2, Y3]
    Type = np.c_[type1, type2, type3]

    eaData = Ea()
    eaData.X = X
    eaData.Y = Y
    eaData.Type = Type

    return eaData
예제 #2
0
def eaDataTFRing(m=1000):
    #   np.random.seed(...)  保证每次输出结果不变。
    np.random.seed(1)
    X = 2 * np.random.randn(2, m)
    #   很方便的求 2-范数 的方法(相当于求半径)
    R = np.linalg.norm(X, ord=2, axis=0).reshape(1, m)
    #   增加一个噪音
    np.random.seed(2)
    noise = .3 * np.random.normal(size=R.shape)
    R = R + noise
    #   二值化输出
    Y = np.int32(np.array(R < 2.5))
    # print("dataTF  X.shape",X.shape,"Y.shape",Y.shape)
    #   合并输入输出数据 (学会用 np.r_[...] 和 np.c_[...])
    eaData = Ea()
    eaData.X = X
    eaData.Y = Y
    eaData.Type = Y

    return eaData