コード例 #1
0
def test_x2():
    import matplotlib.pyplot as plt
    n_samples = 10000
    y = np.random.uniform(-10, 10, n_samples)
    X = y**2
    solver = 'adam'  #'lbfgs'
    activation = 'tanh'
    noise = 0.1
    X_test = np.linspace(0, 100, 1000)
    hidden_layer_sizes = (50, )

    RM1 = manage_RM(X_train=X,
                    y_train=y,
                    verbose=True,
                    noise=noise,
                    scaling=True)
    RM1.init_RM(max_iter=200000,
                tol=0.0000001,
                solver=solver,
                activation=activation,
                hidden_layer_sizes=hidden_layer_sizes)
    RM1.train_RM()
    RM1.set_test(X_test, scaleit=True)
    RM1.predict(scoring=False)

    RM2 = manage_RM(X_train=X,
                    y_train=y,
                    verbose=True,
                    N_y_bins=100,
                    noise=noise,
                    scaling=True)
    RM2.init_RM(max_iter=200000,
                tol=0.0000001,
                solver=solver,
                activation=activation,
                hidden_layer_sizes=hidden_layer_sizes)
    RM2.train_RM()
    RM2.set_test(X_test, scaleit=True)
    RM2.predict(scoring=False, reduce_by='max')

    RM3 = manage_RM(X_train=X,
                    y_train=y,
                    verbose=True,
                    y_vects=np.linspace(-10, 10, 100),
                    noise=noise,
                    scaling=True)
    RM3.init_RM(max_iter=200000,
                tol=0.0000001,
                solver=solver,
                activation=activation,
                hidden_layer_sizes=hidden_layer_sizes)
    RM3.train_RM()
    RM3.set_test(X_test, scaleit=True)
    RM3.predict(scoring=False, reduce_by='max')

    plt.scatter(X_test, RM1.pred, edgecolor='', c='b')
    plt.scatter(X_test, RM2.pred, edgecolor='', c='r')
    plt.scatter(X_test, RM3.pred, alpha=0.05, c='g')
    return RM1, RM2, RM3
コード例 #2
0
def test_x3():
    import matplotlib.pyplot as plt
    n_samples = 30000
    y = np.random.uniform(-10, 10, n_samples)
    X = y**3
    solver = 'lbfgs'
    activation = 'tanh'
    noise = None

    RM1 = manage_RM(X_train=X, y_train=y, verbose=True, noise=noise)
    RM1.init_RM(max_iter=200000,
                tol=0.0000001,
                solver=solver,
                activation=activation,
                hidden_layer_sizes=(60, 60, 60))
    RM1.train_RM()
    RM1.set_test(np.linspace(-1000, 1000, 1000))
    RM1.predict(scoring=False)

    RM2 = manage_RM(X_train=X,
                    y_train=y,
                    verbose=True,
                    N_y_bins=100,
                    noise=noise)
    RM2.init_RM(max_iter=200000,
                tol=0.0000001,
                solver=solver,
                activation=activation,
                hidden_layer_sizes=(60, 60, 60))
    RM2.train_RM()
    RM2.set_test(np.linspace(-1000, 1000, 1000))
    RM2.predict(scoring=False, reduce_by='max')

    RM3 = manage_RM(X_train=X,
                    y_train=y,
                    verbose=True,
                    y_vects=np.linspace(-10, 10, 100),
                    noise=noise)
    RM3.init_RM(max_iter=200000,
                tol=0.0000001,
                solver=solver,
                activation=activation,
                hidden_layer_sizes=(60, 60, 60))
    RM3.train_RM()
    RM3.set_test(np.linspace(-1000, 1000, 1000))
    RM3.predict(scoring=False, reduce_by='max')

    plt.scatter(RM1.X_test, RM1.pred)
    plt.scatter(RM2.X_test, RM2.pred)
    plt.scatter(RM3.X_test, RM3.pred, alpha=0.05)
    return RM1, RM2, RM3
コード例 #3
0
def test_KSK():
    def true_fun(x):
        return np.cos(1.5 * np.pi * x)

    # A random seed to reproduce the results
    np.random.seed(0)

    # The number of points used to fit the function
    n_samples = 3000

    # Noise to be added to the points used to fit the function
    noise = 0.1

    # The training set: n_samples X points, with the noisy correspoing y
    X = np.sort(np.random.rand(n_samples))
    y = true_fun(X) + np.random.randn(n_samples) * noise
    X_train = X
    y_train_true = y

    # The set of points to verify the fit quality
    X_test = np.linspace(0, 1, 100)
    y_test_true = true_fun(X_test)

    RM = manage_RM(RM_type='KSK_ANN',
                   X_train=X_train,
                   y_train=y_train_true,
                   scaling=True,
                   verbose=True,
                   random_seed=10)
    RM.init_RM(hidden_layer_sizes=(4, ), activation='tanh', solver='adam')
    RM.train_RM()
コード例 #4
0
def test_x2_K():
    import matplotlib.pyplot as plt
    n_samples = 3000
    y = np.random.uniform(-10, 10, n_samples)
    X = y**2
    solver = 'adam'
    activation = 'tanh'
    noise = 0.1
    X_test = np.linspace(0, 100, 1000)
    hidden_layer_sizes = (50, )

    RM1 = manage_RM(RM_type='KerasDis',
                    X_train=X,
                    y_train=y,
                    verbose=True,
                    noise=noise,
                    y_vects=np.linspace(-10, 10, 100),
                    min_discret=0,
                    scaling=True)
    RM1.init_RM(solver=solver,
                activation=activation,
                hidden_layer_sizes=hidden_layer_sizes,
                epochs=100)
    RM1.train_RM()
    RM1.set_test(X_test, scaleit=True)
    RM1.predict(scoring=False, reduce_by='max')
    pred_max = RM1.pred
    RM1.predict(scoring=False, reduce_by='mean')
    pred_mean = RM1.pred
    plt.scatter(X_test, pred_max, edgecolor='', c='y')
    plt.scatter(X_test, pred_mean, edgecolor='', c='c')

    return RM1
コード例 #5
0
def test1():
    n_samples = 10000
    y = np.random.uniform(-10, 10, n_samples)
    X = y**2
    solver = 'adam'  #'lbfgs'
    activation = 'tanh'
    noise = 0.1
    X_test = np.linspace(0, 100, 1000)
    hidden_layer_sizes = (50, )

    RM1 = manage_RM(X_train=X,
                    y_train=y,
                    verbose=True,
                    scaling=True,
                    RM_type='Keras')
    RM1.init_RM(max_iter=200000,
                tol=0.0000001,
                solver=solver,
                activation=activation,
                hidden_layer_sizes=hidden_layer_sizes)
    RM1.train_RM()
    RM1.set_test(X_test, scaleit=True)
    RM1.predict(scoring=False)
    return RM1
コード例 #6
0
def test_type(RM_type='SK_ANN'):

    X1, y1, X2, y2 = get_sets(func='x24', verbose=False)

    N_y_bins = None
    y_vects = None  #np.linspace(-5,5,41)
    if False:
        N_y_bins = 41
        y_vects = None

    reduce_by = None  #'mean'
    split_ratio = 0.3
    verbose = False
    try:
        print('-----')
        print
        RM = manage_RM(X_train=X1,
                       y_train=y1,
                       split_ratio=split_ratio,
                       verbose=verbose,
                       N_y_bins=N_y_bins,
                       y_vects=y_vects,
                       RM_type=RM_type)
        RM.init_RM()
        RM.train_RM()
        RM.predict()
        print('X1, y1 passed, ', RM.N_train, RM.N_in, RM.N_train_y, RM.N_out)
    except:
        print('!!! X1, y1 not passed')
    try:
        print('-----')
        print
        RM = manage_RM(X_train=X2,
                       y_train=y1,
                       split_ratio=split_ratio,
                       verbose=verbose,
                       N_y_bins=N_y_bins,
                       y_vects=y_vects,
                       RM_type=RM_type)
        RM.init_RM()
        RM.train_RM()
        RM.predict()
        print('X2, y1 passed, ', RM.N_train, RM.N_in, RM.N_train_y, RM.N_out)
    except:
        print('!!! X2, y1 not passed')
    try:
        print('-----')
        print
        RM = manage_RM(X_train=X1,
                       y_train=y2,
                       split_ratio=split_ratio,
                       verbose=verbose,
                       N_y_bins=N_y_bins,
                       y_vects=y_vects,
                       RM_type=RM_type)
        RM.init_RM()
        RM.train_RM()
        RM.predict()
        print('X1, y2 passed, ', RM.N_train, RM.N_in, RM.N_train_y, RM.N_out)
    except:
        print('!!! X1, y2 not passed')
    try:
        print('-----')
        print
        RM = manage_RM(X_train=X2,
                       y_train=y2,
                       split_ratio=split_ratio,
                       verbose=verbose,
                       N_y_bins=N_y_bins,
                       y_vects=y_vects,
                       RM_type=RM_type)
        RM.init_RM()
        RM.train_RM()
        RM.predict()
        print('X2, y2 passed, ', RM.N_train, RM.N_in, RM.N_train_y, RM.N_out)
    except:
        print('!!! X2, y2 not passed')
コード例 #7
0
def test(func='sins'):
    n_samples = 200
    if func == 'sins':
        X1 = np.random.randn(n_samples)
        y1 = np.sin(X1) + np.cos(X1) + 0.1 * np.random.randn(n_samples)
        X2 = np.random.randn(n_samples, 2)
        y2 = np.array([
            np.sin(X2[:, 0]) + np.cos(X2[:, 1]) +
            0.1 * np.random.randn(n_samples),
            np.sin(X2[:, 0])**2 + np.cos(X2[:, 1])**2 +
            0.1 * np.random.randn(n_samples)
        ]).T
    elif func == 'x24':
        y1 = np.random.uniform(-5, 5, n_samples)
        X1 = y1**2
        y2 = np.random.uniform(-5, 5, (n_samples, 2))
        X2 = np.array([y1**2, y1**4]).T

    print('X1 shape:', X1.shape)
    print('X2 shape:', X2.shape)
    print('y1 shape:', y1.shape)
    print('y2 shape:', y2.shape)

    N_y_bins = None
    y_vects = np.linspace(-5, 5, 41)
    if False:
        N_y_bins = 41
        y_vects = None

    scoring = True
    reduce_by = None  #'mean'
    split_ratio = 0.3
    verbose = False
    try:
        print('-----')
        print
        RM1 = manage_RM(X_train=X1,
                        y_train=y1,
                        split_ratio=split_ratio,
                        verbose=verbose,
                        N_y_bins=N_y_bins,
                        y_vects=y_vects,
                        RM_type='ANN')
        RM1.init_RM(max_iter=200000,
                    tol=0.00001,
                    solver='lbfgs',
                    activation='tanh',
                    hidden_layer_sizes=(10))
        RM1.train_RM()
        RM1.predict(scoring=scoring, reduce_by=reduce_by)
        print(RM1.N_train, RM1.N_in, RM1.N_train_y, RM1.N_out)
    except:
        print("!!! TEST 1 not passed !!!")

    if True:

        try:
            print('-----')
            print
            RM2 = manage_RM(X_train=X2,
                            y_train=y1,
                            split_ratio=split_ratio,
                            verbose=verbose,
                            N_y_bins=N_y_bins,
                            y_vects=y_vects)
            RM2.init_RM(max_iter=200, tol=0.001)
            RM2.train_RM()
            RM2.predict(scoring=scoring, reduce_by=reduce_by)
            print(RM2.N_train, RM2.N_in, RM2.N_train_y, RM2.N_out)
        except:
            print("!!! TEST 2 not passed !!!")
        y_vects = [np.linspace(-5, 5, 41), np.linspace(-6, 6, 41)]
        try:
            print('-----')
            print
            RM3 = manage_RM(X_train=X1,
                            y_train=y2,
                            split_ratio=split_ratio,
                            verbose=verbose,
                            N_y_bins=N_y_bins,
                            y_vects=y_vects)
            RM3.init_RM(max_iter=200, tol=0.001)
            RM3.train_RM()
            RM3.predict(scoring=scoring, reduce_by=reduce_by)
            print(RM3.N_train, RM3.N_in, RM3.N_train_y, RM3.N_out)
        except:
            print("!!! TEST 3 not passed !!!")
            RM3 = manage_RM(X_train=X1,
                            y_train=y2,
                            split_ratio=split_ratio,
                            verbose=verbose,
                            N_y_bins=N_y_bins,
                            y_vects=y_vects)
            RM3.init_RM(max_iter=200, tol=0.001)
            RM3.train_RM()
            RM3.predict(scoring=scoring, reduce_by=reduce_by)

        try:

            print('-----')
            print
            RM4 = manage_RM(X_train=X2,
                            y_train=y2,
                            split_ratio=split_ratio,
                            verbose=verbose,
                            N_y_bins=N_y_bins,
                            y_vects=y_vects)
            RM4.init_RM(max_iter=200, tol=0.001)
            RM4.train_RM()
            RM4.predict(scoring=scoring, reduce_by=reduce_by)
            print(RM4.N_train, RM4.N_in, RM4.N_train_y, RM4.N_out)
        except:
            print("!!! TEST 4 not passed !!!")

    return RM1, RM2, RM3, RM4