コード例 #1
0
ファイル: test_spn.py プロジェクト: giulianavll/MLC-SPN
def test_spn_construction_by_init_and_evaluation():

    # building the same levels
    input_layer = build_spn_indicator_layer(vars)
    sum_layer, prod_layer = build_spn_layers(input_layer)

    spn = Spn(input_layer=input_layer, layers=[sum_layer, prod_layer])

    res = spn.eval(I)
    print('First evaluation')
    print(res)

    assert_log_array_almost_equal(root_vals, res)
コード例 #2
0
ファイル: test_spn.py プロジェクト: giulianavll/MLC-SPN
def test_spn_construction_by_add_and_evaluation():
    spn = Spn()

    # building the same levels
    input_layer = build_spn_indicator_layer(vars)
    sum_layer, prod_layer = build_spn_layers(input_layer)

    # adding all layers to the spn
    spn.set_input_layer(input_layer)
    spn.add_layer(sum_layer)
    spn.add_layer(prod_layer)

    res = spn.eval(I)
    print('First evaluation')
    print(res)
    assert_log_array_almost_equal(root_vals, res)
コード例 #3
0
ファイル: test_spn.py プロジェクト: giulianavll/MLC-SPN
def test_spn_construction_by_add_and_evaluation_II():
    spn = Spn()

    # print('empty spn')
    # print(spn)

    input_layer = build_spn_smoothed_layer(vars, dicts, alpha)
    prod_layer = build_spn_layers_II(input_layer)

    # adding all layers to the spn
    spn.set_input_layer(input_layer)
    spn.add_layer(prod_layer)

    # print('created spn')
    # print(spn)

    res = spn.eval(I)
    print('First smoothed evaluation')
    print(res)
    assert_log_array_almost_equal(root_vals, res)
コード例 #4
0
ファイル: test_nodes.py プロジェクト: danhlephuoc/spae
def test_categorical_smoothed_node_data_smooth():
    data_1 = numpy.array([[1],
                          [0],
                          [1],
                          [0],
                          [1]])

    data_2 = numpy.array([[1, 0],
                          [0, 1],
                          [1, 1],
                          [0, 1],
                          [1, 0]])

    alpha = 0

    freqs = CategoricalSmoothedNode.smooth_freq_from_data(data_1, alpha)
    print('freqs', freqs)

    exp_freqs = CategoricalSmoothedNode.smooth_ll([2 / 5, 3 / 5], alpha)
    print('exp freqs', exp_freqs)
    assert_array_almost_equal(exp_freqs, freqs)

    # now create a node
    input_node = CategoricalSmoothedNode(var=0,
                                         var_values=2,
                                         instances={0, 2, 4})
    input_node.smooth_probs(alpha, data=data_1)
    exp_probs = CategoricalSmoothedNode.smooth_ll([0, 1], alpha)
    print('exp probs', exp_probs)
    print('probs', input_node._var_probs)

    assert_log_array_almost_equal(exp_probs,
                                  input_node._var_probs)

    input_node.smooth_probs(alpha, data=data_2)
    assert_log_array_almost_equal(exp_probs,
                                  input_node._var_probs)