Carlos-Francisco Méndez-Cruz

Iris dataset for automatic clasification

5.1 3.5 1.4 0.2
4.9 3 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5 3.6 1.4 0.2
5.4 3.9 1.7 0.4
4.6 3.4 1.4 0.3
5 3.4 1.5 0.2
4.4 2.9 1.4 0.2
4.9 3.1 1.5 0.1
5.4 3.7 1.5 0.2
4.8 3.4 1.6 0.2
4.8 3 1.4 0.1
4.3 3 1.1 0.1
5.8 4 1.2 0.2
5.7 4.4 1.5 0.4
5.4 3.9 1.3 0.4
5.1 3.5 1.4 0.3
5.7 3.8 1.7 0.3
5.1 3.8 1.5 0.3
5.4 3.4 1.7 0.2
5.1 3.7 1.5 0.4
4.6 3.6 1 0.2
5.1 3.3 1.7 0.5
4.8 3.4 1.9 0.2
5 3 1.6 0.2
5 3.4 1.6 0.4
5.2 3.5 1.5 0.2
5.2 3.4 1.4 0.2
4.7 3.2 1.6 0.2
4.8 3.1 1.6 0.2
5.4 3.4 1.5 0.4
5.2 4.1 1.5 0.1
5.5 4.2 1.4 0.2
4.9 3.1 1.5 0.1
5 3.2 1.2 0.2
5.5 3.5 1.3 0.2
4.9 3.1 1.5 0.1
4.4 3 1.3 0.2
5.1 3.4 1.5 0.2
5 3.5 1.3 0.3
4.5 2.3 1.3 0.3
4.4 3.2 1.3 0.2
5 3.5 1.6 0.6
5.1 3.8 1.9 0.4
4.8 3 1.4 0.3
5.1 3.8 1.6 0.2
4.6 3.2 1.4 0.2
5.3 3.7 1.5 0.2
5 3.3 1.4 0.2
7 3.2 4.7 1.4
6.4 3.2 4.5 1.5
6.9 3.1 4.9 1.5
5.5 2.3 4 1.3
6.5 2.8 4.6 1.5
5.7 2.8 4.5 1.3
6.3 3.3 4.7 1.6
4.9 2.4 3.3 1
6.6 2.9 4.6 1.3
5.2 2.7 3.9 1.4
5 2 3.5 1
5.9 3 4.2 1.5
6 2.2 4 1
6.1 2.9 4.7 1.4
5.6 2.9 3.6 1.3
6.7 3.1 4.4 1.4
5.6 3 4.5 1.5
5.8 2.7 4.1 1
6.2 2.2 4.5 1.5
5.6 2.5 3.9 1.1
5.9 3.2 4.8 1.8
6.1 2.8 4 1.3
6.3 2.5 4.9 1.5
6.1 2.8 4.7 1.2
6.4 2.9 4.3 1.3
6.6 3 4.4 1.4
6.8 2.8 4.8 1.4
6.7 3 5 1.7
6 2.9 4.5 1.5
5.7 2.6 3.5 1
5.5 2.4 3.8 1.1
5.5 2.4 3.7 1
5.8 2.7 3.9 1.2
6 2.7 5.1 1.6
5.4 3 4.5 1.5
6 3.4 4.5 1.6
6.7 3.1 4.7 1.5
6.3 2.3 4.4 1.3
5.6 3 4.1 1.3
5.5 2.5 4 1.3
5.5 2.6 4.4 1.2
6.1 3 4.6 1.4
5.8 2.6 4 1.2
5 2.3 3.3 1
5.6 2.7 4.2 1.3
5.7 3 4.2 1.2
5.7 2.9 4.2 1.3
6.2 2.9 4.3 1.3
5.1 2.5 3 1.1
5.7 2.8 4.1 1.3
6.3 3.3 6 2.5
5.8 2.7 5.1 1.9
7.1 3 5.9 2.1
6.3 2.9 5.6 1.8
6.5 3 5.8 2.2
7.6 3 6.6 2.1
4.9 2.5 4.5 1.7
7.3 2.9 6.3 1.8
6.7 2.5 5.8 1.8
7.2 3.6 6.1 2.5
6.5 3.2 5.1 2
6.4 2.7 5.3 1.9
6.8 3 5.5 2.1
5.7 2.5 5 2
5.8 2.8 5.1 2.4
6.4 3.2 5.3 2.3
6.5 3 5.5 1.8
7.7 3.8 6.7 2.2
7.7 2.6 6.9 2.3
6 2.2 5 1.5
6.9 3.2 5.7 2.3
5.6 2.8 4.9 2
7.7 2.8 6.7 2
6.3 2.7 4.9 1.8
6.7 3.3 5.7 2.1
7.2 3.2 6 1.8
6.2 2.8 4.8 1.8
6.1 3 4.9 1.8
6.4 2.8 5.6 2.1
7.2 3 5.8 1.6
7.4 2.8 6.1 1.9
7.9 3.8 6.4 2
6.4 2.8 5.6 2.2
6.3 2.8 5.1 1.5
6.1 2.6 5.6 1.4
7.7 3 6.1 2.3
6.3 3.4 5.6 2.4
6.4 3.1 5.5 1.8
6 3 4.8 1.8
6.9 3.1 5.4 2.1
6.7 3.1 5.6 2.4
6.9 3.1 5.1 2.3
5.8 2.7 5.1 1.9
6.8 3.2 5.9 2.3
6.7 3.3 5.7 2.5
6.7 3 5.2 2.3
6.3 2.5 5 1.9
6.5 3 5.2 2
6.2 3.4 5.4 2.3
5.9 3 5.1 1.8
\ No newline at end of file
5.1 3.5 1.4 0.2
4.9 3 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5 3.6 1.4 0.2
5.4 3.9 1.7 0.4
4.6 3.4 1.4 0.3
5 3.4 1.5 0.2
4.4 2.9 1.4 0.2
4.9 3.1 1.5 0.1
5.4 3.7 1.5 0.2
4.8 3.4 1.6 0.2
4.8 3 1.4 0.1
4.3 3 1.1 0.1
5.8 4 1.2 0.2
5 3.3 1.4 0.2
7 3.2 4.7 1.4
6.4 3.2 4.5 1.5
6.9 3.1 4.9 1.5
5.5 2.3 4 1.3
6.5 2.8 4.6 1.5
5.7 2.8 4.5 1.3
6.3 3.3 4.7 1.6
4.9 2.4 3.3 1
6.6 2.9 4.6 1.3
5.2 2.7 3.9 1.4
5 2 3.5 1
5.9 3 4.2 1.5
6 2.2 4 1
6.1 2.9 4.7 1.4
5.7 2.8 4.1 1.3
6.3 3.3 6 2.5
5.8 2.7 5.1 1.9
7.1 3 5.9 2.1
6.3 2.9 5.6 1.8
6.5 3 5.8 2.2
7.6 3 6.6 2.1
4.9 2.5 4.5 1.7
7.3 2.9 6.3 1.8
6.7 2.5 5.8 1.8
7.2 3.6 6.1 2.5
6.5 3.2 5.1 2
6.4 2.7 5.3 1.9
6.8 3 5.5 2.1
5.7 2.5 5 2
\ No newline at end of file
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
\ No newline at end of file
from sklearn.naive_bayes import MultinomialNB, BernoulliNB
def scores(list1, list2):
errores = 0
aciertos = 0
if len(list1) != len(list2):
print("ERROR. LENGTH MISMATCH")
for i in range(len(list1)):
if list1[i] == list2[i]:
aciertos += 1
else:
errores += 1
cocienteErrores = errores / len(list1)
return [aciertos, errores, cocienteErrores]
data = []
lista = []
with open("C:\Users\cmendezc\Dropbox (UNAM-CCG)\Actividades_CCG\LICENCIATURA_LCG\BioInfo-I\lcg-bioinfoI-bionlp\clasificacion-automatica\iris-datasetdata.txt", encoding='utf8') \
as dataFile:
for line in dataFile:
listaFloat = []
line = line.strip('\n')
lista = line.split('\t')
for elem in lista:
listaFloat.append(float(elem))
data.append(listaFloat)
print(data)
target = []
with open("C:\\Users\\cmendezc\\Documents\\GENOMICAS\\LICENCIATURA_LCGPDCB\\dataSet_Iris\\true_Classes.txt", encoding='utf8') \
as classFile:
for line in classFile:
line = line.strip('\n')
target.append(line)
myMultinomialNB = MultinomialNB()
myBernoulliNB = BernoulliNB()
y_pred = myMultinomialNB.fit(data, target).predict(data)
'''
for i in range(len(iris.target)):
print(str(iris.target[i]) + "\t" + str(y_pred[i]) + "\t" + str(iris.data[i]))
'''
myRandomForest = RandomForestClassifier()
y_pred = myRandomForest.fit(data, target).predict(data)
results = scores(target, y_pred)
print("Errores: {}".format(results[1]))
print("Aciertos: {}".format(results[0]))
print("Cociente error: {}".format(results[2]))
\ No newline at end of file
from sklearn import datasets
from sklearn.naive_bayes import MultinomialNB, BernoulliNB
from sklearn.ensemble import RandomForestClassifier
def scores(list1, list2):
errores = 0
aciertos = 0
if len(list1) != len(list2):
print("ERROR. LENGTH MISMATCH")
for i in range(len(list1)):
if list1[i] == list2[i]:
aciertos += 1
else:
errores += 1
cocienteErrores = errores / len(list1)
return [aciertos, errores, cocienteErrores]
iris = datasets.load_iris()
myMultinomialNB = MultinomialNB()
myBernoulliNB = BernoulliNB()
y_pred = myMultinomialNB.fit(iris.data, iris.target).predict(iris.data)
'''
for i in range(len(iris.target)):
print(str(iris.target[i]) + "\t" + str(y_pred[i]) + "\t" + str(iris.data[i]))
'''
myRandomForest = RandomForestClassifier()
y_pred = myRandomForest.fit(iris.data, iris.target).predict(iris.data)
results = scores(iris.target, y_pred)
print("Errores: {}".format(results[1]))
print("Aciertos: {}".format(results[0]))
print("Cociente error: {}".format(results[2]))
\ No newline at end of file
# -*- encoding: utf-8 -*-
import os
from time import time
from optparse import OptionParser
from sklearn.naive_bayes import MultinomialNB
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, \
classification_report
import sys
__author__ = 'CMendezC'
# Goal: training and test Iris dataset
# Parameters:
# 1) --inputPath Path to read input files.
# 2) --inputFileData File to read data.
# 3) --inputFileTrueClasses File to read text true classes.
# 4) --outputPath Path to place output files.
# 5) --outputFile File to place evaluation report.
# 6) --classifier Classifier: MultinomialNB, SVM, RandomForest.
# Ouput:
# 1) Evaluation report.
# Execution:
# 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
# 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
###########################################################
# MAIN PROGRAM #
###########################################################
if __name__ == "__main__":
# Parameter definition
parser = OptionParser()
parser.add_option("--inputPath", dest="inputPath",
help="Path to read input files", metavar="PATH")
parser.add_option("--inputFileData", dest="inputFileData",
help="File to read data", metavar="FILE")
parser.add_option("--inputFileTrueClasses", dest="inputFileTrueClasses",
help="File to read true classes", metavar="FILE")
parser.add_option("--outputPath", dest="outputPath",
help="Path to place output files", metavar="PATH")
parser.add_option("--outputFile", dest="outputFile",
help="File to write evaluation report", metavar="FILE")
parser.add_option("--classifier", dest="classifier",
help="Classifier", metavar="CLASSIFIER")
(options, args) = parser.parse_args()
if len(args) > 0:
parser.error("None parameters indicated.")
sys.exit(1)
# Printing parameter values
print('-------------------------------- PARAMETERS --------------------------------')
print("Path to read input files: " + str(options.inputPath))
print("File to read data: " + str(options.inputFileData))
print("File to read true classes: " + str(options.inputFileTrueClasses))
print("Path to place output files: " + str(options.outputPath))
print("File to write evaluation report: " + str(options.outputFile))
print("Classifier: " + str(options.outputFile))
# Start time
t0 = time()
print(" Reading data and true classes...")
trueClasses = []
with open(os.path.join(options.inputPath, options.inputFileTrueClasses), encoding='utf8', mode='r') \
as classFile:
for line in classFile:
line = line.strip('\r\n')
trueClasses.append(line)
print(trueClasses)
data = []
with open(os.path.join(options.inputPath, options.inputFileData), encoding='utf8', mode='r') \
as dataFile:
for line in dataFile:
listTemp = []
listFloat = []
line = line.strip('\r\n')
listTemp = line.split('\t')
for elem in listTemp:
listFloat.append(float(elem))
data.append(listFloat)
print(data)
print(" Reading data and true classes done!")
if options.classifier == "MultinomialNB":
classifier = MultinomialNB()
elif options.classifier == "SVM":
pass
elif options.classifier == "RandomForest":
classifier = RandomForestClassifier()
print(" Training...")
y_pred = classifier.fit(data, trueClasses).predict(data)
print(" Training done!")
# for i in range(len(trueClasses)):
# print(str(trueClasses[i]) + "\t" + str(y_pred[i]))
print(" Saving test report...")
with open(os.path.join(options.outputPath, options.outputFile), mode='w', encoding='utf8') as oFile:
oFile.write('********** EVALUATION REPORT **********\n')
oFile.write('Classifier: {}\n'.format(options.classifier))
oFile.write('Accuracy: {}\n'.format(accuracy_score(trueClasses, y_pred)))
oFile.write('Precision: {}\n'.format(precision_score(trueClasses, y_pred, average='weighted')))
oFile.write('Recall: {}\n'.format(recall_score(trueClasses, y_pred, average='weighted')))
oFile.write('F-score: {}\n'.format(f1_score(trueClasses, y_pred, average='weighted')))
# oFile.write('{}\t{}\t{}\t{}\n'.format(accuracy_score(trueClasses, y_pred),
# precision_score(trueClasses, y_pred, average='weighted'),
# recall_score(trueClasses, y_pred, average='weighted'),
# f1_score(trueClasses, y_pred, average='weighted')))
oFile.write('Confusion matrix: \n')
oFile.write(str(confusion_matrix(trueClasses, y_pred)) + '\n')
oFile.write('Classification report: \n')
oFile.write(classification_report(trueClasses, y_pred) + '\n')
print(" Saving test report done!")
print("Training and test done in: %fs" % (time() - t0))
# -*- encoding: utf-8 -*-
import os
from time import time
from optparse import OptionParser
from sklearn.naive_bayes import MultinomialNB
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, \
classification_report
import sys
__author__ = 'CMendezC'
# Goal: training and test Iris dataset
# Parameters:
# 1) --inputPath Path to read input files.
# 2) --inputTrainingData File to read training data.
# 3) --inputTrainingClasses File to read training true classes.
# 4) --inputTestData File to read test data.
# 5) --inputTestClasses File to read test true classes.
# 6) --outputPath Path to place output files.
# 7) --outputFile File to place evaluation report.
# 8) --classifier Classifier: MultinomialNB, SVM, RandomForest.
# Ouput:
# 1) Evaluation report.
# Execution:
# 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
# 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
###########################################################
# MAIN PROGRAM #
###########################################################
if __name__ == "__main__":
# Parameter definition
parser = OptionParser()
parser.add_option("--inputPath", dest="inputPath",
help="Path to read input files", metavar="PATH")
parser.add_option("--inputTrainingData", dest="inputTrainingData",
help="File to read training data", metavar="FILE")
parser.add_option("--inputTrainingClasses", dest="inputTrainingClasses",
help="File to read training true classes", metavar="FILE")
parser.add_option("--inputTestData", dest="inputTestData",
help="File to read test data", metavar="FILE")
parser.add_option("--inputTestClasses", dest="inputTestClasses",
help="File to read test true classes", metavar="FILE")
parser.add_option("--outputPath", dest="outputPath",
help="Path to place output files", metavar="PATH")
parser.add_option("--outputFile", dest="outputFile",
help="File to write evaluation report", metavar="FILE")
parser.add_option("--classifier", dest="classifier",
help="Classifier", metavar="CLASSIFIER")
(options, args) = parser.parse_args()
if len(args) <= 0:
parser.error("None parameters indicated.")
sys.exit(1)
# Printing parameter values
print('-------------------------------- PARAMETERS --------------------------------')
print("Path to read input files: " + str(options.inputPath))
print("File to read training data: " + str(options.inputTrainingData))
print("File to read training true classes: " + str(options.inputTrainingClasses))
print("File to read test data: " + str(options.inputTestData))
print("File to read test true classes: " + str(options.inputTestClasses))
print("Path to place output files: " + str(options.outputPath))
print("File to write evaluation report: " + str(options.outputFile))
print("Classifier: " + str(options.outputFile))
# Start time
t0 = time()
print(" Reading training and test data and true classes...")
trueTrainingClasses = []
trueTestClasses = []
with open(os.path.join(options.inputPath, options.inputTrainingClasses), encoding='utf8', mode='r') \
as classFile:
for line in classFile:
line = line.strip('\r\n')
trueTrainingClasses.append(line)
with open(os.path.join(options.inputPath, options.inputTestClasses), encoding='utf8', mode='r') \
as classFile:
for line in classFile:
line = line.strip('\r\n')
trueTestClasses.append(line)
# print(trueTestClasses)
dataTraining = []
dataTest = []
with open(os.path.join(options.inputPath, options.inputTrainingData), encoding='utf8', mode='r') \
as dataFile:
for line in dataFile:
listTemp = []
listFloat = []
line = line.strip('\r\n')
listTemp = line.split('\t')
for elem in listTemp:
listFloat.append(float(elem))
dataTraining.append(listFloat)
print(dataTraining)
with open(os.path.join(options.inputPath, options.inputTestData), encoding='utf8', mode='r') \
as dataFile:
for line in dataFile:
listTemp = []
listFloat = []
line = line.strip('\r\n')
listTemp = line.split('\t')
for elem in listTemp:
listFloat.append(float(elem))
dataTest.append(listFloat)
print(dataTest)
print(" Reading data and true classes done!")
if options.classifier == "MultinomialNB":
classifier = MultinomialNB()
elif options.classifier == "SVM":
pass
elif options.classifier == "RandomForest":
classifier = RandomForestClassifier()
print(" Training...")
classifier.fit(dataTraining, trueTrainingClasses)
print(" Prediction...")
y_pred = classifier.predict(dataTest)
print(" Training and predition done!")
# for i in range(len(trueClasses)):
# print(str(trueClasses[i]) + "\t" + str(y_pred[i]))
print(" Saving test report...")
with open(os.path.join(options.outputPath, options.outputFile), mode='w', encoding='utf8') as oFile:
oFile.write('********** EVALUATION REPORT **********\n')
oFile.write('Classifier: {}\n'.format(options.classifier))
oFile.write('Accuracy: {}\n'.format(accuracy_score(trueTestClasses, y_pred)))
oFile.write('Precision: {}\n'.format(precision_score(trueTestClasses, y_pred, average='weighted')))
oFile.write('Recall: {}\n'.format(recall_score(trueTestClasses, y_pred, average='weighted')))
oFile.write('F-score: {}\n'.format(f1_score(trueTestClasses, y_pred, average='weighted')))
# oFile.write('{}\t{}\t{}\t{}\n'.format(accuracy_score(trueClasses, y_pred),
# precision_score(trueClasses, y_pred, average='weighted'),
# recall_score(trueClasses, y_pred, average='weighted'),
# f1_score(trueClasses, y_pred, average='weighted')))
oFile.write('Confusion matrix: \n')
oFile.write(str(confusion_matrix(trueTestClasses, y_pred)) + '\n')
oFile.write('Classification report: \n')
oFile.write(classification_report(trueTestClasses, y_pred) + '\n')
print(" Saving test report done!")
print("Training and test done in: %fs" % (time() - t0))
5.7 4.4 1.5 0.4
5.4 3.9 1.3 0.4
5.1 3.5 1.4 0.3
5.7 3.8 1.7 0.3
5.1 3.8 1.5 0.3
5.4 3.4 1.7 0.2
5.1 3.7 1.5 0.4
4.6 3.6 1 0.2
5.1 3.3 1.7 0.5
4.8 3.4 1.9 0.2
5 3 1.6 0.2
5 3.4 1.6 0.4
5.2 3.5 1.5 0.2
5.2 3.4 1.4 0.2
4.7 3.2 1.6 0.2
4.8 3.1 1.6 0.2
5.4 3.4 1.5 0.4
5.2 4.1 1.5 0.1
5.5 4.2 1.4 0.2
4.9 3.1 1.5 0.1
5 3.2 1.2 0.2
5.5 3.5 1.3 0.2
4.9 3.1 1.5 0.1
4.4 3 1.3 0.2
5.1 3.4 1.5 0.2
5 3.5 1.3 0.3
4.5 2.3 1.3 0.3
4.4 3.2 1.3 0.2
5 3.5 1.6 0.6
5.1 3.8 1.9 0.4
4.8 3 1.4 0.3
5.1 3.8 1.6 0.2
4.6 3.2 1.4 0.2
5.3 3.7 1.5 0.2
5.6 2.9 3.6 1.3
6.7 3.1 4.4 1.4
5.6 3 4.5 1.5
5.8 2.7 4.1 1
6.2 2.2 4.5 1.5
5.6 2.5 3.9 1.1
5.9 3.2 4.8 1.8
6.1 2.8 4 1.3
6.3 2.5 4.9 1.5
6.1 2.8 4.7 1.2
6.4 2.9 4.3 1.3
6.6 3 4.4 1.4
6.8 2.8 4.8 1.4
6.7 3 5 1.7
6 2.9 4.5 1.5
5.7 2.6 3.5 1
5.5 2.4 3.8 1.1
5.5 2.4 3.7 1
5.8 2.7 3.9 1.2
6 2.7 5.1 1.6
5.4 3 4.5 1.5
6 3.4 4.5 1.6
6.7 3.1 4.7 1.5
6.3 2.3 4.4 1.3
5.6 3 4.1 1.3
5.5 2.5 4 1.3
5.5 2.6 4.4 1.2
6.1 3 4.6 1.4
5.8 2.6 4 1.2
5 2.3 3.3 1
5.6 2.7 4.2 1.3
5.7 3 4.2 1.2
5.7 2.9 4.2 1.3
6.2 2.9 4.3 1.3
5.1 2.5 3 1.1
5.8 2.8 5.1 2.4
6.4 3.2 5.3 2.3
6.5 3 5.5 1.8
7.7 3.8 6.7 2.2
7.7 2.6 6.9 2.3
6 2.2 5 1.5
6.9 3.2 5.7 2.3
5.6 2.8 4.9 2
7.7 2.8 6.7 2
6.3 2.7 4.9 1.8
6.7 3.3 5.7 2.1
7.2 3.2 6 1.8
6.2 2.8 4.8 1.8
6.1 3 4.9 1.8
6.4 2.8 5.6 2.1
7.2 3 5.8 1.6
7.4 2.8 6.1 1.9
7.9 3.8 6.4 2
6.4 2.8 5.6 2.2
6.3 2.8 5.1 1.5
6.1 2.6 5.6 1.4
7.7 3 6.1 2.3
6.3 3.4 5.6 2.4
6.4 3.1 5.5 1.8
6 3 4.8 1.8
6.9 3.1 5.4 2.1
6.7 3.1 5.6 2.4
6.9 3.1 5.1 2.3
5.8 2.7 5.1 1.9
6.8 3.2 5.9 2.3
6.7 3.3 5.7 2.5
6.7 3 5.2 2.3
6.3 2.5 5 1.9
6.5 3 5.2 2
6.2 3.4 5.4 2.3
5.9 3 5.1 1.8
\ No newline at end of file
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
\ No newline at end of file
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-setosa
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-versicolor
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
Iris-virginica
\ No newline at end of file