Carlos-Francisco Méndez-Cruz

Classification Iris data set

1 +Iris-setosa
2 +Iris-setosa
3 +Iris-setosa
4 +Iris-setosa
5 +Iris-setosa
6 +Iris-setosa
7 +Iris-setosa
8 +Iris-setosa
9 +Iris-setosa
10 +Iris-setosa
11 +Iris-setosa
12 +Iris-setosa
13 +Iris-setosa
14 +Iris-setosa
15 +Iris-setosa
16 +Iris-setosa
17 +Iris-setosa
18 +Iris-setosa
19 +Iris-setosa
20 +Iris-setosa
21 +Iris-setosa
22 +Iris-setosa
23 +Iris-setosa
24 +Iris-setosa
25 +Iris-setosa
26 +Iris-setosa
27 +Iris-setosa
28 +Iris-setosa
29 +Iris-setosa
30 +Iris-setosa
31 +Iris-setosa
32 +Iris-setosa
33 +Iris-setosa
34 +Iris-setosa
35 +Iris-setosa
36 +Iris-setosa
37 +Iris-setosa
38 +Iris-setosa
39 +Iris-setosa
40 +Iris-setosa
41 +Iris-setosa
42 +Iris-setosa
43 +Iris-setosa
44 +Iris-setosa
45 +Iris-setosa
46 +Iris-setosa
47 +Iris-setosa
48 +Iris-setosa
49 +Iris-setosa
50 +Iris-setosa
51 +Iris-versicolor
52 +Iris-versicolor
53 +Iris-versicolor
54 +Iris-versicolor
55 +Iris-versicolor
56 +Iris-versicolor
57 +Iris-versicolor
58 +Iris-versicolor
59 +Iris-versicolor
60 +Iris-versicolor
61 +Iris-versicolor
62 +Iris-versicolor
63 +Iris-versicolor
64 +Iris-versicolor
65 +Iris-versicolor
66 +Iris-versicolor
67 +Iris-versicolor
68 +Iris-versicolor
69 +Iris-versicolor
70 +Iris-versicolor
71 +Iris-versicolor
72 +Iris-versicolor
73 +Iris-versicolor
74 +Iris-versicolor
75 +Iris-versicolor
76 +Iris-versicolor
77 +Iris-versicolor
78 +Iris-versicolor
79 +Iris-versicolor
80 +Iris-versicolor
81 +Iris-versicolor
82 +Iris-versicolor
83 +Iris-versicolor
84 +Iris-versicolor
85 +Iris-versicolor
86 +Iris-versicolor
87 +Iris-versicolor
88 +Iris-versicolor
89 +Iris-versicolor
90 +Iris-versicolor
91 +Iris-versicolor
92 +Iris-versicolor
93 +Iris-versicolor
94 +Iris-versicolor
95 +Iris-versicolor
96 +Iris-versicolor
97 +Iris-versicolor
98 +Iris-versicolor
99 +Iris-versicolor
100 +Iris-versicolor
101 +Iris-virginica
102 +Iris-virginica
103 +Iris-virginica
104 +Iris-virginica
105 +Iris-virginica
106 +Iris-virginica
107 +Iris-virginica
108 +Iris-virginica
109 +Iris-virginica
110 +Iris-virginica
111 +Iris-virginica
112 +Iris-virginica
113 +Iris-virginica
114 +Iris-virginica
115 +Iris-virginica
116 +Iris-virginica
117 +Iris-virginica
118 +Iris-virginica
119 +Iris-virginica
120 +Iris-virginica
121 +Iris-virginica
122 +Iris-virginica
123 +Iris-virginica
124 +Iris-virginica
125 +Iris-virginica
126 +Iris-virginica
127 +Iris-virginica
128 +Iris-virginica
129 +Iris-virginica
130 +Iris-virginica
131 +Iris-virginica
132 +Iris-virginica
133 +Iris-virginica
134 +Iris-virginica
135 +Iris-virginica
136 +Iris-virginica
137 +Iris-virginica
138 +Iris-virginica
139 +Iris-virginica
140 +Iris-virginica
141 +Iris-virginica
142 +Iris-virginica
143 +Iris-virginica
144 +Iris-virginica
145 +Iris-virginica
146 +Iris-virginica
147 +Iris-virginica
148 +Iris-virginica
149 +Iris-virginica
150 +Iris-virginica
...\ No newline at end of file ...\ No newline at end of file
1 +5.1 3.5 1.4 0.2
2 +4.9 3 1.4 0.2
3 +4.7 3.2 1.3 0.2
4 +4.6 3.1 1.5 0.2
5 +5 3.6 1.4 0.2
6 +5.4 3.9 1.7 0.4
7 +4.6 3.4 1.4 0.3
8 +5 3.4 1.5 0.2
9 +4.4 2.9 1.4 0.2
10 +4.9 3.1 1.5 0.1
11 +5.4 3.7 1.5 0.2
12 +4.8 3.4 1.6 0.2
13 +4.8 3 1.4 0.1
14 +4.3 3 1.1 0.1
15 +5.8 4 1.2 0.2
16 +5.7 4.4 1.5 0.4
17 +5.4 3.9 1.3 0.4
18 +5.1 3.5 1.4 0.3
19 +5.7 3.8 1.7 0.3
20 +5.1 3.8 1.5 0.3
21 +5.4 3.4 1.7 0.2
22 +5.1 3.7 1.5 0.4
23 +4.6 3.6 1 0.2
24 +5.1 3.3 1.7 0.5
25 +4.8 3.4 1.9 0.2
26 +5 3 1.6 0.2
27 +5 3.4 1.6 0.4
28 +5.2 3.5 1.5 0.2
29 +5.2 3.4 1.4 0.2
30 +4.7 3.2 1.6 0.2
31 +4.8 3.1 1.6 0.2
32 +5.4 3.4 1.5 0.4
33 +5.2 4.1 1.5 0.1
34 +5.5 4.2 1.4 0.2
35 +4.9 3.1 1.5 0.1
36 +5 3.2 1.2 0.2
37 +5.5 3.5 1.3 0.2
38 +4.9 3.1 1.5 0.1
39 +4.4 3 1.3 0.2
40 +5.1 3.4 1.5 0.2
41 +5 3.5 1.3 0.3
42 +4.5 2.3 1.3 0.3
43 +4.4 3.2 1.3 0.2
44 +5 3.5 1.6 0.6
45 +5.1 3.8 1.9 0.4
46 +4.8 3 1.4 0.3
47 +5.1 3.8 1.6 0.2
48 +4.6 3.2 1.4 0.2
49 +5.3 3.7 1.5 0.2
50 +5 3.3 1.4 0.2
51 +7 3.2 4.7 1.4
52 +6.4 3.2 4.5 1.5
53 +6.9 3.1 4.9 1.5
54 +5.5 2.3 4 1.3
55 +6.5 2.8 4.6 1.5
56 +5.7 2.8 4.5 1.3
57 +6.3 3.3 4.7 1.6
58 +4.9 2.4 3.3 1
59 +6.6 2.9 4.6 1.3
60 +5.2 2.7 3.9 1.4
61 +5 2 3.5 1
62 +5.9 3 4.2 1.5
63 +6 2.2 4 1
64 +6.1 2.9 4.7 1.4
65 +5.6 2.9 3.6 1.3
66 +6.7 3.1 4.4 1.4
67 +5.6 3 4.5 1.5
68 +5.8 2.7 4.1 1
69 +6.2 2.2 4.5 1.5
70 +5.6 2.5 3.9 1.1
71 +5.9 3.2 4.8 1.8
72 +6.1 2.8 4 1.3
73 +6.3 2.5 4.9 1.5
74 +6.1 2.8 4.7 1.2
75 +6.4 2.9 4.3 1.3
76 +6.6 3 4.4 1.4
77 +6.8 2.8 4.8 1.4
78 +6.7 3 5 1.7
79 +6 2.9 4.5 1.5
80 +5.7 2.6 3.5 1
81 +5.5 2.4 3.8 1.1
82 +5.5 2.4 3.7 1
83 +5.8 2.7 3.9 1.2
84 +6 2.7 5.1 1.6
85 +5.4 3 4.5 1.5
86 +6 3.4 4.5 1.6
87 +6.7 3.1 4.7 1.5
88 +6.3 2.3 4.4 1.3
89 +5.6 3 4.1 1.3
90 +5.5 2.5 4 1.3
91 +5.5 2.6 4.4 1.2
92 +6.1 3 4.6 1.4
93 +5.8 2.6 4 1.2
94 +5 2.3 3.3 1
95 +5.6 2.7 4.2 1.3
96 +5.7 3 4.2 1.2
97 +5.7 2.9 4.2 1.3
98 +6.2 2.9 4.3 1.3
99 +5.1 2.5 3 1.1
100 +5.7 2.8 4.1 1.3
101 +6.3 3.3 6 2.5
102 +5.8 2.7 5.1 1.9
103 +7.1 3 5.9 2.1
104 +6.3 2.9 5.6 1.8
105 +6.5 3 5.8 2.2
106 +7.6 3 6.6 2.1
107 +4.9 2.5 4.5 1.7
108 +7.3 2.9 6.3 1.8
109 +6.7 2.5 5.8 1.8
110 +7.2 3.6 6.1 2.5
111 +6.5 3.2 5.1 2
112 +6.4 2.7 5.3 1.9
113 +6.8 3 5.5 2.1
114 +5.7 2.5 5 2
115 +5.8 2.8 5.1 2.4
116 +6.4 3.2 5.3 2.3
117 +6.5 3 5.5 1.8
118 +7.7 3.8 6.7 2.2
119 +7.7 2.6 6.9 2.3
120 +6 2.2 5 1.5
121 +6.9 3.2 5.7 2.3
122 +5.6 2.8 4.9 2
123 +7.7 2.8 6.7 2
124 +6.3 2.7 4.9 1.8
125 +6.7 3.3 5.7 2.1
126 +7.2 3.2 6 1.8
127 +6.2 2.8 4.8 1.8
128 +6.1 3 4.9 1.8
129 +6.4 2.8 5.6 2.1
130 +7.2 3 5.8 1.6
131 +7.4 2.8 6.1 1.9
132 +7.9 3.8 6.4 2
133 +6.4 2.8 5.6 2.2
134 +6.3 2.8 5.1 1.5
135 +6.1 2.6 5.6 1.4
136 +7.7 3 6.1 2.3
137 +6.3 3.4 5.6 2.4
138 +6.4 3.1 5.5 1.8
139 +6 3 4.8 1.8
140 +6.9 3.1 5.4 2.1
141 +6.7 3.1 5.6 2.4
142 +6.9 3.1 5.1 2.3
143 +5.8 2.7 5.1 1.9
144 +6.8 3.2 5.9 2.3
145 +6.7 3.3 5.7 2.5
146 +6.7 3 5.2 2.3
147 +6.3 2.5 5 1.9
148 +6.5 3 5.2 2
149 +6.2 3.4 5.4 2.3
150 +5.9 3 5.1 1.8
...\ No newline at end of file ...\ No newline at end of file
1 +Iris-setosa
2 +Iris-setosa
3 +Iris-setosa
4 +Iris-setosa
5 +Iris-setosa
6 +Iris-setosa
7 +Iris-setosa
8 +Iris-setosa
9 +Iris-setosa
10 +Iris-setosa
11 +Iris-setosa
12 +Iris-setosa
13 +Iris-setosa
14 +Iris-setosa
15 +Iris-setosa
16 +Iris-setosa
17 +Iris-versicolor
18 +Iris-versicolor
19 +Iris-versicolor
20 +Iris-versicolor
21 +Iris-versicolor
22 +Iris-versicolor
23 +Iris-versicolor
24 +Iris-versicolor
25 +Iris-versicolor
26 +Iris-versicolor
27 +Iris-versicolor
28 +Iris-versicolor
29 +Iris-versicolor
30 +Iris-versicolor
31 +Iris-versicolor
32 +Iris-virginica
33 +Iris-virginica
34 +Iris-virginica
35 +Iris-virginica
36 +Iris-virginica
37 +Iris-virginica
38 +Iris-virginica
39 +Iris-virginica
40 +Iris-virginica
41 +Iris-virginica
42 +Iris-virginica
43 +Iris-virginica
44 +Iris-virginica
45 +Iris-virginica
...\ No newline at end of file ...\ No newline at end of file
1 +5.1 3.5 1.4 0.2
2 +4.9 3 1.4 0.2
3 +4.7 3.2 1.3 0.2
4 +4.6 3.1 1.5 0.2
5 +5 3.6 1.4 0.2
6 +5.4 3.9 1.7 0.4
7 +4.6 3.4 1.4 0.3
8 +5 3.4 1.5 0.2
9 +4.4 2.9 1.4 0.2
10 +4.9 3.1 1.5 0.1
11 +5.4 3.7 1.5 0.2
12 +4.8 3.4 1.6 0.2
13 +4.8 3 1.4 0.1
14 +4.3 3 1.1 0.1
15 +5.8 4 1.2 0.2
16 +5 3.3 1.4 0.2
17 +7 3.2 4.7 1.4
18 +6.4 3.2 4.5 1.5
19 +6.9 3.1 4.9 1.5
20 +5.5 2.3 4 1.3
21 +6.5 2.8 4.6 1.5
22 +5.7 2.8 4.5 1.3
23 +6.3 3.3 4.7 1.6
24 +4.9 2.4 3.3 1
25 +6.6 2.9 4.6 1.3
26 +5.2 2.7 3.9 1.4
27 +5 2 3.5 1
28 +5.9 3 4.2 1.5
29 +6 2.2 4 1
30 +6.1 2.9 4.7 1.4
31 +5.7 2.8 4.1 1.3
32 +6.3 3.3 6 2.5
33 +5.8 2.7 5.1 1.9
34 +7.1 3 5.9 2.1
35 +6.3 2.9 5.6 1.8
36 +6.5 3 5.8 2.2
37 +7.6 3 6.6 2.1
38 +4.9 2.5 4.5 1.7
39 +7.3 2.9 6.3 1.8
40 +6.7 2.5 5.8 1.8
41 +7.2 3.6 6.1 2.5
42 +6.5 3.2 5.1 2
43 +6.4 2.7 5.3 1.9
44 +6.8 3 5.5 2.1
45 +5.7 2.5 5 2
...\ No newline at end of file ...\ No newline at end of file
1 +Iris-setosa
2 +Iris-setosa
3 +Iris-setosa
4 +Iris-setosa
5 +Iris-setosa
6 +Iris-setosa
7 +Iris-setosa
8 +Iris-setosa
9 +Iris-setosa
10 +Iris-setosa
11 +Iris-setosa
12 +Iris-setosa
13 +Iris-setosa
14 +Iris-setosa
15 +Iris-setosa
16 +Iris-setosa
17 +Iris-setosa
18 +Iris-setosa
19 +Iris-setosa
20 +Iris-setosa
21 +Iris-setosa
22 +Iris-setosa
23 +Iris-setosa
24 +Iris-setosa
25 +Iris-setosa
26 +Iris-setosa
27 +Iris-setosa
28 +Iris-setosa
29 +Iris-setosa
30 +Iris-setosa
31 +Iris-setosa
32 +Iris-setosa
33 +Iris-setosa
34 +Iris-setosa
35 +Iris-versicolor
36 +Iris-versicolor
37 +Iris-versicolor
38 +Iris-versicolor
39 +Iris-versicolor
40 +Iris-versicolor
41 +Iris-versicolor
42 +Iris-versicolor
43 +Iris-versicolor
44 +Iris-versicolor
45 +Iris-versicolor
46 +Iris-versicolor
47 +Iris-versicolor
48 +Iris-versicolor
49 +Iris-versicolor
50 +Iris-versicolor
51 +Iris-versicolor
52 +Iris-versicolor
53 +Iris-versicolor
54 +Iris-versicolor
55 +Iris-versicolor
56 +Iris-versicolor
57 +Iris-versicolor
58 +Iris-versicolor
59 +Iris-versicolor
60 +Iris-versicolor
61 +Iris-versicolor
62 +Iris-versicolor
63 +Iris-versicolor
64 +Iris-versicolor
65 +Iris-versicolor
66 +Iris-versicolor
67 +Iris-versicolor
68 +Iris-versicolor
69 +Iris-versicolor
70 +Iris-virginica
71 +Iris-virginica
72 +Iris-virginica
73 +Iris-virginica
74 +Iris-virginica
75 +Iris-virginica
76 +Iris-virginica
77 +Iris-virginica
78 +Iris-virginica
79 +Iris-virginica
80 +Iris-virginica
81 +Iris-virginica
82 +Iris-virginica
83 +Iris-virginica
84 +Iris-virginica
85 +Iris-virginica
86 +Iris-virginica
87 +Iris-virginica
88 +Iris-virginica
89 +Iris-virginica
90 +Iris-virginica
91 +Iris-virginica
92 +Iris-virginica
93 +Iris-virginica
94 +Iris-virginica
95 +Iris-virginica
96 +Iris-virginica
97 +Iris-virginica
98 +Iris-virginica
99 +Iris-virginica
100 +Iris-virginica
101 +Iris-virginica
102 +Iris-virginica
103 +Iris-virginica
104 +Iris-virginica
105 +Iris-virginica
...\ No newline at end of file ...\ No newline at end of file
1 +5.7 4.4 1.5 0.4
2 +5.4 3.9 1.3 0.4
3 +5.1 3.5 1.4 0.3
4 +5.7 3.8 1.7 0.3
5 +5.1 3.8 1.5 0.3
6 +5.4 3.4 1.7 0.2
7 +5.1 3.7 1.5 0.4
8 +4.6 3.6 1 0.2
9 +5.1 3.3 1.7 0.5
10 +4.8 3.4 1.9 0.2
11 +5 3 1.6 0.2
12 +5 3.4 1.6 0.4
13 +5.2 3.5 1.5 0.2
14 +5.2 3.4 1.4 0.2
15 +4.7 3.2 1.6 0.2
16 +4.8 3.1 1.6 0.2
17 +5.4 3.4 1.5 0.4
18 +5.2 4.1 1.5 0.1
19 +5.5 4.2 1.4 0.2
20 +4.9 3.1 1.5 0.1
21 +5 3.2 1.2 0.2
22 +5.5 3.5 1.3 0.2
23 +4.9 3.1 1.5 0.1
24 +4.4 3 1.3 0.2
25 +5.1 3.4 1.5 0.2
26 +5 3.5 1.3 0.3
27 +4.5 2.3 1.3 0.3
28 +4.4 3.2 1.3 0.2
29 +5 3.5 1.6 0.6
30 +5.1 3.8 1.9 0.4
31 +4.8 3 1.4 0.3
32 +5.1 3.8 1.6 0.2
33 +4.6 3.2 1.4 0.2
34 +5.3 3.7 1.5 0.2
35 +5.6 2.9 3.6 1.3
36 +6.7 3.1 4.4 1.4
37 +5.6 3 4.5 1.5
38 +5.8 2.7 4.1 1
39 +6.2 2.2 4.5 1.5
40 +5.6 2.5 3.9 1.1
41 +5.9 3.2 4.8 1.8
42 +6.1 2.8 4 1.3
43 +6.3 2.5 4.9 1.5
44 +6.1 2.8 4.7 1.2
45 +6.4 2.9 4.3 1.3
46 +6.6 3 4.4 1.4
47 +6.8 2.8 4.8 1.4
48 +6.7 3 5 1.7
49 +6 2.9 4.5 1.5
50 +5.7 2.6 3.5 1
51 +5.5 2.4 3.8 1.1
52 +5.5 2.4 3.7 1
53 +5.8 2.7 3.9 1.2
54 +6 2.7 5.1 1.6
55 +5.4 3 4.5 1.5
56 +6 3.4 4.5 1.6
57 +6.7 3.1 4.7 1.5
58 +6.3 2.3 4.4 1.3
59 +5.6 3 4.1 1.3
60 +5.5 2.5 4 1.3
61 +5.5 2.6 4.4 1.2
62 +6.1 3 4.6 1.4
63 +5.8 2.6 4 1.2
64 +5 2.3 3.3 1
65 +5.6 2.7 4.2 1.3
66 +5.7 3 4.2 1.2
67 +5.7 2.9 4.2 1.3
68 +6.2 2.9 4.3 1.3
69 +5.1 2.5 3 1.1
70 +5.8 2.8 5.1 2.4
71 +6.4 3.2 5.3 2.3
72 +6.5 3 5.5 1.8
73 +7.7 3.8 6.7 2.2
74 +7.7 2.6 6.9 2.3
75 +6 2.2 5 1.5
76 +6.9 3.2 5.7 2.3
77 +5.6 2.8 4.9 2
78 +7.7 2.8 6.7 2
79 +6.3 2.7 4.9 1.8
80 +6.7 3.3 5.7 2.1
81 +7.2 3.2 6 1.8
82 +6.2 2.8 4.8 1.8
83 +6.1 3 4.9 1.8
84 +6.4 2.8 5.6 2.1
85 +7.2 3 5.8 1.6
86 +7.4 2.8 6.1 1.9
87 +7.9 3.8 6.4 2
88 +6.4 2.8 5.6 2.2
89 +6.3 2.8 5.1 1.5
90 +6.1 2.6 5.6 1.4
91 +7.7 3 6.1 2.3
92 +6.3 3.4 5.6 2.4
93 +6.4 3.1 5.5 1.8
94 +6 3 4.8 1.8
95 +6.9 3.1 5.4 2.1
96 +6.7 3.1 5.6 2.4
97 +6.9 3.1 5.1 2.3
98 +5.8 2.7 5.1 1.9
99 +6.8 3.2 5.9 2.3
100 +6.7 3.3 5.7 2.5
101 +6.7 3 5.2 2.3
102 +6.3 2.5 5 1.9
103 +6.5 3 5.2 2
104 +6.2 3.4 5.4 2.3
105 +5.9 3 5.1 1.8
...\ No newline at end of file ...\ No newline at end of file
1 +# -*- encoding: utf-8 -*-
2 +
3 +import os
4 +from time import time
5 +import argparse
6 +from sklearn.naive_bayes import MultinomialNB
7 +from sklearn.tree import DecisionTreeClassifier
8 +from sklearn.svm import SVC
9 +from sklearn.linear_model import Perceptron
10 +from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, \
11 + classification_report
12 +
13 +# Author:
14 +# Carlos Méndez-Cruz
15 +
16 +# Goal: training and evaluation using Iris dataset
17 +
18 +# Arguments:
19 +# 1) --inputPath Path to read input files.
20 +# 2) --inputTrainingData File to read training data.
21 +# 3) --inputTrainingClasses File to read training true classes.
22 +# 4) --inputEvaluationData File to read evaluation data.
23 +# 5) --inputEvaluationClasses File to read evaluation true classes.
24 +# 6) --outputPath Path to place output files.
25 +# 7) --outputFile File to place evaluation report.
26 +# 8) --classifier Classifier: MultinomialNB, SVM, DecisionTree, Perceptron.
27 +
28 +# Ouput:
29 +# 1) Evaluation report.
30 +
31 +# Execution:
32 +# python training-evaluation-iris-v1.py
33 +# --inputPath /home/clasificacion/iris-dataset
34 +# --inputTrainingData training-ata.txt
35 +# --inputTrainingClasses training-Classes.txt
36 +# --inputEvaluationData evaluation-data.txt
37 +# --inputEvaluationClasses evaluation-classes.txt
38 +# --outputPath /home/classification/reports
39 +# --outputFile report-iris-svm.txt
40 +# --classifier SVM
41 +
42 +###########################################################
43 +# MAIN PROGRAM #
44 +###########################################################
45 +
46 +if __name__ == "__main__":
47 + parser = argparse.ArgumentParser(description='Training and testing Iris data set.')
48 + parser.add_argument("--inputPath", dest="inputPath",
49 + help="Path to read input files", metavar="PATH")
50 + parser.add_argument("--inputTrainingData", dest="inputTrainingData",
51 + help="File to read training data", metavar="FILE")
52 + parser.add_argument("--inputTrainingClasses", dest="inputTrainingClasses",
53 + help="File to read training true classes", metavar="FILE")
54 + parser.add_argument("--inputEvaluationData", dest="inputEvaluationData",
55 + help="File to read evaluation data", metavar="FILE")
56 + parser.add_argument("--inputEvaluationClasses", dest="inputEvaluationClasses",
57 + help="File to read evaluation true classes", metavar="FILE")
58 + parser.add_argument("--outputPath", dest="outputPath",
59 + help="Path to place output files", metavar="PATH")
60 + parser.add_argument("--outputFile", dest="outputFile",
61 + help="File to write evaluation report", metavar="FILE")
62 + parser.add_argument("--classifier", dest="classifier",
63 + help="Classifier", metavar="CLASSIFIER")
64 +
65 + args = parser.parse_args()
66 +
67 + # Printing parameter
68 + print('-------------------------------- PARAMETERS --------------------------------')
69 + print("Path to read input files: " + str(args.inputPath))
70 + print("File to read training data: " + str(args.inputTrainingData))
71 + print("File to read training true classes: " + str(args.inputTrainingClasses))
72 + print("File to read evaluation data: " + str(args.inputEvaluationData))
73 + print("File to read evaluation true classes: " + str(args.inputEvaluationClasses))
74 + print("Path to place output files: " + str(args.outputPath))
75 + print("File to write evaluation report: " + str(args.outputFile))
76 + print("Classifier: " + str(args.outputFile))
77 +
78 + # Start time
79 + t0 = time()
80 +
81 + print(" Reading training and evaluation data, and true classes...")
82 + trueTrainingClasses = []
83 + trueEvaluationClasses = []
84 + with open(os.path.join(args.inputPath, args.inputTrainingClasses), encoding='utf8', mode='r') \
85 + as classFile:
86 + for line in classFile:
87 + line = line.strip('\r\n')
88 + trueTrainingClasses.append(line)
89 +
90 + with open(os.path.join(args.inputPath, args.inputEvaluationClasses), encoding='utf8', mode='r') \
91 + as classFile:
92 + for line in classFile:
93 + line = line.strip('\r\n')
94 + trueEvaluationClasses.append(line)
95 + # print(trueEvaluationClasses)
96 +
97 + dataTraining = []
98 + dataEvaluation = []
99 + with open(os.path.join(args.inputPath, args.inputTrainingData), encoding='utf8', mode='r') \
100 + as dataFile:
101 + for line in dataFile:
102 + listTemp = []
103 + listFloat = []
104 + line = line.strip('\r\n')
105 + listTemp = line.split('\t')
106 + for elem in listTemp:
107 + listFloat.append(float(elem))
108 + dataTraining.append(listFloat)
109 + # print(dataTraining)
110 +
111 + with open(os.path.join(args.inputPath, args.inputEvaluationData), encoding='utf8', mode='r') \
112 + as dataFile:
113 + for line in dataFile:
114 + listTemp = []
115 + listFloat = []
116 + line = line.strip('\r\n')
117 + listTemp = line.split('\t')
118 + for elem in listTemp:
119 + listFloat.append(float(elem))
120 + dataEvaluation.append(listFloat)
121 + # print(dataEvaluation)
122 + print(" Reading data and true classes done!")
123 +
124 + if args.classifier == "MultinomialNB":
125 + classifier = MultinomialNB()
126 + elif args.classifier == "SVM":
127 + classifier = SVC()
128 + elif args.classifier == "DecisionTree":
129 + classifier = DecisionTreeClassifier()
130 + elif args.classifier == "Perceptron":
131 + classifier = Perceptron()
132 +
133 + print(" Training...")
134 + classifier.fit(dataTraining, trueTrainingClasses)
135 + print(" Prediction...")
136 + y_pred = classifier.predict(dataEvaluation)
137 + if args.classifier in ["Perceptron", "SVM"]:
138 + confidence_scores = classifier.decision_function(dataEvaluation)
139 + print(" Training and predition done!")
140 +
141 + print(" Saving evaluation report...")
142 + with open(os.path.join(args.outputPath, args.outputFile), mode='w', encoding='utf8') as oFile:
143 + oFile.write('********** EVALUATION REPORT **********\n')
144 + oFile.write('Classifier: {}\n'.format(args.classifier))
145 + oFile.write('Accuracy: {}\n'.format(accuracy_score(trueEvaluationClasses, y_pred)))
146 + oFile.write('Precision: {}\n'.format(precision_score(trueEvaluationClasses, y_pred, average='weighted')))
147 + oFile.write('Recall: {}\n'.format(recall_score(trueEvaluationClasses, y_pred, average='weighted')))
148 + oFile.write('F-score: {}\n'.format(f1_score(trueEvaluationClasses, y_pred, average='weighted')))
149 + oFile.write('Confusion matrix: \n')
150 + oFile.write(str(confusion_matrix(trueEvaluationClasses, y_pred)) + '\n')
151 + oFile.write('Classification report: \n')
152 + oFile.write(classification_report(trueEvaluationClasses, y_pred) + '\n')
153 + if args.classifier in ["Perceptron", "SVM"]:
154 + oFile.write('\nWeights assigned to the features: \n')
155 + oFile.write("{}".format(classifier.coef_))
156 + oFile.write('Confidence scores: \n')
157 + oFile.write("{}".format(confidence_scores))
158 + if args.classifier == "SVM":
159 + oFile.write('Number of support vectors per class: {}\n'.format(classifier.n_support_))
160 + oFile.write('Support vectors: {}\n'.format(classifier.support_vectors_))
161 +
162 + print(" Saving evaluation report done!")
163 +
164 + print("Training and evaluation done in: %fs" % (time() - t0))