Example #1
0
    def init_params(cls, params, algo_input):
        """Constructor from params."""
        feature_dimension = get_feature_dimension(algo_input.training_dataset)
        fea_map_params = params.get(Pluggable.SECTION_KEY_FEATURE_MAP)
        fea_map_params['feature_dimension'] = feature_dimension

        feature_map = get_pluggable_class(
            PluggableType.FEATURE_MAP,
            fea_map_params['name']).init_params(params)

        multiclass_extension = None
        multiclass_extension_params = params.get(
            Pluggable.SECTION_KEY_MULTICLASS_EXT)
        if multiclass_extension_params is not None:
            multiclass_extension_params['params'] = [feature_map]
            multiclass_extension_params['estimator_cls'] = _QSVM_Estimator

            multiclass_extension = \
                get_pluggable_class(PluggableType.MULTICLASS_EXTENSION,
                                    multiclass_extension_params['name']).init_params(params)
            logger.info("Multiclass classifier based on %s",
                        multiclass_extension_params['name'])

        return cls(feature_map, algo_input.training_dataset,
                   algo_input.test_dataset, algo_input.datapoints,
                   multiclass_extension)
Example #2
0
    def init_params(cls, params, algo_input):
        """Constructor from params."""
        num_qubits = get_feature_dimension(algo_input.training_dataset)
        fea_map_params = params.get(QuantumAlgorithm.SECTION_KEY_FEATURE_MAP)
        fea_map_params['num_qubits'] = num_qubits

        feature_map = get_pluggable_class(
            PluggableType.FEATURE_MAP,
            fea_map_params['name']).init_params(fea_map_params)

        multiclass_extension = None
        multiclass_extension_params = params.get(
            QuantumAlgorithm.SECTION_KEY_MULTICLASS_EXTENSION, None)
        if multiclass_extension_params is not None:
            multiclass_extension_params['params'] = [feature_map]
            multiclass_extension_params[
                'estimator_cls'] = _QSVM_Kernel_Estimator

            multiclass_extension = get_pluggable_class(
                PluggableType.MULTICLASS_EXTENSION,
                multiclass_extension_params['name']).init_params(
                    multiclass_extension_params)
            logger.info("Multiclass classifier based on {}".format(
                multiclass_extension_params['name']))

        return cls(feature_map, algo_input.training_dataset,
                   algo_input.test_dataset, algo_input.datapoints,
                   multiclass_extension)
)

n = 2  # dimension of each data point
sample_Total, training_input, test_input, class_labels = wine(training_size=50,
                                                              test_size=6,
                                                              n=n,
                                                              plot_data=False)
temp = [test_input[k] for k in test_input]
total_array = np.concatenate(temp)

try:
    aqua_globals.random_seed = 10598

    backend = BasicAer.get_backend('qasm_simulator')
    feature_map = ZZFeatureMap(
        feature_dimension=get_feature_dimension(training_input),
        reps=2,
        entanglement='linear')
    svm = QSVM(feature_map,
               training_input,
               test_input,
               total_array,
               multiclass_extension=AllPairs())
    quantum_instance = QuantumInstance(
        backend,
        shots=1024,
        seed_simulator=aqua_globals.random_seed,
        seed_transpiler=aqua_globals.random_seed)

    result = svm.run(quantum_instance)
    for k, v in result.items():