Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Carlos-Francisco Méndez-Cruz
/
lcg-bioinfoI-bionlp
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Carlos-Francisco Méndez-Cruz
2019-03-26 11:57:06 -0600
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e879af08f20511e2bd79fe1994d1617f080e05c1
e879af08
1 parent
f295bc6c
Iris dataset for automatic clasification
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
979 additions
and
0 deletions
clasificacion-automatica/iris-dataset/data.txt
clasificacion-automatica/iris-dataset/models/delete-me
clasificacion-automatica/iris-dataset/reports/delete-me
clasificacion-automatica/iris-dataset/test_Data.txt
clasificacion-automatica/iris-dataset/test_TrueClasses.txt
clasificacion-automatica/iris-dataset/trainingTest_IrisFiles.py
clasificacion-automatica/iris-dataset/trainingTest_Iris_v0.py
clasificacion-automatica/iris-dataset/trainingTest_Iris_v1.py
clasificacion-automatica/iris-dataset/trainingTest_Iris_v2.py
clasificacion-automatica/iris-dataset/training_Data.txt
clasificacion-automatica/iris-dataset/training_TrueClasses.txt
clasificacion-automatica/iris-dataset/true_Classes.txt
clasificacion-automatica/iris-dataset/data.txt
0 → 100644
View file @
e879af0
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
clasificacion-automatica/iris-dataset/models/delete-me
0 → 100644
View file @
e879af0
File mode changed
clasificacion-automatica/iris-dataset/reports/delete-me
0 → 100644
View file @
e879af0
File mode changed
clasificacion-automatica/iris-dataset/test_Data.txt
0 → 100644
View file @
e879af0
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
clasificacion-automatica/iris-dataset/test_TrueClasses.txt
0 → 100644
View file @
e879af0
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
clasificacion-automatica/iris-dataset/trainingTest_IrisFiles.py
0 → 100644
View file @
e879af0
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
clasificacion-automatica/iris-dataset/trainingTest_Iris_v0.py
0 → 100644
View file @
e879af0
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
clasificacion-automatica/iris-dataset/trainingTest_Iris_v1.py
0 → 100644
View file @
e879af0
# -*- 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
))
clasificacion-automatica/iris-dataset/trainingTest_Iris_v2.py
0 → 100644
View file @
e879af0
# -*- 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
))
clasificacion-automatica/iris-dataset/training_Data.txt
0 → 100644
View file @
e879af0
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
clasificacion-automatica/iris-dataset/training_TrueClasses.txt
0 → 100644
View file @
e879af0
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
clasificacion-automatica/iris-dataset/true_Classes.txt
0 → 100644
View file @
e879af0
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
Please
register
or
login
to post a comment