Compare commits

...

40 Commits

Author SHA1 Message Date
f426717a18 mlflow save model
All checks were successful
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head This commit looks good
2021-05-23 22:56:38 +02:00
933d80f25e mlflow save model
All checks were successful
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head This commit looks good
2021-05-23 22:52:58 +02:00
c68e8d94e6 mlflow save model
Some checks failed
s434765-training/pipeline/head There was a failure building this commit
s434765-evaluation/pipeline/head This commit looks good
2021-05-22 17:59:38 +02:00
8bb7dab2d8 mlflow save model
Some checks failed
s434765-training/pipeline/head There was a failure building this commit
2021-05-22 17:57:16 +02:00
d46f43b602 mlflow save model
All checks were successful
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head This commit looks good
2021-05-22 17:53:47 +02:00
a53517845f mlflow save model
All checks were successful
s434765-training/pipeline/head This commit looks good
2021-05-22 17:51:31 +02:00
bd6d30ebad mlflow save model
Some checks failed
s434765-evaluation/pipeline/head This commit looks good
s434765-training/pipeline/head There was a failure building this commit
2021-05-22 17:15:02 +02:00
db02a3d471 mlflow save model
Some checks failed
s434765-training/pipeline/head There was a failure building this commit
2021-05-22 17:11:58 +02:00
c0013fa129 mlflow save model
All checks were successful
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head This commit looks good
2021-05-22 17:10:35 +02:00
aa00dd0cbb mlflow
All checks were successful
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head This commit looks good
2021-05-22 11:49:58 +02:00
2e94ac5e55 mlflow
Some checks failed
s434765-training/pipeline/head There was a failure building this commit
2021-05-22 11:45:29 +02:00
92e2b57f21 mlflow
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
s434765-training/pipeline/head There was a failure building this commit
2021-05-20 23:48:25 +02:00
07479089e2 email 2021-05-20 20:12:53 +02:00
b0f4e521c2 email
Some checks failed
s434765-evaluation/pipeline/head This commit looks good
s434765-training/pipeline/head There was a failure building this commit
2021-05-20 20:04:47 +02:00
5934c9b496 plot
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 19:54:20 +02:00
8251db9abf trigger other projects
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 19:50:46 +02:00
b9f143d46c trigger other projects
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 19:27:25 +02:00
fa941fb331 trigger other projects
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-20 19:25:54 +02:00
7264fa8810 trigger other projects
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 18:41:48 +02:00
89f18e3061 copy artifacts metrics
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 18:34:51 +02:00
37e0a59760 copy artifacts metrics
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 18:33:30 +02:00
bcedeab846 copy artifacts metrics 2021-05-20 18:31:51 +02:00
f45f80b352 copy artifacts metrics
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 18:30:31 +02:00
87117b2c08 copy artifacts metrics 2021-05-20 18:29:42 +02:00
109b32f25e copy artifacts metrics
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 18:26:27 +02:00
693dd19e22 copy artifacts metrics
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-20 18:19:54 +02:00
af166d8471 evaluation branch
All checks were successful
s434765-evaluation/pipeline/head This commit looks good
2021-05-20 18:10:44 +02:00
47b8ed0b97 evaluation branch
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:56:07 +02:00
76f867a285 evaluation branch
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:53:32 +02:00
211a81357c evaluation branch
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:50:03 +02:00
f4ebdc077b evaluation branch
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:48:55 +02:00
1440cc2881 evaluation branch
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:46:48 +02:00
89c406c216 evaluation branch
Some checks failed
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:42:56 +02:00
eff81e1b48 evaluation branch
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:42:07 +02:00
cd78cbc034 evaluation branch
Some checks failed
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:37:29 +02:00
02da6bf4cd evaluation branch
Some checks failed
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:22:29 +02:00
336fd44524 evaluation branch
Some checks failed
s434765-training/pipeline/head This commit looks good
s434765-evaluation/pipeline/head There was a failure building this commit
2021-05-17 22:20:01 +02:00
e45b776b3c evaluation branch 2021-05-17 22:18:59 +02:00
422f9b3382 evaluation branch
All checks were successful
s434765-training/pipeline/head This commit looks good
2021-05-17 22:15:30 +02:00
630aba3217 evaluation branch
Some checks failed
s434765-training/pipeline/head There was a failure building this commit
2021-05-17 22:04:40 +02:00
10 changed files with 635 additions and 474 deletions

View File

@ -8,9 +8,9 @@ RUN pip3 install pandas
RUN pip3 install kaggle RUN pip3 install kaggle
RUN pip3 install tensorflow RUN pip3 install tensorflow
RUN pip3 install sklearn RUN pip3 install sklearn
COPY ./data_train ./ RUN pip3 install matplotlib
RUN pip3 install mlflow
COPY ./data_dev ./ COPY ./data_dev ./
COPY ./neural_network.sh ./ COPY ./evaluate_network.py ./
COPY ./neural_network.py ./
RUN mkdir /.kaggle RUN mkdir /.kaggle
RUN chmod -R 777 /.kaggle RUN chmod -R 777 /.kaggle

5
Jenkinsfile vendored
View File

@ -39,4 +39,9 @@ node {
} }
} }
stage ("build training") { //an arbitrary stage name
steps {
build 's434765-training/master/' //this is where we specify which job to invoke.
}
}
} }

51
JenkinsfileEval Normal file
View File

@ -0,0 +1,51 @@
node {
stage('Preparation') {
properties([
parameters([
buildSelector(defaultSelector: lastSuccessful(),
description: 'Which build to use for copying datasets',
name: 'BUILD_DATASET'),
buildSelector(defaultSelector: lastSuccessful(),
description: 'Which build to use for copying model',
name: 'BUILD_MODEL'),
gitParameter(branchFilter: 'origin/(.*)',
defaultValue: 'master',
name: 'BRANCH',
type: 'PT_BRANCH')
])
]
)
}
stage('Clone repo') {
try {
docker.image("karopa/ium:20").inside {
stage('Test') {
checkout([$class: 'GitSCM', branches: [[name: '*/evaluation']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://git.wmi.amu.edu.pl/s434765/ium_434765']]])
copyArtifacts fingerprintArtifacts: true, projectName: 's434765-create-dataset', selector: buildParameter("BUILD_DATASET")
copyArtifacts fingerprintArtifacts: true, projectName: 's434765-training/' + params.BRANCH + '/', selector: buildParameter("BUILD_MODEL")
copyArtifacts fingerprintArtifacts: true, projectName: 's434765-evaluation/evaluation/', selector: lastSuccessful()
sh '''
#!/usr/bin/env bash
chmod 777 evaluate_network.py
python3 evaluate_network.py | tee output.txt
'''
archiveArtifacts 'output.txt'
archiveArtifacts 'rmse.txt'
archiveArtifacts 'evaluation.png'
}
emailext body: 'Successful evaluation',
subject: "s434765",
to: "26ab8f35.uam.onmicrosoft.com@emea.teams.ms"
}
}
catch (e) {
emailext body: 'Failed evaluation',
subject: "s434765",
to: "26ab8f35.uam.onmicrosoft.com@emea.teams.ms"
throw e
}
}
}

29
JenkinsfileMLflow Normal file
View File

@ -0,0 +1,29 @@
node {
stage('Preparation') {
properties([
parameters([
buildSelector(defaultSelector: lastSuccessful(),
description: 'Which build to use for copying artifacts',
name: 'BUILD_SELECTOR')
])
]
)
}
stage('Clone repo') {
docker.image("karopa/ium:31").inside {
stage('Test') {
checkout([$class: 'GitSCM', branches: [[name: '*/mlflow']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://git.wmi.amu.edu.pl/s434765/ium_434765']]])
copyArtifacts fingerprintArtifacts: true, projectName: 's437622-training/master/', selector: buildParameter("BUILD_SELECTOR")
sh '''
#!/usr/bin/env bash
chmod 777 mlflow_partner.sh
rm -r model
./mlflow_partner.sh | tee output.txt
'''
archiveArtifacts 'output.txt'
}
}
}
}

View File

@ -16,19 +16,21 @@ node {
} }
stage('Clone repo') { stage('Clone repo') {
try { docker.image("karopa/ium:11").inside { /* try {*/ docker.image("karopa/ium:32").inside {
stage('Test') { stage('Test') {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://git.wmi.amu.edu.pl/s434765/ium_434765']]]) checkout([$class: 'GitSCM', branches: [[name: '*/mlflow']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://git.wmi.amu.edu.pl/s434765/ium_434765']]])
copyArtifacts fingerprintArtifacts: true, projectName: 's434765-create-dataset', selector: buildParameter("BUILD_SELECTOR") copyArtifacts fingerprintArtifacts: true, projectName: 's434765-create-dataset', selector: buildParameter("BUILD_SELECTOR")
sh ''' sh '''
#!/usr/bin/env bash #!/usr/bin/env bash
chmod 777 neural_network.sh chmod 777 neural_network.sh
rm -r youtube_model
./neural_network.sh $EPOCHS | tee output.txt ./neural_network.sh $EPOCHS | tee output.txt
''' '''
archiveArtifacts 'output.txt' archiveArtifacts 'output.txt'
archiveArtifacts 'model/**/*.*' archiveArtifacts 'youtube_model/**'
} }
emailext body: 'Successful build', }
/*emailext body: 'Successful build',
subject: "s434765", subject: "s434765",
to: "26ab8f35.uam.onmicrosoft.com@emea.teams.ms" to: "26ab8f35.uam.onmicrosoft.com@emea.teams.ms"
} }
@ -41,4 +43,7 @@ node {
throw e throw e
} }
} }
stage ("build evaluation") {
build 's434765-evaluation/evaluation/'*/
} }
}

12
MLproject Normal file
View File

@ -0,0 +1,12 @@
name: tutorial
docker_env:
image: karopa/ium:31
entry_points:
main:
parameters:
epochs: {type: float, default: 30}
command: "python3 neural_network.py {epochs}"
test:
command: "python3 evaluate_network.py"

53
evaluate_network.py Normal file
View File

@ -0,0 +1,53 @@
import pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error
from tensorflow import keras
import matplotlib.pyplot as plt
def evaluate_model():
model = keras.models.load_model('model')
data = pd.read_csv("data_dev", sep=',', error_bad_lines=False,
skip_blank_lines=True, nrows=527, names=["video_id", "last_trending_date",
"publish_date", "publish_hour", "category_id",
"channel_title", "views", "likes", "dislikes",
"comment_count"]).dropna()
X_test = data.loc[:, data.columns == "views"].astype(int)
y_test = data.loc[:, data.columns == "likes"].astype(int)
min_val_sub = np.min(X_test)
max_val_sub = np.max(X_test)
X_test = (X_test - min_val_sub) / (max_val_sub - min_val_sub)
print(min_val_sub)
print(max_val_sub)
min_val_like = np.min(y_test)
max_val_like = np.max(y_test)
print(min_val_like)
print(max_val_like)
prediction = model.predict(X_test)
prediction_denormalized = []
for pred in prediction:
denorm = pred[0] * (max_val_like[0] - min_val_like[0]) + min_val_like[0]
prediction_denormalized.append(denorm)
f = open("predictions.txt", "w")
for (pred, test) in zip(prediction_denormalized, y_test.values):
f.write("predicted: %s expected: %s\n" % (str(pred), str(test[0])))
error = mean_squared_error(y_test, prediction_denormalized)
print(error)
with open("rmse.txt", "a") as file:
file.write(str(error) + "\n")
with open("rmse.txt", "r") as file:
lines = file.readlines()
plt.plot(range(len(lines)), [line[:-2] for line in lines])
plt.tight_layout()
plt.ylabel('RMSE')
plt.xlabel('evaluation no')
plt.savefig('evaluation.png')
return error

4
mlflow_partner.py Normal file
View File

@ -0,0 +1,4 @@
from mlflow import keras
model = keras.load_model('saved_model.pb')
predict = model.predict([13, 1, 1500, 1500])

View File

@ -1,9 +1,25 @@
import warnings
import pandas as pd import pandas as pd
import numpy as np import numpy as np
from sklearn.metrics import mean_squared_error
from tensorflow import keras from tensorflow import keras
import sys import sys
import mlflow
import mlflow.models
import logging
from evaluate_network import evaluate_model
logging.basicConfig(level=logging.WARN)
logger = logging.getLogger(__name__)
mlflow.set_tracking_uri("http://172.17.0.1:5000")
mlflow.set_experiment("s434765")
warnings.filterwarnings("ignore")
np.random.seed(40)
def normalize_data(data): def normalize_data(data):
return (data - np.min(data)) / (np.max(data) - np.min(data)) return (data - np.min(data)) / (np.max(data) - np.min(data))
@ -29,50 +45,36 @@ y = (y - min_val_like) / (max_val_like - min_val_like)
print(min_val_like) print(min_val_like)
print(max_val_like) print(max_val_like)
with mlflow.start_run() as run:
print("MLflow run experiment_id: {0}".format(run.info.experiment_id))
print("MLflow run artifact_uri: {0}".format(run.info.artifact_uri))
model = keras.Sequential([ mlflow.keras.autolog()
mlflow.log_param("epochs", int(sys.argv[1]))
model = keras.Sequential([
keras.layers.Dense(512,input_dim = X.shape[1], activation='relu'), keras.layers.Dense(512,input_dim = X.shape[1], activation='relu'),
keras.layers.Dense(256, activation='relu'), keras.layers.Dense(256, activation='relu'),
keras.layers.Dense(256, activation='relu'), keras.layers.Dense(256, activation='relu'),
keras.layers.Dense(128, activation='relu'), keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(1,activation='linear'), keras.layers.Dense(1,activation='linear'),
]) ])
model.compile(loss='mean_absolute_error', optimizer="Adam", metrics=['mean_absolute_error']) model.compile(loss='mean_absolute_error', optimizer="Adam", metrics=['mean_absolute_error'])
model.fit(X, y, epochs=int(sys.argv[1]), validation_split = 0.3) model.fit(X, y, epochs=int(sys.argv[1]), validation_split = 0.3)
data = pd.read_csv("data_dev", sep=',', error_bad_lines=False, model.save('model')
error = evaluate_model()
mlflow.log_metric("rmse", error)
signature = mlflow.models.signature.infer_signature(X, model.predict(y))
data = pd.read_csv("data_dev", sep=',', error_bad_lines=False,
skip_blank_lines=True, nrows=527, names=["video_id", "last_trending_date", skip_blank_lines=True, nrows=527, names=["video_id", "last_trending_date",
"publish_date", "publish_hour", "category_id", "publish_date", "publish_hour", "category_id",
"channel_title", "views", "likes", "dislikes", "channel_title", "views", "likes", "dislikes",
"comment_count"]).dropna() "comment_count"]).dropna()
X_test = data.loc[:,data.columns == "views"].astype(int) X_test = data.loc[:, data.columns == "views"].astype(int)
y_test = data.loc[:,data.columns == "likes"].astype(int) mlflow.keras.log_model(model, "youtube_model", registered_model_name="youtube_model", input_example=X_test,
signature=signature)
min_val_sub = np.min(X_test) mlflow.keras.save_model(model, "youtube_model", registered_model_name="youtube_model", signature=signature,
max_val_sub = np.max(X_test) input_example=X_test)
X_test = (X_test - min_val_sub) / (max_val_sub - min_val_sub)
print(min_val_sub)
print(max_val_sub)
min_val_like = np.min(y_test)
max_val_like = np.max(y_test)
print(min_val_like)
print(max_val_like)
prediction = model.predict(X_test)
prediction_denormalized = []
for pred in prediction:
denorm = pred[0] * (max_val_like[0] - min_val_like[0]) + min_val_like[0]
prediction_denormalized.append(denorm)
f = open("predictions.txt", "w")
for (pred, test) in zip(prediction_denormalized, y_test.values):
f.write("predicted: %s expected: %s\n" % (str(pred), str(test[0])))
error = mean_squared_error(y_test, prediction_denormalized)
print(error)
model.save('model')

View File

@ -1,422 +1,422 @@
predicted: 440.75201439857483 expected: 617 predicted: 413.1008868217468 expected: 617
predicted: 87.643430352211 expected: 172 predicted: 47.86212486028671 expected: 172
predicted: 1361.890419960022 expected: 611 predicted: 1386.1633577346802 expected: 611
predicted: 168.88216811418533 expected: 269 predicted: 130.3939750790596 expected: 269
predicted: 1361.890419960022 expected: 1095 predicted: 1386.1633577346802 expected: 1095
predicted: 168.88216811418533 expected: 68 predicted: 130.3939750790596 expected: 68
predicted: 50.43718174099922 expected: 5 predicted: 19.90906798839569 expected: 5
predicted: 440.75201439857483 expected: 986 predicted: 413.1008868217468 expected: 986
predicted: 242.13134622573853 expected: 262 predicted: 203.6116111278534 expected: 262
predicted: 403.0836160182953 expected: 817 predicted: 372.48268270492554 expected: 817
predicted: 268.44813990592957 expected: 197 predicted: 230.87857830524445 expected: 197
predicted: 218.3946235179901 expected: 264 predicted: 179.68539935350418 expected: 264
predicted: 361.85813999176025 expected: 830 predicted: 329.0779640674591 expected: 830
predicted: 1361.890419960022 expected: 1415 predicted: 1386.1633577346802 expected: 1415
predicted: 359.0711271762848 expected: 134 predicted: 326.18872606754303 expected: 134
predicted: 78.7634365260601 expected: 58 predicted: 40.16386836767197 expected: 58
predicted: 105.04015484452248 expected: 93 predicted: 65.0328851044178 expected: 93
predicted: 504.74084401130676 expected: 830 predicted: 480.5526661872864 expected: 830
predicted: 1361.890419960022 expected: 1207 predicted: 1386.1633577346802 expected: 1207
predicted: 367.3838310241699 expected: 269 predicted: 334.85701310634613 expected: 269
predicted: 488.74388575553894 expected: 558 predicted: 463.8779273033142 expected: 558
predicted: 1237.264790058136 expected: 1558 predicted: 1254.344542980194 expected: 1558
predicted: 90.6400882601738 expected: 37 predicted: 50.4820656478405 expected: 37
predicted: 507.3979513645172 expected: 364 predicted: 483.33165645599365 expected: 364
predicted: 523.3226568698883 expected: 1020 predicted: 499.9944860935211 expected: 1020
predicted: 48.50093571841717 expected: 11 predicted: 19.50330962240696 expected: 11
predicted: 397.6092493534088 expected: 225 predicted: 366.6810609102249 expected: 225
predicted: 507.3979513645172 expected: 228 predicted: 483.33165645599365 expected: 228
predicted: 1237.264790058136 expected: 1184 predicted: 1254.344542980194 expected: 1184
predicted: 383.88376808166504 expected: 370 predicted: 352.1995916366577 expected: 370
predicted: 96.38490444421768 expected: 68 predicted: 56.00515931844711 expected: 68
predicted: 212.50074243545532 expected: 201 predicted: 173.76574397087097 expected: 201
predicted: 1361.890419960022 expected: 1113 predicted: 1386.1633577346802 expected: 1113
predicted: 383.88376808166504 expected: 496 predicted: 352.1995916366577 expected: 496
predicted: 96.38490444421768 expected: 43 predicted: 56.00515931844711 expected: 43
predicted: 107.87801241874695 expected: 59 predicted: 68.22162944078445 expected: 59
predicted: 96.38490444421768 expected: 60 predicted: 56.00515931844711 expected: 60
predicted: 110.60120612382889 expected: 78 predicted: 71.34471097588539 expected: 78
predicted: 288.4603080749512 expected: 263 predicted: 252.21197521686554 expected: 263
predicted: 367.3838310241699 expected: 400 predicted: 334.85701310634613 expected: 400
predicted: 1361.890419960022 expected: 1256 predicted: 1386.1633577346802 expected: 1256
predicted: 96.38490444421768 expected: 23 predicted: 56.00515931844711 expected: 23
predicted: 1361.890419960022 expected: 3345 predicted: 1386.1633577346802 expected: 3345
predicted: 118.90196335315704 expected: 98 predicted: 80.25949200987816 expected: 98
predicted: 555.0855638980865 expected: 238 predicted: 533.3521857261658 expected: 238
predicted: 127.52714788913727 expected: 69 predicted: 89.29963156580925 expected: 69
predicted: 397.6092493534088 expected: 170 predicted: 366.6810609102249 expected: 170
predicted: 72.37854194641113 expected: 31 predicted: 35.04091790318489 expected: 31
predicted: 133.36021208763123 expected: 102 predicted: 95.34509393572807 expected: 102
predicted: 1361.890419960022 expected: 1070 predicted: 1386.1633577346802 expected: 1070
predicted: 189.24707919359207 expected: 96 predicted: 150.4676577448845 expected: 96
predicted: 470.07955527305603 expected: 387 predicted: 444.3707809448242 expected: 387
predicted: 84.67825222015381 expected: 25 predicted: 45.273028522729874 expected: 25
predicted: 456.74648118019104 expected: 574 predicted: 430.2018172740936 expected: 574
predicted: 403.0836160182953 expected: 165 predicted: 372.48268270492554 expected: 165
predicted: 438.0862367153168 expected: 765 predicted: 410.1994904279709 expected: 765
predicted: 504.74084401130676 expected: 599 predicted: 480.5526661872864 expected: 599
predicted: 488.74388575553894 expected: 906 predicted: 463.8779273033142 expected: 906
predicted: 116.05787086486816 expected: 71 predicted: 77.31110018491745 expected: 71
predicted: 448.74924778938293 expected: 433 predicted: 421.67569375038147 expected: 433
predicted: 448.74924778938293 expected: 152 predicted: 421.67569375038147 expected: 152
predicted: 148.1169518828392 expected: 116 predicted: 109.96235477924347 expected: 116
predicted: 54.679246604442596 expected: 19 predicted: 21.162978656589985 expected: 19
predicted: 52.505416721105576 expected: 24 predicted: 20.43628104776144 expected: 24
predicted: 133.36021208763123 expected: 97 predicted: 95.34509393572807 expected: 97
predicted: 148.1169518828392 expected: 49 predicted: 109.96235477924347 expected: 49
predicted: 555.0855638980865 expected: 291 predicted: 533.3521857261658 expected: 291
predicted: 1361.890419960022 expected: 2816 predicted: 1386.1633577346802 expected: 2816
predicted: 397.6092493534088 expected: 152 predicted: 366.6810609102249 expected: 152
predicted: 504.74084401130676 expected: 1033 predicted: 480.5526661872864 expected: 1033
predicted: 488.74388575553894 expected: 740 predicted: 463.8779273033142 expected: 740
predicted: 105.04015484452248 expected: 32 predicted: 65.0328851044178 expected: 32
predicted: 136.28357082605362 expected: 74 predicted: 98.27079465985298 expected: 74
predicted: 555.0855638980865 expected: 453 predicted: 533.3521857261658 expected: 453
predicted: 397.6092493534088 expected: 219 predicted: 366.6810609102249 expected: 219
predicted: 177.70988458395004 expected: 82 predicted: 138.99301159381866 expected: 82
predicted: 194.98967796564102 expected: 72 predicted: 156.24679398536682 expected: 72
predicted: 93.51017928123474 expected: 109 predicted: 53.15466374158859 expected: 109
predicted: 440.75201439857483 expected: 567 predicted: 413.1008868217468 expected: 567
predicted: 325.45894837379456 expected: 389 predicted: 291.51378405094147 expected: 389
predicted: 105.04015484452248 expected: 70 predicted: 65.0328851044178 expected: 70
predicted: 1361.890419960022 expected: 987 predicted: 1386.1633577346802 expected: 987
predicted: 1361.890419960022 expected: 1812 predicted: 1386.1633577346802 expected: 1812
predicted: 507.3979513645172 expected: 169 predicted: 483.33165645599365 expected: 169
predicted: 291.30746507644653 expected: 270 predicted: 255.25954639911652 expected: 270
predicted: 68.95200508832932 expected: 33 predicted: 32.21245941519737 expected: 33
predicted: 162.86742562055588 expected: 75 predicted: 124.60903370380402 expected: 75
predicted: 1361.890419960022 expected: 1424 predicted: 1386.1633577346802 expected: 1424
predicted: 54.679246604442596 expected: 39 predicted: 21.162978656589985 expected: 39
predicted: 68.95200508832932 expected: 49 predicted: 32.21245941519737 expected: 49
predicted: 72.37854194641113 expected: 141 predicted: 35.04091790318489 expected: 141
predicted: 59.85786905884743 expected: 24 predicted: 24.209042496979237 expected: 24
predicted: 177.70988458395004 expected: 91 predicted: 138.99301159381866 expected: 91
predicted: 250.9964098930359 expected: 101 predicted: 212.65090358257294 expected: 101
predicted: 523.3227066993713 expected: 401 predicted: 499.99453592300415 expected: 401
predicted: 523.3227066993713 expected: 570 predicted: 499.99453592300415 expected: 570
predicted: 180.6396962404251 expected: 106 predicted: 141.8593654036522 expected: 106
predicted: 62.63836666941643 expected: 43 predicted: 26.621923096477985 expected: 43
predicted: 555.0855638980865 expected: 439 predicted: 533.3521857261658 expected: 439
predicted: 1237.264790058136 expected: 1220 predicted: 1254.344542980194 expected: 1220
predicted: 96.38490444421768 expected: 82 predicted: 56.00515931844711 expected: 82
predicted: 46.82571832835674 expected: 5 predicted: 19.168218806385994 expected: 5
predicted: 507.3979513645172 expected: 314 predicted: 483.33165645599365 expected: 314
predicted: 383.88376808166504 expected: 180 predicted: 352.1995916366577 expected: 180
predicted: 99.27988529205322 expected: 88 predicted: 58.96443888545036 expected: 88
predicted: 1361.890419960022 expected: 1642 predicted: 1386.1633577346802 expected: 1642
predicted: 440.75201439857483 expected: 417 predicted: 413.1008868217468 expected: 417
predicted: 311.22565484046936 expected: 346 predicted: 276.4743242263794 expected: 346
predicted: 50.43718174099922 expected: 10 predicted: 19.90906798839569 expected: 10
predicted: 189.24707919359207 expected: 93 predicted: 150.4676577448845 expected: 93
predicted: 72.37854194641113 expected: 26 predicted: 35.04091790318489 expected: 26
predicted: 142.19571441411972 expected: 41 predicted: 104.11986657977104 expected: 41
predicted: 1361.890419960022 expected: 505 predicted: 1386.1633577346802 expected: 505
predicted: 46.82571832835674 expected: 11 predicted: 19.168218806385994 expected: 11
predicted: 1361.890419960022 expected: 929 predicted: 1386.1633577346802 expected: 929
predicted: 403.0836160182953 expected: 877 predicted: 372.48268270492554 expected: 877
predicted: 127.52714788913727 expected: 370 predicted: 89.29963156580925 expected: 370
predicted: 48.50093571841717 expected: 28 predicted: 19.50330962240696 expected: 28
predicted: 1361.890419960022 expected: 1085 predicted: 1386.1633577346802 expected: 1085
predicted: 1237.264790058136 expected: 654 predicted: 1254.344542980194 expected: 654
predicted: 99.27988529205322 expected: 59 predicted: 58.96443888545036 expected: 59
predicted: 212.5007175207138 expected: 259 predicted: 173.76575642824173 expected: 259
predicted: 370.1334218978882 expected: 165 predicted: 337.7465749979019 expected: 165
predicted: 46.82571832835674 expected: 1 predicted: 19.168218806385994 expected: 1
predicted: 59.85786905884743 expected: 26 predicted: 24.209042496979237 expected: 26
predicted: 177.70988458395004 expected: 399 predicted: 138.99301159381866 expected: 399
predicted: 438.08618688583374 expected: 155 predicted: 410.1994904279709 expected: 155
predicted: 206.62610799074173 expected: 158 predicted: 167.85832172632217 expected: 158
predicted: 470.07955527305603 expected: 782 predicted: 444.3707809448242 expected: 782
predicted: 209.55610650777817 expected: 376 predicted: 170.80858838558197 expected: 376
predicted: 46.82571832835674 expected: 1 predicted: 19.168218806385994 expected: 1
predicted: 253.949853181839 expected: 116 predicted: 215.6783685684204 expected: 116
predicted: 311.22565484046936 expected: 628 predicted: 276.4743242263794 expected: 628
predicted: 1361.890419960022 expected: 1897 predicted: 1386.1633577346802 expected: 1897
predicted: 156.95644056797028 expected: 76 predicted: 118.75259947776794 expected: 76
predicted: 589.4715447425842 expected: 450 predicted: 569.589929819107 expected: 450
predicted: 291.30746507644653 expected: 272 predicted: 255.25954639911652 expected: 272
predicted: 397.6092493534088 expected: 149 predicted: 366.6810609102249 expected: 149
predicted: 1237.264790058136 expected: 1069 predicted: 1254.344542980194 expected: 1069
predicted: 239.15587830543518 expected: 286 predicted: 200.60691821575165 expected: 286
predicted: 206.62613290548325 expected: 526 predicted: 167.85832172632217 expected: 526
predicted: 90.6400882601738 expected: 29 predicted: 50.4820656478405 expected: 29
predicted: 311.22565484046936 expected: 373 predicted: 276.4743242263794 expected: 373
predicted: 177.70988458395004 expected: 481 predicted: 138.99301159381866 expected: 481
predicted: 168.88216811418533 expected: 74 predicted: 130.3939750790596 expected: 74
predicted: 84.67825222015381 expected: 54 predicted: 45.273028522729874 expected: 54
predicted: 183.54676073789597 expected: 102 predicted: 144.72621750831604 expected: 102
predicted: 46.82571832835674 expected: 22 predicted: 19.168218806385994 expected: 22
predicted: 1361.890419960022 expected: 1360 predicted: 1386.1633577346802 expected: 1360
predicted: 470.07955527305603 expected: 324 predicted: 444.3707809448242 expected: 324
predicted: 438.0862367153168 expected: 973 predicted: 410.1994904279709 expected: 973
predicted: 440.75201439857483 expected: 407 predicted: 413.1008868217468 expected: 407
predicted: 248.04540824890137 expected: 317 predicted: 209.63374084234238 expected: 317
predicted: 54.679246604442596 expected: 76 predicted: 21.162978656589985 expected: 76
predicted: 456.74648118019104 expected: 688 predicted: 430.2018172740936 expected: 688
predicted: 81.7299475967884 expected: 44 predicted: 42.72660490870476 expected: 44
predicted: 367.3838310241699 expected: 239 predicted: 334.85701310634613 expected: 239
predicted: 470.07955527305603 expected: 344 predicted: 444.3707809448242 expected: 344
predicted: 456.74648118019104 expected: 688 predicted: 430.2017674446106 expected: 688
predicted: 397.60929918289185 expected: 442 predicted: 366.6810359954834 expected: 442
predicted: 154.0077684521675 expected: 157 predicted: 115.822214782238 expected: 157
predicted: 1361.890419960022 expected: 1193 predicted: 1386.1633577346802 expected: 1193
predicted: 113.2706213593483 expected: 102 predicted: 74.36365512013435 expected: 102
predicted: 438.0862367153168 expected: 768 predicted: 410.1994904279709 expected: 768
predicted: 102.17511528730392 expected: 42 predicted: 61.97662490606308 expected: 42
predicted: 325.45894837379456 expected: 265 predicted: 291.51378405094147 expected: 265
predicted: 90.6400882601738 expected: 15 predicted: 50.4820656478405 expected: 15
predicted: 96.38490444421768 expected: 44 predicted: 56.00515931844711 expected: 44
predicted: 46.82571832835674 expected: 1 predicted: 19.168218806385994 expected: 1
predicted: 397.6092493534088 expected: 216 predicted: 366.6810609102249 expected: 216
predicted: 72.37854194641113 expected: 20 predicted: 35.04091790318489 expected: 20
predicted: 555.0855638980865 expected: 308 predicted: 533.3521857261658 expected: 308
predicted: 78.7634365260601 expected: 29 predicted: 40.16386836767197 expected: 29
predicted: 118.90196335315704 expected: 208 predicted: 80.25949200987816 expected: 208
predicted: 197.87735879421234 expected: 99 predicted: 159.14171254634857 expected: 99
predicted: 113.2706213593483 expected: 48 predicted: 74.36365512013435 expected: 48
predicted: 54.679246604442596 expected: 15 predicted: 21.162978656589985 expected: 15
predicted: 440.75201439857483 expected: 630 predicted: 413.1008868217468 expected: 630
predicted: 325.45894837379456 expected: 333 predicted: 291.51378405094147 expected: 333
predicted: 75.7197956442833 expected: 55 predicted: 37.754656463861465 expected: 55
predicted: 99.27988529205322 expected: 52 predicted: 58.96443888545036 expected: 52
predicted: 107.87801241874695 expected: 27 predicted: 68.22162944078445 expected: 27
predicted: 81.7299475967884 expected: 16 predicted: 42.72660490870476 expected: 16
predicted: 555.0855638980865 expected: 472 predicted: 533.3521857261658 expected: 472
predicted: 397.6092493534088 expected: 162 predicted: 366.6810609102249 expected: 162
predicted: 1361.890419960022 expected: 1054 predicted: 1386.1633577346802 expected: 1054
predicted: 183.54676073789597 expected: 223 predicted: 144.72621750831604 expected: 223
predicted: 59.85786905884743 expected: 22 predicted: 24.209042496979237 expected: 22
predicted: 1361.890419960022 expected: 3345 predicted: 1386.1633577346802 expected: 3345
predicted: 156.95644056797028 expected: 71 predicted: 118.75259947776794 expected: 71
predicted: 507.3979015350342 expected: 862 predicted: 483.3317062854767 expected: 862
predicted: 93.51017928123474 expected: 26 predicted: 53.15465751290321 expected: 26
predicted: 1237.264790058136 expected: 624 predicted: 1254.344542980194 expected: 624
predicted: 102.17511528730392 expected: 24 predicted: 61.97662490606308 expected: 24
predicted: 72.37854194641113 expected: 115 predicted: 35.04091790318489 expected: 115
predicted: 1361.890419960022 expected: 3131 predicted: 1386.1633577346802 expected: 3131
predicted: 107.87801241874695 expected: 27 predicted: 68.22162944078445 expected: 27
predicted: 1361.890419960022 expected: 1116 predicted: 1386.1633577346802 expected: 1116
predicted: 291.30746507644653 expected: 501 predicted: 255.25954639911652 expected: 501
predicted: 1237.264790058136 expected: 1380 predicted: 1254.344542980194 expected: 1380
predicted: 470.07955527305603 expected: 538 predicted: 444.3707809448242 expected: 538
predicted: 81.7299475967884 expected: 77 predicted: 42.72660490870476 expected: 77
predicted: 308.3802418708801 expected: 270 predicted: 273.46295416355133 expected: 270
predicted: 1237.264790058136 expected: 618 predicted: 1254.344542980194 expected: 618
predicted: 555.0855638980865 expected: 335 predicted: 533.3521857261658 expected: 335
predicted: 440.75201439857483 expected: 550 predicted: 413.1008868217468 expected: 550
predicted: 168.88216811418533 expected: 169 predicted: 130.3939750790596 expected: 169
predicted: 440.75201439857483 expected: 653 predicted: 413.1008868217468 expected: 653
predicted: 84.67825222015381 expected: 21 predicted: 45.273028522729874 expected: 21
predicted: 250.9964098930359 expected: 225 predicted: 212.65090358257294 expected: 225
predicted: 1361.890419960022 expected: 2192 predicted: 1386.1633577346802 expected: 2192
predicted: 403.0836160182953 expected: 213 predicted: 372.48268270492554 expected: 213
predicted: 448.74924778938293 expected: 695 predicted: 421.67569375038147 expected: 695
predicted: 65.65746653079987 expected: 23 predicted: 29.38928908109665 expected: 23
predicted: 154.0077684521675 expected: 148 predicted: 115.822214782238 expected: 148
predicted: 194.98967796564102 expected: 57 predicted: 156.24679398536682 expected: 57
predicted: 93.51017928123474 expected: 42 predicted: 53.15466374158859 expected: 42
predicted: 194.98967796564102 expected: 195 predicted: 156.24679398536682 expected: 195
predicted: 209.55610650777817 expected: 172 predicted: 170.80858838558197 expected: 172
predicted: 523.3226568698883 expected: 220 predicted: 499.9944860935211 expected: 220
predicted: 230.25438928604126 expected: 112 predicted: 191.63088428974152 expected: 112
predicted: 75.7197956442833 expected: 14 predicted: 37.754656463861465 expected: 14
predicted: 397.60929918289185 expected: 314 predicted: 366.6810359954834 expected: 314
predicted: 107.87801241874695 expected: 47 predicted: 68.22163566946983 expected: 47
predicted: 488.74388575553894 expected: 836 predicted: 463.8779273033142 expected: 836
predicted: 448.74924778938293 expected: 375 predicted: 421.67569375038147 expected: 375
predicted: 440.75201439857483 expected: 501 predicted: 413.1008868217468 expected: 501
predicted: 405.8219952583313 expected: 392 predicted: 375.3836804628372 expected: 392
predicted: 448.74924778938293 expected: 824 predicted: 421.67569375038147 expected: 824
predicted: 145.16070568561554 expected: 220 predicted: 107.04111379384995 expected: 220
predicted: 50.43718174099922 expected: 3 predicted: 19.90906798839569 expected: 3
predicted: 282.75129437446594 expected: 307 predicted: 246.11675810813904 expected: 307
predicted: 48.50093571841717 expected: 18 predicted: 19.50330962240696 expected: 18
predicted: 105.04015484452248 expected: 93 predicted: 65.0328851044178 expected: 93
predicted: 367.3838310241699 expected: 180 predicted: 334.85701310634613 expected: 180
predicted: 50.43718174099922 expected: 3 predicted: 19.90906798839569 expected: 3
predicted: 555.0855638980865 expected: 297 predicted: 533.3521857261658 expected: 297
predicted: 523.3226568698883 expected: 576 predicted: 499.9944860935211 expected: 576
predicted: 555.0855638980865 expected: 314 predicted: 533.3521857261658 expected: 314
predicted: 253.949853181839 expected: 139 predicted: 215.6783685684204 expected: 139
predicted: 105.04015484452248 expected: 105 predicted: 65.0328851044178 expected: 105
predicted: 367.3838310241699 expected: 231 predicted: 334.85701310634613 expected: 231
predicted: 75.7197956442833 expected: 12 predicted: 37.754656463861465 expected: 12
predicted: 1237.264790058136 expected: 1026 predicted: 1254.344542980194 expected: 1026
predicted: 367.3838310241699 expected: 304 predicted: 334.85701310634613 expected: 304
predicted: 46.82571832835674 expected: 3 predicted: 19.168218806385994 expected: 3
predicted: 403.0836160182953 expected: 335 predicted: 372.48268270492554 expected: 335
predicted: 145.16070568561554 expected: 110 predicted: 107.04111379384995 expected: 110
predicted: 72.37854194641113 expected: 43 predicted: 35.04091790318489 expected: 43
predicted: 133.36021208763123 expected: 113 predicted: 95.34509393572807 expected: 113
predicted: 440.75201439857483 expected: 487 predicted: 413.1008868217468 expected: 487
predicted: 403.0836160182953 expected: 541 predicted: 372.48268270492554 expected: 541
predicted: 271.3142819404602 expected: 114 predicted: 233.92522764205933 expected: 114
predicted: 75.7197956442833 expected: 101 predicted: 37.754656463861465 expected: 101
predicted: 242.13134622573853 expected: 251 predicted: 203.61159867048264 expected: 251
predicted: 1361.890519618988 expected: 1358 predicted: 1386.1633577346802 expected: 1358
predicted: 405.8219952583313 expected: 1031 predicted: 375.3836804628372 expected: 1031
predicted: 1361.890419960022 expected: 1788 predicted: 1386.1633577346802 expected: 1788
predicted: 248.04540824890137 expected: 137 predicted: 209.63374084234238 expected: 137
predicted: 54.679246604442596 expected: 29 predicted: 21.162978656589985 expected: 29
predicted: 107.87801241874695 expected: 68 predicted: 68.22162944078445 expected: 68
predicted: 507.3979513645172 expected: 442 predicted: 483.33165645599365 expected: 442
predicted: 81.7299475967884 expected: 24 predicted: 42.72660490870476 expected: 24
predicted: 488.74388575553894 expected: 1129 predicted: 463.8779273033142 expected: 1129
predicted: 57.13920360803604 expected: 35 predicted: 22.405266597867012 expected: 35
predicted: 116.05787086486816 expected: 181 predicted: 77.31110018491745 expected: 181
predicted: 555.0855638980865 expected: 894 predicted: 533.3521857261658 expected: 894
predicted: 57.13920360803604 expected: 49 predicted: 22.405266597867012 expected: 49
predicted: 154.0077684521675 expected: 170 predicted: 115.822214782238 expected: 170
predicted: 194.98967796564102 expected: 196 predicted: 156.24679398536682 expected: 196
predicted: 1361.890419960022 expected: 3345 predicted: 1386.1633577346802 expected: 3345
predicted: 107.87801241874695 expected: 24 predicted: 68.22162944078445 expected: 24
predicted: 470.07955527305603 expected: 629 predicted: 444.3707809448242 expected: 629
predicted: 555.0855638980865 expected: 290 predicted: 533.3521857261658 expected: 290
predicted: 470.07955527305603 expected: 342 predicted: 444.3707809448242 expected: 342
predicted: 183.54676073789597 expected: 177 predicted: 144.72621750831604 expected: 177
predicted: 81.7299475967884 expected: 57 predicted: 42.72660490870476 expected: 57
predicted: 1237.264790058136 expected: 707 predicted: 1254.344542980194 expected: 707
predicted: 285.6049790382385 expected: 289 predicted: 249.16435420513153 expected: 289
predicted: 93.51017928123474 expected: 78 predicted: 53.15466374158859 expected: 78
predicted: 403.0836160182953 expected: 530 predicted: 372.48268270492554 expected: 530
predicted: 242.13134622573853 expected: 276 predicted: 203.6116111278534 expected: 276
predicted: 440.75201439857483 expected: 389 predicted: 413.1008868217468 expected: 389
predicted: 96.38490444421768 expected: 173 predicted: 56.00515931844711 expected: 173
predicted: 555.0855638980865 expected: 717 predicted: 533.3521857261658 expected: 717
predicted: 507.3979513645172 expected: 707 predicted: 483.33165645599365 expected: 707
predicted: 555.0855638980865 expected: 440 predicted: 533.3522355556488 expected: 440
predicted: 65.65746653079987 expected: 36 predicted: 29.38928908109665 expected: 36
predicted: 118.90196335315704 expected: 115 predicted: 80.25949200987816 expected: 115
predicted: 177.70988458395004 expected: 437 predicted: 138.99301159381866 expected: 437
predicted: 107.87801241874695 expected: 75 predicted: 68.22162944078445 expected: 75
predicted: 1361.890419960022 expected: 611 predicted: 1386.1633577346802 expected: 611
predicted: 84.67825222015381 expected: 17 predicted: 45.273028522729874 expected: 17
predicted: 59.85786905884743 expected: 52 predicted: 24.209042496979237 expected: 52
predicted: 507.3979513645172 expected: 849 predicted: 483.33165645599365 expected: 849
predicted: 438.0862367153168 expected: 230 predicted: 410.1994904279709 expected: 230
predicted: 403.0836160182953 expected: 537 predicted: 372.48268270492554 expected: 537
predicted: 1361.890419960022 expected: 1645 predicted: 1386.1633577346802 expected: 1645
predicted: 403.0836160182953 expected: 221 predicted: 372.48268270492554 expected: 221
predicted: 180.6396962404251 expected: 167 predicted: 141.8593654036522 expected: 167
predicted: 438.0862367153168 expected: 274 predicted: 410.1994904279709 expected: 274
predicted: 206.62613290548325 expected: 141 predicted: 167.85832172632217 expected: 141
predicted: 555.0855638980865 expected: 414 predicted: 533.3521857261658 expected: 414
predicted: 59.85786905884743 expected: 32 predicted: 24.209042496979237 expected: 32
predicted: 403.0836160182953 expected: 203 predicted: 372.48268270492554 expected: 203
predicted: 54.679246604442596 expected: 18 predicted: 21.162978656589985 expected: 18
predicted: 242.13134622573853 expected: 212 predicted: 203.6116111278534 expected: 212
predicted: 93.51017928123474 expected: 29 predicted: 53.15466374158859 expected: 29
predicted: 1361.890419960022 expected: 1665 predicted: 1386.1633577346802 expected: 1665
predicted: 397.6092493534088 expected: 192 predicted: 366.6810609102249 expected: 192
predicted: 81.7299475967884 expected: 24 predicted: 42.72660490870476 expected: 24
predicted: 248.04540824890137 expected: 175 predicted: 209.63374084234238 expected: 175
predicted: 1361.890419960022 expected: 1329 predicted: 1386.1633577346802 expected: 1329
predicted: 523.3226568698883 expected: 261 predicted: 499.9944860935211 expected: 261
predicted: 403.0836160182953 expected: 712 predicted: 372.48268270492554 expected: 712
predicted: 148.1169518828392 expected: 52 predicted: 109.96235477924347 expected: 52
predicted: 397.6092493534088 expected: 157 predicted: 366.6810609102249 expected: 157
predicted: 277.0447223186493 expected: 285 predicted: 240.02114236354828 expected: 285
predicted: 361.8580901622772 expected: 405 predicted: 329.0779391527176 expected: 405
predicted: 367.3838310241699 expected: 452 predicted: 334.85701310634613 expected: 452
predicted: 1361.890419960022 expected: 1267 predicted: 1386.1633577346802 expected: 1267
predicted: 59.85786905884743 expected: 50 predicted: 24.209042496979237 expected: 50
predicted: 162.86742562055588 expected: 150 predicted: 124.60903370380402 expected: 150
predicted: 239.15587830543518 expected: 255 predicted: 200.60691821575165 expected: 255
predicted: 68.95200508832932 expected: 18 predicted: 32.21245941519737 expected: 18
predicted: 46.82571832835674 expected: 4 predicted: 19.168218806385994 expected: 4
predicted: 467.4128806591034 expected: 437 predicted: 441.5448513031006 expected: 437
predicted: 59.85786905884743 expected: 24 predicted: 24.209042496979237 expected: 24
predicted: 81.7299475967884 expected: 71 predicted: 42.72660490870476 expected: 71
predicted: 555.0855638980865 expected: 532 predicted: 533.3521857261658 expected: 532
predicted: 507.3979513645172 expected: 729 predicted: 483.33165645599365 expected: 729
predicted: 75.7197956442833 expected: 35 predicted: 37.754656463861465 expected: 35
predicted: 488.74388575553894 expected: 368 predicted: 463.8779273033142 expected: 368
predicted: 46.82571832835674 expected: 12 predicted: 19.168218806385994 expected: 12
predicted: 1361.890419960022 expected: 2034 predicted: 1386.1633577346802 expected: 2034
predicted: 470.07955527305603 expected: 391 predicted: 444.3707809448242 expected: 391
predicted: 403.0836160182953 expected: 560 predicted: 372.48268270492554 expected: 560
predicted: 555.0855638980865 expected: 1011 predicted: 533.3521857261658 expected: 1011
predicted: 488.74388575553894 expected: 600 predicted: 463.8779273033142 expected: 600
predicted: 248.04540824890137 expected: 167 predicted: 209.63374084234238 expected: 167
predicted: 59.85786905884743 expected: 34 predicted: 24.209042496979237 expected: 34
predicted: 84.67825222015381 expected: 47 predicted: 45.273028522729874 expected: 47
predicted: 1361.890419960022 expected: 1148 predicted: 1386.1633577346802 expected: 1148
predicted: 325.45894837379456 expected: 326 predicted: 291.51378405094147 expected: 326
predicted: 1361.890419960022 expected: 876 predicted: 1386.1633577346802 expected: 876
predicted: 48.50093571841717 expected: 10 predicted: 19.50330962240696 expected: 10
predicted: 1361.890419960022 expected: 3345 predicted: 1386.1633577346802 expected: 3345
predicted: 448.74924778938293 expected: 993 predicted: 421.67569375038147 expected: 993
predicted: 127.52714788913727 expected: 49 predicted: 89.29963156580925 expected: 49
predicted: 186.39137643575668 expected: 230 predicted: 147.59694385528564 expected: 230
predicted: 470.07955527305603 expected: 679 predicted: 444.3707809448242 expected: 679
predicted: 1361.890519618988 expected: 2201 predicted: 1386.1633577346802 expected: 2201
predicted: 209.55610650777817 expected: 202 predicted: 170.80858838558197 expected: 202
predicted: 589.4715447425842 expected: 663 predicted: 569.589929819107 expected: 663
predicted: 145.16070568561554 expected: 79 predicted: 107.04111379384995 expected: 79
predicted: 359.0711271762848 expected: 214 predicted: 326.18872606754303 expected: 214
predicted: 448.74924778938293 expected: 829 predicted: 421.67569375038147 expected: 829
predicted: 107.87801241874695 expected: 149 predicted: 68.22162944078445 expected: 149
predicted: 403.0836160182953 expected: 729 predicted: 372.48268270492554 expected: 729
predicted: 96.38490444421768 expected: 19 predicted: 56.00515931844711 expected: 19
predicted: 288.4603080749512 expected: 173 predicted: 252.21197521686554 expected: 173
predicted: 438.0862367153168 expected: 240 predicted: 410.1994904279709 expected: 240
predicted: 162.86742562055588 expected: 89 predicted: 124.60903370380402 expected: 89
predicted: 75.7197956442833 expected: 49 predicted: 37.754656463861465 expected: 49
predicted: 440.75201439857483 expected: 228 predicted: 413.1008868217468 expected: 228
predicted: 1361.890419960022 expected: 651 predicted: 1386.1633577346802 expected: 651
predicted: 62.63836666941643 expected: 15 predicted: 26.621923096477985 expected: 15
predicted: 133.36021208763123 expected: 61 predicted: 95.34509393572807 expected: 61
predicted: 90.6400882601738 expected: 84 predicted: 50.4820656478405 expected: 84
predicted: 75.7197956442833 expected: 36 predicted: 37.754656463861465 expected: 36
predicted: 154.0077684521675 expected: 101 predicted: 115.822214782238 expected: 101
predicted: 345.143039226532 expected: 184 predicted: 311.7408916950226 expected: 184
predicted: 361.85813999176025 expected: 268 predicted: 329.0779640674591 expected: 268
predicted: 1361.890419960022 expected: 2910 predicted: 1386.1633577346802 expected: 2910
predicted: 90.6400882601738 expected: 106 predicted: 50.4820656478405 expected: 106
predicted: 325.45894837379456 expected: 433 predicted: 291.51378405094147 expected: 433
predicted: 1361.890419960022 expected: 1700 predicted: 1386.1633577346802 expected: 1700
predicted: 87.643430352211 expected: 41 predicted: 47.86212486028671 expected: 41
predicted: 46.82571832835674 expected: 1 predicted: 19.168218806385994 expected: 1
predicted: 440.75201439857483 expected: 520 predicted: 413.1008868217468 expected: 520
predicted: 52.505413606762886 expected: 50 predicted: 20.436282604932785 expected: 50
predicted: 470.07955527305603 expected: 734 predicted: 444.3707809448242 expected: 734
predicted: 65.65746653079987 expected: 45 predicted: 29.38928908109665 expected: 45
predicted: 1361.890519618988 expected: 2837 predicted: 1386.1633577346802 expected: 2837
predicted: 90.6400882601738 expected: 23 predicted: 50.4820656478405 expected: 23
predicted: 168.88216811418533 expected: 145 predicted: 130.3939750790596 expected: 145
predicted: 555.0855638980865 expected: 185 predicted: 533.3521857261658 expected: 185
predicted: 57.13920360803604 expected: 42 predicted: 22.405266597867012 expected: 42
predicted: 268.44813990592957 expected: 410 predicted: 230.87857830524445 expected: 410
predicted: 1361.890419960022 expected: 1622 predicted: 1386.1633577346802 expected: 1622
predicted: 448.74924778938293 expected: 661 predicted: 421.67569375038147 expected: 661
predicted: 50.43718174099922 expected: 4 predicted: 19.90906798839569 expected: 4
predicted: 345.143039226532 expected: 369 predicted: 311.7408916950226 expected: 369
predicted: 308.3802418708801 expected: 221 predicted: 273.46295416355133 expected: 221
predicted: 345.143039226532 expected: 234 predicted: 311.7408916950226 expected: 234
predicted: 180.6396962404251 expected: 380 predicted: 141.8593654036522 expected: 380
predicted: 403.0836160182953 expected: 249 predicted: 372.48268270492554 expected: 249
predicted: 48.50093571841717 expected: 25 predicted: 19.50330962240696 expected: 25
predicted: 1361.890419960022 expected: 1876 predicted: 1386.1633577346802 expected: 1876
predicted: 308.3802418708801 expected: 241 predicted: 273.46295416355133 expected: 241
predicted: 259.779155254364 expected: 334 predicted: 221.7468023300171 expected: 334
predicted: 305.53477907180786 expected: 303 predicted: 270.45173358917236 expected: 303
predicted: 52.505413606762886 expected: 19 predicted: 20.436282604932785 expected: 19
predicted: 1361.890419960022 expected: 1248 predicted: 1386.1633577346802 expected: 1248
predicted: 177.70988458395004 expected: 501 predicted: 138.99301159381866 expected: 501
predicted: 470.07955527305603 expected: 328 predicted: 444.3707809448242 expected: 328
predicted: 311.22565484046936 expected: 406 predicted: 276.4743242263794 expected: 406
predicted: 206.62613290548325 expected: 141 predicted: 167.85832172632217 expected: 141
predicted: 177.70988458395004 expected: 408 predicted: 138.99301159381866 expected: 408
predicted: 46.82571832835674 expected: 4 predicted: 19.168218806385994 expected: 4
predicted: 1361.890419960022 expected: 3147 predicted: 1386.1633577346802 expected: 3147
predicted: 105.04015484452248 expected: 99 predicted: 65.0328851044178 expected: 99
predicted: 242.13134622573853 expected: 89 predicted: 203.6116111278534 expected: 89
predicted: 102.17511528730392 expected: 61 predicted: 61.97662490606308 expected: 61
predicted: 81.7299475967884 expected: 27 predicted: 42.72660490870476 expected: 27
predicted: 1361.890519618988 expected: 1088 predicted: 1386.1633577346802 expected: 1088
predicted: 105.0401486158371 expected: 105 predicted: 65.0328851044178 expected: 105
predicted: 165.85928744077682 expected: 173 predicted: 127.5326042175293 expected: 173
predicted: 1237.264790058136 expected: 1496 predicted: 1254.344542980194 expected: 1496
predicted: 555.0855638980865 expected: 866 predicted: 533.3521857261658 expected: 866
predicted: 523.3227066993713 expected: 399 predicted: 499.99453592300415 expected: 399
predicted: 305.53477907180786 expected: 317 predicted: 270.45173358917236 expected: 317