Evaluation
This commit is contained in:
parent
9efe7bd128
commit
3c88cb0131
@ -15,6 +15,6 @@ RUN apt-get update && apt-get install -y python3-pip unzip && rm -rf /var/lib/ap
|
|||||||
|
|
||||||
RUN export PATH="$PATH:/root/.local/bin"
|
RUN export PATH="$PATH:/root/.local/bin"
|
||||||
|
|
||||||
RUN pip3 install kaggle pandas scikit-learn tensorflow keras
|
RUN pip3 install kaggle pandas scikit-learn tensorflow keras matplotlib numpy
|
||||||
|
|
||||||
RUN mkdir /.kaggle && chmod o+w /.kaggle
|
RUN mkdir /.kaggle && chmod o+w /.kaggle
|
||||||
|
48
Jenkinsfile.eval
Normal file
48
Jenkinsfile.eval
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
docker { image 'kamilguttmann/ium:eval' }
|
||||||
|
}
|
||||||
|
parameters {
|
||||||
|
gitParameter branchFilter: 'origin/(.*)', defaultValue: 'master', name: 'BRANCH', type: 'PT_BRANCH'
|
||||||
|
buildSelector(
|
||||||
|
defaultSelector: lastSuccessful(),
|
||||||
|
description: 'Which build to use for copying dataset artifacts',
|
||||||
|
name: 'DATASET_BUILD_SELECTOR'
|
||||||
|
)
|
||||||
|
buildSelector(
|
||||||
|
defaultSelector: lastSuccessful(),
|
||||||
|
description: 'Which build to use for copying train artifacts',
|
||||||
|
name: 'TRAIN_BUILD_SELECTOR'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Copy artifacts') {
|
||||||
|
steps {
|
||||||
|
copyArtifacts fingerprintArtifacts: true, projectName: 's444380-create-dataset', selector: buildParameter('DATASET_BUILD_SELECTOR')
|
||||||
|
copyArtifacts fingerprintArtifacts: true, projectName: 's444380-training/${BRANCH}', selector: buildParameter('TRAIN_BUILD_SELECTOR')
|
||||||
|
copyArtifacts filter: "eval_results.csv", projectName: 's444380-evaluation/${BRANCH}', optional: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Checkout git") {
|
||||||
|
steps {
|
||||||
|
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 's444380', url: 'https://git.wmi.amu.edu.pl/s444380/ium_444380.git']]])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Evaluation") {
|
||||||
|
steps {
|
||||||
|
sh "chmod u+x ./evaluate.py"
|
||||||
|
sh "python3 ./evaluate.py"
|
||||||
|
archiveArtifacts artifacts: "eval_results.csv, plot.png", onlyIfSuccessful: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
success {
|
||||||
|
emailext body: "SUCCESS", subject: "s444380-evaluation", to: "e19191c5.uam.onmicrosoft.com@emea.teams.ms"
|
||||||
|
}
|
||||||
|
|
||||||
|
failure {
|
||||||
|
emailext body: "FAILURE", subject: "s444380-evaluation", to: "e19191c5.uam.onmicrosoft.com@emea.teams.ms"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
22
evaluate.py
Normal file
22
evaluate.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
from sklearn.metrics import accuracy_score
|
||||||
|
import pandas as pd
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
test_data = pd.read_csv("out.csv")
|
||||||
|
|
||||||
|
y_true = test_data["OFFENSE_CODE_GROUP"]
|
||||||
|
y_pred = test_data["PREDICTED"]
|
||||||
|
|
||||||
|
|
||||||
|
accuracy = accuracy_score(y_true, y_pred)
|
||||||
|
|
||||||
|
with open("eval_results.csv", "a", encoding="utf-8") as f:
|
||||||
|
f.write(f"{accuracy}\n")
|
||||||
|
|
||||||
|
eval_results = pd.read_csv("eval_results.csv", header=None).values
|
||||||
|
|
||||||
|
plt.plot(np.arange(len(eval_results)), eval_results)
|
||||||
|
plt.xlabel("Build")
|
||||||
|
plt.ylabel("Accuracy")
|
||||||
|
plt.savefig("plot.png")
|
Loading…
Reference in New Issue
Block a user