diff --git a/.gitignore b/.gitignore
index 82f9275..e259a2a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,11 +130,11 @@ ENV/
env.bak/
venv.bak/
-# Spyder project settings
+# Spyder project params
.spyderproject
.spyproject
-# Rope project settings
+# Rope project params
.ropeproject
# mkdocs documentation
@@ -159,4 +159,4 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
-#.idea/
+#.idea/
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..c3f502a
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 디폴트 무시된 파일
+/shelf/
+/workspace.xml
+# 에디터 기반 HTTP 클라이언트 요청
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/README.md b/README.md
index f746e56..8c3c636 100644
--- a/README.md
+++ b/README.md
@@ -1,29 +1,133 @@
# Project 2
-Select one of the following two options:
+### Implemented model
+* generic k-fold cross-validation and bootstrapping model selection methods.
-## Boosting Trees
+### Creator Description
+- Name: Haeun Suh
+- HawkID: A20542585
+- Class: CS584-04 Machine Learning(Instructor: Steve Avsec)
+- Email: hsuh7@hawk.iit.edu
+
+#### [Question 1] Do your cross-validation and bootstrapping model selectors agree with a simpler model selector like AIC in simple cases (like linear regression)?
+- For simple datasets, it was observed that cross-validation and bootstrapping models generally reach the same conclusions as simpler methods like AIC.
+- However, on more complex datasets, particularly those with random elements or multi-collinearity, the results were somewhat inconsistent.
+- Below is a comparison of the average metric scores from cross-validation and bootstrapping with AIC scores for the same tests.
+
+##### Size test:
+- Model: Simple Linear Regression
+- Metrics: R^2
+- [K-fold] k = 5, shuffling = Yes
+- [bootstrapping] sampling size: 100, epochs: 100
+- [Configuration file] /params/test_size.json
+` `
+
+
-Implement the gradient-boosting tree algorithm (with the usual fit-predict interface) as described in Sections 10.9-10.10 of Elements of Statistical Learning (2nd Edition). Answer the questions below as you did for Project 1.
+- AIC tends to increase proportionally with the dataset size. However, the average metric scores for cross-validation and bootstrapping are relatively irregular, with gentler slopes in their trend lines, regardless of the dataset size.
+- The k-value applied to the model may have contributed to an underestimation of the dataset size. As a result, these methods do not reach the same conclusions as AIC.
+- Below is another test to evaluate the impact of correlation.
+
+##### Correlation test:
+- Model: Simple Linear Regression
+- Metrics: R^2
+- [K-fold] k = 5, shuffling = Yes
+- [bootstrapping] sampling size: 100, epochs: 100
+- [Configuration file] params/test_correlation.json
+` `
+
+
-Put your README below. Answer the following questions.
+- Under multi-collinearity, the trends for cross-validation and bootstrapping models were strong. However, AIC did not exhibit a similarly strong trend and showed artificially high performance under the assumption of a perfect correlation coefficient of 1.
+- The two models developed do not yield the same conclusions as AIC. In fact, the conclusions were often contradictory (e.g., lower scores being better for AIC).
+- In datasets with multi-collinearity or heavily biased structures, cross-validation and bootstrapping model selectors may not align with simpler model selectors like AIC.
+
+#### [Question 2] In what cases might the methods you've written fail or give incorrect or undesirable results?
+- According to the test results mentioned above, there is a high possibility of incorrect conclusions if the test data is too large, has multi-collinearity, or has a biased structure.
+- In particular, according to the test results of testing multiple factors together as shown below, performance fluctuations were most severe when multi-collinearity existed.
+
+##### Multi-factor test:
+- Model: Simple Linear Regression
+- Metrics: R^2
+- [K-fold] k = 5, shuffling = Yes
+- [bootstrapping] sampling size: 100, epochs: 100
+- [Configuration file] /params/test_multi.json
+` `
+
+
-* What does the model you have implemented do and when should it be used?
-* How did you test your model to determine if it is working reasonably correctly?
-* What parameters have you exposed to users of your implementation in order to tune performance? (Also perhaps provide some basic usage examples.)
-* Are there specific inputs that your implementation has trouble with? Given more time, could you work around these or is it fundamental?
+- When the data was predictable but noisy, the cross-validation and bootstrapping models performed better than AIC. However, in more complex scenarios, such as with multi-collinearity or data bias, both models exhibited unstable metric scores.
+- Since both methods aim to equalize performance across folds or samples, they may not be appropriate indicators for model selection if the data distribution is highly unstable.
+- In summary, if the data distribution is overly complex and biased, the two developed models may not be suitable for model selection.
+
+#### [Question 3] What could you implement given more time to mitigate these cases or help users of your methods?
+- To address these limitations, additional improvements could include:
+> - Adding regularization techniques (e.g., Ridge, Lasso, ElasticNet) to handle multi-collinearity.
+> - Implementing preprocessing methods, such as Principal Component Analysis (PCA), for datasets with high correlation coefficients.
+> - Providing automated warnings or recommendations for datasets with bias, multi-collinearity, or extreme size imbalances.
-## Model Selection
+#### [Question 4] What parameters have you exposed to your users in order to use your model selectors.
+- For user convenience, all parameter settings, including data generation conditions, are included in:
+> params/
+- When running the mail script test.py, the user can specify the desired settings by selecting the json format settings file that exists in the location.
+- Regarding parameter settings, specifications are provided in 'params/param_example.txt' and sample images are as follows.
+` `
+
-Implement generic k-fold cross-validation and bootstrapping model selection methods.
+- However, the parameters related to the actual model are limited and the specifications are as follows.
+>> - "test":
+>> - "general":
+>> - "model": "LinearRegression", # [Options] "LinearRegression" (default), "LogisticRegression".
+>> - "metric": "MSE" # [Options] "MSE" (default), "Accuracy score", "R2".
+>> - "k_fold_cross_validation":
+>> - "k": [5], # Number of folds for k-fold cross-validation.
+>> - "shuffle": true # Whether to shuffle the data before splitting into folds.
+>> - "bootstrapping":
+>> - "size": [50], # The size of the training dataset for each bootstrap sample.
+>> - "epochs": [100] # The number of bootstrapping iterations to perform.
-In your README, answer the following questions:
+- Regarding k-fold cross validation, the direct variables are as follows.
+>> - model: The statistical model to test.
+>> - metric: The metric function to measure the model's performance.
+>> - X: The feature matrix for training.
+>> - y: The target labels for training.
+>> - k: The number of folds to divide the data into.
+>> - shuffle: Whether to shuffle the data before splitting into folds.
-* Do your cross-validation and bootstrapping model selectors agree with a simpler model selector like AIC in simple cases (like linear regression)?
-* In what cases might the methods you've written fail or give incorrect or undesirable results?
-* What could you implement given more time to mitigate these cases or help users of your methods?
-* What parameters have you exposed to your users in order to use your model selectors.
+- Regarding Bootstrapping model, the direct variables are as follows.
+>> - model: The statistical model to test.
+>> - metric: The metric function to measure the model's performance.
+>> - X: The feature matrix for training.
+>> - y: The target labels for training.
+>> - s: The size of the training dataset for each bootstrap sample.
+>> - epochs: The number of bootstrap iterations to perform.
-See sections 7.10-7.11 of Elements of Statistical Learning and the lecture notes. Pay particular attention to Section 7.10.2.
+#### Additional Notes
+Since the description of each function and execution is written in comments, only points to keep in mind when executing are explained in detail:
+- You can refer to the guidelines in 'params/param_example.txt' or run one of several pre-written configuration files.
+ - The simplest and easiest to modify file is 'param_single.json'. Use this file to test and verify execution for the program.
+- Visualization is only enabled for some items and is only supported for 'generate' type datasets, including file creation.
+- Since the purpose of this task is to implement a model related to model selection, the learning model to be evaluated is a linear model from scikit-learn.
+- The data folder contains files that you can simply experiment with running. The name, description, and source of each file are included in dataSource.txt.
-As usual, above-and-beyond efforts will be considered for bonus points.
+#### Sample execution
+* To directly execute only the implemented model, you can call the relevant function in modelSelection.py.
+>> from modelSelection import k_fold_cross_validation, bootstrapping
+1. Adjust configuration file. Refer to 'params/param_example.txt' to set up
+ * Alternatively, you can choose one of the settings in the params folder. See param_list.csv for a brief introduction to those settings.
+2. Execute 'test.py' at the prompt(at that script location) and run it by entering the path to the file. (The example used param_single.json.)
+ * Sample code as below:
+ >> python test.py ./params/param_single.json
+ * Sample execution image as below:
+
+
+3. (Optional) Another execution for size testing as batch job
+ * Sample code as below:
+ >> python test.py ./params/test_size.json
+ * Sample execution image as below:
+
+
+
+ * Sample execution image as below:
+
+
diff --git a/data/IRIS.csv b/data/IRIS.csv
new file mode 100644
index 0000000..2328736
--- /dev/null
+++ b/data/IRIS.csv
@@ -0,0 +1,151 @@
+sepal_length,sepal_width,petal_length,petal_width,species
+5.1,3.5,1.4,0.2,0
+4.9,3,1.4,0.2,0
+4.7,3.2,1.3,0.2,0
+4.6,3.1,1.5,0.2,0
+5,3.6,1.4,0.2,0
+5.4,3.9,1.7,0.4,0
+4.6,3.4,1.4,0.3,0
+5,3.4,1.5,0.2,0
+4.4,2.9,1.4,0.2,0
+4.9,3.1,1.5,0.1,0
+5.4,3.7,1.5,0.2,0
+4.8,3.4,1.6,0.2,0
+4.8,3,1.4,0.1,0
+4.3,3,1.1,0.1,0
+5.8,4,1.2,0.2,0
+5.7,4.4,1.5,0.4,0
+5.4,3.9,1.3,0.4,0
+5.1,3.5,1.4,0.3,0
+5.7,3.8,1.7,0.3,0
+5.1,3.8,1.5,0.3,0
+5.4,3.4,1.7,0.2,0
+5.1,3.7,1.5,0.4,0
+4.6,3.6,1,0.2,0
+5.1,3.3,1.7,0.5,0
+4.8,3.4,1.9,0.2,0
+5,3,1.6,0.2,0
+5,3.4,1.6,0.4,0
+5.2,3.5,1.5,0.2,0
+5.2,3.4,1.4,0.2,0
+4.7,3.2,1.6,0.2,0
+4.8,3.1,1.6,0.2,0
+5.4,3.4,1.5,0.4,0
+5.2,4.1,1.5,0.1,0
+5.5,4.2,1.4,0.2,0
+4.9,3.1,1.5,0.1,0
+5,3.2,1.2,0.2,0
+5.5,3.5,1.3,0.2,0
+4.9,3.1,1.5,0.1,0
+4.4,3,1.3,0.2,0
+5.1,3.4,1.5,0.2,0
+5,3.5,1.3,0.3,0
+4.5,2.3,1.3,0.3,0
+4.4,3.2,1.3,0.2,0
+5,3.5,1.6,0.6,0
+5.1,3.8,1.9,0.4,0
+4.8,3,1.4,0.3,0
+5.1,3.8,1.6,0.2,0
+4.6,3.2,1.4,0.2,0
+5.3,3.7,1.5,0.2,0
+5,3.3,1.4,0.2,0
+7,3.2,4.7,1.4,1
+6.4,3.2,4.5,1.5,1
+6.9,3.1,4.9,1.5,1
+5.5,2.3,4,1.3,1
+6.5,2.8,4.6,1.5,1
+5.7,2.8,4.5,1.3,1
+6.3,3.3,4.7,1.6,1
+4.9,2.4,3.3,1,1
+6.6,2.9,4.6,1.3,1
+5.2,2.7,3.9,1.4,1
+5,2,3.5,1,1
+5.9,3,4.2,1.5,1
+6,2.2,4,1,1
+6.1,2.9,4.7,1.4,1
+5.6,2.9,3.6,1.3,1
+6.7,3.1,4.4,1.4,1
+5.6,3,4.5,1.5,1
+5.8,2.7,4.1,1,1
+6.2,2.2,4.5,1.5,1
+5.6,2.5,3.9,1.1,1
+5.9,3.2,4.8,1.8,1
+6.1,2.8,4,1.3,1
+6.3,2.5,4.9,1.5,1
+6.1,2.8,4.7,1.2,1
+6.4,2.9,4.3,1.3,1
+6.6,3,4.4,1.4,1
+6.8,2.8,4.8,1.4,1
+6.7,3,5,1.7,1
+6,2.9,4.5,1.5,1
+5.7,2.6,3.5,1,1
+5.5,2.4,3.8,1.1,1
+5.5,2.4,3.7,1,1
+5.8,2.7,3.9,1.2,1
+6,2.7,5.1,1.6,1
+5.4,3,4.5,1.5,1
+6,3.4,4.5,1.6,1
+6.7,3.1,4.7,1.5,1
+6.3,2.3,4.4,1.3,1
+5.6,3,4.1,1.3,1
+5.5,2.5,4,1.3,1
+5.5,2.6,4.4,1.2,1
+6.1,3,4.6,1.4,1
+5.8,2.6,4,1.2,1
+5,2.3,3.3,1,1
+5.6,2.7,4.2,1.3,1
+5.7,3,4.2,1.2,1
+5.7,2.9,4.2,1.3,1
+6.2,2.9,4.3,1.3,1
+5.1,2.5,3,1.1,1
+5.7,2.8,4.1,1.3,1
+6.3,3.3,6,2.5,2
+5.8,2.7,5.1,1.9,2
+7.1,3,5.9,2.1,2
+6.3,2.9,5.6,1.8,2
+6.5,3,5.8,2.2,2
+7.6,3,6.6,2.1,2
+4.9,2.5,4.5,1.7,2
+7.3,2.9,6.3,1.8,2
+6.7,2.5,5.8,1.8,2
+7.2,3.6,6.1,2.5,2
+6.5,3.2,5.1,2,2
+6.4,2.7,5.3,1.9,2
+6.8,3,5.5,2.1,2
+5.7,2.5,5,2,2
+5.8,2.8,5.1,2.4,2
+6.4,3.2,5.3,2.3,2
+6.5,3,5.5,1.8,2
+7.7,3.8,6.7,2.2,2
+7.7,2.6,6.9,2.3,2
+6,2.2,5,1.5,2
+6.9,3.2,5.7,2.3,2
+5.6,2.8,4.9,2,2
+7.7,2.8,6.7,2,2
+6.3,2.7,4.9,1.8,2
+6.7,3.3,5.7,2.1,2
+7.2,3.2,6,1.8,2
+6.2,2.8,4.8,1.8,2
+6.1,3,4.9,1.8,2
+6.4,2.8,5.6,2.1,2
+7.2,3,5.8,1.6,2
+7.4,2.8,6.1,1.9,2
+7.9,3.8,6.4,2,2
+6.4,2.8,5.6,2.2,2
+6.3,2.8,5.1,1.5,2
+6.1,2.6,5.6,1.4,2
+7.7,3,6.1,2.3,2
+6.3,3.4,5.6,2.4,2
+6.4,3.1,5.5,1.8,2
+6,3,4.8,1.8,2
+6.9,3.1,5.4,2.1,2
+6.7,3.1,5.6,2.4,2
+6.9,3.1,5.1,2.3,2
+5.8,2.7,5.1,1.9,2
+6.8,3.2,5.9,2.3,2
+6.7,3.3,5.7,2.5,2
+6.7,3,5.2,2.3,2
+6.3,2.5,5,1.9,2
+6.5,3,5.2,2,2
+6.2,3.4,5.4,2.3,2
+5.9,3,5.1,1.8,2
diff --git a/data/__init__.py b/data/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/data/dataSource.txt b/data/dataSource.txt
new file mode 100644
index 0000000..a821e90
--- /dev/null
+++ b/data/dataSource.txt
@@ -0,0 +1,15 @@
+
+[File #1] Boston Housing
+[description] Concerns housing values in suburbs of Boston
+[LINK] https://www.kaggle.com/datasets/schirmerchad/bostonhoustingmlnd
+
+[File #2] Iris Flower Dataset
+[description] Iris flower data set used for multi-class classification.
+
+* Modified species as numerical values:
+ 0: Iris-setosa 1: Iris-versicolor 2: Iris-virginica
+[LINK] https://www.kaggle.com/datasets/arshid/iris-flower-dataset
+
+[File #3] Red Wine Quality
+[description] Simple and clean practice dataset for regression or classification modelling
+[LINK] https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009
diff --git a/data/housing.csv b/data/housing.csv
new file mode 100644
index 0000000..9b9116f
--- /dev/null
+++ b/data/housing.csv
@@ -0,0 +1,490 @@
+RM,LSTAT,PTRATIO,MEDV
+6.575,4.98,15.3,504000.0
+6.421,9.14,17.8,453600.0
+7.185,4.03,17.8,728700.0
+6.998,2.94,18.7,701400.0
+7.147,5.33,18.7,760200.0
+6.43,5.21,18.7,602700.0
+6.012,12.43,15.2,480900.0
+6.172,19.15,15.2,569100.0
+5.631,29.93,15.2,346500.0
+6.004,17.1,15.2,396900.0
+6.377,20.45,15.2,315000.0
+6.009,13.27,15.2,396900.0
+5.889,15.71,15.2,455700.0
+5.949,8.26,21.0,428400.0
+6.096,10.26,21.0,382200.0
+5.834,8.47,21.0,417900.0
+5.935,6.58,21.0,485100.0
+5.99,14.67,21.0,367500.0
+5.456,11.69,21.0,424200.0
+5.727,11.28,21.0,382200.0
+5.57,21.02,21.0,285600.0
+5.965,13.83,21.0,411600.0
+6.142,18.72,21.0,319200.0
+5.813,19.88,21.0,304500.0
+5.924,16.3,21.0,327600.0
+5.599,16.51,21.0,291900.0
+5.813,14.81,21.0,348600.0
+6.047,17.28,21.0,310800.0
+6.495,12.8,21.0,386400.0
+6.674,11.98,21.0,441000.0
+5.713,22.6,21.0,266700.0
+6.072,13.04,21.0,304500.0
+5.95,27.71,21.0,277200.0
+5.701,18.35,21.0,275100.0
+6.096,20.34,21.0,283500.0
+5.933,9.68,19.2,396900.0
+5.841,11.41,19.2,420000.0
+5.85,8.77,19.2,441000.0
+5.966,10.13,19.2,518700.0
+6.595,4.32,18.3,646800.0
+7.024,1.98,18.3,732900.0
+6.77,4.84,17.9,558600.0
+6.169,5.81,17.9,531300.0
+6.211,7.44,17.9,518700.0
+6.069,9.55,17.9,445200.0
+5.682,10.21,17.9,405300.0
+5.786,14.15,17.9,420000.0
+6.03,18.8,17.9,348600.0
+5.399,30.81,17.9,302400.0
+5.602,16.2,17.9,407400.0
+5.963,13.45,16.8,413700.0
+6.115,9.43,16.8,430500.0
+6.511,5.28,16.8,525000.0
+5.998,8.43,16.8,491400.0
+5.888,14.8,21.1,396900.0
+7.249,4.81,17.9,743400.0
+6.383,5.77,17.3,518700.0
+6.816,3.95,15.1,663600.0
+6.145,6.86,19.7,489300.0
+5.927,9.22,19.7,411600.0
+5.741,13.15,19.7,392700.0
+5.966,14.44,19.7,336000.0
+6.456,6.73,19.7,466200.0
+6.762,9.5,19.7,525000.0
+7.104,8.05,18.6,693000.0
+6.29,4.67,16.1,493500.0
+5.787,10.24,16.1,407400.0
+5.878,8.1,18.9,462000.0
+5.594,13.09,18.9,365400.0
+5.885,8.79,18.9,438900.0
+6.417,6.72,19.2,508200.0
+5.961,9.88,19.2,455700.0
+6.065,5.52,19.2,478800.0
+6.245,7.54,19.2,491400.0
+6.273,6.78,18.7,506100.0
+6.286,8.94,18.7,449400.0
+6.279,11.97,18.7,420000.0
+6.14,10.27,18.7,436800.0
+6.232,12.34,18.7,445200.0
+5.874,9.1,18.7,426300.0
+6.727,5.29,19.0,588000.0
+6.619,7.22,19.0,501900.0
+6.302,6.72,19.0,520800.0
+6.167,7.51,19.0,480900.0
+6.389,9.62,18.5,501900.0
+6.63,6.53,18.5,558600.0
+6.015,12.86,18.5,472500.0
+6.121,8.44,18.5,466200.0
+7.007,5.5,17.8,495600.0
+7.079,5.7,17.8,602700.0
+6.417,8.81,17.8,474600.0
+6.405,8.2,17.8,462000.0
+6.442,8.16,18.2,480900.0
+6.211,6.21,18.2,525000.0
+6.249,10.59,18.2,432600.0
+6.625,6.65,18.0,596400.0
+6.163,11.34,18.0,449400.0
+8.069,4.21,18.0,812700.0
+7.82,3.57,18.0,919800.0
+7.416,6.19,18.0,697200.0
+6.727,9.42,20.9,577500.0
+6.781,7.67,20.9,556500.0
+6.405,10.63,20.9,390600.0
+6.137,13.44,20.9,405300.0
+6.167,12.33,20.9,422100.0
+5.851,16.47,20.9,409500.0
+5.836,18.66,20.9,409500.0
+6.127,14.09,20.9,428400.0
+6.474,12.27,20.9,415800.0
+6.229,15.55,20.9,407400.0
+6.195,13.0,20.9,455700.0
+6.715,10.16,17.8,478800.0
+5.913,16.21,17.8,394800.0
+6.092,17.09,17.8,392700.0
+6.254,10.45,17.8,388500.0
+5.928,15.76,17.8,384300.0
+6.176,12.04,17.8,445200.0
+6.021,10.3,17.8,403200.0
+5.872,15.37,17.8,428400.0
+5.731,13.61,17.8,405300.0
+5.87,14.37,19.1,462000.0
+6.004,14.27,19.1,426300.0
+5.961,17.93,19.1,430500.0
+5.856,25.41,19.1,363300.0
+5.879,17.58,19.1,394800.0
+5.986,14.81,19.1,449400.0
+5.613,27.26,19.1,329700.0
+5.693,17.19,21.2,340200.0
+6.431,15.39,21.2,378000.0
+5.637,18.34,21.2,300300.0
+6.458,12.6,21.2,403200.0
+6.326,12.26,21.2,411600.0
+6.372,11.12,21.2,483000.0
+5.822,15.03,21.2,386400.0
+5.757,17.31,21.2,327600.0
+6.335,16.96,21.2,380100.0
+5.942,16.9,21.2,365400.0
+6.454,14.59,21.2,359100.0
+5.857,21.32,21.2,279300.0
+6.151,18.46,21.2,373800.0
+6.174,24.16,21.2,294000.0
+5.019,34.41,21.2,302400.0
+5.403,26.82,14.7,281400.0
+5.468,26.42,14.7,327600.0
+4.903,29.29,14.7,247800.0
+6.13,27.8,14.7,289800.0
+5.628,16.65,14.7,327600.0
+4.926,29.53,14.7,306600.0
+5.186,28.32,14.7,373800.0
+5.597,21.45,14.7,323400.0
+6.122,14.1,14.7,451500.0
+5.404,13.28,14.7,411600.0
+5.012,12.12,14.7,321300.0
+5.709,15.79,14.7,407400.0
+6.129,15.12,14.7,357000.0
+6.152,15.02,14.7,327600.0
+5.272,16.14,14.7,275100.0
+6.943,4.59,14.7,867300.0
+6.066,6.43,14.7,510300.0
+6.51,7.39,14.7,489300.0
+6.25,5.5,14.7,567000.0
+5.854,11.64,14.7,476700.0
+6.101,9.81,14.7,525000.0
+5.877,12.14,14.7,499800.0
+6.319,11.1,14.7,499800.0
+6.402,11.32,14.7,468300.0
+5.875,14.43,14.7,365400.0
+5.88,12.03,14.7,401100.0
+5.572,14.69,16.6,485100.0
+6.416,9.04,16.6,495600.0
+5.859,9.64,16.6,474600.0
+6.546,5.33,16.6,617400.0
+6.02,10.11,16.6,487200.0
+6.315,6.29,16.6,516600.0
+6.86,6.92,16.6,627900.0
+6.98,5.04,17.8,781200.0
+7.765,7.56,17.8,835800.0
+6.144,9.45,17.8,760200.0
+7.155,4.82,17.8,795900.0
+6.563,5.68,17.8,682500.0
+5.604,13.98,17.8,554400.0
+6.153,13.15,17.8,621600.0
+6.782,6.68,15.2,672000.0
+6.556,4.56,15.2,625800.0
+7.185,5.39,15.2,732900.0
+6.951,5.1,15.2,777000.0
+6.739,4.69,15.2,640500.0
+7.178,2.87,15.2,764400.0
+6.8,5.03,15.6,653100.0
+6.604,4.38,15.6,611100.0
+7.287,4.08,12.6,699300.0
+7.107,8.61,12.6,636300.0
+7.274,6.62,12.6,726600.0
+6.975,4.56,17.0,732900.0
+7.135,4.45,17.0,690900.0
+6.162,7.43,14.7,506100.0
+7.61,3.11,14.7,888300.0
+7.853,3.81,14.7,1018500.0
+5.891,10.87,18.6,474600.0
+6.326,10.97,18.6,512400.0
+5.783,18.06,18.6,472500.0
+6.064,14.66,18.6,512400.0
+5.344,23.09,18.6,420000.0
+5.96,17.27,18.6,455700.0
+5.404,23.98,18.6,405300.0
+5.807,16.03,18.6,470400.0
+6.375,9.38,18.6,590100.0
+5.412,29.55,18.6,497700.0
+6.182,9.47,18.6,525000.0
+5.888,13.51,16.4,489300.0
+6.642,9.69,16.4,602700.0
+5.951,17.92,16.4,451500.0
+6.373,10.5,16.4,483000.0
+6.951,9.71,17.4,560700.0
+6.164,21.46,17.4,455700.0
+6.879,9.93,17.4,577500.0
+6.618,7.6,17.4,632100.0
+8.266,4.14,17.4,940800.0
+8.04,3.13,17.4,789600.0
+7.163,6.36,17.4,663600.0
+7.686,3.92,17.4,980700.0
+6.552,3.76,17.4,661500.0
+5.981,11.65,17.4,510300.0
+7.412,5.25,17.4,665700.0
+8.337,2.47,17.4,875700.0
+8.247,3.95,17.4,1014300.0
+6.726,8.05,17.4,609000.0
+6.086,10.88,17.4,504000.0
+6.631,9.54,17.4,527100.0
+7.358,4.73,17.4,661500.0
+6.481,6.36,16.6,497700.0
+6.606,7.37,16.6,489300.0
+6.897,11.38,16.6,462000.0
+6.095,12.4,16.6,422100.0
+6.358,11.22,16.6,466200.0
+6.393,5.19,16.6,497700.0
+5.593,12.5,19.1,369600.0
+5.605,18.46,19.1,388500.0
+6.108,9.16,19.1,510300.0
+6.226,10.15,19.1,430500.0
+6.433,9.52,19.1,514500.0
+6.718,6.56,19.1,550200.0
+6.487,5.9,19.1,512400.0
+6.438,3.59,19.1,520800.0
+6.957,3.53,19.1,621600.0
+8.259,3.54,19.1,898800.0
+6.108,6.57,16.4,459900.0
+5.876,9.25,16.4,438900.0
+7.454,3.11,15.9,924000.0
+7.333,7.79,13.0,756000.0
+6.842,6.9,13.0,632100.0
+7.203,9.59,13.0,709800.0
+7.52,7.26,13.0,905100.0
+8.398,5.91,13.0,1024800.0
+7.327,11.25,13.0,651000.0
+7.206,8.1,13.0,766500.0
+5.56,10.45,13.0,478800.0
+7.014,14.79,13.0,644700.0
+7.47,3.16,13.0,913500.0
+5.92,13.65,18.6,434700.0
+5.856,13.0,18.6,443100.0
+6.24,6.59,18.6,529200.0
+6.538,7.73,18.6,512400.0
+7.691,6.58,18.6,739200.0
+6.758,3.53,17.6,680400.0
+6.854,2.98,17.6,672000.0
+7.267,6.05,17.6,697200.0
+6.826,4.16,17.6,695100.0
+6.482,7.19,17.6,611100.0
+6.812,4.85,14.9,737100.0
+7.82,3.76,14.9,953400.0
+6.968,4.59,14.9,743400.0
+7.645,3.01,14.9,966000.0
+7.088,7.85,15.3,676200.0
+6.453,8.23,15.3,462000.0
+6.23,12.93,18.2,422100.0
+6.209,7.14,16.6,487200.0
+6.315,7.6,16.6,468300.0
+6.565,9.51,16.6,520800.0
+6.861,3.33,19.2,598500.0
+7.148,3.56,19.2,783300.0
+6.63,4.7,19.2,585900.0
+6.127,8.58,16.0,501900.0
+6.009,10.4,16.0,455700.0
+6.678,6.27,16.0,600600.0
+6.549,7.39,16.0,569100.0
+5.79,15.84,16.0,426300.0
+6.345,4.97,14.8,472500.0
+7.041,4.74,14.8,609000.0
+6.871,6.07,14.8,520800.0
+6.59,9.5,16.1,462000.0
+6.495,8.67,16.1,554400.0
+6.982,4.86,16.1,695100.0
+7.236,6.93,18.4,758100.0
+6.616,8.93,18.4,596400.0
+7.42,6.47,18.4,701400.0
+6.849,7.53,18.4,592200.0
+6.635,4.54,18.4,478800.0
+5.972,9.97,18.4,426300.0
+4.973,12.64,18.4,338100.0
+6.122,5.98,18.4,464100.0
+6.023,11.72,18.4,407400.0
+6.266,7.9,18.4,453600.0
+6.567,9.28,18.4,499800.0
+5.705,11.5,18.4,340200.0
+5.914,18.33,18.4,373800.0
+5.782,15.94,18.4,415800.0
+6.382,10.36,18.4,485100.0
+6.113,12.73,18.4,441000.0
+6.426,7.2,19.6,499800.0
+6.376,6.87,19.6,485100.0
+6.041,7.7,19.6,428400.0
+5.708,11.74,19.6,388500.0
+6.415,6.12,19.6,525000.0
+6.431,5.08,19.6,516600.0
+6.312,6.15,19.6,483000.0
+6.083,12.79,19.6,466200.0
+5.868,9.97,16.9,405300.0
+6.333,7.34,16.9,474600.0
+6.144,9.09,16.9,415800.0
+5.706,12.43,16.9,359100.0
+6.031,7.83,16.9,407400.0
+6.316,5.68,20.2,466200.0
+6.31,6.75,20.2,434700.0
+6.037,8.01,20.2,443100.0
+5.869,9.8,20.2,409500.0
+5.895,10.56,20.2,388500.0
+6.059,8.51,20.2,432600.0
+5.985,9.74,20.2,399000.0
+5.968,9.29,20.2,392700.0
+7.241,5.49,15.5,686700.0
+6.54,8.65,15.9,346500.0
+6.696,7.18,17.6,501900.0
+6.874,4.61,17.6,655200.0
+6.014,10.53,18.8,367500.0
+5.898,12.67,18.8,361200.0
+6.516,6.36,17.9,485100.0
+6.635,5.99,17.0,514500.0
+6.939,5.89,19.7,558600.0
+6.49,5.98,19.7,480900.0
+6.579,5.49,18.3,506100.0
+5.884,7.79,18.3,390600.0
+6.728,4.5,17.0,632100.0
+5.663,8.05,22.0,382200.0
+5.936,5.57,22.0,432600.0
+6.212,17.6,20.2,373800.0
+6.395,13.27,20.2,455700.0
+6.127,11.48,20.2,476700.0
+6.112,12.67,20.2,474600.0
+6.398,7.79,20.2,525000.0
+6.251,14.19,20.2,417900.0
+5.362,10.19,20.2,436800.0
+5.803,14.64,20.2,352800.0
+3.561,7.12,20.2,577500.0
+4.963,14.0,20.2,459900.0
+3.863,13.33,20.2,485100.0
+4.906,34.77,20.2,289800.0
+4.138,37.97,20.2,289800.0
+7.313,13.44,20.2,315000.0
+6.649,23.24,20.2,291900.0
+6.794,21.24,20.2,279300.0
+6.38,23.69,20.2,275100.0
+6.223,21.78,20.2,214200.0
+6.968,17.21,20.2,218400.0
+6.545,21.08,20.2,228900.0
+5.536,23.6,20.2,237300.0
+5.52,24.56,20.2,258300.0
+4.368,30.63,20.2,184800.0
+5.277,30.81,20.2,151200.0
+4.652,28.28,20.2,220500.0
+5.0,31.99,20.2,155400.0
+4.88,30.62,20.2,214200.0
+5.39,20.85,20.2,241500.0
+5.713,17.11,20.2,317100.0
+6.051,18.76,20.2,487200.0
+5.036,25.68,20.2,203700.0
+6.193,15.17,20.2,289800.0
+5.887,16.35,20.2,266700.0
+6.471,17.12,20.2,275100.0
+6.405,19.37,20.2,262500.0
+5.747,19.92,20.2,178500.0
+5.453,30.59,20.2,105000.0
+5.852,29.97,20.2,132300.0
+5.987,26.77,20.2,117600.0
+6.343,20.32,20.2,151200.0
+6.404,20.31,20.2,254100.0
+5.349,19.77,20.2,174300.0
+5.531,27.38,20.2,178500.0
+5.683,22.98,20.2,105000.0
+4.138,23.34,20.2,249900.0
+5.608,12.13,20.2,585900.0
+5.617,26.4,20.2,361200.0
+6.852,19.78,20.2,577500.0
+5.757,10.11,20.2,315000.0
+6.657,21.22,20.2,361200.0
+4.628,34.37,20.2,375900.0
+5.155,20.08,20.2,342300.0
+4.519,36.98,20.2,147000.0
+6.434,29.05,20.2,151200.0
+6.782,25.79,20.2,157500.0
+5.304,26.64,20.2,218400.0
+5.957,20.62,20.2,184800.0
+6.824,22.74,20.2,176400.0
+6.411,15.02,20.2,350700.0
+6.006,15.7,20.2,298200.0
+5.648,14.1,20.2,436800.0
+6.103,23.29,20.2,281400.0
+5.565,17.16,20.2,245700.0
+5.896,24.39,20.2,174300.0
+5.837,15.69,20.2,214200.0
+6.202,14.52,20.2,228900.0
+6.193,21.52,20.2,231000.0
+6.38,24.08,20.2,199500.0
+6.348,17.64,20.2,304500.0
+6.833,19.69,20.2,296100.0
+6.425,12.03,20.2,338100.0
+6.436,16.22,20.2,300300.0
+6.208,15.17,20.2,245700.0
+6.629,23.27,20.2,281400.0
+6.461,18.05,20.2,201600.0
+6.152,26.45,20.2,182700.0
+5.935,34.02,20.2,176400.0
+5.627,22.88,20.2,268800.0
+5.818,22.11,20.2,220500.0
+6.406,19.52,20.2,359100.0
+6.219,16.59,20.2,386400.0
+6.485,18.85,20.2,323400.0
+5.854,23.79,20.2,226800.0
+6.459,23.98,20.2,247800.0
+6.341,17.79,20.2,312900.0
+6.251,16.44,20.2,264600.0
+6.185,18.13,20.2,296100.0
+6.417,19.31,20.2,273000.0
+6.749,17.44,20.2,281400.0
+6.655,17.73,20.2,319200.0
+6.297,17.27,20.2,338100.0
+7.393,16.74,20.2,373800.0
+6.728,18.71,20.2,312900.0
+6.525,18.13,20.2,296100.0
+5.976,19.01,20.2,266700.0
+5.936,16.94,20.2,283500.0
+6.301,16.23,20.2,312900.0
+6.081,14.7,20.2,420000.0
+6.701,16.42,20.2,344400.0
+6.376,14.65,20.2,371700.0
+6.317,13.99,20.2,409500.0
+6.513,10.29,20.2,424200.0
+6.209,13.22,20.2,449400.0
+5.759,14.13,20.2,417900.0
+5.952,17.15,20.2,399000.0
+6.003,21.32,20.2,401100.0
+5.926,18.13,20.2,401100.0
+5.713,14.76,20.2,422100.0
+6.167,16.29,20.2,417900.0
+6.229,12.87,20.2,411600.0
+6.437,14.36,20.2,487200.0
+6.98,11.66,20.2,625800.0
+5.427,18.14,20.2,289800.0
+6.162,24.1,20.2,279300.0
+6.484,18.68,20.2,350700.0
+5.304,24.91,20.2,252000.0
+6.185,18.03,20.2,306600.0
+6.229,13.11,20.2,449400.0
+6.242,10.74,20.2,483000.0
+6.75,7.74,20.2,497700.0
+7.061,7.01,20.2,525000.0
+5.762,10.42,20.2,457800.0
+5.871,13.34,20.2,432600.0
+6.312,10.58,20.2,445200.0
+6.114,14.98,20.2,401100.0
+5.905,11.45,20.2,432600.0
+5.454,18.06,20.1,319200.0
+5.414,23.97,20.1,147000.0
+5.093,29.68,20.1,170100.0
+5.983,18.07,20.1,285600.0
+5.983,13.35,20.1,422100.0
+5.707,12.01,19.2,457800.0
+5.926,13.59,19.2,514500.0
+5.67,17.6,19.2,485100.0
+5.39,21.14,19.2,413700.0
+5.794,14.1,19.2,384300.0
+6.019,12.92,19.2,445200.0
+5.569,15.1,19.2,367500.0
+6.027,14.33,19.2,352800.0
+6.593,9.67,21.0,470400.0
+6.12,9.08,21.0,432600.0
+6.976,5.64,21.0,501900.0
+6.794,6.48,21.0,462000.0
+6.03,7.88,21.0,249900.0
diff --git a/data/winequality-red.csv b/data/winequality-red.csv
new file mode 100644
index 0000000..62e674c
--- /dev/null
+++ b/data/winequality-red.csv
@@ -0,0 +1,1600 @@
+fixed acidity,volatile acidity,citric acid,residual sugar,chlorides,free sulfur dioxide,total sulfur dioxide,density,pH,sulphates,alcohol,quality
+7.4,0.7,0.0,1.9,0.076,11.0,34.0,0.9978,3.51,0.56,9.4,5
+7.8,0.88,0.0,2.6,0.098,25.0,67.0,0.9968,3.2,0.68,9.8,5
+7.8,0.76,0.04,2.3,0.092,15.0,54.0,0.997,3.26,0.65,9.8,5
+11.2,0.28,0.56,1.9,0.075,17.0,60.0,0.998,3.16,0.58,9.8,6
+7.4,0.7,0.0,1.9,0.076,11.0,34.0,0.9978,3.51,0.56,9.4,5
+7.4,0.66,0.0,1.8,0.075,13.0,40.0,0.9978,3.51,0.56,9.4,5
+7.9,0.6,0.06,1.6,0.069,15.0,59.0,0.9964,3.3,0.46,9.4,5
+7.3,0.65,0.0,1.2,0.065,15.0,21.0,0.9946,3.39,0.47,10.0,7
+7.8,0.58,0.02,2.0,0.073,9.0,18.0,0.9968,3.36,0.57,9.5,7
+7.5,0.5,0.36,6.1,0.071,17.0,102.0,0.9978,3.35,0.8,10.5,5
+6.7,0.58,0.08,1.8,0.09699999999999999,15.0,65.0,0.9959,3.28,0.54,9.2,5
+7.5,0.5,0.36,6.1,0.071,17.0,102.0,0.9978,3.35,0.8,10.5,5
+5.6,0.615,0.0,1.6,0.08900000000000001,16.0,59.0,0.9943,3.58,0.52,9.9,5
+7.8,0.61,0.29,1.6,0.114,9.0,29.0,0.9974,3.26,1.56,9.1,5
+8.9,0.62,0.18,3.8,0.17600000000000002,52.0,145.0,0.9986,3.16,0.88,9.2,5
+8.9,0.62,0.19,3.9,0.17,51.0,148.0,0.9986,3.17,0.93,9.2,5
+8.5,0.28,0.56,1.8,0.092,35.0,103.0,0.9969,3.3,0.75,10.5,7
+8.1,0.56,0.28,1.7,0.368,16.0,56.0,0.9968,3.11,1.28,9.3,5
+7.4,0.59,0.08,4.4,0.086,6.0,29.0,0.9974,3.38,0.5,9.0,4
+7.9,0.32,0.51,1.8,0.341,17.0,56.0,0.9969,3.04,1.08,9.2,6
+8.9,0.22,0.48,1.8,0.077,29.0,60.0,0.9968,3.39,0.53,9.4,6
+7.6,0.39,0.31,2.3,0.08199999999999999,23.0,71.0,0.9982,3.52,0.65,9.7,5
+7.9,0.43,0.21,1.6,0.106,10.0,37.0,0.9966,3.17,0.91,9.5,5
+8.5,0.49,0.11,2.3,0.084,9.0,67.0,0.9968,3.17,0.53,9.4,5
+6.9,0.4,0.14,2.4,0.085,21.0,40.0,0.9968,3.43,0.63,9.7,6
+6.3,0.39,0.16,1.4,0.08,11.0,23.0,0.9955,3.34,0.56,9.3,5
+7.6,0.41,0.24,1.8,0.08,4.0,11.0,0.9962,3.28,0.59,9.5,5
+7.9,0.43,0.21,1.6,0.106,10.0,37.0,0.9966,3.17,0.91,9.5,5
+7.1,0.71,0.0,1.9,0.08,14.0,35.0,0.9972,3.47,0.55,9.4,5
+7.8,0.645,0.0,2.0,0.08199999999999999,8.0,16.0,0.9964,3.38,0.59,9.8,6
+6.7,0.675,0.07,2.4,0.08900000000000001,17.0,82.0,0.9958,3.35,0.54,10.1,5
+6.9,0.685,0.0,2.5,0.105,22.0,37.0,0.9966,3.46,0.57,10.6,6
+8.3,0.655,0.12,2.3,0.083,15.0,113.0,0.9966,3.17,0.66,9.8,5
+6.9,0.605,0.12,10.7,0.073,40.0,83.0,0.9993,3.45,0.52,9.4,6
+5.2,0.32,0.25,1.8,0.10300000000000001,13.0,50.0,0.9957,3.38,0.55,9.2,5
+7.8,0.645,0.0,5.5,0.086,5.0,18.0,0.9986,3.4,0.55,9.6,6
+7.8,0.6,0.14,2.4,0.086,3.0,15.0,0.9975,3.42,0.6,10.8,6
+8.1,0.38,0.28,2.1,0.066,13.0,30.0,0.9968,3.23,0.73,9.7,7
+5.7,1.13,0.09,1.5,0.172,7.0,19.0,0.9940000000000001,3.5,0.48,9.8,4
+7.3,0.45,0.36,5.9,0.07400000000000001,12.0,87.0,0.9978,3.33,0.83,10.5,5
+7.3,0.45,0.36,5.9,0.07400000000000001,12.0,87.0,0.9978,3.33,0.83,10.5,5
+8.8,0.61,0.3,2.8,0.08800000000000001,17.0,46.0,0.9976,3.26,0.51,9.3,4
+7.5,0.49,0.2,2.6,0.332,8.0,14.0,0.9968,3.21,0.9,10.5,6
+8.1,0.66,0.22,2.2,0.069,9.0,23.0,0.9968,3.3,1.2,10.3,5
+6.8,0.67,0.02,1.8,0.05,5.0,11.0,0.9962,3.48,0.52,9.5,5
+4.6,0.52,0.15,2.1,0.054000000000000006,8.0,65.0,0.9934,3.9,0.56,13.1,4
+7.7,0.935,0.43,2.2,0.114,22.0,114.0,0.997,3.25,0.73,9.2,5
+8.7,0.29,0.52,1.6,0.113,12.0,37.0,0.9969,3.25,0.58,9.5,5
+6.4,0.4,0.23,1.6,0.066,5.0,12.0,0.9958,3.34,0.56,9.2,5
+5.6,0.31,0.37,1.4,0.07400000000000001,12.0,96.0,0.9954,3.32,0.58,9.2,5
+8.8,0.66,0.26,1.7,0.07400000000000001,4.0,23.0,0.9971,3.15,0.74,9.2,5
+6.6,0.52,0.04,2.2,0.069,8.0,15.0,0.9956,3.4,0.63,9.4,6
+6.6,0.5,0.04,2.1,0.068,6.0,14.0,0.9955,3.39,0.64,9.4,6
+8.6,0.38,0.36,3.0,0.081,30.0,119.0,0.997,3.2,0.56,9.4,5
+7.6,0.51,0.15,2.8,0.11,33.0,73.0,0.9955,3.17,0.63,10.2,6
+7.7,0.62,0.04,3.8,0.084,25.0,45.0,0.9978,3.34,0.53,9.5,5
+10.2,0.42,0.57,3.4,0.07,4.0,10.0,0.9971,3.04,0.63,9.6,5
+7.5,0.63,0.12,5.1,0.111,50.0,110.0,0.9983,3.26,0.77,9.4,5
+7.8,0.59,0.18,2.3,0.076,17.0,54.0,0.9975,3.43,0.59,10.0,5
+7.3,0.39,0.31,2.4,0.07400000000000001,9.0,46.0,0.9962,3.41,0.54,9.4,6
+8.8,0.4,0.4,2.2,0.079,19.0,52.0,0.998,3.44,0.64,9.2,5
+7.7,0.69,0.49,1.8,0.115,20.0,112.0,0.9968,3.21,0.71,9.3,5
+7.5,0.52,0.16,1.9,0.085,12.0,35.0,0.9968,3.38,0.62,9.5,7
+7.0,0.735,0.05,2.0,0.081,13.0,54.0,0.9966,3.39,0.57,9.8,5
+7.2,0.725,0.05,4.65,0.086,4.0,11.0,0.9962,3.41,0.39,10.9,5
+7.2,0.725,0.05,4.65,0.086,4.0,11.0,0.9962,3.41,0.39,10.9,5
+7.5,0.52,0.11,1.5,0.079,11.0,39.0,0.9968,3.42,0.58,9.6,5
+6.6,0.705,0.07,1.6,0.076,6.0,15.0,0.9962,3.44,0.58,10.7,5
+9.3,0.32,0.57,2.0,0.07400000000000001,27.0,65.0,0.9969,3.28,0.79,10.7,5
+8.0,0.705,0.05,1.9,0.07400000000000001,8.0,19.0,0.9962,3.34,0.95,10.5,6
+7.7,0.63,0.08,1.9,0.076,15.0,27.0,0.9967,3.32,0.54,9.5,6
+7.7,0.67,0.23,2.1,0.08800000000000001,17.0,96.0,0.9962,3.32,0.48,9.5,5
+7.7,0.69,0.22,1.9,0.084,18.0,94.0,0.9961,3.31,0.48,9.5,5
+8.3,0.675,0.26,2.1,0.084,11.0,43.0,0.9976,3.31,0.53,9.2,4
+9.7,0.32,0.54,2.5,0.094,28.0,83.0,0.9984,3.28,0.82,9.6,5
+8.8,0.41,0.64,2.2,0.09300000000000001,9.0,42.0,0.9986,3.54,0.66,10.5,5
+8.8,0.41,0.64,2.2,0.09300000000000001,9.0,42.0,0.9986,3.54,0.66,10.5,5
+6.8,0.785,0.0,2.4,0.10400000000000001,14.0,30.0,0.9966,3.52,0.55,10.7,6
+6.7,0.75,0.12,2.0,0.086,12.0,80.0,0.9958,3.38,0.52,10.1,5
+8.3,0.625,0.2,1.5,0.08,27.0,119.0,0.9972,3.16,1.12,9.1,4
+6.2,0.45,0.2,1.6,0.069,3.0,15.0,0.9958,3.41,0.56,9.2,5
+7.8,0.43,0.7,1.9,0.46399999999999997,22.0,67.0,0.9974,3.13,1.28,9.4,5
+7.4,0.5,0.47,2.0,0.086,21.0,73.0,0.997,3.36,0.57,9.1,5
+7.3,0.67,0.26,1.8,0.401,16.0,51.0,0.9969,3.16,1.14,9.4,5
+6.3,0.3,0.48,1.8,0.069,18.0,61.0,0.9959,3.44,0.78,10.3,6
+6.9,0.55,0.15,2.2,0.076,19.0,40.0,0.9961,3.41,0.59,10.1,5
+8.6,0.49,0.28,1.9,0.11,20.0,136.0,0.9972,2.93,1.95,9.9,6
+7.7,0.49,0.26,1.9,0.062,9.0,31.0,0.9966,3.39,0.64,9.6,5
+9.3,0.39,0.44,2.1,0.107,34.0,125.0,0.9978,3.14,1.22,9.5,5
+7.0,0.62,0.08,1.8,0.076,8.0,24.0,0.9978,3.48,0.53,9.0,5
+7.9,0.52,0.26,1.9,0.079,42.0,140.0,0.9964,3.23,0.54,9.5,5
+8.6,0.49,0.28,1.9,0.11,20.0,136.0,0.9972,2.93,1.95,9.9,6
+8.6,0.49,0.29,2.0,0.11,19.0,133.0,0.9972,2.93,1.98,9.8,5
+7.7,0.49,0.26,1.9,0.062,9.0,31.0,0.9966,3.39,0.64,9.6,5
+5.0,1.02,0.04,1.4,0.045,41.0,85.0,0.9938,3.75,0.48,10.5,4
+4.7,0.6,0.17,2.3,0.057999999999999996,17.0,106.0,0.9932,3.85,0.6,12.9,6
+6.8,0.775,0.0,3.0,0.102,8.0,23.0,0.9965,3.45,0.56,10.7,5
+7.0,0.5,0.25,2.0,0.07,3.0,22.0,0.9963,3.25,0.63,9.2,5
+7.6,0.9,0.06,2.5,0.079,5.0,10.0,0.9967,3.39,0.56,9.8,5
+8.1,0.545,0.18,1.9,0.08,13.0,35.0,0.9972,3.3,0.59,9.0,6
+8.3,0.61,0.3,2.1,0.084,11.0,50.0,0.9972,3.4,0.61,10.2,6
+7.8,0.5,0.3,1.9,0.075,8.0,22.0,0.9959,3.31,0.56,10.4,6
+8.1,0.545,0.18,1.9,0.08,13.0,35.0,0.9972,3.3,0.59,9.0,6
+8.1,0.575,0.22,2.1,0.077,12.0,65.0,0.9967,3.29,0.51,9.2,5
+7.2,0.49,0.24,2.2,0.07,5.0,36.0,0.996,3.33,0.48,9.4,5
+8.1,0.575,0.22,2.1,0.077,12.0,65.0,0.9967,3.29,0.51,9.2,5
+7.8,0.41,0.68,1.7,0.467,18.0,69.0,0.9973,3.08,1.31,9.3,5
+6.2,0.63,0.31,1.7,0.08800000000000001,15.0,64.0,0.9969,3.46,0.79,9.3,5
+8.0,0.33,0.53,2.5,0.091,18.0,80.0,0.9976,3.37,0.8,9.6,6
+8.1,0.785,0.52,2.0,0.122,37.0,153.0,0.9969,3.21,0.69,9.3,5
+7.8,0.56,0.19,1.8,0.10400000000000001,12.0,47.0,0.9964,3.19,0.93,9.5,5
+8.4,0.62,0.09,2.2,0.084,11.0,108.0,0.9964,3.15,0.66,9.8,5
+8.4,0.6,0.1,2.2,0.085,14.0,111.0,0.9964,3.15,0.66,9.8,5
+10.1,0.31,0.44,2.3,0.08,22.0,46.0,0.9988,3.32,0.67,9.7,6
+7.8,0.56,0.19,1.8,0.10400000000000001,12.0,47.0,0.9964,3.19,0.93,9.5,5
+9.4,0.4,0.31,2.2,0.09,13.0,62.0,0.9966,3.07,0.63,10.5,6
+8.3,0.54,0.28,1.9,0.077,11.0,40.0,0.9978,3.39,0.61,10.0,6
+7.8,0.56,0.12,2.0,0.08199999999999999,7.0,28.0,0.997,3.37,0.5,9.4,6
+8.8,0.55,0.04,2.2,0.11900000000000001,14.0,56.0,0.9962,3.21,0.6,10.9,6
+7.0,0.69,0.08,1.8,0.09699999999999999,22.0,89.0,0.9959,3.34,0.54,9.2,6
+7.3,1.07,0.09,1.7,0.17800000000000002,10.0,89.0,0.9962,3.3,0.57,9.0,5
+8.8,0.55,0.04,2.2,0.11900000000000001,14.0,56.0,0.9962,3.21,0.6,10.9,6
+7.3,0.695,0.0,2.5,0.075,3.0,13.0,0.998,3.49,0.52,9.2,5
+8.0,0.71,0.0,2.6,0.08,11.0,34.0,0.9976,3.44,0.53,9.5,5
+7.8,0.5,0.17,1.6,0.08199999999999999,21.0,102.0,0.996,3.39,0.48,9.5,5
+9.0,0.62,0.04,1.9,0.146,27.0,90.0,0.9984,3.16,0.7,9.4,5
+8.2,1.33,0.0,1.7,0.081,3.0,12.0,0.9964,3.53,0.49,10.9,5
+8.1,1.33,0.0,1.8,0.08199999999999999,3.0,12.0,0.9964,3.54,0.48,10.9,5
+8.0,0.59,0.16,1.8,0.065,3.0,16.0,0.9962,3.42,0.92,10.5,7
+6.1,0.38,0.15,1.8,0.07200000000000001,6.0,19.0,0.9955,3.42,0.57,9.4,5
+8.0,0.745,0.56,2.0,0.11800000000000001,30.0,134.0,0.9968,3.24,0.66,9.4,5
+5.6,0.5,0.09,2.3,0.049,17.0,99.0,0.9937,3.63,0.63,13.0,5
+5.6,0.5,0.09,2.3,0.049,17.0,99.0,0.9937,3.63,0.63,13.0,5
+6.6,0.5,0.01,1.5,0.06,17.0,26.0,0.9952,3.4,0.58,9.8,6
+7.9,1.04,0.05,2.2,0.084,13.0,29.0,0.9959,3.22,0.55,9.9,6
+8.4,0.745,0.11,1.9,0.09,16.0,63.0,0.9965,3.19,0.82,9.6,5
+8.3,0.715,0.15,1.8,0.08900000000000001,10.0,52.0,0.9968,3.23,0.77,9.5,5
+7.2,0.415,0.36,2.0,0.081,13.0,45.0,0.9972,3.48,0.64,9.2,5
+7.8,0.56,0.19,2.1,0.081,15.0,105.0,0.9962,3.33,0.54,9.5,5
+7.8,0.56,0.19,2.0,0.081,17.0,108.0,0.9962,3.32,0.54,9.5,5
+8.4,0.745,0.11,1.9,0.09,16.0,63.0,0.9965,3.19,0.82,9.6,5
+8.3,0.715,0.15,1.8,0.08900000000000001,10.0,52.0,0.9968,3.23,0.77,9.5,5
+5.2,0.34,0.0,1.8,0.05,27.0,63.0,0.9916,3.68,0.79,14.0,6
+6.3,0.39,0.08,1.7,0.066,3.0,20.0,0.9954,3.34,0.58,9.4,5
+5.2,0.34,0.0,1.8,0.05,27.0,63.0,0.9916,3.68,0.79,14.0,6
+8.1,0.67,0.55,1.8,0.11699999999999999,32.0,141.0,0.9968,3.17,0.62,9.4,5
+5.8,0.68,0.02,1.8,0.087,21.0,94.0,0.9944,3.54,0.52,10.0,5
+7.6,0.49,0.26,1.6,0.23600000000000002,10.0,88.0,0.9968,3.11,0.8,9.3,5
+6.9,0.49,0.1,2.3,0.07400000000000001,12.0,30.0,0.9959,3.42,0.58,10.2,6
+8.2,0.4,0.44,2.8,0.08900000000000001,11.0,43.0,0.9975,3.53,0.61,10.5,6
+7.3,0.33,0.47,2.1,0.077,5.0,11.0,0.9958,3.33,0.53,10.3,6
+9.2,0.52,1.0,3.4,0.61,32.0,69.0,0.9996,2.74,2.0,9.4,4
+7.5,0.6,0.03,1.8,0.095,25.0,99.0,0.995,3.35,0.54,10.1,5
+7.5,0.6,0.03,1.8,0.095,25.0,99.0,0.995,3.35,0.54,10.1,5
+7.1,0.43,0.42,5.5,0.07,29.0,129.0,0.9973,3.42,0.72,10.5,5
+7.1,0.43,0.42,5.5,0.071,28.0,128.0,0.9973,3.42,0.71,10.5,5
+7.1,0.43,0.42,5.5,0.07,29.0,129.0,0.9973,3.42,0.72,10.5,5
+7.1,0.43,0.42,5.5,0.071,28.0,128.0,0.9973,3.42,0.71,10.5,5
+7.1,0.68,0.0,2.2,0.073,12.0,22.0,0.9969,3.48,0.5,9.3,5
+6.8,0.6,0.18,1.9,0.079,18.0,86.0,0.9968,3.59,0.57,9.3,6
+7.6,0.95,0.03,2.0,0.09,7.0,20.0,0.9959,3.2,0.56,9.6,5
+7.6,0.68,0.02,1.3,0.07200000000000001,9.0,20.0,0.9965,3.17,1.08,9.2,4
+7.8,0.53,0.04,1.7,0.076,17.0,31.0,0.9964,3.33,0.56,10.0,6
+7.4,0.6,0.26,7.3,0.07,36.0,121.0,0.9982,3.37,0.49,9.4,5
+7.3,0.59,0.26,7.2,0.07,35.0,121.0,0.9981,3.37,0.49,9.4,5
+7.8,0.63,0.48,1.7,0.1,14.0,96.0,0.9961,3.19,0.62,9.5,5
+6.8,0.64,0.1,2.1,0.085,18.0,101.0,0.9956,3.34,0.52,10.2,5
+7.3,0.55,0.03,1.6,0.07200000000000001,17.0,42.0,0.9956,3.37,0.48,9.0,4
+6.8,0.63,0.07,2.1,0.08900000000000001,11.0,44.0,0.9953,3.47,0.55,10.4,6
+7.5,0.705,0.24,1.8,0.36,15.0,63.0,0.9964,3.0,1.59,9.5,5
+7.9,0.885,0.03,1.8,0.057999999999999996,4.0,8.0,0.9972,3.36,0.33,9.1,4
+8.0,0.42,0.17,2.0,0.073,6.0,18.0,0.9972,3.29,0.61,9.2,6
+8.0,0.42,0.17,2.0,0.073,6.0,18.0,0.9972,3.29,0.61,9.2,6
+7.4,0.62,0.05,1.9,0.068,24.0,42.0,0.9961,3.42,0.57,11.5,6
+7.3,0.38,0.21,2.0,0.08,7.0,35.0,0.9961,3.33,0.47,9.5,5
+6.9,0.5,0.04,1.5,0.085,19.0,49.0,0.9958,3.35,0.78,9.5,5
+7.3,0.38,0.21,2.0,0.08,7.0,35.0,0.9961,3.33,0.47,9.5,5
+7.5,0.52,0.42,2.3,0.087,8.0,38.0,0.9972,3.58,0.61,10.5,6
+7.0,0.805,0.0,2.5,0.068,7.0,20.0,0.9969,3.48,0.56,9.6,5
+8.8,0.61,0.14,2.4,0.067,10.0,42.0,0.9969,3.19,0.59,9.5,5
+8.8,0.61,0.14,2.4,0.067,10.0,42.0,0.9969,3.19,0.59,9.5,5
+8.9,0.61,0.49,2.0,0.27,23.0,110.0,0.9972,3.12,1.02,9.3,5
+7.2,0.73,0.02,2.5,0.076,16.0,42.0,0.9972,3.44,0.52,9.3,5
+6.8,0.61,0.2,1.8,0.077,11.0,65.0,0.9971,3.54,0.58,9.3,5
+6.7,0.62,0.21,1.9,0.079,8.0,62.0,0.997,3.52,0.58,9.3,6
+8.9,0.31,0.57,2.0,0.111,26.0,85.0,0.9971,3.26,0.53,9.7,5
+7.4,0.39,0.48,2.0,0.08199999999999999,14.0,67.0,0.9972,3.34,0.55,9.2,5
+7.7,0.705,0.1,2.6,0.084,9.0,26.0,0.9976,3.39,0.49,9.7,5
+7.9,0.5,0.33,2.0,0.084,15.0,143.0,0.9968,3.2,0.55,9.5,5
+7.9,0.49,0.32,1.9,0.08199999999999999,17.0,144.0,0.9968,3.2,0.55,9.5,5
+8.2,0.5,0.35,2.9,0.077,21.0,127.0,0.9976,3.23,0.62,9.4,5
+6.4,0.37,0.25,1.9,0.07400000000000001,21.0,49.0,0.9974,3.57,0.62,9.8,6
+6.8,0.63,0.12,3.8,0.099,16.0,126.0,0.9969,3.28,0.61,9.5,5
+7.6,0.55,0.21,2.2,0.071,7.0,28.0,0.9964,3.28,0.55,9.7,5
+7.6,0.55,0.21,2.2,0.071,7.0,28.0,0.9964,3.28,0.55,9.7,5
+7.8,0.59,0.33,2.0,0.07400000000000001,24.0,120.0,0.9968,3.25,0.54,9.4,5
+7.3,0.58,0.3,2.4,0.07400000000000001,15.0,55.0,0.9968,3.46,0.59,10.2,5
+11.5,0.3,0.6,2.0,0.067,12.0,27.0,0.9981,3.11,0.97,10.1,6
+5.4,0.835,0.08,1.2,0.046,13.0,93.0,0.9924,3.57,0.85,13.0,7
+6.9,1.09,0.06,2.1,0.061,12.0,31.0,0.9948,3.51,0.43,11.4,4
+9.6,0.32,0.47,1.4,0.055999999999999994,9.0,24.0,0.99695,3.22,0.82,10.3,7
+8.8,0.37,0.48,2.1,0.09699999999999999,39.0,145.0,0.9975,3.04,1.03,9.3,5
+6.8,0.5,0.11,1.5,0.075,16.0,49.0,0.99545,3.36,0.79,9.5,5
+7.0,0.42,0.35,1.6,0.08800000000000001,16.0,39.0,0.9961,3.34,0.55,9.2,5
+7.0,0.43,0.36,1.6,0.08900000000000001,14.0,37.0,0.99615,3.34,0.56,9.2,6
+12.8,0.3,0.74,2.6,0.095,9.0,28.0,0.9994,3.2,0.77,10.8,7
+12.8,0.3,0.74,2.6,0.095,9.0,28.0,0.9994,3.2,0.77,10.8,7
+7.8,0.57,0.31,1.8,0.069,26.0,120.0,0.99625,3.29,0.53,9.3,5
+7.8,0.44,0.28,2.7,0.1,18.0,95.0,0.9966,3.22,0.67,9.4,5
+11.0,0.3,0.58,2.1,0.054000000000000006,7.0,19.0,0.998,3.31,0.88,10.5,7
+9.7,0.53,0.6,2.0,0.039,5.0,19.0,0.99585,3.3,0.86,12.4,6
+8.0,0.725,0.24,2.8,0.083,10.0,62.0,0.99685,3.35,0.56,10.0,6
+11.6,0.44,0.64,2.1,0.059000000000000004,5.0,15.0,0.998,3.21,0.67,10.2,6
+8.2,0.57,0.26,2.2,0.06,28.0,65.0,0.9959,3.3,0.43,10.1,5
+7.8,0.735,0.08,2.4,0.092,10.0,41.0,0.9974,3.24,0.71,9.8,6
+7.0,0.49,0.49,5.6,0.06,26.0,121.0,0.9974,3.34,0.76,10.5,5
+8.7,0.625,0.16,2.0,0.10099999999999999,13.0,49.0,0.9962,3.14,0.57,11.0,5
+8.1,0.725,0.22,2.2,0.07200000000000001,11.0,41.0,0.9967,3.36,0.55,9.1,5
+7.5,0.49,0.19,1.9,0.076,10.0,44.0,0.9957,3.39,0.54,9.7,5
+7.8,0.53,0.33,2.4,0.08,24.0,144.0,0.99655,3.3,0.6,9.5,5
+7.8,0.34,0.37,2.0,0.08199999999999999,24.0,58.0,0.9964,3.34,0.59,9.4,6
+7.4,0.53,0.26,2.0,0.10099999999999999,16.0,72.0,0.9957,3.15,0.57,9.4,5
+6.8,0.61,0.04,1.5,0.057,5.0,10.0,0.99525,3.42,0.6,9.5,5
+8.6,0.645,0.25,2.0,0.083,8.0,28.0,0.99815,3.28,0.6,10.0,6
+8.4,0.635,0.36,2.0,0.08900000000000001,15.0,55.0,0.99745,3.31,0.57,10.4,4
+7.7,0.43,0.25,2.6,0.073,29.0,63.0,0.99615,3.37,0.58,10.5,6
+8.9,0.59,0.5,2.0,0.337,27.0,81.0,0.9964,3.04,1.61,9.5,6
+9.0,0.82,0.14,2.6,0.08900000000000001,9.0,23.0,0.9984,3.39,0.63,9.8,5
+7.7,0.43,0.25,2.6,0.073,29.0,63.0,0.99615,3.37,0.58,10.5,6
+6.9,0.52,0.25,2.6,0.081,10.0,37.0,0.99685,3.46,0.5,11.0,5
+5.2,0.48,0.04,1.6,0.054000000000000006,19.0,106.0,0.9927,3.54,0.62,12.2,7
+8.0,0.38,0.06,1.8,0.078,12.0,49.0,0.99625,3.37,0.52,9.9,6
+8.5,0.37,0.2,2.8,0.09,18.0,58.0,0.998,3.34,0.7,9.6,6
+6.9,0.52,0.25,2.6,0.081,10.0,37.0,0.99685,3.46,0.5,11.0,5
+8.2,1.0,0.09,2.3,0.065,7.0,37.0,0.99685,3.32,0.55,9.0,6
+7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6
+7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6
+7.2,0.645,0.0,1.9,0.09699999999999999,15.0,39.0,0.99675,3.37,0.58,9.2,6
+7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6
+8.2,1.0,0.09,2.3,0.065,7.0,37.0,0.99685,3.32,0.55,9.0,6
+8.9,0.635,0.37,1.7,0.263,5.0,62.0,0.9971,3.0,1.09,9.3,5
+12.0,0.38,0.56,2.1,0.09300000000000001,6.0,24.0,0.99925,3.14,0.71,10.9,6
+7.7,0.58,0.1,1.8,0.102,28.0,109.0,0.99565,3.08,0.49,9.8,6
+15.0,0.21,0.44,2.2,0.075,10.0,24.0,1.00005,3.07,0.84,9.2,7
+15.0,0.21,0.44,2.2,0.075,10.0,24.0,1.00005,3.07,0.84,9.2,7
+7.3,0.66,0.0,2.0,0.084,6.0,23.0,0.9983,3.61,0.96,9.9,6
+7.1,0.68,0.07,1.9,0.075,16.0,51.0,0.99685,3.38,0.52,9.5,5
+8.2,0.6,0.17,2.3,0.07200000000000001,11.0,73.0,0.9963,3.2,0.45,9.3,5
+7.7,0.53,0.06,1.7,0.07400000000000001,9.0,39.0,0.99615,3.35,0.48,9.8,6
+7.3,0.66,0.0,2.0,0.084,6.0,23.0,0.9983,3.61,0.96,9.9,6
+10.8,0.32,0.44,1.6,0.063,16.0,37.0,0.9985,3.22,0.78,10.0,6
+7.1,0.6,0.0,1.8,0.07400000000000001,16.0,34.0,0.9972,3.47,0.7,9.9,6
+11.1,0.35,0.48,3.1,0.09,5.0,21.0,0.9986,3.17,0.53,10.5,5
+7.7,0.775,0.42,1.9,0.092,8.0,86.0,0.9959,3.23,0.59,9.5,5
+7.1,0.6,0.0,1.8,0.07400000000000001,16.0,34.0,0.9972,3.47,0.7,9.9,6
+8.0,0.57,0.23,3.2,0.073,17.0,119.0,0.99675,3.26,0.57,9.3,5
+9.4,0.34,0.37,2.2,0.075,5.0,13.0,0.998,3.22,0.62,9.2,5
+6.6,0.695,0.0,2.1,0.075,12.0,56.0,0.9968,3.49,0.67,9.2,5
+7.7,0.41,0.76,1.8,0.611,8.0,45.0,0.9968,3.06,1.26,9.4,5
+10.0,0.31,0.47,2.6,0.085,14.0,33.0,0.99965,3.36,0.8,10.5,7
+7.9,0.33,0.23,1.7,0.077,18.0,45.0,0.99625,3.29,0.65,9.3,5
+7.0,0.975,0.04,2.0,0.087,12.0,67.0,0.99565,3.35,0.6,9.4,4
+8.0,0.52,0.03,1.7,0.07,10.0,35.0,0.99575,3.34,0.57,10.0,5
+7.9,0.37,0.23,1.8,0.077,23.0,49.0,0.9963,3.28,0.67,9.3,5
+12.5,0.56,0.49,2.4,0.064,5.0,27.0,0.9999,3.08,0.87,10.9,5
+11.8,0.26,0.52,1.8,0.071,6.0,10.0,0.9968,3.2,0.72,10.2,7
+8.1,0.87,0.0,3.3,0.096,26.0,61.0,1.00025,3.6,0.72,9.8,4
+7.9,0.35,0.46,3.6,0.078,15.0,37.0,0.9973,3.35,0.86,12.8,8
+6.9,0.54,0.04,3.0,0.077,7.0,27.0,0.9987,3.69,0.91,9.4,6
+11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6
+7.9,0.545,0.06,4.0,0.087,27.0,61.0,0.9965,3.36,0.67,10.7,6
+11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6
+10.9,0.37,0.58,4.0,0.071,17.0,65.0,0.99935,3.22,0.78,10.1,5
+8.4,0.715,0.2,2.4,0.076,10.0,38.0,0.99735,3.31,0.64,9.4,5
+7.5,0.65,0.18,7.0,0.08800000000000001,27.0,94.0,0.99915,3.38,0.77,9.4,5
+7.9,0.545,0.06,4.0,0.087,27.0,61.0,0.9965,3.36,0.67,10.7,6
+6.9,0.54,0.04,3.0,0.077,7.0,27.0,0.9987,3.69,0.91,9.4,6
+11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6
+10.3,0.32,0.45,6.4,0.073,5.0,13.0,0.9976,3.23,0.82,12.6,8
+8.9,0.4,0.32,5.6,0.087,10.0,47.0,0.9991,3.38,0.77,10.5,7
+11.4,0.26,0.44,3.6,0.071,6.0,19.0,0.9986,3.12,0.82,9.3,6
+7.7,0.27,0.68,3.5,0.358,5.0,10.0,0.9972,3.25,1.08,9.9,7
+7.6,0.52,0.12,3.0,0.067,12.0,53.0,0.9971,3.36,0.57,9.1,5
+8.9,0.4,0.32,5.6,0.087,10.0,47.0,0.9991,3.38,0.77,10.5,7
+9.9,0.59,0.07,3.4,0.102,32.0,71.0,1.00015,3.31,0.71,9.8,5
+9.9,0.59,0.07,3.4,0.102,32.0,71.0,1.00015,3.31,0.71,9.8,5
+12.0,0.45,0.55,2.0,0.073,25.0,49.0,0.9997,3.1,0.76,10.3,6
+7.5,0.4,0.12,3.0,0.092,29.0,53.0,0.9967,3.37,0.7,10.3,6
+8.7,0.52,0.09,2.5,0.091,20.0,49.0,0.9976,3.34,0.86,10.6,7
+11.6,0.42,0.53,3.3,0.105,33.0,98.0,1.001,3.2,0.95,9.2,5
+8.7,0.52,0.09,2.5,0.091,20.0,49.0,0.9976,3.34,0.86,10.6,7
+11.0,0.2,0.48,2.0,0.34299999999999997,6.0,18.0,0.9979,3.3,0.71,10.5,5
+10.4,0.55,0.23,2.7,0.091,18.0,48.0,0.9994,3.22,0.64,10.3,6
+6.9,0.36,0.25,2.4,0.098,5.0,16.0,0.9964,3.41,0.6,10.1,6
+13.3,0.34,0.52,3.2,0.094,17.0,53.0,1.0014,3.05,0.81,9.5,6
+10.8,0.5,0.46,2.5,0.073,5.0,27.0,1.0001,3.05,0.64,9.5,5
+10.6,0.83,0.37,2.6,0.086,26.0,70.0,0.9981,3.16,0.52,9.9,5
+7.1,0.63,0.06,2.0,0.083,8.0,29.0,0.99855,3.67,0.73,9.6,5
+7.2,0.65,0.02,2.3,0.094,5.0,31.0,0.9993,3.67,0.8,9.7,5
+6.9,0.67,0.06,2.1,0.08,8.0,33.0,0.99845,3.68,0.71,9.6,5
+7.5,0.53,0.06,2.6,0.086,20.0,44.0,0.9965,3.38,0.59,10.7,6
+11.1,0.18,0.48,1.5,0.068,7.0,15.0,0.9973,3.22,0.64,10.1,6
+8.3,0.705,0.12,2.6,0.092,12.0,28.0,0.9994,3.51,0.72,10.0,5
+7.4,0.67,0.12,1.6,0.18600000000000003,5.0,21.0,0.996,3.39,0.54,9.5,5
+8.4,0.65,0.6,2.1,0.11199999999999999,12.0,90.0,0.9973,3.2,0.52,9.2,5
+10.3,0.53,0.48,2.5,0.063,6.0,25.0,0.9998,3.12,0.59,9.3,6
+7.6,0.62,0.32,2.2,0.08199999999999999,7.0,54.0,0.9966,3.36,0.52,9.4,5
+10.3,0.41,0.42,2.4,0.213,6.0,14.0,0.9994,3.19,0.62,9.5,6
+10.3,0.43,0.44,2.4,0.214,5.0,12.0,0.9994,3.19,0.63,9.5,6
+7.4,0.29,0.38,1.7,0.062,9.0,30.0,0.9968,3.41,0.53,9.5,6
+10.3,0.53,0.48,2.5,0.063,6.0,25.0,0.9998,3.12,0.59,9.3,6
+7.9,0.53,0.24,2.0,0.07200000000000001,15.0,105.0,0.996,3.27,0.54,9.4,6
+9.0,0.46,0.31,2.8,0.09300000000000001,19.0,98.0,0.99815,3.32,0.63,9.5,6
+8.6,0.47,0.3,3.0,0.076,30.0,135.0,0.9976,3.3,0.53,9.4,5
+7.4,0.36,0.29,2.6,0.087,26.0,72.0,0.99645,3.39,0.68,11.0,5
+7.1,0.35,0.29,2.5,0.096,20.0,53.0,0.9962,3.42,0.65,11.0,6
+9.6,0.56,0.23,3.4,0.102,37.0,92.0,0.9996,3.3,0.65,10.1,5
+9.6,0.77,0.12,2.9,0.08199999999999999,30.0,74.0,0.99865,3.3,0.64,10.4,6
+9.8,0.66,0.39,3.2,0.083,21.0,59.0,0.9989,3.37,0.71,11.5,7
+9.6,0.77,0.12,2.9,0.08199999999999999,30.0,74.0,0.99865,3.3,0.64,10.4,6
+9.8,0.66,0.39,3.2,0.083,21.0,59.0,0.9989,3.37,0.71,11.5,7
+9.3,0.61,0.26,3.4,0.09,25.0,87.0,0.99975,3.24,0.62,9.7,5
+7.8,0.62,0.05,2.3,0.079,6.0,18.0,0.99735,3.29,0.63,9.3,5
+10.3,0.59,0.42,2.8,0.09,35.0,73.0,0.9990000000000001,3.28,0.7,9.5,6
+10.0,0.49,0.2,11.0,0.071,13.0,50.0,1.0015,3.16,0.69,9.2,6
+10.0,0.49,0.2,11.0,0.071,13.0,50.0,1.0015,3.16,0.69,9.2,6
+11.6,0.53,0.66,3.65,0.121,6.0,14.0,0.9978,3.05,0.74,11.5,7
+10.3,0.44,0.5,4.5,0.107,5.0,13.0,0.998,3.28,0.83,11.5,5
+13.4,0.27,0.62,2.6,0.08199999999999999,6.0,21.0,1.0002,3.16,0.67,9.7,6
+10.7,0.46,0.39,2.0,0.061,7.0,15.0,0.9981,3.18,0.62,9.5,5
+10.2,0.36,0.64,2.9,0.122,10.0,41.0,0.998,3.23,0.66,12.5,6
+10.2,0.36,0.64,2.9,0.122,10.0,41.0,0.998,3.23,0.66,12.5,6
+8.0,0.58,0.28,3.2,0.066,21.0,114.0,0.9973,3.22,0.54,9.4,6
+8.4,0.56,0.08,2.1,0.105,16.0,44.0,0.9958,3.13,0.52,11.0,5
+7.9,0.65,0.01,2.5,0.078,17.0,38.0,0.9963,3.34,0.74,11.7,7
+11.9,0.695,0.53,3.4,0.128,7.0,21.0,0.9992,3.17,0.84,12.2,7
+8.9,0.43,0.45,1.9,0.052000000000000005,6.0,16.0,0.9948,3.35,0.7,12.5,6
+7.8,0.43,0.32,2.8,0.08,29.0,58.0,0.9974,3.31,0.64,10.3,5
+12.4,0.49,0.58,3.0,0.10300000000000001,28.0,99.0,1.0008,3.16,1.0,11.5,6
+12.5,0.28,0.54,2.3,0.08199999999999999,12.0,29.0,0.9997,3.11,1.36,9.8,7
+12.2,0.34,0.5,2.4,0.066,10.0,21.0,1.0,3.12,1.18,9.2,6
+10.6,0.42,0.48,2.7,0.065,5.0,18.0,0.9972,3.21,0.87,11.3,6
+10.9,0.39,0.47,1.8,0.11800000000000001,6.0,14.0,0.9982,3.3,0.75,9.8,6
+10.9,0.39,0.47,1.8,0.11800000000000001,6.0,14.0,0.9982,3.3,0.75,9.8,6
+11.9,0.57,0.5,2.6,0.08199999999999999,6.0,32.0,1.0006,3.12,0.78,10.7,6
+7.0,0.685,0.0,1.9,0.067,40.0,63.0,0.9979,3.6,0.81,9.9,5
+6.6,0.815,0.02,2.7,0.07200000000000001,17.0,34.0,0.9955,3.58,0.89,12.3,7
+13.8,0.49,0.67,3.0,0.09300000000000001,6.0,15.0,0.9986,3.02,0.93,12.0,6
+9.6,0.56,0.31,2.8,0.08900000000000001,15.0,46.0,0.9979,3.11,0.92,10.0,6
+9.1,0.785,0.0,2.6,0.09300000000000001,11.0,28.0,0.9994,3.36,0.86,9.4,6
+10.7,0.67,0.22,2.7,0.107,17.0,34.0,1.0004,3.28,0.98,9.9,6
+9.1,0.795,0.0,2.6,0.096,11.0,26.0,0.9994,3.35,0.83,9.4,6
+7.7,0.665,0.0,2.4,0.09,8.0,19.0,0.9974,3.27,0.73,9.3,5
+13.5,0.53,0.79,4.8,0.12,23.0,77.0,1.0018,3.18,0.77,13.0,5
+6.1,0.21,0.4,1.4,0.066,40.5,165.0,0.9912,3.25,0.59,11.9,6
+6.7,0.75,0.01,2.4,0.078,17.0,32.0,0.9955,3.55,0.61,12.8,6
+11.5,0.41,0.52,3.0,0.08,29.0,55.0,1.0001,3.26,0.88,11.0,5
+10.5,0.42,0.66,2.95,0.11599999999999999,12.0,29.0,0.997,3.24,0.75,11.7,7
+11.9,0.43,0.66,3.1,0.109,10.0,23.0,1.0,3.15,0.85,10.4,7
+12.6,0.38,0.66,2.6,0.08800000000000001,10.0,41.0,1.001,3.17,0.68,9.8,6
+8.2,0.7,0.23,2.0,0.099,14.0,81.0,0.9973,3.19,0.7,9.4,5
+8.6,0.45,0.31,2.6,0.086,21.0,50.0,0.9982,3.37,0.91,9.9,6
+11.9,0.58,0.66,2.5,0.07200000000000001,6.0,37.0,0.9992,3.05,0.56,10.0,5
+12.5,0.46,0.63,2.0,0.071,6.0,15.0,0.9988,2.99,0.87,10.2,5
+12.8,0.615,0.66,5.8,0.083,7.0,42.0,1.0022,3.07,0.73,10.0,7
+10.0,0.42,0.5,3.4,0.107,7.0,21.0,0.9979,3.26,0.93,11.8,6
+12.8,0.615,0.66,5.8,0.083,7.0,42.0,1.0022,3.07,0.73,10.0,7
+10.4,0.575,0.61,2.6,0.076,11.0,24.0,1.0,3.16,0.69,9.0,5
+10.3,0.34,0.52,2.8,0.159,15.0,75.0,0.9998,3.18,0.64,9.4,5
+9.4,0.27,0.53,2.4,0.07400000000000001,6.0,18.0,0.9962,3.2,1.13,12.0,7
+6.9,0.765,0.02,2.3,0.063,35.0,63.0,0.9975,3.57,0.78,9.9,5
+7.9,0.24,0.4,1.6,0.055999999999999994,11.0,25.0,0.9967,3.32,0.87,8.7,6
+9.1,0.28,0.48,1.8,0.067,26.0,46.0,0.9967,3.32,1.04,10.6,6
+7.4,0.55,0.22,2.2,0.106,12.0,72.0,0.9959,3.05,0.63,9.2,5
+14.0,0.41,0.63,3.8,0.08900000000000001,6.0,47.0,1.0014,3.01,0.81,10.8,6
+11.5,0.54,0.71,4.4,0.124,6.0,15.0,0.9984,3.01,0.83,11.8,7
+11.5,0.45,0.5,3.0,0.078,19.0,47.0,1.0003,3.26,1.11,11.0,6
+9.4,0.27,0.53,2.4,0.07400000000000001,6.0,18.0,0.9962,3.2,1.13,12.0,7
+11.4,0.625,0.66,6.2,0.08800000000000001,6.0,24.0,0.9988,3.11,0.99,13.3,6
+8.3,0.42,0.38,2.5,0.094,24.0,60.0,0.9979,3.31,0.7,10.8,6
+8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6
+13.7,0.415,0.68,2.9,0.085,17.0,43.0,1.0014,3.06,0.8,10.0,6
+8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6
+8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6
+7.7,0.51,0.28,2.1,0.087,23.0,54.0,0.998,3.42,0.74,9.2,5
+7.4,0.63,0.07,2.4,0.09,11.0,37.0,0.9979,3.43,0.76,9.7,6
+7.8,0.54,0.26,2.0,0.08800000000000001,23.0,48.0,0.9981,3.41,0.74,9.2,6
+8.3,0.66,0.15,1.9,0.079,17.0,42.0,0.9972,3.31,0.54,9.6,6
+7.8,0.46,0.26,1.9,0.08800000000000001,23.0,53.0,0.9981,3.43,0.74,9.2,6
+9.6,0.38,0.31,2.5,0.096,16.0,49.0,0.9982,3.19,0.7,10.0,7
+5.6,0.85,0.05,1.4,0.045,12.0,88.0,0.9924,3.56,0.82,12.9,8
+13.7,0.415,0.68,2.9,0.085,17.0,43.0,1.0014,3.06,0.8,10.0,6
+9.5,0.37,0.52,2.0,0.08199999999999999,6.0,26.0,0.998,3.18,0.51,9.5,5
+8.4,0.665,0.61,2.0,0.11199999999999999,13.0,95.0,0.997,3.16,0.54,9.1,5
+12.7,0.6,0.65,2.3,0.063,6.0,25.0,0.9997,3.03,0.57,9.9,5
+12.0,0.37,0.76,4.2,0.066,7.0,38.0,1.0004,3.22,0.6,13.0,7
+6.6,0.735,0.02,7.9,0.122,68.0,124.0,0.9994,3.47,0.53,9.9,5
+11.5,0.59,0.59,2.6,0.087,13.0,49.0,0.9988,3.18,0.65,11.0,6
+11.5,0.59,0.59,2.6,0.087,13.0,49.0,0.9988,3.18,0.65,11.0,6
+8.7,0.765,0.22,2.3,0.064,9.0,42.0,0.9963,3.1,0.55,9.4,5
+6.6,0.735,0.02,7.9,0.122,68.0,124.0,0.9994,3.47,0.53,9.9,5
+7.7,0.26,0.3,1.7,0.059000000000000004,20.0,38.0,0.9949,3.29,0.47,10.8,6
+12.2,0.48,0.54,2.6,0.085,19.0,64.0,1.0,3.1,0.61,10.5,6
+11.4,0.6,0.49,2.7,0.085,10.0,41.0,0.9994,3.15,0.63,10.5,6
+7.7,0.69,0.05,2.7,0.075,15.0,27.0,0.9974,3.26,0.61,9.1,5
+8.7,0.31,0.46,1.4,0.059000000000000004,11.0,25.0,0.9966,3.36,0.76,10.1,6
+9.8,0.44,0.47,2.5,0.063,9.0,28.0,0.9981,3.24,0.65,10.8,6
+12.0,0.39,0.66,3.0,0.09300000000000001,12.0,30.0,0.9996,3.18,0.63,10.8,7
+10.4,0.34,0.58,3.7,0.174,6.0,16.0,0.997,3.19,0.7,11.3,6
+12.5,0.46,0.49,4.5,0.07,26.0,49.0,0.9981,3.05,0.57,9.6,4
+9.0,0.43,0.34,2.5,0.08,26.0,86.0,0.9987,3.38,0.62,9.5,6
+9.1,0.45,0.35,2.4,0.08,23.0,78.0,0.9987,3.38,0.62,9.5,5
+7.1,0.735,0.16,1.9,0.1,15.0,77.0,0.9966,3.27,0.64,9.3,5
+9.9,0.4,0.53,6.7,0.09699999999999999,6.0,19.0,0.9986,3.27,0.82,11.7,7
+8.8,0.52,0.34,2.7,0.087,24.0,122.0,0.9982,3.26,0.61,9.5,5
+8.6,0.725,0.24,6.6,0.11699999999999999,31.0,134.0,1.0014,3.32,1.07,9.3,5
+10.6,0.48,0.64,2.2,0.111,6.0,20.0,0.997,3.26,0.66,11.7,6
+7.0,0.58,0.12,1.9,0.091,34.0,124.0,0.9956,3.44,0.48,10.5,5
+11.9,0.38,0.51,2.0,0.121,7.0,20.0,0.9996,3.24,0.76,10.4,6
+6.8,0.77,0.0,1.8,0.066,34.0,52.0,0.9976,3.62,0.68,9.9,5
+9.5,0.56,0.33,2.4,0.08900000000000001,35.0,67.0,0.9972,3.28,0.73,11.8,7
+6.6,0.84,0.03,2.3,0.059000000000000004,32.0,48.0,0.9952,3.52,0.56,12.3,7
+7.7,0.96,0.2,2.0,0.047,15.0,60.0,0.9955,3.36,0.44,10.9,5
+10.5,0.24,0.47,2.1,0.066,6.0,24.0,0.9978,3.15,0.9,11.0,7
+7.7,0.96,0.2,2.0,0.047,15.0,60.0,0.9955,3.36,0.44,10.9,5
+6.6,0.84,0.03,2.3,0.059000000000000004,32.0,48.0,0.9952,3.52,0.56,12.3,7
+6.4,0.67,0.08,2.1,0.045,19.0,48.0,0.9949,3.49,0.49,11.4,6
+9.5,0.78,0.22,1.9,0.077,6.0,32.0,0.9988,3.26,0.56,10.6,6
+9.1,0.52,0.33,1.3,0.07,9.0,30.0,0.9978,3.24,0.6,9.3,5
+12.8,0.84,0.63,2.4,0.08800000000000001,13.0,35.0,0.9997,3.1,0.6,10.4,6
+10.5,0.24,0.47,2.1,0.066,6.0,24.0,0.9978,3.15,0.9,11.0,7
+7.8,0.55,0.35,2.2,0.07400000000000001,21.0,66.0,0.9974,3.25,0.56,9.2,5
+11.9,0.37,0.69,2.3,0.078,12.0,24.0,0.9958,3.0,0.65,12.8,6
+12.3,0.39,0.63,2.3,0.091,6.0,18.0,1.0004,3.16,0.49,9.5,5
+10.4,0.41,0.55,3.2,0.076,22.0,54.0,0.9996,3.15,0.89,9.9,6
+12.3,0.39,0.63,2.3,0.091,6.0,18.0,1.0004,3.16,0.49,9.5,5
+8.0,0.67,0.3,2.0,0.06,38.0,62.0,0.9958,3.26,0.56,10.2,6
+11.1,0.45,0.73,3.2,0.066,6.0,22.0,0.9986,3.17,0.66,11.2,6
+10.4,0.41,0.55,3.2,0.076,22.0,54.0,0.9996,3.15,0.89,9.9,6
+7.0,0.62,0.18,1.5,0.062,7.0,50.0,0.9951,3.08,0.6,9.3,5
+12.6,0.31,0.72,2.2,0.07200000000000001,6.0,29.0,0.9987,2.88,0.82,9.8,8
+11.9,0.4,0.65,2.15,0.068,7.0,27.0,0.9988,3.06,0.68,11.3,6
+15.6,0.685,0.76,3.7,0.1,6.0,43.0,1.0032,2.95,0.68,11.2,7
+10.0,0.44,0.49,2.7,0.077,11.0,19.0,0.9963,3.23,0.63,11.6,7
+5.3,0.57,0.01,1.7,0.054000000000000006,5.0,27.0,0.9934,3.57,0.84,12.5,7
+9.5,0.735,0.1,2.1,0.079,6.0,31.0,0.9986,3.23,0.56,10.1,6
+12.5,0.38,0.6,2.6,0.081,31.0,72.0,0.9996,3.1,0.73,10.5,5
+9.3,0.48,0.29,2.1,0.127,6.0,16.0,0.9968,3.22,0.72,11.2,5
+8.6,0.53,0.22,2.0,0.1,7.0,27.0,0.9967,3.2,0.56,10.2,6
+11.9,0.39,0.69,2.8,0.095,17.0,35.0,0.9994,3.1,0.61,10.8,6
+11.9,0.39,0.69,2.8,0.095,17.0,35.0,0.9994,3.1,0.61,10.8,6
+8.4,0.37,0.53,1.8,0.413,9.0,26.0,0.9979,3.06,1.06,9.1,6
+6.8,0.56,0.03,1.7,0.084,18.0,35.0,0.9968,3.44,0.63,10.0,6
+10.4,0.33,0.63,2.8,0.084,5.0,22.0,0.9998,3.26,0.74,11.2,7
+7.0,0.23,0.4,1.6,0.063,21.0,67.0,0.9952,3.5,0.63,11.1,5
+11.3,0.62,0.67,5.2,0.086,6.0,19.0,0.9988,3.22,0.69,13.4,8
+8.9,0.59,0.39,2.3,0.095,5.0,22.0,0.9986,3.37,0.58,10.3,5
+9.2,0.63,0.21,2.7,0.09699999999999999,29.0,65.0,0.9988,3.28,0.58,9.6,5
+10.4,0.33,0.63,2.8,0.084,5.0,22.0,0.9998,3.26,0.74,11.2,7
+11.6,0.58,0.66,2.2,0.07400000000000001,10.0,47.0,1.0008,3.25,0.57,9.0,3
+9.2,0.43,0.52,2.3,0.083,14.0,23.0,0.9976,3.35,0.61,11.3,6
+8.3,0.615,0.22,2.6,0.087,6.0,19.0,0.9982,3.26,0.61,9.3,5
+11.0,0.26,0.68,2.55,0.085,10.0,25.0,0.997,3.18,0.61,11.8,5
+8.1,0.66,0.7,2.2,0.098,25.0,129.0,0.9972,3.08,0.53,9.0,5
+11.5,0.315,0.54,2.1,0.084,5.0,15.0,0.9987,2.98,0.7,9.2,6
+10.0,0.29,0.4,2.9,0.098,10.0,26.0,1.0006,3.48,0.91,9.7,5
+10.3,0.5,0.42,2.0,0.069,21.0,51.0,0.9982,3.16,0.72,11.5,6
+8.8,0.46,0.45,2.6,0.065,7.0,18.0,0.9947,3.32,0.79,14.0,6
+11.4,0.36,0.69,2.1,0.09,6.0,21.0,1.0,3.17,0.62,9.2,6
+8.7,0.82,0.02,1.2,0.07,36.0,48.0,0.9952,3.2,0.58,9.8,5
+13.0,0.32,0.65,2.6,0.09300000000000001,15.0,47.0,0.9996,3.05,0.61,10.6,5
+9.6,0.54,0.42,2.4,0.081,25.0,52.0,0.997,3.2,0.71,11.4,6
+12.5,0.37,0.55,2.6,0.083,25.0,68.0,0.9995,3.15,0.82,10.4,6
+9.9,0.35,0.55,2.1,0.062,5.0,14.0,0.9971,3.26,0.79,10.6,5
+10.5,0.28,0.51,1.7,0.08,10.0,24.0,0.9982,3.2,0.89,9.4,6
+9.6,0.68,0.24,2.2,0.087,5.0,28.0,0.9988,3.14,0.6,10.2,5
+9.3,0.27,0.41,2.0,0.091,6.0,16.0,0.998,3.28,0.7,9.7,5
+10.4,0.24,0.49,1.8,0.075,6.0,20.0,0.9977,3.18,1.06,11.0,6
+9.6,0.68,0.24,2.2,0.087,5.0,28.0,0.9988,3.14,0.6,10.2,5
+9.4,0.685,0.11,2.7,0.077,6.0,31.0,0.9984,3.19,0.7,10.1,6
+10.6,0.28,0.39,15.5,0.069,6.0,23.0,1.0026,3.12,0.66,9.2,5
+9.4,0.3,0.56,2.8,0.08,6.0,17.0,0.9964,3.15,0.92,11.7,8
+10.6,0.36,0.59,2.2,0.152,6.0,18.0,0.9986,3.04,1.05,9.4,5
+10.6,0.36,0.6,2.2,0.152,7.0,18.0,0.9986,3.04,1.06,9.4,5
+10.6,0.44,0.68,4.1,0.114,6.0,24.0,0.997,3.06,0.66,13.4,6
+10.2,0.67,0.39,1.9,0.054000000000000006,6.0,17.0,0.9976,3.17,0.47,10.0,5
+10.2,0.67,0.39,1.9,0.054000000000000006,6.0,17.0,0.9976,3.17,0.47,10.0,5
+10.2,0.645,0.36,1.8,0.053,5.0,14.0,0.9982,3.17,0.42,10.0,6
+11.6,0.32,0.55,2.8,0.081,35.0,67.0,1.0002,3.32,0.92,10.8,7
+9.3,0.39,0.4,2.6,0.073,10.0,26.0,0.9984,3.34,0.75,10.2,6
+9.3,0.775,0.27,2.8,0.078,24.0,56.0,0.9984,3.31,0.67,10.6,6
+9.2,0.41,0.5,2.5,0.055,12.0,25.0,0.9952,3.34,0.79,13.3,7
+8.9,0.4,0.51,2.6,0.052000000000000005,13.0,27.0,0.995,3.32,0.9,13.4,7
+8.7,0.69,0.31,3.0,0.086,23.0,81.0,1.0002,3.48,0.74,11.6,6
+6.5,0.39,0.23,8.3,0.051,28.0,91.0,0.9952,3.44,0.55,12.1,6
+10.7,0.35,0.53,2.6,0.07,5.0,16.0,0.9972,3.15,0.65,11.0,8
+7.8,0.52,0.25,1.9,0.081,14.0,38.0,0.9984,3.43,0.65,9.0,6
+7.2,0.34,0.32,2.5,0.09,43.0,113.0,0.9966,3.32,0.79,11.1,5
+10.7,0.35,0.53,2.6,0.07,5.0,16.0,0.9972,3.15,0.65,11.0,8
+8.7,0.69,0.31,3.0,0.086,23.0,81.0,1.0002,3.48,0.74,11.6,6
+7.8,0.52,0.25,1.9,0.081,14.0,38.0,0.9984,3.43,0.65,9.0,6
+10.4,0.44,0.73,6.55,0.07400000000000001,38.0,76.0,0.9990000000000001,3.17,0.85,12.0,7
+10.4,0.44,0.73,6.55,0.07400000000000001,38.0,76.0,0.9990000000000001,3.17,0.85,12.0,7
+10.5,0.26,0.47,1.9,0.078,6.0,24.0,0.9976,3.18,1.04,10.9,7
+10.5,0.24,0.42,1.8,0.077,6.0,22.0,0.9976,3.21,1.05,10.8,7
+10.2,0.49,0.63,2.9,0.07200000000000001,10.0,26.0,0.9968,3.16,0.78,12.5,7
+10.4,0.24,0.46,1.8,0.075,6.0,21.0,0.9976,3.25,1.02,10.8,7
+11.2,0.67,0.55,2.3,0.084,6.0,13.0,1.0,3.17,0.71,9.5,6
+10.0,0.59,0.31,2.2,0.09,26.0,62.0,0.9994,3.18,0.63,10.2,6
+13.3,0.29,0.75,2.8,0.084,23.0,43.0,0.9986,3.04,0.68,11.4,7
+12.4,0.42,0.49,4.6,0.073,19.0,43.0,0.9978,3.02,0.61,9.5,5
+10.0,0.59,0.31,2.2,0.09,26.0,62.0,0.9994,3.18,0.63,10.2,6
+10.7,0.4,0.48,2.1,0.125,15.0,49.0,0.998,3.03,0.81,9.7,6
+10.5,0.51,0.64,2.4,0.107,6.0,15.0,0.9973,3.09,0.66,11.8,7
+10.5,0.51,0.64,2.4,0.107,6.0,15.0,0.9973,3.09,0.66,11.8,7
+8.5,0.655,0.49,6.1,0.122,34.0,151.0,1.001,3.31,1.14,9.3,5
+12.5,0.6,0.49,4.3,0.1,5.0,14.0,1.001,3.25,0.74,11.9,6
+10.4,0.61,0.49,2.1,0.2,5.0,16.0,0.9994,3.16,0.63,8.4,3
+10.9,0.21,0.49,2.8,0.08800000000000001,11.0,32.0,0.9972,3.22,0.68,11.7,6
+7.3,0.365,0.49,2.5,0.08800000000000001,39.0,106.0,0.9966,3.36,0.78,11.0,5
+9.8,0.25,0.49,2.7,0.08800000000000001,15.0,33.0,0.9982,3.42,0.9,10.0,6
+7.6,0.41,0.49,2.0,0.08800000000000001,16.0,43.0,0.998,3.48,0.64,9.1,5
+8.2,0.39,0.49,2.3,0.099,47.0,133.0,0.9979,3.38,0.99,9.8,5
+9.3,0.4,0.49,2.5,0.085,38.0,142.0,0.9978,3.22,0.55,9.4,5
+9.2,0.43,0.49,2.4,0.086,23.0,116.0,0.9976,3.23,0.64,9.5,5
+10.4,0.64,0.24,2.8,0.105,29.0,53.0,0.9998,3.24,0.67,9.9,5
+7.3,0.365,0.49,2.5,0.08800000000000001,39.0,106.0,0.9966,3.36,0.78,11.0,5
+7.0,0.38,0.49,2.5,0.09699999999999999,33.0,85.0,0.9962,3.39,0.77,11.4,6
+8.2,0.42,0.49,2.6,0.084,32.0,55.0,0.9988,3.34,0.75,8.7,6
+9.9,0.63,0.24,2.4,0.077,6.0,33.0,0.9974,3.09,0.57,9.4,5
+9.1,0.22,0.24,2.1,0.078,1.0,28.0,0.9990000000000001,3.41,0.87,10.3,6
+11.9,0.38,0.49,2.7,0.098,12.0,42.0,1.0004,3.16,0.61,10.3,5
+11.9,0.38,0.49,2.7,0.098,12.0,42.0,1.0004,3.16,0.61,10.3,5
+10.3,0.27,0.24,2.1,0.07200000000000001,15.0,33.0,0.9956,3.22,0.66,12.8,6
+10.0,0.48,0.24,2.7,0.102,13.0,32.0,1.0,3.28,0.56,10.0,6
+9.1,0.22,0.24,2.1,0.078,1.0,28.0,0.9990000000000001,3.41,0.87,10.3,6
+9.9,0.63,0.24,2.4,0.077,6.0,33.0,0.9974,3.09,0.57,9.4,5
+8.1,0.825,0.24,2.1,0.084,5.0,13.0,0.9972,3.37,0.77,10.7,6
+12.9,0.35,0.49,5.8,0.066,5.0,35.0,1.0014,3.2,0.66,12.0,7
+11.2,0.5,0.74,5.15,0.1,5.0,17.0,0.9996,3.22,0.62,11.2,5
+9.2,0.59,0.24,3.3,0.10099999999999999,20.0,47.0,0.9988,3.26,0.67,9.6,5
+9.5,0.46,0.49,6.3,0.064,5.0,17.0,0.9988,3.21,0.73,11.0,6
+9.3,0.715,0.24,2.1,0.07,5.0,20.0,0.9966,3.12,0.59,9.9,5
+11.2,0.66,0.24,2.5,0.085,16.0,53.0,0.9993,3.06,0.72,11.0,6
+14.3,0.31,0.74,1.8,0.075,6.0,15.0,1.0008,2.86,0.79,8.4,6
+9.1,0.47,0.49,2.6,0.094,38.0,106.0,0.9982,3.08,0.59,9.1,5
+7.5,0.55,0.24,2.0,0.078,10.0,28.0,0.9983,3.45,0.78,9.5,6
+10.6,0.31,0.49,2.5,0.067,6.0,21.0,0.9987,3.26,0.86,10.7,6
+12.4,0.35,0.49,2.6,0.079,27.0,69.0,0.9994,3.12,0.75,10.4,6
+9.0,0.53,0.49,1.9,0.171,6.0,25.0,0.9975,3.27,0.61,9.4,6
+6.8,0.51,0.01,2.1,0.07400000000000001,9.0,25.0,0.9958,3.33,0.56,9.5,6
+9.4,0.43,0.24,2.8,0.092,14.0,45.0,0.998,3.19,0.73,10.0,6
+9.5,0.46,0.24,2.7,0.092,14.0,44.0,0.998,3.12,0.74,10.0,6
+5.0,1.04,0.24,1.6,0.05,32.0,96.0,0.9934,3.74,0.62,11.5,5
+15.5,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5
+15.5,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5
+10.9,0.53,0.49,4.6,0.11800000000000001,10.0,17.0,1.0002,3.07,0.56,11.7,6
+15.6,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5
+10.9,0.53,0.49,4.6,0.11800000000000001,10.0,17.0,1.0002,3.07,0.56,11.7,6
+13.0,0.47,0.49,4.3,0.085,6.0,47.0,1.0021,3.3,0.68,12.7,6
+12.7,0.6,0.49,2.8,0.075,5.0,19.0,0.9994,3.14,0.57,11.4,5
+9.0,0.44,0.49,2.4,0.078,26.0,121.0,0.9978,3.23,0.58,9.2,5
+9.0,0.54,0.49,2.9,0.094,41.0,110.0,0.9982,3.08,0.61,9.2,5
+7.6,0.29,0.49,2.7,0.092,25.0,60.0,0.9971,3.31,0.61,10.1,6
+13.0,0.47,0.49,4.3,0.085,6.0,47.0,1.0021,3.3,0.68,12.7,6
+12.7,0.6,0.49,2.8,0.075,5.0,19.0,0.9994,3.14,0.57,11.4,5
+8.7,0.7,0.24,2.5,0.226,5.0,15.0,0.9991,3.32,0.6,9.0,6
+8.7,0.7,0.24,2.5,0.226,5.0,15.0,0.9991,3.32,0.6,9.0,6
+9.8,0.5,0.49,2.6,0.25,5.0,20.0,0.9990000000000001,3.31,0.79,10.7,6
+6.2,0.36,0.24,2.2,0.095,19.0,42.0,0.9946,3.57,0.57,11.7,6
+11.5,0.35,0.49,3.3,0.07,10.0,37.0,1.0003,3.32,0.91,11.0,6
+6.2,0.36,0.24,2.2,0.095,19.0,42.0,0.9946,3.57,0.57,11.7,6
+10.2,0.24,0.49,2.4,0.075,10.0,28.0,0.9978,3.14,0.61,10.4,5
+10.5,0.59,0.49,2.1,0.07,14.0,47.0,0.9991,3.3,0.56,9.6,4
+10.6,0.34,0.49,3.2,0.078,20.0,78.0,0.9992,3.19,0.7,10.0,6
+12.3,0.27,0.49,3.1,0.079,28.0,46.0,0.9993,3.2,0.8,10.2,6
+9.9,0.5,0.24,2.3,0.10300000000000001,6.0,14.0,0.9978,3.34,0.52,10.0,4
+8.8,0.44,0.49,2.8,0.083,18.0,111.0,0.9982,3.3,0.6,9.5,5
+8.8,0.47,0.49,2.9,0.085,17.0,110.0,0.9982,3.29,0.6,9.8,5
+10.6,0.31,0.49,2.2,0.063,18.0,40.0,0.9976,3.14,0.51,9.8,6
+12.3,0.5,0.49,2.2,0.08900000000000001,5.0,14.0,1.0002,3.19,0.44,9.6,5
+12.3,0.5,0.49,2.2,0.08900000000000001,5.0,14.0,1.0002,3.19,0.44,9.6,5
+11.7,0.49,0.49,2.2,0.083,5.0,15.0,1.0,3.19,0.43,9.2,5
+12.0,0.28,0.49,1.9,0.07400000000000001,10.0,21.0,0.9976,2.98,0.66,9.9,7
+11.8,0.33,0.49,3.4,0.09300000000000001,54.0,80.0,1.0002,3.3,0.76,10.7,7
+7.6,0.51,0.24,2.4,0.091,8.0,38.0,0.998,3.47,0.66,9.6,6
+11.1,0.31,0.49,2.7,0.094,16.0,47.0,0.9986,3.12,1.02,10.6,7
+7.3,0.73,0.24,1.9,0.10800000000000001,18.0,102.0,0.9967,3.26,0.59,9.3,5
+5.0,0.42,0.24,2.0,0.06,19.0,50.0,0.9917,3.72,0.74,14.0,8
+10.2,0.29,0.49,2.6,0.059000000000000004,5.0,13.0,0.9976,3.05,0.74,10.5,7
+9.0,0.45,0.49,2.6,0.084,21.0,75.0,0.9987,3.35,0.57,9.7,5
+6.6,0.39,0.49,1.7,0.07,23.0,149.0,0.9922,3.12,0.5,11.5,6
+9.0,0.45,0.49,2.6,0.084,21.0,75.0,0.9987,3.35,0.57,9.7,5
+9.9,0.49,0.58,3.5,0.094,9.0,43.0,1.0004,3.29,0.58,9.0,5
+7.9,0.72,0.17,2.6,0.096,20.0,38.0,0.9978,3.4,0.53,9.5,5
+8.9,0.595,0.41,7.9,0.086,30.0,109.0,0.9998,3.27,0.57,9.3,5
+12.4,0.4,0.51,2.0,0.059000000000000004,6.0,24.0,0.9994,3.04,0.6,9.3,6
+11.9,0.58,0.58,1.9,0.071,5.0,18.0,0.998,3.09,0.63,10.0,6
+8.5,0.585,0.18,2.1,0.078,5.0,30.0,0.9967,3.2,0.48,9.8,6
+12.7,0.59,0.45,2.3,0.08199999999999999,11.0,22.0,1.0,3.0,0.7,9.3,6
+8.2,0.915,0.27,2.1,0.08800000000000001,7.0,23.0,0.9962,3.26,0.47,10.0,4
+13.2,0.46,0.52,2.2,0.071,12.0,35.0,1.0006,3.1,0.56,9.0,6
+7.7,0.835,0.0,2.6,0.081,6.0,14.0,0.9975,3.3,0.52,9.3,5
+13.2,0.46,0.52,2.2,0.071,12.0,35.0,1.0006,3.1,0.56,9.0,6
+8.3,0.58,0.13,2.9,0.096,14.0,63.0,0.9984,3.17,0.62,9.1,6
+8.3,0.6,0.13,2.6,0.085,6.0,24.0,0.9984,3.31,0.59,9.2,6
+9.4,0.41,0.48,4.6,0.07200000000000001,10.0,20.0,0.9973,3.34,0.79,12.2,7
+8.8,0.48,0.41,3.3,0.092,26.0,52.0,0.9982,3.31,0.53,10.5,6
+10.1,0.65,0.37,5.1,0.11,11.0,65.0,1.0026,3.32,0.64,10.4,6
+6.3,0.36,0.19,3.2,0.075,15.0,39.0,0.9956,3.56,0.52,12.7,6
+8.8,0.24,0.54,2.5,0.083,25.0,57.0,0.9983,3.39,0.54,9.2,5
+13.2,0.38,0.55,2.7,0.081,5.0,16.0,1.0006,2.98,0.54,9.4,5
+7.5,0.64,0.0,2.4,0.077,18.0,29.0,0.9965,3.32,0.6,10.0,6
+8.2,0.39,0.38,1.5,0.057999999999999996,10.0,29.0,0.9962,3.26,0.74,9.8,5
+9.2,0.755,0.18,2.2,0.14800000000000002,10.0,103.0,0.9969,2.87,1.36,10.2,6
+9.6,0.6,0.5,2.3,0.079,28.0,71.0,0.9997,3.5,0.57,9.7,5
+9.6,0.6,0.5,2.3,0.079,28.0,71.0,0.9997,3.5,0.57,9.7,5
+11.5,0.31,0.51,2.2,0.079,14.0,28.0,0.9982,3.03,0.93,9.8,6
+11.4,0.46,0.5,2.7,0.122,4.0,17.0,1.0006,3.13,0.7,10.2,5
+11.3,0.37,0.41,2.3,0.08800000000000001,6.0,16.0,0.9988,3.09,0.8,9.3,5
+8.3,0.54,0.24,3.4,0.076,16.0,112.0,0.9976,3.27,0.61,9.4,5
+8.2,0.56,0.23,3.4,0.078,14.0,104.0,0.9976,3.28,0.62,9.4,5
+10.0,0.58,0.22,1.9,0.08,9.0,32.0,0.9974,3.13,0.55,9.5,5
+7.9,0.51,0.25,2.9,0.077,21.0,45.0,0.9974,3.49,0.96,12.1,6
+6.8,0.69,0.0,5.6,0.124,21.0,58.0,0.9997,3.46,0.72,10.2,5
+6.8,0.69,0.0,5.6,0.124,21.0,58.0,0.9997,3.46,0.72,10.2,5
+8.8,0.6,0.29,2.2,0.098,5.0,15.0,0.9988,3.36,0.49,9.1,5
+8.8,0.6,0.29,2.2,0.098,5.0,15.0,0.9988,3.36,0.49,9.1,5
+8.7,0.54,0.26,2.5,0.09699999999999999,7.0,31.0,0.9976,3.27,0.6,9.3,6
+7.6,0.685,0.23,2.3,0.111,20.0,84.0,0.9964,3.21,0.61,9.3,5
+8.7,0.54,0.26,2.5,0.09699999999999999,7.0,31.0,0.9976,3.27,0.6,9.3,6
+10.4,0.28,0.54,2.7,0.105,5.0,19.0,0.9988,3.25,0.63,9.5,5
+7.6,0.41,0.14,3.0,0.087,21.0,43.0,0.9964,3.32,0.57,10.5,6
+10.1,0.935,0.22,3.4,0.105,11.0,86.0,1.001,3.43,0.64,11.3,4
+7.9,0.35,0.21,1.9,0.073,46.0,102.0,0.9964,3.27,0.58,9.5,5
+8.7,0.84,0.0,1.4,0.065,24.0,33.0,0.9954,3.27,0.55,9.7,5
+9.6,0.88,0.28,2.4,0.086,30.0,147.0,0.9979,3.24,0.53,9.4,5
+9.5,0.885,0.27,2.3,0.084,31.0,145.0,0.9978,3.24,0.53,9.4,5
+7.7,0.915,0.12,2.2,0.14300000000000002,7.0,23.0,0.9964,3.35,0.65,10.2,7
+8.9,0.29,0.35,1.9,0.067,25.0,57.0,0.997,3.18,1.36,10.3,6
+9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5
+9.5,0.59,0.44,2.3,0.071,21.0,68.0,0.9992,3.46,0.63,9.5,5
+9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5
+9.5,0.59,0.44,2.3,0.071,21.0,68.0,0.9992,3.46,0.63,9.5,5
+9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5
+7.8,0.64,0.1,6.0,0.115,5.0,11.0,0.9984,3.37,0.69,10.1,7
+7.3,0.67,0.05,3.6,0.107,6.0,20.0,0.9972,3.4,0.63,10.1,5
+8.3,0.845,0.01,2.2,0.07,5.0,14.0,0.9967,3.32,0.58,11.0,4
+8.7,0.48,0.3,2.8,0.066,10.0,28.0,0.9964,3.33,0.67,11.2,7
+6.7,0.42,0.27,8.6,0.068,24.0,148.0,0.9948,3.16,0.57,11.3,6
+10.7,0.43,0.39,2.2,0.106,8.0,32.0,0.9986,2.89,0.5,9.6,5
+9.8,0.88,0.25,2.5,0.10400000000000001,35.0,155.0,1.001,3.41,0.67,11.2,5
+15.9,0.36,0.65,7.5,0.096,22.0,71.0,0.9976,2.98,0.84,14.9,5
+9.4,0.33,0.59,2.8,0.079,9.0,30.0,0.9976,3.12,0.54,12.0,6
+8.6,0.47,0.47,2.4,0.07400000000000001,7.0,29.0,0.9979,3.08,0.46,9.5,5
+9.7,0.55,0.17,2.9,0.087,20.0,53.0,1.0004,3.14,0.61,9.4,5
+10.7,0.43,0.39,2.2,0.106,8.0,32.0,0.9986,2.89,0.5,9.6,5
+12.0,0.5,0.59,1.4,0.073,23.0,42.0,0.998,2.92,0.68,10.5,7
+7.2,0.52,0.07,1.4,0.07400000000000001,5.0,20.0,0.9973,3.32,0.81,9.6,6
+7.1,0.84,0.02,4.4,0.096,5.0,13.0,0.997,3.41,0.57,11.0,4
+7.2,0.52,0.07,1.4,0.07400000000000001,5.0,20.0,0.9973,3.32,0.81,9.6,6
+7.5,0.42,0.31,1.6,0.08,15.0,42.0,0.9978,3.31,0.64,9.0,5
+7.2,0.57,0.06,1.6,0.076,9.0,27.0,0.9972,3.36,0.7,9.6,6
+10.1,0.28,0.46,1.8,0.05,5.0,13.0,0.9974,3.04,0.79,10.2,6
+12.1,0.4,0.52,2.0,0.092,15.0,54.0,1.0,3.03,0.66,10.2,5
+9.4,0.59,0.14,2.0,0.084,25.0,48.0,0.9981,3.14,0.56,9.7,5
+8.3,0.49,0.36,1.8,0.222,6.0,16.0,0.998,3.18,0.6,9.5,6
+11.3,0.34,0.45,2.0,0.08199999999999999,6.0,15.0,0.9988,2.94,0.66,9.2,6
+10.0,0.73,0.43,2.3,0.059000000000000004,15.0,31.0,0.9966,3.15,0.57,11.0,5
+11.3,0.34,0.45,2.0,0.08199999999999999,6.0,15.0,0.9988,2.94,0.66,9.2,6
+6.9,0.4,0.24,2.5,0.083,30.0,45.0,0.9959,3.26,0.58,10.0,5
+8.2,0.73,0.21,1.7,0.07400000000000001,5.0,13.0,0.9968,3.2,0.52,9.5,5
+9.8,1.24,0.34,2.0,0.079,32.0,151.0,0.998,3.15,0.53,9.5,5
+8.2,0.73,0.21,1.7,0.07400000000000001,5.0,13.0,0.9968,3.2,0.52,9.5,5
+10.8,0.4,0.41,2.2,0.084,7.0,17.0,0.9984,3.08,0.67,9.3,6
+9.3,0.41,0.39,2.2,0.064,12.0,31.0,0.9984,3.26,0.65,10.2,5
+10.8,0.4,0.41,2.2,0.084,7.0,17.0,0.9984,3.08,0.67,9.3,6
+8.6,0.8,0.11,2.3,0.084,12.0,31.0,0.9979,3.4,0.48,9.9,5
+8.3,0.78,0.1,2.6,0.081,45.0,87.0,0.9983,3.48,0.53,10.0,5
+10.8,0.26,0.45,3.3,0.06,20.0,49.0,0.9972,3.13,0.54,9.6,5
+13.3,0.43,0.58,1.9,0.07,15.0,40.0,1.0004,3.06,0.49,9.0,5
+8.0,0.45,0.23,2.2,0.094,16.0,29.0,0.9962,3.21,0.49,10.2,6
+8.5,0.46,0.31,2.25,0.078,32.0,58.0,0.998,3.33,0.54,9.8,5
+8.1,0.78,0.23,2.6,0.059000000000000004,5.0,15.0,0.997,3.37,0.56,11.3,5
+9.8,0.98,0.32,2.3,0.078,35.0,152.0,0.998,3.25,0.48,9.4,5
+8.1,0.78,0.23,2.6,0.059000000000000004,5.0,15.0,0.997,3.37,0.56,11.3,5
+7.1,0.65,0.18,1.8,0.07,13.0,40.0,0.997,3.44,0.6,9.1,5
+9.1,0.64,0.23,3.1,0.095,13.0,38.0,0.9998,3.28,0.59,9.7,5
+7.7,0.66,0.04,1.6,0.039,4.0,9.0,0.9962,3.4,0.47,9.4,5
+8.1,0.38,0.48,1.8,0.157,5.0,17.0,0.9976,3.3,1.05,9.4,5
+7.4,1.185,0.0,4.25,0.09699999999999999,5.0,14.0,0.9966,3.63,0.54,10.7,3
+9.2,0.92,0.24,2.6,0.087,12.0,93.0,0.9998,3.48,0.54,9.8,5
+8.6,0.49,0.51,2.0,0.42200000000000004,16.0,62.0,0.9979,3.03,1.17,9.0,5
+9.0,0.48,0.32,2.8,0.084,21.0,122.0,0.9984,3.32,0.62,9.4,5
+9.0,0.47,0.31,2.7,0.084,24.0,125.0,0.9984,3.31,0.61,9.4,5
+5.1,0.47,0.02,1.3,0.034,18.0,44.0,0.9921,3.9,0.62,12.8,6
+7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6
+7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6
+9.4,0.615,0.28,3.2,0.087,18.0,72.0,1.0001,3.31,0.53,9.7,5
+11.8,0.38,0.55,2.1,0.071,5.0,19.0,0.9986,3.11,0.62,10.8,6
+10.6,1.02,0.43,2.9,0.076,26.0,88.0,0.9984,3.08,0.57,10.1,6
+7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6
+7.0,0.64,0.02,2.1,0.067,9.0,23.0,0.997,3.47,0.67,9.4,6
+7.5,0.38,0.48,2.6,0.073,22.0,84.0,0.9972,3.32,0.7,9.6,4
+9.1,0.765,0.04,1.6,0.078,4.0,14.0,0.998,3.29,0.54,9.7,4
+8.4,1.035,0.15,6.0,0.073,11.0,54.0,0.9990000000000001,3.37,0.49,9.9,5
+7.0,0.78,0.08,2.0,0.09300000000000001,10.0,19.0,0.9956,3.4,0.47,10.0,5
+7.4,0.49,0.19,3.0,0.077,16.0,37.0,0.9966,3.37,0.51,10.5,5
+7.8,0.545,0.12,2.5,0.068,11.0,35.0,0.996,3.34,0.61,11.6,6
+9.7,0.31,0.47,1.6,0.062,13.0,33.0,0.9983,3.27,0.66,10.0,6
+10.6,1.025,0.43,2.8,0.08,21.0,84.0,0.9985,3.06,0.57,10.1,5
+8.9,0.565,0.34,3.0,0.09300000000000001,16.0,112.0,0.9998,3.38,0.61,9.5,5
+8.7,0.69,0.0,3.2,0.084,13.0,33.0,0.9992,3.36,0.45,9.4,5
+8.0,0.43,0.36,2.3,0.075,10.0,48.0,0.9976,3.34,0.46,9.4,5
+9.9,0.74,0.28,2.6,0.078,21.0,77.0,0.998,3.28,0.51,9.8,5
+7.2,0.49,0.18,2.7,0.069,13.0,34.0,0.9967,3.29,0.48,9.2,6
+8.0,0.43,0.36,2.3,0.075,10.0,48.0,0.9976,3.34,0.46,9.4,5
+7.6,0.46,0.11,2.6,0.079,12.0,49.0,0.9968,3.21,0.57,10.0,5
+8.4,0.56,0.04,2.0,0.08199999999999999,10.0,22.0,0.9976,3.22,0.44,9.6,5
+7.1,0.66,0.0,3.9,0.086,17.0,45.0,0.9976,3.46,0.54,9.5,5
+8.4,0.56,0.04,2.0,0.08199999999999999,10.0,22.0,0.9976,3.22,0.44,9.6,5
+8.9,0.48,0.24,2.85,0.094,35.0,106.0,0.9982,3.1,0.53,9.2,5
+7.6,0.42,0.08,2.7,0.084,15.0,48.0,0.9968,3.21,0.59,10.0,5
+7.1,0.31,0.3,2.2,0.053,36.0,127.0,0.9965,2.94,1.62,9.5,5
+7.5,1.115,0.1,3.1,0.086,5.0,12.0,0.9958,3.54,0.6,11.2,4
+9.0,0.66,0.17,3.0,0.077,5.0,13.0,0.9976,3.29,0.55,10.4,5
+8.1,0.72,0.09,2.8,0.084,18.0,49.0,0.9994,3.43,0.72,11.1,6
+6.4,0.57,0.02,1.8,0.067,4.0,11.0,0.997,3.46,0.68,9.5,5
+6.4,0.57,0.02,1.8,0.067,4.0,11.0,0.997,3.46,0.68,9.5,5
+6.4,0.865,0.03,3.2,0.071,27.0,58.0,0.995,3.61,0.49,12.7,6
+9.5,0.55,0.66,2.3,0.387,12.0,37.0,0.9982,3.17,0.67,9.6,5
+8.9,0.875,0.13,3.45,0.08800000000000001,4.0,14.0,0.9994,3.44,0.52,11.5,5
+7.3,0.835,0.03,2.1,0.092,10.0,19.0,0.9966,3.39,0.47,9.6,5
+7.0,0.45,0.34,2.7,0.08199999999999999,16.0,72.0,0.998,3.55,0.6,9.5,5
+7.7,0.56,0.2,2.0,0.075,9.0,39.0,0.9987,3.48,0.62,9.3,5
+7.7,0.965,0.1,2.1,0.11199999999999999,11.0,22.0,0.9963,3.26,0.5,9.5,5
+7.7,0.965,0.1,2.1,0.11199999999999999,11.0,22.0,0.9963,3.26,0.5,9.5,5
+8.2,0.59,0.0,2.5,0.09300000000000001,19.0,58.0,1.0002,3.5,0.65,9.3,6
+9.0,0.46,0.23,2.8,0.092,28.0,104.0,0.9983,3.1,0.56,9.2,5
+9.0,0.69,0.0,2.4,0.08800000000000001,19.0,38.0,0.9990000000000001,3.35,0.6,9.3,5
+8.3,0.76,0.29,4.2,0.075,12.0,16.0,0.9965,3.45,0.68,11.5,6
+9.2,0.53,0.24,2.6,0.078,28.0,139.0,0.9978799999999999,3.21,0.57,9.5,5
+6.5,0.615,0.0,1.9,0.065,9.0,18.0,0.9972,3.46,0.65,9.2,5
+11.6,0.41,0.58,2.8,0.096,25.0,101.0,1.00024,3.13,0.53,10.0,5
+11.1,0.39,0.54,2.7,0.095,21.0,101.0,1.0001,3.13,0.51,9.5,5
+7.3,0.51,0.18,2.1,0.07,12.0,28.0,0.9976799999999999,3.52,0.73,9.5,6
+8.2,0.34,0.38,2.5,0.08,12.0,57.0,0.9978,3.3,0.47,9.0,6
+8.6,0.33,0.4,2.6,0.083,16.0,68.0,0.99782,3.3,0.48,9.4,5
+7.2,0.5,0.18,2.1,0.071,12.0,31.0,0.99761,3.52,0.72,9.6,6
+7.3,0.51,0.18,2.1,0.07,12.0,28.0,0.9976799999999999,3.52,0.73,9.5,6
+8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5
+8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5
+7.6,0.54,0.13,2.5,0.09699999999999999,24.0,66.0,0.99785,3.39,0.61,9.4,5
+8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5
+7.8,0.48,0.68,1.7,0.415,14.0,32.0,0.99656,3.09,1.06,9.1,6
+7.8,0.91,0.07,1.9,0.057999999999999996,22.0,47.0,0.99525,3.51,0.43,10.7,6
+6.3,0.98,0.01,2.0,0.057,15.0,33.0,0.9948799999999999,3.6,0.46,11.2,6
+8.1,0.87,0.0,2.2,0.084,10.0,31.0,0.99656,3.25,0.5,9.8,5
+8.1,0.87,0.0,2.2,0.084,10.0,31.0,0.99656,3.25,0.5,9.8,5
+8.8,0.42,0.21,2.5,0.092,33.0,88.0,0.99823,3.19,0.52,9.2,5
+9.0,0.58,0.25,2.8,0.075,9.0,104.0,0.99779,3.23,0.57,9.7,5
+9.3,0.655,0.26,2.0,0.096,5.0,35.0,0.9973799999999999,3.25,0.42,9.6,5
+8.8,0.7,0.0,1.7,0.069,8.0,19.0,0.9970100000000001,3.31,0.53,10.0,6
+9.3,0.655,0.26,2.0,0.096,5.0,35.0,0.9973799999999999,3.25,0.42,9.6,5
+9.1,0.68,0.11,2.8,0.09300000000000001,11.0,44.0,0.9988799999999999,3.31,0.55,9.5,6
+9.2,0.67,0.1,3.0,0.091,12.0,48.0,0.9988799999999999,3.31,0.54,9.5,6
+8.8,0.59,0.18,2.9,0.08900000000000001,12.0,74.0,0.9973799999999999,3.14,0.54,9.4,5
+7.5,0.6,0.32,2.7,0.10300000000000001,13.0,98.0,0.9993799999999999,3.45,0.62,9.5,5
+7.1,0.59,0.02,2.3,0.08199999999999999,24.0,94.0,0.99744,3.55,0.53,9.7,6
+7.9,0.72,0.01,1.9,0.076,7.0,32.0,0.9966799999999999,3.39,0.54,9.6,5
+7.1,0.59,0.02,2.3,0.08199999999999999,24.0,94.0,0.99744,3.55,0.53,9.7,6
+9.4,0.685,0.26,2.4,0.08199999999999999,23.0,143.0,0.9978,3.28,0.55,9.4,5
+9.5,0.57,0.27,2.3,0.08199999999999999,23.0,144.0,0.99782,3.27,0.55,9.4,5
+7.9,0.4,0.29,1.8,0.157,1.0,44.0,0.9973,3.3,0.92,9.5,6
+7.9,0.4,0.3,1.8,0.157,2.0,45.0,0.9972700000000001,3.31,0.91,9.5,6
+7.2,1.0,0.0,3.0,0.102,7.0,16.0,0.9958600000000001,3.43,0.46,10.0,5
+6.9,0.765,0.18,2.4,0.243,5.5,48.0,0.9961200000000001,3.4,0.6,10.3,6
+6.9,0.635,0.17,2.4,0.24100000000000002,6.0,18.0,0.9961,3.4,0.59,10.3,6
+8.3,0.43,0.3,3.4,0.079,7.0,34.0,0.9978799999999999,3.36,0.61,10.5,5
+7.1,0.52,0.03,2.6,0.076,21.0,92.0,0.99745,3.5,0.6,9.8,5
+7.0,0.57,0.0,2.0,0.19,12.0,45.0,0.9967600000000001,3.31,0.6,9.4,6
+6.5,0.46,0.14,2.4,0.114,9.0,37.0,0.9973200000000001,3.66,0.65,9.8,5
+9.0,0.82,0.05,2.4,0.081,26.0,96.0,0.9981399999999999,3.36,0.53,10.0,5
+6.5,0.46,0.14,2.4,0.114,9.0,37.0,0.9973200000000001,3.66,0.65,9.8,5
+7.1,0.59,0.01,2.5,0.077,20.0,85.0,0.99746,3.55,0.59,9.8,5
+9.9,0.35,0.41,2.3,0.083,11.0,61.0,0.9982,3.21,0.5,9.5,5
+9.9,0.35,0.41,2.3,0.083,11.0,61.0,0.9982,3.21,0.5,9.5,5
+10.0,0.56,0.24,2.2,0.079,19.0,58.0,0.9991,3.18,0.56,10.1,6
+10.0,0.56,0.24,2.2,0.079,19.0,58.0,0.9991,3.18,0.56,10.1,6
+8.6,0.63,0.17,2.9,0.099,21.0,119.0,0.998,3.09,0.52,9.3,5
+7.4,0.37,0.43,2.6,0.08199999999999999,18.0,82.0,0.99708,3.33,0.68,9.7,6
+8.8,0.64,0.17,2.9,0.084,25.0,130.0,0.99818,3.23,0.54,9.6,5
+7.1,0.61,0.02,2.5,0.081,17.0,87.0,0.99745,3.48,0.6,9.7,6
+7.7,0.6,0.0,2.6,0.055,7.0,13.0,0.99639,3.38,0.56,10.8,5
+10.1,0.27,0.54,2.3,0.065,7.0,26.0,0.99531,3.17,0.53,12.5,6
+10.8,0.89,0.3,2.6,0.132,7.0,60.0,0.9978600000000001,2.99,1.18,10.2,5
+8.7,0.46,0.31,2.5,0.126,24.0,64.0,0.99746,3.1,0.74,9.6,5
+9.3,0.37,0.44,1.6,0.038,21.0,42.0,0.99526,3.24,0.81,10.8,7
+9.4,0.5,0.34,3.6,0.08199999999999999,5.0,14.0,0.9987,3.29,0.52,10.7,6
+9.4,0.5,0.34,3.6,0.08199999999999999,5.0,14.0,0.9987,3.29,0.52,10.7,6
+7.2,0.61,0.08,4.0,0.08199999999999999,26.0,108.0,0.99641,3.25,0.51,9.4,5
+8.6,0.55,0.09,3.3,0.068,8.0,17.0,0.99735,3.23,0.44,10.0,5
+5.1,0.585,0.0,1.7,0.044000000000000004,14.0,86.0,0.99264,3.56,0.94,12.9,7
+7.7,0.56,0.08,2.5,0.114,14.0,46.0,0.9971,3.24,0.66,9.6,6
+8.4,0.52,0.22,2.7,0.084,4.0,18.0,0.99682,3.26,0.57,9.9,6
+8.2,0.28,0.4,2.4,0.052000000000000005,4.0,10.0,0.99356,3.33,0.7,12.8,7
+8.4,0.25,0.39,2.0,0.040999999999999995,4.0,10.0,0.9938600000000001,3.27,0.71,12.5,7
+8.2,0.28,0.4,2.4,0.052000000000000005,4.0,10.0,0.99356,3.33,0.7,12.8,7
+7.4,0.53,0.12,1.9,0.165,4.0,12.0,0.99702,3.26,0.86,9.2,5
+7.6,0.48,0.31,2.8,0.07,4.0,15.0,0.9969299999999999,3.22,0.55,10.3,6
+7.3,0.49,0.1,2.6,0.068,4.0,14.0,0.9956200000000001,3.3,0.47,10.5,5
+12.9,0.5,0.55,2.8,0.07200000000000001,7.0,24.0,1.0001200000000001,3.09,0.68,10.9,6
+10.8,0.45,0.33,2.5,0.099,20.0,38.0,0.99818,3.24,0.71,10.8,5
+6.9,0.39,0.24,2.1,0.102,4.0,7.0,0.9946200000000001,3.44,0.58,11.4,4
+12.6,0.41,0.54,2.8,0.10300000000000001,19.0,41.0,0.99939,3.21,0.76,11.3,6
+10.8,0.45,0.33,2.5,0.099,20.0,38.0,0.99818,3.24,0.71,10.8,5
+9.8,0.51,0.19,3.2,0.081,8.0,30.0,0.9984,3.23,0.58,10.5,6
+10.8,0.29,0.42,1.6,0.084,19.0,27.0,0.99545,3.28,0.73,11.9,6
+7.1,0.715,0.0,2.35,0.071,21.0,47.0,0.9963200000000001,3.29,0.45,9.4,5
+9.1,0.66,0.15,3.2,0.09699999999999999,9.0,59.0,0.99976,3.28,0.54,9.6,5
+7.0,0.685,0.0,1.9,0.099,9.0,22.0,0.9960600000000001,3.34,0.6,9.7,5
+4.9,0.42,0.0,2.1,0.048,16.0,42.0,0.99154,3.71,0.74,14.0,7
+6.7,0.54,0.13,2.0,0.076,15.0,36.0,0.9973,3.61,0.64,9.8,5
+6.7,0.54,0.13,2.0,0.076,15.0,36.0,0.9973,3.61,0.64,9.8,5
+7.1,0.48,0.28,2.8,0.068,6.0,16.0,0.99682,3.24,0.53,10.3,5
+7.1,0.46,0.14,2.8,0.076,15.0,37.0,0.99624,3.36,0.49,10.7,5
+7.5,0.27,0.34,2.3,0.05,4.0,8.0,0.9951,3.4,0.64,11.0,7
+7.1,0.46,0.14,2.8,0.076,15.0,37.0,0.99624,3.36,0.49,10.7,5
+7.8,0.57,0.09,2.3,0.065,34.0,45.0,0.9941700000000001,3.46,0.74,12.7,8
+5.9,0.61,0.08,2.1,0.071,16.0,24.0,0.9937600000000001,3.56,0.77,11.1,6
+7.5,0.685,0.07,2.5,0.057999999999999996,5.0,9.0,0.9963200000000001,3.38,0.55,10.9,4
+5.9,0.61,0.08,2.1,0.071,16.0,24.0,0.9937600000000001,3.56,0.77,11.1,6
+10.4,0.44,0.42,1.5,0.145,34.0,48.0,0.9983200000000001,3.38,0.86,9.9,3
+11.6,0.47,0.44,1.6,0.147,36.0,51.0,0.99836,3.38,0.86,9.9,4
+8.8,0.685,0.26,1.6,0.08800000000000001,16.0,23.0,0.9969399999999999,3.32,0.47,9.4,5
+7.6,0.665,0.1,1.5,0.066,27.0,55.0,0.99655,3.39,0.51,9.3,5
+6.7,0.28,0.28,2.4,0.012,36.0,100.0,0.99064,3.26,0.39,11.7,7
+6.7,0.28,0.28,2.4,0.012,36.0,100.0,0.99064,3.26,0.39,11.7,7
+10.1,0.31,0.35,1.6,0.075,9.0,28.0,0.99672,3.24,0.83,11.2,7
+6.0,0.5,0.04,2.2,0.092,13.0,26.0,0.9964700000000001,3.46,0.47,10.0,5
+11.1,0.42,0.47,2.65,0.085,9.0,34.0,0.99736,3.24,0.77,12.1,7
+6.6,0.66,0.0,3.0,0.115,21.0,31.0,0.99629,3.45,0.63,10.3,5
+10.6,0.5,0.45,2.6,0.11900000000000001,34.0,68.0,0.99708,3.23,0.72,10.9,6
+7.1,0.685,0.35,2.0,0.08800000000000001,9.0,92.0,0.9963,3.28,0.62,9.4,5
+9.9,0.25,0.46,1.7,0.062,26.0,42.0,0.9959,3.18,0.83,10.6,6
+6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5
+6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5
+7.4,0.68,0.16,1.8,0.078,12.0,39.0,0.9977,3.5,0.7,9.9,6
+6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5
+6.4,0.63,0.21,1.6,0.08,12.0,32.0,0.9968899999999999,3.58,0.66,9.8,5
+9.3,0.43,0.44,1.9,0.085,9.0,22.0,0.99708,3.28,0.55,9.5,5
+9.3,0.43,0.44,1.9,0.085,9.0,22.0,0.99708,3.28,0.55,9.5,5
+8.0,0.42,0.32,2.5,0.08,26.0,122.0,0.9980100000000001,3.22,1.07,9.7,5
+9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6
+9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6
+7.6,0.735,0.02,2.5,0.071,10.0,14.0,0.9953799999999999,3.51,0.71,11.7,7
+9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6
+8.2,0.26,0.34,2.5,0.073,16.0,47.0,0.9959399999999999,3.4,0.78,11.3,7
+11.7,0.28,0.47,1.7,0.054000000000000006,17.0,32.0,0.9968600000000001,3.15,0.67,10.6,7
+6.8,0.56,0.22,1.8,0.07400000000000001,15.0,24.0,0.9943799999999999,3.4,0.82,11.2,6
+7.2,0.62,0.06,2.7,0.077,15.0,85.0,0.99746,3.51,0.54,9.5,5
+5.8,1.01,0.66,2.0,0.039,15.0,88.0,0.9935700000000001,3.66,0.6,11.5,6
+7.5,0.42,0.32,2.7,0.067,7.0,25.0,0.9962799999999999,3.24,0.44,10.4,5
+7.2,0.62,0.06,2.5,0.078,17.0,84.0,0.99746,3.51,0.53,9.7,5
+7.2,0.62,0.06,2.7,0.077,15.0,85.0,0.99746,3.51,0.54,9.5,5
+7.2,0.635,0.07,2.6,0.077,16.0,86.0,0.9974799999999999,3.51,0.54,9.7,5
+6.8,0.49,0.22,2.3,0.071,13.0,24.0,0.9943799999999999,3.41,0.83,11.3,6
+6.9,0.51,0.23,2.0,0.07200000000000001,13.0,22.0,0.9943799999999999,3.4,0.84,11.2,6
+6.8,0.56,0.22,1.8,0.07400000000000001,15.0,24.0,0.9943799999999999,3.4,0.82,11.2,6
+7.6,0.63,0.03,2.0,0.08,27.0,43.0,0.9957799999999999,3.44,0.64,10.9,6
+7.7,0.715,0.01,2.1,0.064,31.0,43.0,0.99371,3.41,0.57,11.8,6
+6.9,0.56,0.03,1.5,0.086,36.0,46.0,0.9952200000000001,3.53,0.57,10.6,5
+7.3,0.35,0.24,2.0,0.067,28.0,48.0,0.9957600000000001,3.43,0.54,10.0,4
+9.1,0.21,0.37,1.6,0.067,6.0,10.0,0.9955200000000001,3.23,0.58,11.1,7
+10.4,0.38,0.46,2.1,0.10400000000000001,6.0,10.0,0.99664,3.12,0.65,11.8,7
+8.8,0.31,0.4,2.8,0.109,7.0,16.0,0.9961399999999999,3.31,0.79,11.8,7
+7.1,0.47,0.0,2.2,0.067,7.0,14.0,0.9951700000000001,3.4,0.58,10.9,4
+7.7,0.715,0.01,2.1,0.064,31.0,43.0,0.99371,3.41,0.57,11.8,6
+8.8,0.61,0.19,4.0,0.094,30.0,69.0,0.99787,3.22,0.5,10.0,6
+7.2,0.6,0.04,2.5,0.076,18.0,88.0,0.99745,3.53,0.55,9.5,5
+9.2,0.56,0.18,1.6,0.078,10.0,21.0,0.9957600000000001,3.15,0.49,9.9,5
+7.6,0.715,0.0,2.1,0.068,30.0,35.0,0.9953299999999999,3.48,0.65,11.4,6
+8.4,0.31,0.29,3.1,0.19399999999999998,14.0,26.0,0.99536,3.22,0.78,12.0,6
+7.2,0.6,0.04,2.5,0.076,18.0,88.0,0.99745,3.53,0.55,9.5,5
+8.8,0.61,0.19,4.0,0.094,30.0,69.0,0.99787,3.22,0.5,10.0,6
+8.9,0.75,0.14,2.5,0.086,9.0,30.0,0.99824,3.34,0.64,10.5,5
+9.0,0.8,0.12,2.4,0.083,8.0,28.0,0.99836,3.33,0.65,10.4,6
+10.7,0.52,0.38,2.6,0.066,29.0,56.0,0.99577,3.15,0.79,12.1,7
+6.8,0.57,0.0,2.5,0.07200000000000001,32.0,64.0,0.9949100000000001,3.43,0.56,11.2,6
+10.7,0.9,0.34,6.6,0.11199999999999999,23.0,99.0,1.00289,3.22,0.68,9.3,5
+7.2,0.34,0.24,2.0,0.071,30.0,52.0,0.9957600000000001,3.44,0.58,10.1,5
+7.2,0.66,0.03,2.3,0.078,16.0,86.0,0.9974299999999999,3.53,0.57,9.7,5
+10.1,0.45,0.23,1.9,0.08199999999999999,10.0,18.0,0.99774,3.22,0.65,9.3,6
+7.2,0.66,0.03,2.3,0.078,16.0,86.0,0.9974299999999999,3.53,0.57,9.7,5
+7.2,0.63,0.03,2.2,0.08,17.0,88.0,0.99745,3.53,0.58,9.8,6
+7.1,0.59,0.01,2.3,0.08,27.0,43.0,0.9955,3.42,0.58,10.7,6
+8.3,0.31,0.39,2.4,0.078,17.0,43.0,0.99444,3.31,0.77,12.5,7
+7.1,0.59,0.01,2.3,0.08,27.0,43.0,0.9955,3.42,0.58,10.7,6
+8.3,0.31,0.39,2.4,0.078,17.0,43.0,0.99444,3.31,0.77,12.5,7
+8.3,1.02,0.02,3.4,0.084,6.0,11.0,0.99892,3.48,0.49,11.0,3
+8.9,0.31,0.36,2.6,0.055999999999999994,10.0,39.0,0.9956200000000001,3.4,0.69,11.8,5
+7.4,0.635,0.1,2.4,0.08,16.0,33.0,0.99736,3.58,0.69,10.8,7
+7.4,0.635,0.1,2.4,0.08,16.0,33.0,0.99736,3.58,0.69,10.8,7
+6.8,0.59,0.06,6.0,0.06,11.0,18.0,0.9962,3.41,0.59,10.8,7
+6.8,0.59,0.06,6.0,0.06,11.0,18.0,0.9962,3.41,0.59,10.8,7
+9.2,0.58,0.2,3.0,0.081,15.0,115.0,0.998,3.23,0.59,9.5,5
+7.2,0.54,0.27,2.6,0.084,12.0,78.0,0.9964,3.39,0.71,11.0,5
+6.1,0.56,0.0,2.2,0.079,6.0,9.0,0.9948,3.59,0.54,11.5,6
+7.4,0.52,0.13,2.4,0.078,34.0,61.0,0.9952799999999999,3.43,0.59,10.8,6
+7.3,0.305,0.39,1.2,0.059000000000000004,7.0,11.0,0.99331,3.29,0.52,11.5,6
+9.3,0.38,0.48,3.8,0.132,3.0,11.0,0.99577,3.23,0.57,13.2,6
+9.1,0.28,0.46,9.0,0.114,3.0,9.0,0.9990100000000001,3.18,0.6,10.9,6
+10.0,0.46,0.44,2.9,0.065,4.0,8.0,0.99674,3.33,0.62,12.2,6
+9.4,0.395,0.46,4.6,0.094,3.0,10.0,0.99639,3.27,0.64,12.2,7
+7.3,0.305,0.39,1.2,0.059000000000000004,7.0,11.0,0.99331,3.29,0.52,11.5,6
+8.6,0.315,0.4,2.2,0.079,3.0,6.0,0.9951200000000001,3.27,0.67,11.9,6
+5.3,0.715,0.19,1.5,0.161,7.0,62.0,0.99395,3.62,0.61,11.0,5
+6.8,0.41,0.31,8.8,0.084,26.0,45.0,0.99824,3.38,0.64,10.1,6
+8.4,0.36,0.32,2.2,0.081,32.0,79.0,0.9964,3.3,0.72,11.0,6
+8.4,0.62,0.12,1.8,0.07200000000000001,38.0,46.0,0.9950399999999999,3.38,0.89,11.8,6
+9.6,0.41,0.37,2.3,0.091,10.0,23.0,0.9978600000000001,3.24,0.56,10.5,5
+8.4,0.36,0.32,2.2,0.081,32.0,79.0,0.9964,3.3,0.72,11.0,6
+8.4,0.62,0.12,1.8,0.07200000000000001,38.0,46.0,0.9950399999999999,3.38,0.89,11.8,6
+6.8,0.41,0.31,8.8,0.084,26.0,45.0,0.99824,3.38,0.64,10.1,6
+8.6,0.47,0.27,2.3,0.055,14.0,28.0,0.99516,3.18,0.8,11.2,5
+8.6,0.22,0.36,1.9,0.064,53.0,77.0,0.9960399999999999,3.47,0.87,11.0,7
+9.4,0.24,0.33,2.3,0.061,52.0,73.0,0.9978600000000001,3.47,0.9,10.2,6
+8.4,0.67,0.19,2.2,0.09300000000000001,11.0,75.0,0.99736,3.2,0.59,9.2,4
+8.6,0.47,0.27,2.3,0.055,14.0,28.0,0.99516,3.18,0.8,11.2,5
+8.7,0.33,0.38,3.3,0.063,10.0,19.0,0.9946799999999999,3.3,0.73,12.0,7
+6.6,0.61,0.01,1.9,0.08,8.0,25.0,0.99746,3.69,0.73,10.5,5
+7.4,0.61,0.01,2.0,0.07400000000000001,13.0,38.0,0.9974799999999999,3.48,0.65,9.8,5
+7.6,0.4,0.29,1.9,0.078,29.0,66.0,0.9971,3.45,0.59,9.5,6
+7.4,0.61,0.01,2.0,0.07400000000000001,13.0,38.0,0.9974799999999999,3.48,0.65,9.8,5
+6.6,0.61,0.01,1.9,0.08,8.0,25.0,0.99746,3.69,0.73,10.5,5
+8.8,0.3,0.38,2.3,0.06,19.0,72.0,0.9954299999999999,3.39,0.72,11.8,6
+8.8,0.3,0.38,2.3,0.06,19.0,72.0,0.9954299999999999,3.39,0.72,11.8,6
+12.0,0.63,0.5,1.4,0.071,6.0,26.0,0.9979100000000001,3.07,0.6,10.4,4
+7.2,0.38,0.38,2.8,0.068,23.0,42.0,0.99356,3.34,0.72,12.9,7
+6.2,0.46,0.17,1.6,0.073,7.0,11.0,0.99425,3.61,0.54,11.4,5
+9.6,0.33,0.52,2.2,0.07400000000000001,13.0,25.0,0.9950899999999999,3.36,0.76,12.4,7
+9.9,0.27,0.49,5.0,0.08199999999999999,9.0,17.0,0.99484,3.19,0.52,12.5,7
+10.1,0.43,0.4,2.6,0.092,13.0,52.0,0.99834,3.22,0.64,10.0,7
+9.8,0.5,0.34,2.3,0.094,10.0,45.0,0.99864,3.24,0.6,9.7,7
+8.3,0.3,0.49,3.8,0.09,11.0,24.0,0.99498,3.27,0.64,12.1,7
+10.2,0.44,0.42,2.0,0.071,7.0,20.0,0.99566,3.14,0.79,11.1,7
+10.2,0.44,0.58,4.1,0.092,11.0,24.0,0.99745,3.29,0.99,12.0,7
+8.3,0.28,0.48,2.1,0.09300000000000001,6.0,12.0,0.99408,3.26,0.62,12.4,7
+8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7
+8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7
+8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7
+8.3,0.28,0.48,2.1,0.09300000000000001,6.0,12.0,0.99408,3.26,0.62,12.4,7
+8.2,0.31,0.4,2.2,0.057999999999999996,6.0,10.0,0.99536,3.31,0.68,11.2,7
+10.2,0.34,0.48,2.1,0.052000000000000005,5.0,9.0,0.9945799999999999,3.2,0.69,12.1,7
+7.6,0.43,0.4,2.7,0.08199999999999999,6.0,11.0,0.9953799999999999,3.44,0.54,12.2,6
+8.5,0.21,0.52,1.9,0.09,9.0,23.0,0.9964799999999999,3.36,0.67,10.4,5
+9.0,0.36,0.52,2.1,0.111,5.0,10.0,0.9956799999999999,3.31,0.62,11.3,6
+9.5,0.37,0.52,2.0,0.08800000000000001,12.0,51.0,0.99613,3.29,0.58,11.1,6
+6.4,0.57,0.12,2.3,0.12,25.0,36.0,0.99519,3.47,0.71,11.3,7
+8.0,0.59,0.05,2.0,0.08900000000000001,12.0,32.0,0.99735,3.36,0.61,10.0,5
+8.5,0.47,0.27,1.9,0.057999999999999996,18.0,38.0,0.99518,3.16,0.85,11.1,6
+7.1,0.56,0.14,1.6,0.078,7.0,18.0,0.99592,3.27,0.62,9.3,5
+6.6,0.57,0.02,2.1,0.115,6.0,16.0,0.99654,3.38,0.69,9.5,5
+8.8,0.27,0.39,2.0,0.1,20.0,27.0,0.99546,3.15,0.69,11.2,6
+8.5,0.47,0.27,1.9,0.057999999999999996,18.0,38.0,0.99518,3.16,0.85,11.1,6
+8.3,0.34,0.4,2.4,0.065,24.0,48.0,0.99554,3.34,0.86,11.0,6
+9.0,0.38,0.41,2.4,0.10300000000000001,6.0,10.0,0.9960399999999999,3.13,0.58,11.9,7
+8.5,0.66,0.2,2.1,0.09699999999999999,23.0,113.0,0.9973299999999999,3.13,0.48,9.2,5
+9.0,0.4,0.43,2.4,0.068,29.0,46.0,0.9943,3.2,0.6,12.2,6
+6.7,0.56,0.09,2.9,0.079,7.0,22.0,0.99669,3.46,0.61,10.2,5
+10.4,0.26,0.48,1.9,0.066,6.0,10.0,0.99724,3.33,0.87,10.9,6
+10.4,0.26,0.48,1.9,0.066,6.0,10.0,0.99724,3.33,0.87,10.9,6
+10.1,0.38,0.5,2.4,0.10400000000000001,6.0,13.0,0.9964299999999999,3.22,0.65,11.6,7
+8.5,0.34,0.44,1.7,0.079,6.0,12.0,0.99605,3.52,0.63,10.7,5
+8.8,0.33,0.41,5.9,0.073,7.0,13.0,0.9965799999999999,3.3,0.62,12.1,7
+7.2,0.41,0.3,2.1,0.083,35.0,72.0,0.997,3.44,0.52,9.4,5
+7.2,0.41,0.3,2.1,0.083,35.0,72.0,0.997,3.44,0.52,9.4,5
+8.4,0.59,0.29,2.6,0.109,31.0,119.0,0.9980100000000001,3.15,0.5,9.1,5
+7.0,0.4,0.32,3.6,0.061,9.0,29.0,0.99416,3.28,0.49,11.3,7
+12.2,0.45,0.49,1.4,0.075,3.0,6.0,0.9969,3.13,0.63,10.4,5
+9.1,0.5,0.3,1.9,0.065,8.0,17.0,0.99774,3.32,0.71,10.5,6
+9.5,0.86,0.26,1.9,0.079,13.0,28.0,0.9971200000000001,3.25,0.62,10.0,5
+7.3,0.52,0.32,2.1,0.07,51.0,70.0,0.99418,3.34,0.82,12.9,6
+9.1,0.5,0.3,1.9,0.065,8.0,17.0,0.99774,3.32,0.71,10.5,6
+12.2,0.45,0.49,1.4,0.075,3.0,6.0,0.9969,3.13,0.63,10.4,5
+7.4,0.58,0.0,2.0,0.064,7.0,11.0,0.9956200000000001,3.45,0.58,11.3,6
+9.8,0.34,0.39,1.4,0.066,3.0,7.0,0.9947,3.19,0.55,11.4,7
+7.1,0.36,0.3,1.6,0.08,35.0,70.0,0.9969299999999999,3.44,0.5,9.4,5
+7.7,0.39,0.12,1.7,0.09699999999999999,19.0,27.0,0.9959600000000001,3.16,0.49,9.4,5
+9.7,0.295,0.4,1.5,0.073,14.0,21.0,0.99556,3.14,0.51,10.9,6
+7.7,0.39,0.12,1.7,0.09699999999999999,19.0,27.0,0.9959600000000001,3.16,0.49,9.4,5
+7.1,0.34,0.28,2.0,0.08199999999999999,31.0,68.0,0.9969399999999999,3.45,0.48,9.4,5
+6.5,0.4,0.1,2.0,0.076,30.0,47.0,0.99554,3.36,0.48,9.4,6
+7.1,0.34,0.28,2.0,0.08199999999999999,31.0,68.0,0.9969399999999999,3.45,0.48,9.4,5
+10.0,0.35,0.45,2.5,0.092,20.0,88.0,0.99918,3.15,0.43,9.4,5
+7.7,0.6,0.06,2.0,0.079,19.0,41.0,0.99697,3.39,0.62,10.1,6
+5.6,0.66,0.0,2.2,0.087,3.0,11.0,0.9937799999999999,3.71,0.63,12.8,7
+5.6,0.66,0.0,2.2,0.087,3.0,11.0,0.9937799999999999,3.71,0.63,12.8,7
+8.9,0.84,0.34,1.4,0.05,4.0,10.0,0.99554,3.12,0.48,9.1,6
+6.4,0.69,0.0,1.65,0.055,7.0,12.0,0.9916200000000001,3.47,0.53,12.9,6
+7.5,0.43,0.3,2.2,0.062,6.0,12.0,0.99495,3.44,0.72,11.5,7
+9.9,0.35,0.38,1.5,0.057999999999999996,31.0,47.0,0.9967600000000001,3.26,0.82,10.6,7
+9.1,0.29,0.33,2.05,0.063,13.0,27.0,0.99516,3.26,0.84,11.7,7
+6.8,0.36,0.32,1.8,0.067,4.0,8.0,0.9928,3.36,0.55,12.8,7
+8.2,0.43,0.29,1.6,0.081,27.0,45.0,0.99603,3.25,0.54,10.3,5
+6.8,0.36,0.32,1.8,0.067,4.0,8.0,0.9928,3.36,0.55,12.8,7
+9.1,0.29,0.33,2.05,0.063,13.0,27.0,0.99516,3.26,0.84,11.7,7
+9.1,0.3,0.34,2.0,0.064,12.0,25.0,0.99516,3.26,0.84,11.7,7
+8.9,0.35,0.4,3.6,0.11,12.0,24.0,0.99549,3.23,0.7,12.0,7
+9.6,0.5,0.36,2.8,0.11599999999999999,26.0,55.0,0.9972200000000001,3.18,0.68,10.9,5
+8.9,0.28,0.45,1.7,0.067,7.0,12.0,0.99354,3.25,0.55,12.3,7
+8.9,0.32,0.31,2.0,0.08800000000000001,12.0,19.0,0.9957,3.17,0.55,10.4,6
+7.7,1.005,0.15,2.1,0.102,11.0,32.0,0.9960399999999999,3.23,0.48,10.0,5
+7.5,0.71,0.0,1.6,0.092,22.0,31.0,0.99635,3.38,0.58,10.0,6
+8.0,0.58,0.16,2.0,0.12,3.0,7.0,0.99454,3.22,0.58,11.2,6
+10.5,0.39,0.46,2.2,0.075,14.0,27.0,0.99598,3.06,0.84,11.4,6
+8.9,0.38,0.4,2.2,0.068,12.0,28.0,0.9948600000000001,3.27,0.75,12.6,7
+8.0,0.18,0.37,0.9,0.049,36.0,109.0,0.9900700000000001,2.89,0.44,12.7,6
+8.0,0.18,0.37,0.9,0.049,36.0,109.0,0.9900700000000001,2.89,0.44,12.7,6
+7.0,0.5,0.14,1.8,0.078,10.0,23.0,0.99636,3.53,0.61,10.4,5
+11.3,0.36,0.66,2.4,0.12300000000000001,3.0,8.0,0.9964200000000001,3.2,0.53,11.9,6
+11.3,0.36,0.66,2.4,0.12300000000000001,3.0,8.0,0.9964200000000001,3.2,0.53,11.9,6
+7.0,0.51,0.09,2.1,0.062,4.0,9.0,0.99584,3.35,0.54,10.5,5
+8.2,0.32,0.42,2.3,0.098,3.0,9.0,0.9950600000000001,3.27,0.55,12.3,6
+7.7,0.58,0.01,1.8,0.08800000000000001,12.0,18.0,0.9956799999999999,3.32,0.56,10.5,7
+8.6,0.83,0.0,2.8,0.095,17.0,43.0,0.9982200000000001,3.33,0.6,10.4,6
+7.9,0.31,0.32,1.9,0.066,14.0,36.0,0.99364,3.41,0.56,12.6,6
+6.4,0.795,0.0,2.2,0.065,28.0,52.0,0.9937799999999999,3.49,0.52,11.6,5
+7.2,0.34,0.21,2.5,0.075,41.0,68.0,0.9958600000000001,3.37,0.54,10.1,6
+7.7,0.58,0.01,1.8,0.08800000000000001,12.0,18.0,0.9956799999999999,3.32,0.56,10.5,7
+7.1,0.59,0.0,2.1,0.091,9.0,14.0,0.9948799999999999,3.42,0.55,11.5,7
+7.3,0.55,0.01,1.8,0.09300000000000001,9.0,15.0,0.9951399999999999,3.35,0.58,11.0,7
+8.1,0.82,0.0,4.1,0.095,5.0,14.0,0.99854,3.36,0.53,9.6,5
+7.5,0.57,0.08,2.6,0.08900000000000001,14.0,27.0,0.99592,3.3,0.59,10.4,6
+8.9,0.745,0.18,2.5,0.077,15.0,48.0,0.99739,3.2,0.47,9.7,6
+10.1,0.37,0.34,2.4,0.085,5.0,17.0,0.9968299999999999,3.17,0.65,10.6,7
+7.6,0.31,0.34,2.5,0.08199999999999999,26.0,35.0,0.99356,3.22,0.59,12.5,7
+7.3,0.91,0.1,1.8,0.07400000000000001,20.0,56.0,0.99672,3.35,0.56,9.2,5
+8.7,0.41,0.41,6.2,0.078,25.0,42.0,0.9953,3.24,0.77,12.6,7
+8.9,0.5,0.21,2.2,0.08800000000000001,21.0,39.0,0.99692,3.33,0.83,11.1,6
+7.4,0.965,0.0,2.2,0.08800000000000001,16.0,32.0,0.99756,3.58,0.67,10.2,5
+6.9,0.49,0.19,1.7,0.079,13.0,26.0,0.9954700000000001,3.38,0.64,9.8,6
+8.9,0.5,0.21,2.2,0.08800000000000001,21.0,39.0,0.99692,3.33,0.83,11.1,6
+9.5,0.39,0.41,8.9,0.069,18.0,39.0,0.99859,3.29,0.81,10.9,7
+6.4,0.39,0.33,3.3,0.046,12.0,53.0,0.9929399999999999,3.36,0.62,12.2,6
+6.9,0.44,0.0,1.4,0.07,32.0,38.0,0.9943799999999999,3.32,0.58,11.4,6
+7.6,0.78,0.0,1.7,0.076,33.0,45.0,0.9961200000000001,3.31,0.62,10.7,6
+7.1,0.43,0.17,1.8,0.08199999999999999,27.0,51.0,0.99634,3.49,0.64,10.4,5
+9.3,0.49,0.36,1.7,0.081,3.0,14.0,0.99702,3.27,0.78,10.9,6
+9.3,0.5,0.36,1.8,0.084,6.0,17.0,0.9970399999999999,3.27,0.77,10.8,6
+7.1,0.43,0.17,1.8,0.08199999999999999,27.0,51.0,0.99634,3.49,0.64,10.4,5
+8.5,0.46,0.59,1.4,0.414,16.0,45.0,0.99702,3.03,1.34,9.2,5
+5.6,0.605,0.05,2.4,0.073,19.0,25.0,0.9925799999999999,3.56,0.55,12.9,5
+8.3,0.33,0.42,2.3,0.07,9.0,20.0,0.99426,3.38,0.77,12.7,7
+8.2,0.64,0.27,2.0,0.095,5.0,77.0,0.9974700000000001,3.13,0.62,9.1,6
+8.2,0.64,0.27,2.0,0.095,5.0,77.0,0.9974700000000001,3.13,0.62,9.1,6
+8.9,0.48,0.53,4.0,0.10099999999999999,3.0,10.0,0.9958600000000001,3.21,0.59,12.1,7
+7.6,0.42,0.25,3.9,0.10400000000000001,28.0,90.0,0.99784,3.15,0.57,9.1,5
+9.9,0.53,0.57,2.4,0.09300000000000001,30.0,52.0,0.9971,3.19,0.76,11.6,7
+8.9,0.48,0.53,4.0,0.10099999999999999,3.0,10.0,0.9958600000000001,3.21,0.59,12.1,7
+11.6,0.23,0.57,1.8,0.07400000000000001,3.0,8.0,0.9981,3.14,0.7,9.9,6
+9.1,0.4,0.5,1.8,0.071,7.0,16.0,0.9946200000000001,3.21,0.69,12.5,8
+8.0,0.38,0.44,1.9,0.098,6.0,15.0,0.9956,3.3,0.64,11.4,6
+10.2,0.29,0.65,2.4,0.075,6.0,17.0,0.99565,3.22,0.63,11.8,6
+8.2,0.74,0.09,2.0,0.067,5.0,10.0,0.99418,3.28,0.57,11.8,6
+7.7,0.61,0.18,2.4,0.083,6.0,20.0,0.9963,3.29,0.6,10.2,6
+6.6,0.52,0.08,2.4,0.07,13.0,26.0,0.9935799999999999,3.4,0.72,12.5,7
+11.1,0.31,0.53,2.2,0.06,3.0,10.0,0.99572,3.02,0.83,10.9,7
+11.1,0.31,0.53,2.2,0.06,3.0,10.0,0.99572,3.02,0.83,10.9,7
+8.0,0.62,0.35,2.8,0.086,28.0,52.0,0.997,3.31,0.62,10.8,5
+9.3,0.33,0.45,1.5,0.057,19.0,37.0,0.99498,3.18,0.89,11.1,7
+7.5,0.77,0.2,8.1,0.098,30.0,92.0,0.99892,3.2,0.58,9.2,5
+7.2,0.35,0.26,1.8,0.083,33.0,75.0,0.9968,3.4,0.58,9.5,6
+8.0,0.62,0.33,2.7,0.08800000000000001,16.0,37.0,0.9972,3.31,0.58,10.7,6
+7.5,0.77,0.2,8.1,0.098,30.0,92.0,0.99892,3.2,0.58,9.2,5
+9.1,0.25,0.34,2.0,0.071,45.0,67.0,0.99769,3.44,0.86,10.2,7
+9.9,0.32,0.56,2.0,0.073,3.0,8.0,0.99534,3.15,0.73,11.4,6
+8.6,0.37,0.65,6.4,0.08,3.0,8.0,0.9981700000000001,3.27,0.58,11.0,5
+8.6,0.37,0.65,6.4,0.08,3.0,8.0,0.9981700000000001,3.27,0.58,11.0,5
+7.9,0.3,0.68,8.3,0.05,37.5,278.0,0.99316,3.01,0.51,12.3,7
+10.3,0.27,0.56,1.4,0.047,3.0,8.0,0.99471,3.16,0.51,11.8,6
+7.9,0.3,0.68,8.3,0.05,37.5,289.0,0.99316,3.01,0.51,12.3,7
+7.2,0.38,0.3,1.8,0.073,31.0,70.0,0.99685,3.42,0.59,9.5,6
+8.7,0.42,0.45,2.4,0.07200000000000001,32.0,59.0,0.9961700000000001,3.33,0.77,12.0,6
+7.2,0.38,0.3,1.8,0.073,31.0,70.0,0.99685,3.42,0.59,9.5,6
+6.8,0.48,0.08,1.8,0.07400000000000001,40.0,64.0,0.99529,3.12,0.49,9.6,5
+8.5,0.34,0.4,4.7,0.055,3.0,9.0,0.9973799999999999,3.38,0.66,11.6,7
+7.9,0.19,0.42,1.6,0.057,18.0,30.0,0.9940000000000001,3.29,0.69,11.2,6
+11.6,0.41,0.54,1.5,0.095,22.0,41.0,0.99735,3.02,0.76,9.9,7
+11.6,0.41,0.54,1.5,0.095,22.0,41.0,0.99735,3.02,0.76,9.9,7
+10.0,0.26,0.54,1.9,0.083,42.0,74.0,0.99451,2.98,0.63,11.8,8
+7.9,0.34,0.42,2.0,0.086,8.0,19.0,0.99546,3.35,0.6,11.4,6
+7.0,0.54,0.09,2.0,0.081,10.0,16.0,0.99479,3.43,0.59,11.5,6
+9.2,0.31,0.36,2.2,0.079,11.0,31.0,0.99615,3.33,0.86,12.0,7
+6.6,0.725,0.09,5.5,0.11699999999999999,9.0,17.0,0.99655,3.35,0.49,10.8,6
+9.4,0.4,0.47,2.5,0.087,6.0,20.0,0.99772,3.15,0.5,10.5,5
+6.6,0.725,0.09,5.5,0.11699999999999999,9.0,17.0,0.99655,3.35,0.49,10.8,6
+8.6,0.52,0.38,1.5,0.096,5.0,18.0,0.99666,3.2,0.52,9.4,5
+8.0,0.31,0.45,2.1,0.21600000000000003,5.0,16.0,0.9935799999999999,3.15,0.81,12.5,7
+8.6,0.52,0.38,1.5,0.096,5.0,18.0,0.99666,3.2,0.52,9.4,5
+8.4,0.34,0.42,2.1,0.07200000000000001,23.0,36.0,0.99392,3.11,0.78,12.4,6
+7.4,0.49,0.27,2.1,0.071,14.0,25.0,0.9938799999999999,3.35,0.63,12.0,6
+6.1,0.48,0.09,1.7,0.078,18.0,30.0,0.9940200000000001,3.45,0.54,11.2,6
+7.4,0.49,0.27,2.1,0.071,14.0,25.0,0.9938799999999999,3.35,0.63,12.0,6
+8.0,0.48,0.34,2.2,0.073,16.0,25.0,0.9936,3.28,0.66,12.4,6
+6.3,0.57,0.28,2.1,0.048,13.0,49.0,0.99374,3.41,0.6,12.8,5
+8.2,0.23,0.42,1.9,0.069,9.0,17.0,0.9937600000000001,3.21,0.54,12.3,6
+9.1,0.3,0.41,2.0,0.068,10.0,24.0,0.99523,3.27,0.85,11.7,7
+8.1,0.78,0.1,3.3,0.09,4.0,13.0,0.99855,3.36,0.49,9.5,5
+10.8,0.47,0.43,2.1,0.171,27.0,66.0,0.9982,3.17,0.76,10.8,6
+8.3,0.53,0.0,1.4,0.07,6.0,14.0,0.99593,3.25,0.64,10.0,6
+5.4,0.42,0.27,2.0,0.092,23.0,55.0,0.99471,3.78,0.64,12.3,7
+7.9,0.33,0.41,1.5,0.055999999999999994,6.0,35.0,0.9939600000000001,3.29,0.71,11.0,6
+8.9,0.24,0.39,1.6,0.07400000000000001,3.0,10.0,0.99698,3.12,0.59,9.5,6
+5.0,0.4,0.5,4.3,0.046,29.0,80.0,0.9902,3.49,0.66,13.6,6
+7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6
+7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6
+7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6
+7.1,0.39,0.12,2.1,0.065,14.0,24.0,0.9925200000000001,3.3,0.53,13.3,6
+5.6,0.66,0.0,2.5,0.066,7.0,15.0,0.99256,3.52,0.58,12.9,5
+7.9,0.54,0.34,2.5,0.076,8.0,17.0,0.99235,3.2,0.72,13.1,8
+6.6,0.5,0.0,1.8,0.062,21.0,28.0,0.9935200000000001,3.44,0.55,12.3,6
+6.3,0.47,0.0,1.4,0.055,27.0,33.0,0.9922,3.45,0.48,12.3,6
+10.7,0.4,0.37,1.9,0.081,17.0,29.0,0.99674,3.12,0.65,11.2,6
+6.5,0.58,0.0,2.2,0.096,3.0,13.0,0.9955700000000001,3.62,0.62,11.5,4
+8.8,0.24,0.35,1.7,0.055,13.0,27.0,0.9939399999999999,3.14,0.59,11.3,7
+5.8,0.29,0.26,1.7,0.063,3.0,11.0,0.9915,3.39,0.54,13.5,6
+6.3,0.76,0.0,2.9,0.07200000000000001,26.0,52.0,0.99379,3.51,0.6,11.5,6
+10.0,0.43,0.33,2.7,0.095,28.0,89.0,0.9984,3.22,0.68,10.0,5
+10.5,0.43,0.35,3.3,0.092,24.0,70.0,0.99798,3.21,0.69,10.5,6
+9.1,0.6,0.0,1.9,0.057999999999999996,5.0,10.0,0.9977,3.18,0.63,10.4,6
+5.9,0.19,0.21,1.7,0.045,57.0,135.0,0.99341,3.32,0.44,9.5,5
+7.4,0.36,0.34,1.8,0.075,18.0,38.0,0.9933,3.38,0.88,13.6,7
+7.2,0.48,0.07,5.5,0.08900000000000001,10.0,18.0,0.99684,3.37,0.68,11.2,7
+8.5,0.28,0.35,1.7,0.061,6.0,15.0,0.99524,3.3,0.74,11.8,7
+8.0,0.25,0.43,1.7,0.067,22.0,50.0,0.9946,3.38,0.6,11.9,6
+10.4,0.52,0.45,2.0,0.08,6.0,13.0,0.99774,3.22,0.76,11.4,6
+10.4,0.52,0.45,2.0,0.08,6.0,13.0,0.99774,3.22,0.76,11.4,6
+7.5,0.41,0.15,3.7,0.10400000000000001,29.0,94.0,0.9978600000000001,3.14,0.58,9.1,5
+8.2,0.51,0.24,2.0,0.079,16.0,86.0,0.99764,3.34,0.64,9.5,6
+7.3,0.4,0.3,1.7,0.08,33.0,79.0,0.9969,3.41,0.65,9.5,6
+8.2,0.38,0.32,2.5,0.08,24.0,71.0,0.99624,3.27,0.85,11.0,6
+6.9,0.45,0.11,2.4,0.043,6.0,12.0,0.99354,3.3,0.65,11.4,6
+7.0,0.22,0.3,1.8,0.065,16.0,20.0,0.99672,3.61,0.82,10.0,6
+7.3,0.32,0.23,2.3,0.066,35.0,70.0,0.9958799999999999,3.43,0.62,10.1,5
+8.2,0.2,0.43,2.5,0.076,31.0,51.0,0.99672,3.53,0.81,10.4,6
+7.8,0.5,0.12,1.8,0.17800000000000002,6.0,21.0,0.996,3.28,0.87,9.8,6
+10.0,0.41,0.45,6.2,0.071,6.0,14.0,0.99702,3.21,0.49,11.8,7
+7.8,0.39,0.42,2.0,0.086,9.0,21.0,0.99526,3.39,0.66,11.6,6
+10.0,0.35,0.47,2.0,0.061,6.0,11.0,0.99585,3.23,0.52,12.0,6
+8.2,0.33,0.32,2.8,0.067,4.0,12.0,0.9947299999999999,3.3,0.76,12.8,7
+6.1,0.58,0.23,2.5,0.044000000000000004,16.0,70.0,0.9935200000000001,3.46,0.65,12.5,6
+8.3,0.6,0.25,2.2,0.11800000000000001,9.0,38.0,0.99616,3.15,0.53,9.8,5
+9.6,0.42,0.35,2.1,0.083,17.0,38.0,0.9962200000000001,3.23,0.66,11.1,6
+6.6,0.58,0.0,2.2,0.1,50.0,63.0,0.99544,3.59,0.68,11.4,6
+8.3,0.6,0.25,2.2,0.11800000000000001,9.0,38.0,0.99616,3.15,0.53,9.8,5
+8.5,0.18,0.51,1.75,0.071,45.0,88.0,0.99524,3.33,0.76,11.8,7
+5.1,0.51,0.18,2.1,0.042,16.0,101.0,0.9924,3.46,0.87,12.9,7
+6.7,0.41,0.43,2.8,0.076,22.0,54.0,0.99572,3.42,1.16,10.6,6
+10.2,0.41,0.43,2.2,0.11,11.0,37.0,0.9972799999999999,3.16,0.67,10.8,5
+10.6,0.36,0.57,2.3,0.087,6.0,20.0,0.9967600000000001,3.14,0.72,11.1,7
+8.8,0.45,0.43,1.4,0.076,12.0,21.0,0.99551,3.21,0.75,10.2,6
+8.5,0.32,0.42,2.3,0.075,12.0,19.0,0.99434,3.14,0.71,11.8,7
+9.0,0.785,0.24,1.7,0.078,10.0,21.0,0.99692,3.29,0.67,10.0,5
+9.0,0.785,0.24,1.7,0.078,10.0,21.0,0.99692,3.29,0.67,10.0,5
+8.5,0.44,0.5,1.9,0.369,15.0,38.0,0.99634,3.01,1.1,9.4,5
+9.9,0.54,0.26,2.0,0.111,7.0,60.0,0.9970899999999999,2.94,0.98,10.2,5
+8.2,0.33,0.39,2.5,0.07400000000000001,29.0,48.0,0.9952799999999999,3.32,0.88,12.4,7
+6.5,0.34,0.27,2.8,0.067,8.0,44.0,0.99384,3.21,0.56,12.0,6
+7.6,0.5,0.29,2.3,0.086,5.0,14.0,0.9950200000000001,3.32,0.62,11.5,6
+9.2,0.36,0.34,1.6,0.062,5.0,12.0,0.9966700000000001,3.2,0.67,10.5,6
+7.1,0.59,0.0,2.2,0.078,26.0,44.0,0.9952200000000001,3.42,0.68,10.8,6
+9.7,0.42,0.46,2.1,0.07400000000000001,5.0,16.0,0.99649,3.27,0.74,12.3,6
+7.6,0.36,0.31,1.7,0.079,26.0,65.0,0.99716,3.46,0.62,9.5,6
+7.6,0.36,0.31,1.7,0.079,26.0,65.0,0.99716,3.46,0.62,9.5,6
+6.5,0.61,0.0,2.2,0.095,48.0,59.0,0.99541,3.61,0.7,11.5,6
+6.5,0.88,0.03,5.6,0.079,23.0,47.0,0.99572,3.58,0.5,11.2,4
+7.1,0.66,0.0,2.4,0.052000000000000005,6.0,11.0,0.99318,3.35,0.66,12.7,7
+5.6,0.915,0.0,2.1,0.040999999999999995,17.0,78.0,0.99346,3.68,0.73,11.4,5
+8.2,0.35,0.33,2.4,0.076,11.0,47.0,0.9959899999999999,3.27,0.81,11.0,6
+8.2,0.35,0.33,2.4,0.076,11.0,47.0,0.9959899999999999,3.27,0.81,11.0,6
+9.8,0.39,0.43,1.65,0.068,5.0,11.0,0.9947799999999999,3.19,0.46,11.4,5
+10.2,0.4,0.4,2.5,0.068,41.0,54.0,0.99754,3.38,0.86,10.5,6
+6.8,0.66,0.07,1.6,0.07,16.0,61.0,0.99572,3.29,0.6,9.3,5
+6.7,0.64,0.23,2.1,0.08,11.0,119.0,0.9953799999999999,3.36,0.7,10.9,5
+7.0,0.43,0.3,2.0,0.085,6.0,39.0,0.99346,3.33,0.46,11.9,6
+6.6,0.8,0.03,7.8,0.079,6.0,12.0,0.9963,3.52,0.5,12.2,5
+7.0,0.43,0.3,2.0,0.085,6.0,39.0,0.99346,3.33,0.46,11.9,6
+6.7,0.64,0.23,2.1,0.08,11.0,119.0,0.9953799999999999,3.36,0.7,10.9,5
+8.8,0.955,0.05,1.8,0.075,5.0,19.0,0.99616,3.3,0.44,9.6,4
+9.1,0.4,0.57,4.6,0.08,6.0,20.0,0.9965200000000001,3.28,0.57,12.5,6
+6.5,0.885,0.0,2.3,0.166,6.0,12.0,0.99551,3.56,0.51,10.8,5
+7.2,0.25,0.37,2.5,0.063,11.0,41.0,0.99439,3.52,0.8,12.4,7
+6.4,0.885,0.0,2.3,0.166,6.0,12.0,0.99551,3.56,0.51,10.8,5
+7.0,0.745,0.12,1.8,0.114,15.0,64.0,0.9958799999999999,3.22,0.59,9.5,6
+6.2,0.43,0.22,1.8,0.078,21.0,56.0,0.9963299999999999,3.52,0.6,9.5,6
+7.9,0.58,0.23,2.3,0.076,23.0,94.0,0.9968600000000001,3.21,0.58,9.5,6
+7.7,0.57,0.21,1.5,0.069,4.0,9.0,0.9945799999999999,3.16,0.54,9.8,6
+7.7,0.26,0.26,2.0,0.052000000000000005,19.0,77.0,0.9951,3.15,0.79,10.9,6
+7.9,0.58,0.23,2.3,0.076,23.0,94.0,0.9968600000000001,3.21,0.58,9.5,6
+7.7,0.57,0.21,1.5,0.069,4.0,9.0,0.9945799999999999,3.16,0.54,9.8,6
+7.9,0.34,0.36,1.9,0.065,5.0,10.0,0.99419,3.27,0.54,11.2,7
+8.6,0.42,0.39,1.8,0.068,6.0,12.0,0.99516,3.35,0.69,11.7,8
+9.9,0.74,0.19,5.8,0.111,33.0,76.0,0.9987799999999999,3.14,0.55,9.4,5
+7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
+7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
+7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
+9.9,0.72,0.55,1.7,0.136,24.0,52.0,0.9975200000000001,3.35,0.94,10.0,5
+7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
+6.2,0.39,0.43,2.0,0.071,14.0,24.0,0.9942799999999999,3.45,0.87,11.2,7
+6.8,0.65,0.02,2.1,0.078,8.0,15.0,0.99498,3.35,0.62,10.4,6
+6.6,0.44,0.15,2.1,0.076,22.0,53.0,0.9957,3.32,0.62,9.3,5
+6.8,0.65,0.02,2.1,0.078,8.0,15.0,0.99498,3.35,0.62,10.4,6
+9.6,0.38,0.42,1.9,0.071,5.0,13.0,0.99659,3.15,0.75,10.5,6
+10.2,0.33,0.46,1.9,0.081,6.0,9.0,0.9962799999999999,3.1,0.48,10.4,6
+8.8,0.27,0.46,2.1,0.095,20.0,29.0,0.9948799999999999,3.26,0.56,11.3,6
+7.9,0.57,0.31,2.0,0.079,10.0,79.0,0.99677,3.29,0.69,9.5,6
+8.2,0.34,0.37,1.9,0.057,43.0,74.0,0.99408,3.23,0.81,12.0,6
+8.2,0.4,0.31,1.9,0.08199999999999999,8.0,24.0,0.996,3.24,0.69,10.6,6
+9.0,0.39,0.4,1.3,0.044000000000000004,25.0,50.0,0.9947799999999999,3.2,0.83,10.9,6
+10.9,0.32,0.52,1.8,0.132,17.0,44.0,0.99734,3.28,0.77,11.5,6
+10.9,0.32,0.52,1.8,0.132,17.0,44.0,0.99734,3.28,0.77,11.5,6
+8.1,0.53,0.22,2.2,0.078,33.0,89.0,0.9967799999999999,3.26,0.46,9.6,6
+10.5,0.36,0.47,2.2,0.07400000000000001,9.0,23.0,0.9963799999999999,3.23,0.76,12.0,6
+12.6,0.39,0.49,2.5,0.08,8.0,20.0,0.9992,3.07,0.82,10.3,6
+9.2,0.46,0.23,2.6,0.091,18.0,77.0,0.9992200000000001,3.15,0.51,9.4,5
+7.5,0.58,0.03,4.1,0.08,27.0,46.0,0.99592,3.02,0.47,9.2,5
+9.0,0.58,0.25,2.0,0.10400000000000001,8.0,21.0,0.99769,3.27,0.72,9.6,5
+5.1,0.42,0.0,1.8,0.044000000000000004,18.0,88.0,0.9915700000000001,3.68,0.73,13.6,7
+7.6,0.43,0.29,2.1,0.075,19.0,66.0,0.99718,3.4,0.64,9.5,5
+7.7,0.18,0.34,2.7,0.066,15.0,58.0,0.9947,3.37,0.78,11.8,6
+7.8,0.815,0.01,2.6,0.07400000000000001,48.0,90.0,0.99621,3.38,0.62,10.8,5
+7.6,0.43,0.29,2.1,0.075,19.0,66.0,0.99718,3.4,0.64,9.5,5
+10.2,0.23,0.37,2.2,0.057,14.0,36.0,0.9961399999999999,3.23,0.49,9.3,4
+7.1,0.75,0.01,2.2,0.059000000000000004,11.0,18.0,0.9924200000000001,3.39,0.4,12.8,6
+6.0,0.33,0.32,12.9,0.054000000000000006,6.0,113.0,0.99572,3.3,0.56,11.5,4
+7.8,0.55,0.0,1.7,0.07,7.0,17.0,0.99659,3.26,0.64,9.4,6
+7.1,0.75,0.01,2.2,0.059000000000000004,11.0,18.0,0.9924200000000001,3.39,0.4,12.8,6
+8.1,0.73,0.0,2.5,0.081,12.0,24.0,0.99798,3.38,0.46,9.6,4
+6.5,0.67,0.0,4.3,0.057,11.0,20.0,0.9948799999999999,3.45,0.56,11.8,4
+7.5,0.61,0.2,1.7,0.076,36.0,60.0,0.9949399999999999,3.1,0.4,9.3,5
+9.8,0.37,0.39,2.5,0.079,28.0,65.0,0.99729,3.16,0.59,9.8,5
+9.0,0.4,0.41,2.0,0.057999999999999996,15.0,40.0,0.9941399999999999,3.22,0.6,12.2,6
+8.3,0.56,0.22,2.4,0.08199999999999999,10.0,86.0,0.9983,3.37,0.62,9.5,5
+5.9,0.29,0.25,13.4,0.067,72.0,160.0,0.99721,3.33,0.54,10.3,6
+7.4,0.55,0.19,1.8,0.08199999999999999,15.0,34.0,0.99655,3.49,0.68,10.5,5
+7.4,0.74,0.07,1.7,0.086,15.0,48.0,0.9950200000000001,3.12,0.48,10.0,5
+7.4,0.55,0.19,1.8,0.08199999999999999,15.0,34.0,0.99655,3.49,0.68,10.5,5
+6.9,0.41,0.33,2.2,0.081,22.0,36.0,0.9949,3.41,0.75,11.1,6
+7.1,0.6,0.01,2.3,0.079,24.0,37.0,0.9951399999999999,3.4,0.61,10.9,6
+7.1,0.6,0.01,2.3,0.079,24.0,37.0,0.9951399999999999,3.4,0.61,10.9,6
+7.5,0.58,0.14,2.2,0.077,27.0,60.0,0.9963,3.28,0.59,9.8,5
+7.1,0.72,0.0,1.8,0.12300000000000001,6.0,14.0,0.9962700000000001,3.45,0.58,9.8,5
+7.9,0.66,0.0,1.4,0.096,6.0,13.0,0.99569,3.43,0.58,9.5,5
+7.8,0.7,0.06,1.9,0.079,20.0,35.0,0.9962799999999999,3.4,0.69,10.9,5
+6.1,0.64,0.02,2.4,0.069,26.0,46.0,0.9935799999999999,3.47,0.45,11.0,5
+7.5,0.59,0.22,1.8,0.08199999999999999,43.0,60.0,0.9949899999999999,3.1,0.42,9.2,5
+7.0,0.58,0.28,4.8,0.085,12.0,69.0,0.9963299999999999,3.32,0.7,11.0,6
+6.8,0.64,0.0,2.7,0.12300000000000001,15.0,33.0,0.9953799999999999,3.44,0.63,11.3,6
+6.8,0.64,0.0,2.7,0.12300000000000001,15.0,33.0,0.9953799999999999,3.44,0.63,11.3,6
+8.6,0.635,0.68,1.8,0.40299999999999997,19.0,56.0,0.9963200000000001,3.02,1.15,9.3,5
+6.3,1.02,0.0,2.0,0.083,17.0,24.0,0.9943700000000001,3.59,0.55,11.2,4
+9.8,0.45,0.38,2.5,0.081,34.0,66.0,0.99726,3.15,0.58,9.8,5
+8.2,0.78,0.0,2.2,0.08900000000000001,13.0,26.0,0.9978,3.37,0.46,9.6,4
+8.5,0.37,0.32,1.8,0.066,26.0,51.0,0.99456,3.38,0.72,11.8,6
+7.2,0.57,0.05,2.3,0.081,16.0,36.0,0.99564,3.38,0.6,10.3,6
+7.2,0.57,0.05,2.3,0.081,16.0,36.0,0.99564,3.38,0.6,10.3,6
+10.4,0.43,0.5,2.3,0.068,13.0,19.0,0.996,3.1,0.87,11.4,6
+6.9,0.41,0.31,2.0,0.079,21.0,51.0,0.9966799999999999,3.47,0.55,9.5,6
+5.5,0.49,0.03,1.8,0.044000000000000004,28.0,87.0,0.9908,3.5,0.82,14.0,8
+5.0,0.38,0.01,1.6,0.048,26.0,60.0,0.9908399999999999,3.7,0.75,14.0,6
+7.3,0.44,0.2,1.6,0.049,24.0,64.0,0.9935,3.38,0.57,11.7,6
+5.9,0.46,0.0,1.9,0.077,25.0,44.0,0.99385,3.5,0.53,11.2,5
+7.5,0.58,0.2,2.0,0.073,34.0,44.0,0.9949399999999999,3.1,0.43,9.3,5
+7.8,0.58,0.13,2.1,0.102,17.0,36.0,0.9944,3.24,0.53,11.2,6
+8.0,0.715,0.22,2.3,0.075,13.0,81.0,0.9968799999999999,3.24,0.54,9.5,6
+8.5,0.4,0.4,6.3,0.05,3.0,10.0,0.99566,3.28,0.56,12.0,4
+7.0,0.69,0.0,1.9,0.114,3.0,10.0,0.99636,3.35,0.6,9.7,6
+8.0,0.715,0.22,2.3,0.075,13.0,81.0,0.9968799999999999,3.24,0.54,9.5,6
+9.8,0.3,0.39,1.7,0.062,3.0,9.0,0.9948,3.14,0.57,11.5,7
+7.1,0.46,0.2,1.9,0.077,28.0,54.0,0.9956,3.37,0.64,10.4,6
+7.1,0.46,0.2,1.9,0.077,28.0,54.0,0.9956,3.37,0.64,10.4,6
+7.9,0.765,0.0,2.0,0.084,9.0,22.0,0.9961899999999999,3.33,0.68,10.9,6
+8.7,0.63,0.28,2.7,0.096,17.0,69.0,0.99734,3.26,0.63,10.2,6
+7.0,0.42,0.19,2.3,0.071,18.0,36.0,0.9947600000000001,3.39,0.56,10.9,5
+11.3,0.37,0.5,1.8,0.09,20.0,47.0,0.99734,3.15,0.57,10.5,5
+7.1,0.16,0.44,2.5,0.068,17.0,31.0,0.9932799999999999,3.35,0.54,12.4,6
+8.0,0.6,0.08,2.6,0.055999999999999994,3.0,7.0,0.9928600000000001,3.22,0.37,13.0,5
+7.0,0.6,0.3,4.5,0.068,20.0,110.0,0.9991399999999999,3.3,1.17,10.2,5
+7.0,0.6,0.3,4.5,0.068,20.0,110.0,0.9991399999999999,3.3,1.17,10.2,5
+7.6,0.74,0.0,1.9,0.1,6.0,12.0,0.99521,3.36,0.59,11.0,5
+8.2,0.635,0.1,2.1,0.073,25.0,60.0,0.9963799999999999,3.29,0.75,10.9,6
+5.9,0.395,0.13,2.4,0.055999999999999994,14.0,28.0,0.9936200000000001,3.62,0.67,12.4,6
+7.5,0.755,0.0,1.9,0.084,6.0,12.0,0.99672,3.34,0.49,9.7,4
+8.2,0.635,0.1,2.1,0.073,25.0,60.0,0.9963799999999999,3.29,0.75,10.9,6
+6.6,0.63,0.0,4.3,0.09300000000000001,51.0,77.5,0.9955799999999999,3.2,0.45,9.5,5
+6.6,0.63,0.0,4.3,0.09300000000000001,51.0,77.5,0.9955799999999999,3.2,0.45,9.5,5
+7.2,0.53,0.14,2.1,0.064,15.0,29.0,0.99323,3.35,0.61,12.1,6
+5.7,0.6,0.0,1.4,0.063,11.0,18.0,0.9919100000000001,3.45,0.56,12.2,6
+7.6,1.58,0.0,2.1,0.13699999999999998,5.0,9.0,0.9947600000000001,3.5,0.4,10.9,3
+5.2,0.645,0.0,2.15,0.08,15.0,28.0,0.99444,3.78,0.61,12.5,6
+6.7,0.86,0.07,2.0,0.1,20.0,57.0,0.99598,3.6,0.74,11.7,6
+9.1,0.37,0.32,2.1,0.064,4.0,15.0,0.9957600000000001,3.3,0.8,11.2,6
+8.0,0.28,0.44,1.8,0.081,28.0,68.0,0.9950100000000001,3.36,0.66,11.2,5
+7.6,0.79,0.21,2.3,0.087,21.0,68.0,0.9955,3.12,0.44,9.2,5
+7.5,0.61,0.26,1.9,0.073,24.0,88.0,0.9961200000000001,3.3,0.53,9.8,5
+9.7,0.69,0.32,2.5,0.08800000000000001,22.0,91.0,0.9979,3.29,0.62,10.1,5
+6.8,0.68,0.09,3.9,0.068,15.0,29.0,0.99524,3.41,0.52,11.1,4
+9.7,0.69,0.32,2.5,0.08800000000000001,22.0,91.0,0.9979,3.29,0.62,10.1,5
+7.0,0.62,0.1,1.4,0.071,27.0,63.0,0.996,3.28,0.61,9.2,5
+7.5,0.61,0.26,1.9,0.073,24.0,88.0,0.9961200000000001,3.3,0.53,9.8,5
+6.5,0.51,0.15,3.0,0.064,12.0,27.0,0.9929,3.33,0.59,12.8,6
+8.0,1.18,0.21,1.9,0.083,14.0,41.0,0.9953200000000001,3.34,0.47,10.5,5
+7.0,0.36,0.21,2.3,0.086,20.0,65.0,0.9955799999999999,3.4,0.54,10.1,6
+7.0,0.36,0.21,2.4,0.086,24.0,69.0,0.99556,3.4,0.53,10.1,6
+7.5,0.63,0.27,2.0,0.083,17.0,91.0,0.99616,3.26,0.58,9.8,6
+5.4,0.74,0.0,1.2,0.040999999999999995,16.0,46.0,0.9925799999999999,4.01,0.59,12.5,6
+9.9,0.44,0.46,2.2,0.091,10.0,41.0,0.9963799999999999,3.18,0.69,11.9,6
+7.5,0.63,0.27,2.0,0.083,17.0,91.0,0.99616,3.26,0.58,9.8,6
+9.1,0.76,0.68,1.7,0.414,18.0,64.0,0.9965200000000001,2.9,1.33,9.1,6
+9.7,0.66,0.34,2.6,0.094,12.0,88.0,0.9979600000000001,3.26,0.66,10.1,5
+5.0,0.74,0.0,1.2,0.040999999999999995,16.0,46.0,0.9925799999999999,4.01,0.59,12.5,6
+9.1,0.34,0.42,1.8,0.057999999999999996,9.0,18.0,0.99392,3.18,0.55,11.4,5
+9.1,0.36,0.39,1.8,0.06,21.0,55.0,0.99495,3.18,0.82,11.0,7
+6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
+6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
+6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
+6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
+6.5,0.52,0.11,1.8,0.073,13.0,38.0,0.9955,3.34,0.52,9.3,5
+7.4,0.6,0.26,2.1,0.083,17.0,91.0,0.99616,3.29,0.56,9.8,6
+7.4,0.6,0.26,2.1,0.083,17.0,91.0,0.99616,3.29,0.56,9.8,6
+7.8,0.87,0.26,3.8,0.107,31.0,67.0,0.9966799999999999,3.26,0.46,9.2,5
+8.4,0.39,0.1,1.7,0.075,6.0,25.0,0.9958100000000001,3.09,0.43,9.7,6
+9.1,0.775,0.22,2.2,0.079,12.0,48.0,0.9976,3.18,0.51,9.6,5
+7.2,0.835,0.0,2.0,0.166,4.0,11.0,0.99608,3.39,0.52,10.0,5
+6.6,0.58,0.02,2.4,0.069,19.0,40.0,0.99387,3.38,0.66,12.6,6
+6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5
+6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5
+6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5
+7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
+7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
+7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
+7.6,0.54,0.02,1.7,0.085,17.0,31.0,0.9958899999999999,3.37,0.51,10.4,6
+7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
+11.5,0.42,0.48,2.6,0.077,8.0,20.0,0.9985200000000001,3.09,0.53,11.0,5
+8.2,0.44,0.24,2.3,0.063,10.0,28.0,0.99613,3.25,0.53,10.2,6
+6.1,0.59,0.01,2.1,0.055999999999999994,5.0,13.0,0.99472,3.52,0.56,11.4,5
+7.2,0.655,0.03,1.8,0.078,7.0,12.0,0.99587,3.34,0.39,9.5,5
+7.2,0.655,0.03,1.8,0.078,7.0,12.0,0.99587,3.34,0.39,9.5,5
+6.9,0.57,0.0,2.8,0.081,21.0,41.0,0.99518,3.41,0.52,10.8,5
+9.0,0.6,0.29,2.0,0.069,32.0,73.0,0.99654,3.34,0.57,10.0,5
+7.2,0.62,0.01,2.3,0.065,8.0,46.0,0.9933200000000001,3.32,0.51,11.8,6
+7.6,0.645,0.03,1.9,0.086,14.0,57.0,0.9969,3.37,0.46,10.3,5
+7.6,0.645,0.03,1.9,0.086,14.0,57.0,0.9969,3.37,0.46,10.3,5
+7.2,0.58,0.03,2.3,0.077,7.0,28.0,0.9956799999999999,3.35,0.52,10.0,5
+6.1,0.32,0.25,1.8,0.086,5.0,32.0,0.99464,3.36,0.44,10.1,5
+6.1,0.34,0.25,1.8,0.084,4.0,28.0,0.99464,3.36,0.44,10.1,5
+7.3,0.43,0.24,2.5,0.078,27.0,67.0,0.9964799999999999,3.6,0.59,11.1,6
+7.4,0.64,0.17,5.4,0.168,52.0,98.0,0.99736,3.28,0.5,9.5,5
+11.6,0.475,0.4,1.4,0.091,6.0,28.0,0.9970399999999999,3.07,0.65,10.0333333333333,6
+9.2,0.54,0.31,2.3,0.11199999999999999,11.0,38.0,0.9969899999999999,3.24,0.56,10.9,5
+8.3,0.85,0.14,2.5,0.09300000000000001,13.0,54.0,0.99724,3.36,0.54,10.1,5
+11.6,0.475,0.4,1.4,0.091,6.0,28.0,0.9970399999999999,3.07,0.65,10.0333333333333,6
+8.0,0.83,0.27,2.0,0.08,11.0,63.0,0.9965200000000001,3.29,0.48,9.8,4
+7.2,0.605,0.02,1.9,0.096,10.0,31.0,0.995,3.46,0.53,11.8,6
+7.8,0.5,0.09,2.2,0.115,10.0,42.0,0.9971,3.18,0.62,9.5,5
+7.3,0.74,0.08,1.7,0.094,10.0,45.0,0.9957600000000001,3.24,0.5,9.8,5
+6.9,0.54,0.3,2.2,0.08800000000000001,9.0,105.0,0.99725,3.25,1.18,10.5,6
+8.0,0.77,0.32,2.1,0.079,16.0,74.0,0.99656,3.27,0.5,9.8,6
+6.6,0.61,0.0,1.6,0.069,4.0,8.0,0.9939600000000001,3.33,0.37,10.4,4
+8.7,0.78,0.51,1.7,0.415,12.0,66.0,0.99623,3.0,1.17,9.2,5
+7.5,0.58,0.56,3.1,0.153,5.0,14.0,0.9947600000000001,3.21,1.03,11.6,6
+8.7,0.78,0.51,1.7,0.415,12.0,66.0,0.99623,3.0,1.17,9.2,5
+7.7,0.75,0.27,3.8,0.11,34.0,89.0,0.99664,3.24,0.45,9.3,5
+6.8,0.815,0.0,1.2,0.267,16.0,29.0,0.99471,3.32,0.51,9.8,3
+7.2,0.56,0.26,2.0,0.083,13.0,100.0,0.9958600000000001,3.26,0.52,9.9,5
+8.2,0.885,0.2,1.4,0.086,7.0,31.0,0.9946,3.11,0.46,10.0,5
+5.2,0.49,0.26,2.3,0.09,23.0,74.0,0.9953,3.71,0.62,12.2,6
+7.2,0.45,0.15,2.0,0.078,10.0,28.0,0.9960899999999999,3.29,0.51,9.9,6
+7.5,0.57,0.02,2.6,0.077,11.0,35.0,0.9955700000000001,3.36,0.62,10.8,6
+7.5,0.57,0.02,2.6,0.077,11.0,35.0,0.9955700000000001,3.36,0.62,10.8,6
+6.8,0.83,0.09,1.8,0.07400000000000001,4.0,25.0,0.99534,3.38,0.45,9.6,5
+8.0,0.6,0.22,2.1,0.08,25.0,105.0,0.99613,3.3,0.49,9.9,5
+8.0,0.6,0.22,2.1,0.08,25.0,105.0,0.99613,3.3,0.49,9.9,5
+7.1,0.755,0.15,1.8,0.107,20.0,84.0,0.99593,3.19,0.5,9.5,5
+8.0,0.81,0.25,3.4,0.076,34.0,85.0,0.9966799999999999,3.19,0.42,9.2,5
+7.4,0.64,0.07,1.8,0.1,8.0,23.0,0.9961,3.3,0.58,9.6,5
+7.4,0.64,0.07,1.8,0.1,8.0,23.0,0.9961,3.3,0.58,9.6,5
+6.6,0.64,0.31,6.1,0.083,7.0,49.0,0.99718,3.35,0.68,10.3,5
+6.7,0.48,0.02,2.2,0.08,36.0,111.0,0.99524,3.1,0.53,9.7,5
+6.0,0.49,0.0,2.3,0.068,15.0,33.0,0.99292,3.58,0.59,12.5,6
+8.0,0.64,0.22,2.4,0.094,5.0,33.0,0.9961200000000001,3.37,0.58,11.0,5
+7.1,0.62,0.06,1.3,0.07,5.0,12.0,0.9942,3.17,0.48,9.8,5
+8.0,0.52,0.25,2.0,0.078,19.0,59.0,0.9961200000000001,3.3,0.48,10.2,5
+6.4,0.57,0.14,3.9,0.07,27.0,73.0,0.99669,3.32,0.48,9.2,5
+8.6,0.685,0.1,1.6,0.092,3.0,12.0,0.99745,3.31,0.65,9.55,6
+8.7,0.675,0.1,1.6,0.09,4.0,11.0,0.99745,3.31,0.65,9.55,5
+7.3,0.59,0.26,2.0,0.08,17.0,104.0,0.99584,3.28,0.52,9.9,5
+7.0,0.6,0.12,2.2,0.083,13.0,28.0,0.9966,3.52,0.62,10.2,7
+7.2,0.67,0.0,2.2,0.068,10.0,24.0,0.9956,3.42,0.72,11.1,6
+7.9,0.69,0.21,2.1,0.08,33.0,141.0,0.9962,3.25,0.51,9.9,5
+7.9,0.69,0.21,2.1,0.08,33.0,141.0,0.9962,3.25,0.51,9.9,5
+7.6,0.3,0.42,2.0,0.052000000000000005,6.0,24.0,0.9963,3.44,0.82,11.9,6
+7.2,0.33,0.33,1.7,0.061,3.0,13.0,0.996,3.23,1.1,10.0,8
+8.0,0.5,0.39,2.6,0.08199999999999999,12.0,46.0,0.9985,3.43,0.62,10.7,6
+7.7,0.28,0.3,2.0,0.062,18.0,34.0,0.9952,3.28,0.9,11.3,7
+8.2,0.24,0.34,5.1,0.062,8.0,22.0,0.9974,3.22,0.94,10.9,6
+6.0,0.51,0.0,2.1,0.064,40.0,54.0,0.995,3.54,0.93,10.7,6
+8.1,0.29,0.36,2.2,0.048,35.0,53.0,0.995,3.27,1.01,12.4,7
+6.0,0.51,0.0,2.1,0.064,40.0,54.0,0.995,3.54,0.93,10.7,6
+6.6,0.96,0.0,1.8,0.08199999999999999,5.0,16.0,0.9936,3.5,0.44,11.9,6
+6.4,0.47,0.4,2.4,0.071,8.0,19.0,0.9963,3.56,0.73,10.6,6
+8.2,0.24,0.34,5.1,0.062,8.0,22.0,0.9974,3.22,0.94,10.9,6
+9.9,0.57,0.25,2.0,0.10400000000000001,12.0,89.0,0.9963,3.04,0.9,10.1,5
+10.0,0.32,0.59,2.2,0.077,3.0,15.0,0.9994,3.2,0.78,9.6,5
+6.2,0.58,0.0,1.6,0.065,8.0,18.0,0.9966,3.56,0.84,9.4,5
+10.0,0.32,0.59,2.2,0.077,3.0,15.0,0.9994,3.2,0.78,9.6,5
+7.3,0.34,0.33,2.5,0.064,21.0,37.0,0.9952,3.35,0.77,12.1,7
+7.8,0.53,0.01,1.6,0.077,3.0,19.0,0.995,3.16,0.46,9.8,5
+7.7,0.64,0.21,2.2,0.077,32.0,133.0,0.9956,3.27,0.45,9.9,5
+7.8,0.53,0.01,1.6,0.077,3.0,19.0,0.995,3.16,0.46,9.8,5
+7.5,0.4,0.18,1.6,0.079,24.0,58.0,0.9965,3.34,0.58,9.4,5
+7.0,0.54,0.0,2.1,0.079,39.0,55.0,0.9956,3.39,0.84,11.4,6
+6.4,0.53,0.09,3.9,0.12300000000000001,14.0,31.0,0.9968,3.5,0.67,11.0,4
+8.3,0.26,0.37,1.4,0.076,8.0,23.0,0.9974,3.26,0.7,9.6,6
+8.3,0.26,0.37,1.4,0.076,8.0,23.0,0.9974,3.26,0.7,9.6,6
+7.7,0.23,0.37,1.8,0.046,23.0,60.0,0.9971,3.41,0.71,12.1,6
+7.6,0.41,0.33,2.5,0.078,6.0,23.0,0.9957,3.3,0.58,11.2,5
+7.8,0.64,0.0,1.9,0.07200000000000001,27.0,55.0,0.9962,3.31,0.63,11.0,5
+7.9,0.18,0.4,2.2,0.049,38.0,67.0,0.996,3.33,0.93,11.3,5
+7.4,0.41,0.24,1.8,0.066,18.0,47.0,0.9956,3.37,0.62,10.4,5
+7.6,0.43,0.31,2.1,0.069,13.0,74.0,0.9958,3.26,0.54,9.9,6
+5.9,0.44,0.0,1.6,0.042,3.0,11.0,0.9944,3.48,0.85,11.7,6
+6.1,0.4,0.16,1.8,0.069,11.0,25.0,0.9955,3.42,0.74,10.1,7
+10.2,0.54,0.37,15.4,0.214,55.0,95.0,1.00369,3.18,0.77,9.0,6
+10.2,0.54,0.37,15.4,0.214,55.0,95.0,1.00369,3.18,0.77,9.0,6
+10.0,0.38,0.38,1.6,0.16899999999999998,27.0,90.0,0.9991399999999999,3.15,0.65,8.5,5
+6.8,0.915,0.29,4.8,0.07,15.0,39.0,0.99577,3.53,0.54,11.1,5
+7.0,0.59,0.0,1.7,0.052000000000000005,3.0,8.0,0.996,3.41,0.47,10.3,5
+7.3,0.67,0.02,2.2,0.07200000000000001,31.0,92.0,0.99566,3.32,0.68,11.066666666666698,6
+7.2,0.37,0.32,2.0,0.062,15.0,28.0,0.9947,3.23,0.73,11.3,7
+7.4,0.785,0.19,5.2,0.094,19.0,98.0,0.99713,3.16,0.52,9.56666666666667,6
+6.9,0.63,0.02,1.9,0.078,18.0,30.0,0.9971200000000001,3.4,0.75,9.8,5
+6.9,0.58,0.2,1.75,0.057999999999999996,8.0,22.0,0.9932200000000001,3.38,0.49,11.7,5
+7.3,0.67,0.02,2.2,0.07200000000000001,31.0,92.0,0.99566,3.32,0.68,11.1,6
+7.4,0.785,0.19,5.2,0.094,19.0,98.0,0.99713,3.16,0.52,9.6,6
+6.9,0.63,0.02,1.9,0.078,18.0,30.0,0.9971200000000001,3.4,0.75,9.8,5
+6.8,0.67,0.0,1.9,0.08,22.0,39.0,0.9970100000000001,3.4,0.74,9.7,5
+6.9,0.58,0.01,1.9,0.08,40.0,54.0,0.9968299999999999,3.4,0.73,9.7,5
+7.2,0.38,0.31,2.0,0.055999999999999994,15.0,29.0,0.99472,3.23,0.76,11.3,8
+7.2,0.37,0.32,2.0,0.062,15.0,28.0,0.9947,3.23,0.73,11.3,7
+7.8,0.32,0.44,2.7,0.10400000000000001,8.0,17.0,0.9973200000000001,3.33,0.78,11.0,7
+6.6,0.58,0.02,2.0,0.062,37.0,53.0,0.99374,3.35,0.76,11.6,7
+7.6,0.49,0.33,1.9,0.07400000000000001,27.0,85.0,0.9970600000000001,3.41,0.58,9.0,5
+11.7,0.45,0.63,2.2,0.073,7.0,23.0,0.99974,3.21,0.69,10.9,6
+6.5,0.9,0.0,1.6,0.052000000000000005,9.0,17.0,0.99467,3.5,0.63,10.9,6
+6.0,0.54,0.06,1.8,0.05,38.0,89.0,0.99236,3.3,0.5,10.55,6
+7.6,0.49,0.33,1.9,0.07400000000000001,27.0,85.0,0.9970600000000001,3.41,0.58,9.0,5
+8.4,0.29,0.4,1.7,0.067,8.0,20.0,0.99603,3.39,0.6,10.5,5
+7.9,0.2,0.35,1.7,0.054000000000000006,7.0,15.0,0.9945799999999999,3.32,0.8,11.9,7
+6.4,0.42,0.09,2.3,0.054000000000000006,34.0,64.0,0.99724,3.41,0.68,10.4,6
+6.2,0.785,0.0,2.1,0.06,6.0,13.0,0.99664,3.59,0.61,10.0,4
+6.8,0.64,0.03,2.3,0.075,14.0,31.0,0.99545,3.36,0.58,10.4,6
+6.9,0.63,0.01,2.4,0.076,14.0,39.0,0.9952200000000001,3.34,0.53,10.8,6
+6.8,0.59,0.1,1.7,0.063,34.0,53.0,0.9958,3.41,0.67,9.7,5
+6.8,0.59,0.1,1.7,0.063,34.0,53.0,0.9958,3.41,0.67,9.7,5
+7.3,0.48,0.32,2.1,0.062,31.0,54.0,0.9972799999999999,3.3,0.65,10.0,7
+6.7,1.04,0.08,2.3,0.067,19.0,32.0,0.9964799999999999,3.52,0.57,11.0,4
+7.3,0.48,0.32,2.1,0.062,31.0,54.0,0.9972799999999999,3.3,0.65,10.0,7
+7.3,0.98,0.05,2.1,0.061,20.0,49.0,0.99705,3.31,0.55,9.7,3
+10.0,0.69,0.11,1.4,0.084,8.0,24.0,0.9957799999999999,2.88,0.47,9.7,5
+6.7,0.7,0.08,3.75,0.067,8.0,16.0,0.99334,3.43,0.52,12.6,5
+7.6,0.35,0.6,2.6,0.073,23.0,44.0,0.99656,3.38,0.79,11.1,6
+6.1,0.6,0.08,1.8,0.071,14.0,45.0,0.99336,3.38,0.54,11.0,5
+9.9,0.5,0.5,13.8,0.205,48.0,82.0,1.00242,3.16,0.75,8.8,5
+5.3,0.47,0.11,2.2,0.048,16.0,89.0,0.99182,3.54,0.88,13.566666666666698,7
+9.9,0.5,0.5,13.8,0.205,48.0,82.0,1.00242,3.16,0.75,8.8,5
+5.3,0.47,0.11,2.2,0.048,16.0,89.0,0.99182,3.54,0.88,13.6,7
+7.1,0.875,0.05,5.7,0.08199999999999999,3.0,14.0,0.99808,3.4,0.52,10.2,3
+8.2,0.28,0.6,3.0,0.10400000000000001,10.0,22.0,0.99828,3.39,0.68,10.6,5
+5.6,0.62,0.03,1.5,0.08,6.0,13.0,0.99498,3.66,0.62,10.1,4
+8.2,0.28,0.6,3.0,0.10400000000000001,10.0,22.0,0.99828,3.39,0.68,10.6,5
+7.2,0.58,0.54,2.1,0.114,3.0,9.0,0.9971899999999999,3.33,0.57,10.3,4
+8.1,0.33,0.44,1.5,0.042,6.0,12.0,0.9954200000000001,3.35,0.61,10.7,5
+6.8,0.91,0.06,2.0,0.06,4.0,11.0,0.99592,3.53,0.64,10.9,4
+7.0,0.655,0.16,2.1,0.07400000000000001,8.0,25.0,0.9960600000000001,3.37,0.55,9.7,5
+6.8,0.68,0.21,2.1,0.07,9.0,23.0,0.99546,3.38,0.6,10.3,5
+6.0,0.64,0.05,1.9,0.066,9.0,17.0,0.9949600000000001,3.52,0.78,10.6,5
+5.6,0.54,0.04,1.7,0.049,5.0,13.0,0.9942,3.72,0.58,11.4,5
+6.2,0.57,0.1,2.1,0.048,4.0,11.0,0.9944799999999999,3.44,0.76,10.8,6
+7.1,0.22,0.49,1.8,0.039,8.0,18.0,0.99344,3.39,0.56,12.4,6
+5.6,0.54,0.04,1.7,0.049,5.0,13.0,0.9942,3.72,0.58,11.4,5
+6.2,0.65,0.06,1.6,0.05,6.0,18.0,0.9934799999999999,3.57,0.54,11.95,5
+7.7,0.54,0.26,1.9,0.08900000000000001,23.0,147.0,0.99636,3.26,0.59,9.7,5
+6.4,0.31,0.09,1.4,0.066,15.0,28.0,0.99459,3.42,0.7,10.0,7
+7.0,0.43,0.02,1.9,0.08,15.0,28.0,0.99492,3.35,0.81,10.6,6
+7.7,0.54,0.26,1.9,0.08900000000000001,23.0,147.0,0.99636,3.26,0.59,9.7,5
+6.9,0.74,0.03,2.3,0.054000000000000006,7.0,16.0,0.99508,3.45,0.63,11.5,6
+6.6,0.895,0.04,2.3,0.068,7.0,13.0,0.99582,3.53,0.58,10.8,6
+6.9,0.74,0.03,2.3,0.054000000000000006,7.0,16.0,0.99508,3.45,0.63,11.5,6
+7.5,0.725,0.04,1.5,0.076,8.0,15.0,0.99508,3.26,0.53,9.6,5
+7.8,0.82,0.29,4.3,0.083,21.0,64.0,0.9964200000000001,3.16,0.53,9.4,5
+7.3,0.585,0.18,2.4,0.078,15.0,60.0,0.9963799999999999,3.31,0.54,9.8,5
+6.2,0.44,0.39,2.5,0.077,6.0,14.0,0.99555,3.51,0.69,11.0,6
+7.5,0.38,0.57,2.3,0.106,5.0,12.0,0.99605,3.36,0.55,11.4,6
+6.7,0.76,0.02,1.8,0.078,6.0,12.0,0.996,3.55,0.63,9.95,3
+6.8,0.81,0.05,2.0,0.07,6.0,14.0,0.9956200000000001,3.51,0.66,10.8,6
+7.5,0.38,0.57,2.3,0.106,5.0,12.0,0.99605,3.36,0.55,11.4,6
+7.1,0.27,0.6,2.1,0.07400000000000001,17.0,25.0,0.9981399999999999,3.38,0.72,10.6,6
+7.9,0.18,0.4,1.8,0.062,7.0,20.0,0.9941,3.28,0.7,11.1,5
+6.4,0.36,0.21,2.2,0.047,26.0,48.0,0.99661,3.47,0.77,9.7,6
+7.1,0.69,0.04,2.1,0.068,19.0,27.0,0.9971200000000001,3.44,0.67,9.8,5
+6.4,0.79,0.04,2.2,0.061,11.0,17.0,0.9958799999999999,3.53,0.65,10.4,6
+6.4,0.56,0.15,1.8,0.078,17.0,65.0,0.9929399999999999,3.33,0.6,10.5,6
+6.9,0.84,0.21,4.1,0.07400000000000001,16.0,65.0,0.9984200000000001,3.53,0.72,9.23333333333333,6
+6.9,0.84,0.21,4.1,0.07400000000000001,16.0,65.0,0.9984200000000001,3.53,0.72,9.25,6
+6.1,0.32,0.25,2.3,0.071,23.0,58.0,0.9963299999999999,3.42,0.97,10.6,5
+6.5,0.53,0.06,2.0,0.063,29.0,44.0,0.9948899999999999,3.38,0.83,10.3,6
+7.4,0.47,0.46,2.2,0.114,7.0,20.0,0.9964700000000001,3.32,0.63,10.5,5
+6.6,0.7,0.08,2.6,0.106,14.0,27.0,0.99665,3.44,0.58,10.2,5
+6.5,0.53,0.06,2.0,0.063,29.0,44.0,0.9948899999999999,3.38,0.83,10.3,6
+6.9,0.48,0.2,1.9,0.08199999999999999,9.0,23.0,0.99585,3.39,0.43,9.05,4
+6.1,0.32,0.25,2.3,0.071,23.0,58.0,0.9963299999999999,3.42,0.97,10.6,5
+6.8,0.48,0.25,2.0,0.076,29.0,61.0,0.9953,3.34,0.6,10.4,5
+6.0,0.42,0.19,2.0,0.075,22.0,47.0,0.9952200000000001,3.39,0.78,10.0,6
+6.7,0.48,0.08,2.1,0.064,18.0,34.0,0.9955200000000001,3.33,0.64,9.7,5
+6.8,0.47,0.08,2.2,0.064,18.0,38.0,0.9955299999999999,3.3,0.65,9.6,6
+7.1,0.53,0.07,1.7,0.071,15.0,24.0,0.9951,3.29,0.66,10.8,6
+7.9,0.29,0.49,2.2,0.096,21.0,59.0,0.9971399999999999,3.31,0.67,10.1,6
+7.1,0.69,0.08,2.1,0.063,42.0,52.0,0.99608,3.42,0.6,10.2,6
+6.6,0.44,0.09,2.2,0.063,9.0,18.0,0.99444,3.42,0.69,11.3,6
+6.1,0.705,0.1,2.8,0.081,13.0,28.0,0.99631,3.6,0.66,10.2,5
+7.2,0.53,0.13,2.0,0.057999999999999996,18.0,22.0,0.9957299999999999,3.21,0.68,9.9,6
+8.0,0.39,0.3,1.9,0.07400000000000001,32.0,84.0,0.9971700000000001,3.39,0.61,9.0,5
+6.6,0.56,0.14,2.4,0.064,13.0,29.0,0.99397,3.42,0.62,11.7,7
+7.0,0.55,0.13,2.2,0.075,15.0,35.0,0.9959,3.36,0.59,9.7,6
+6.1,0.53,0.08,1.9,0.077,24.0,45.0,0.9952799999999999,3.6,0.68,10.3,6
+5.4,0.58,0.08,1.9,0.059000000000000004,20.0,31.0,0.99484,3.5,0.64,10.2,6
+6.2,0.64,0.09,2.5,0.081,15.0,26.0,0.9953799999999999,3.57,0.63,12.0,5
+7.2,0.39,0.32,1.8,0.065,34.0,60.0,0.9971399999999999,3.46,0.78,9.9,5
+6.2,0.52,0.08,4.4,0.071,11.0,32.0,0.99646,3.56,0.63,11.6,6
+7.4,0.25,0.29,2.2,0.054000000000000006,19.0,49.0,0.99666,3.4,0.76,10.9,7
+6.7,0.855,0.02,1.9,0.064,29.0,38.0,0.99472,3.3,0.56,10.75,6
+11.1,0.44,0.42,2.2,0.064,14.0,19.0,0.9975799999999999,3.25,0.57,10.4,6
+8.4,0.37,0.43,2.3,0.063,12.0,19.0,0.9955,3.17,0.81,11.2,7
+6.5,0.63,0.33,1.8,0.059000000000000004,16.0,28.0,0.99531,3.36,0.64,10.1,6
+7.0,0.57,0.02,2.0,0.07200000000000001,17.0,26.0,0.99575,3.36,0.61,10.2,5
+6.3,0.6,0.1,1.6,0.048,12.0,26.0,0.99306,3.55,0.51,12.1,5
+11.2,0.4,0.5,2.0,0.099,19.0,50.0,0.9978299999999999,3.1,0.58,10.4,5
+7.4,0.36,0.3,1.8,0.07400000000000001,17.0,24.0,0.99419,3.24,0.7,11.4,8
+7.1,0.68,0.0,2.3,0.087,17.0,26.0,0.9978299999999999,3.45,0.53,9.5,5
+7.1,0.67,0.0,2.3,0.083,18.0,27.0,0.9976799999999999,3.44,0.54,9.4,5
+6.3,0.68,0.01,3.7,0.10300000000000001,32.0,54.0,0.9958600000000001,3.51,0.66,11.3,6
+7.3,0.735,0.0,2.2,0.08,18.0,28.0,0.99765,3.41,0.6,9.4,5
+6.6,0.855,0.02,2.4,0.062,15.0,23.0,0.9962700000000001,3.54,0.6,11.0,6
+7.0,0.56,0.17,1.7,0.065,15.0,24.0,0.9951399999999999,3.44,0.68,10.55,7
+6.6,0.88,0.04,2.2,0.066,12.0,20.0,0.99636,3.53,0.56,9.9,5
+6.6,0.855,0.02,2.4,0.062,15.0,23.0,0.9962700000000001,3.54,0.6,11.0,6
+6.9,0.63,0.33,6.7,0.235,66.0,115.0,0.99787,3.22,0.56,9.5,5
+7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5
+7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5
+7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5
+7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
+7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
+7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
+6.7,0.67,0.02,1.9,0.061,26.0,42.0,0.9948899999999999,3.39,0.82,10.9,6
+6.7,0.16,0.64,2.1,0.059000000000000004,24.0,52.0,0.9949399999999999,3.34,0.71,11.2,6
+7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
+7.0,0.56,0.13,1.6,0.077,25.0,42.0,0.99629,3.34,0.59,9.2,5
+6.2,0.51,0.14,1.9,0.055999999999999994,15.0,34.0,0.9939600000000001,3.48,0.57,11.5,6
+6.4,0.36,0.53,2.2,0.23,19.0,35.0,0.9934,3.37,0.93,12.4,6
+6.4,0.38,0.14,2.2,0.038,15.0,25.0,0.9951399999999999,3.44,0.65,11.1,6
+7.3,0.69,0.32,2.2,0.069,35.0,104.0,0.9963200000000001,3.33,0.51,9.5,5
+6.0,0.58,0.2,2.4,0.075,15.0,50.0,0.99467,3.58,0.67,12.5,6
+5.6,0.31,0.78,13.9,0.07400000000000001,23.0,92.0,0.99677,3.39,0.48,10.5,6
+7.5,0.52,0.4,2.2,0.06,12.0,20.0,0.99474,3.26,0.64,11.8,6
+8.0,0.3,0.63,1.6,0.081,16.0,29.0,0.9958799999999999,3.3,0.78,10.8,6
+6.2,0.7,0.15,5.1,0.076,13.0,27.0,0.9962200000000001,3.54,0.6,11.9,6
+6.8,0.67,0.15,1.8,0.11800000000000001,13.0,20.0,0.9954,3.42,0.67,11.3,6
+6.2,0.56,0.09,1.7,0.053,24.0,32.0,0.9940200000000001,3.54,0.6,11.3,5
+7.4,0.35,0.33,2.4,0.068,9.0,26.0,0.9947,3.36,0.6,11.9,6
+6.2,0.56,0.09,1.7,0.053,24.0,32.0,0.9940200000000001,3.54,0.6,11.3,5
+6.1,0.715,0.1,2.6,0.053,13.0,27.0,0.9936200000000001,3.57,0.5,11.9,5
+6.2,0.46,0.29,2.1,0.07400000000000001,32.0,98.0,0.9957799999999999,3.33,0.62,9.8,5
+6.7,0.32,0.44,2.4,0.061,24.0,34.0,0.99484,3.29,0.8,11.6,7
+7.2,0.39,0.44,2.6,0.066,22.0,48.0,0.9949399999999999,3.3,0.84,11.5,6
+7.5,0.31,0.41,2.4,0.065,34.0,60.0,0.99492,3.34,0.85,11.4,6
+5.8,0.61,0.11,1.8,0.066,18.0,28.0,0.9948299999999999,3.55,0.66,10.9,6
+7.2,0.66,0.33,2.5,0.068,34.0,102.0,0.9941399999999999,3.27,0.78,12.8,6
+6.6,0.725,0.2,7.8,0.073,29.0,79.0,0.9977,3.29,0.54,9.2,5
+6.3,0.55,0.15,1.8,0.077,26.0,35.0,0.9931399999999999,3.32,0.82,11.6,6
+5.4,0.74,0.09,1.7,0.08900000000000001,16.0,26.0,0.9940200000000001,3.67,0.56,11.6,6
+6.3,0.51,0.13,2.3,0.076,29.0,40.0,0.99574,3.42,0.75,11.0,6
+6.8,0.62,0.08,1.9,0.068,28.0,38.0,0.99651,3.42,0.82,9.5,6
+6.2,0.6,0.08,2.0,0.09,32.0,44.0,0.9949,3.45,0.58,10.5,5
+5.9,0.55,0.1,2.2,0.062,39.0,51.0,0.9951200000000001,3.52,0.76,11.2,6
+6.3,0.51,0.13,2.3,0.076,29.0,40.0,0.99574,3.42,0.75,11.0,6
+5.9,0.645,0.12,2.0,0.075,32.0,44.0,0.9954700000000001,3.57,0.71,10.2,5
+6.0,0.31,0.47,3.6,0.067,18.0,42.0,0.99549,3.39,0.66,11.0,6
diff --git a/lib.py b/lib.py
new file mode 100644
index 0000000..08a64b9
--- /dev/null
+++ b/lib.py
@@ -0,0 +1,321 @@
+"""
+References:
+ 1. AIC definition: Wikipedia - Akaike information criterion
+ [LINK] https://en.wikipedia.org/wiki/Akaike_information_criterion
+ 2. Log likelihood formula - StatLect "Log-likelihood"
+ [LINK] https://www.statlect.com/glossary/log-likelihood
+ 3. R2 score formula: Wikipedia - Coefficient of determination
+ [LINK] https://en.wikipedia.org/wiki/Coefficient_of_determination
+"""
+import csv
+import json
+import re
+import numpy as np
+import matplotlib.pyplot as plt
+from sklearn.linear_model import *
+from datetime import datetime
+
+# Collection of auxiliary functions
+
+"""
+ Parameter setting read
+"""
+
+
+def get_param(file_path: str) -> dict:
+ """
+ get_param()
+ This function reads parameter settings from a JSON file.
+ :param file_path: Path to the JSON file containing parameter settings.
+ :return: A dictionary of parameters.
+ """
+ with open(file_path, "r", encoding="utf-8") as file:
+ return json.load(file)
+
+
+"""
+ Model selection functions
+"""
+
+
+def get_model(model_type: str):
+ """
+ get_model()
+ This function returns a model object based on the given model_type.
+ If an invalid model_type is provided, it defaults to LinearRegression.
+ :param model_type: The type of model to use. Options: "LinearRegression" (default), "LogisticRegression".
+ :return: A model object.
+ """
+ print(f"Model Type: {model_type}")
+
+ if model_type == "LinearRegression":
+ return LinearRegression()
+ elif model_type == "LogisticRegression":
+ return LogisticRegression(max_iter=1000)
+ else: # Invalid type described
+ print(f"[Warning] Invalid model type given. Defaulting to 'LinearRegression'.")
+ return LinearRegression()
+
+
+def get_metric(metric_type: str):
+ """
+ get_metric()
+ This function returns the metric function corresponding to the given metric_type.
+ Defaults to MSE if an invalid type is provided.
+ :param metric_type: The type of metric to use. Options: "MSE" (default), "Accuracy score", "R2".
+ :return: A metric function.
+ """
+ print(f"Metric Type: {metric_type}")
+
+ if metric_type == "MSE":
+ return MSE
+ elif metric_type == "Accuracy score":
+ return accuracy_score
+ elif metric_type == "R2":
+ return R2
+ else: # Invalid type described
+ print(f"[Warning] Invalid metric type given. Defaulting to 'MSE'.")
+ return MSE
+
+
+"""
+ Data import and generation functions
+"""
+
+
+def read_csv(file_path: str, test_ratio: float) -> tuple:
+ """
+ read_csv()
+ This function reads data from a CSV file and splits it into training and test sets.
+ :param file_path: The path of the CSV file to read.
+ :param test_ratio: The proportion of data to use for the test set.
+ :return: A tuple containing the full dataset (X, y) and the split datasets (train_X, train_y, test_X, test_y).
+ """
+ data = np.loadtxt(file_path, delimiter=',', skiprows=1) # Skip the header row
+
+ X = data[:, :-1]
+ y = data[:, -1]
+
+ # Split dataset into train and test
+ train_X, train_y, test_X, test_y = split_dataset(X, y, test_ratio)
+ return X, y, train_X, train_y, test_X, test_y
+
+
+def generate_data(size: int, dimension: int, correlation: float, noise_std: float, random_state: int,
+ test_ratio: float) -> tuple:
+ """
+ generate_data()
+ This function generates synthetic data with multi-collinearity, designed for testing models like ElasticNet.
+ :param size: Number of samples to generate.
+ :param dimension: Number of features to generate.
+ :param correlation: Correlation coefficient between features (1 indicates perfect correlation).
+ :param noise_std: Standard deviation of noise added to the data.
+ :param random_state: Random seed for reproducibility.
+ :param test_ratio: The proportion of data to use for the test set.
+ :return: A tuple containing the full dataset (X, y) and the split datasets (train_X, train_y, test_X, test_y).
+ """
+ if random_state:
+ np.random.seed(random_state)
+
+ # Generate the base feature
+ X_base = np.random.rand(size, 1)
+
+ # Create correlated features
+ X = X_base + correlation * np.random.randn(size, dimension) * noise_std
+
+ # Increase the correlation between each feature (e.g. through linear combination)
+ for i in range(1, dimension):
+ X[:, i] = correlation * X_base[:, 0] + (1 - correlation) * np.random.randn(size)
+
+ # Generate weights, bias, and noise
+ weights = np.random.randn(dimension)
+ bias = np.random.rand()
+ noise_std = np.random.normal(0, noise_std, size=size)
+
+ # Create the target variable y
+ y = X.dot(weights) + bias + (bias + noise_std)
+
+ # Split dataset into train and test
+ train_X, train_y, test_X, test_y = split_dataset(X, y, test_ratio)
+ return X, y, train_X, train_y, test_X, test_y
+
+
+def split_dataset(X: np.ndarray, y: np.ndarray, test_ratio: float) -> tuple:
+ """
+ split_dataset()
+ This function splits the dataset into training and test sets based on the given test_ratio.
+ :param X: Features.
+ :param y: Labels.
+ :param test_ratio: Proportion of the dataset to use as the test set.
+ :return: Training and test sets (train_X, train_y, test_X, test_y).
+ """
+ # Split data into train and test
+ test_size = int(test_ratio * X.shape[0])
+ train_X, test_X = X[:test_size], X[test_size:]
+ train_y, test_y = y[:test_size], y[test_size:]
+ return train_X, train_y, test_X, test_y
+
+
+def get_data(data_type: str, args: dict) -> tuple:
+ """
+ get_data()
+ This function loads or generates a dataset based on the data_type.
+ :param data_type: The type of dataset to use. Options: "file" (from CSV) or "generate" (synthetic data).
+ :param args: Arguments specific to the chosen data type.
+ :return: Dataset tuples (X, y, train_X, train_y, test_X, test_y).
+ """
+ if data_type == 'file':
+ return read_csv(**args)
+ else: # Default to generated data
+ return generate_data(**args)
+
+
+"""
+ Metric functions
+"""
+
+
+def MSE(y: np.ndarray, y_pred: np.ndarray) -> float:
+ """
+ MSE()
+ This function calculates the Mean Squared Error (MSE) between actual and predicted values.
+ :param y: Actual values.
+ :param y_pred: Predicted values.
+ :return: Mean Squared Error.
+ """
+ return float(np.mean((y - y_pred) ** 2))
+
+
+def accuracy_score(y: np.ndarray, y_pred: np.ndarray) -> float:
+ """
+ accuracy_score()
+ This function calculates the accuracy score for classification tasks.
+ :param y: Actual labels.
+ :param y_pred: Predicted labels.
+ :return: Accuracy score.
+ """
+ return float(np.sum(y == y_pred) / len(y))
+
+
+def AIC(y: np.ndarray, X: np.ndarray, y_pred: np.ndarray):
+ """
+ AIC()
+ This function computes the Akaike Information Criterion (AIC) for the given model.
+ Formula used:
+ * Refer to above references
+ log-likelihood = - n/2*log(2*π) - n/2*log(MSE) - n/2
+ AIC = 2*k - 2*(log-likelihood)
+ = - (∑((y_i - y_pred_i)²) / ∑((y_i - y_mean)²))
+ :param y: Actual values.
+ :param X: Feature matrix.
+ :param y_pred: Predicted values.
+ :return: AIC value.
+ """
+ # Number of samples and features
+ n = X.shape[0]
+ k = X.shape[1] + 1 # Include residual as a parameter
+
+ # compute Log-likelihood
+ log_likelihood = - n / 2 * np.log(2 * np.pi) - n / 2 - n * np.log(MSE(y, y_pred)) / 2
+
+ # Return AIC value
+ return 2 * k - 2 * log_likelihood
+
+
+def R2(y: np.ndarray, y_pred: np.ndarray) -> float:
+ """
+ R2()
+ This function calculates the R² score (coefficient of determination) for regression models.
+ Formula used:
+ R² = 1 - (∑((y_i - y_pred_i)²) / ∑((y_i - y_mean)²))
+ where:
+ y_i : actual weight of ith feature
+ y_pred_i : predicted weight of ith feature
+ y_mean : mean of the actual weight features
+ :param y: Actual values.
+ :param y_pred: Predicted values.
+ :return: R² score.
+ """
+ # Average of actual weights
+ y_mean = np.mean(y)
+ r_2 = 1 - np.sum((y - y_pred) ** 2) / np.sum((y - y_mean) ** 2) # R2 = 1 - SSR/SST
+ return float(r_2)
+
+
+"""
+ Data write & Visualization
+"""
+
+
+def visualize(data: list, target: str, feature: list):
+ # data: ["size", "dimension", "correlation","noise_std", "k-value","epochs","Average", "AIC"]
+
+ # Transform into numpy array
+ data = np.array(data)
+
+ # Split feature label
+ X = data[:, :-2] # Excluding Average, AIC
+ y_average = data[:, -2] # Label Average
+ y_AIC = data[:, -1] # Label Average
+
+ # Pick specific feature parameter
+ i = feature[1]
+ X_i = X[:, i]
+
+ fig, axes = plt.subplots(1, 2, figsize=(12, 6)) # 1 row, 2 columns
+
+ # First plot: Average Score
+ axes[0].scatter(X_i, y_average, color='blue', label=f'Feature {feature[0]} vs Average Score')
+
+ # Fit trend line for Average
+ coeffs_avg = np.polyfit(X_i, y_average, 1) # slope parameter
+ trend_avg = np.polyval(coeffs_avg, X_i) # trend line
+
+ # plot graph
+ axes[0].plot(X_i, trend_avg, color='cyan', linestyle='--', label='Trend Line (Average)')
+ axes[0].set_title(f'{target} Average Score: {feature[0]}')
+ axes[0].set_xlabel(f'Feature {feature[0]}')
+ axes[0].set_ylabel('Average Score')
+ axes[0].legend()
+ axes[0].grid(True)
+
+ # Second plot: AIC Score
+ axes[1].scatter(X_i, y_AIC, color='red', label=f'Feature {feature[0]} vs AIC Score')
+
+ # Fit trend line for AIC
+ coeffs_aic = np.polyfit(X_i, y_AIC, 1) # slope parameter
+ trend_aic = np.polyval(coeffs_aic, X_i) # trend line
+
+ # plot graph
+ axes[1].plot(X_i, trend_aic, color='cyan', linestyle='--', label='Trend Line (AIC)')
+ axes[1].set_title(f'{target} AIC Score: {feature[0]}')
+ axes[1].set_xlabel(f'Feature {feature[0]}')
+ axes[1].set_ylabel('AIC Score')
+ axes[1].legend()
+ axes[1].grid(True)
+
+ # Adjust layout and display
+ plt.tight_layout()
+ plt.show()
+
+
+def write(file_path: str, data: list, header: list):
+ """
+ write()
+ This function writes data to a given file with a timestamped file name.
+ :param file_path: The original file path (string).
+ :param data: A list of rows to write into the CSV file. Each row is a list of values.
+ :param header: A list representing the header row of the given file.
+ """
+ # Update file name - Append current time to discriminate
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
+ new_path = re.sub(
+ r'([^/]+)\.([a-zA-Z0-9]+)$',
+ rf'\1_{timestamp}.\2',
+ file_path
+ )
+ # Write a file to designated path
+ with open(new_path, "wt", newline="", encoding="utf-8") as f:
+ csv_writer = csv.writer(f)
+ csv_writer.writerow(header)
+ csv_writer.writerows(data)
diff --git a/modelSelection.py b/modelSelection.py
new file mode 100644
index 0000000..77ee7c0
--- /dev/null
+++ b/modelSelection.py
@@ -0,0 +1,93 @@
+from lib import *
+
+
+def k_fold_cross_validation(model, metric, X: np.ndarray, y: np.ndarray, k: int, shuffle: bool):
+ """
+ k_fold_cross_validation()
+ This function validates the model using the k-fold cross-validation method.
+
+ :param model: The statistical model to test.
+ :param metric: The metric function to measure the model's performance.
+ :param X: The feature matrix for training.
+ :param y: The target labels for training.
+ :param k: The number of folds to divide the data into.
+ :param shuffle: Whether to shuffle the data before splitting into folds.
+ :return: A tuple containing the list of metric scores for each fold and their average score.
+ """
+ scores = []
+ n = X.shape[0] # Total number of samples
+ fold_size = n // k # Number of samples per fold
+
+ if shuffle: # Shuffle the data
+ indices = np.arange(n)
+ np.random.shuffle(indices)
+
+ X = X[indices]
+ y = y[indices]
+
+ for i in range(k):
+ # Define the start and end indices of the current validation fold
+ start, end = i * fold_size, (i + 1) * fold_size
+
+ # Extract the validation set
+ X_val, y_val = X[start:end], y[start:end]
+
+ # Extract the training set by excluding the current fold
+ X_train = np.concatenate([X[:start], X[end:]], axis=0)
+ y_train = np.concatenate([y[:start], y[end:]], axis=0)
+
+ # Train the model on the training set
+ model.fit(X_train, y_train)
+
+ # Predict on the validation set
+ y_predicted = model.predict(X_val)
+
+ # Calculate the score using the metric function
+ score = metric(y_val, y_predicted)
+
+ # Append the score to the list
+ scores.append(score)
+
+ # Return the list of scores and their average
+ return scores, float(np.average(scores))
+
+
+def bootstrapping(model, metric, X: np.ndarray, y: np.ndarray, s: int, epochs: int):
+ """
+ bootstrapping()
+ This function performs bootstrapping to evaluate the model's performance.
+
+ :param model: The statistical model to test.
+ :param metric: The metric function to measure the model's performance.
+ :param X: The feature matrix for training.
+ :param y: The target labels for training.
+ :param s: The size of the training dataset for each bootstrap sample.
+ :param epochs: The number of bootstrap iterations to perform.
+ :return: A tuple containing the list of metric scores for each iteration and their average score.
+ """
+ scores = []
+ n = X.shape[0] # Total number of samples
+
+ for _ in range(epochs):
+ # Randomly sample 's(=size of sample)' indices with replacement to create the training set
+ indices = np.random.choice(range(n), size=s, replace=True)
+ X_train, y_train = X[indices], y[indices]
+
+ # Use the remaining data as the validation set
+ out_of_sample = [i for i in range(n) if i not in indices]
+ X_val, y_val = X[out_of_sample], y[out_of_sample]
+
+ # Train the model on the bootstrap sample
+ model.fit(X_train, y_train)
+
+ # Predict on the validation set
+ y_pred = model.predict(X_val)
+
+ # Calculate the score if there is any validation data
+ if len(out_of_sample) > 0:
+ score = metric(y_val, y_pred)
+ scores.append(score)
+
+ # Calculate the average score across all iterations
+ average_score = np.mean(scores)
+ return scores, float(average_score)
diff --git a/params/__init__.py b/params/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/params/param_bootstrap.json b/params/param_bootstrap.json
new file mode 100644
index 0000000..969d74b
--- /dev/null
+++ b/params/param_bootstrap.json
@@ -0,0 +1,77 @@
+{
+ "description": "Batch test setting: bootstrapping exclusive test",
+ "test": {
+ "general": {
+ "activate": {"k_fold_CV": false, "bootstrapping": true},
+ "model": "LinearRegression",
+ "metric": "R2",
+ "data": "generate"
+ },
+ "k_fold_cross_validation": {
+ "k": [5],
+ "shuffle": true
+ },
+ "bootstrapping": {
+ "size": [10, 50, 100],
+ "epochs": [10, 100, 500, 1000]
+ },
+ "analysis": {
+ "visualize": {
+ "k_fold_CV":{
+ "label_X": [],
+ "activate": false
+ },
+ "bootstrapping": {
+ "label_X": [],
+ "activate": false
+ }
+ },
+ "write": {
+ "k_fold_CV": {
+ "activate": false,
+ "header": [],
+ "file_path": ""
+ },
+ "bootstrapping": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std","sample_size","epochs","Average", "AIC"],
+ "file_path": "./results/bootstrap_only.csv"
+ }
+ }
+ }
+},
+ "data": {
+ "file": [
+ {
+ "file_path": "./data/housing.csv",
+ "test_ratio": 0.25
+ }
+ ],
+ "generate": [
+ {
+ "size": 500,
+ "dimension": 10,
+ "correlation": 0.0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 0.9,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ }
+ ]
+ }
+}
diff --git a/params/param_example.txt b/params/param_example.txt
new file mode 100644
index 0000000..e11147d
--- /dev/null
+++ b/params/param_example.txt
@@ -0,0 +1,134 @@
+# All user parameters can be adjusted from this file.
+
+"""
+ Test configuration
+"""
+
+params = {
+ "description": "Configuration settings for testing various model selection methods.", # Description of the test configuration
+ "test": {
+ "general": {
+ "activate": {
+ "k_fold_CV": true, # Set to True to perform k-fold cross-validation.
+ "bootstrapping": true # Set to True to perform bootstrapping.
+ },
+ "model": "LinearRegression", # [Options] "LinearRegression" (default), "LogisticRegression".
+ "metric": "MSE", # [Options] "MSE" (default), "Accuracy score", "R2".
+ "data": "generate", # [Options] "file", "generate".
+ "visualize": false, # Set to True to visualize k-fold cross-validation results (currently not implemented).
+ "write": false, # Set to True to write k-fold cross-validation results (currently not implemented).
+ "file_path": "./data/result(k_fold_CV).csv" # File path to write data.
+ },
+ "k_fold_cross_validation": {
+ "k": [5], # Number of folds for k-fold cross-validation.
+ "shuffle": true # Whether to shuffle the data before splitting into folds.
+ },
+ "bootstrapping": {
+ "size": [50], # The size of the training dataset for each bootstrap sample.
+ "epochs": [100] # The number of bootstrapping iterations to perform.
+ },
+ "analysis": {
+ "visualize": { # visualization configuration
+ "k_fold_CV": {
+ # [Options] "size": 0, "dimension": 1, "correlation": 2, "noise_std": 3, K-value": 4
+ "label_X": ["size", 0], # Selected feature to visualize
+ "activate": true # Set to True to visualize k-fold cross-validation.
+ },
+ "bootstrapping": {
+ # [Options] "size": 0, "dimension": 1, "correlation": 2, "noise_std": 3, "sample_size": 4, "epoch": 5
+ "label_X": ["size", 0], # Selected feature to visualize
+ "activate": false # Set to True to visualize bootstrapping.
+ }
+ },
+ "write": { # file write configuration
+ "k_fold_CV": {
+ "activate": true, # Set to True to write a result file for k-fold cross-validation.
+ "header": ["size", "dimension", "correlation","noise_std",",K-value","shuffled", "Average", "AIC"], # Header for file.
+ "file_path": "./results/k_fold.csv" # Original file path
+ },
+ "bootstrapping": {
+ "activate": false, # Set to True to write a result file for bootstrapping.
+ "header": ["size", "dimension", "correlation","noise_std", "sample_size","epochs","Average", "AIC"], # Header for file.
+ "file_path": "./results/bootstrap.csv" # Original file path.
+ }
+ }
+ }
+ },
+ # For each data parameter "file", "generate": Single mode -> set 1 element Multiple mode -> set N elements
+ "data": {
+ # User-defined parameters for data import settings.
+ "file": [
+ {
+ "file_path": "small_test.csv", # File path to load data.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ ],
+ # User-defined parameters for synthetic data generation settings.
+ "generate": [
+ { # Default dataset with a strict linear relationship (no noise or correlation).
+ "size": 100, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0, # Correlation coefficient between features (0 means no correlation).
+ "noise_std": 0.0, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ { # Larger dataset with a strict linear relationship (no noise or correlation).
+ "size": 500, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0, # Correlation coefficient between features.
+ "noise_std": 0.0, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ { # Default dataset with added noise (no correlation between features).
+ "size": 100, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0, # Correlation coefficient between features.
+ "noise_std": 0.01, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ { # Larger dataset with added noise (no correlation between features).
+ "size": 500, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0, # Correlation coefficient between features.
+ "noise_std": 0.01, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ { # Default dataset with a high correlation between features (no noise).
+ "size": 100, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0.9, # High correlation coefficient between features.
+ "noise_std": 0.0, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ { # Larger dataset with a high correlation between features (no noise).
+ "size": 500, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0.9, # High correlation coefficient between features.
+ "noise_std": 0.0, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ { # Default dataset with high correlation and added noise.
+ "size": 100, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0.9, # High correlation coefficient between features.
+ "noise_std": 0.01, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ },
+ { # Larger dataset with high correlation and added noise.
+ "size": 500, # Number of samples to generate.
+ "dimension": 10, # Number of features in the dataset.
+ "correlation": 0.9, # High correlation coefficient between features.
+ "noise_std": 0.01, # Noise level to assess model robustness.
+ "random_state": 42, # Random seed for reproducibility.
+ "test_ratio": 0.25 # Proportion of the dataset used for the test set.
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/params/param_k_fold.json b/params/param_k_fold.json
new file mode 100644
index 0000000..36c6361
--- /dev/null
+++ b/params/param_k_fold.json
@@ -0,0 +1,77 @@
+{
+ "description": "Batch test setting: bootstrapping exclusive test",
+ "test": {
+ "general": {
+ "activate": {"k_fold_CV": true, "bootstrapping": false},
+ "model": "LinearRegression",
+ "metric": "R2",
+ "data": "generate"
+ },
+ "k_fold_cross_validation": {
+ "k": [2,5,10,20],
+ "shuffle": true
+ },
+ "bootstrapping": {
+ "size": [50],
+ "epochs": [100]
+ },
+ "analysis": {
+ "visualize": {
+ "k_fold_CV":{
+ "label_X": [],
+ "activate": false
+ },
+ "bootstrapping": {
+ "label_X": [],
+ "activate": false
+ }
+ },
+ "write": {
+ "k_fold_CV": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std","K-value","shuffled", "Average", "AIC"],
+ "file_path": "./results/k_fold_only.csv"
+ },
+ "bootstrapping": {
+ "activate": false,
+ "header": [],
+ "file_path": ""
+ }
+ }
+ }
+ },
+ "data": {
+ "file": [
+ {
+ "file_path": "",
+ "test_ratio": 0.25
+ }
+ ],
+ "generate": [
+ {
+ "size": 500,
+ "dimension": 10,
+ "correlation": 0.0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 0.9,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ }
+ ]
+ }
+}
diff --git a/params/param_list.csv b/params/param_list.csv
new file mode 100644
index 0000000..56518de
--- /dev/null
+++ b/params/param_list.csv
@@ -0,0 +1,7 @@
+Json file name, Description
+"param_single.json", "one-time test, using file to execute, no visualization, no file writing"
+"param_multi.json", "batch test, create data to execute, no visualization, file writing for both model"
+"param_k_fold.json", "batch test, create data to execute, no visualization, file writing for k-fold CV model"
+"param_bootstrap.json", "batch test, create data to execute, no visualization, file writing for bootstrap model"
+"test_size.json", "batch test, create data to execute, visualization for all, file writing for both model"
+"test_correlation.json", "batch test, create data to execute, visualization for all, file writing for both model"
\ No newline at end of file
diff --git a/params/param_multi.json b/params/param_multi.json
new file mode 100644
index 0000000..9cf0ee8
--- /dev/null
+++ b/params/param_multi.json
@@ -0,0 +1,173 @@
+{
+ "description": "Batch test setting: mix-up test",
+ "test": {
+ "general": {
+ "activate": {"k_fold_CV": true, "bootstrapping": true},
+ "model": "LinearRegression",
+ "metric": "R2",
+ "data": "generate"
+ },
+ "k_fold_cross_validation": {
+ "k": [5],
+ "shuffle": true
+ },
+ "bootstrapping": {
+ "size": [100],
+ "epochs": [100]
+ },
+ "analysis": {
+ "visualize": {
+ "k_fold_CV":{
+ "label_X": [],
+ "activate": false
+ },
+ "bootstrapping": {
+ "label_X": [],
+ "activate": false
+ }
+ },
+ "write": {
+ "k_fold_CV": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std",",K-value","shuffled", "Average", "AIC"],
+ "file_path": "./results/k_fold_multi.csv"
+ },
+ "bootstrapping": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std", "sample_size","epochs","Average", "AIC"],
+ "file_path": "./results/bootstrap_multi.csv"
+ }
+ }
+ }
+ },
+ "data": {
+ "file": [
+ {
+ "file_path": "small_test.csv",
+ "test_ratio": 0.25
+ }
+ ],
+ "generate": [
+ {
+ "size": 100,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 300,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1000,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1500,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 100,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 300,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1000,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1500,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 100,
+ "dimension": 10,
+ "correlation": 0.9,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 300,
+ "dimension": 10,
+ "correlation": 0.9,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 10,
+ "correlation": 0.9,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1000,
+ "dimension": 10,
+ "correlation": 0.9,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1500,
+ "dimension": 10,
+ "correlation": 0.9,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ }
+ ]
+ }
+}
diff --git a/params/param_sample.jpg b/params/param_sample.jpg
new file mode 100644
index 0000000..ac44402
Binary files /dev/null and b/params/param_sample.jpg differ
diff --git a/params/param_single.json b/params/param_single.json
new file mode 100644
index 0000000..4ae7c6e
--- /dev/null
+++ b/params/param_single.json
@@ -0,0 +1,61 @@
+{
+ "description": "Single test setting: verification test",
+ "test": {
+ "general": {
+ "activate": {"k_fold_CV": true, "bootstrapping": true},
+ "model": "LinearRegression",
+ "metric": "R2",
+ "data": "file"
+ },
+ "k_fold_cross_validation": {
+ "k": [5],
+ "shuffle": true
+ },
+ "bootstrapping": {
+ "size": [50],
+ "epochs": [100]
+ },
+ "analysis": {
+ "visualize": {
+ "k_fold_CV":{
+ "label_X": [],
+ "activate": false
+ },
+ "bootstrapping": {
+ "label_X": [],
+ "activate": false
+ }
+ },
+ "write": {
+ "k_fold_CV": {
+ "activate": false,
+ "header": [],
+ "file_path": "./results/k_fold.csv"
+ },
+ "bootstrapping": {
+ "activate": false,
+ "header": [],
+ "file_path": "./results/bootstrap.csv"
+ }
+ }
+ }
+ },
+ "data": {
+ "file": [
+ {
+ "file_path": "./data/housing.csv",
+ "test_ratio": 0.25
+ }
+ ],
+ "generate": [
+ {
+ "size": 200,
+ "dimension": 10,
+ "correlation": 0,
+ "noise_std": 0.01,
+ "random_state": 42,
+ "test_ratio": 0.25
+ }
+ ]
+ }
+}
diff --git a/params/test_correlation.json b/params/test_correlation.json
new file mode 100644
index 0000000..ac3381b
--- /dev/null
+++ b/params/test_correlation.json
@@ -0,0 +1,109 @@
+{
+ "description": "Batch test setting: correlation test",
+ "test": {
+ "general": {
+ "activate": {"k_fold_CV": true, "bootstrapping": true},
+ "model": "LinearRegression",
+ "metric": "R2",
+ "data": "generate"
+ },
+ "k_fold_cross_validation": {
+ "k": [5],
+ "shuffle": true
+ },
+ "bootstrapping": {
+ "size": [100],
+ "epochs": [100]
+ },
+ "analysis": {
+ "visualize": {
+ "k_fold_CV":{
+ "label_X": ["correlation", 2],
+ "activate": true
+ },
+ "bootstrapping": {
+ "label_X": ["correlation", 2],
+ "activate": true
+ }
+ },
+ "write": {
+ "k_fold_CV": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std",",K-value","shuffled", "Average", "AIC"],
+ "file_path": "./results/k_fold_correlation.csv"
+ },
+ "bootstrapping": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std", "sample_size","epochs","Average", "AIC"],
+ "file_path": "./results/bootstrap_correlation.csv"
+ }
+ }
+ }
+ },
+ "data": {
+ "file": [
+ {
+ "file_path": "small_test.csv",
+ "test_ratio": 0.25
+ }
+ ],
+ "generate": [
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": -1,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": -0.5,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": -0.2,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 0.2,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 0.5,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 500,
+ "dimension": 20,
+ "correlation": 1,
+ "noise_std": 0.2,
+ "random_state": 42,
+ "test_ratio": 0.25
+ }
+ ]
+ }
+}
diff --git a/params/test_size.json b/params/test_size.json
new file mode 100644
index 0000000..1d1e48b
--- /dev/null
+++ b/params/test_size.json
@@ -0,0 +1,141 @@
+{
+ "description": "Batch test setting: size test",
+ "test": {
+ "general": {
+ "activate": {"k_fold_CV": true, "bootstrapping": true},
+ "model": "LinearRegression",
+ "metric": "R2",
+ "data": "generate"
+ },
+ "k_fold_cross_validation": {
+ "k": [5],
+ "shuffle": true
+ },
+ "bootstrapping": {
+ "size": [100],
+ "epochs": [100]
+ },
+ "analysis": {
+ "visualize": {
+ "k_fold_CV":{
+ "label_X": ["size", 0],
+ "activate": true
+ },
+ "bootstrapping": {
+ "label_X": ["size", 0],
+ "activate": true
+ }
+ },
+ "write": {
+ "k_fold_CV": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std",",K-value","shuffled", "Average", "AIC"],
+ "file_path": "./results/k_fold_size.csv"
+ },
+ "bootstrapping": {
+ "activate": true,
+ "header": ["size", "dimension", "correlation","noise_std", "sample_size","epochs","Average", "AIC"],
+ "file_path": "./results/bootstrap_size.csv"
+ }
+ }
+ }
+ },
+ "data": {
+ "file": [
+ {
+ "file_path": "small_test.csv",
+ "test_ratio": 0.25
+ }
+ ],
+ "generate": [
+ {
+ "size": 100,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 200,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 400,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 600,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 800,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1000,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1200,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1400,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1600,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 1800,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ },
+ {
+ "size": 2000,
+ "dimension": 20,
+ "correlation": 0,
+ "noise_std": 0.5,
+ "random_state": 42,
+ "test_ratio": 0.25
+ }
+ ]
+ }
+}
diff --git a/results/__init__.py b/results/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/results/bootstrap_correlation_20241121_224255.csv b/results/bootstrap_correlation_20241121_224255.csv
new file mode 100644
index 0000000..b76e6f4
--- /dev/null
+++ b/results/bootstrap_correlation_20241121_224255.csv
@@ -0,0 +1,8 @@
+size,dimension,correlation,noise_std,sample_size,epochs,Average,AIC
+500,20,-1,0.2,100,100,0.99924,-34.03736
+500,20,-0.5,0.2,100,100,0.99861,-31.38833
+500,20,-0.2,0.2,100,100,0.99779,-29.45754
+500,20,0,0.2,100,100,0.99679,-28.42249
+500,20,0.2,0.2,100,100,0.99503,-27.75247
+500,20,0.5,0.2,100,100,0.98914,-27.45885
+500,20,1,0.2,100,100,0.98707,-45.28588
diff --git a/results/bootstrap_multi_20241121_223206.csv b/results/bootstrap_multi_20241121_223206.csv
new file mode 100644
index 0000000..ca2120a
--- /dev/null
+++ b/results/bootstrap_multi_20241121_223206.csv
@@ -0,0 +1,16 @@
+size,dimension,correlation,noise_std,sample_size,epochs,Average,AIC
+100,10,0,0.2,100,100,0.99474,33.05934
+300,10,0,0.2,100,100,0.99752,11.91807
+500,10,0,0.2,100,100,0.99173,-138.09457
+1000,10,0,0.2,100,100,0.997,-213.65013
+1500,10,0,0.2,100,100,0.99307,-310.61805
+100,10,0,0.5,100,100,0.96781,170.50295
+300,10,0,0.5,100,100,0.98469,424.2489
+500,10,0,0.5,100,100,0.95099,549.12348
+1000,10,0,0.5,100,100,0.98151,1160.78597
+1500,10,0,0.5,100,100,0.95786,1751.03609
+100,10,0.9,0.5,100,100,0.59771,135.05026
+300,10,0.9,0.5,100,100,0.62306,433.45459
+500,10,0.9,0.5,100,100,0.20792,547.59655
+1000,10,0.9,0.5,100,100,0.42587,1191.05533
+1500,10,0.9,0.5,100,100,0.67753,1764.45993
diff --git a/results/bootstrap_only_20241121_223549.csv b/results/bootstrap_only_20241121_223549.csv
new file mode 100644
index 0000000..c13e5c6
--- /dev/null
+++ b/results/bootstrap_only_20241121_223549.csv
@@ -0,0 +1,37 @@
+size,dimension,correlation,noise_std,sample_size,epochs,Average,AIC
+500,10,0.0,0.2,10,10,0.81917,-138.09457
+500,10,0.0,0.2,10,100,0.2996,-138.09457
+500,10,0.0,0.2,10,500,0.54963,-138.09457
+500,10,0.0,0.2,10,1000,0.66441,-138.09457
+500,10,0.0,0.2,50,10,0.99095,-138.09457
+500,10,0.0,0.2,50,100,0.99061,-138.09457
+500,10,0.0,0.2,50,500,0.99051,-138.09457
+500,10,0.0,0.2,50,1000,0.99062,-138.09457
+500,10,0.0,0.2,100,10,0.99168,-138.09457
+500,10,0.0,0.2,100,100,0.99183,-138.09457
+500,10,0.0,0.2,100,500,0.99172,-138.09457
+500,10,0.0,0.2,100,1000,0.99173,-138.09457
+500,20,0,0.5,10,10,0.38235,658.79556
+500,20,0,0.5,10,100,0.35251,658.79556
+500,20,0,0.5,10,500,0.37423,658.79556
+500,20,0,0.5,10,1000,0.3654,658.79556
+500,20,0,0.5,50,10,0.97461,658.79556
+500,20,0,0.5,50,100,0.9727,658.79556
+500,20,0,0.5,50,500,0.97277,658.79556
+500,20,0,0.5,50,1000,0.97302,658.79556
+500,20,0,0.5,100,10,0.98051,658.79556
+500,20,0,0.5,100,100,0.98045,658.79556
+500,20,0,0.5,100,500,0.98056,658.79556
+500,20,0,0.5,100,1000,0.98055,658.79556
+500,20,0.9,0.5,10,10,0.72746,659.58656
+500,20,0.9,0.5,10,100,0.73195,659.58656
+500,20,0.9,0.5,10,500,0.73904,659.58656
+500,20,0.9,0.5,10,1000,0.73716,659.58656
+500,20,0.9,0.5,50,10,0.85257,659.58656
+500,20,0.9,0.5,50,100,0.84448,659.58656
+500,20,0.9,0.5,50,500,0.84277,659.58656
+500,20,0.9,0.5,50,1000,0.84468,659.58656
+500,20,0.9,0.5,100,10,0.88649,659.58656
+500,20,0.9,0.5,100,100,0.88838,659.58656
+500,20,0.9,0.5,100,500,0.88795,659.58656
+500,20,0.9,0.5,100,1000,0.88828,659.58656
diff --git a/results/bootstrap_size_20241121_223627.csv b/results/bootstrap_size_20241121_223627.csv
new file mode 100644
index 0000000..615a568
--- /dev/null
+++ b/results/bootstrap_size_20241121_223627.csv
@@ -0,0 +1,12 @@
+size,dimension,correlation,noise_std,sample_size,epochs,Average,AIC
+100,20,0,0.5,100,100,0.99009,325.88227
+200,20,0,0.5,100,100,0.98571,304.20335
+400,20,0,0.5,100,100,0.96926,576.16542
+600,20,0,0.5,100,100,0.97701,753.65466
+800,20,0,0.5,100,100,0.98374,940.41912
+1000,20,0,0.5,100,100,0.97635,1283.88961
+1200,20,0,0.5,100,100,0.98545,1389.68987
+1400,20,0,0.5,100,100,0.98049,1642.38338
+1600,20,0,0.5,100,100,0.98741,1849.34666
+1800,20,0,0.5,100,100,0.9842,2073.95065
+2000,20,0,0.5,100,100,0.9876,2399.02033
diff --git a/results/bootstrap_size_20241122_004501.csv b/results/bootstrap_size_20241122_004501.csv
new file mode 100644
index 0000000..615a568
--- /dev/null
+++ b/results/bootstrap_size_20241122_004501.csv
@@ -0,0 +1,12 @@
+size,dimension,correlation,noise_std,sample_size,epochs,Average,AIC
+100,20,0,0.5,100,100,0.99009,325.88227
+200,20,0,0.5,100,100,0.98571,304.20335
+400,20,0,0.5,100,100,0.96926,576.16542
+600,20,0,0.5,100,100,0.97701,753.65466
+800,20,0,0.5,100,100,0.98374,940.41912
+1000,20,0,0.5,100,100,0.97635,1283.88961
+1200,20,0,0.5,100,100,0.98545,1389.68987
+1400,20,0,0.5,100,100,0.98049,1642.38338
+1600,20,0,0.5,100,100,0.98741,1849.34666
+1800,20,0,0.5,100,100,0.9842,2073.95065
+2000,20,0,0.5,100,100,0.9876,2399.02033
diff --git a/results/correlation_test_bootstrapping.png b/results/correlation_test_bootstrapping.png
new file mode 100644
index 0000000..3432763
Binary files /dev/null and b/results/correlation_test_bootstrapping.png differ
diff --git a/results/correlation_test_k_fold.png b/results/correlation_test_k_fold.png
new file mode 100644
index 0000000..203fc85
Binary files /dev/null and b/results/correlation_test_k_fold.png differ
diff --git a/results/execution_sample.jpg b/results/execution_sample.jpg
new file mode 100644
index 0000000..de486a2
Binary files /dev/null and b/results/execution_sample.jpg differ
diff --git a/results/k_fold_correlation_20241121_224255.csv b/results/k_fold_correlation_20241121_224255.csv
new file mode 100644
index 0000000..4720698
--- /dev/null
+++ b/results/k_fold_correlation_20241121_224255.csv
@@ -0,0 +1,8 @@
+size,dimension,correlation,noise_std,",K-value",shuffled,Average,AIC
+500,20,-1,0.2,5,True,0.99939,-34.03736
+500,20,-0.5,0.2,5,True,0.99888,-31.38833
+500,20,-0.2,0.2,5,True,0.99821,-29.45754
+500,20,0,0.2,5,True,0.9974,-28.42249
+500,20,0.2,0.2,5,True,0.99598,-27.75247
+500,20,0.5,0.2,5,True,0.99119,-27.45885
+500,20,1,0.2,5,True,0.98725,-45.28588
diff --git a/results/k_fold_multi_20241121_223206.csv b/results/k_fold_multi_20241121_223206.csv
new file mode 100644
index 0000000..48c52bb
--- /dev/null
+++ b/results/k_fold_multi_20241121_223206.csv
@@ -0,0 +1,16 @@
+size,dimension,correlation,noise_std,",K-value",shuffled,Average,AIC
+100,10,0,0.2,5,True,0.99425,33.05934
+300,10,0,0.2,5,True,0.99766,11.91807
+500,10,0,0.2,5,True,0.99264,-138.09457
+1000,10,0,0.2,5,True,0.99725,-213.65013
+1500,10,0,0.2,5,True,0.99378,-310.61805
+100,10,0,0.5,5,True,0.96466,170.50295
+300,10,0,0.5,5,True,0.98559,424.2489
+500,10,0,0.5,5,True,0.95624,549.12348
+1000,10,0,0.5,5,True,0.98311,1160.78597
+1500,10,0,0.5,5,True,0.96219,1751.03609
+100,10,0.9,0.5,5,True,0.64541,135.05026
+300,10,0.9,0.5,5,True,0.6541,433.45459
+500,10,0.9,0.5,5,True,0.27809,547.59655
+1000,10,0.9,0.5,5,True,0.47859,1191.05533
+1500,10,0.9,0.5,5,True,0.71067,1764.45993
diff --git a/results/k_fold_only_20241121_223216.csv b/results/k_fold_only_20241121_223216.csv
new file mode 100644
index 0000000..4d58a5a
--- /dev/null
+++ b/results/k_fold_only_20241121_223216.csv
@@ -0,0 +1,13 @@
+size,dimension,correlation,noise_std,K-value,shuffled,Average,AIC
+500,10,0.0,0.2,2,True,0.99267,-138.09457
+500,10,0.0,0.2,5,True,0.99222,-138.09457
+500,10,0.0,0.2,10,True,0.99218,-138.09457
+500,10,0.0,0.2,20,True,0.99192,-138.09457
+500,20,0,0.5,2,True,0.98319,658.79556
+500,20,0,0.5,5,True,0.9842,658.79556
+500,20,0,0.5,10,True,0.98403,658.79556
+500,20,0,0.5,20,True,0.98348,658.79556
+500,20,0.9,0.5,2,True,0.9037,659.58656
+500,20,0.9,0.5,5,True,0.90708,659.58656
+500,20,0.9,0.5,10,True,0.90721,659.58656
+500,20,0.9,0.5,20,True,0.9018,659.58656
diff --git a/results/k_fold_size_20241121_223627.csv b/results/k_fold_size_20241121_223627.csv
new file mode 100644
index 0000000..79553af
--- /dev/null
+++ b/results/k_fold_size_20241121_223627.csv
@@ -0,0 +1,12 @@
+size,dimension,correlation,noise_std,",K-value",shuffled,Average,AIC
+100,20,0,0.5,5,True,0.99055,325.88227
+200,20,0,0.5,5,True,0.987,304.20335
+400,20,0,0.5,5,True,0.97604,576.16542
+600,20,0,0.5,5,True,0.98099,753.65466
+800,20,0,0.5,5,True,0.98664,940.41912
+1000,20,0,0.5,5,True,0.98123,1283.88961
+1200,20,0,0.5,5,True,0.98824,1389.68987
+1400,20,0,0.5,5,True,0.98447,1642.38338
+1600,20,0,0.5,5,True,0.98977,1849.34666
+1800,20,0,0.5,5,True,0.98749,2073.95065
+2000,20,0,0.5,5,True,0.99003,2399.02033
diff --git a/results/k_fold_size_20241122_004501.csv b/results/k_fold_size_20241122_004501.csv
new file mode 100644
index 0000000..79553af
--- /dev/null
+++ b/results/k_fold_size_20241122_004501.csv
@@ -0,0 +1,12 @@
+size,dimension,correlation,noise_std,",K-value",shuffled,Average,AIC
+100,20,0,0.5,5,True,0.99055,325.88227
+200,20,0,0.5,5,True,0.987,304.20335
+400,20,0,0.5,5,True,0.97604,576.16542
+600,20,0,0.5,5,True,0.98099,753.65466
+800,20,0,0.5,5,True,0.98664,940.41912
+1000,20,0,0.5,5,True,0.98123,1283.88961
+1200,20,0,0.5,5,True,0.98824,1389.68987
+1400,20,0,0.5,5,True,0.98447,1642.38338
+1600,20,0,0.5,5,True,0.98977,1849.34666
+1800,20,0,0.5,5,True,0.98749,2073.95065
+2000,20,0,0.5,5,True,0.99003,2399.02033
diff --git a/results/multi-test_bootstrapping.jpg b/results/multi-test_bootstrapping.jpg
new file mode 100644
index 0000000..49c0af7
Binary files /dev/null and b/results/multi-test_bootstrapping.jpg differ
diff --git a/results/multi-test_k_fold.jpg b/results/multi-test_k_fold.jpg
new file mode 100644
index 0000000..d09c64c
Binary files /dev/null and b/results/multi-test_k_fold.jpg differ
diff --git a/results/size-test-file_created.jpg b/results/size-test-file_created.jpg
new file mode 100644
index 0000000..e2366c5
Binary files /dev/null and b/results/size-test-file_created.jpg differ
diff --git a/results/size-test.jpg b/results/size-test.jpg
new file mode 100644
index 0000000..2cc435f
Binary files /dev/null and b/results/size-test.jpg differ
diff --git a/results/size_test_bootstrapping.png b/results/size_test_bootstrapping.png
new file mode 100644
index 0000000..c0eec85
Binary files /dev/null and b/results/size_test_bootstrapping.png differ
diff --git a/results/size_test_k_fold.png b/results/size_test_k_fold.png
new file mode 100644
index 0000000..b3717a1
Binary files /dev/null and b/results/size_test_k_fold.png differ
diff --git a/test.py b/test.py
new file mode 100644
index 0000000..c8de98f
--- /dev/null
+++ b/test.py
@@ -0,0 +1,202 @@
+import sys
+from modelSelection import *
+
+
+def test_k_Fold_CV(model, metric, X: np.ndarray, y: np.ndarray, ks: list[int], shuffle: bool):
+ """
+ test_k_Fold_CV()
+ This function tests the k-fold cross-validation implementation with different values of k.
+
+ :param model: The statistical model to be validated.
+ :param metric: The metric function used to evaluate model performance.
+ :param X: The feature matrix.
+ :param y: The target labels.
+ :param ks: A list of k values to test (number of folds).
+ :param shuffle: Whether to shuffle the data before splitting into folds.
+ :return: A list of results, where each result is a list containing:
+ [k (fold count), shuffle (bool), scores (list of fold scores), average (mean score)].
+ """
+ results = []
+ for k in ks:
+ print(f"\tk-Fold Cross-Validation K-value: {k}")
+ print(f"\tk-Fold Cross-Validation shuffling: {shuffle}")
+ scores, average = k_fold_cross_validation(model, metric, X=X, y=y, k=k, shuffle=shuffle)
+ print(f"\tk-Fold Cross-Validation Scores:\n\t\t{scores}")
+ print(f"\tk-Fold Average Score: {round(average, 5)}")
+ results.append([k, shuffle, round(average, 5)])
+ print("")
+ return results
+
+
+def test_bootstrapping(model, metric, X: np.ndarray, y: np.ndarray, ss: list[int], epochs_list: list[int]) -> list:
+ """
+ test_bootstrapping()
+ This function tests the bootstrapping implementation with different sample sizes and epochs.
+
+ :param model: The statistical model to be tested.
+ :param metric: The metric function used to evaluate model performance.
+ :param X: The feature matrix.
+ :param y: The target labels.
+ :param ss: A list of sample sizes for the bootstrapping training set.
+ :param epochs_list: A list of epoch values to determine the number of iterations for bootstrapping.
+ :return: A list of results, where each result is a list containing:
+ [s (sample size), epochs, scores (list of metric scores for each epoch), average (mean score)].
+
+ """
+ results = []
+ for s in ss:
+ for epochs in epochs_list:
+ print(f"\tBootstrap sample size: {s}")
+ print(f"\tBootstrap epochs: {epochs}")
+ scores, average = bootstrapping(model, metric, X=X, y=y, s=s, epochs=epochs)
+ print(f"\tBootstrap Scores (Pick first 5 out of {len(scores)}):\n\t\t{scores[:5]}")
+ print(f"\tBootstrap Score range: [{round(min(scores), 5)}, {round(max(scores), 5)}]")
+ print(f"\tBootstrap Median Score: {round(np.median(scores), 5)}")
+ print(f"\tBootstrap Average Score: {round(average, 5)}")
+ results.append([s, epochs, round(average, 5)])
+ print("")
+
+ return results
+
+
+def test_AIC(model, train_X: np.ndarray, train_y: np.ndarray, test_X: np.ndarray, test_y: np.ndarray):
+ """
+ test_AIC()
+ This function tests the AIC (Akaike Information Criterion) computation for the given model.
+
+ :param model: The trained statistical model.
+ :param train_X: Training feature matrix.
+ :param train_y: Training labels.
+ :param test_X: Test feature matrix.
+ :param test_y: Test labels.
+ :return: AIC value.
+ """
+ model.fit(train_X, train_y)
+ y_pred = model.predict(test_X)
+ aic = AIC(X=test_X, y=test_y, y_pred=y_pred)
+ return round(aic, 5)
+
+
+def main(file_path: str):
+ """
+ main()
+ This function is an entry point for the test suite. Loads parameters, initializes models,
+ and tests k-fold cross-validation with AIC performance and bootstrapping.
+
+ :param file_path: Path to the JSON configuration file containing test parameters.
+ """
+ param = get_param(file_path)
+
+ # Initialize global parameters
+ print(f"{'*' * 52} Global Setting {'*' * 52}")
+ args_g = param["test"]["general"]
+ print(f"Description:\n\t{param['description']}")
+ model = get_model(args_g["model"])
+ metric = get_metric(args_g["metric"])
+ print(f"Data Type: {args_g['data']}")
+ print("*" * 121, "\n")
+
+ # Store global results
+ results_K_fold = []
+ result_boostrap = []
+
+ i = 0
+ while i < len(param["data"][args_g["data"]]):
+ print(f"{'=' * 52} [Test {i:2d}] Start {'=' * 52}")
+ args_d = param["data"][args_g["data"]][i]
+ print(f"Data Parameters:\n\t{args_d}")
+
+ # Load dataset
+ X, y, train_X, train_y, test_X, test_y = get_data(args_g["data"], args_d)
+
+ print("-" * 121)
+
+ # Compute AIC in advance
+ aic = float(test_AIC(model, train_X, train_y, test_X, test_y))
+
+ if args_g["activate"]["k_fold_CV"]:
+ # k-Fold Cross-Validation
+ print("[Test] K-Fold Cross-Validation")
+ args_k = param["test"]["k_fold_cross_validation"]
+
+ # Perform K-Fold CV testing
+ results = test_k_Fold_CV(model, metric, X, y, ks=args_k["k"], shuffle=args_k["shuffle"])
+
+ # Append test results to global list results_K_fold
+ if args_g["data"] == 'generate':
+ for result in results:
+ result.insert(0, args_d["noise_std"])
+ result.insert(0, args_d["correlation"])
+ result.insert(0, args_d["dimension"])
+ result.insert(0, args_d["size"])
+ result.append(aic)
+ results_K_fold.append(result)
+
+ print("-" * 121)
+
+ if args_g["activate"]["bootstrapping"]:
+ # Bootstrapping Testing
+ print("[Test] Bootstrapping")
+ args_b = param["test"]["bootstrapping"]
+ print(f"Bootstrapping Parameters:\n\t{args_b}")
+
+ # Perform Bootstrapping testing
+ results = test_bootstrapping(model, metric, X, y, ss=args_b["size"], epochs_list=args_b["epochs"])
+ # Append test results to global list result_boostrap
+ if args_g["data"] == 'generate':
+ for result in results:
+ result.insert(0, args_d["noise_std"])
+ result.insert(0, args_d["correlation"])
+ result.insert(0, args_d["dimension"])
+ result.insert(0, args_d["size"])
+ result.append(aic)
+ result_boostrap.append(result)
+
+ print("-" * 121)
+
+ # Show the comparative score from AIC
+ print(f"[Test] AIC Score: {round(aic, 5)}")
+
+ print(f"{'=' * 52} [Test {i:2d}] End {'=' * 52}")
+
+ # Increase index number
+ i += 1
+ print("")
+
+ # Visualization and file write only support for the dataset type 'generate'!
+ if args_g["data"] == 'generate':
+ args_a = param["test"]['analysis']
+ # Visualize if activated & only if results are many then just 1
+ if args_a["visualize"]["k_fold_CV"]["activate"] and len(results_K_fold) > 1:
+ visualize(results_K_fold, "k-fold Cross Validation", args_a["visualize"]["k_fold_CV"]["label_X"])
+
+ if args_a["visualize"]["bootstrapping"]["activate"] and len(result_boostrap) > 1:
+ visualize(result_boostrap, "Bootstrapping", args_a["visualize"]["bootstrapping"]["label_X"])
+
+ # Write data if activated & only if results are many then just 1
+ if args_a["write"]["k_fold_CV"]["activate"] and len(results_K_fold) > 1:
+ file_path = args_a["write"]["k_fold_CV"]["file_path"]
+ header = args_a["write"]["k_fold_CV"]["header"]
+ write(file_path, results_K_fold, header)
+
+ if args_a["write"]["bootstrapping"]["activate"] and len(result_boostrap) > 1:
+ file_path = args_a["write"]["bootstrapping"]["file_path"]
+ header = args_a["write"]["bootstrapping"]["header"]
+ write(file_path, result_boostrap, header)
+
+
+if __name__ == "__main__":
+ arguments = sys.argv
+ # Test code below
+ # arguments = ["QuickStart", "./params/param_single.json"]
+ # arguments = ["QuickStart", "./params/param_multi.json"]
+ # arguments = ["QuickStart", "./params/param_k_fold.json"]
+ # arguments = ["QuickStart", "./params/param_bootstrap.json"]
+ # arguments = ["QuickStart", "./params/test_size.json"]
+ # arguments = ["QuickStart", "./params/test_correlation.json"]
+
+ if len(arguments) > 1:
+ main(arguments[1])
+ else:
+ print("[Warning] No parameter configuration (file path with param_*.json) provided!")
+ print("[Info] Program terminated.")