NOTE:

  1. All the files that are generated by programs are in folder output/

ATTRIBUTES:

  1. N is total number of points to be generated : TRAINING + TEST
  2. r is no_of_training_points/no_of_total_points and 0 < r < 1
  3. M is complexity of model
  4. L is LAMBHDA used in ridge regression, provide x100 value of L as it is divided by 100 in program
  5. m1 lower limit of M
  6. m2 upper limit of M
  7. n1 lower limit of N
  8. n2 upper limit of N
  9. l1 lower limit of L
  10. l2 upper limit of L

OUTPUT FILES:

  1. test.txt - contains test points - format: X Y \n
  2. training.txt - contains training points - format: X Y \n
  3. varyM.txt - contains M, training error, test error - format: M train_error test_error
  4. varyL.txt - contains L, training error, test error - format: L train_error test_error
  5. varyN.txt - contains N, training error, test error - format: N train_error test_error
  6. trainingPoints(, )
    • shows graph of original function with training points
  7. simpleModel(, , )
    • shows graph of original function with estimated function with training points
  8. regressionModel(, , , )
    • shows graph of original function with estimated function with training points
  9. M_vs_eRMS() - shows graph of M vs training_error and test_error
  10. N_vs_eRMS() - shows graph of N vs training_error and test_error
  11. L_vs_eRMS() - shows graph of L vs training_error and test_error

HOW TO RUN:

  1. To run the full model with random points generation:

    make N=30 r=0.8 M=10 full

    output: test.txt train.txt simpleModel().png trainingPoints().png

  2. To run the full model with ridge regression and random points generation:

    make N=30 r=0.8 M=10 L=10 fullReg

    output: test.txt train.txt regressionModel() trainingPoints()

  3. To generate random points

    make N=30 r=0.8 generate

    output: test.txt train.txt trainingPoints().png

  4. To run Simple Model

    make M=9 model

    output: simpleModel().png

  5. To run Model with Regression

    make M=9 L=0.1 regression

    output: regressionModel().png

  6. To run simple model by varying M and keeping N constant

    make m1=1 m2=20 varyM

    output: simpleModel().png varyM.txt M_vs_eRMS().png

  7. To run model with ridge regression by varying M and keeping N constant

    make m1=1 m2=20 L=10 varyMReg

    output: regressionModel().png varyM.txt M_vs_eRMS().png

  8. To run model with ridge regression by varying lambhda

    make M=9 l1=1 l2=10 varyLReg

    output: regressionModel().png varyL.txt L_vs_eRMS().png

  9. To run simple model by varying N keeping M constant

    make M=9 r=0.8 n1=5 n2=10 varyN

    output: trainVN.txt testVN.txt simpleModel().png varyN.txt N_vs_eRMS().png

  10. To run simple model by varying N keeping M constant

    make M=9 r=0.8 L=20 n1=5 n2=10 varyNReg

    output: trainVN.txt testVN.txt regressionModel().png varyN.txt N_vs_eRMS().png