def test_clustering(self):
        vec10 = Vectors(get_shared_data("chene_sessile.vec"))
        vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")

        assert vec15

        matrix10 = Compare(vec15, VectorDistance("N", "N", "N"))

        c1 = Clustering(matrix10, "Partition", 3, Prototypes=[1, 3, 12], Algorithm="Divisive")
        c1_bis = Clustering(matrix10, "Partition", 3, Prototypes=[1, 3, 12], Algorithm="Ordering")

        c2 = Clustering(matrix10, "Hierarchy", Algorithm="Agglomerative")
        c3 = Clustering(matrix10, "Hierarchy", Algorithm="Divisive")
        c4 = Clustering(matrix10, "Hierarchy", Algorithm="Ordering")

        assert c1
        assert c2
        assert c3
        assert c4
        assert ToDistanceMatrix(c1)

        # first argument is the Algorithm
        #  * 0 for agglomerative
        #  * 1 for divisive
        # Second argument is the criterion
        #  * 2 for averaging

        # those 3 tests works on my laptop (TC, April 2009) but not on buildbot
        # assert c2 == matrix10.hierarchical_clustering(0, 2, "test", "test")
        # assert c3 == matrix10.hierarchical_clustering(1, 1, "test", "test")
        # assert c4 == matrix10.hierarchical_clustering(2, 0, "test", "test")

        # 1 for initialisation and 1 for divisive
        assert str(c1) == str(matrix10.partitioning_prototype(3, [1, 3, 12], 1, 1))
        assert str(c1_bis) == str(matrix10.partitioning_prototype(3, [1, 3, 12], 1, 2))
 def build_data(self):
     vec10 = Vectors(get_shared_data("chene_sessile.vec"))
     vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")
     matrix10 = Compare(vec15, VectorDistance("N", "N", "N"))
     c1 = Clustering(matrix10, "Partition", 3, Prototypes=[1, 3, 12],
                     Algorithm="Divisive")
     return ToDistanceMatrix(c1)
Beispiel #3
0
 def test_comparison_wrong_argument_1(self):
     meri1 = self.meri1
     try:
         Compare("N")
         assert False
     except NotImplementedError:
         assert True
Beispiel #4
0
 def build_data(self):
     vec10 = Vectors(get_shared_data("chene_sessile.vec"))
     vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")
     matrix10 = Compare(vec15, VectorDistance("N", "N", "N"))
     assert 138 == matrix10.nb_row
     assert 138 == matrix10.nb_column
     return matrix10
    def test_clustering(self):
        vec10 = Vectors(get_shared_data("chene_sessile.vec"))
        vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")

        assert vec15

        matrix10 = Compare(vec15, VectorDistance("N", "N", "N"))

        c1 = Clustering(matrix10,
                        "Partition",
                        3,
                        Prototypes=[1, 3, 12],
                        Algorithm="Divisive")
        c1_bis = Clustering(matrix10,
                            "Partition",
                            3,
                            Prototypes=[1, 3, 12],
                            Algorithm="Ordering")

        c2 = Clustering(matrix10, "Hierarchy", Algorithm="Agglomerative")
        c3 = Clustering(matrix10, "Hierarchy", Algorithm="Divisive")
        c4 = Clustering(matrix10, "Hierarchy", Algorithm="Ordering")

        assert c1
        assert c2
        assert c3
        assert c4
        assert ToDistanceMatrix(c1)

        # first argument is the Algorithm
        #  * 0 for agglomerative
        #  * 1 for divisive
        # Second argument is the criterion
        #  * 2 for averaging

        #those 3 tests works on my laptop (TC, April 2009) but not on buildbot
        #assert c2 == matrix10.hierarchical_clustering(0, 2, "test", "test")
        #assert c3 == matrix10.hierarchical_clustering(1, 1, "test", "test")
        #assert c4 == matrix10.hierarchical_clustering(2, 0, "test", "test")

        # 1 for initialisation and 1 for divisive
        assert str(c1) == \
            str(matrix10.partitioning_prototype(3, [1, 3, 12], 1, 1))
        assert str(c1_bis) == \
            str(matrix10.partitioning_prototype(3, [1, 3, 12], 1, 2))
Beispiel #6
0
    def test_comparison_histo_filename(self):
        meri1 = self.meri1
        meri2 = self.meri2
        meri3 = self.meri3

        _c1 = Compare(meri1, meri2, meri3, 'N', Filename='result.dat')
        os.remove('result.dat')
        _c1 = Compare(meri1, meri2, meri3, 'N', Filename='result.dat', \
                     Format='ASCII')
        os.remove('result.dat')
        _c1 = Compare(meri1, meri2, meri3, 'N', Filename='result.dat', \
                     Format='SpreadSheet')
        os.remove('result.dat')
        try:
            _c1 = Compare(meri1, meri2, meri3, 'N', Filename='result.dat', \
                         Format='badname')
            assert False
        except ValueError:
            assert True
Beispiel #7
0
    def test_compare_vectors(self):

        vec10 = Vectors(get_shared_data("chene_sessile.vec"))
        vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")
        assert vec15

        matrix10 = Compare(vec15, VectorDistance("N", "N", "N"))
        assert matrix10
        assert str(vec15.compare(VectorDistance("N", "N", "N"),
                                 True)) == str(matrix10)
Beispiel #8
0
    def test_comparison_histo(self):
        # check both the long and short argument (O, S, N)
        meri1 = self.meri1
        meri2 = self.meri2
        meri3 = self.meri3

        c1 = Compare(meri1, meri2, meri3, 'N')
        c2 = Compare(meri1, meri2, meri3, 'O')
        c3 = Compare(meri1, meri2, meri3, 'S')

        c1_long = Compare(meri1, meri2, meri3, 'NUMERIC')
        c2_long = Compare(meri1, meri2, meri3, 'ORDINAL')
        c3_long = Compare(meri1, meri2, meri3, 'SYMBOLIC')

        assert c1 == c1_long
        assert c2 == c2_long
        assert c3 == c3_long

        assert meri1.compare_histo(meri2, meri3, "N") == c1
        assert meri1.compare_histo(meri2, meri3, "S") == c3
        assert meri1.compare_histo(meri2, meri3, "O") == c2

        assert meri1.compare_histo(meri2, meri3, "N") == c1_long
        assert meri1.compare_histo(meri2, meri3, "S") == c3_long
        assert meri1.compare_histo(meri2, meri3, "O") == c2_long
def test():
    meri1 = Histogram(get_shared_data("meri1.his"))
    meri2 = Histogram(get_shared_data("meri2.his"))
    meri3 = Histogram(get_shared_data("meri3.his"))
    meri4 = Histogram(get_shared_data("meri4.his"))
    meri5 = Histogram(get_shared_data("meri5.his"))

    Plot(meri1, meri2, meri3, meri4, meri5)
    Compare(meri1, meri2, meri3, meri4, meri5, "N")

    ComparisonTest("F", meri1, meri2)
    ComparisonTest("T", meri1, meri2)
    ComparisonTest("W", meri1, meri2)

    ComparisonTest("F", meri1, meri3)
    ComparisonTest("T", meri1, meri3)
    ComparisonTest("W", meri1, meri3)

    # Estimation of a mixture of two distributions assuming a first
    # sub-population of GUs made only of a preformed part and a second
    # sub-population made of both a preformed part and a neoformed part

    _mixt1 = Estimate(meri2, "MIXTURE", "B", "B")

    meri = Merge(meri1, meri2, meri3, meri4, meri5)

    #model selection approach: estimation of both the mixture parameters and
    # the number of components

    mixt2 = Estimate(meri,
                     "MIXTURE",
                     "B",
                     "B",
                     "B",
                     "B",
                     NbComponent="Estimated")
    mixt2 = Estimate(meri, "MIXTURE", "NB", "NB")
    Plot(mixt2)
    Plot(ExtractDistribution(mixt2, "Mixture"))

    print type(ExtractDistribution(mixt2, "Component", 1))

    Plot(ExtractDistribution(mixt2, "Component", 1),
         ExtractDistribution(mixt2, "Component", 2))
    Display(mixt2)

    _mixt_data = ExtractData(mixt2)

    dist5 = Estimate(meri5, "BINOMIAL")
    Display(dist5, Detail=2)
    Plot(dist5)

    histo5 = Simulate(dist5, 100)
    Display(histo5, Detail=2)
    Plot(histo5)

    peup1 = Histogram(get_shared_data("peup1.his"))
    peup2 = Histogram(get_shared_data("peup2.his"))
    peup3 = Histogram(get_shared_data("peup3.his"))
    peup4 = Histogram(get_shared_data("peup4.his"))
    peup5 = Histogram(get_shared_data("peup5.his"))
    peup6 = Histogram(get_shared_data("peup6.his"))

    _mixt10 = Estimate(peup2,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")

    peup = Merge(peup1, peup2, peup3, peup4, peup5, peup6)

    _histo1 = Shift(peup, -1)
    _histo2 = Cluster(peup, "Information", 0.8)
    _histo3 = Cluster(peup, "Step", 10)
    histo4 = Cluster(peup, "Limit", [13, 24])
    Display(histo4, Detail=2)
    Plot(histo4)

    _mixt11 = Estimate(peup,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")
    _mixt11 = Estimate(peup, "MIXTURE", "B", "NB")
def test():
    vec10 = Vectors("data/chene_sessile.vec")
    Plot(vec10)
    # plot of the pointwise averages
    Plot(Regression(vec10, "MovingAverage", 1, 2, [1]))

    vec95 = ValueSelect(vec10, 1, 1995)
    vec96 = ValueSelect(vec10, 1, 1996)
    vec97 = ValueSelect(vec10, 1, 1997)

    VarianceAnalysis(vec10, 1, 2, "N")
    Compare(ExtractHistogram(vec95, 2), ExtractHistogram(vec96, 2), \
            ExtractHistogram(vec95, 2), "N")


    Plot(ExtractHistogram(vec95, 2), ExtractHistogram(vec96, 2), \
         ExtractHistogram(vec97, 2))

    ContingencyTable(vec10, 1, 4)

    # one-way variance analysis based on ranks
    VarianceAnalysis(vec10, 1, 4, "O")
    Compare(ExtractHistogram(vec95, 4), ExtractHistogram(vec96, 4), \
            ExtractHistogram(vec95, 4), "O")

    # looks like it is not plotted
    Plot(ExtractHistogram(vec95, 4), ExtractHistogram(vec96, 4),
         ExtractHistogram(vec97, 4))
    Plot(ExtractHistogram(vec95, 5), ExtractHistogram(vec96, 5),
         ExtractHistogram(vec97, 5))
    Plot(ExtractHistogram(vec95, 6), ExtractHistogram(vec96, 6),
         ExtractHistogram(vec97, 6))

    vec11 = ValueSelect(vec10, 4, 1)
    vec12 = ValueSelect(vec10, 4, 2)
    vec13 = ValueSelect(vec10, 4, 3, 4)

    Plot(ExtractHistogram(vec11, 2), ExtractHistogram(vec12, 2),
         ExtractHistogram(vec13, 2))
    Plot(ExtractHistogram(vec11, 5), ExtractHistogram(vec12, 5),
         ExtractHistogram(vec13, 5))

    mixt20 = Estimate(ExtractHistogram(vec10, 2), \
                      "MIXTURE", "NB", "NB", "NB", "NB", \
                      NbComponent="Estimated")
    Display(mixt20)

    Plot(mixt20)
    Plot(ExtractDistribution(mixt20, "Mixture"))

    _mixt21 = Estimate(ExtractHistogram(vec10, 5), \
                       "MIXTURE", "NB", "NB", "NB", "NB", \
                       NbComponent="Estimated")

    vec9596 = ValueSelect(vec10, 1, 1995, 1996)

    Plot(ExtractHistogram(ValueSelect(vec9596, 4, 1), 6), \
         ExtractHistogram(ValueSelect(vec9596, 4, 2), 6), \
         ExtractHistogram(ValueSelect(vec9596, 4, 3, 4), 6))

    # linear regression
    regress10 = Regression(vec10, "Linear", 5, 2)
    Display(regress10)
    Plot(regress10)

    # nonparametric regression (loess smoother)

    _regress11 = Regression(vec10, "NearestNeighbors", 5, 2, 0.3)
    _regress12 = Regression(vec9596, "Linear", 5, 6)
    _regress13 = Regression(vec9596, "NearestNeighbors", 5, 6, 0.5)

    _vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")
def test():
    """Mixture tests from exploratory.aml
    #
    #  Frequency distributions
    #
    #  Objective: Analyzing the number of nodes of growth units in selected architectural
    #                 position considering the respective roles of preformation and neoformation,
    #
    #  Methods: comparison tests, one-way variance analysis,
    #           estimation of finite mixture of distributions.
    #
    #  Wild cherry tree: number of nodes per growth unit (GU)
    #
    #  Data: Dominique Fournier
    #
    #  meri1.his: order 1,
    #  meri1.his: order 2,
    #  meri1.his: order 3, GU 1,
    #  meri1.his: order 3, GU 2,
    #  meri5.his: short shoots.
    #
    #
    #  Poplar: number of nodes per growth unit
    #
    #  Data: Yves Caraglio and Herve Rey
    #
    #  peup1.his: order 2,
    #  peup2.his: order 3,
    #  peup3.his: order 4,
    #  peup4.his: order 5,
    #  peup5.his: order 3, GU 4,
    #  peup6.his: order 3, acrotony.
    #
    #########################################################################
    """

    plot.DISABLE_PLOT = DISABLE_PLOT
    meri1 = Histogram(get_shared_data("meri1.his"))
    meri2 = Histogram(get_shared_data("meri2.his"))
    meri3 = Histogram(get_shared_data("meri3.his"))
    meri4 = Histogram(get_shared_data("meri4.his"))
    meri5 = Histogram(get_shared_data("meri5.his"))

    Plot(meri1, meri2, meri3, meri4, meri5)
    Compare(meri1, meri2, meri3, meri4, meri5, "N")

    ComparisonTest("F", meri1, meri2)
    ComparisonTest("T", meri1, meri2)
    ComparisonTest("W", meri1, meri2)

    ComparisonTest("F", meri1, meri3)
    ComparisonTest("T", meri1, meri3)
    ComparisonTest("W", meri1, meri3)

    # Estimation of a mixture of two distributions assuming a first
    # sub-population of GUs made only of a preformed part and a second
    # sub-population made of both a preformed part and a neoformed part

    _mixt1 = Estimate(meri2, "MIXTURE", "B", "B")

    meri = Merge(meri1, meri2, meri3, meri4, meri5)

    # model selection approach: estimation of both the mixture parameters and
    # the number of components"""

    mixt2 = Estimate(meri,
                     "MIXTURE",
                     "B",
                     "B",
                     "B",
                     "B",
                     NbComponent="Estimated")
    mixt2 = Estimate(meri, "MIXTURE", "NB", "NB")
    Plot(mixt2)
    Plot(ExtractDistribution(mixt2, "Mixture"))
    Plot(ExtractDistribution(mixt2, "Component", 1),
         ExtractDistribution(mixt2, "Component", 2))
    Display(mixt2)

    _mixt_data = ExtractData(mixt2)

    dist5 = Estimate(meri5, "BINOMIAL")
    Display(dist5, Detail=2)
    Plot(dist5)

    histo5 = Simulate(dist5, 100)
    Display(histo5, Detail=2)
    Plot(histo5)

    peup1 = Histogram(get_shared_data("peup1.his"))
    peup2 = Histogram(get_shared_data("peup2.his"))
    peup3 = Histogram(get_shared_data("peup3.his"))
    peup4 = Histogram(get_shared_data("peup4.his"))
    peup5 = Histogram(get_shared_data("peup5.his"))
    peup6 = Histogram(get_shared_data("peup6.his"))

    _mixt10 = Estimate(peup2,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")

    peup = Merge(peup1, peup2, peup3, peup4, peup5, peup6)

    _histo1 = Shift(peup, -1)
    _histo2 = Cluster(peup, "Information", 0.8)
    _histo3 = Cluster(peup, "Step", 10)
    histo4 = Cluster(peup, "Limit", [13, 24])
    Display(histo4, Detail=2)
    Plot(histo4)

    _mixt11 = Estimate(peup,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")

    _mixt11 = Estimate(peup, "MIXTURE", "B", "NB")