Carlos-Francisco Méndez-Cruz

Iris dataset for automatic clasification

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 +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-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 +from sklearn.naive_bayes import MultinomialNB, BernoulliNB
2 +
3 +def scores(list1, list2):
4 + errores = 0
5 + aciertos = 0
6 + if len(list1) != len(list2):
7 + print("ERROR. LENGTH MISMATCH")
8 + for i in range(len(list1)):
9 + if list1[i] == list2[i]:
10 + aciertos += 1
11 + else:
12 + errores += 1
13 + cocienteErrores = errores / len(list1)
14 + return [aciertos, errores, cocienteErrores]
15 +
16 +data = []
17 +lista = []
18 +with open("C:\Users\cmendezc\Dropbox (UNAM-CCG)\Actividades_CCG\LICENCIATURA_LCG\BioInfo-I\lcg-bioinfoI-bionlp\clasificacion-automatica\iris-datasetdata.txt", encoding='utf8') \
19 + as dataFile:
20 + for line in dataFile:
21 + listaFloat = []
22 + line = line.strip('\n')
23 + lista = line.split('\t')
24 + for elem in lista:
25 + listaFloat.append(float(elem))
26 + data.append(listaFloat)
27 +
28 +print(data)
29 +
30 +target = []
31 +with open("C:\\Users\\cmendezc\\Documents\\GENOMICAS\\LICENCIATURA_LCGPDCB\\dataSet_Iris\\true_Classes.txt", encoding='utf8') \
32 + as classFile:
33 + for line in classFile:
34 + line = line.strip('\n')
35 + target.append(line)
36 +
37 +myMultinomialNB = MultinomialNB()
38 +myBernoulliNB = BernoulliNB()
39 +
40 +y_pred = myMultinomialNB.fit(data, target).predict(data)
41 +
42 +'''
43 +for i in range(len(iris.target)):
44 + print(str(iris.target[i]) + "\t" + str(y_pred[i]) + "\t" + str(iris.data[i]))
45 +'''
46 +
47 +myRandomForest = RandomForestClassifier()
48 +y_pred = myRandomForest.fit(data, target).predict(data)
49 +results = scores(target, y_pred)
50 +print("Errores: {}".format(results[1]))
51 +print("Aciertos: {}".format(results[0]))
52 +print("Cociente error: {}".format(results[2]))
...\ No newline at end of file ...\ No newline at end of file
1 +from sklearn import datasets
2 +from sklearn.naive_bayes import MultinomialNB, BernoulliNB
3 +from sklearn.ensemble import RandomForestClassifier
4 +
5 +def scores(list1, list2):
6 + errores = 0
7 + aciertos = 0
8 + if len(list1) != len(list2):
9 + print("ERROR. LENGTH MISMATCH")
10 + for i in range(len(list1)):
11 + if list1[i] == list2[i]:
12 + aciertos += 1
13 + else:
14 + errores += 1
15 + cocienteErrores = errores / len(list1)
16 + return [aciertos, errores, cocienteErrores]
17 +
18 +iris = datasets.load_iris()
19 +
20 +myMultinomialNB = MultinomialNB()
21 +myBernoulliNB = BernoulliNB()
22 +
23 +y_pred = myMultinomialNB.fit(iris.data, iris.target).predict(iris.data)
24 +
25 +'''
26 +for i in range(len(iris.target)):
27 + print(str(iris.target[i]) + "\t" + str(y_pred[i]) + "\t" + str(iris.data[i]))
28 +'''
29 +
30 +myRandomForest = RandomForestClassifier()
31 +y_pred = myRandomForest.fit(iris.data, iris.target).predict(iris.data)
32 +results = scores(iris.target, y_pred)
33 +print("Errores: {}".format(results[1]))
34 +print("Aciertos: {}".format(results[0]))
35 +print("Cociente error: {}".format(results[2]))
...\ 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 +from optparse import OptionParser
6 +from sklearn.naive_bayes import MultinomialNB
7 +from sklearn.ensemble import RandomForestClassifier
8 +from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, \
9 + classification_report
10 +import sys
11 +
12 +__author__ = 'CMendezC'
13 +
14 +# Goal: training and test Iris dataset
15 +
16 +# Parameters:
17 +# 1) --inputPath Path to read input files.
18 +# 2) --inputFileData File to read data.
19 +# 3) --inputFileTrueClasses File to read text true classes.
20 +# 4) --outputPath Path to place output files.
21 +# 5) --outputFile File to place evaluation report.
22 +# 6) --classifier Classifier: MultinomialNB, SVM, RandomForest.
23 +
24 +# Ouput:
25 +# 1) Evaluation report.
26 +
27 +# Execution:
28 +# C:\Anaconda3\python trainingTest_Iris.py
29 +# --inputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris
30 +# --inputFileData data.txt
31 +# --inputFileTrueClasses true_Classes.txt
32 +# --outputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris
33 +# --outputFile report_MultinomialNB.txt
34 +# --classifier MultinomialNB
35 +
36 +# C:\Anaconda3\python trainingTest_Iris.py --inputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris --inputFileData data.txt --inputFileTrueClasses true_Classes.txt --outputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris --outputFile report_MultinomialNB.txt --classifier MultinomialNB
37 +
38 +###########################################################
39 +# MAIN PROGRAM #
40 +###########################################################
41 +
42 +if __name__ == "__main__":
43 + # Parameter definition
44 + parser = OptionParser()
45 + parser.add_option("--inputPath", dest="inputPath",
46 + help="Path to read input files", metavar="PATH")
47 + parser.add_option("--inputFileData", dest="inputFileData",
48 + help="File to read data", metavar="FILE")
49 + parser.add_option("--inputFileTrueClasses", dest="inputFileTrueClasses",
50 + help="File to read true classes", metavar="FILE")
51 + parser.add_option("--outputPath", dest="outputPath",
52 + help="Path to place output files", metavar="PATH")
53 + parser.add_option("--outputFile", dest="outputFile",
54 + help="File to write evaluation report", metavar="FILE")
55 + parser.add_option("--classifier", dest="classifier",
56 + help="Classifier", metavar="CLASSIFIER")
57 +
58 + (options, args) = parser.parse_args()
59 + if len(args) > 0:
60 + parser.error("None parameters indicated.")
61 + sys.exit(1)
62 +
63 + # Printing parameter values
64 + print('-------------------------------- PARAMETERS --------------------------------')
65 + print("Path to read input files: " + str(options.inputPath))
66 + print("File to read data: " + str(options.inputFileData))
67 + print("File to read true classes: " + str(options.inputFileTrueClasses))
68 + print("Path to place output files: " + str(options.outputPath))
69 + print("File to write evaluation report: " + str(options.outputFile))
70 + print("Classifier: " + str(options.outputFile))
71 +
72 + # Start time
73 + t0 = time()
74 +
75 + print(" Reading data and true classes...")
76 + trueClasses = []
77 + with open(os.path.join(options.inputPath, options.inputFileTrueClasses), encoding='utf8', mode='r') \
78 + as classFile:
79 + for line in classFile:
80 + line = line.strip('\r\n')
81 + trueClasses.append(line)
82 + print(trueClasses)
83 +
84 + data = []
85 + with open(os.path.join(options.inputPath, options.inputFileData), encoding='utf8', mode='r') \
86 + as dataFile:
87 + for line in dataFile:
88 + listTemp = []
89 + listFloat = []
90 + line = line.strip('\r\n')
91 + listTemp = line.split('\t')
92 + for elem in listTemp:
93 + listFloat.append(float(elem))
94 + data.append(listFloat)
95 + print(data)
96 + print(" Reading data and true classes done!")
97 +
98 + if options.classifier == "MultinomialNB":
99 + classifier = MultinomialNB()
100 + elif options.classifier == "SVM":
101 + pass
102 + elif options.classifier == "RandomForest":
103 + classifier = RandomForestClassifier()
104 +
105 + print(" Training...")
106 + y_pred = classifier.fit(data, trueClasses).predict(data)
107 + print(" Training done!")
108 +
109 + # for i in range(len(trueClasses)):
110 + # print(str(trueClasses[i]) + "\t" + str(y_pred[i]))
111 +
112 + print(" Saving test report...")
113 + with open(os.path.join(options.outputPath, options.outputFile), mode='w', encoding='utf8') as oFile:
114 + oFile.write('********** EVALUATION REPORT **********\n')
115 + oFile.write('Classifier: {}\n'.format(options.classifier))
116 + oFile.write('Accuracy: {}\n'.format(accuracy_score(trueClasses, y_pred)))
117 + oFile.write('Precision: {}\n'.format(precision_score(trueClasses, y_pred, average='weighted')))
118 + oFile.write('Recall: {}\n'.format(recall_score(trueClasses, y_pred, average='weighted')))
119 + oFile.write('F-score: {}\n'.format(f1_score(trueClasses, y_pred, average='weighted')))
120 + # oFile.write('{}\t{}\t{}\t{}\n'.format(accuracy_score(trueClasses, y_pred),
121 + # precision_score(trueClasses, y_pred, average='weighted'),
122 + # recall_score(trueClasses, y_pred, average='weighted'),
123 + # f1_score(trueClasses, y_pred, average='weighted')))
124 + oFile.write('Confusion matrix: \n')
125 + oFile.write(str(confusion_matrix(trueClasses, y_pred)) + '\n')
126 + oFile.write('Classification report: \n')
127 + oFile.write(classification_report(trueClasses, y_pred) + '\n')
128 + print(" Saving test report done!")
129 +
130 + print("Training and test done in: %fs" % (time() - t0))
1 +# -*- encoding: utf-8 -*-
2 +
3 +import os
4 +from time import time
5 +from optparse import OptionParser
6 +from sklearn.naive_bayes import MultinomialNB
7 +from sklearn.ensemble import RandomForestClassifier
8 +from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, \
9 + classification_report
10 +import sys
11 +
12 +__author__ = 'CMendezC'
13 +
14 +# Goal: training and test Iris dataset
15 +
16 +# Parameters:
17 +# 1) --inputPath Path to read input files.
18 +# 2) --inputTrainingData File to read training data.
19 +# 3) --inputTrainingClasses File to read training true classes.
20 +# 4) --inputTestData File to read test data.
21 +# 5) --inputTestClasses File to read test true classes.
22 +# 6) --outputPath Path to place output files.
23 +# 7) --outputFile File to place evaluation report.
24 +# 8) --classifier Classifier: MultinomialNB, SVM, RandomForest.
25 +
26 +# Ouput:
27 +# 1) Evaluation report.
28 +
29 +# Execution:
30 +# C:\Anaconda3\python trainingTest_Iris_v2.py
31 +# --inputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris
32 +# --inputTrainingData training_Data.txt
33 +# --inputTrainingClasses training_TrueClasses.txt
34 +# --inputTestData test_Data.txt
35 +# --inputTestClasses test_TrueClasses.txt
36 +# --outputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris
37 +# --outputFile report_MultinomialNB.txt
38 +# --classifier MultinomialNB
39 +
40 +# C:\Anaconda3\python trainingTest_Iris_v2.py --inputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris --inputTrainingData training_Data.txt --inputTrainingClasses training_TrueClasses.txt --inputTestData test_Data.txt --inputTestClasses test_TrueClasses.txt --outputPath C:\Users\cmendezc\Documents\GENOMICAS\LICENCIATURA_LCGPDCB\dataSet_Iris --outputFile report_MultinomialNB.txt --classifier MultinomialNB
41 +
42 +###########################################################
43 +# MAIN PROGRAM #
44 +###########################################################
45 +
46 +if __name__ == "__main__":
47 + # Parameter definition
48 + parser = OptionParser()
49 + parser.add_option("--inputPath", dest="inputPath",
50 + help="Path to read input files", metavar="PATH")
51 + parser.add_option("--inputTrainingData", dest="inputTrainingData",
52 + help="File to read training data", metavar="FILE")
53 + parser.add_option("--inputTrainingClasses", dest="inputTrainingClasses",
54 + help="File to read training true classes", metavar="FILE")
55 + parser.add_option("--inputTestData", dest="inputTestData",
56 + help="File to read test data", metavar="FILE")
57 + parser.add_option("--inputTestClasses", dest="inputTestClasses",
58 + help="File to read test true classes", metavar="FILE")
59 + parser.add_option("--outputPath", dest="outputPath",
60 + help="Path to place output files", metavar="PATH")
61 + parser.add_option("--outputFile", dest="outputFile",
62 + help="File to write evaluation report", metavar="FILE")
63 + parser.add_option("--classifier", dest="classifier",
64 + help="Classifier", metavar="CLASSIFIER")
65 +
66 + (options, args) = parser.parse_args()
67 + if len(args) <= 0:
68 + parser.error("None parameters indicated.")
69 + sys.exit(1)
70 +
71 + # Printing parameter values
72 + print('-------------------------------- PARAMETERS --------------------------------')
73 + print("Path to read input files: " + str(options.inputPath))
74 + print("File to read training data: " + str(options.inputTrainingData))
75 + print("File to read training true classes: " + str(options.inputTrainingClasses))
76 + print("File to read test data: " + str(options.inputTestData))
77 + print("File to read test true classes: " + str(options.inputTestClasses))
78 + print("Path to place output files: " + str(options.outputPath))
79 + print("File to write evaluation report: " + str(options.outputFile))
80 + print("Classifier: " + str(options.outputFile))
81 +
82 + # Start time
83 + t0 = time()
84 +
85 + print(" Reading training and test data and true classes...")
86 + trueTrainingClasses = []
87 + trueTestClasses = []
88 + with open(os.path.join(options.inputPath, options.inputTrainingClasses), encoding='utf8', mode='r') \
89 + as classFile:
90 + for line in classFile:
91 + line = line.strip('\r\n')
92 + trueTrainingClasses.append(line)
93 +
94 + with open(os.path.join(options.inputPath, options.inputTestClasses), encoding='utf8', mode='r') \
95 + as classFile:
96 + for line in classFile:
97 + line = line.strip('\r\n')
98 + trueTestClasses.append(line)
99 + # print(trueTestClasses)
100 +
101 + dataTraining = []
102 + dataTest = []
103 + with open(os.path.join(options.inputPath, options.inputTrainingData), encoding='utf8', mode='r') \
104 + as dataFile:
105 + for line in dataFile:
106 + listTemp = []
107 + listFloat = []
108 + line = line.strip('\r\n')
109 + listTemp = line.split('\t')
110 + for elem in listTemp:
111 + listFloat.append(float(elem))
112 + dataTraining.append(listFloat)
113 + print(dataTraining)
114 +
115 + with open(os.path.join(options.inputPath, options.inputTestData), encoding='utf8', mode='r') \
116 + as dataFile:
117 + for line in dataFile:
118 + listTemp = []
119 + listFloat = []
120 + line = line.strip('\r\n')
121 + listTemp = line.split('\t')
122 + for elem in listTemp:
123 + listFloat.append(float(elem))
124 + dataTest.append(listFloat)
125 + print(dataTest)
126 + print(" Reading data and true classes done!")
127 +
128 + if options.classifier == "MultinomialNB":
129 + classifier = MultinomialNB()
130 + elif options.classifier == "SVM":
131 + pass
132 + elif options.classifier == "RandomForest":
133 + classifier = RandomForestClassifier()
134 +
135 + print(" Training...")
136 + classifier.fit(dataTraining, trueTrainingClasses)
137 + print(" Prediction...")
138 + y_pred = classifier.predict(dataTest)
139 + print(" Training and predition done!")
140 +
141 + # for i in range(len(trueClasses)):
142 + # print(str(trueClasses[i]) + "\t" + str(y_pred[i]))
143 +
144 + print(" Saving test report...")
145 + with open(os.path.join(options.outputPath, options.outputFile), mode='w', encoding='utf8') as oFile:
146 + oFile.write('********** EVALUATION REPORT **********\n')
147 + oFile.write('Classifier: {}\n'.format(options.classifier))
148 + oFile.write('Accuracy: {}\n'.format(accuracy_score(trueTestClasses, y_pred)))
149 + oFile.write('Precision: {}\n'.format(precision_score(trueTestClasses, y_pred, average='weighted')))
150 + oFile.write('Recall: {}\n'.format(recall_score(trueTestClasses, y_pred, average='weighted')))
151 + oFile.write('F-score: {}\n'.format(f1_score(trueTestClasses, y_pred, average='weighted')))
152 + # oFile.write('{}\t{}\t{}\t{}\n'.format(accuracy_score(trueClasses, y_pred),
153 + # precision_score(trueClasses, y_pred, average='weighted'),
154 + # recall_score(trueClasses, y_pred, average='weighted'),
155 + # f1_score(trueClasses, y_pred, average='weighted')))
156 + oFile.write('Confusion matrix: \n')
157 + oFile.write(str(confusion_matrix(trueTestClasses, y_pred)) + '\n')
158 + oFile.write('Classification report: \n')
159 + oFile.write(classification_report(trueTestClasses, y_pred) + '\n')
160 + print(" Saving test report done!")
161 +
162 + print("Training and test done in: %fs" % (time() - t0))
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 +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 +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