diff --git a/data/mamografia.csv b/data/mamografia.csv
new file mode 100644
index 0000000..8f0f38f
--- /dev/null
+++ b/data/mamografia.csv
@@ -0,0 +1,962 @@
+BI-RADS,Age,Shape,Margin,Density,Severity
+5,67,L,5,3,maligno
+4,43,R,1,?,maligno
+5,58,I,5,3,maligno
+4,28,R,1,3,benigno
+5,74,R,5,?,maligno
+4,65,R,?,3,benigno
+4,70,N,?,3,benigno
+5,42,R,?,3,benigno
+5,57,R,5,3,maligno
+5,60,N,5,1,maligno
+5,76,R,4,3,maligno
+3,42,O,1,3,maligno
+4,64,R,?,3,benigno
+4,36,L,1,2,benigno
+4,60,O,1,2,benigno
+4,54,R,1,3,benigno
+3,52,L,4,3,benigno
+4,59,O,1,3,maligno
+4,54,R,1,3,maligno
+4,40,R,?,?,benigno
+?,66,N,?,1,maligno
+5,56,I,3,1,maligno
+4,43,R,?,?,benigno
+5,42,I,4,3,maligno
+4,59,O,4,3,maligno
+5,75,I,5,3,maligno
+2,66,R,1,?,benigno
+5,63,L,?,3,benigno
+5,45,I,5,3,maligno
+5,55,I,4,3,benigno
+4,46,R,5,2,benigno
+5,54,I,4,3,maligno
+5,57,I,4,3,maligno
+4,39,R,1,2,benigno
+4,81,R,1,3,benigno
+4,77,L,?,?,benigno
+4,60,O,1,3,benigno
+5,67,L,4,2,maligno
+4,48,I,5,?,maligno
+4,55,L,4,2,benigno
+4,59,O,1,?,benigno
+4,78,R,1,1,benigno
+4,50,R,1,3,benigno
+4,61,O,1,?,benigno
+5,62,L,5,2,maligno
+5,44,O,4,?,maligno
+5,64,I,5,3,maligno
+4,23,R,1,?,benigno
+2,42,N,?,4,benigno
+5,67,I,5,3,maligno
+4,74,O,1,2,benigno
+5,80,L,5,3,maligno
+4,23,R,1,?,benigno
+4,63,O,1,?,benigno
+4,53,N,5,3,maligno
+4,43,L,4,?,benigno
+4,49,O,1,1,benigno
+5,51,O,4,?,benigno
+4,45,O,1,?,benigno
+5,59,O,?,?,maligno
+5,52,I,3,3,maligno
+5,60,I,3,3,maligno
+4,57,O,5,3,benigno
+3,57,O,1,?,benigno
+5,74,I,4,3,maligno
+4,25,O,1,?,benigno
+4,49,R,1,3,benigno
+5,72,I,3,?,maligno
+4,45,O,1,3,benigno
+4,64,O,1,3,benigno
+4,73,O,1,2,benigno
+5,68,I,3,3,maligno
+5,52,I,5,3,benigno
+5,66,I,4,3,maligno
+5,70,N,4,?,maligno
+4,25,R,1,3,benigno
+5,74,R,1,2,maligno
+4,64,R,1,3,benigno
+5,60,I,3,2,maligno
+5,67,O,4,1,benigno
+4,67,I,5,3,benigno
+5,44,I,4,2,maligno
+3,68,R,1,3,maligno
+4,57,N,4,1,benigno
+5,51,I,?,?,maligno
+4,33,R,?,?,benigno
+5,58,I,4,3,maligno
+5,36,R,?,?,benigno
+4,63,R,1,?,benigno
+5,62,R,5,3,maligno
+4,73,L,4,3,maligno
+4,80,I,4,3,maligno
+4,67,R,1,?,benigno
+5,59,O,1,3,maligno
+5,60,R,?,3,benigno
+5,54,I,4,3,maligno
+4,40,R,1,?,benigno
+4,47,O,1,?,benigno
+5,62,I,4,3,benigno
+4,33,O,1,3,benigno
+5,59,O,?,?,benigno
+4,65,O,?,?,benigno
+4,58,I,4,?,benigno
+4,29,O,?,?,benigno
+4,58,R,1,?,benigno
+4,54,R,1,?,benigno
+4,44,R,1,?,maligno
+3,34,O,1,?,benigno
+4,57,R,1,3,benigno
+5,33,I,4,?,maligno
+4,45,I,4,3,benigno
+5,71,I,4,3,maligno
+5,59,I,4,2,benigno
+4,56,O,1,?,benigno
+4,40,L,4,?,benigno
+4,56,R,1,3,benigno
+4,45,O,1,?,benigno
+4,57,O,1,2,benigno
+5,55,L,4,3,maligno
+5,84,I,5,3,benigno
+5,51,I,4,3,maligno
+4,43,R,1,?,benigno
+4,24,O,1,2,benigno
+4,66,R,1,3,benigno
+5,33,I,4,3,benigno
+4,59,I,3,2,benigno
+4,76,O,3,?,benigno
+4,40,R,1,?,benigno
+4,52,N,4,?,benigno
+5,40,I,5,3,maligno
+5,67,I,4,3,maligno
+5,75,I,3,3,maligno
+5,86,I,4,3,benigno
+4,60,O,?,?,benigno
+5,66,I,4,3,maligno
+5,46,I,5,3,maligno
+4,59,I,4,3,maligno
+5,65,I,4,3,maligno
+4,53,R,1,3,benigno
+5,67,L,5,3,maligno
+5,80,I,5,3,maligno
+4,55,O,1,3,benigno
+4,48,R,1,?,benigno
+4,47,R,1,2,benigno
+4,50,O,1,?,benigno
+5,62,I,5,3,maligno
+5,63,I,4,3,maligno
+4,63,I,?,3,maligno
+4,71,I,4,3,maligno
+4,41,R,1,3,benigno
+5,57,I,4,4,maligno
+5,71,I,4,4,maligno
+4,66,R,1,3,benigno
+4,47,O,4,2,benigno
+3,34,I,4,3,benigno
+4,59,L,4,3,benigno
+5,55,O,?,?,maligno
+4,51,N,?,3,benigno
+4,62,O,1,?,benigno
+4,58,I,?,3,maligno
+5,67,I,4,3,maligno
+4,41,O,1,3,benigno
+4,23,L,1,3,benigno
+4,53,N,4,3,benigno
+4,42,O,1,3,benigno
+5,87,I,5,3,maligno
+4,68,R,1,3,maligno
+4,64,R,1,3,benigno
+5,54,L,5,3,maligno
+5,86,I,5,3,maligno
+4,21,O,1,3,benigno
+4,39,R,1,?,benigno
+4,53,I,4,3,benigno
+4,44,I,4,3,benigno
+4,54,R,1,3,benigno
+5,63,I,5,3,maligno
+4,62,O,1,?,benigno
+4,45,O,1,2,benigno
+5,71,I,5,3,benigno
+5,49,I,4,3,maligno
+4,49,I,4,3,benigno
+5,66,I,4,4,benigno
+4,19,R,1,3,benigno
+4,35,R,1,2,benigno
+4,71,L,3,?,maligno
+5,74,I,5,3,maligno
+5,37,I,4,3,maligno
+4,67,R,?,3,benigno
+5,81,L,4,3,maligno
+5,59,I,4,3,maligno
+4,34,R,1,3,benigno
+5,79,I,3,3,maligno
+5,60,L,1,3,benigno
+4,41,R,1,3,maligno
+4,50,R,1,3,benigno
+5,85,I,4,3,maligno
+4,46,R,1,3,benigno
+5,66,I,4,3,maligno
+4,73,L,1,2,benigno
+4,55,R,1,3,benigno
+4,49,O,1,3,benigno
+3,49,I,4,3,benigno
+4,51,I,5,3,maligno
+2,48,I,4,3,benigno
+4,58,I,5,3,benigno
+5,72,I,5,3,maligno
+4,46,O,3,3,benigno
+4,43,I,3,3,maligno
+?,52,I,4,3,benigno
+4,66,O,1,?,benigno
+4,46,R,1,1,benigno
+4,69,L,1,3,benigno
+2,59,R,1,?,maligno
+5,43,O,1,3,maligno
+5,76,I,5,3,maligno
+4,46,R,1,3,benigno
+4,59,O,4,3,benigno
+4,57,R,1,3,benigno
+5,43,I,5,?,benigno
+3,45,O,1,3,benigno
+3,43,O,1,3,benigno
+4,45,O,1,3,benigno
+5,57,I,5,3,maligno
+5,79,I,4,3,maligno
+5,54,O,1,3,maligno
+4,40,L,4,3,benigno
+5,63,I,4,3,maligno
+2,55,R,?,1,benigno
+4,52,O,1,3,benigno
+4,38,R,1,3,benigno
+3,72,I,3,3,benigno
+5,80,I,3,3,maligno
+5,76,I,3,3,maligno
+4,62,L,1,3,benigno
+5,64,I,5,3,maligno
+5,42,I,5,3,benigno
+3,60,N,3,1,benigno
+4,64,I,5,3,benigno
+4,63,I,4,3,maligno
+4,24,O,1,2,benigno
+5,72,I,4,3,maligno
+4,63,O,1,3,benigno
+4,46,R,1,3,benigno
+3,33,R,1,3,benigno
+5,76,I,4,3,maligno
+4,36,O,3,3,benigno
+4,40,O,1,3,benigno
+5,58,R,5,3,maligno
+4,43,O,1,3,benigno
+3,42,R,1,3,benigno
+4,32,R,1,3,benigno
+5,57,I,4,2,maligno
+4,37,R,1,3,benigno
+4,70,I,4,3,maligno
+5,56,I,2,3,maligno
+3,76,N,3,2,benigno
+5,73,I,4,3,maligno
+5,77,I,5,3,maligno
+5,67,I,4,1,maligno
+5,71,I,3,3,maligno
+5,65,I,4,3,maligno
+4,43,R,1,3,benigno
+4,40,O,1,?,benigno
+4,49,O,1,3,benigno
+5,76,I,2,3,maligno
+4,55,I,4,3,benigno
+5,72,I,5,3,maligno
+3,53,I,3,3,benigno
+5,75,I,4,3,maligno
+5,61,I,5,3,maligno
+5,67,I,4,3,maligno
+5,55,I,2,3,maligno
+5,66,I,4,3,maligno
+2,76,R,1,2,benigno
+4,57,I,4,3,maligno
+5,71,L,1,3,benigno
+5,70,I,5,3,maligno
+4,35,I,2,?,benigno
+5,79,R,?,3,maligno
+4,63,O,1,3,benigno
+5,40,R,4,3,maligno
+4,41,R,1,3,benigno
+4,47,O,1,2,benigno
+4,68,R,1,3,maligno
+4,64,I,3,3,maligno
+4,65,I,4,?,maligno
+4,73,I,3,3,benigno
+4,39,I,3,3,benigno
+5,55,I,5,4,maligno
+5,53,L,4,4,benigno
+5,66,I,4,3,maligno
+4,43,L,1,2,benigno
+5,44,I,5,3,maligno
+4,77,I,4,3,maligno
+4,62,O,4,3,benigno
+5,80,I,4,3,maligno
+4,33,I,4,3,benigno
+4,50,I,5,3,maligno
+4,71,R,?,3,benigno
+5,46,I,4,3,maligno
+5,49,I,5,3,maligno
+4,53,R,1,3,benigno
+3,46,O,1,2,benigno
+4,57,R,1,3,benigno
+4,54,L,1,3,benigno
+4,54,R,?,?,benigno
+2,49,O,1,2,benigno
+4,47,L,1,3,benigno
+4,40,R,1,3,benigno
+4,45,R,1,3,benigno
+4,50,I,5,3,maligno
+5,54,I,4,3,maligno
+4,67,I,1,3,maligno
+4,77,I,4,3,maligno
+4,66,I,3,3,benigno
+4,71,O,?,3,maligno
+4,36,O,3,3,benigno
+4,69,I,4,3,benigno
+4,48,R,1,3,benigno
+4,64,I,4,3,maligno
+4,71,I,2,3,maligno
+5,60,I,3,3,maligno
+4,24,R,1,3,benigno
+5,34,I,5,2,maligno
+4,79,R,1,2,benigno
+4,45,R,1,3,benigno
+4,37,O,1,2,benigno
+4,42,R,1,2,benigno
+4,72,I,4,3,maligno
+5,60,I,5,3,maligno
+5,85,L,5,3,maligno
+4,51,R,1,3,benigno
+5,54,I,5,3,maligno
+5,55,I,3,3,maligno
+4,64,I,4,3,benigno
+5,67,I,5,3,maligno
+5,75,I,3,3,maligno
+5,87,I,4,3,maligno
+4,46,I,4,3,maligno
+4,59,O,1,?,benigno
+5,46,I,3,3,maligno
+5,61,R,1,3,maligno
+4,44,R,4,3,benigno
+4,32,R,1,3,benigno
+4,62,R,1,3,benigno
+5,59,I,5,3,maligno
+4,61,I,1,3,benigno
+5,78,I,4,3,maligno
+5,42,I,5,3,benigno
+4,45,R,2,3,benigno
+5,34,O,1,3,maligno
+5,39,I,3,?,maligno
+4,27,L,1,3,benigno
+4,43,R,1,3,benigno
+5,83,I,4,3,maligno
+4,36,O,1,3,benigno
+4,37,O,1,3,benigno
+4,56,L,1,3,maligno
+5,55,I,4,3,maligno
+5,46,L,?,3,benigno
+4,88,I,4,3,maligno
+5,71,I,4,3,maligno
+4,41,O,1,3,benigno
+5,49,I,4,3,maligno
+3,51,R,1,4,benigno
+4,39,R,3,3,benigno
+4,46,O,1,3,benigno
+5,52,I,4,3,maligno
+5,58,I,4,3,maligno
+4,67,I,5,3,maligno
+5,80,I,4,3,maligno
+3,46,R,?,?,benigno
+3,43,R,?,?,benigno
+4,45,R,1,3,benigno
+5,68,I,4,3,maligno
+4,54,I,4,?,maligno
+4,44,O,3,3,benigno
+5,74,I,3,3,maligno
+5,55,I,5,3,benigno
+4,49,I,4,3,maligno
+4,49,R,1,3,benigno
+5,50,I,3,3,maligno
+5,52,L,5,3,maligno
+4,45,R,1,3,benigno
+4,66,R,1,3,benigno
+4,68,I,4,3,maligno
+4,72,O,1,3,benigno
+5,64,N,?,3,benigno
+2,49,N,3,3,benigno
+3,44,N,4,3,benigno
+5,74,I,4,3,maligno
+5,58,I,4,3,maligno
+4,77,O,3,3,benigno
+4,49,L,1,3,benigno
+4,34,N,?,4,benigno
+5,60,I,3,3,maligno
+5,69,I,3,3,maligno
+4,53,O,1,3,benigno
+3,46,L,4,3,benigno
+5,74,I,4,3,maligno
+4,58,R,1,3,benigno
+5,68,I,4,3,maligno
+5,46,I,3,3,benigno
+5,61,O,4,3,maligno
+5,70,I,3,3,maligno
+5,37,I,4,3,maligno
+3,65,I,5,3,maligno
+4,67,I,4,3,benigno
+5,69,L,4,3,benigno
+5,76,I,4,3,maligno
+4,65,I,3,3,benigno
+5,72,I,2,3,maligno
+4,62,I,2,3,benigno
+5,42,I,4,3,maligno
+5,66,I,3,3,maligno
+5,48,I,4,3,maligno
+4,35,R,1,3,benigno
+5,60,I,4,3,maligno
+5,67,I,2,3,maligno
+5,78,I,4,3,maligno
+4,66,R,1,3,maligno
+4,26,R,1,?,benigno
+4,48,R,1,3,benigno
+4,31,R,1,3,benigno
+5,43,I,3,3,maligno
+5,72,O,4,3,benigno
+5,66,R,1,3,maligno
+4,56,I,4,3,benigno
+5,58,I,5,3,maligno
+5,33,O,4,3,maligno
+4,37,R,1,3,benigno
+5,36,I,3,3,maligno
+4,39,O,3,3,benigno
+4,39,I,4,3,maligno
+5,83,I,4,3,maligno
+4,68,I,5,3,maligno
+5,63,L,4,3,maligno
+5,78,I,4,3,maligno
+4,38,O,3,3,benigno
+5,46,I,3,3,maligno
+5,60,I,4,3,maligno
+5,56,O,3,3,maligno
+4,33,R,1,3,benigno
+4,?,I,5,3,maligno
+4,69,R,5,3,maligno
+5,66,R,4,3,maligno
+4,72,R,3,3,benigno
+4,29,R,1,3,benigno
+5,54,I,5,3,maligno
+5,80,I,4,3,maligno
+5,68,I,3,3,maligno
+4,35,O,1,3,benigno
+4,57,L,?,3,benigno
+5,?,I,4,3,maligno
+4,50,R,1,3,benigno
+4,32,I,3,3,benigno
+0,69,I,5,3,maligno
+4,71,I,5,3,maligno
+5,87,I,5,3,maligno
+3,40,O,?,3,benigno
+4,31,R,1,?,benigno
+4,64,R,1,3,benigno
+5,55,I,5,3,maligno
+4,18,R,1,3,benigno
+3,50,O,1,?,benigno
+4,53,R,1,3,benigno
+5,84,I,5,3,maligno
+5,80,I,3,3,maligno
+4,32,R,1,3,benigno
+5,77,L,4,3,maligno
+4,38,R,1,3,benigno
+5,54,I,5,3,maligno
+4,63,R,1,3,benigno
+4,61,R,1,3,benigno
+4,52,R,1,3,benigno
+4,36,R,1,3,benigno
+4,41,N,?,3,benigno
+4,59,R,1,3,benigno
+5,51,I,4,2,maligno
+4,36,R,1,3,benigno
+5,40,I,3,3,maligno
+4,49,R,1,3,benigno
+4,37,O,3,3,benigno
+4,46,R,1,3,benigno
+4,63,R,1,3,benigno
+4,28,O,1,3,benigno
+4,47,O,1,3,benigno
+4,42,O,1,3,maligno
+5,44,I,5,3,maligno
+4,49,I,4,3,benigno
+5,47,I,5,3,maligno
+5,52,I,5,3,maligno
+4,53,R,1,3,maligno
+5,83,L,3,3,maligno
+4,50,I,4,?,maligno
+5,63,I,4,3,maligno
+4,82,N,5,3,maligno
+4,54,R,1,3,benigno
+4,50,I,4,3,benigno
+5,80,I,5,3,maligno
+5,45,O,4,3,benigno
+5,59,I,4,?,maligno
+4,28,O,1,3,benigno
+4,31,R,1,3,benigno
+4,41,O,1,3,benigno
+4,21,L,1,3,benigno
+5,44,L,4,3,maligno
+5,49,I,4,3,maligno
+5,71,I,5,3,maligno
+5,75,I,5,3,maligno
+4,38,O,1,3,benigno
+4,60,R,3,3,benigno
+5,87,I,5,3,maligno
+4,70,I,4,3,maligno
+5,55,I,5,3,maligno
+3,21,R,1,3,benigno
+4,50,R,1,3,benigno
+5,76,I,5,3,maligno
+4,23,R,1,3,benigno
+3,68,N,?,3,benigno
+4,62,I,?,3,maligno
+5,65,R,?,3,maligno
+5,73,I,5,3,maligno
+4,38,O,3,3,benigno
+2,57,R,1,3,benigno
+5,65,I,5,3,maligno
+5,67,O,4,3,maligno
+5,61,O,4,3,maligno
+5,56,I,4,3,benigno
+5,71,O,4,3,maligno
+4,49,O,2,3,benigno
+4,55,N,?,3,benigno
+4,44,O,1,3,benigno
+0,58,I,4,3,benigno
+4,27,O,1,3,benigno
+5,73,I,5,3,maligno
+4,34,O,1,3,benigno
+5,63,N,4,3,maligno
+4,50,O,1,3,maligno
+4,62,O,1,3,benigno
+3,21,L,1,3,benigno
+4,49,O,?,3,benigno
+4,36,L,1,3,benigno
+4,45,O,1,3,maligno
+5,67,I,5,3,maligno
+4,21,R,1,3,benigno
+4,57,O,1,3,benigno
+5,66,I,5,3,maligno
+4,71,I,4,3,maligno
+5,69,L,4,3,maligno
+6,80,I,5,3,maligno
+3,27,O,1,3,benigno
+4,38,O,1,3,benigno
+4,23,O,1,3,benigno
+5,70,N,5,3,maligno
+4,46,I,3,3,benigno
+4,61,O,3,3,benigno
+5,65,I,5,3,maligno
+4,60,I,3,3,benigno
+5,83,I,5,3,maligno
+5,40,I,4,3,maligno
+2,59,N,4,3,benigno
+4,53,L,4,3,benigno
+4,76,I,4,3,benigno
+5,79,R,4,3,maligno
+5,38,O,4,3,maligno
+4,61,L,4,3,benigno
+4,56,O,1,3,benigno
+4,44,O,1,3,benigno
+4,64,L,4,?,maligno
+4,66,L,3,3,benigno
+4,50,L,3,3,benigno
+4,46,R,1,3,benigno
+4,39,R,1,3,benigno
+4,60,L,?,?,benigno
+5,55,I,5,3,maligno
+4,40,O,1,3,benigno
+4,26,R,1,3,benigno
+5,84,L,2,3,maligno
+4,41,O,2,3,benigno
+4,63,R,1,3,benigno
+2,65,N,1,2,benigno
+4,49,R,1,3,benigno
+4,56,O,2,3,maligno
+5,65,I,4,3,benigno
+4,54,R,1,3,benigno
+4,36,R,1,3,benigno
+5,49,I,4,3,benigno
+4,59,I,4,3,maligno
+5,75,I,4,3,maligno
+5,59,I,2,3,benigno
+5,59,I,4,3,maligno
+4,28,I,4,3,maligno
+5,53,I,5,3,benigno
+5,57,I,4,3,benigno
+5,77,I,3,4,benigno
+5,85,I,3,3,maligno
+4,59,I,4,3,benigno
+5,59,R,5,3,maligno
+4,65,L,3,3,maligno
+4,54,O,1,3,benigno
+5,46,I,5,3,maligno
+4,63,I,4,3,maligno
+4,53,R,1,3,maligno
+4,56,R,1,3,benigno
+5,66,I,4,3,maligno
+5,66,I,5,3,maligno
+4,55,R,1,3,benigno
+4,44,R,1,3,benigno
+5,86,L,4,3,maligno
+5,47,I,5,3,maligno
+5,59,I,5,3,maligno
+5,66,I,5,3,benigno
+5,61,I,3,3,maligno
+3,46,N,5,?,maligno
+4,69,R,1,3,benigno
+5,93,R,5,3,maligno
+4,39,R,3,3,benigno
+5,44,I,5,3,maligno
+4,45,O,2,3,benigno
+4,51,L,4,3,benigno
+4,56,O,4,3,benigno
+4,66,I,4,3,benigno
+5,61,I,5,3,maligno
+4,64,L,3,3,maligno
+5,57,O,4,3,benigno
+5,79,I,4,3,maligno
+4,57,O,1,?,benigno
+4,44,I,1,1,benigno
+4,31,O,1,3,benigno
+4,63,I,4,3,benigno
+4,64,R,1,3,benigno
+5,47,I,5,3,benigno
+5,68,I,5,3,maligno
+4,30,R,1,3,benigno
+5,43,I,5,3,maligno
+4,56,R,1,3,benigno
+4,46,O,1,3,benigno
+4,67,O,1,3,benigno
+5,52,I,5,3,maligno
+4,67,I,4,3,maligno
+4,47,O,1,3,benigno
+5,58,I,5,3,maligno
+4,28,O,1,3,benigno
+4,43,R,1,3,benigno
+4,57,O,4,3,benigno
+5,68,I,5,3,maligno
+4,64,O,4,3,benigno
+4,64,O,4,3,benigno
+5,62,I,4,3,maligno
+4,38,I,1,3,benigno
+5,68,I,4,3,maligno
+4,41,O,1,3,benigno
+4,35,O,1,3,maligno
+4,68,O,1,3,benigno
+5,55,I,4,3,maligno
+5,67,I,4,3,maligno
+4,51,I,3,3,benigno
+2,40,R,1,3,benigno
+5,73,I,4,3,maligno
+4,58,N,4,3,maligno
+4,51,N,4,3,benigno
+3,50,N,?,3,maligno
+5,59,I,3,3,maligno
+6,60,L,5,3,maligno
+4,27,O,1,?,benigno
+5,54,I,3,3,benigno
+4,56,R,1,3,benigno
+5,53,I,5,3,maligno
+4,54,O,4,3,benigno
+5,79,R,4,3,maligno
+5,67,I,3,3,maligno
+5,64,L,3,3,maligno
+4,70,R,2,3,maligno
+5,55,I,3,3,maligno
+5,65,L,3,3,maligno
+5,45,I,2,3,maligno
+4,57,I,4,?,maligno
+5,49,R,1,3,maligno
+4,24,O,1,3,benigno
+4,52,R,1,3,benigno
+4,50,O,1,3,benigno
+4,35,R,1,3,benigno
+5,?,L,3,3,maligno
+5,64,I,3,3,maligno
+5,40,I,1,1,maligno
+5,66,I,4,3,maligno
+4,64,I,4,3,maligno
+5,52,I,3,3,maligno
+5,43,R,4,3,maligno
+4,56,I,4,3,benigno
+4,72,L,?,3,benigno
+6,51,I,4,3,maligno
+4,79,I,4,3,maligno
+4,22,O,1,3,benigno
+4,73,O,1,3,benigno
+4,53,L,4,3,benigno
+4,59,O,1,3,maligno
+4,46,I,4,2,benigno
+5,66,I,4,3,maligno
+4,50,I,3,3,maligno
+4,58,R,1,3,maligno
+4,55,R,1,3,benigno
+4,62,O,4,3,maligno
+4,60,R,1,3,benigno
+5,57,I,3,3,maligno
+4,57,R,1,3,benigno
+6,41,O,1,3,benigno
+4,71,O,1,3,maligno
+4,32,O,1,3,benigno
+4,57,O,1,3,benigno
+4,19,R,1,3,benigno
+4,62,O,4,3,maligno
+5,67,I,5,3,maligno
+4,50,I,5,3,benigno
+4,65,O,3,2,benigno
+4,40,O,4,2,benigno
+6,71,I,4,3,maligno
+6,68,I,3,3,maligno
+4,68,R,1,3,benigno
+4,29,R,1,3,benigno
+4,53,O,1,3,benigno
+5,66,I,4,3,maligno
+4,60,L,?,4,benigno
+5,76,I,4,3,maligno
+4,58,O,1,2,benigno
+5,96,L,4,3,maligno
+5,70,I,4,3,maligno
+4,34,O,1,3,benigno
+4,59,O,1,3,benigno
+4,45,L,1,3,maligno
+5,65,I,4,3,maligno
+4,59,R,1,3,benigno
+4,21,O,1,3,benigno
+3,43,O,1,3,benigno
+4,53,R,1,3,benigno
+4,65,O,1,3,benigno
+4,64,O,4,3,maligno
+4,53,I,4,3,benigno
+4,51,R,1,3,benigno
+4,59,O,4,3,benigno
+4,56,O,1,3,benigno
+4,60,O,1,3,benigno
+4,22,R,1,3,benigno
+4,25,O,1,3,benigno
+6,76,L,?,3,benigno
+5,69,I,4,3,maligno
+4,58,O,1,3,benigno
+5,62,I,3,3,maligno
+4,56,I,4,3,benigno
+4,64,R,1,3,benigno
+4,32,O,1,3,benigno
+5,48,N,4,?,maligno
+5,59,I,4,2,maligno
+4,52,R,1,3,benigno
+4,63,I,4,3,benigno
+5,67,I,4,3,maligno
+5,61,I,4,3,maligno
+5,59,I,5,3,maligno
+5,52,I,3,3,maligno
+4,35,I,4,3,benigno
+5,77,L,3,3,maligno
+5,71,I,3,3,maligno
+5,63,I,3,3,maligno
+4,38,O,1,2,benigno
+5,72,I,3,3,maligno
+4,76,I,3,3,maligno
+4,53,L,3,3,benigno
+4,67,I,5,3,benigno
+5,69,O,4,3,maligno
+4,54,R,1,3,benigno
+2,35,O,1,2,benigno
+5,68,I,3,3,maligno
+4,68,I,4,3,benigno
+4,67,O,4,3,maligno
+3,39,R,1,3,benigno
+4,44,O,1,3,benigno
+4,33,R,1,3,benigno
+4,60,N,4,3,benigno
+4,58,R,1,3,benigno
+4,31,R,1,3,benigno
+3,23,R,1,3,benigno
+5,56,I,5,3,maligno
+4,69,O,1,3,maligno
+6,63,R,1,3,benigno
+4,65,R,1,3,maligno
+4,44,O,1,2,benigno
+4,62,L,3,3,maligno
+4,67,I,4,3,maligno
+4,56,O,1,3,benigno
+4,52,L,4,3,benigno
+4,43,R,1,3,maligno
+4,41,I,3,2,maligno
+4,42,L,4,2,benigno
+3,46,R,1,3,benigno
+5,55,I,4,3,maligno
+5,58,I,4,2,maligno
+5,87,I,4,3,maligno
+4,66,O,1,3,benigno
+0,72,I,3,3,maligno
+5,60,I,3,3,maligno
+5,83,I,4,2,maligno
+4,31,O,1,3,benigno
+4,53,O,1,3,benigno
+4,64,O,3,3,benigno
+5,31,I,4,2,maligno
+5,62,I,4,2,maligno
+4,56,O,1,3,benigno
+5,58,I,4,3,maligno
+4,67,R,4,3,benigno
+5,75,I,5,3,maligno
+5,65,L,4,3,maligno
+5,74,L,2,3,maligno
+4,59,O,1,3,benigno
+4,57,I,4,4,maligno
+4,76,L,2,3,benigno
+4,63,R,4,3,benigno
+4,44,R,1,3,benigno
+4,42,L,1,2,benigno
+4,35,L,?,2,benigno
+5,65,I,3,3,maligno
+4,70,O,1,3,benigno
+4,48,R,1,3,benigno
+4,74,R,1,1,maligno
+6,40,N,3,4,maligno
+4,63,R,1,3,benigno
+5,60,I,4,3,maligno
+5,86,I,3,3,maligno
+4,27,R,1,3,benigno
+4,71,I,5,2,maligno
+5,85,I,4,3,maligno
+4,51,L,3,3,benigno
+6,72,I,3,3,maligno
+5,52,I,4,3,maligno
+4,66,O,1,3,benigno
+5,71,I,5,3,maligno
+4,42,O,1,3,benigno
+4,64,I,4,2,maligno
+4,41,O,2,3,benigno
+4,50,O,1,3,benigno
+4,30,R,1,3,benigno
+4,67,R,1,3,benigno
+5,62,I,4,3,maligno
+4,46,O,1,2,benigno
+4,35,R,1,3,benigno
+4,53,R,1,2,benigno
+4,59,O,1,3,benigno
+4,19,L,1,3,benigno
+5,86,O,1,3,maligno
+4,72,O,1,3,benigno
+4,37,O,1,2,benigno
+4,46,L,1,3,maligno
+4,45,R,1,3,benigno
+4,48,I,5,3,benigno
+4,58,I,4,3,maligno
+4,42,R,1,3,benigno
+4,56,O,4,3,maligno
+4,47,O,1,3,benigno
+4,49,I,4,3,maligno
+5,76,O,5,3,maligno
+5,62,I,5,3,maligno
+5,64,I,4,3,maligno
+5,53,I,3,3,maligno
+4,70,I,2,2,maligno
+5,55,I,4,3,maligno
+4,34,I,4,3,benigno
+5,76,I,4,3,maligno
+4,39,R,1,3,benigno
+2,23,R,1,3,benigno
+4,19,R,1,3,benigno
+5,65,I,5,3,maligno
+4,57,O,1,3,benigno
+5,41,I,4,3,maligno
+4,36,I,5,3,maligno
+4,62,L,3,3,benigno
+4,69,O,1,3,benigno
+4,41,L,1,3,benigno
+3,51,O,4,3,benigno
+5,50,L,2,3,maligno
+4,47,I,4,3,benigno
+4,54,I,5,3,maligno
+5,52,I,4,3,maligno
+4,30,R,1,3,benigno
+3,48,I,4,3,maligno
+5,?,I,4,3,maligno
+4,65,O,4,3,maligno
+4,50,R,1,3,benigno
+5,65,I,5,3,maligno
+5,66,I,3,3,maligno
+6,41,L,3,2,maligno
+5,72,L,2,3,maligno
+4,42,R,1,1,maligno
+4,80,I,4,3,maligno
+0,45,O,4,3,benigno
+4,41,R,1,3,benigno
+4,72,L,3,3,maligno
+4,60,I,5,3,benigno
+5,67,I,3,3,maligno
+4,55,O,1,3,benigno
+4,61,L,4,3,maligno
+4,55,L,4,3,maligno
+4,52,I,4,3,maligno
+4,42,R,1,3,benigno
+5,63,I,4,3,maligno
+4,62,I,5,3,maligno
+4,46,R,1,3,benigno
+4,65,O,1,3,benigno
+4,57,L,3,3,maligno
+4,66,I,5,3,maligno
+4,45,R,1,3,benigno
+4,77,I,5,3,maligno
+4,35,R,1,3,benigno
+4,50,I,5,3,maligno
+4,57,I,4,3,benigno
+4,74,L,1,3,maligno
+4,59,I,5,3,benigno
+4,51,R,1,3,benigno
+4,42,L,4,3,maligno
+4,35,O,4,3,benigno
+4,42,R,1,3,benigno
+4,43,O,1,3,benigno
+4,62,I,4,3,maligno
+4,27,O,1,3,benigno
+5,?,I,3,3,maligno
+4,57,I,4,3,maligno
+4,59,O,1,3,benigno
+5,40,L,2,3,maligno
+4,20,R,1,3,benigno
+5,74,I,3,3,maligno
+4,22,R,1,3,benigno
+4,57,I,3,3,benigno
+4,57,I,3,3,maligno
+4,55,O,1,2,benigno
+4,62,O,1,3,benigno
+4,54,R,1,3,benigno
+4,71,R,1,3,maligno
+4,65,L,3,3,benigno
+4,68,I,4,3,benigno
+4,64,R,1,3,benigno
+4,54,O,4,3,benigno
+4,48,I,4,3,maligno
+4,58,I,3,3,benigno
+5,58,L,4,3,maligno
+4,70,R,1,1,benigno
+5,70,R,4,3,maligno
+4,59,O,1,3,benigno
+4,57,O,4,3,benigno
+4,53,I,5,3,benigno
+4,54,I,4,3,maligno
+4,53,O,1,3,benigno
+0,71,I,4,3,maligno
+5,67,I,5,3,maligno
+4,68,I,4,3,maligno
+4,56,O,4,3,benigno
+4,35,O,1,3,benigno
+4,52,I,4,3,maligno
+4,47,O,1,3,benigno
+4,56,I,5,3,maligno
+4,64,I,5,3,benigno
+5,66,I,5,3,maligno
+4,62,L,3,3,benigno
diff --git a/src/preprocessing.py b/src/preprocessing.py
new file mode 100644
index 0000000..c6335a8
--- /dev/null
+++ b/src/preprocessing.py
@@ -0,0 +1,49 @@
+from pandas import read_csv
+from sklearn.preprocessing import LabelEncoder
+from sklearn.model_selection import KFold
+
+
+def replace_values(df):
+    columns = ["BI-RADS", "Margin", "Density", "Age"]
+    for column in columns:
+        df[column].fillna(value=df[column].mean(), inplace=True)
+    return df
+
+
+def process_na(df, action):
+    if action == "drop":
+        return df.dropna()
+    elif action == "fill":
+        return replace_values(df)
+    else:
+        print("Unknown action selected. The choices are: ")
+        print("fill: fills the na values with the mean")
+        print("drop: drops the na values")
+        exit()
+
+
+def encode_columns(df):
+    label_encoder = LabelEncoder()
+    encoded_df = df.copy()
+    encoded_df["Shape"] = label_encoder.fit_transform(df["Shape"])
+    encoded_df["Severity"] = label_encoder.fit_transform(df["Severity"])
+    return encoded_df
+
+
+def split_train_target(df):
+    train_data = df.drop(columns=["Severity"])
+    target_data = df["Severity"]
+    return train_data, target_data
+
+
+def split_k_sets(df):
+    k_fold = KFold(shuffle=True, random_state=42)
+    return k_fold.split(df)
+
+
+def parse_data(source, action):
+    df = read_csv(filepath_or_buffer=source, na_values="?")
+    processed_df = process_na(df=df, action=action)
+    encoded_df = encode_columns(df=processed_df)
+    test_data, target_data = split_train_target(df=encoded_df)
+    return test_data, target_data
diff --git a/src/processing.py b/src/processing.py
new file mode 100644
index 0000000..8e6c704
--- /dev/null
+++ b/src/processing.py
@@ -0,0 +1,89 @@
+from numpy import mean
+from sklearn.metrics import confusion_matrix, accuracy_score, roc_auc_score
+from sklearn.model_selection import cross_val_score
+from sklearn.naive_bayes import GaussianNB
+from sklearn.neural_network import MLPClassifier
+from sklearn.neighbors import KNeighborsClassifier
+from sklearn.preprocessing import scale
+from sklearn.svm import LinearSVC
+from sklearn.tree import DecisionTreeClassifier
+
+from sys import argv
+
+from preprocessing import parse_data, split_k_sets
+
+
+def choose_model(model):
+    if model == "gnb":
+        return GaussianNB()
+    elif model == "svc":
+        return LinearSVC(random_state=42)
+    elif model == "knn":
+        return KNeighborsClassifier(n_neighbors=10)
+    elif model == "tree":
+        return DecisionTreeClassifier(random_state=42)
+    elif model == "neuralnet":
+        return MLPClassifier(hidden_layer_sizes=10)
+    else:
+        print("Unknown model selected. The choices are: ")
+        print("gnb: Gaussian Naive Bayes")
+        print("svc: Linear Support Vector Classification")
+        print("knn: K-neighbors")
+        print("tree: Decision tree")
+        print("neuralnet: MLP Classifier")
+        exit()
+
+
+def predict_data(data, target, model):
+    model = choose_model(model)
+    if model == "knn":
+        data = scale(data)
+    accuracy_scores = []
+    confusion_matrices = []
+    auc = []
+    for train_index, test_index in split_k_sets(data):
+        model.fit(data.iloc[train_index], target.iloc[train_index])
+        prediction = model.predict(data.iloc[test_index])
+        accuracy_scores.append(accuracy_score(target.iloc[test_index], prediction))
+        confusion_matrices.append(confusion_matrix(target.iloc[test_index], prediction))
+        auc.append(roc_auc_score(target.iloc[test_index], prediction))
+    cv_score = cross_val_score(model, data, target, cv=10)
+    evaluate_performance(
+        confusion_matrix=mean(confusion_matrices, axis=0),
+        accuracy=mean(accuracy_scores),
+        cv_score=mean(cv_score),
+        auc=mean(auc),
+    )
+
+
+def evaluate_performance(confusion_matrix, accuracy, cv_score, auc):
+    print("Accuracy Score: " + str(accuracy))
+    print("Confusion matrix: ")
+    print(str(confusion_matrix))
+    print("Cross validation score: " + str(cv_score))
+    print("AUC: " + str(auc))
+
+
+def usage():
+    print("Usage: " + argv[0] + "<preprocessing action> <model>")
+    print("preprocessing actions:")
+    print("fill: fills the na values with the mean")
+    print("drop: drops the na values")
+    print("models:")
+    print("gnb: Gaussian Naive Bayes")
+    print("svc: Linear Support Vector Classification")
+    print("knn: K-neighbors")
+    print("tree: Decision tree")
+    print("neuralnet: MLP Classifier")
+    exit()
+
+
+def main():
+    if len(argv) != 3:
+        usage()
+    data, target = parse_data(source="data/mamografia.csv", action=str(argv[1]))
+    predict_data(data=data, target=target, model=str(argv[2]))
+
+
+if __name__ == "__main__":
+    main()