Пример #1
0
  public void testWriteDB() throws SQLException {
    try {
      Class.forName("com.mysql.jdbc.Driver").newInstance();
    } catch (Exception ex) {
      System.err.println("Could not initiate JDBC driver.");
      ex.printStackTrace();
    }

    try {
      Connection conn =
          DriverManager.getConnection(
              "jdbc:mysql://localhost:3306/wittcarl_recurrence_plot_clustering?user=root&password=mysql");
      TimeSeriesGenerator tsg = new TimeSeriesGenerator(1, 1000, "lorenz");
      double[][] trajectory = tsg.lorenz_standard[0];
      DRQA drqa = new DRQA(trajectory, trajectory, 0.05);
      drqa.computeRQA(2, 2, 2);
      drqa.writeResultDB(
          "IN_MEMORY",
          "lorenz",
          DRQA.EmbeddingMethod.ORIGINAL_TRAJECTORY.ordinal(),
          3,
          -1,
          trajectory[0].length,
          DRQA.LMinMethod.L_MIN_FIX.ordinal(),
          2,
          0,
          conn);

    } catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
    }
  }
Пример #2
0
  public void testCompress() {

    SparseDoubleMatrix2D matrix =
        new SparseDoubleMatrix2D(
            new double[][] {
              new double[] {0, 0, 0, 0}, // 0 0 0 0
              new double[] {0, 1, 10, 100}, // 0 0 1 2
              new double[] {0, 100000, 100, 1} // 0 3 2 0
            });

    for (short[] row : DRQA.compress_hist(matrix)) {
      System.out.println(Arrays.toString(row));
    }
  }
Пример #3
0
  /** Tests the computation of line length histogram descriptors. */
  public void testHistogramDescriptors() {

    DRQA drqa = new DRQA(trajectory, eps);
    drqa.computeRQA(10, 10, 10); // should not change the result.
    drqa.computeRQA(2, 2, 2);

    Map<DRQA.HistogramStatistic, Double>
        expected_diagonal_rqa = new HashMap<DRQA.HistogramStatistic, Double>(),
        expected_vertical_rqa = new HashMap<DRQA.HistogramStatistic, Double>(),
        expected_white_vertical_rqa = new HashMap<DRQA.HistogramStatistic, Double>(),
        expected_orthogonal_rqa = new HashMap<DRQA.HistogramStatistic, Double>(),
        expected_diagonal_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>(),
        expected_vertical_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>(),
        expected_white_vertical_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>(),
        expected_orthogonal_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>();

    expected_diagonal_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.6365141682948128);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 0.6666666666666666);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.MAX, 14.0);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.2727272727272727);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.ENTROPY, 1.0986122886681096);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.6060606060606061);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.8333333333333334);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.07142857142857142);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 3.0 / 7.0);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.AVERAGE, 6.666666666666666);
    expected_diagonal_rqa.put(DRQA.HistogramStatistic.MEDIAN, 4.);

    expected_vertical_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 1.0);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.MAX, 3.0);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.7115384615384616);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.ENTROPY, 0.5402041423888608);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.5576923076923077);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.0);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.3333333333333333);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.AVERAGE, 2.230769230769231);
    expected_vertical_rqa.put(DRQA.HistogramStatistic.MEDIAN, 2.);

    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 1.3296613488547582);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 0.65);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.MAX, 7.0);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.6041666666666666);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.ENTROPY, 1.6470013963439956);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 1.0);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.16666666666666666);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.14285714285714285);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 2.0 / 4.0);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.AVERAGE, 3.5999999999999996);
    expected_white_vertical_rqa.put(DRQA.HistogramStatistic.MEDIAN, 3.);

    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 0.5);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.MAX, 5.0);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.42105263157894735);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.ENTROPY, 0.6931471805599453);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.42105263157894735);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.6666666666666666);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.2);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.AVERAGE, 4.0);
    expected_orthogonal_rqa.put(DRQA.HistogramStatistic.MEDIAN, 3.);

    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.SORTEDNESS, 1.0);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.MAX, 2.0);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.DEFINITENESS, 0.2727272727272727);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 0.0);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.6060606060606061);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.SPARSENESS, 0.0);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.5);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 2.0);
    expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 2.);

    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.SORTEDNESS, 1.0);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.MAX, 3.0);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.DEFINITENESS, 0.7115384615384616);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 0.6615632381579821);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.5576923076923077);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.SPARSENESS, 0.0);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.3333333333333333);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 2.375);
    expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 2.);

    expected_white_vertical_rqa_definite.put(
        DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 1.3296613488547582);
    expected_white_vertical_rqa_definite.put(
        DRQA.HistogramStatistic.SORTEDNESS, 0.6363636363636364);
    expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.MAX, 7.0);
    expected_white_vertical_rqa_definite.put(
        DRQA.HistogramStatistic.DEFINITENESS, 0.6041666666666666);
    expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 1.5196682491027627);
    expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 1.0);
    expected_white_vertical_rqa_definite.put(
        DRQA.HistogramStatistic.SPARSENESS, 0.3333333333333333);
    expected_white_vertical_rqa_definite.put(
        DRQA.HistogramStatistic.INVERSE_MAX, 0.14285714285714285);
    expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 0.5);
    expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 3.954545454545454);
    expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 3.);

    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.SORTEDNESS, 0.0);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.MAX, 3.0);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.DEFINITENESS, 0.42105263157894735);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 0.0);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.42105263157894735);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.SPARSENESS, 1.0);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.3333333333333333);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 3.0);
    expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 3.);

    assertEquals(expected_diagonal_rqa, drqa.diagonal_rqa);
    assertEquals(expected_vertical_rqa, drqa.vertical_rqa);
    assertEquals(expected_white_vertical_rqa, drqa.white_vertical_rqa);
    assertEquals(expected_orthogonal_rqa, drqa.orthogonal_rqa);
    assertEquals(expected_diagonal_rqa_definite, drqa.diagonal_rqa_definite);
    assertEquals(expected_vertical_rqa_definite, drqa.vertical_rqa_definite);
    assertEquals(expected_white_vertical_rqa_definite, drqa.white_vertical_rqa_definite);
    assertEquals(expected_orthogonal_rqa_definite, drqa.orthogonal_rqa_definite);

    assertEquals(Math.max(2, Math.round(37.0 / 26.)), drqa.estimate_l_min(), 1e-10);
  }