Beispiel #1
0
def test_warm_start_effectiveness():
    # A 1-iteration second fit on same data should give almost same result
    # with warm starting, and quite different result without warm starting.

    nca_warm = NeighborhoodComponentsAnalysis(warm_start=True, random_state=0)
    nca_warm.fit(iris_data, iris_target)
    transformation_warm = nca_warm.components_
    nca_warm.max_iter = 1
    nca_warm.fit(iris_data, iris_target)
    transformation_warm_plus_one = nca_warm.components_

    nca_cold = NeighborhoodComponentsAnalysis(warm_start=False, random_state=0)
    nca_cold.fit(iris_data, iris_target)
    transformation_cold = nca_cold.components_
    nca_cold.max_iter = 1
    nca_cold.fit(iris_data, iris_target)
    transformation_cold_plus_one = nca_cold.components_

    diff_warm = np.sum(np.abs(transformation_warm_plus_one -
                              transformation_warm))
    diff_cold = np.sum(np.abs(transformation_cold_plus_one -
                              transformation_cold))
    assert diff_warm < 3.0, ("Transformer changed significantly after one "
                             "iteration even though it was warm-started.")

    assert diff_cold > diff_warm, ("Cold-started transformer changed less "
                                   "significantly than warm-started "
                                   "transformer after one iteration.")
Beispiel #2
0
def test_warm_start_effectiveness():
    # A 1-iteration second fit on same data should give almost same result
    # with warm starting, and quite different result without warm starting.

    nca_warm = NeighborhoodComponentsAnalysis(warm_start=True, random_state=0)
    nca_warm.fit(iris_data, iris_target)
    transformation_warm = nca_warm.components_
    nca_warm.max_iter = 1
    nca_warm.fit(iris_data, iris_target)
    transformation_warm_plus_one = nca_warm.components_

    nca_cold = NeighborhoodComponentsAnalysis(warm_start=False, random_state=0)
    nca_cold.fit(iris_data, iris_target)
    transformation_cold = nca_cold.components_
    nca_cold.max_iter = 1
    nca_cold.fit(iris_data, iris_target)
    transformation_cold_plus_one = nca_cold.components_

    diff_warm = np.sum(np.abs(transformation_warm_plus_one -
                              transformation_warm))
    diff_cold = np.sum(np.abs(transformation_cold_plus_one -
                              transformation_cold))
    assert diff_warm < 3.0, ("Transformer changed significantly after one "
                             "iteration even though it was warm-started.")

    assert diff_cold > diff_warm, ("Cold-started transformer changed less "
                                   "significantly than warm-started "
                                   "transformer after one iteration.")
def test_warm_start_effectiveness():
    # A 1-iteration second fit on same data should give almost same result
    # with warm starting, and quite different result without warm starting.

    X, y = make_classification(n_samples=30, n_features=5,
                               n_redundant=0, random_state=0)
    n_iter = 10

    nca_warm = NeighborhoodComponentsAnalysis(warm_start=True,
                                              max_iter=n_iter, random_state=0)
    nca_warm.fit(X, y)
    transformation_warm = nca_warm.components_
    nca_warm.max_iter = 1
    nca_warm.fit(X, y)
    transformation_warm_plus_one = nca_warm.components_

    nca_cold = NeighborhoodComponentsAnalysis(warm_start=False,
                                              max_iter=n_iter, random_state=0)
    nca_cold.fit(X, y)
    transformation_cold = nca_cold.components_
    nca_cold.max_iter = 1
    nca_cold.fit(X, y)
    transformation_cold_plus_one = nca_cold.components_

    diff_warm = np.sum(np.abs(transformation_warm_plus_one -
                              transformation_warm))
    diff_cold = np.sum(np.abs(transformation_cold_plus_one -
                              transformation_cold))

    assert_true(diff_warm < 2.0,
                "Transformer changed significantly after one iteration even "
                "though it was warm-started.")

    assert_true(diff_cold > diff_warm,
                "Cold-started transformer changed less significantly than "
                "warm-started transformer after one iteration.")