├── 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 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | "
0123456789...840841842843844845846847848849
00.0105320.0118540.0114770.0111860.0107230.0077810.0032810.0078360.0087510.012667...0.0240350.0238100.0240460.0238650.0237510.0237800.0237000.0235320.0235230.023560
10.0122050.0134790.0133500.0130670.0134040.0110260.0051070.0110050.0120010.014975...0.0454950.0449420.0453210.0449430.0447210.0448430.0445980.0439100.0435940.043794
20.0036600.0040100.0040010.0039200.0041090.0035150.0016910.0034980.0037920.004505...0.0161690.0159510.0160570.0159070.0158110.0158180.0157220.0154750.0153480.015374
30.0654470.0716650.0712530.0696570.0725690.0614640.0292460.0609360.0659710.078945...0.0527330.0519330.0522600.0516810.0512700.0512380.0507670.0497910.0492330.049177
40.1430730.1564130.1557250.1522410.1592540.1359720.0652650.1347190.1456950.172647...0.0717840.0708430.0713130.0705790.0700220.0699110.0693620.0683540.0678590.067661
\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 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | "
Unnamed: 0Dust attenuation valueAge (Gyr)Log10(Mass/Mass_Sun)Tau (Gyr)
000.1648690.2032917.8853670.033035
110.2008520.4702488.2976780.087146
220.1978634.0339938.1846151.273974
330.0010000.7216368.3601100.242588
440.0010000.6994648.3733270.510683
\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": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbyElEQVR4nO3de5BXdf348dcG8sHLsiq6AYmAlpigRmCCd1MpREe7OGpEq5ZjhrfoIqv11bVwsSmzycJwGLIxL1OK2ZBMWAKaoEBr3vKWKJuKpOku4vgx4fz+aNxfK7uw58P7s/BZH4+ZM+PneM6e15uz4NOzu3yqsizLAgAggQ9s7QEAgJ5DWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDK9u/uCGzZsiBdffDGqq6ujqqqquy8PAJQgy7JYu3ZtDBo0KD7wgc6fS3R7WLz44osxePDg7r4sAJBAc3Nz7LHHHp3++24Pi+rq6oj472D9+vXr7ssDACVobW2NwYMHt/13vDPdHhbvfvmjX79+wgIAKszmvo3BN28CAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIJlcYfHOO+/Ed77znRg2bFhsv/32sddee8UVV1wRGzZsKNd8AEAFyfVeIVdddVVcd911ccMNN8SIESNi+fLlceaZZ0ZNTU1ceOGF5ZoRAKgQucJiyZIlcdJJJ8XEiRMjImLo0KFx8803x/Lly8syHABQWXJ9KeSwww6LP/3pT/HUU09FRMTf/va3uO++++L444/v9JxisRitra3tNgCgZ8r1xOLiiy+OlpaW2HfffaNXr16xfv36mD59epx++umdntPY2BgNDQ1bPCjlMXTavM0e89yMiRV3LQC2jlxPLG699da48cYb46abboq//vWvccMNN8QPf/jDuOGGGzo9p76+PlpaWtq25ubmLR4aANg25Xpi8a1vfSumTZsWp512WkRE7L///vH8889HY2Nj1NXVdXhOoVCIQqGw5ZMCANu8XE8s3nzzzfjAB9qf0qtXLz9uCgBERM4nFieeeGJMnz499txzzxgxYkQ0NTXF1VdfHWeddVa55gMAKkiusPjpT38a3/3ud+NrX/tarFmzJgYNGhTnnHNO/N///V+55gMAKkiusKiuro5rrrkmrrnmmjKNAwBUMu8VAgAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJJMrLIYOHRpVVVUbbVOmTCnXfABABemd5+Bly5bF+vXr214/+uijcdxxx8Upp5ySfDAAoPLkCovdd9+93esZM2bE3nvvHUceeWTSoQCAypQrLP7X22+/HTfeeGNMnTo1qqqqOj2uWCxGsVhse93a2lrqJQGAbVzJYXHHHXfE66+/HmecccYmj2tsbIyGhoZSL0NEDJ02b6N9z82YmOQYAEip5J8KmT17dkyYMCEGDRq0yePq6+ujpaWlbWtubi71kgDANq6kJxbPP/983H333XH77bdv9thCoRCFQqGUywAAFaakJxZz5syJ2tramDhx4uYPBgDeN3KHxYYNG2LOnDlRV1cXvXuX/C0aAEAPlDss7r777li1alWcddZZ5ZgHAKhguR85jB8/PrIsK8csAECF814hAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMrnD4oUXXogvfvGL0b9//9hhhx3iYx/7WKxYsaIcswEAFaZ3noNfe+21OPTQQ+Poo4+Ou+66K2pra+Mf//hH7LzzzmUaDwCoJLnC4qqrrorBgwfHnDlz2vYNHTo09UwAQIXK9aWQO++8M8aMGROnnHJK1NbWxqhRo+L666/f5DnFYjFaW1vbbQBAz5TricWzzz4bM2fOjKlTp8Yll1wSDz74YFxwwQVRKBTiS1/6UofnNDY2RkNDQ5JhoauGTpvX7vVzMybmPqer5wHw/+V6YrFhw4b4+Mc/HldeeWWMGjUqzjnnnDj77LNj5syZnZ5TX18fLS0tbVtzc/MWDw0AbJtyhcXAgQNjv/32a7fvox/9aKxatarTcwqFQvTr16/dBgD0TLnC4tBDD40nn3yy3b6nnnoqhgwZknQoAKAy5QqLr3/967F06dK48sor45lnnombbropZs2aFVOmTCnXfABABckVFgcddFDMnTs3br755hg5cmR873vfi2uuuSYmTZpUrvkAgAqS66dCIiJOOOGEOOGEE8oxCwBQ4bxXCACQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkEyusLj88sujqqqq3TZgwIByzQYAVJjeeU8YMWJE3H333W2ve/XqlXQgAKBy5Q6L3r17e0oBAHQo9/dYPP300zFo0KAYNmxYnHbaafHss89u8vhisRitra3tNgCgZ8r1xOLggw+OX/3qV7HPPvvEyy+/HN///vfjkEMOicceeyz69+/f4TmNjY3R0NCQZNieaOi0eRvte27GxK0wSec6mvG9tubMXZmvEn6dAXqCXE8sJkyYEJ/73Odi//33j2OPPTbmzfvvH9Y33HBDp+fU19dHS0tL29bc3LxlEwMA26zc32Pxv3bcccfYf//94+mnn+70mEKhEIVCYUsuAwBUiC36eyyKxWL8/e9/j4EDB6aaBwCoYLnC4pvf/GYsWrQoVq5cGQ888EB8/vOfj9bW1qirqyvXfABABcn1pZB//vOfcfrpp8crr7wSu+++e4wdOzaWLl0aQ4YMKdd8AEAFyRUWt9xyS7nmAAB6AO8VAgAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJLNFYdHY2BhVVVVx0UUXJRoHAKhkJYfFsmXLYtasWXHAAQeknAcAqGAlhcUbb7wRkyZNiuuvvz522WWX1DMBABWqpLCYMmVKTJw4MY499tjNHlssFqO1tbXdBgD0TL3znnDLLbfEX//611i2bFmXjm9sbIyGhobcg72fDZ02b2uPkFu5Zu7o4z43Y2JZrtUV3T3Pe6+3NdcO0BW5nlg0NzfHhRdeGDfeeGP07du3S+fU19dHS0tL29bc3FzSoADAti/XE4sVK1bEmjVrYvTo0W371q9fH4sXL45rr702isVi9OrVq905hUIhCoVCmmkBgG1arrA45phj4pFHHmm378wzz4x99903Lr744o2iAgB4f8kVFtXV1TFy5Mh2+3bcccfo37//RvsBgPcff/MmAJBM7p8Kea+FCxcmGAMA6Ak8sQAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJLJFRYzZ86MAw44IPr16xf9+vWLcePGxV133VWu2QCACpMrLPbYY4+YMWNGLF++PJYvXx6f/OQn46STTorHHnusXPMBABWkd56DTzzxxHavp0+fHjNnzoylS5fGiBEjkg4GAFSeXGHxv9avXx+/+c1vYt26dTFu3LhOjysWi1EsFttet7a2lnpJAGAblzssHnnkkRg3bly89dZbsdNOO8XcuXNjv/326/T4xsbGaGho2KIhKc3QafO29ggk1tE9fW7GxNzndeWcnuL9vHbYGnL/VMjw4cPjoYceiqVLl8a5554bdXV18fjjj3d6fH19fbS0tLRtzc3NWzQwALDtyv3Eok+fPvHhD384IiLGjBkTy5Yti5/85Cfxi1/8osPjC4VCFAqFLZsSAKgIW/z3WGRZ1u57KACA969cTywuueSSmDBhQgwePDjWrl0bt9xySyxcuDDmz59frvkAgAqSKyxefvnlmDx5crz00ktRU1MTBxxwQMyfPz+OO+64cs0HAFSQXGExe/bscs0BAPQA3isEAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIJldYNDY2xkEHHRTV1dVRW1sbJ598cjz55JPlmg0AqDC5wmLRokUxZcqUWLp0aSxYsCDeeeedGD9+fKxbt65c8wEAFaR3noPnz5/f7vWcOXOitrY2VqxYEUcccUTSwQCAypMrLN6rpaUlIiJ23XXXTo8pFotRLBbbXre2tm7JJQGAbVjJYZFlWUydOjUOO+ywGDlyZKfHNTY2RkNDQ6mXqShDp81r9/q5GRM3ewztdeXXpzt/DVNdqyufG6k+dqnnpJyplOu/13vn6crMpd6vct4feL8p+adCzjvvvHj44Yfj5ptv3uRx9fX10dLS0rY1NzeXekkAYBtX0hOL888/P+68885YvHhx7LHHHps8tlAoRKFQKGk4AKCy5AqLLMvi/PPPj7lz58bChQtj2LBh5ZoLAKhAucJiypQpcdNNN8Xvfve7qK6ujtWrV0dERE1NTWy//fZlGRAAqBy5vsdi5syZ0dLSEkcddVQMHDiwbbv11lvLNR8AUEFyfykEAKAz3isEAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIJndYLF68OE488cQYNGhQVFVVxR133FGGsQCASpQ7LNatWxcHHnhgXHvtteWYBwCoYL3znjBhwoSYMGFCOWYBACpc7rDIq1gsRrFYbHvd2tpa7ksCAFtJ2cOisbExGhoayn2ZiIgYOm3eRvuemzGxW67dkY7mqYSP/X6R6tfwvR+nK59z2+L9K2UdpXzcrW1bmwe2VLl+75aq7D8VUl9fHy0tLW1bc3NzuS8JAGwlZX9iUSgUolAolPsyAMA2wN9jAQAkk/uJxRtvvBHPPPNM2+uVK1fGQw89FLvuumvsueeeSYcDACpL7rBYvnx5HH300W2vp06dGhERdXV18ctf/jLZYABA5ckdFkcddVRkWVaOWQCACud7LACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGSEBQCQjLAAAJIRFgBAMsICAEhGWAAAyQgLACAZYQEAJCMsAIBkhAUAkIywAACSERYAQDLCAgBIRlgAAMkICwAgGWEBACQjLACAZIQFAJCMsAAAkhEWAEAywgIASEZYAADJCAsAIBlhAQAkIywAgGRKCouf//znMWzYsOjbt2+MHj067r333tRzAQAVKHdY3HrrrXHRRRfFpZdeGk1NTXH44YfHhAkTYtWqVeWYDwCoILnD4uqrr44vf/nL8ZWvfCU++tGPxjXXXBODBw+OmTNnlmM+AKCC9M5z8Ntvvx0rVqyIadOmtds/fvz4uP/++zs8p1gsRrFYbHvd0tISERGtra15Z92sDcU3N9pXjuvkuT7vPx19zlXi50aq3zulrv291+/K7+9Uv87d+ecGbKn3ft6X6/P33Y+bZdmmD8xyeOGFF7KIyP7yl7+02z99+vRsn3326fCcyy67LIsIm81ms9lsPWBrbm7eZCvkemLxrqqqqnavsyzbaN+76uvrY+rUqW2vN2zYEP/+97+jf//+nZ5TqVpbW2Pw4MHR3Nwc/fr129rjlJ319mzW27NZb89WjvVmWRZr166NQYMGbfK4XGGx2267Ra9evWL16tXt9q9ZsyY++MEPdnhOoVCIQqHQbt/OO++c57IVp1+/fu+LT9x3WW/PZr09m/X2bKnXW1NTs9ljcn3zZp8+fWL06NGxYMGCdvsXLFgQhxxySL7pAIAeJ/eXQqZOnRqTJ0+OMWPGxLhx42LWrFmxatWq+OpXv1qO+QCACpI7LE499dR49dVX44orroiXXnopRo4cGX/4wx9iyJAh5ZivohQKhbjssss2+tJPT2W9PZv19mzW27NtzfVWZZv9uREAgK7xXiEAQDLCAgBIRlgAAMkICwAgGWGxhaZPnx6HHHJI7LDDDl3+i7+yLIvLL788Bg0aFNtvv30cddRR8dhjj5V30ERee+21mDx5ctTU1ERNTU1Mnjw5Xn/99U2ec8YZZ0RVVVW7bezYsd0zcE4///nPY9iwYdG3b98YPXp03HvvvZs8ftGiRTF69Ojo27dv7LXXXnHdddd106Rp5FnvwoULN7qPVVVV8cQTT3TjxKVbvHhxnHjiiTFo0KCoqqqKO+64Y7PnVPL9zbveSr6/jY2NcdBBB0V1dXXU1tbGySefHE8++eRmz6vU+1vKervz/gqLLfT222/HKaecEueee26Xz/nBD34QV199dVx77bWxbNmyGDBgQBx33HGxdu3aMk6axhe+8IV46KGHYv78+TF//vx46KGHYvLkyZs979Of/nS89NJLbdsf/vCHbpg2n1tvvTUuuuiiuPTSS6OpqSkOP/zwmDBhQqxatarD41euXBnHH398HH744dHU1BSXXHJJXHDBBXHbbbd18+Slybvedz355JPt7uVHPvKRbpp4y6xbty4OPPDAuPbaa7t0fKXf37zrfVcl3t9FixbFlClTYunSpbFgwYJ45513Yvz48bFu3bpOz6nk+1vKet/VLfc3z5uQ0bk5c+ZkNTU1mz1uw4YN2YABA7IZM2a07Xvrrbeympqa7LrrrivjhFvu8ccfzyIiW7p0adu+JUuWZBGRPfHEE52eV1dXl5100kndMOGW+cQnPpF99atfbbdv3333zaZNm9bh8d/+9rezfffdt92+c845Jxs7dmzZZkwp73rvueeeLCKy1157rRumK6+IyObOnbvJYyr9/v6vrqy3J93fNWvWZBGRLVq0qNNjetL97cp6u/P+emLRzVauXBmrV6+O8ePHt+0rFApx5JFHdvrW89uKJUuWRE1NTRx88MFt+8aOHRs1NTWbnX3hwoVRW1sb++yzT5x99tmxZs2aco+by9tvvx0rVqxod18iIsaPH9/p2pYsWbLR8Z/61Kdi+fLl8Z///Kdss6ZQynrfNWrUqBg4cGAcc8wxcc8995RzzK2qku/vlugJ97elpSUiInbddddOj+lJ97cr631Xd9xfYdHN3n0Dt/e+adsHP/jBjd7cbVuzevXqqK2t3Wh/bW3tJmefMGFC/PrXv44///nP8aMf/SiWLVsWn/zkJ6NYLJZz3FxeeeWVWL9+fa77snr16g6Pf+edd+KVV14p26wplLLegQMHxqxZs+K2226L22+/PYYPHx7HHHNMLF68uDtG7naVfH9L0VPub5ZlMXXq1DjssMNi5MiRnR7XU+5vV9fbnfe3pLdN7+kuv/zyaGho2OQxy5YtizFjxpR8jTxvPV9uXV1vxMZzR2x+9lNPPbXtn0eOHBljxoyJIUOGxLx58+Kzn/1siVOXR9770tHxHe3fVuVZ7/Dhw2P48OFtr8eNGxfNzc3xwx/+MI444oiyzrm1VPr9zaOn3N/zzjsvHn744bjvvvs2e2xPuL9dXW933l9h0YHzzjsvTjvttE0eM3To0JI+9oABAyLiv7U8cODAtv2beuv5cuvqeh9++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 --------------------------------------------------------------------------------