def test_split():
    try:
        X = np.ones((5, 2))
        Y = np.ones(6)
        X_1, X_2, Y_1, Y_2 = splitter.split(
            X, Y, percentage=0.5, random_state=1)
    except:
        X = np.ones((6, 2))
        Y = np.ones(6)
        X_1, X_2, Y_1, Y_2 = splitter.split(
            X, Y, percentage=0.5, random_state=1)

    assert X_1.shape == (3, 2)
    assert X_2.shape == (3, 2)
    assert Y_1.shape == (3,)
    assert Y_2.shape == (3,)
Esempio n. 2
0
def test_opf_pre_compute_distances():
    txt = loader.load_txt('data/boat.txt')

    X, Y = parser.parse_loader(txt)

    X_train, _, _, _ = splitter.split(X, Y, 0.5, 1)

    general.pre_compute_distance(X_train, 'boat_split_distances.txt', 'log_squared_euclidean')
Esempio n. 3
0
def test_supervised_opf_prune():
    opf = supervised.SupervisedOPF()

    X_train, X_val, Y_train, Y_val = splitter.split(X,
                                                    Y,
                                                    percentage=0.1,
                                                    random_state=1)

    opf.prune(X_train, Y_train, X_val, Y_val, n_iterations=5)

    assert opf.subgraph.n_nodes == 10
Esempio n. 4
0
def test_supervised_opf_learn():
    opf = supervised.SupervisedOPF()

    X_train, X_val, Y_train, Y_val = splitter.split(X,
                                                    Y,
                                                    percentage=0.1,
                                                    random_state=1)

    opf.learn(X_train, Y_train, X_val, Y_val, n_iterations=5)

    assert isinstance(opf, supervised.SupervisedOPF)
Esempio n. 5
0
def use_split(X, Y, test_size=0.1, random_state=0):
    """Splits the data into training and testing sets.

    Args:
        X (np.array): Input samples array.
        Y (np.array): Input labels array.
        test_size (float): Size of the testing set.
        random_state (int): Random integer to provide a random state to splitter.

    """

    # Splitting data into training and testing sets
    X_train, X_test, Y_train, Y_test = s.split(X,
                                               Y,
                                               percentage=1 - test_size,
                                               random_state=random_state)

    return X_train, X_test, Y_train, Y_test
Esempio n. 6
0
from opytimizer.core import Function
from opytimizer.optimizers.boolean import BPSO
from opytimizer.spaces import BooleanSpace

# Loads digits dataset
digits = load_digits()

# Gathers samples and targets
X = digits.data
Y = digits.target

# Adding 1 to labels, i.e., OPF should have labels from 1+
Y += 1

# Splits data into training and testing sets
X_train, X_val, Y_train, Y_val = s.split(X, Y, percentage=0.5, random_state=1)


def supervised_opf_feature_selection(opytimizer):
    # Gathers features
    features = opytimizer[:, 0].astype(bool)

    # Remaking training and validation subgraphs with selected features
    X_train_selected = X_train[:, features]
    X_val_selected = X_val[:, features]

    # Creates a SupervisedOPF instance
    opf = SupervisedOPF(distance='log_squared_euclidean',
                        pre_computed_distance=None)

    # Fits training data into the classifier
Esempio n. 7
0
from opytimizer.optimizers.swarm import PSO
from opytimizer.spaces import SearchSpace

# Loads digits dataset
digits = load_digits()

# Gathers samples and targets
X = digits.data
Y = digits.target

# Adding 1 to labels, i.e., OPF should have labels from 1+
Y += 1

# Splits data into training and testing sets
X_train, X_test, Y_train, Y_test = s.split(X,
                                           Y,
                                           percentage=0.5,
                                           random_state=1)


def unsupervised_opf_clustering(opytimizer):
    # Gathers parameters from Opytimizer
    # Pay extremely attention to their order when declaring due to their bounds
    max_k = int(opytimizer[0][0])

    # Creates an UnsupervisedOPF instance
    opf = UnsupervisedOPF(max_k=max_k,
                          distance='log_squared_euclidean',
                          pre_computed_distance=None)

    # Fits training data into the classifier
    opf.fit(X_train, Y_train)
Esempio n. 8
0
import opfython.math.general as g
import opfython.stream.loader as l
import opfython.stream.parser as p
import opfython.stream.splitter as s
from opfython.models.semi_supervised import SemiSupervisedOPF

# Loading a .txt file to a numpy array
txt = l.load_txt('data/boat.txt')

# Parsing a pre-loaded numpy array
X, Y = p.parse_loader(txt)

# Splitting data into training and testing sets
X_train, X_test, Y_train, Y_test = s.split(X,
                                           Y,
                                           percentage=0.8,
                                           random_state=1)

#Splitting data into training and validation sets
X_train, X_unlabeled, Y_train, Y_unlabeled = s.split(X_train,
                                                     Y_train,
                                                     percentage=0.25,
                                                     random_state=1)

# Creates a SemiSupervisedOPF instance
opf = SemiSupervisedOPF(distance='log_squared_euclidean',
                        pre_computed_distance=None)

# Fits training data along with unlabeled data into the semi-supervised classifier
opf.fit(X_train, Y_train, X_unlabeled)
import opfython.math.general as g
import opfython.stream.loader as l
import opfython.stream.parser as p
import opfython.stream.splitter as s
from opfython.models import KNNSupervisedOPF

# Loading a .txt file to a numpy array
txt = l.load_txt('data/boat.txt')

# Parsing a pre-loaded numpy array
X, Y = p.parse_loader(txt)

# Splitting data into training and testing sets
X_train, X_test, Y_train, Y_test = s.split(
    X, Y, percentage=0.8, random_state=1)

# Splitting data into training and validation sets
X_train, X_val, Y_train, Y_val = s.split(
    X_train, Y_train, percentage=0.25, random_state=1)

# Creates an KNNSupervisedOPF instance
opf = KNNSupervisedOPF(max_k=10, distance='log_squared_euclidean', pre_computed_distance=None)

# Fits training data into the classifier
opf.fit(X_train, Y_train, X_val, Y_val)

# Predicts new data
preds = opf.predict(X_test)

# Calculating accuracy
acc = g.opf_accuracy(Y_test, preds)