├── Conformal Predictions for Classification.ipynb
├── Conformal Predictions for Regression.ipynb
├── GalaxyProperties.csv
├── README.md
├── UQ_EAS_2024.pdf
├── spectra.csv
└── star_classification.csv
/Conformal Predictions for Regression.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "id": "d654cff0",
7 | "metadata": {
8 | "slideshow": {
9 | "slide_type": "slide"
10 | }
11 | },
12 | "outputs": [],
13 | "source": [
14 | "import numpy as np\n",
15 | "import pandas as pd\n",
16 | "import matplotlib.pyplot as plt\n",
17 | "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n",
18 | "from sklearn.model_selection import train_test_split, cross_validate, cross_val_predict\n",
19 | "from sklearn.model_selection import KFold\n",
20 | "\n",
21 | "from mapie.regression import MapieQuantileRegressor\n",
22 | "from mapie.metrics import regression_coverage_score"
23 | ]
24 | },
25 | {
26 | "cell_type": "markdown",
27 | "id": "89717b81",
28 | "metadata": {},
29 | "source": [
30 | "Data are some simple synthetic galaxy spectra generated a few years ago for this paper, using BAGPIPES. There are spectra with 850 wavelengths, and we want to reconstruct some physical properties: age, star formation history timescale, dust content in a simple screen model, and stellar mass. We'll use age here as it's one of the trickiest properties to predict."
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 2,
36 | "id": "23f7937d",
37 | "metadata": {},
38 | "outputs": [],
39 | "source": [
40 | "features = pd.read_csv('spectra.csv', header=None, sep = ' ')"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "execution_count": 3,
46 | "id": "1d02605c",
47 | "metadata": {},
48 | "outputs": [
49 | {
50 | "data": {
51 | "text/html": [
52 | "
\n",
53 | "\n",
66 | "
\n",
67 | " \n",
68 | " \n",
69 | " \n",
70 | " 0 \n",
71 | " 1 \n",
72 | " 2 \n",
73 | " 3 \n",
74 | " 4 \n",
75 | " 5 \n",
76 | " 6 \n",
77 | " 7 \n",
78 | " 8 \n",
79 | " 9 \n",
80 | " ... \n",
81 | " 840 \n",
82 | " 841 \n",
83 | " 842 \n",
84 | " 843 \n",
85 | " 844 \n",
86 | " 845 \n",
87 | " 846 \n",
88 | " 847 \n",
89 | " 848 \n",
90 | " 849 \n",
91 | " \n",
92 | " \n",
93 | " \n",
94 | " \n",
95 | " 0 \n",
96 | " 0.010532 \n",
97 | " 0.011854 \n",
98 | " 0.011477 \n",
99 | " 0.011186 \n",
100 | " 0.010723 \n",
101 | " 0.007781 \n",
102 | " 0.003281 \n",
103 | " 0.007836 \n",
104 | " 0.008751 \n",
105 | " 0.012667 \n",
106 | " ... \n",
107 | " 0.024035 \n",
108 | " 0.023810 \n",
109 | " 0.024046 \n",
110 | " 0.023865 \n",
111 | " 0.023751 \n",
112 | " 0.023780 \n",
113 | " 0.023700 \n",
114 | " 0.023532 \n",
115 | " 0.023523 \n",
116 | " 0.023560 \n",
117 | " \n",
118 | " \n",
119 | " 1 \n",
120 | " 0.012205 \n",
121 | " 0.013479 \n",
122 | " 0.013350 \n",
123 | " 0.013067 \n",
124 | " 0.013404 \n",
125 | " 0.011026 \n",
126 | " 0.005107 \n",
127 | " 0.011005 \n",
128 | " 0.012001 \n",
129 | " 0.014975 \n",
130 | " ... \n",
131 | " 0.045495 \n",
132 | " 0.044942 \n",
133 | " 0.045321 \n",
134 | " 0.044943 \n",
135 | " 0.044721 \n",
136 | " 0.044843 \n",
137 | " 0.044598 \n",
138 | " 0.043910 \n",
139 | " 0.043594 \n",
140 | " 0.043794 \n",
141 | " \n",
142 | " \n",
143 | " 2 \n",
144 | " 0.003660 \n",
145 | " 0.004010 \n",
146 | " 0.004001 \n",
147 | " 0.003920 \n",
148 | " 0.004109 \n",
149 | " 0.003515 \n",
150 | " 0.001691 \n",
151 | " 0.003498 \n",
152 | " 0.003792 \n",
153 | " 0.004505 \n",
154 | " ... \n",
155 | " 0.016169 \n",
156 | " 0.015951 \n",
157 | " 0.016057 \n",
158 | " 0.015907 \n",
159 | " 0.015811 \n",
160 | " 0.015818 \n",
161 | " 0.015722 \n",
162 | " 0.015475 \n",
163 | " 0.015348 \n",
164 | " 0.015374 \n",
165 | " \n",
166 | " \n",
167 | " 3 \n",
168 | " 0.065447 \n",
169 | " 0.071665 \n",
170 | " 0.071253 \n",
171 | " 0.069657 \n",
172 | " 0.072569 \n",
173 | " 0.061464 \n",
174 | " 0.029246 \n",
175 | " 0.060936 \n",
176 | " 0.065971 \n",
177 | " 0.078945 \n",
178 | " ... \n",
179 | " 0.052733 \n",
180 | " 0.051933 \n",
181 | " 0.052260 \n",
182 | " 0.051681 \n",
183 | " 0.051270 \n",
184 | " 0.051238 \n",
185 | " 0.050767 \n",
186 | " 0.049791 \n",
187 | " 0.049233 \n",
188 | " 0.049177 \n",
189 | " \n",
190 | " \n",
191 | " 4 \n",
192 | " 0.143073 \n",
193 | " 0.156413 \n",
194 | " 0.155725 \n",
195 | " 0.152241 \n",
196 | " 0.159254 \n",
197 | " 0.135972 \n",
198 | " 0.065265 \n",
199 | " 0.134719 \n",
200 | " 0.145695 \n",
201 | " 0.172647 \n",
202 | " ... \n",
203 | " 0.071784 \n",
204 | " 0.070843 \n",
205 | " 0.071313 \n",
206 | " 0.070579 \n",
207 | " 0.070022 \n",
208 | " 0.069911 \n",
209 | " 0.069362 \n",
210 | " 0.068354 \n",
211 | " 0.067859 \n",
212 | " 0.067661 \n",
213 | " \n",
214 | " \n",
215 | "
\n",
216 | "
5 rows × 850 columns
\n",
217 | "
"
218 | ],
219 | "text/plain": [
220 | " 0 1 2 3 4 5 6 \\\n",
221 | "0 0.010532 0.011854 0.011477 0.011186 0.010723 0.007781 0.003281 \n",
222 | "1 0.012205 0.013479 0.013350 0.013067 0.013404 0.011026 0.005107 \n",
223 | "2 0.003660 0.004010 0.004001 0.003920 0.004109 0.003515 0.001691 \n",
224 | "3 0.065447 0.071665 0.071253 0.069657 0.072569 0.061464 0.029246 \n",
225 | "4 0.143073 0.156413 0.155725 0.152241 0.159254 0.135972 0.065265 \n",
226 | "\n",
227 | " 7 8 9 ... 840 841 842 843 \\\n",
228 | "0 0.007836 0.008751 0.012667 ... 0.024035 0.023810 0.024046 0.023865 \n",
229 | "1 0.011005 0.012001 0.014975 ... 0.045495 0.044942 0.045321 0.044943 \n",
230 | "2 0.003498 0.003792 0.004505 ... 0.016169 0.015951 0.016057 0.015907 \n",
231 | "3 0.060936 0.065971 0.078945 ... 0.052733 0.051933 0.052260 0.051681 \n",
232 | "4 0.134719 0.145695 0.172647 ... 0.071784 0.070843 0.071313 0.070579 \n",
233 | "\n",
234 | " 844 845 846 847 848 849 \n",
235 | "0 0.023751 0.023780 0.023700 0.023532 0.023523 0.023560 \n",
236 | "1 0.044721 0.044843 0.044598 0.043910 0.043594 0.043794 \n",
237 | "2 0.015811 0.015818 0.015722 0.015475 0.015348 0.015374 \n",
238 | "3 0.051270 0.051238 0.050767 0.049791 0.049233 0.049177 \n",
239 | "4 0.070022 0.069911 0.069362 0.068354 0.067859 0.067661 \n",
240 | "\n",
241 | "[5 rows x 850 columns]"
242 | ]
243 | },
244 | "execution_count": 3,
245 | "metadata": {},
246 | "output_type": "execute_result"
247 | }
248 | ],
249 | "source": [
250 | "features.head()"
251 | ]
252 | },
253 | {
254 | "cell_type": "code",
255 | "execution_count": 4,
256 | "id": "ff8f135c",
257 | "metadata": {},
258 | "outputs": [],
259 | "source": [
260 | "target = pd.read_csv('GalaxyProperties.csv')"
261 | ]
262 | },
263 | {
264 | "cell_type": "code",
265 | "execution_count": 5,
266 | "id": "1e30bbc8",
267 | "metadata": {},
268 | "outputs": [
269 | {
270 | "data": {
271 | "text/html": [
272 | "\n",
273 | "\n",
286 | "
\n",
287 | " \n",
288 | " \n",
289 | " \n",
290 | " Unnamed: 0 \n",
291 | " Dust attenuation value \n",
292 | " Age (Gyr) \n",
293 | " Log10(Mass/Mass_Sun) \n",
294 | " Tau (Gyr) \n",
295 | " \n",
296 | " \n",
297 | " \n",
298 | " \n",
299 | " 0 \n",
300 | " 0 \n",
301 | " 0.164869 \n",
302 | " 0.203291 \n",
303 | " 7.885367 \n",
304 | " 0.033035 \n",
305 | " \n",
306 | " \n",
307 | " 1 \n",
308 | " 1 \n",
309 | " 0.200852 \n",
310 | " 0.470248 \n",
311 | " 8.297678 \n",
312 | " 0.087146 \n",
313 | " \n",
314 | " \n",
315 | " 2 \n",
316 | " 2 \n",
317 | " 0.197863 \n",
318 | " 4.033993 \n",
319 | " 8.184615 \n",
320 | " 1.273974 \n",
321 | " \n",
322 | " \n",
323 | " 3 \n",
324 | " 3 \n",
325 | " 0.001000 \n",
326 | " 0.721636 \n",
327 | " 8.360110 \n",
328 | " 0.242588 \n",
329 | " \n",
330 | " \n",
331 | " 4 \n",
332 | " 4 \n",
333 | " 0.001000 \n",
334 | " 0.699464 \n",
335 | " 8.373327 \n",
336 | " 0.510683 \n",
337 | " \n",
338 | " \n",
339 | "
\n",
340 | "
"
341 | ],
342 | "text/plain": [
343 | " Unnamed: 0 Dust attenuation value Age (Gyr) Log10(Mass/Mass_Sun) \\\n",
344 | "0 0 0.164869 0.203291 7.885367 \n",
345 | "1 1 0.200852 0.470248 8.297678 \n",
346 | "2 2 0.197863 4.033993 8.184615 \n",
347 | "3 3 0.001000 0.721636 8.360110 \n",
348 | "4 4 0.001000 0.699464 8.373327 \n",
349 | "\n",
350 | " Tau (Gyr) \n",
351 | "0 0.033035 \n",
352 | "1 0.087146 \n",
353 | "2 1.273974 \n",
354 | "3 0.242588 \n",
355 | "4 0.510683 "
356 | ]
357 | },
358 | "execution_count": 5,
359 | "metadata": {},
360 | "output_type": "execute_result"
361 | }
362 | ],
363 | "source": [
364 | "target.head()"
365 | ]
366 | },
367 | {
368 | "cell_type": "code",
369 | "execution_count": 6,
370 | "id": "afa84ac3",
371 | "metadata": {},
372 | "outputs": [
373 | {
374 | "data": {
375 | "text/plain": [
376 | "(1000, 850)"
377 | ]
378 | },
379 | "execution_count": 6,
380 | "metadata": {},
381 | "output_type": "execute_result"
382 | }
383 | ],
384 | "source": [
385 | "features.shape"
386 | ]
387 | },
388 | {
389 | "cell_type": "code",
390 | "execution_count": 7,
391 | "id": "499a47da",
392 | "metadata": {},
393 | "outputs": [],
394 | "source": [
395 | "#Our goal will be to predict log(age), which empirically works better than Age\n",
396 | "\n",
397 | "log_age = np.log(target['Age (Gyr)'].values) "
398 | ]
399 | },
400 | {
401 | "cell_type": "markdown",
402 | "id": "c733b08f",
403 | "metadata": {},
404 | "source": [
405 | "We split data into into train, calibration and validation sets (using train_test_split function twice), and run a regression model that outputs point predictions:"
406 | ]
407 | },
408 | {
409 | "cell_type": "code",
410 | "execution_count": 8,
411 | "id": "43e65b4c",
412 | "metadata": {},
413 | "outputs": [
414 | {
415 | "data": {
416 | "text/html": [
417 | "RandomForestRegressor(random_state=10) In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
418 | ],
419 | "text/plain": [
420 | "RandomForestRegressor(random_state=10)"
421 | ]
422 | },
423 | "execution_count": 8,
424 | "metadata": {},
425 | "output_type": "execute_result"
426 | }
427 | ],
428 | "source": [
429 | "X_train, X_test, y_train, y_test = train_test_split(features, log_age, test_size=0.33, random_state=10)\n",
430 | "\n",
431 | "X_calib, X_val, y_calib, y_val = train_test_split(X_test, y_test, test_size=0.5, random_state=10)\n",
432 | "\n",
433 | "n = len(y_calib)\n",
434 | "\n",
435 | "n_val = len(y_val)\n",
436 | "\n",
437 | "#Train model\n",
438 | "\n",
439 | "model = RandomForestRegressor(random_state=10)\n",
440 | "\n",
441 | "model.fit(X_train, y_train)\n"
442 | ]
443 | },
444 | {
445 | "cell_type": "markdown",
446 | "id": "5eb4262d",
447 | "metadata": {},
448 | "source": [
449 | "### Simplest version of conformal predictions - generating intervals from point predictions."
450 | ]
451 | },
452 | {
453 | "cell_type": "markdown",
454 | "id": "0cd2996a",
455 | "metadata": {},
456 | "source": [
457 | "We can predict the labels for the calibration set and visualize absolute residuals:"
458 | ]
459 | },
460 | {
461 | "cell_type": "code",
462 | "execution_count": 9,
463 | "id": "425e7500",
464 | "metadata": {},
465 | "outputs": [],
466 | "source": [
467 | "y_calib_pred = model.predict(X_calib)"
468 | ]
469 | },
470 | {
471 | "cell_type": "code",
472 | "execution_count": 10,
473 | "id": "8ba839d5",
474 | "metadata": {},
475 | "outputs": [
476 | {
477 | "data": {
478 | "image/png": "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",
479 | "text/plain": [
480 | ""
481 | ]
482 | },
483 | "metadata": {},
484 | "output_type": "display_data"
485 | }
486 | ],
487 | "source": [
488 | "plt.hist(np.abs(y_calib_pred - y_calib), bins = 40);"
489 | ]
490 | },
491 | {
492 | "cell_type": "markdown",
493 | "id": "f04a9256",
494 | "metadata": {},
495 | "source": [
496 | "Let's say that we are interested in 80% coverage; alpha = 0.2. We find the corresponding 80% quantile of the absolute residuals, with the usual finite sample size correction:"
497 | ]
498 | },
499 | {
500 | "cell_type": "code",
501 | "execution_count": 11,
502 | "id": "d90148bc",
503 | "metadata": {},
504 | "outputs": [],
505 | "source": [
506 | "alpha = 0.2"
507 | ]
508 | },
509 | {
510 | "cell_type": "code",
511 | "execution_count": 12,
512 | "id": "990fe1e9",
513 | "metadata": {},
514 | "outputs": [],
515 | "source": [
516 | "qhat = np.quantile(np.abs(y_calib_pred - y_calib), np.ceil((n+1)*(1-alpha))/n)"
517 | ]
518 | },
519 | {
520 | "cell_type": "code",
521 | "execution_count": 13,
522 | "id": "18a2188d",
523 | "metadata": {},
524 | "outputs": [
525 | {
526 | "data": {
527 | "text/plain": [
528 | "0.7055971501774867"
529 | ]
530 | },
531 | "execution_count": 13,
532 | "metadata": {},
533 | "output_type": "execute_result"
534 | }
535 | ],
536 | "source": [
537 | "qhat"
538 | ]
539 | },
540 | {
541 | "cell_type": "markdown",
542 | "id": "bfc41046",
543 | "metadata": {},
544 | "source": [
545 | "We can now generate intervals by adding this quantity on either side of the point predictions:"
546 | ]
547 | },
548 | {
549 | "cell_type": "code",
550 | "execution_count": 14,
551 | "id": "1a3abc81",
552 | "metadata": {},
553 | "outputs": [],
554 | "source": [
555 | "intervals = np.hstack([(y_calib_pred - qhat).reshape(-1,1), (y_calib_pred + qhat).reshape(-1,1)])"
556 | ]
557 | },
558 | {
559 | "cell_type": "markdown",
560 | "id": "e47baac2",
561 | "metadata": {},
562 | "source": [
563 | "#### To check calibration, we ask how often the true value is found in the intervals:"
564 | ]
565 | },
566 | {
567 | "cell_type": "code",
568 | "execution_count": 15,
569 | "id": "af898466",
570 | "metadata": {},
571 | "outputs": [],
572 | "source": [
573 | "#whether true value is in interval\n",
574 | "\n",
575 | "inint = np.array([intervals[i][0] < y_calib[i] < intervals[i][1] for i in range(len(y_calib))], dtype = int)"
576 | ]
577 | },
578 | {
579 | "cell_type": "code",
580 | "execution_count": 16,
581 | "id": "37faf884",
582 | "metadata": {},
583 | "outputs": [
584 | {
585 | "data": {
586 | "text/plain": [
587 | "0.806060606060606"
588 | ]
589 | },
590 | "execution_count": 16,
591 | "metadata": {},
592 | "output_type": "execute_result"
593 | }
594 | ],
595 | "source": [
596 | "inint.mean() #Success! (Coverage is as expected)"
597 | ]
598 | },
599 | {
600 | "cell_type": "markdown",
601 | "id": "16b1d872",
602 | "metadata": {},
603 | "source": [
604 | "We should also check that the coverage holds on the validation set:"
605 | ]
606 | },
607 | {
608 | "cell_type": "code",
609 | "execution_count": 17,
610 | "id": "aee3d03c",
611 | "metadata": {},
612 | "outputs": [
613 | {
614 | "data": {
615 | "text/plain": [
616 | "0.8363636363636363"
617 | ]
618 | },
619 | "execution_count": 17,
620 | "metadata": {},
621 | "output_type": "execute_result"
622 | }
623 | ],
624 | "source": [
625 | "y_val_pred = model.predict(X_val)\n",
626 | "intervals_val = np.hstack([(y_val_pred - qhat).reshape(-1,1), (y_val_pred + qhat).reshape(-1,1)])\n",
627 | "inint_val = np.array([intervals_val[i][0] < y_val[i] < intervals_val[i][1] for i in range(len(y_val))], dtype = int)\n",
628 | "inint_val = np.array([intervals_val[i][0] < y_val[i] < intervals_val[i][1] for i in range(len(y_val))], dtype = int)\n",
629 | "inint_val.mean() #Not bad! Should also marginalize over effect of split of data etc."
630 | ]
631 | },
632 | {
633 | "cell_type": "markdown",
634 | "id": "2d0f0115",
635 | "metadata": {},
636 | "source": [
637 | "### Conformalized Quantile Regression"
638 | ]
639 | },
640 | {
641 | "cell_type": "markdown",
642 | "id": "bbab17ce",
643 | "metadata": {},
644 | "source": [
645 | "We need to start with a model that can output quantile intervals, so we use conformalization to calibrate them.\n",
646 | "\n",
647 | "Here we use GradientBoostingRegression with quantile loss.\n",
648 | "\n",
649 | "Read about quantile loss:\n",
650 | "\n",
651 | "https://towardsdatascience.com/quantile-loss-and-quantile-regression-b0689c13f54d\n",
652 | "\n",
653 | "Example partially taken from: \n",
654 | "\n",
655 | "https://scikit-learn.org/stable/auto_examples/ensemble/plot_gradient_boosting_quantile.html\n",
656 | "\n",
657 | "and\n",
658 | "\n",
659 | "https://mapie.readthedocs.io/en/latest/examples_regression/1-quickstart/plot_prefit.html"
660 | ]
661 | },
662 | {
663 | "cell_type": "markdown",
664 | "id": "4123a349",
665 | "metadata": {},
666 | "source": [
667 | "Usage note: check data for irregularities in target distribution, which may affect the quantiles."
668 | ]
669 | },
670 | {
671 | "cell_type": "code",
672 | "execution_count": 18,
673 | "id": "01735f74",
674 | "metadata": {},
675 | "outputs": [],
676 | "source": [
677 | "all_models = {}\n",
678 | "\n",
679 | "for alpha in [0.05, 0.1, 0.5, 0.9, 0.95]:\n",
680 | " gbr = GradientBoostingRegressor(loss = \"quantile\", alpha = alpha)\n",
681 | " all_models[\"q %1.2f\" % alpha] = gbr.fit(X_train, y_train)"
682 | ]
683 | },
684 | {
685 | "cell_type": "code",
686 | "execution_count": 19,
687 | "id": "789f57cf",
688 | "metadata": {},
689 | "outputs": [
690 | {
691 | "data": {
692 | "text/plain": [
693 | "{'q 0.05': GradientBoostingRegressor(alpha=0.05, loss='quantile'),\n",
694 | " 'q 0.10': GradientBoostingRegressor(alpha=0.1, loss='quantile'),\n",
695 | " 'q 0.50': GradientBoostingRegressor(alpha=0.5, loss='quantile'),\n",
696 | " 'q 0.90': GradientBoostingRegressor(loss='quantile'),\n",
697 | " 'q 0.95': GradientBoostingRegressor(alpha=0.95, loss='quantile')}"
698 | ]
699 | },
700 | "execution_count": 19,
701 | "metadata": {},
702 | "output_type": "execute_result"
703 | }
704 | ],
705 | "source": [
706 | "all_models"
707 | ]
708 | },
709 | {
710 | "cell_type": "markdown",
711 | "id": "2e1253a2",
712 | "metadata": {},
713 | "source": [
714 | "Let's compute the conformal scores s(x,y) using alpha = 0.1 and 0.9 as quantiles (for 80% coverage), on the calibration set:"
715 | ]
716 | },
717 | {
718 | "cell_type": "code",
719 | "execution_count": 20,
720 | "id": "7bf9c824",
721 | "metadata": {},
722 | "outputs": [],
723 | "source": [
724 | "y_pred_cal_q_hi = all_models[\"q 0.90\"].predict(X_calib) \n",
725 | "\n",
726 | "y_pred_cal_q_lo = all_models[\"q 0.10\"].predict(X_calib) "
727 | ]
728 | },
729 | {
730 | "cell_type": "code",
731 | "execution_count": 21,
732 | "id": "8388dbf4",
733 | "metadata": {},
734 | "outputs": [],
735 | "source": [
736 | "intervals = np.hstack([y_pred_cal_q_lo.reshape(-1,1), y_pred_cal_q_hi.reshape(-1,1)])"
737 | ]
738 | },
739 | {
740 | "cell_type": "markdown",
741 | "id": "da89db96",
742 | "metadata": {},
743 | "source": [
744 | "The spread in the width of the intervals shows the natural adaptivity for quantile regression:"
745 | ]
746 | },
747 | {
748 | "cell_type": "code",
749 | "execution_count": 22,
750 | "id": "286aa794",
751 | "metadata": {},
752 | "outputs": [
753 | {
754 | "data": {
755 | "image/png": "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ibPPPrvsywEAPUxFvu0yZ86cuOKKK2LixIkxadKkWLp0aWzdujWuvvrqSlwOAOhBKhIfX/3qV+Of//xn3H777fH222/HuHHj4ne/+12ccMIJlbhcp1VXV8dtt93W5ts+lM9a57HWuax3Hmudp9JrXVUUHfmdGACAcvjbLgBAKvEBAKQSHwBAKvEBAKTq9fFx9913x+jRo6N///4xYcKEePLJJ/c5du3atVFVVdXm+Nvf/pY4455p/fr1cckll8Tw4cOjqqoqHnnkkQM+Z926dTFhwoTo379/nHjiiXHPPfdUfqK9wMGutX3deXV1dXHmmWdGTU1NDB48OC677LLYtGnTAZ9nbx+8zqy1vd05S5YsidNOO63lPxCbNGlSPPbYY/t9Ttl7ulfHx4oVK2L27Nlx6623Rn19fZx77rkxbdq02Lp1636ft2nTpnj77bdbjpNOOilpxj3Xzp074/TTT4/Fixd3aPzmzZvjoosuinPPPTfq6+vjlltuieuvvz5WrlxZ4Zn2fAe71nvZ1wdv3bp1MWvWrHj22WdjzZo1sWvXrpg6dWrs3Llzn8+xtzunM2u9l719cEaMGBELFiyIDRs2xIYNG+Lzn/98XHrppfHyyy+3O74ie7qUvybXTX32s58trr766lbnxo4dW9TW1rY7/oknnigionj33XcTZtd7RUSxatWq/Y656aabirFjx7Y6N3PmzOKss86q4Mx6n46stX1dnu3btxcRUaxbt26fY+ztcnRkre3t8hxzzDHFr371q3Y/Vok93WvvfHzwwQexcePGmDp1aqvzU6dOjaeffnq/zx0/fnwMGzYspkyZEk888UQlp3nIeuaZZ9p8br70pS/Fhg0b4r///W8Xzap3s68/usbGxoiIOPbYY/c5xt4uR0fWei97u/N2794dDz30UOzcuTMmTZrU7phK7OleGx/vvPNO7N69u80fsxsyZEibP3q317Bhw2Lp0qWxcuXKePjhh2PMmDExZcqUWL9+fcaUDynbtm1r93Oza9eueOedd7poVr2TfV2Ooihizpw5MXny5Bg3btw+x9nbH11H19re7ryXXnopPvaxj0V1dXVcffXVsWrVqjjllFPaHVuJPV2R/169O6mqqmr1uCiKNuf2GjNmTIwZM6bl8aRJk6KhoSHuuuuuOO+88yo6z0NRe5+b9s7z0djX5bj22mvjxRdfjKeeeuqAY+3tj6aja21vd96YMWPihRdeiH//+9+xcuXKmDFjRqxbt26fAVL2nu61dz6OO+646NOnT5u7HNu3b29TcPtz1llnxd///veyp3fIGzp0aLufm759+8agQYO6aFaHDvv64Fx33XXx6KOPxhNPPBEjRozY71h7+6M5mLVuj73dMf369YtPfvKTMXHixKirq4vTTz89fv7zn7c7thJ7utfGR79+/WLChAmxZs2aVufXrFkTZ599dodfp76+PoYNG1b29A55kyZNavO5efzxx2PixIlx+OGHd9GsDh32dccURRHXXnttPPzww/HHP/4xRo8efcDn2Nud05m1bo+93TlFUURzc3O7H6vInu70j6r2AA899FBx+OGHF/fdd1/xyiuvFLNnzy6OOuqoYsuWLUVRFEVtbW1xxRVXtIz/2c9+Vqxatap49dVXi7/+9a9FbW1tERHFypUru+ot9Bg7duwo6uvri/r6+iIiioULFxb19fXFG2+8URRF27V+/fXXiyOPPLK48cYbi1deeaW47777isMPP7z4zW9+01Vvocc42LW2rzvve9/7XjFw4MBi7dq1xdtvv91yvP/++y1j7O1ydGat7e3OmTt3brF+/fpi8+bNxYsvvljccsstxWGHHVY8/vjjRVHk7OleHR9FURS//OUvixNOOKHo169fccYZZ7T6ta0ZM2YU559/fsvjO++8s/jEJz5R9O/fvzjmmGOKyZMnF6tXr+6CWfc8e3/l7cPHjBkziqJou9ZFURRr164txo8fX/Tr168YNWpUsWTJkvyJ90AHu9b2dee1t84RUdx///0tY+ztcnRmre3tzrnqqqtavi5+/OMfL6ZMmdISHkWRs6eriuL//9QIAECCXvszHwBA9yQ+AIBU4gMASCU+AIBU4gMASCU+AIBU4gMASCU+AIBU4gMASCU+AIBU4gMASCU+AIBU/w9xFzgaKNBBCQAAAABJRU5ErkJggg==",
756 | "text/plain": [
757 | ""
758 | ]
759 | },
760 | "metadata": {},
761 | "output_type": "display_data"
762 | }
763 | ],
764 | "source": [
765 | "plt.hist(y_pred_cal_q_hi-y_pred_cal_q_lo, bins = 100);"
766 | ]
767 | },
768 | {
769 | "cell_type": "markdown",
770 | "id": "97473afa",
771 | "metadata": {},
772 | "source": [
773 | "This below is just a visualization of true values vs predicted intervals:"
774 | ]
775 | },
776 | {
777 | "cell_type": "code",
778 | "execution_count": 23,
779 | "id": "4ce486b9",
780 | "metadata": {},
781 | "outputs": [
782 | {
783 | "data": {
784 | "image/png": "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c+eqtrZW06dPt7qkNIcddphmzpypX/7ylxo6dKhee+01XX/99Wm3ufjii/XQQw9pzpw5GjJkiEaNGqU5c+bI7/e3eN8nnniievbsqffee09jx45N+97PfvYz7bvvvho5cqTOOussVVZWatiwYS3e36xZs7Rjxw4NHz5cV199te6444607/ft21evvPKKdu3apcrKSh155JG6+uqrVVZWlprSBwAAALSFL9l0QYuL1dfXq6ysTJs3b1aPHj3Svrd161YlEgn5/X516dLFogoBZ+L9AwAAnKalbNAYp+EBAAAAwASBCQAAAABMEJgAAAAAwASBCQAAAABMEJgAAAAAwASBCQAAAABMEJgAAAAAwEQHqwsAAACQJMMwFI/HFQgEFAwGrS4HACQxwoQcTJkyRUcffXTq6wsvvFDnnntuyetYs2aNfD6f3nzzzZL/7nxY9TgV0pw5c7TPPvtYXQYAF4tEIgqFQpowYYJCoZAikYjVJQGAJEaYWrXAWFvS3zc22D+n21944YV65JFHJEkdOnRQv379FA6HNXXqVHXr1q0YJabcd999SiaTWd12zZo18vv9Wr58eVroKpYtW7bohhtu0FNPPaVPPvlEAwcO1FVXXaXLL788dZtt27bp+uuv1+9+9zt99dVXOumkkzRz5kwddNBBqe9ffPHF+sMf/qA+ffroV7/6lU488cTUz8diMa1bt06/+MUvWqwll8dpD5/PpyeffNLxQQsAsmEYhmKxWNq2WCymcDjMSBMAyzHC5AKjR4/W+vXrtXr1at1xxx2aOXOmrr/++oy33bFjR8F+b1lZmW1HHa699lr96U9/0m9/+1u9++67uvbaa/XDH/5Qf/jDH1K3ueaaa/Tkk0/q0Ucf1V//+ldt2bJFZ555pnbt2iVJevDBB7Vs2TL97W9/0yWXXKL//u//TgWfRCKhhx56SHfeeWertVj5OBXy+QaAYonH4zltB4BSIjC5QOfOndW7d2/169dPY8eO1bhx4/TUU09J+s80ulmzZunggw9W586dlUwmtXnzZl166aU64IAD1KNHD5144ol666230u53+vTpKi8v1957761JkyZp69atad9vOtWsoaFB0WhUgwcPVufOndW/f/9UoPD7/ZKkiooK+Xw+HX/88amfmz17tg477DB16dJFhx56qGbOnJn2e1577TVVVFSoS5cuGj58uJYvX97qY/K3v/1NEydO1PHHH6+BAwfq0ksv1dChQ7V06VJJ0ubNm/Xwww/rnnvu0cknn6yKigr99re/1YoVK/T8889Lkt59912dffbZOuKII3TFFVdo48aN2rRpkyTp8ssvVzQaVY8ePVqtpenjdPzxx+uqq65SVVWVevbsqd69e2vKlCmp7w8cOFCS9J3vfEc+ny/1tSQ988wzOuaYY9SlSxcdfPDBmjp1qnbu3Jn6vs/n069//Wudc8456tatm2677TYddNBB+vWvf51W0xtvvCGfz6fVq1dLkmbMmKEhQ4aoW7du6tevn37wgx9oy5Ytrf5tAFAIgUAgp+0AUEoEJhfq2rVr2sjC+++/r8cff1wLFy5Mrfs544wztGHDBi1atEjLli3TsGHDdNJJJ+nTTz+VJD3++OOaPHmy7rzzTi1dulR9+vRpFmSauvHGGxWNRnXLLbdo5cqVWrBggcrLyyXtDj2S9Pzzz2v9+vWqrq6WJP3mN7/RTTfdpDvvvFPvvvuu7rrrLt1yyy2paYZffPGFzjzzTH3jG9/QsmXLNGXKFNPRs8a++c1v6umnn9aHH36oZDKpJUuWKB6Pq7KyUpK0bNky7dixQ6eeemrqZ/r27asjjzxSr776qiRp6NCh+utf/6qvvvpKNTU16tOnj3r16qXf/va36tKli77zne+0WoeZRx55RN26dUtNQ7ntttv03HPPSZJef/11SbuD5Pr161Nf19TU6Pvf/76uuuoqrVy5Ug888IDmzJnTbJRr8uTJOuecc7RixQpdfPHFGjNmjObPn592mwULFmjEiBE6+OCDJUnt2rXTz3/+c7399tt65JFH9MILL6iqqirvvw+7pxjNmzdPhmFYXQpge8FgsNk+JxKJMB0PgC2whsllXnvtNS1YsEAnnXRSatv27ds1b9487b///pKkF154QStWrNDGjRvVuXNnSdLdd9+tp556Sr///e916aWX6t5779VFF12kiy++WJJ0xx136Pnnn282yrTH559/rvvuu0/333+/Jk6cKEkaNGiQvvnNb0pS6nfvt99+6t27d+rnbr/9dt1zzz0Kh8OSdo9E7QkDEydO1Pz587Vr1y7NmjVLe+21l4444gj961//SluLlMnPf/5zXXLJJTrooIPUoUMHtWvXTg899FCqng0bNqhTp07ad999036uvLxcGzZskCRddNFF+vvf/67DDz9cvXr10uOPP67PPvtMkydP1pIlS3TzzTfr0Ucf1aBBgzRr1iwdeOCBrT09KUcddZQmT54sSTrkkEN0//33a/HixTrllFNSj9U+++yT9ljdeeeduuGGG1KP78EHH6zbb79dVVVVqfuSpLFjx+qiiy5KfT1u3DjNmDFDH3zwgQYMGKCGhgY9+uij+slPfpK6zTXXXJP6v9/v1+23367LL7+81ZCMzCKRSNp6jKqqKkWjUQsrAuwvGo0qHA7TJQ+A7RCYXODZZ59V9+7dtXPnTu3YsUPnnHNOWiOCAQMGpA7Cpd2jK1u2bNF+++2Xdj9fffWVVq1aJWn3dLTLLrss7fsjRozQkiVLMtbw7rvvatu2bWlBrTUff/yx1q1bp0mTJumSSy5Jbd+5c6fKyspS9zt06FDttddeaXW05uc//7lqa2v19NNPa8CAAXr55Zf1gx/8QH369NHJJ59s+nPJZFI+n0+S1LFjR/3yl79M+/6FF16oq666Sm+++aaeeuopvfXWW4rFYrrqqqu0cOHCrP/2o446Ku3rPn36aOPGjS3+zLJly/T666+njSjt2rVLW7du1Zdffpl6jIYPH572cxUVFTr00EP1u9/9TjfccINeeuklbdy4Ud/73vdSt1myZInuuusurVy5UvX19dq5c6e2bt2qL774oujNQ9yGxetA/oLBIO8TALZDYHKBE044Qb/61a/UsWNH9e3bVx07dkz7ftMD3oaGBvXp00cvvvhis/vKtzlB165dc/6ZhoYGSbun5TX9gGzfvr0k5dxdTtod/H7yk5/oySef1BlnnCFpd0B58803dffdd+vkk09W7969tX37dn322Wdpo0wbN27UyJEjM97vCy+8oJUrV+rhhx/Wj3/8Y51++unq1q2bvve97+n+++/Pqcamz5HP50s9HmYaGho0derU1GhcY126dEn9P1PAGTdunBYsWKAbbrhBCxYsUGVlpXr16iVJ+uCDD3T66afrsssu0+23366ePXvqr3/9qyZNmkTTiDy0tHidA0EAAJyHNUwu0K1bNw0ePFgDBgxodiCeybBhw7RhwwZ16NBBgwcPTvu35yD6sMMOU21tbdrPNf26sUMOOURdu3bV4sWLM36/U6dOkpTqQCftnv524IEHavXq1c3q2NMk4vDDD9dbb72lr776Kqs6pN2d4Xbs2KF27dJf3u3bt0+FkmOOOUYdO3ZMrRuSpPXr1+vtt9/OGJi2bt2qK664Qg888IDat2+vXbt2pcLEjh070v6uQujYsWOz+xw2bJjee++9Zo/V4MGDm/2tTY0dO1YrVqzQsmXL9Pvf/17jxo1LfW/p0qXauXOn7rnnHoVCIQUCAX300UcF/Xu8hMXrAAC4C4HJg04++WSNGDFC5557rmpqarRmzRq9+uqruvnmm1Nd5K6++mrNmjVLs2bNUjwe1+TJk/XOO++Y3meXLl0UiURUVVWluXPnatWqVaqtrdXDDz8sSTrggAPUtWtX/elPf1JdXZ02b94saXcXv2nTpum+++5TPB7XihUrNHv2bM2YMUPS7gP9du3aadKkSVq5cqUWLVqku+++u8W/r0ePHho1apR+/OMf68UXX1QikdCcOXM0d+7cVKOGsrIyTZo0ST/60Y+0ePFiLV++XN///vc1ZMiQjFP2brvtNp1xxhmqqKiQJB133HGqrq7W3//+d91///067rjjcnwWWjZw4EAtXrxYGzZs0GeffSZJuvXWWzV37lxNmTJF77zzjt5991099thjuvnmm1u9P7/fr5EjR2rSpEnauXOnzjnnnNT3Bg0apJ07d+oXv/iFVq9erXnz5jXrqofssXgdAAB3ITB5kM/n06JFi/Ttb39bF110kQKBgMaMGaM1a9akutpdcMEFuvXWWxWJRHTMMcfogw8+aLXRwi233KIf/ehHuvXWW3XYYYfpggsuSK3L6dChg37+85/rgQceUN++fVMH7BdffLEeeughzZkzR0OGDNGoUaM0Z86c1AhT9+7d9cwzz2jlypWqqKjQTTfdlNXi+UcffVTHHnusxo0bp8MPP1zTp0/XnXfembYu62c/+5nOPfdcfe9739Nxxx2nvfbaS88880xqOuAeb7/9tp544glNnTo1te273/2uzjjjDH3rW9/S3//+d913331ZPPLZu+eee/Tcc8+pX79+qZBWWVmpZ599Vs8995yOPfZYhUIhzZgxQwMGDMjqPseNG6e33npL4XA4bQrl0UcfrRkzZigajerII4/U/PnzNW3atIL+PV4TjUZVW1uruXPnqra2VtOnT7e6JAAAkCdfMp9FIg5VX1+vsrIybd68udn1c7Zu3apEIiG/35+2HgRA63j/AAAAp2kpGzTGCBMAAAAAmKBLHgAAHmMYBtc7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AADABIEJAAAAAEwQmAAAAADABIEJAAAAAEwQmCwwc+ZM+f1+denSRcccc4z+8pe/WF0SJE2bNk3HHnus9t57bx1wwAE699xz9d5776Xd5sILL5TP50v7FwqFLKrYu6ZMmdLseejdu3fq+8lkUlOmTFHfvn3VtWtXHX/88XrnnXcsrNi7Bg4c2Oy58vl8uuKKKyTxnrLayy+/rLPOOkt9+/aVz+fTU089lfb9bN5L27Zt0w9/+EP16tVL3bp109lnn61//etfJfwrvKGl52rHjh2KRCIaMmSIunXrpr59+2rChAn66KOP0u7j+OOPb/Z+GzNmTIn/Em9o7b2Vzb6P95Z9EJhK7LHHHtM111yjm266ScuXL9e3vvUtnXbaaVq7dq3VpXneSy+9pCuuuEK1tbV67rnntHPnTp166qn64osv0m43evRorV+/PvVv0aJFFlXsbUcccUTa87BixYrU92KxmGbMmKH7779fr7/+unr37q1TTjlFn3/+uYUVe9Prr7+e9jw999xzkqTzzz8/dRveU9b54osvNHToUN1///0Zv5/Ne+maa67Rk08+qUcffVR//etftWXLFp155pnatWtXqf4MT2jpufryyy/1xhtv6JZbbtEbb7yh6upqxeNxnX322c1ue8kll6S93x544IFSlO85rb23pNb3fby3bCSJkvqv//qv5GWXXZa27dBDD03ecMMNFlUEMxs3bkxKSr700kupbRMnTkyec8451hWFZDKZTE6ePDk5dOjQjN9raGhI9u7dOzl9+vTUtq1btybLysqSv/71r0tUIcxcffXVyUGDBiUbGhqSySTvKTuRlHzyySdTX2fzXvr3v/+d7NixY/LRRx9N3ebDDz9MtmvXLvmnP/2pZLV7TdPnKpPXXnstKSn5wQcfpLaNGjUqefXVVxe3ODST6flqbd/He8teGGEqoe3bt2vZsmU69dRT07afeuqpevXVVy2qCmY2b94sSerZs2fa9hdffFEHHHCAAoGALrnkEm3cuNGK8jzvn//8p/r27Su/368xY8Zo9erVkqREIqENGzakvc86d+6sUaNG8T6z2Pbt2/Xb3/5WF110kXw+X2o77yl7yua9tGzZMu3YsSPtNn379tWRRx7J+81imzdvls/n0z777JO2ff78+erVq5eOOOIIXX/99Yy8W6ilfR/vLXvpYHUBXrJp0ybt2rVL5eXladvLy8u1YcMGi6pCJslkUtddd52++c1v6sgjj0xtP+2003T++edrwIABSiQSuuWWW3TiiSdq2bJlXKW7hILBoObOnatAIKC6ujrdcccdGjlypN55553UeynT++yDDz6wolx87amnntK///1vXXjhhaltvKfsK5v30oYNG9SpUyftu+++zW7D55p1tm7dqhtuuEFjx45Vjx49UtvHjRsnv9+v3r176+2339aNN96ot956KzVVFqXT2r6P95a9EJgs0PjMqrT74LzpNljryiuv1N///nf99a9/Tdt+wQUXpP5/5JFHavjw4RowYID++Mc/KhwOl7pMzzrttNNS/x8yZIhGjBihQYMG6ZFHHkktmuV9Zj8PP/ywTjvtNPXt2ze1jfeU/eXzXuL9Zp0dO3ZozJgxamho0MyZM9O+d8kll6T+f+SRR+qQQw7R8OHD9cYbb2jYsGGlLtXT8t338d6yBlPySqhXr15q3759szMDGzdubHYGD9b54Q9/qKefflpLlizRQQcd1OJt+/TpowEDBuif//xniapDJt26ddOQIUP0z3/+M9Utj/eZvXzwwQd6/vnndfHFF7d4O95T9pHNe6l3797avn27PvvsM9PboHR27Nih733ve0okEnruuefSRpcyGTZsmDp27Mj7zQaa7vt4b9kLgamEOnXqpGOOOabZ0Pdzzz2nkSNHWlQV9kgmk7ryyitVXV2tF154QX6/v9Wf+eSTT7Ru3Tr16dOnBBXCzLZt2/Tuu++qT58+qekmjd9n27dv10svvcT7zEKzZ8/WAQccoDPOOKPF2/Geso9s3kvHHHOMOnbsmHab9evX6+233+b9VmJ7wtI///lPPf/889pvv/1a/Zl33nlHO3bs4P1mA033fby37IUpeSV23XXXafz48Ro+fLhGjBihBx98UGvXrtVll11mdWmed8UVV2jBggX6wx/+oL333jt1VrWsrExdu3bVli1bNGXKFJ133nnq06eP1qxZo5/85Cfq1auXvvOd71hcvbdcf/31Ouuss9S/f39t3LhRd9xxh+rr6zVx4kT5fD5dc801uuuuu3TIIYfokEMO0V133aW99tpLY8eOtbp0T2poaNDs2bM1ceJEdejwn48d3lPW27Jli95///3U14lEQm+++aZ69uyp/v37t/peKisr06RJk/SjH/1I++23n3r27Knrr79eQ4YM0cknn2zVn+VKLT1Xffv21Xe/+1298cYbevbZZ7Vr167UZ1jPnj3VqVMnrVq1SvPnz9fpp5+uXr16aeXKlfrRj36kiooKHXfccVb9Wa7V0vPVs2fPVvd9vLdsxsIOfZ71y1/+MjlgwIBkp06dksOGDUtrWw3rSMr4b/bs2clkMpn88ssvk6eeempy//33T3bs2DHZv3//5MSJE5Nr1661tnAPuuCCC5J9+vRJduzYMdm3b99kOBxOvvPOO6nvNzQ0JCdPnpzs3bt3snPnzslvf/vbyRUrVlhYsbfV1NQkJSXfe++9tO28p6y3ZMmSjPu9iRMnJpPJ7N5LX331VfLKK69M9uzZM9m1a9fkmWeeyXNYBC09V4lEwvQzbMmSJclkMplcu3Zt8tvf/nayZ8+eyU6dOiUHDRqUvOqqq5KffPKJtX+YS7X0fGW77+O9ZR++ZDKZLE00AwAAAABnYQ0TAAAAAJggMAEAAACACQITAAAAAJggMAEAAACACQITAAAAAJggMAEAAACACQITAAAAAJggMAEAXGHgwIG6995723wbAAAaIzABAGxv3bp1mjRpkvr27atOnTppwIABuvrqq/XJJ5/kdD+vv/66Lr300oLVRQADAPcjMAEAbG316tUaPny44vG4fve73+n999/Xr3/9ay1evFgjRozQp59+mvV97b///tprr72KWC0AwG0ITAAAW7viiivUqVMn/fnPf9aoUaPUv39/nXbaaXr++ef14Ycf6qabbkrd9vPPP9fYsWPVvXt39e3bV7/4xS/S7qvpiNDmzZt16aWX6oADDlCPHj104okn6q233kr7maefflrDhw9Xly5d1KtXL4XDYUnS8ccfrw8++EDXXnutfD6ffD5f8R4EAIBlCEwAANv69NNPVVNTox/84Afq2rVr2vd69+6tcePG6bHHHlMymZQk/fSnP9VRRx2lN954QzfeeKOuvfZaPffccxnvO5lM6owzztCGDRu0aNEiLVu2TMOGDdNJJ52UGrX64x//qHA4rDPOOEPLly/X4sWLNXz4cElSdXW1DjroIN12221av3691q9fX8RHAgBglQ5WFwAAgJl//vOfSiaTOuywwzJ+/7DDDtNnn32mjz/+WJJ03HHH6YYbbpAkBQIBvfLKK/rZz36mU045pdnPLlmyRCtWrNDGjRvVuXNnSdLdd9+tp556Sr///e916aWX6s4779SYMWM0derU1M8NHTpUktSzZ0+1b99ee++9t3r37l3QvxsAYB+MMAEAHGvPyNKe6XAjRoxI+/6IESP07rvvZvzZZcuWacuWLdpvv/3UvXv31L9EIqFVq1ZJkt58802ddNJJRfwLAAB2xwgTAMC2Bg8eLJ/Pp5UrV+rcc89t9v1//OMf2nfffdWrVy/T+zBbW9TQ0KA+ffroxRdfbPa9ffbZR5KaTQMEAHgPI0wAANvab7/9dMopp2jmzJn66quv0r63YcMGzZ8/XxdccEEqFNXW1qbdpra2VoceemjG+x42bJg2bNigDh06aPDgwWn/9gSwo446SosXLzatr1OnTtq1a1db/kQAgM0RmAAAtnb//fdr27Ztqqys1Msvv6x169bpT3/6k0455RQdeOCBuvPOO1O3feWVVxSLxRSPx/XLX/5STzzxhK6++uqM93vyySdrxIgROvfcc1VTU6M1a9bo1Vdf1c0336ylS5dKkiZPnqzf/e53mjx5st59912tWLFCsVgsdR8DBw7Uyy+/rA8//FCbNm0q7gMBALAEgQkAYGuHHHKIli5dqkGDBumCCy7QoEGDdOmll+qEE07Q3/72N/Xs2TN12x/96EdatmyZKioqdPvtt+uee+5RZWVlxvv1+XxatGiRvv3tb+uiiy5SIBDQmDFjtGbNGpWXl0va3Tr8iSee0NNPP62jjz5aJ554ogzDSN3HbbfdpjVr1mjQoEHaf//9i/tAAAAs4UvuWTELAIDL9enTR7fffrsuvvhiq0sBADgETR8AAK735Zdf6pVXXlFdXZ2OOOIIq8sBADgIU/IAAK734IMPasyYMbrmmmuatR4HAKAlTMkDAAAAABOMMAEAAACACQITAAAAAJggMAEAAACACQITAAAAAJggMAEAAACACQITAAAAAJggMAEAAACACQITAAAAAJggMAEAAACAif8H+4pPJiE7ixgAAAAASUVORK5CYII=",
785 | "text/plain": [
786 | ""
787 | ]
788 | },
789 | "metadata": {},
790 | "output_type": "display_data"
791 | }
792 | ],
793 | "source": [
794 | "fig = plt.figure(figsize=(10, 10))\n",
795 | "plt.scatter(range(len(y_calib)), y_calib, c ='k', s = 10, label = \"True value\")\n",
796 | "plt.fill_between(\n",
797 | " range(len(y_calib)), y_pred_cal_q_lo, y_pred_cal_q_hi, step = 'mid', alpha=0.4, label=\"Predicted 80% interval\"\n",
798 | ")\n",
799 | "plt.xlabel(\"Object\")\n",
800 | "plt.ylabel(\"Intervals\")\n",
801 | "plt.legend(loc=\"upper left\")\n",
802 | "plt.show()"
803 | ]
804 | },
805 | {
806 | "cell_type": "markdown",
807 | "id": "08c0a783",
808 | "metadata": {},
809 | "source": [
810 | "#### More formally, we can ask: what fraction of true values lies in the 80% region?"
811 | ]
812 | },
813 | {
814 | "cell_type": "code",
815 | "execution_count": 24,
816 | "id": "f20da335",
817 | "metadata": {},
818 | "outputs": [],
819 | "source": [
820 | "inint = np.array([intervals[i][0] < y_calib[i] < intervals[i][1] for i in range(len(y_calib))], dtype = int)"
821 | ]
822 | },
823 | {
824 | "cell_type": "code",
825 | "execution_count": 25,
826 | "id": "e285167c",
827 | "metadata": {},
828 | "outputs": [
829 | {
830 | "data": {
831 | "text/plain": [
832 | "0.7393939393939394"
833 | ]
834 | },
835 | "execution_count": 25,
836 | "metadata": {},
837 | "output_type": "execute_result"
838 | }
839 | ],
840 | "source": [
841 | "inint.mean() #Target: 0.80"
842 | ]
843 | },
844 | {
845 | "cell_type": "markdown",
846 | "id": "800bc111",
847 | "metadata": {},
848 | "source": [
849 | "### Calibration:"
850 | ]
851 | },
852 | {
853 | "cell_type": "markdown",
854 | "id": "ab0517aa",
855 | "metadata": {},
856 | "source": [
857 | "These below are the conformal scores for conformal quantile regression (for 80% coverage, i.e. 10/90 quantiles):"
858 | ]
859 | },
860 | {
861 | "cell_type": "code",
862 | "execution_count": 26,
863 | "id": "2420518a",
864 | "metadata": {},
865 | "outputs": [],
866 | "source": [
867 | "s10_90 = np.array([max(y_pred_cal_q_lo[i] - y_calib[i], y_calib[i] - y_pred_cal_q_hi[i]) for i in range(len(y_calib))])"
868 | ]
869 | },
870 | {
871 | "cell_type": "code",
872 | "execution_count": 27,
873 | "id": "e685fa4e",
874 | "metadata": {},
875 | "outputs": [
876 | {
877 | "data": {
878 | "image/png": "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bIyGhobcg72fDZ02b2uPkFu5Zu7o4z43Y2JZrtUV3T3Pe6+3NdcO0BW5nlg0NzfHhRdeGDfeeGP07du3S+fU19dHS0tL29bc3FzSoADAti/XE4sVK1bEmjVrYvTo0W371q9fH4sXL45rr702isVi9OrVq905hUIhCoVCmmkBgG1arrA45phj4pFHHmm378wzz4x99903Lr744o2iAgB4f8kVFtXV1TFy5Mh2+3bcccfo37//RvsBgPcff/MmAJBM7p8Kea+FCxcmGAMA6Ak8sQAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJLJFRYzZ86MAw44IPr16xf9+vWLcePGxV133VWu2QCACpMrLPbYY4+YMWNGLF++PJYvXx6f/OQn46STTorHHnusXPMBABWkd56DTzzxxHavp0+fHjNnzoylS5fGiBEjkg4GAFSeXGHxv9avXx+/+c1vYt26dTFu3LhOjysWi1EsFttet7a2lnpJAGAblzssHnnkkRg3bly89dZbsdNOO8XcuXNjv/326/T4xsbGaGho2KIhKc3QafO29ggk1tE9fW7GxNzndeWcnuL9vHbYGnL/VMjw4cPjoYceiqVLl8a5554bdXV18fjjj3d6fH19fbS0tLRtzc3NWzQwALDtyv3Eok+fPvHhD384IiLGjBkTy5Yti5/85Cfxi1/8osPjC4VCFAqFLZsSAKgIW/z3WGRZ1u57KACA969cTywuueSSmDBhQgwePDjWrl0bt9xySyxcuDDmz59frvkAgAqSKyxefvnlmDx5crz00ktRU1MTBxxwQMyfPz+OO+64cs0HAFSQXGExe/bscs0BAPQA3isEAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACS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cuvqeh9++OF4+eWXN/p3//rXv3LNPnDgwBgyZEg8/fTTuWctl9122y169eq10f+tb+q+DBgwoMPje/fuHf379y/brCmUst6OjB07Nm688cbU420TKvn+plJp9/f888+PO++8MxYvXhx77LHHJo/tCfc3z3o7Uq77Kyw6sNtuu8Vuu+1Wlo89bNiwGDBgQCxYsCBGjRoVEf/9eveiRYviqquuKss1N6er6x03bly0tLTEgw8+GJ/4xCciIuKBBx6IlpaWOOSQQ7p8vVdffTWam5vbhdXW1qdPnxg9enQsWLAgPvOZz7TtX7BgQZx00kkdnjNu3Lj4/e9/327fH//4xxgzZkxst912ZZ13S5Wy3o40NTVtU/cxpUq+v6lUyv3NsizOP//8mDt3bixcuDCGDRu22XMq+f6Wst6OlO3+lv3bQ3u4559/PmtqasoaGhqynXbaKWtqasqampqytWvXth0zfPjw7Pbbb297PWPGjKympia7/fbbs0ceeSQ7/fTTs4EDB2atra1bYwm5fPrTn84OOOCAbMmSJdmSJUuy/fffPzvhhBPaHfO/6127dm32jW98I7v//vuzlStXZvfcc082bty47EMf+tA2t95bbrkl22677bLZs2dnjz/+eHbRRRdlO+64Y/bcc89lWZZl06ZNyyZPntx2/LPPPpvtsMMO2de//vXs8ccfz2bPnp1tt9122W9/+9uttYRc8q73xz/+cTZ37tzsqaeeyh599NFs2rRpWURkt91229ZaQi5r165t+/0ZEdnVV1+dNTU1Zc8//3yWZT3v/uZdbyXf33PPPTerqanJFi5cmL300ktt25tvvtl2TE+6v6Wstzvvr7DYQnV1dVlEbLTdc889bcdERDZnzpy21xs2bMguu+yybMCAAVmhUMiOOOKI7JFHHun+4Uvw6quvZpMmTcqqq6uz6urqbNKkSRv9+NL/rvfNN9/Mxo8fn+2+++7Zdtttl+25555ZXV1dtmrVqu4fvgt+9rOfZUOGDMn69OmTffzjH2/341t1dXXZkUce2e74hQsXZqNGjcr69OmTDR06NJs5c2Y3T7xl8qz3qquuyvbee++sb9++2S677JIddthh2bx587bC1KV598ft3rvV1dVlWdbz7m/e9Vby/e1one/9c7cn3d9S1tud99fbpgMAyfhxUwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQzP8D6g9sF1Dy2K0AAAAASUVORK5CYII=",
879 | "text/plain": [
880 | ""
881 | ]
882 | },
883 | "metadata": {},
884 | "output_type": "display_data"
885 | }
886 | ],
887 | "source": [
888 | "#We can take a look at the scores distribution:\n",
889 | "\n",
890 | "plt.hist(s10_90, bins = 100);"
891 | ]
892 | },
893 | {
894 | "cell_type": "code",
895 | "execution_count": 28,
896 | "id": "bc2cbe26",
897 | "metadata": {},
898 | "outputs": [],
899 | "source": [
900 | "# Get the score quantile for alpha = 0.2 (corresponding to 80% coverage, i.e. quantiles 0.1 and 0.9)\n",
901 | "\n",
902 | "alpha = 0.2\n",
903 | "\n",
904 | "correction = np.quantile(s10_90, np.ceil((n+1)*(1-alpha))/n, method='higher')"
905 | ]
906 | },
907 | {
908 | "cell_type": "markdown",
909 | "id": "13fff0a1",
910 | "metadata": {},
911 | "source": [
912 | "Now we build the new intervals by applying the correction:"
913 | ]
914 | },
915 | {
916 | "cell_type": "code",
917 | "execution_count": 29,
918 | "id": "cf199e77",
919 | "metadata": {},
920 | "outputs": [],
921 | "source": [
922 | "intervals_10_90 = np.hstack([(intervals[:,0] - correction).reshape(-1,1), (intervals[:,1] + correction).reshape(-1,1)])"
923 | ]
924 | },
925 | {
926 | "cell_type": "code",
927 | "execution_count": 30,
928 | "id": "d0ed377c",
929 | "metadata": {},
930 | "outputs": [],
931 | "source": [
932 | "inint_10_90 = np.array([intervals_10_90[i][0] < y_calib[i] < intervals_10_90[i][1] for i in range(len(y_calib))], dtype = int)"
933 | ]
934 | },
935 | {
936 | "cell_type": "code",
937 | "execution_count": 31,
938 | "id": "a5f30fda",
939 | "metadata": {},
940 | "outputs": [
941 | {
942 | "data": {
943 | "text/plain": [
944 | "0.806060606060606"
945 | ]
946 | },
947 | "execution_count": 31,
948 | "metadata": {},
949 | "output_type": "execute_result"
950 | }
951 | ],
952 | "source": [
953 | "inint_10_90.mean() #Success!"
954 | ]
955 | },
956 | {
957 | "cell_type": "markdown",
958 | "id": "368eb34e",
959 | "metadata": {},
960 | "source": [
961 | "Finally, we can apply the same correction to the validation set:"
962 | ]
963 | },
964 | {
965 | "cell_type": "code",
966 | "execution_count": 32,
967 | "id": "6e7c0e16",
968 | "metadata": {
969 | "slideshow": {
970 | "slide_type": "slide"
971 | }
972 | },
973 | "outputs": [
974 | {
975 | "data": {
976 | "text/plain": [
977 | "0.8606060606060606"
978 | ]
979 | },
980 | "execution_count": 32,
981 | "metadata": {},
982 | "output_type": "execute_result"
983 | }
984 | ],
985 | "source": [
986 | "y_pred_val_q_hi = all_models[\"q 0.90\"].predict(X_val) \n",
987 | "\n",
988 | "y_pred_val_q_lo = all_models[\"q 0.10\"].predict(X_val) \n",
989 | "\n",
990 | "intervals = np.hstack([y_pred_val_q_lo.reshape(-1,1), y_pred_val_q_hi.reshape(-1,1)]) # original\n",
991 | "\n",
992 | "intervals_10_90 = np.hstack([(intervals[:,0] - correction).reshape(-1,1), (intervals[:,1] + correction).reshape(-1,1)])\n",
993 | "\n",
994 | "inint_10_90 = np.array([intervals_10_90[i][0] < y_val[i] < intervals_10_90[i][1] for i in range(len(y_val))], dtype = int)\n",
995 | "\n",
996 | "inint_10_90.mean() #Target: 0.80"
997 | ]
998 | },
999 | {
1000 | "cell_type": "markdown",
1001 | "id": "6aa776aa",
1002 | "metadata": {
1003 | "slideshow": {
1004 | "slide_type": "slide"
1005 | }
1006 | },
1007 | "source": [
1008 | "#### We can also do the same thing with MAPIE:"
1009 | ]
1010 | },
1011 | {
1012 | "cell_type": "code",
1013 | "execution_count": 33,
1014 | "id": "8c1dfe71",
1015 | "metadata": {},
1016 | "outputs": [
1017 | {
1018 | "name": "stdout",
1019 | "output_type": "stream",
1020 | "text": [
1021 | "Coverage on calibration set: 0.81\n",
1022 | "Coverage on validation set: 0.86\n"
1023 | ]
1024 | },
1025 | {
1026 | "name": "stderr",
1027 | "output_type": "stream",
1028 | "text": [
1029 | "/Users/vivi/anaconda3/lib/python3.11/site-packages/mapie/regression/quantile_regression.py:201: UserWarning: WARNING: The alpha that is set needs to be the same as the alpha of your prefitted model in the following order [alpha/2, 1 - alpha/2, 0.5]\n",
1030 | " warnings.warn(\n",
1031 | "/Users/vivi/anaconda3/lib/python3.11/site-packages/mapie/utils.py:598: UserWarning: WARNING: The predictions are ill-sorted.\n",
1032 | " warnings.warn(\n",
1033 | "/Users/vivi/anaconda3/lib/python3.11/site-packages/mapie/utils.py:598: UserWarning: WARNING: The predictions are ill-sorted.\n",
1034 | " warnings.warn(\n",
1035 | "/Users/vivi/anaconda3/lib/python3.11/site-packages/mapie/utils.py:598: UserWarning: WARNING: The predictions are ill-sorted.\n",
1036 | " warnings.warn(\n",
1037 | "/Users/vivi/anaconda3/lib/python3.11/site-packages/mapie/utils.py:598: UserWarning: WARNING: The predictions are ill-sorted.\n",
1038 | " warnings.warn(\n",
1039 | "/Users/vivi/anaconda3/lib/python3.11/site-packages/mapie/utils.py:598: UserWarning: WARNING: The predictions are ill-sorted.\n",
1040 | " warnings.warn(\n",
1041 | "/Users/vivi/anaconda3/lib/python3.11/site-packages/mapie/utils.py:598: UserWarning: WARNING: The predictions are ill-sorted.\n",
1042 | " warnings.warn(\n"
1043 | ]
1044 | }
1045 | ],
1046 | "source": [
1047 | "# Calibrate uncertainties on calibration set\n",
1048 | "mapie_cqr = MapieQuantileRegressor([all_models[\"q 0.10\"], all_models[\"q 0.90\"], all_models[\"q 0.50\"]], cv=\"prefit\", alpha=0.2)\n",
1049 | "\n",
1050 | "mapie_cqr.fit(X_calib, y_calib)\n",
1051 | "\n",
1052 | "# Evaluate prediction and coverage level on calibration set\n",
1053 | "y_pred_cqr, y_pis_cqr = mapie_cqr.predict(X_calib)\n",
1054 | "coverage_cqr = regression_coverage_score(\n",
1055 | " y_calib,\n",
1056 | " y_pis_cqr[:, 0, 0],\n",
1057 | " y_pis_cqr[:, 1, 0]\n",
1058 | ")\n",
1059 | "\n",
1060 | "print('Coverage on calibration set:', '%.2f' % coverage_cqr)\n",
1061 | "\n",
1062 | "# Evaluate prediction and coverage level on testing set\n",
1063 | "y_pred_cqr, y_pis_cqr = mapie_cqr.predict(X_val)\n",
1064 | "coverage_cqr = regression_coverage_score(\n",
1065 | " y_val,\n",
1066 | " y_pis_cqr[:, 0, 0],\n",
1067 | " y_pis_cqr[:, 1, 0]\n",
1068 | ")\n",
1069 | "\n",
1070 | "print('Coverage on validation set:', '%.2f' % coverage_cqr) #Very similar"
1071 | ]
1072 | },
1073 | {
1074 | "cell_type": "code",
1075 | "execution_count": null,
1076 | "id": "3af15ef0",
1077 | "metadata": {},
1078 | "outputs": [],
1079 | "source": []
1080 | }
1081 | ],
1082 | "metadata": {
1083 | "kernelspec": {
1084 | "display_name": "Python 3 (ipykernel)",
1085 | "language": "python",
1086 | "name": "python3"
1087 | },
1088 | "language_info": {
1089 | "codemirror_mode": {
1090 | "name": "ipython",
1091 | "version": 3
1092 | },
1093 | "file_extension": ".py",
1094 | "mimetype": "text/x-python",
1095 | "name": "python",
1096 | "nbconvert_exporter": "python",
1097 | "pygments_lexer": "ipython3",
1098 | "version": "3.11.6"
1099 | }
1100 | },
1101 | "nbformat": 4,
1102 | "nbformat_minor": 5
1103 | }
1104 |
--------------------------------------------------------------------------------
/GalaxyProperties.csv:
--------------------------------------------------------------------------------
1 | ,Dust attenuation value,Age (Gyr),Log10(Mass/Mass_Sun),Tau (Gyr)
2 | 0,0.1648691903421710,0.2032911081660820,7.885366660500210,0.0330354477246532
3 | 1,0.2008517572931340,0.4702480533753310,8.297677735406540,0.0871459775662365
4 | 2,0.19786299417290600,4.033993194275280,8.184614779714330,1.2739737806583300
5 | 3,0.001,0.7216364022206550,8.36011019137045,0.2425883215430400
6 | 4,0.001,0.6994639566523550,8.373326782804570,0.5106830458053310
7 | 5,0.08059182449752020,0.8265444287294270,7.629000986652260,0.6060364290600060
8 | 6,0.4488191139005980,4.5293594528719800,10.993512669618200,0.6579691106823900
9 | 7,0.001,0.3981584007117890,7.565025588307170,0.08957940934760400
10 | 8,0.7598801007501800,0.7151506232289460,9.535678814103540,1.0226443013904000
11 | 9,0.5421368754818960,0.4082256848043900,8.290803195318120,8.622035548936560
12 | 10,0.001,3.9912821969369700,8.095127823175760,1.9137152251379200
13 | 11,0.001,0.2540591649973680,7.977726295022080,0.10497383884862300
14 | 12,0.1496828406898800,0.38720704121299600,8.580421182203520,0.14988660353936500
15 | 13,0.06734090809871090,0.6604782432029590,8.29021278831279,0.4018216912906010
16 | 14,0.021387970727951900,0.17918517942967400,7.5050030154061500,0.7989655630139390
17 | 15,0.06231830804775270,0.10995177361995000,7.452544667776010,0.018187704809690000
18 | 16,0.5364141901723020,0.08367746881107470,9.3296145668632,0.028059519146752900
19 | 17,0.001,0.5317102334820480,8.143469117967830,0.4441444193574780
20 | 18,0.12045045021922300,1.0512810189573600,8.036798621101120,0.371374257957743
21 | 19,0.14692303099362400,0.5590167599684700,7.914209178471170,0.14947774844554900
22 | 20,0.11184457273461600,1.0276707091584800,8.746104478528490,1.2482332284959100
23 | 21,0.6156284473732840,1.3031837475223800,9.584178751622300,1.1175227470934000
24 | 22,0.03667933131736740,0.11580784674620900,7.3147022183547100,0.017195471422045000
25 | 23,0.20083671055312300,0.07880241622106040,7.396342776556810,0.01676536708544950
26 | 24,0.027468747432541000,0.21882764771198200,8.640863682189290,0.07999113189126000
27 | 25,0.9179741334469990,0.5880904744956540,8.994206312516370,0.8331645257032560
28 | 26,0.001,0.5512681257098740,7.464687760638810,0.1442464320904800
29 | 27,0.001,0.46585186281358200,7.761070129131670,0.1131173343618720
30 | 28,0.6433002628712390,1.9758216693051800,10.491762603004700,0.3122854517230830
31 | 29,0.10029978807981900,0.5813173196684770,8.263955578565730,0.22107348986056400
32 | 30,0.12255071392489500,0.9584821767588680,8.590689580361410,0.5358532350833650
33 | 31,0.2499109116097010,1.196421565924720,8.643371542270530,0.6987868165027740
34 | 32,0.001,0.4863710555571170,7.700011286854750,0.16642601427018800
35 | 33,0.001,0.5082273882663090,8.061049598602910,0.28578235210216900
36 | 34,0.001,0.5918727260620770,7.152665106657330,0.3275243437559210
37 | 35,1.0476591127510400,0.3930287127453110,9.762821358482870,0.12126922903284600
38 | 36,0.7955276725889140,0.41706543630904000,8.947052598533020,0.7875981983626640
39 | 37,0.09773806560495690,0.9676306636878600,9.578560868184000,0.3573512202821470
40 | 38,0.016122967209459200,1.287655694448810,8.35165944575191,0.3734056371159530
41 | 39,0.3974097319527410,0.8122560588411880,8.519069268546340,1.1326539489083100
42 | 40,0.1277136190772220,0.3033101133937790,7.899404268047360,0.060370150040504000
43 | 41,0.08165807475294380,0.3253016209970600,8.648855325543660,0.1169273958981370
44 | 42,0.12951989169871300,1.7116697211402600,8.024827286516640,0.28364420962316200
45 | 43,0.03877371432832370,0.5987528257032480,8.41218164799717,0.15900920560503300
46 | 44,1.2234620427638400,0.1722868833790730,8.294373883678670,0.1499729904002330
47 | 45,0.02584938926277770,1.2345053524790100,8.383273299960570,0.09666567490734730
48 | 46,0.19333981203577300,0.5843321410440580,8.559203138995680,0.27167133636055700
49 | 47,0.16484674963230400,1.0180401976446800,9.261502262251460,0.3808471710818340
50 | 48,2.3605146006249500,0.15473978791141700,10.756307173294900,0.010667627793461000
51 | 49,0.6686020836512260,0.5289153181521880,9.716402883665760,0.5831187060274370
52 | 50,0.0072094865115793700,0.8259959592271640,8.121772022275200,0.15425323795048100
53 | 51,0.08629785758593010,0.6414958662694900,8.507101900487160,0.2759649005593100
54 | 52,0.06391058585974870,0.5300633064486770,7.9198806456572700,0.27916437190899300
55 | 53,0.001,0.4990835823151290,8.147649514054960,0.1380870874446530
56 | 54,0.1124169173244960,0.4208513655210710,8.279353383076710,0.09887458312833380
57 | 55,0.1031197720030260,0.35957762591537300,8.36583449354645,0.07671318583934110
58 | 56,0.001,0.6339227920160520,8.29882094429432,0.2801026011978000
59 | 57,0.05490313892782590,0.9748562189616610,8.11643642236828,0.9885793411662630
60 | 58,0.0115161208701687,0.7963784768355130,7.697491611141990,0.16481158913951600
61 | 59,0.3273740860333190,2.4053198450802300,9.744910575717550,0.2475391253055610
62 | 60,0.296168964926799,0.7721526088989840,9.230687178409920,0.7141963301613520
63 | 61,0.001,0.7560763320308970,8.533541179219420,0.259356563593018
64 | 62,0.6647426514535310,0.3835134501397350,8.216197429110170,0.05846083870301210
65 | 63,0.0894180798452512,2.1211995271915900,9.288442250017850,0.7181974913785310
66 | 64,0.001,0.50969275404311,7.146801165553130,0.7345688652961750
67 | 65,0.8450335873579440,0.9939335878541940,9.880157202161310,1.5318214183798000
68 | 66,0.001,0.8144446277633250,8.416594396846890,0.4237736717195790
69 | 67,0.3523576284586950,0.9395142623189670,8.284125101309950,0.4489806803333970
70 | 68,0.15641696346693900,0.1862898339169290,8.705259396161360,0.2545732123701310
71 | 69,0.001,0.5682550455240100,8.14788223059271,0.4633355207720400
72 | 70,0.030460384062755800,0.5925834803587940,8.263399006035530,0.0931622007886386
73 | 71,0.034320036165399000,0.8197996418345010,7.734074257935100,0.4034166113767100
74 | 72,0.04209660949652080,0.2668461636801140,8.194439569118500,0.07738843804744740
75 | 73,0.1608319310104320,0.8094988384209280,8.53954906249586,0.2384020364562110
76 | 74,0.7260629964916640,0.2938423137184640,10.025244604878900,0.10917685083892900
77 | 75,0.08122990051373310,1.1078524565375300,8.223470278328850,0.7499048704287630
78 | 76,0.2422078833057420,0.7793396444937160,8.164920776830290,0.19585369699062800
79 | 77,0.12741599393860400,1.4563912722387000,9.204922527223380,0.24135907152127300
80 | 78,0.001,0.5672686054568080,8.38632233086156,0.2379619029145670
81 | 79,0.025197619683052200,4.530510554134520,8.832494174594740,2.3271367414929100
82 | 80,0.001,1.3058536427000000,8.319468858858780,0.23138701530039500
83 | 81,0.7797243325843310,1.2955566027646800,9.847214493213470,0.7072385817582020
84 | 82,0.24410933625001500,1.36825504925616,8.348312347641010,1.6053021360575900
85 | 83,0.001,1.1802917632666300,7.913328445216390,0.4183304672282650
86 | 84,0.386054560638332,0.21161364738061900,9.658705298585730,0.11286255309916400
87 | 85,0.6257208440806260,1.3802700987909500,9.763590775137290,1.6188751421134600
88 | 86,0.8379077596624290,1.4987618581655600,10.034650144301600,0.48972564344752500
89 | 87,0.6676653940017520,0.10054695245921200,7.209604100016220,0.010877114347004100
90 | 88,0.001,0.8112859999111870,8.134021777582200,0.15332840324873400
91 | 89,0.001,0.6720300884272480,8.282909029664480,0.25371728474142900
92 | 90,0.03088996061664600,1.1041583422105800,8.309411528480440,0.4368129983755420
93 | 91,0.001,0.06777283409085530,7.596908881380700,0.011902731346843100
94 | 92,0.06297487332000100,3.9719614263570800,8.528173813582650,8.712544989230810
95 | 93,0.17967118226135500,0.5030802532652160,8.090008243627760,0.1126208721291820
96 | 94,0.3140112671564760,0.4021493046271590,8.70183355913865,0.1316639283940730
97 | 95,0.17951359358621700,1.2179263446615800,8.180022672813640,0.593199394670708
98 | 96,0.4727624286683470,0.3851865660465890,8.461245779722240,0.09614182263653160
99 | 97,0.001,1.217059077821190,8.273959085881560,0.2688011361394830
100 | 98,0.001,2.385265437163860,7.915695087883230,0.2205475825625960
101 | 99,0.17039091753439100,0.4471969171232270,7.928066162021970,0.22182236383560000
102 | 100,0.001,1.7688459904038600,8.766471764965250,0.3841520706570330
103 | 101,0.5986587344113180,0.6105271227320120,8.484320465403420,0.15200326737789800
104 | 102,0.2412927799994020,0.3594710039606970,8.369476926984990,0.11808595677169900
105 | 103,0.001,0.7204661638098700,8.830811231698640,0.6290688830577310
106 | 104,0.1327937796231550,0.5411367324567400,8.077987146527850,0.11566854316588500
107 | 105,0.001,1.5870572433225900,8.357437683898620,0.9713230101681530
108 | 106,0.001,0.12412084743227200,7.551912827806440,0.04341710893197140
109 | 107,0.10858689699718600,1.5083974873131600,8.859708753209080,0.7700331244273280
110 | 108,0.001,0.5341613552678510,7.548799952728780,0.28336059992813900
111 | 109,0.7021438295314150,0.2046897022792770,8.935321384134800,0.011941927887617600
112 | 110,0.03820363363701580,0.34411476607742500,7.677602315109000,0.09991320551586720
113 | 111,0.2886770785621910,1.073469992493030,8.953407326681240,0.297899848516341
114 | 112,0.4111432950568520,0.1925251364082390,8.330205867410240,1.1732670478321400
115 | 113,0.06791937409572330,0.2782155135083180,8.315417666837190,0.06896677916838400
116 | 114,0.09028241786215740,0.3001376824611020,7.988299440330850,0.10097857383061300
117 | 115,0.14306402191924300,1.2766873522728000,8.809524837699060,0.4816281051124610
118 | 116,0.3723557256000500,2.2150298156955500,10.36732629065720,0.36940609851265500
119 | 117,0.2554788152347880,1.6153327464005300,9.07156723113481,0.6095852461707660
120 | 118,0.059032846878887700,0.3778029814911600,7.705999173026090,0.1423883782746830
121 | 119,0.001,0.21344936249083300,7.7627644799294400,0.06120141422017860
122 | 120,0.001,0.31151580668866700,7.465684891093250,0.1125261971357890
123 | 121,0.056149491273069800,0.5695616571625280,8.364138918990450,0.12828498355871100
124 | 122,0.05260260477386390,0.34342430876070400,7.487245159669480,0.07203060193594070
125 | 123,0.14009118603619300,1.1314380705610800,9.102078090253590,0.4008102373770700
126 | 124,0.09788138193018260,1.803546770268450,8.431221898038910,1.7314826685165200
127 | 125,0.06758287239602950,1.2488461753872100,7.487765393067180,0.4828787052575440
128 | 126,0.5339680984670080,0.9904999187960230,9.401441183344120,0.5568754489503780
129 | 127,0.4799186420881610,0.11734773502055900,8.593633032756070,0.024340143139850900
130 | 128,0.0507333450679002,0.9384400278929950,8.949535831655490,0.35159020959148400
131 | 129,0.001,0.35286655872949500,8.315973320673290,0.0809172234529951
132 | 130,0.32325259888806400,0.19426464880083600,9.386693933369840,0.07812449400205520
133 | 131,0.19125915096759200,0.3209449217349220,8.347836282031190,0.10107637791677400
134 | 132,0.001,0.17479243256179400,7.561016487917850,0.02661158443106970
135 | 133,1.3204469598775400,0.11417050060674700,10.021807725218900,0.01702554832377300
136 | 134,0.1034540840642540,1.0375777284279000,7.67917408140428,0.4164901415055630
137 | 135,0.4909764439381340,1.3077251660893100,7.962534213052240,0.2856763590704930
138 | 136,0.06451139293373580,0.579169437589202,8.598146181942870,0.3751989933924790
139 | 137,0.001,2.5950778406585100,8.3366131842374,0.4189717750463360
140 | 138,0.02736078253105450,0.8997726690510480,9.0204559353949,0.4246495436968410
141 | 139,0.10941160795387600,0.5331027921277630,8.294166930368080,0.17125168338806900
142 | 140,0.016898702435922900,1.2842973832310600,8.029930532314090,0.7021609797364350
143 | 141,0.09665642185038000,0.27833566293725600,9.139478136524810,0.17986743999130500
144 | 142,0.001,2.2233961813533200,8.813660564188450,3.5913657810671900
145 | 143,0.014866007121871900,0.20027585441119400,7.268089733804010,7.5527611328227600
146 | 144,0.378967231972547,0.9479482541104090,9.156637897788970,0.2647918441462000
147 | 145,0.4982618095821980,0.5007891062481440,7.987951909171100,0.012694891948671400
148 | 146,0.8172249092744550,0.8986708365725390,9.654611727435450,0.5081667595116990
149 | 147,0.19358812628569600,0.6989643666233760,8.40844961778308,0.10074016725305900
150 | 148,0.04075973963141610,1.1854432901932400,8.130430223137360,0.4459076856549870
151 | 149,0.001,0.18806512515299200,8.34046902526759,0.061251495166029000
152 | 150,0.001,3.2098868430091800,8.048050861043160,0.9635490237180200
153 | 151,0.001,0.6444687790270460,7.696194609241350,0.3770633084963240
154 | 152,0.001,1.2207649600359300,8.876451185181230,0.253588051652718
155 | 153,0.2951562851507380,0.2939761272375470,7.815904768953660,0.14726897732503800
156 | 154,0.2352017014941780,0.6163151987947340,7.8056476390267000,0.1825033962883910
157 | 155,0.166515646708685,1.7253897271005900,7.631692203534490,9.6300707525653
158 | 156,0.14188708800175200,0.3636993359185750,7.8668062694306800,0.2879441822883040
159 | 157,0.03313879996011870,2.1127567198172900,10.291331483274600,0.2620440100099400
160 | 158,0.008594319512007890,4.55556030562034,8.182323928503480,4.735501601830540
161 | 159,0.017807493875416400,0.11092006716157700,7.266567959168620,0.014688862475612100
162 | 160,0.2477689675377390,2.8382720312243900,8.605758406362910,6.7447531658208300
163 | 161,0.005630675271550360,1.3228349770312000,7.897278152308590,0.16380184161198100
164 | 162,0.001,0.5538544163467320,8.005537811490960,0.11441243326913100
165 | 163,0.0631553520285306,0.3106317404892060,8.45544834650581,0.24473541892442600
166 | 164,0.0030850028644837300,1.0617247208960100,8.470925061221360,0.275190913434818
167 | 165,0.1227133878425530,0.5428930056935380,7.392105912766240,0.18163143968188500
168 | 166,0.6973644027355480,0.4208436764947910,9.21046319808214,0.16348518870124
169 | 167,0.09863493504243910,0.4649303812789010,8.950032581756970,0.3299147706428120
170 | 168,0.001,0.978439113491684,8.134758283951100,0.4424421636320260
171 | 169,0.15662401620872000,0.4530682789786590,8.194491997319630,0.09035475548524540
172 | 170,0.001,0.3925397924670950,7.698026426858520,0.010405919782481300
173 | 171,0.5629841245912800,0.07283315579783390,7.796275978487390,0.02609334922425460
174 | 172,1.2973923040202500,0.1462999631553620,8.827474320304030,0.013250846519840900
175 | 173,0.001,2.938038298137060,8.20430062895575,2.5124657166771600
176 | 174,0.04086061493654180,0.4030450759307800,8.649541228966560,0.1577226379750900
177 | 175,0.1375970549832140,0.32070837128316900,7.687249364062440,0.011193184413911800
178 | 176,0.01718691205847390,0.6602820824068970,8.124568744734710,0.436365699883114
179 | 177,0.3507491107453130,0.10896450969262900,7.835888289460820,0.011161206254981000
180 | 178,0.9743803176845250,0.07147087941894330,8.862746485082450,0.03298467266557730
181 | 179,0.07181872436798190,0.2778817494867520,8.348352475741480,0.13510094575995600
182 | 180,0.14871150591637000,0.6407049794691410,7.867392051522550,0.3661821855402630
183 | 181,0.08985874647317680,2.6757910568978800,9.304566721729440,1.02826781947924
184 | 182,0.001,0.5551727892937250,7.547630252478120,0.14127466170361600
185 | 183,0.001,0.5906886079977950,8.24778218081331,0.5557106386179930
186 | 184,0.060908575198734500,0.3705655541820410,7.46254807704861,0.17045661992779300
187 | 185,0.1511614124218630,1.2774773085021600,9.123950941018930,7.740840886923920
188 | 186,0.001,0.4938708543724680,8.18233774170897,2.439912011354860
189 | 187,0.001,0.1791342601902420,7.241693965845510,0.19469424121665600
190 | 188,0.6513334782492480,0.8999469428824130,8.640752247793360,0.9217447956118120
191 | 189,0.11865489844625300,0.6682201856778020,8.884196383756790,0.5755643329000720
192 | 190,0.10542360320770200,0.6290130088814440,8.019922766511450,0.5908872116881920
193 | 191,0.14539613158084700,1.7559426698322000,8.246281082373060,0.1186146135585850
194 | 192,0.19388222129394600,0.7987519826542110,8.800292569849460,0.21391291125228100
195 | 193,0.12606407556738500,0.06103108610668410,7.581893351696190,0.012422571337486500
196 | 194,0.001,0.3458105512901410,7.978859463793360,0.10853211620041300
197 | 195,0.001,0.3248752315421030,7.9009086806846,0.16469995631121800
198 | 196,0.001,0.6167619110753360,8.052899712168380,0.20480805356482600
199 | 197,0.08189894005263680,0.3692164476839500,7.807980808633980,0.15463455178705600
200 | 198,0.001,0.4125213339058220,7.164528638259980,0.02036668855054190
201 | 199,0.04819239037871560,0.10232468070573300,7.506849667273130,0.032598446109093600
202 | 200,0.13433200223341200,0.09413735038257940,8.356187040380050,0.018802129298733100
203 | 201,0.001,1.1579752893381100,8.410199841694560,0.37327440522417400
204 | 202,0.0927240353143636,1.047099179976120,7.81964331759538,0.4291065294024850
205 | 203,0.5095175389530270,0.1867332270510290,7.5007576505131100,0.04936237225004800
206 | 204,0.031421112716895600,0.11807608188822100,8.671374596662210,0.01171647385707830
207 | 205,0.04480859588250070,0.9781163101688000,8.795937161618400,0.305319757893098
208 | 206,0.02846639088364620,0.7526115435912240,8.96242908395667,0.2802627355913210
209 | 207,0.1286055267334660,0.34101020791220200,7.385734481282310,0.3444102250578350
210 | 208,0.4479159219972220,0.11481618758613600,8.675055123281370,0.021319765773774900
211 | 209,0.10343944210399700,0.64546841048118,8.525646990838500,0.23432587792881700
212 | 210,0.4608488248663710,0.29940495956629100,9.72711948230525,0.1052935729994690
213 | 211,0.25192302354691000,1.599844901332150,9.289784694145060,0.7853750431408110
214 | 212,0.035539925847654300,1.1845658999376300,7.842341702425580,0.2349095002599350
215 | 213,1.0007176112923200,0.6138789689149270,9.459203546633960,0.188871221454806
216 | 214,0.001,1.905752691706410,8.121533438010010,0.6868318133225420
217 | 215,0.4666421258932660,0.523515045485373,8.962351269426920,6.292586615313530
218 | 216,0.468257626535932,0.09118532262903570,8.960787203917670,0.01808833814451150
219 | 217,0.22334580771182500,1.699062750429540,8.190942348560410,8.047311777947330
220 | 218,0.02928049325179550,2.1049986294299500,9.28307368833269,0.4791419154370280
221 | 219,0.034732260706754300,3.2830174842030000,8.043985828433380,1.3704701074061500
222 | 220,0.6074162321982050,0.08992059521657590,9.288892641836200,0.04098497294006370
223 | 221,0.0969926811643373,0.6950915208884460,7.492263919994520,4.030730703072020
224 | 222,0.04229468530379620,0.8425066727074540,9.27260656226058,0.4736467434466730
225 | 223,0.001,0.4415882238991120,7.923869326695610,0.16734394928490100
226 | 224,0.001,1.2060247651918600,8.427957196758630,0.4160239413526550
227 | 225,0.23284328811921700,1.1897126585549100,9.545935989529110,0.9948744184618200
228 | 226,1.55584822088956,0.06808448409250040,10.035960380416800,0.010609115034281700
229 | 227,0.08152983967028960,0.5463931061261040,8.67207525229812,0.4242649865306800
230 | 228,0.002552893327618460,0.6837073042951960,7.941263784096070,0.13580019194869400
231 | 229,0.02734028516482950,4.762728229579350,7.930072523269530,2.6282630238485900
232 | 230,0.001,1.50001480747304,8.841086929380800,2.261940508907160
233 | 231,0.26691753578074800,1.097586977813230,8.147707122359680,0.33210071045202600
234 | 232,0.9470522907407340,1.1901852419169200,9.88315616905849,2.073338066574010
235 | 233,0.001,0.5143764632462060,8.223134754111050,0.1585702349543040
236 | 234,0.04833936348043790,1.58917731392516,9.049943569229750,1.5555548375560100
237 | 235,0.013048530270673800,0.5839369074901990,8.325047246226360,0.2981769454089990
238 | 236,0.001,0.12141042879411100,7.221939167111260,0.1056940127154300
239 | 237,0.1987540845041110,2.3367338153994200,9.70714756586239,0.5318719765310350
240 | 238,0.30809174061925900,1.6083763063167100,9.58864384150226,0.5626222485974770
241 | 239,0.0869835692614262,2.1510065213086300,8.032706380620060,0.2974439822768310
242 | 240,0.003632746601165490,4.342840058081840,8.356981107751280,2.004422644974820
243 | 241,0.0309349452386152,0.42247721710986000,8.241691280735280,0.1118550830094
244 | 242,0.023574147596967800,1.4258718206493800,9.159146507012000,0.1848149969003130
245 | 243,0.001,0.4844378582371640,8.224231534715530,0.05038726337674800
246 | 244,1.139739708501280,0.20600800878438100,9.64302904879732,0.08152884184146240
247 | 245,0.08529651199746160,0.39389603713916100,7.853229105441800,0.08510686628276760
248 | 246,0.001,0.6762279425129470,8.370319549435080,0.5718557059483250
249 | 247,0.1052245399498060,0.5972202137229020,7.993286423010460,0.3180326648019030
250 | 248,0.13651821035329200,1.872531309338080,8.36664625079792,1.3939102203443000
251 | 249,0.13592889063810100,0.3313888227710510,8.309712407752250,0.1357573935338920
252 | 250,0.001,0.10114962949409100,7.830196247212470,0.020421080475304000
253 | 251,0.4106353434275370,0.4057291370445150,8.208722800842070,0.1434806235156700
254 | 252,0.09835992348697910,4.690279706909100,8.561852349027210,0.6301062618971470
255 | 253,0.3677026807321000,0.5768228671762230,9.021858863181170,0.7601175087663030
256 | 254,0.001,0.8424138916085160,7.839644339313960,0.3140943420627710
257 | 255,0.4147803252661220,0.21020053175519900,9.1595545074063,0.049232696615482600
258 | 256,0.001,0.40343939307335900,8.123466127475790,0.03868933918914910
259 | 257,0.001,0.7866949579268110,8.113157695978640,0.012230828654480300
260 | 258,1.4996809790951200,0.16199034830699500,8.517016437909370,0.015472920677832000
261 | 259,0.34154789588461300,0.7892608945502640,8.628425861524530,0.4106652997521560
262 | 260,0.0431437939514245,0.5333782812758320,7.3332624529111100,0.7914098835265430
263 | 261,0.0816091038256565,1.8006569418878800,8.304302448446610,0.955657386991266
264 | 262,0.039720076645134900,0.4828395436398650,7.698034100793000,0.17545936693153100
265 | 263,0.11974288589724800,0.2501008832762530,7.12105805611654,0.5941156441662080
266 | 264,0.012832115311968900,0.4644985478383380,8.361889336319330,0.5611061506196130
267 | 265,0.001,0.5907823115524540,7.7243560830870800,0.19407029403299300
268 | 266,0.001,0.43281916377802700,7.810147707971320,0.22398875923584300
269 | 267,0.12316131139837100,0.6315933648885110,8.581045620814560,0.5249083489339910
270 | 268,0.12197628917952500,0.8702672528114610,9.03185415395161,1.0045800128411100
271 | 269,0.04564998914046900,0.5251476552509870,8.480739662158010,0.5207545010346460
272 | 270,0.34699844227035300,0.18208878420589300,8.372795278758180,1.0501658024868100
273 | 271,0.168600263776353,1.1044333728120900,8.402169546710780,0.7110808897312230
274 | 272,0.3727690580589990,0.4413688397483470,8.077012797765140,0.5131395569534950
275 | 273,0.198726910808185,0.4336179946777130,7.988233924237890,0.1953805809713060
276 | 274,0.07410818969201580,0.6449405585269100,8.289140059060900,0.2575286418063330
277 | 275,0.001,1.0151540586533400,8.194794643404790,0.4534785818473780
278 | 276,0.001,1.1569644317424400,8.835941595149400,0.4362730672407420
279 | 277,0.8707931991762990,0.5334637333244690,8.352380807005390,0.051519881202147300
280 | 278,0.001,1.5604309198758100,7.773245933977640,0.5309848441005770
281 | 279,0.01793365727353410,0.1140097336072710,7.088887678475260,0.011014616189049700
282 | 280,0.09760842431898090,0.12175016186030800,8.199093024771340,0.01543807676037410
283 | 281,0.001,0.7632449216043780,7.101968607999150,0.2136389493287150
284 | 282,0.3356453127861170,0.8177583830645550,9.147009372572730,1.027866372222880
285 | 283,0.2938232430729580,0.7503517426131670,8.059350228470840,0.1848756086393620
286 | 284,0.22234274570863500,1.0347393184967400,8.750717366320160,0.7736494309591640
287 | 285,0.001,0.42004208570543300,7.479884067945580,0.0703557389322499
288 | 286,0.1664175860195230,3.9382942179884900,8.75023579368769,1.0310692780055800
289 | 287,0.0074017808262436300,0.3800475110967470,7.476296229570790,0.12826030812251400
290 | 288,0.001,0.9396070944081540,8.068854327655630,0.509455685050032
291 | 289,0.14380375906897300,0.2661171795442480,7.82000214192897,0.07742332133279900
292 | 290,0.001,1.5169753316854000,8.10783511574924,0.4174693759118570
293 | 291,0.120153614853933,0.21415065241423900,8.108692872194860,0.04985976030587860
294 | 292,0.057358016299057200,0.25569155180429300,8.227204583948100,0.1281535118399910
295 | 293,0.03581380019380470,0.4473627182350720,8.522997876652700,0.16152738951948100
296 | 294,0.001,2.162309220607170,8.316404780332810,3.241497636034310
297 | 295,0.17708923845579200,0.550159690861784,8.179146549349040,0.18669674038917800
298 | 296,0.6979724856961490,0.11052821496247500,9.033679934035930,0.06714170049107140
299 | 297,0.06905305651867300,1.1962138288996400,7.877744017802370,0.6171611133297850
300 | 298,0.2622152882376180,0.30558108307827500,9.022541972116670,0.25239898851883200
301 | 299,0.05305090584378990,0.7867951215646160,8.613131428365590,0.14355655392589400
302 | 300,0.001,0.23186222601825700,7.8659479593283100,0.0900487647024813
303 | 301,0.8686577352325400,0.19262009111964800,8.071414857304240,0.41337561101790200
304 | 302,0.001,1.114493526957270,8.364544136487010,0.7005699488231730
305 | 303,0.001,1.0919265732283200,8.857157533352260,0.451374039172846
306 | 304,0.001,0.6635198296925300,8.71549504966427,0.4127037062728820
307 | 305,0.001,0.7715774518998770,8.507605535844870,0.4199766950771550
308 | 306,0.001,0.5211164484819140,7.845364640731380,0.06562492575277400
309 | 307,0.014770177668286300,0.5160887096113650,8.05630350534824,0.3279922144251490
310 | 308,0.002764163165648140,0.4548528792443720,8.097844896743740,0.18573433855443900
311 | 309,0.23294821207581200,0.5621323322948020,8.119427605329790,0.12311515599664400
312 | 310,0.09438824155578840,0.3516366012099830,8.021896545729030,0.2592207353897150
313 | 311,0.10875197455249800,1.4761104959614500,8.786141248921300,0.754141898274196
314 | 312,0.001,0.18758985794630900,8.241506527957970,0.07751077263476410
315 | 313,0.0015041393506293900,1.036526385670360,8.860786334250260,0.26933728895586500
316 | 314,0.18363934502127400,0.2083043792083990,8.546937854957370,0.1036944458847170
317 | 315,0.0838927677789461,0.9164340152531050,7.754349182245770,9.58331238906614
318 | 316,0.001,0.35746060964359900,8.726002092237600,0.23649075381072400
319 | 317,0.02400916003951070,0.5757911626819320,8.30656131010828,0.16170430477818100
320 | 318,0.001,2.2346076341968700,7.806358187363050,1.203004499974360
321 | 319,0.001,0.9879398431624490,7.756350884980500,0.2150798251819330
322 | 320,0.12562568431501800,0.5549931340329450,7.602167535396920,0.3960561244271440
323 | 321,1.5551112580483100,0.6115017681993920,9.552785472192330,0.3478526585892590
324 | 322,0.3261995938605270,0.3038229672859600,8.493345626087070,1.277076767956710
325 | 323,1.3176414014126600,0.2884270505306350,9.490791583738050,0.02176414260537000
326 | 324,0.14720424242584000,0.5044315232086560,8.426758519934560,0.10962292930877000
327 | 325,0.2897293039540520,0.6116167550577020,8.903826694290220,0.3492658546766840
328 | 326,0.11055544577701200,0.3748374804351190,8.149479659557920,0.1266951441486310
329 | 327,0.003357587680486280,0.904863013954888,8.537862284651340,0.4723466531261680
330 | 328,0.02446590780425400,0.4300040933836220,7.31406622268387,0.3168637289773240
331 | 329,0.5457899486297110,0.12607398152017600,9.71846181749134,0.0329659454223283
332 | 330,1.6520946522029800,0.16011604187597300,9.647928125999690,0.01860104887759300
333 | 331,0.0003176412915251860,0.6988485097881940,7.613506520910890,0.16773541197292200
334 | 332,0.6055189252602020,1.901229728296340,10.781740347323500,0.27512131181574700
335 | 333,0.4285000666214050,0.9294648355714970,9.25217971798858,0.32431021203081700
336 | 334,0.009863124654111540,0.8437894440521940,8.101546811835560,0.4445780251817410
337 | 335,0.09853368639311500,0.8824947870893840,8.050284781038420,0.4344843009419380
338 | 336,0.001,0.14232648445282500,7.605343534546450,0.12206582828134400
339 | 337,0.7301643884783380,0.2989389044917120,9.651681898114770,0.16136386433565700
340 | 338,0.001,0.625315739976048,8.41349545740093,0.1931034381253760
341 | 339,0.001,0.2287591906648180,8.986144935889480,0.31724643264722700
342 | 340,0.048571652790261500,1.4832197450825600,7.970887347878510,0.4263285574716950
343 | 341,0.18517655584599100,0.4729767623843280,7.80661599217416,0.15104775625216900
344 | 342,0.9087358015007410,0.15788566367728300,8.03977576322333,0.13597488004895900
345 | 343,0.4488366085933860,0.9695899520408250,7.907534356813600,0.23563191836842000
346 | 344,0.1007956639006770,0.14215603942572900,7.821262603623680,0.025766655299274900
347 | 345,0.040453127943016100,0.838620919665996,7.978621752713110,0.011781780812895100
348 | 346,0.17418566690143200,0.8950781789481150,8.264658636005940,0.2571491740107810
349 | 347,0.005526374750563720,1.033247376753030,8.57417279609575,0.8518751864276760
350 | 348,0.001,0.7419134847785910,7.933363859383730,0.13837385800171400
351 | 349,0.23583851212195200,0.4278835535838280,8.238511505841460,0.11484485825227200
352 | 350,0.2926551951881020,0.460041877169278,9.440168397977160,0.1204619235081870
353 | 351,0.5274055990117030,0.17173531387402200,9.616593850456840,0.06770296317266500
354 | 352,0.09548000511342910,0.4708579631802520,7.623020269822530,0.20149248813104500
355 | 353,0.1934781234327830,0.32770710500967500,7.907833448514620,0.17457696856366000
356 | 354,0.11092246934267000,0.6109858682694020,8.256488983542690,0.2538958551001850
357 | 355,0.9326342382229610,0.11664568943086200,9.554816245111990,0.04794650068765040
358 | 356,0.02444223344683750,0.9658053760865770,8.470061652319960,0.4036555491775780
359 | 357,0.8017418815176140,1.1440664375331700,8.421054771901590,6.130462766429940
360 | 358,0.7310070245817910,0.7185163391296600,9.79501732599423,0.6574649591310650
361 | 359,0.1862643050463280,1.0523326413517300,8.65727417613686,6.753458704232570
362 | 360,0.001,0.2733445271990620,7.694044699128860,0.010727651562433700
363 | 361,0.4161114300928530,0.608328919405102,8.000104748911270,0.015253427036838700
364 | 362,0.13955429415183200,0.5255492615466160,8.010488663913390,0.1600222927152540
365 | 363,0.3487129880007760,0.5930589846154670,8.368539632939550,0.24011265520190700
366 | 364,0.114184092494036,0.6430747224013490,8.142172834885220,0.4858989186568970
367 | 365,0.33907545337770100,2.1966260508236500,8.201419352376210,1.6794877392612300
368 | 366,0.001,0.270893271788969,7.741911766544210,0.010422821157052000
369 | 367,0.04682212592283820,0.7268397394265710,8.542997865081020,0.6093352441847590
370 | 368,0.012743777812285300,0.6387746764288750,8.533292787612530,0.31690922029954900
371 | 369,0.021958705157337300,1.9827634162658200,8.454669507355570,0.6997516796839650
372 | 370,0.12908645858098300,2.6022349557648600,7.884508293132590,0.667957285720558
373 | 371,0.013012683481834400,0.9318155211819700,8.123479959046780,0.5206353275710270
374 | 372,0.023872857944898300,2.1911343006865200,8.704998277586770,1.4809556423635200
375 | 373,0.07578766295142770,0.5059480069104160,8.593133490372270,0.4074229735203300
376 | 374,0.001,0.8160273028133960,8.145820438460330,0.19701356239192400
377 | 375,0.14435407859464000,0.6466348818883130,8.043224844672290,0.1094688385507
378 | 376,0.062478327233386200,2.2893425227632000,8.495882179892780,3.1034815568405600
379 | 377,1.4434653558757800,0.24006586272889900,9.685098464070870,0.024269639460922000
380 | 378,0.001,2.602460688334650,8.143694540363470,1.4258827781837000
381 | 379,0.024719148541136000,0.33522476879201100,8.112434730824320,0.02318266013378610
382 | 380,0.001,0.44080915922491600,8.158467422609130,0.1290602780973450
383 | 381,0.0874506555831627,0.3665341001220630,8.010741304919530,0.030559698343642700
384 | 382,0.001,0.4733327189852350,7.934660143031420,0.2738529567255700
385 | 383,0.001,1.0032114946200800,7.266581093140660,0.3207730772121700
386 | 384,0.0818299791459455,1.206860116755300,8.791213765299900,0.74340229399112
387 | 385,0.3719231160879470,0.31545528510669500,8.581592274926010,0.3181135974132140
388 | 386,0.001,0.5967933915306490,7.9090957075660800,0.033299313441297600
389 | 387,0.018704159805664500,2.9210520136491800,8.49988777322736,2.1238486198340300
390 | 388,0.4448627794914120,0.4734230326618560,8.662337589197810,0.10005346040432300
391 | 389,0.347477275560392,1.940245085622350,7.700433839416960,0.4337670977360850
392 | 390,0.08096130510565590,1.1687141915475500,8.099603640356610,0.37553277395735500
393 | 391,0.13971204116008100,1.422905856350490,8.35027241123346,2.3208079147579200
394 | 392,0.061943205310222800,0.3607254696265220,8.267089070368980,0.2480492472838700
395 | 393,0.001,1.0515791878339100,9.051798652258950,1.0354907218300300
396 | 394,0.2061463555249530,0.3209655549865490,8.661770656337680,0.09665603555120280
397 | 395,0.001,0.2925529986541200,7.2937299339704600,0.2568643242466430
398 | 396,0.26820219427634800,1.94922214886198,10.5608979273585,0.17440304130796200
399 | 397,0.07397209624183810,0.8987088709588650,8.908519892815860,0.6769193527461350
400 | 398,0.2686529803652020,1.008676309827140,8.663332071727840,1.339524188110490
401 | 399,0.01657076603894920,1.3363625412991100,8.585499751134400,0.4086186691696710
402 | 400,0.5595883552504210,0.3724545815810340,8.324828215190510,0.10788115190922000
403 | 401,0.001,0.6902345666526570,8.669452485564040,0.21825343697043000
404 | 402,0.15501356875808000,0.06445580263577420,7.737090977607740,0.01166465281895460
405 | 403,0.5639418897927080,1.9093161950987000,10.813873914267300,0.15118156578508500
406 | 404,0.12005317701381700,0.3655942690970410,7.450060024511450,0.10931839534419600
407 | 405,0.001,0.5074184222169520,7.559592557495030,0.15198876316931100
408 | 406,0.001,0.4096608170112740,8.046243975225400,0.14987433618056000
409 | 407,0.03562957178567910,3.28953747768967,8.988358657205990,8.925421220977370
410 | 408,0.1350936566536160,0.9013935366044510,8.311005624652500,0.27276526966653600
411 | 409,0.0034050072910027500,0.3742522166215390,7.757426335096490,0.09772536661289120
412 | 410,0.11020327245094900,0.4149866263543620,7.449565237069710,0.13541571163311600
413 | 411,1.0363597247437800,0.09780038567441390,7.560163966951670,0.11394947138949000
414 | 412,0.001,2.9208022822396500,8.592164376890100,0.9377216417114070
415 | 413,0.03699773638947190,2.1586633229784800,7.5919494619294700,8.240304050806070
416 | 414,0.280217345280896,0.8105078524575510,7.856674873652950,1.3006667387797200
417 | 415,0.05858018129053640,1.1513885068941500,8.860454251779530,0.6172946463243590
418 | 416,0.03565607097078720,0.9079656270974450,8.489355492176180,0.18130027611980300
419 | 417,0.08389803092822910,0.5106592743997180,8.237975428472190,0.0944758732876644
420 | 418,0.001,0.3727071256145440,7.6456704580041900,0.15136813082284000
421 | 419,0.001,0.27935157979805800,7.643924020234400,0.09025758462936130
422 | 420,0.001,0.15292704985563000,7.461999162805870,0.07033361160978870
423 | 421,0.09390561338739850,0.2963571622888950,7.760238879085460,0.011016395372078600
424 | 422,0.04367257087151120,1.2283733567875300,7.9049775826071900,0.34928493257543500
425 | 423,0.001,0.6078434878806530,8.450915074487980,0.1356450529336400
426 | 424,0.003973915096206480,1.8114427030492500,9.393880613340200,0.8922792141645200
427 | 425,0.001,0.4890797970169790,8.467622293518420,0.14396524300944800
428 | 426,0.34390721330019700,1.8814371788379800,9.076921401520120,0.7290083835930050
429 | 427,0.07861222506250640,0.4473035561384870,7.308083604302560,0.16844370719384200
430 | 428,0.001,0.11970284358560900,7.4692356786774200,0.02124453285594500
431 | 429,0.001,0.5722476512581680,7.670563912962260,0.1143341186435300
432 | 430,0.001,0.5567377214215410,7.413048047115660,0.18266367096939500
433 | 431,0.055345886709319000,1.6887507002934700,8.43702908809428,2.4639137419835800
434 | 432,0.09171877369075930,0.8690874496867910,7.905943564468230,0.470981872167435
435 | 433,0.001,0.683801681088497,8.562927415049160,0.2934503977628390
436 | 434,0.001,0.7110208683123370,8.396872453585420,0.30557581503053200
437 | 435,0.001,2.1479311907461100,7.7599595665567200,0.7470139456207170
438 | 436,0.001,0.9731442330737950,8.371058470411890,0.9213628611817890
439 | 437,0.07007048981622800,0.5807692290146390,9.036114313021460,0.18288812162155200
440 | 438,0.055453618758658300,0.4983609347850020,8.177226217860930,0.1941211081940290
441 | 439,0.3800131153365950,0.3543642034533910,8.032217384131430,0.4150100172688710
442 | 440,0.04162525935004410,0.5198660743796450,8.686533321201410,0.4727143798344450
443 | 441,0.134608821521205,0.9987624639127530,9.07761088543451,0.7440988024022440
444 | 442,0.06785499938768430,2.890326725307350,8.465343982529050,1.2735791818632400
445 | 443,0.001,0.3942541168348030,7.2821079463807700,0.1913223273783620
446 | 444,0.001,0.6245185651291130,7.615064781607020,0.22016384197896900
447 | 445,0.001,0.5369751613493040,7.413714827875420,0.10624300630242600
448 | 446,0.16199908262169400,4.999622928126540,9.38416281431468,0.7456707628018910
449 | 447,0.001,0.35976360287325100,8.46334777949795,0.5688679040236620
450 | 448,0.07640242677150280,0.4080208639309850,7.8161741570777200,0.04250819910934180
451 | 449,0.001,1.8246437607260500,8.457864406209070,0.5568495180276610
452 | 450,0.07537713008786560,0.5014047141502400,8.343824534683450,0.1914773917288480
453 | 451,0.0227708717408162,0.4259843520047310,7.606608241440400,0.08121541093060200
454 | 452,0.7270297036868630,0.14706178313803700,9.284147885551020,0.04004973671998550
455 | 453,0.4555151954739760,1.314780270691920,9.329399677468100,0.6867548761787990
456 | 454,0.15540208962315100,0.4220829033725330,7.88843343829887,0.3810003902174080
457 | 455,0.8894747562916010,0.8404211037443300,9.224835689959840,0.3667201678842520
458 | 456,0.7466768836506860,2.1723521274632500,10.454121834397800,0.2677042295627790
459 | 457,0.001,0.5558256827175320,8.101480796494090,0.13608469163646300
460 | 458,0.07730593701847690,0.7063448190493040,7.7162324596297500,0.486593684989642
461 | 459,0.001,1.2204632629164500,8.009324186554800,0.4008173347613930
462 | 460,0.32406580837977800,0.7921802787108550,9.270086815508130,0.6948859530329880
463 | 461,0.001,1.2559426805709800,8.315634039762110,0.9120150382425890
464 | 462,0.001,1.6340753868151700,7.9984411533595300,0.31878314231921400
465 | 463,2.162638965445210,0.20414621890522600,8.923122122389610,0.010214470552512700
466 | 464,0.3089837977199730,0.3781757622035270,8.03514913637994,0.1114868338163790
467 | 465,0.001,0.8936953722139670,8.566729538752060,0.35934417867620700
468 | 466,0.001,2.046175540431720,8.280354897617840,8.084854527161630
469 | 467,0.3325231844216290,3.4655741900506200,9.404269406202520,0.6713406709312940
470 | 468,0.1602212086757040,0.953683498671803,7.757769831993610,0.16920188953803500
471 | 469,0.15583083651208600,0.4855386193003620,7.351772821266920,0.11105548919567700
472 | 470,0.001,2.5797599200503900,8.219119092010750,1.3560911614234200
473 | 471,0.017179781318072400,0.9283677518933240,9.201053695605320,0.6397404640000760
474 | 472,0.001,0.6396512872060950,8.572272451103170,1.2957277708441400
475 | 473,1.1145419432389200,0.1458230873644040,9.851508590879510,0.05265197228768440
476 | 474,0.006440433949347170,0.6503853949629360,7.968120948731730,0.21422587825724000
477 | 475,0.001,0.4791945433983180,7.899549685177700,0.16057044254886300
478 | 476,0.001,1.2109742582867100,8.146724197893600,0.6127466342219750
479 | 477,0.449662737687284,1.7032094532682000,11.187689565880400,0.1715262443672760
480 | 478,0.4465135820552530,1.5772450464782600,9.147414862713640,6.662884917907050
481 | 479,0.28486922186076700,0.3151304723234190,8.025074393654980,0.14278560167341100
482 | 480,0.13822151648151900,0.8468733317595610,7.766770693700720,0.4759135678469060
483 | 481,0.001,1.7034801376809900,8.431505975787690,0.9799060308142680
484 | 482,0.001,0.5312719674022740,7.845582895141330,0.13049112388658300
485 | 483,0.001,0.5688480920716230,7.655419156646450,0.0331580802406588
486 | 484,0.4592319413424820,0.6857764951024430,8.270911599553240,6.0736039299780000
487 | 485,0.12731577160402300,1.0435370714257000,8.532336472011150,0.8313574644414470
488 | 486,0.012446653855120400,0.969032674371486,8.731905735506950,0.5662735288005880
489 | 487,0.0581933355946444,0.4301047276128560,7.4723589559283400,0.0831421903990241
490 | 488,0.011882602607600000,0.8842230374313240,8.004422112392680,0.382479994210484
491 | 489,1.2495188804625700,0.5131919909586330,9.564829655473040,0.1665990960591660
492 | 490,0.4162251133363480,0.15594863614995500,7.8473266071266400,0.011790142917503400
493 | 491,0.001,1.1547184591967500,8.350765068727210,0.3652675478286600
494 | 492,0.006837148057884080,0.5775418027822710,7.509487606778940,0.21924939303129300
495 | 493,0.05287529722408730,0.09878190099888520,8.38367267126415,0.029694574149004600
496 | 494,0.17329565312671400,0.1739601927112450,7.4470486903249,0.1147641111710720
497 | 495,0.0903914107363836,0.8432502626166110,8.479877534119180,0.2115411261886640
498 | 496,0.04715595326896220,3.0095198267986400,10.294133680868100,0.34077034599706900
499 | 497,0.5582771949501430,3.8396674625296100,9.231103305503990,6.284643499734920
500 | 498,0.2866799430035070,1.6107999968044800,10.56352033373780,0.29446847057169400
501 | 499,1.0745117211548500,4.581962618471400,8.540057481340270,0.014433126235016400
502 | 500,0.001,3.267098257266250,8.118793792209780,0.5004457312468430
503 | 501,0.15955527666276000,0.93491678104971,7.22696205853792,1.0336899266824600
504 | 502,0.0020263072275692200,0.7829376149667570,7.872419812106320,0.19399986858046600
505 | 503,0.5747701539153610,0.1660242762052690,8.142824551640940,0.06238059358551230
506 | 504,0.36378859835196800,1.3197513242101500,8.894658067906910,0.1522116722598860
507 | 505,0.0009766533410666050,1.118543723142350,8.577766992316420,1.4938668824511200
508 | 506,0.001,0.12540852667614800,6.925243112565970,0.01363024473071490
509 | 507,0.9494854282955990,0.12267216694500400,7.37320026367252,0.13188396252667600
510 | 508,0.043052462154203800,1.2760502016842200,7.733196810232040,0.7828168441713930
511 | 509,0.001,0.3096287976929510,7.9133405139808000,0.026301168955933300
512 | 510,0.02414631329525010,0.9836362587042460,8.358289658366150,0.10393965111200700
513 | 511,0.001,1.8018373414700500,7.9707960620629300,0.7212665589608500
514 | 512,0.04140323928075990,0.5360214928850560,8.199567487633220,0.13371540579818100
515 | 513,0.4216482464687510,0.606938796177759,8.102283367898570,0.6069527471654560
516 | 514,0.02637658443611060,0.601464375321553,7.596920055764700,0.24393276539653000
517 | 515,1.0013555884180700,0.5617750357230670,9.77317505070717,0.1927111354264920
518 | 516,0.001,0.5633649421467410,8.661592567617230,0.17077208139598000
519 | 517,0.0011563159560906600,0.5863498972375320,7.466742265269440,0.1792281911013740
520 | 518,0.039878324362374200,0.7605787741037410,8.191808612720920,0.4693571388116320
521 | 519,0.06032096375122810,0.4970082320939670,7.655113644625170,0.016582773373447000
522 | 520,0.001,0.5375295350036090,8.535362926535580,0.2327544512569010
523 | 521,0.001,0.9797560243990340,8.029219481144380,0.27515071697781200
524 | 522,0.12416572939631900,0.34710478308433500,7.795624398977420,0.16590409664158900
525 | 523,1.4257867333542600,0.07892632766305680,8.291252895069130,0.02494827820534250
526 | 524,0.3776983695288950,0.9826523401131410,8.990996623850870,0.21651391974872800
527 | 525,0.1750057478201330,0.9198183612973410,8.054270703946200,0.3600882468588980
528 | 526,0.10105967855613700,0.8239452925759380,9.018640249717580,0.4638050739617870
529 | 527,0.12623230048476800,0.7383162785087740,8.648177570757990,0.3425647334480920
530 | 528,0.5119096582440150,0.8506431858580890,7.948816588964670,0.4847831846006350
531 | 529,0.001,0.3904430573929580,7.341864427052300,0.05201328566392500
532 | 530,0.02267271953082170,1.9174745976753300,8.320142164064560,0.8754189357754640
533 | 531,0.30837344101170300,1.0851626361077700,7.734065225533740,0.19793205318115600
534 | 532,0.001,3.437136108186130,9.096130767252850,5.025995690283830
535 | 533,0.21425905653840500,0.7405512534204250,8.795874381342270,0.21997303707680500
536 | 534,0.12182357509027800,2.265298075128540,8.923179603219680,1.4893430284326500
537 | 535,0.8160690617996300,0.05092309814091620,7.438675462638390,0.03143313076223490
538 | 536,0.045514692690163700,0.8049186628878340,7.582169306682070,0.33511115241035900
539 | 537,0.026460943698042300,0.8268396778447200,7.9016756184647900,0.31559378988561100
540 | 538,0.030669637461190600,0.4267122368798460,8.382969550339900,0.16671813250163600
541 | 539,1.1451191202032500,0.0817546469750542,9.453994122458440,0.011205689639090900
542 | 540,0.6946390209598310,0.1024342099495040,7.939615066066630,0.011270456586570800
543 | 541,0.001,1.3049008636815600,8.596873261634960,0.7284673695796190
544 | 542,0.001,0.3827743549048530,7.792941615026690,0.1125118301654350
545 | 543,0.5374758964866480,0.2031746811993540,8.618343549695280,0.05077753161674880
546 | 544,0.006184865306417980,0.10624782543530800,7.78209146436557,0.013643178322810700
547 | 545,1.0182686513504400,0.07767777516856990,8.10473223125327,0.010099064821294000
548 | 546,0.001,2.5657477020110900,8.143555043117010,0.5343056152043960
549 | 547,0.09652041184991000,1.419422506683590,8.743406833116710,4.479241287118430
550 | 548,0.6501981182073290,0.3840848329945060,9.139695207533150,0.3301699325340130
551 | 549,0.001,0.4513185046970440,7.382833537769610,0.12657776269179800
552 | 550,0.003841668345635600,1.9925473125849400,7.897520796686470,1.594628876399970
553 | 551,1.5579590831393300,0.08468444622181500,8.507977034297500,0.3756052293779190
554 | 552,2.7371687089961300,0.1349123113396900,10.398128594216900,0.010315621219392800
555 | 553,0.05140796571770780,0.36575373843319100,7.5954734911890800,0.10488356623105300
556 | 554,0.36975858250542100,0.41143282305176200,7.793148835456270,0.022209201844546000
557 | 555,1.868777328486110,0.06877354817691790,9.954741350113160,0.017000436753812900
558 | 556,0.08547874802763940,0.4348089804548930,8.569261406457770,0.2422268119580020
559 | 557,0.062238678765484400,0.4880039303002500,8.969736620503980,0.15216146324758900
560 | 558,0.001,0.7581323984969650,8.060548038712010,0.3144944484205710
561 | 559,0.08343591874808580,0.1895841128030990,8.056613199918610,0.03836270093552200
562 | 560,0.001,0.35366181207234700,7.797324934540030,0.01088454825630670
563 | 561,0.34788485038951100,0.7592240841253810,9.321413079725410,0.4182016304469000
564 | 562,0.04393647502067790,1.1916509095691900,8.197945524592100,1.0454439270808900
565 | 563,0.001,0.4893730150461230,7.979295808197740,0.18378109034938500
566 | 564,0.001,1.1500725426515700,8.654231090121900,2.6213317404155700
567 | 565,0.13499247767450800,0.4761820261645220,8.557905824747460,0.08515051235022770
568 | 566,0.23407516795917000,1.013087610623950,8.418576944397990,0.2434768337924990
569 | 567,0.001,0.42347362625867800,7.64956087330059,0.10085557406073000
570 | 568,0.6284523834049400,1.4772670816504200,9.594782034189810,0.9905344607323990
571 | 569,0.1116686006042870,4.037137232008540,8.86011055593758,6.221922794421650
572 | 570,0.003982659598340710,1.5016805195503300,9.212031173616170,1.3621968730403500
573 | 571,0.005091131676387310,0.9691616342979720,8.067413421691910,0.4513732004082180
574 | 572,0.4167089351553420,0.8117805908810130,8.727286229852830,0.2307801774142880
575 | 573,0.05503719772516520,0.16572619535401400,7.0882663777025100,0.16554525873126700
576 | 574,0.001,2.558951792926740,8.761856205106550,0.7731025432740940
577 | 575,0.001,0.07789849222426600,7.277405073297420,0.01037463581061210
578 | 576,0.5302743708411720,0.8051205159522340,9.399288932261340,0.0825671897187547
579 | 577,0.21284207215548900,0.34897928066074300,7.938857439800350,0.12761256130957000
580 | 578,0.001,0.6320663752801590,8.092156345404540,0.6070699725832860
581 | 579,0.07276551661322300,2.771188222177800,9.869726734112230,0.5771834036642390
582 | 580,0.20733460302136700,1.4085409125193700,8.338877382027,0.4710352562724940
583 | 581,0.2879229029590850,0.3069396715915120,8.018855488523840,0.2256254724453690
584 | 582,1.5450655293236900,0.3908879484222580,7.282275528373720,0.014449219104355900
585 | 583,0.1085778049509920,1.9263265608385000,8.274726302201650,1.4318935613467800
586 | 584,0.08766875151543370,0.5871186225150800,8.156958830987960,0.1840395704440060
587 | 585,0.001,0.4746857439103260,7.8887583489841200,0.1426443797420750
588 | 586,0.001,0.6743607719457240,7.569760043561500,0.19039169625372200
589 | 587,0.045204053629976900,0.27889410135753300,7.473853996579150,0.12512833876557900
590 | 588,0.10794883389224500,0.461338849745856,7.736018962908800,0.2143117846441630
591 | 589,1.222190345687890,0.16574130930275300,9.249149446304700,0.01106560524288650
592 | 590,0.04925661197165970,0.21811578947034600,7.426459997646940,0.12158223939898300
593 | 591,0.09694831642985030,4.720604303892420,8.800791811904780,0.9984819051356890
594 | 592,0.001,0.9504178110709350,8.012082448095510,0.4944946362530530
595 | 593,0.14282890775140300,0.5417652582997180,7.649689018884680,0.3531194179435630
596 | 594,0.001,0.22450288413799600,7.71618874253237,0.025614802435585800
597 | 595,0.001,2.6374938446230500,9.308033082662450,0.9027093653570930
598 | 596,0.001,0.3623287100106330,7.339540591441510,0.1401782814970230
599 | 597,0.7897622926752850,0.35197959953748900,8.359686693592900,0.027901922366327100
600 | 598,0.3511860383617230,1.3977317885949200,9.597801234203030,2.3224561672761000
601 | 599,0.001,3.0674413061823000,8.735528916604170,1.2056528876247200
602 | 600,1.1893810302053300,0.2276414494269960,8.21856673177736,0.934499821477628
603 | 601,0.3958729526870350,0.7681304576922000,8.174257431267760,0.11978453856682900
604 | 602,0.001,0.2697012991792440,7.8187224997489300,0.13968437753851100
605 | 603,0.001,0.059460718266981200,7.291976805470940,0.02527206759031420
606 | 604,0.22956662347432700,0.7450985610632000,8.622312202175500,0.2899796521308140
607 | 605,1.1084288968039200,0.5349215355425990,9.53327652633724,0.07336633072607050
608 | 606,0.7467878085913320,0.3481754509566310,8.79576486394549,0.16140985211136400
609 | 607,0.0736567608776751,1.0162249348513600,8.669997363513520,0.9356179764129750
610 | 608,0.02427679564778570,2.439798780553600,7.874220213522290,0.7372734666635980
611 | 609,0.001,0.3484642584805030,8.055156010868490,0.23209974465670800
612 | 610,0.32604494013470100,0.08073605955754470,7.596633169949020,0.010844659180684400
613 | 611,1.190125672068400,1.066041137567550,9.565066222178780,0.5906141666191480
614 | 612,0.28857238521799300,0.20337855411665400,8.846583352615070,0.09305099867569360
615 | 613,0.02542257042471730,2.081636416044590,9.637407519617270,1.0677826391916200
616 | 614,0.04524749259793780,1.7292045314341300,7.5590624118058800,8.243156103856110
617 | 615,0.001,0.4626431540800120,7.666052241135720,0.1775834559945340
618 | 616,0.001,1.2848669588449500,8.095236269091450,1.559238165361190
619 | 617,0.963346261300394,0.3044543559466820,7.680175201819140,0.10213664800787600
620 | 618,0.07599193401808530,0.3587227457261780,8.039425105461860,0.01284386075006680
621 | 619,0.028216416640879900,1.1176236705085100,8.397274801103440,0.1848773525814730
622 | 620,0.14677741509167800,0.167243407521607,7.214917686928330,0.057122079747959000
623 | 621,0.001,0.7822509494542720,8.328919231342380,0.17361700405859700
624 | 622,0.19580301564772100,0.6860108091376120,7.891026611585720,0.1417066420443880
625 | 623,0.001,0.6994871275356250,7.445342784732750,0.013837456574525100
626 | 624,0.029527646561991200,0.8611692174896040,8.154926995386360,2.19017314154572
627 | 625,0.5763460811088780,1.2142471556215500,10.614644829024700,0.05292452223601690
628 | 626,0.047504726664847800,0.762456137665536,7.943124421882710,0.18793182063098400
629 | 627,0.001,0.20495556198800600,8.415747459497290,0.1400286376427940
630 | 628,0.04207725789138150,0.4324776026239040,7.406421383508910,0.20773641797584900
631 | 629,0.6206499293063070,0.6683341471549950,8.061880170797650,0.3612603862859460
632 | 630,0.10324060522959600,0.3036330883903860,8.334237417646940,0.09179948150247020
633 | 631,0.4151582820456560,1.1461597744330300,9.091034645801330,0.3319838348802090
634 | 632,0.011283877429557900,0.6745032628092400,8.430182324060530,0.8196026954259360
635 | 633,0.06090820967931710,0.3750732057629770,8.301298771763170,0.18870141603775800
636 | 634,0.06961682097107280,1.9525751052637600,9.768547214189130,0.5368033909976400
637 | 635,0.07486784470832440,0.4445296406671020,7.579720084701610,8.712963134428910
638 | 636,0.3048783358025440,0.1336985021863850,7.4953517234142100,0.026559584720462900
639 | 637,0.001,0.31949619282283200,8.234958549561480,0.5594934519542560
640 | 638,0.01104734862640170,0.7178685514375740,9.097142990175090,0.3036850660274640
641 | 639,1.1351474248727800,0.12810500142290000,8.655023587149390,0.014774187307995400
642 | 640,0.06803203967245570,0.5141056894964890,8.001841733574720,0.18452921714868100
643 | 641,0.03874870109830640,0.050975787783426400,6.601553708732250,0.012001362848691800
644 | 642,0.2787639349096890,1.2051910291261700,9.270956483610580,1.1007329930392700
645 | 643,0.3638421346701570,1.0465112956465100,8.660452383471670,0.011293280338332200
646 | 644,0.001,2.0491737791405500,8.557236826293150,4.60998292587793
647 | 645,0.001,0.0972780762290826,7.474053828308550,0.03636951392582980
648 | 646,0.6617530433676640,0.3762308045303290,9.18592747356613,0.4403082627205240
649 | 647,0.001,0.403263734965896,7.399753386260830,0.061555965004443000
650 | 648,0.001,0.5654612183959780,7.943007096329760,0.2283064631542690
651 | 649,0.001,0.2543520901526170,7.111429213064,0.08535919994951510
652 | 650,0.3627792412777120,1.2488138141451300,9.121721809379610,0.3670266129656240
653 | 651,0.13866516581375000,0.941549257258102,7.827270745621420,0.30064160049844200
654 | 652,0.1501651416656120,1.6086127063902500,8.715000892791300,0.8247572644262840
655 | 653,0.001,1.3789920923748300,8.045160462108460,0.4735122428000110
656 | 654,0.001,0.2461024915349960,7.1586861732853900,0.10573719628836500
657 | 655,0.001,0.4279699454240740,7.676011339864960,0.15299860393844500
658 | 656,0.3113753447594340,1.6509597701285000,9.520900000024340,0.7086743603729090
659 | 657,2.4746492447714900,0.08713578599374220,10.559775266667800,0.013880550431408100
660 | 658,0.18390206418218000,1.1269183636610900,9.568175978590870,0.6201658178211470
661 | 659,0.07263214520757460,0.3372301999118680,8.64335764454475,0.07076292928675020
662 | 660,0.11928984703231900,0.420665024362204,7.715098999323300,0.35579691561133900
663 | 661,0.13829285769504800,0.1615731149396550,7.267572356309940,0.023301604840262100
664 | 662,0.001,0.4860238674540040,7.3649806056195300,0.2639558577825660
665 | 663,0.001,4.879981222109680,8.091283135208920,0.010075932815478900
666 | 664,0.23932341534720400,0.69970840491522,9.516730579754540,0.2297582410906430
667 | 665,0.5023022795211280,1.007295354161030,9.49904798316784,0.4889939498222970
668 | 666,0.001,1.4168639547842100,8.595698788505500,0.491782016071825
669 | 667,0.005501776231570930,1.4331783814447600,7.825195069486890,2.180576709247620
670 | 668,0.018264167679645800,0.108741141130101,7.427595288989500,0.01721797212114400
671 | 669,0.20656844950099400,0.5039635878855570,7.726712501684130,0.08034856595202290
672 | 670,0.11211133053360600,1.0378120357487300,7.707945636610020,1.3646161382593300
673 | 671,0.001,0.3941892327567000,8.184029096953660,0.1076440934663320
674 | 672,0.06380530483189110,0.5832019294471470,7.937990498197350,0.8850355649690040
675 | 673,0.06480627581866620,0.32151958870411500,9.010949486587350,0.09475113817139460
676 | 674,0.001,0.33288892977603400,7.552549153458490,0.09753412763054660
677 | 675,0.001,0.3337882826435160,8.107704054973880,0.19418932742510800
678 | 676,0.001,0.4225940204728550,7.816659172912750,0.1891405813877310
679 | 677,0.17578404064261900,1.6702867070108700,8.292117348134170,0.7107810316021310
680 | 678,0.05500678442319040,0.2992830172618030,7.701696711939550,0.13249254829594600
681 | 679,0.001,2.212072256536310,8.177863158919190,0.01751173839841810
682 | 680,0.001,0.6321958165557860,8.178880142757240,1.7494399559076800
683 | 681,0.19006875663496000,0.0933471587588542,7.875423453880300,0.021086774226809800
684 | 682,0.6425342795049560,0.21873460634419700,8.513317855244990,0.116800281584526
685 | 683,0.04688783174185340,2.085395752569170,7.984125597871460,2.5591468463891600
686 | 684,0.001,0.9592720586383450,8.699106485841250,0.6893061333133370
687 | 685,0.08404618369783570,1.3466451502167000,8.025280895183120,3.916022041547370
688 | 686,0.2680480955768570,0.5614942790358700,8.779944914865160,0.34790250410959700
689 | 687,0.001,1.1238595486001800,8.625775864000870,0.370771855257416
690 | 688,0.001,0.2932787030969290,8.009677984286850,0.16570496673264200
691 | 689,0.001,0.2519032753541430,8.008002358343220,0.17185057121203500
692 | 690,0.13530229593780500,1.1968513338505000,8.361487299216950,0.20905590986199600
693 | 691,0.09169451892623120,1.9473910234642800,8.957932312792410,0.3939324851329420
694 | 692,0.001,0.4237161222856080,7.556578914872070,0.3708471759459440
695 | 693,0.2714158990584610,0.8352964459235730,8.825852431257830,0.2635744608182590
696 | 694,0.13598768741720100,0.4447009514108970,7.337196225272660,0.16443764819058900
697 | 695,0.001,1.3571472746910900,8.3323812554855,0.6536119162525580
698 | 696,0.27688696871596100,0.9080322882450900,9.458434611052970,0.3992078471684880
699 | 697,0.053143263974602600,0.19630202777195900,8.482197288411680,0.04844502106439690
700 | 698,0.001,0.3752936178673780,7.246927600030050,0.19799659027491800
701 | 699,0.040689424622873900,1.9289521020806700,7.804061386464260,0.8013386013860850
702 | 700,0.0405879732701441,2.649980662870250,9.345971616350440,1.0202408589794400
703 | 701,0.001,0.5055692925069440,8.048857337128410,0.16764088740841200
704 | 702,0.40032402949141700,0.8570704834941330,10.299105826345300,0.12898436857465400
705 | 703,0.09057889052539170,1.1369075140148600,9.075517870303720,1.837658606237230
706 | 704,0.9584146802364250,1.7740979960228400,9.566099498726040,0.4847461938079180
707 | 705,0.4260884615810630,0.7559951959827100,9.3104582291642,0.6900991453629240
708 | 706,0.001,0.8840120805670090,8.846224597870620,0.3599209143258550
709 | 707,0.001,1.8775954551378000,8.775747317328760,0.7552853102669410
710 | 708,1.197275703161260,0.07733186013149130,9.748431208635170,0.010176055935843400
711 | 709,0.001,0.8742489961423430,8.133539210169730,0.5598175523191320
712 | 710,0.03521536695319570,0.3519571589239600,8.250762758521570,0.1549447571475510
713 | 711,0.001,0.25414433257661100,7.539677706830930,0.7916793866843700
714 | 712,0.17707480811938900,0.527613416681065,9.0769776284541,0.13762004331363600
715 | 713,0.001,2.086893468052480,8.593153272604610,8.104004538011040
716 | 714,0.001,1.4023742715562500,9.032283797526930,0.496303903016218
717 | 715,0.09218858750636760,0.20552110224195700,7.575624939034220,0.08373626060738820
718 | 716,0.5720712355516510,1.5589469120611700,10.736205637568800,0.17154993504693000
719 | 717,0.1519177326941040,1.188464665678130,8.758679974922360,0.1552892481120410
720 | 718,0.16265235350405800,0.10571643319451300,7.572194440474110,0.030824791194687600
721 | 719,0.9046617740394310,0.26767867644101600,9.559363456510600,0.1914964776928080
722 | 720,0.013638550957427400,0.918995266063874,8.195843764610360,0.7247841129683400
723 | 721,0.001,1.1109529498483900,8.37623162716707,0.5517824903963080
724 | 722,0.001,2.4875890155142200,8.3693007321187,1.4515718143362500
725 | 723,0.04521839572914920,0.8634661825870900,8.277515291731290,0.2670900522576810
726 | 724,0.001,0.6273809604229600,7.743859024191880,0.4816732824169880
727 | 725,0.001,4.041753331321540,8.38379292575179,0.011689164930041800
728 | 726,0.3136553408395830,0.20062719525455100,9.2306130002141,0.05815531480239230
729 | 727,0.001,0.2823875645438030,8.345815661628750,0.11374640135893100
730 | 728,0.1535950308488370,0.5154508863476410,7.707146544238490,0.2503964434851650
731 | 729,0.010306962500866900,1.1725922356844800,8.347948123066410,0.266442836159483
732 | 730,0.3130975193941950,0.35278028685892200,9.180179752676450,0.16753421203530200
733 | 731,0.6451284393919630,0.3734764675133560,8.320582992551900,0.0727264427752638
734 | 732,0.7051344679503950,0.7327765375676160,8.483550893258080,0.17814592678378600
735 | 733,0.011094525210138600,0.7495604576757590,7.969730643682640,0.24706017343693200
736 | 734,0.07135037131334980,1.6944689922680500,9.652757068542220,2.459698257378530
737 | 735,0.4032332975988830,0.4000037822431480,8.974145619615140,0.1535935576224230
738 | 736,0.001,0.41058895657529600,8.38862631662786,0.21144767068979600
739 | 737,0.24705732678089200,0.9375832681207120,9.21344105253162,0.5037715374671180
740 | 738,0.06729781379872570,0.3404433844916250,7.47417312744864,0.13646299051085100
741 | 739,0.09765682825750200,0.3170265687940850,8.042770825943870,0.09212055512334490
742 | 740,0.001,0.7176719386489700,7.914841468372950,0.3316309735529360
743 | 741,1.494174621703530,0.08922230009635560,8.51301878007556,0.37592431137377600
744 | 742,0.001,0.6423975238563010,7.80793119811882,0.023977890048486500
745 | 743,0.3709494943152050,0.38661711207385900,8.552014986664470,0.30434888716741600
746 | 744,0.023703829290238600,0.6556147378961160,8.160742206827580,0.17834209314051400
747 | 745,0.2054877558274760,0.4562022751767090,9.242012449247870,0.18048015423119700
748 | 746,0.001,1.589207202838980,8.497351871046200,0.8727464021883900
749 | 747,0.1646289637483460,2.527579614482720,8.320570142416630,0.0570082130783829
750 | 748,0.001,0.8781671538656810,8.646965381243880,0.4833951073139250
751 | 749,0.06403962695491700,1.7138747249876100,8.653730250625580,2.163054571914060
752 | 750,0.001,0.5079055932529140,7.626339592375100,0.10530399503842500
753 | 751,0.25177762058265200,0.797560587023176,9.624463012793070,0.20675199157460600
754 | 752,0.001,1.6595313864051500,8.068796400900050,0.5825157506214210
755 | 753,0.8468184348524760,0.08238438528319,8.343652307325920,0.010409033164152400
756 | 754,0.02030901830019710,0.3320270632634480,8.266054676488300,0.1678335109779520
757 | 755,0.0753882826054028,1.614975472950840,8.322192333705430,0.6518976661847220
758 | 756,0.001,0.8328370352784920,7.792281745284690,0.1151616447539190
759 | 757,0.001,0.23086104575193900,8.61224533119873,0.1793587942658680
760 | 758,0.0551081656116094,2.918705474201010,7.94971237504894,0.8730532345258410
761 | 759,0.18872748573077200,3.3913254716652500,9.219462468583490,0.5645165060536170
762 | 760,0.1607285581527520,0.3385688696222330,9.093987583566680,0.1212062506066950
763 | 761,0.001,0.7566013276974210,8.291409017364560,3.0543173816269600
764 | 762,0.08855100033360640,1.9671361504323900,8.866943829266040,0.914510772525144
765 | 763,1.2421971469528300,0.06670813266011740,8.187738550910630,0.02756074485628600
766 | 764,0.001,1.6203744753213500,9.374126854916900,0.4309080731748420
767 | 765,0.001,3.7852792786452700,9.099724605425740,1.7198660431076700
768 | 766,0.001,0.09646406155655690,7.6427372961888100,0.01289191444459760
769 | 767,0.0061370622615800100,0.17790727743571900,8.057746256476370,0.10404415173585900
770 | 768,0.14587794385641400,0.9938491706586470,8.329724215293120,0.3757736538694940
771 | 769,0.8160715306842370,0.19352755042398600,9.110346184339940,0.011244780623174900
772 | 770,0.7532543514592350,0.09625318399746870,9.455000583133270,0.01720846880879390
773 | 771,0.035575308904760400,1.2035402910417000,7.986190059142230,0.7974469318269880
774 | 772,0.02779354526100830,0.5222259276567420,8.637827468954950,0.2454529556845490
775 | 773,0.0286627019200556,3.0698835256047400,9.037362830916790,5.582347328707320
776 | 774,0.001,0.5144842581474300,8.017122954888830,0.2942999914365280
777 | 775,0.001,0.7347997434693770,8.136293847271550,0.3897181732034070
778 | 776,0.03706552729070800,0.20867332911434400,8.183571964184310,0.0896091540538893
779 | 777,0.5142896108651140,0.7365760565418260,8.387343523422990,3.5079749559664900
780 | 778,0.2955218572708430,0.5841452017464740,8.27775807919734,0.13440470333350700
781 | 779,0.001,1.4516540393386600,7.777898802318380,0.4323217514969840
782 | 780,0.8161570778949160,0.2967396818227050,8.383034327256840,9.90963286598362
783 | 781,0.1526945411156650,0.5672854830398930,8.743037752604370,0.3034528231999650
784 | 782,0.09910090521742040,0.840642445310615,6.9820060918621900,1.2349600199379100
785 | 783,0.19691550900837700,0.5932845987907940,7.810841576548710,0.5509286691725080
786 | 784,1.418673239964650,0.9455692963057070,10.473275710221,0.2138013702964890
787 | 785,0.03714954312071680,0.3022324060787580,8.177924788152330,0.09266847059522700
788 | 786,0.001,0.41703002685173100,8.323069699975980,0.08657367982026830
789 | 787,0.001,0.6608994850072290,8.418292317585030,0.2617354514416470
790 | 788,0.001,0.12598714757467700,8.300536605246280,0.0719087699323686
791 | 789,0.1370056901121730,1.2210606345336100,8.151438339876920,1.0229611240669100
792 | 790,0.14042231746285900,0.6708277119870660,8.482757642418900,0.9355360201160850
793 | 791,0.02666366016792540,0.947205023639884,8.314775732894350,0.4851396620507440
794 | 792,0.001,0.3728620426407740,7.819576712396470,0.12001284851523900
795 | 793,0.001,0.5906127781995640,8.07069238291811,0.4827240900228260
796 | 794,0.001,0.5168529011812230,7.739177917142090,0.16619739311962100
797 | 795,1.853762650629860,0.09897605473180540,10.514345288943700,0.01350384002467890
798 | 796,0.001,0.3672229390961720,8.238837254943300,0.2317141250500170
799 | 797,0.417148262881506,0.9524361167951540,10.588943327915500,0.09090513286582120
800 | 798,0.014645018710859800,0.13307354535942800,7.272220671166980,0.010166599231119800
801 | 799,0.020999319971135200,1.5842179192873800,8.74878322538631,0.3490375799625710
802 | 800,0.001,1.7832158681810000,8.207512695864190,0.06596060657024360
803 | 801,0.021287632656456100,2.5315561076117700,7.705120900793930,7.16538614974618
804 | 802,0.001,1.5919344411305,7.773010422876470,2.7890576500743400
805 | 803,0.001,3.5373645203256200,8.643261568296500,8.988738831520980
806 | 804,0.09963337380487160,0.3363719418470290,8.286742056205190,0.052257252992248500
807 | 805,0.07745260942135390,0.21856365102954100,7.4266579697002200,0.06480571828472760
808 | 806,0.001,0.7119646968611320,7.998185060977140,0.26358693510730400
809 | 807,0.001,1.8824645832789300,8.628606561443430,1.1713314422259200
810 | 808,0.001,0.5714191680441810,8.654936955627180,0.16018386288552300
811 | 809,0.5501863619099400,0.22250681503359800,8.76088577487587,0.0440453873308721
812 | 810,0.19112085178553300,1.3443301277804300,9.04819760217334,0.7050395321792350
813 | 811,0.024629382202749100,0.3261139938112440,7.967990637359320,0.168395415086725
814 | 812,0.4613555588898600,0.522302694526637,8.062710049921550,0.28517859959224400
815 | 813,0.7913655014419880,0.2544556461800080,9.009017087824210,0.01530282021397780
816 | 814,0.001,0.5597520209087380,8.053777965379840,0.12124840189130800
817 | 815,0.001,0.3120509701765560,7.997679481949250,0.09801892877604390
818 | 816,0.001,2.175143402298330,7.844760193232280,5.106403224736200
819 | 817,0.001,2.371747767322200,8.452643574494510,0.7880112594177370
820 | 818,0.11887183372509500,1.001382285564470,8.915721137476830,0.5969844194135840
821 | 819,0.1055043681426390,0.08095119146488970,7.299743084915510,0.010716066052313400
822 | 820,0.4264566482393920,1.438132070367640,9.86110071353374,9.528510577091700
823 | 821,0.5627626177189010,0.7076896620542730,8.135914443576340,0.08062542289061250
824 | 822,2.8333146151593100,0.08355009209736040,10.069337497021000,0.010012890616460200
825 | 823,0.008830189356403290,0.3798822361309920,7.403437104658460,0.054528585012589600
826 | 824,0.3907138092602740,2.7767389299460200,10.351287828691700,0.4453742704725100
827 | 825,0.11857544355023500,0.16840234067697000,9.383570498501040,0.05031075243901150
828 | 826,0.001,0.09709463892037480,8.61220182088153,0.011662502259560600
829 | 827,0.001,0.08658577186879110,7.4136801411821600,0.03631550631888640
830 | 828,0.001,0.9292178378536970,7.7069577790141600,0.05435477200682810
831 | 829,0.27187263599308700,0.8926406092943300,9.224544671633010,0.5048138000749920
832 | 830,0.001,2.5398391237478700,9.48259334691916,0.9877775934947530
833 | 831,0.001,0.4116154099805510,8.479795528557130,0.1235079309324880
834 | 832,0.024717368536835400,0.546412982040136,8.123368212228280,0.08788600554635610
835 | 833,0.001,0.982262907245562,7.6784407549463500,0.2971822740830910
836 | 834,0.004765014915524060,0.2315805980899440,7.65470588061522,0.09828677523477000
837 | 835,0.043200004304214800,0.5546743609805990,8.359740281980720,0.1182056426309730
838 | 836,0.13158725177126100,0.3054901720446900,8.084749119807100,0.13824314601305000
839 | 837,0.18974153529287000,1.2166814127360400,8.06001938311789,0.011763449620426000
840 | 838,0.14897821916334100,0.3721007729693350,7.332221371445820,0.460807252180786
841 | 839,0.05782845048120000,0.3292817551686690,7.460304978136870,0.13306354333250400
842 | 840,0.001,0.1110031820852230,6.552172948336060,0.012967766161836200
843 | 841,0.001,0.1067139932504960,6.74513489972033,0.011501467415817100
844 | 842,1.0333731136741000,0.6557022785982990,9.960346888172740,1.9863985029518900
845 | 843,0.001,0.9422413235619110,7.393098778411010,0.5693972008201050
846 | 844,0.001,0.3041887338475320,7.845891985496960,0.224399075458582
847 | 845,0.02489717489638740,0.4021134436209280,7.688388757855840,0.10367527776323300
848 | 846,0.001,1.2641364741678200,8.80245776808159,0.3360923312646890
849 | 847,0.6366825621755590,1.3739387163357700,9.807401028674150,0.3093681719308270
850 | 848,0.14831078722196100,0.1360608715050920,7.687602432060790,0.09701237323896980
851 | 849,0.06731424691070820,0.521890471446948,7.930040530484660,0.2649001419242710
852 | 850,0.14286898418494800,4.156940506921810,8.814117396215960,4.657727754580990
853 | 851,0.09318466218348330,0.5936229581572880,8.45730244254113,0.15083018469275800
854 | 852,0.001,0.6192139887709020,7.291106224253060,0.3429497696671170
855 | 853,0.0003875176646367440,0.3811837575041050,8.00581815892476,0.08967927430064710
856 | 854,1.5655220884188800,0.06203909783546390,8.636582732149790,0.23776825987235300
857 | 855,0.11327697005699200,0.3291634674173710,7.3255602519732000,0.17941630503663000
858 | 856,0.1412283632968510,1.5586634092958200,9.324943409635420,0.7083572515348170
859 | 857,0.03560137740180740,1.3693774174669800,7.73696844571289,0.3411181210154220
860 | 858,0.5524163254570890,0.3262454378232400,9.524890868314690,0.13023533808893000
861 | 859,0.27221032879463000,0.6702286409563820,8.218858229894760,0.1860309566116280
862 | 860,0.035247535414980000,0.8968494056640580,7.498060504740890,0.16763214586724100
863 | 861,0.0969596771265278,0.4622045458499690,7.914175830650490,0.14468416189768700
864 | 862,0.001,0.2699813094785270,7.3657536738244700,8.696198882647040
865 | 863,0.6341683795759740,1.83096776415317,10.46589847168940,0.4248876928667870
866 | 864,0.001,0.6353358121022060,7.254206923487720,0.1131578406865020
867 | 865,0.001,0.7186958399475660,7.983416913240970,0.2747288743578260
868 | 866,0.11793888343323200,1.8544280824613700,8.10248112069009,0.3771047575154620
869 | 867,0.001,0.5602165637265470,7.51018998889783,0.15108937176917600
870 | 868,0.001,0.08314278940479350,7.599964785186350,0.028597512087823800
871 | 869,0.033838578455126900,0.41818437689570900,8.378083511724470,0.3663348402479560
872 | 870,0.001,0.2773169732326680,7.550377316304380,0.10060014412661100
873 | 871,0.001,0.6750822904651920,8.359314293013920,0.2087684200430440
874 | 872,0.1365429514302610,1.1612178283872700,9.05777678589554,8.725338826708990
875 | 873,0.055893402978332300,0.7283832847492530,7.824171765016690,0.17451302613734200
876 | 874,0.17174273345572600,0.3958217371168810,7.6992372788582700,0.3594034556193750
877 | 875,0.09371571691155270,0.9063253477074220,8.717486457591930,0.5954486121981560
878 | 876,0.08767404984285690,0.3282429330373590,7.689298386027680,0.27136705558842800
879 | 877,0.031062486425215,1.0227047010259100,7.747883825845340,0.6352134434777280
880 | 878,0.001,0.5158505162337440,8.097904832166170,0.1475779181676120
881 | 879,0.3981644823369160,1.030217334612920,9.25660038613345,2.3276238525056800
882 | 880,0.2755414641350890,0.9263551443113690,8.708889710985280,0.2948994770428530
883 | 881,0.001,0.28252676406632400,8.354010682839100,0.11146189292625500
884 | 882,0.001,1.3540154986421000,8.618565036579580,1.1244771677647600
885 | 883,0.20360494204671200,1.126450194530400,8.202924368472550,1.1731475731732300
886 | 884,0.001,0.3480749787977550,7.657934972275960,0.21528556245507300
887 | 885,0.11199488164682100,0.592747285741658,8.57761913231845,0.31094783610025700
888 | 886,0.001,0.3437990442120970,8.21097192727358,0.14645007925136700
889 | 887,0.07411316234121480,1.1650560798227700,8.394122829580890,0.22045890763563900
890 | 888,0.07443536358641870,0.128616450830824,7.172007624581210,0.09806431217303480
891 | 889,0.0049945384020644900,1.1414746439919100,8.70279024592378,0.2791832330087880
892 | 890,0.001,0.5610905097059470,8.370663740039540,0.3460843557453290
893 | 891,0.3155425948144990,0.4437610760562260,7.792211448064200,0.054966123167680800
894 | 892,0.1847357407126870,0.30559160406701,7.712343606165470,0.25926411696925600
895 | 893,0.001,0.607518629486856,7.857224072720630,0.17353269744369000
896 | 894,0.15577903882108700,0.8543566000058950,9.281772429718470,1.3461858799512500
897 | 895,0.5601442074315240,0.4937658339148540,8.018859424411830,0.1023034489299350
898 | 896,0.006707917521524360,0.5326507773020280,7.5549979218890100,0.17759008978118100
899 | 897,0.028034969946802900,0.6311848439570040,7.633020839887950,0.2866875209089580
900 | 898,0.001,0.5268308074825650,7.8207612230377500,0.3366470321749030
901 | 899,0.08622989428653610,0.22334309125445600,7.854612690430300,0.08498745977113820
902 | 900,0.029396478366481800,0.5865480679303670,7.808671788652620,0.21651754218798800
903 | 901,0.9726778379837700,0.05120665738843770,9.899943333247210,0.010299887463669100
904 | 902,0.02203742073428280,1.3978355923494300,7.9666877401346500,0.10088701163315600
905 | 903,0.001,0.8763477014829370,8.070016977431630,0.3318148831040040
906 | 904,0.001,0.7837104470430680,7.7907369752653700,0.2958294269437970
907 | 905,0.001,0.3541579395092400,8.145721784818520,0.1354961615780160
908 | 906,0.001,1.2254417057332700,7.776527793034990,0.5399904354316840
909 | 907,0.07687025342396380,0.1486586307637830,7.4188426827718300,0.01663851843033970
910 | 908,0.011783890905823100,2.2731092066583400,9.40173340452966,0.953366301821264
911 | 909,0.5406362654065060,1.0856582618384400,8.557925700323240,0.5628798669402390
912 | 910,0.508759982108505,0.06771990290785640,7.651041960535460,0.010053748153993500
913 | 911,0.18384981433795,1.1386305560508100,9.3778604991949,0.3849130915668350
914 | 912,0.001,0.2903496366817070,7.885155920926660,0.1103661953668750
915 | 913,0.001,0.4080288118250860,8.567560321470150,0.09721454041798740
916 | 914,0.03155120692092830,0.8498122610675710,7.862256661021540,0.250787987751403
917 | 915,0.08086253169985950,0.3916408218532510,7.9050527948797100,0.0993323041892084
918 | 916,0.062187070126420400,0.4558965656530130,7.672356489516480,0.06588006345526930
919 | 917,0.001,0.9809454111329710,8.640167271588220,0.6805383640095610
920 | 918,0.11133520454313300,0.3309549096974880,8.547246954558210,0.13439041882969900
921 | 919,0.09748433599891190,0.4188547171050100,8.147045215113110,0.0983858579495681
922 | 920,0.001,1.998020326611480,7.408773456989430,1.7026016712260500
923 | 921,1.3118174567158800,0.19072319844847600,9.368607225789470,0.02231661835209170
924 | 922,0.09615329676701230,0.6091499781378950,8.199960837505770,0.3462124803615340
925 | 923,0.4785619559035000,0.32585875018291200,8.438984242652650,0.2731345644289750
926 | 924,0.08059685781222340,2.333891643579440,8.65638456318457,9.114849411577900
927 | 925,0.12796372441838400,0.5540819922516130,7.861373016640150,0.1949323006483410
928 | 926,0.001,0.9215809659814070,7.634876214855870,3.630831284997890
929 | 927,0.09101205734344140,1.1440475687499000,8.453477249415140,2.2416224339305400
930 | 928,0.001,0.08034480830240810,7.268080616322690,0.031826981087333000
931 | 929,0.0815592833394924,0.5339885465297900,7.9360801934628700,0.13149156616793800
932 | 930,0.2890093312489350,0.5507061664281080,8.483527088873700,0.20967539418699700
933 | 931,0.30072843749510900,0.6538420678388450,8.856439917066040,0.36001203424800400
934 | 932,0.001,0.37901022244722300,7.945888471823270,0.7505622700580710
935 | 933,0.3305273783682900,1.1118652222778700,9.022386709023210,0.4013622820586240
936 | 934,0.09832227311780280,4.275386168053190,8.661478031960180,5.757433568533960
937 | 935,0.08970645401431360,0.3012095560954840,7.851954609053660,0.10412353457225100
938 | 936,0.001,0.3897038464393830,7.503456262144100,0.09580523198351500
939 | 937,0.08823253520826590,4.272998939993620,8.109542715210520,2.5929671591808200
940 | 938,0.06541036234501680,0.3977766624977520,8.48322949639396,0.09356232307593400
941 | 939,0.06465707803100150,0.2087751013648120,7.662040220708330,0.062363527310960700
942 | 940,0.001,0.6901181680124220,7.459823788756690,0.6565300435424850
943 | 941,0.03488615837049540,0.3035415575296860,7.966738102498590,0.16183393726290200
944 | 942,0.729556874990048,0.09870178071790240,7.794271344099310,0.0649211667999607
945 | 943,0.0013348109955239400,0.5522674175679870,7.841038960148040,0.18424471987845400
946 | 944,0.02417704764964560,1.2584645339271300,8.548112153245090,0.8443139587481470
947 | 945,0.1855433979445630,0.08752068434153820,7.884692895740480,0.02365313350953490
948 | 946,0.33602679981785100,0.10703861717387900,7.487865654883950,0.02819002029117630
949 | 947,0.001,0.07220267829024090,6.62865073565468,0.011098560224570800
950 | 948,0.001,0.9991635943508450,7.61551977294857,0.2407269044332430
951 | 949,0.001,0.6789437406347010,7.633197967310470,0.4150244726321610
952 | 950,0.09953358698893750,1.8483624520213300,8.134717976640630,0.9850266978390630
953 | 951,0.06195731182306600,0.32671392783670600,7.4939342057438200,0.026905302713271600
954 | 952,0.7340719271851460,0.059759549865443200,9.429601838550570,0.010370110790914200
955 | 953,0.5091650294054150,1.0948512611565900,8.179978542141950,0.02364065867874650
956 | 954,0.1755298775496860,0.4666293361280620,7.986176434797620,0.2986608654355060
957 | 955,0.0591680242176215,1.054119541035780,8.27514697348683,0.8939772853950840
958 | 956,1.3152338028835200,0.2433144483593220,9.498358969118710,0.05961925944764580
959 | 957,0.001,0.6123406467780580,7.723944292480990,0.13793854408645600
960 | 958,0.07697005906896520,0.8205770941305580,8.792471717512140,0.19800140566613400
961 | 959,0.001,0.5362792716062940,7.991284809380350,0.34885638965593600
962 | 960,0.0034476682909618500,1.4909294632171000,7.917219489006090,0.4974829674346270
963 | 961,0.15581048620586500,0.4037194855492100,8.099637522483130,0.22731348679906400
964 | 962,0.06833432393332700,0.4572648120747830,8.799170755883430,0.7961564053737080
965 | 963,0.2661567584727740,0.21316484502865600,8.078436798565270,0.030127997571068700
966 | 964,0.001,0.08976564507353980,7.219864476000850,0.015980244778582000
967 | 965,0.13013182421322800,0.8645960131579180,8.362796504639390,0.2743236562683620
968 | 966,0.20467217704921200,0.34442498337100700,8.312879523625820,0.07728253643267330
969 | 967,0.001,0.4702379618773810,8.01250140699319,0.1170140213893400
970 | 968,0.001,1.3241699728754900,7.743667974621200,1.389230245728260
971 | 969,0.001,0.2567982921255030,7.698995464048060,0.046419729219463100
972 | 970,0.001,0.33332629514832500,7.871997935644710,0.1859135767609630
973 | 971,0.051020483467630000,0.6175594438686860,8.543542094038110,0.14134764335845400
974 | 972,0.6584369171401650,0.2024045653343610,7.69531058695501,0.06420149582254580
975 | 973,0.001,0.4973737406116210,8.271139100095410,0.15144551332621800
976 | 974,0.17394374367929400,0.3739525063441270,8.700607105653510,0.13684750160233600
977 | 975,0.8957013416716050,0.08635245993255050,9.741763731217230,0.02396027657496160
978 | 976,0.09267192628907160,0.41010884537554900,7.727840647427600,0.04459287589970310
979 | 977,0.9844025066606420,0.8322039274403220,8.769276405303180,0.24091539299341700
980 | 978,0.001,2.3470790507310300,7.899619598165070,0.11359269378299800
981 | 979,0.0573651884701479,1.1310077704915200,8.814888528554160,0.395283949283863
982 | 980,0.001,0.6573288123594340,7.749397058601950,0.1612023897835870
983 | 981,0.007393487790723450,0.8359825170035500,8.540899465532840,0.2192530255779240
984 | 982,0.2237891585546370,0.8241511190772550,8.758968225343010,0.27215717996474400
985 | 983,0.06550624387388810,0.539531403550613,8.357908393243870,0.10841542443155000
986 | 984,0.34593910222815800,0.3348474055746610,7.790232613700890,0.14099368670648500
987 | 985,2.0842911148187400,0.07025293509358770,10.64911916707610,0.010464988565055800
988 | 986,0.22932627090024400,1.2406640914694600,10.047913458883100,0.20696056892926400
989 | 987,0.7285267205714310,0.2765016518047500,9.539645469501930,0.12565156489148900
990 | 988,0.9473150374783820,0.443906658380688,7.791185494651330,0.3478594727825480
991 | 989,0.016790787570834100,0.6485709328519410,9.011247976760030,0.3782922316203000
992 | 990,0.001,0.16989013708058900,7.651111716949750,0.06393655583304400
993 | 991,0.001,0.5197096444908130,8.420501344101840,0.0992658225683428
994 | 992,0.1773798400454860,0.3859594960080610,7.955708993321020,0.17790321843348800
995 | 993,0.001,0.8547755212290780,7.390141415638260,0.9143252433385100
996 | 994,0.1317593703244900,0.8949521816446090,8.858568543630080,1.0972780214636000
997 | 995,0.32290518838563800,2.0182315277010300,8.987870343954720,2.0699163048753400
998 | 996,0.8707943730386650,0.07513383603097700,7.607796379135360,0.06284536071398010
999 | 997,0.001,0.8496398125233580,8.415094356770380,0.9186425782821580
1000 | 998,0.2321632614147260,0.586723514482263,8.286424584286280,0.16827301926601200
1001 | 999,0.4569837880209070,0.6122130392603940,8.276157478547620,3.5239734410065200
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # IntroConformalPredictions
2 | A short introduction to Conformal Predictions, with a few examples for classification and regression from the Astrophysical domain, and slides.
3 |
4 | Presented at the EAS 2024 in Padova.
5 |
--------------------------------------------------------------------------------
/UQ_EAS_2024.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vacquaviva/IntroConformalPredictions/121fb0d00556bad3d3133e8581e3f201746bfc0c/UQ_EAS_2024.pdf
--------------------------------------------------------------------------------