Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Miguel Ángel González Gallardo
/
AnalizadorLogs
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ba7f3e51
authored
Apr 07, 2021
by
Juan Santos Poyato
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Proyecto finalizado
parent
a63973c8
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
75 additions
and
15 deletions
codigo/AnalisisRelacionVisitasDuracion.py
codigo/Gui.py
codigo/__pycache__/AnalisisRelacionVisitasDuracion.cpython-39.pyc
codigo/__pycache__/ObtenerMasVisitados.cpython-39.pyc
codigo/AnalisisRelacionVisitasDuracion.py
View file @
ba7f3e51
import
matplotlib.pyplot
as
plt
import
matplotlib.pyplot
as
plt
import
statistics
as
stat
from
tkinter
import
messagebox
from
tkinter
import
messagebox
...
@@ -12,9 +13,9 @@ def getRelacionVisitasDuracion(reg):
...
@@ -12,9 +13,9 @@ def getRelacionVisitasDuracion(reg):
# Se obtiene la ecuacion de regresión estimada según los máximos y mínimos
# Se obtiene la ecuacion de regresión estimada según los máximos y mínimos
ecuacion
=
obtenerRegresion
(
paginas
,
tiempo
)
ecuacion
=
obtenerRegresion
(
paginas
,
tiempo
)
x0
=
min
(
paginas
)
x0
=
min
(
paginas
)
y0
=
x0
*
ecuacion
[
0
]
+
ecuacion
[
1
]
y0
=
x0
*
ecuacion
[
0
]
+
ecuacion
[
1
]
x1
=
max
(
paginas
)
x1
=
max
(
paginas
)
y1
=
x1
*
ecuacion
[
0
]
+
ecuacion
[
1
]
y1
=
x1
*
ecuacion
[
0
]
+
ecuacion
[
1
]
plt
.
plot
([
x0
,
x1
],
[
y0
,
y1
],
marker
=
'o'
)
plt
.
plot
([
x0
,
x1
],
[
y0
,
y1
],
marker
=
'o'
)
# Mostramos el gráfico y devolvemos la pendiente (ecuacion[0] con el tiempo medio de pagina)
# Mostramos el gráfico y devolvemos la pendiente (ecuacion[0] con el tiempo medio de pagina)
...
@@ -23,7 +24,8 @@ def getRelacionVisitasDuracion(reg):
...
@@ -23,7 +24,8 @@ def getRelacionVisitasDuracion(reg):
plt
.
xlabel
(
"Tiempo total de la Sesion"
)
plt
.
xlabel
(
"Tiempo total de la Sesion"
)
plt
.
show
()
plt
.
show
()
datos
=
"Tiempo Medio de Pagina: {}. Pendiente: {}."
datos
=
"Tiempo Medio de Pagina: {}. Pendiente: {}."
messagebox
.
showinfo
(
message
=
datos
.
format
(
tiempoMedioPagina
,
ecuacion
[
0
]),
title
=
"Comparación tiempo medio con pendiente del modelo"
)
messagebox
.
showinfo
(
message
=
datos
.
format
(
tiempoMedioPagina
,
ecuacion
[
0
]),
title
=
"Comparación tiempo medio con pendiente del modelo"
)
def
getPaginasVisitas
(
reg
):
def
getPaginasVisitas
(
reg
):
...
@@ -37,16 +39,16 @@ def getPaginasVisitas(reg):
...
@@ -37,16 +39,16 @@ def getPaginasVisitas(reg):
for
i
in
range
(
tam
):
for
i
in
range
(
tam
):
r
=
reg
[
i
]
r
=
reg
[
i
]
if
i
<
tam
-
1
:
if
i
<
tam
-
1
:
tiempoPagina
.
append
(
reg
[
i
+
1
]
.
Marca_Tiempo
-
r
.
Marca_Tiempo
)
tiempoPagina
.
append
(
reg
[
i
+
1
]
.
Marca_Tiempo
-
r
.
Marca_Tiempo
)
if
r
.
ID_Sesion
==
reg
[
i
+
1
]
.
ID_Sesion
:
# Si es la misma sesion se incrementan valores
if
r
.
ID_Sesion
==
reg
[
i
+
1
]
.
ID_Sesion
:
# Si es la misma sesion se incrementan valores
paginas
[
index
]
+=
1
paginas
[
index
]
+=
1
tiempoVisita
[
index
]
=
reg
[
i
+
1
]
.
Marca_Tiempo
tiempoVisita
[
index
]
=
reg
[
i
+
1
]
.
Marca_Tiempo
else
:
# Si no se crea nueva
else
:
# Si no se crea nueva
index
+=
1
index
+=
1
paginas
.
append
(
1
)
paginas
.
append
(
1
)
tiempoVisita
.
append
(
0
)
tiempoVisita
.
append
(
0
)
tiempoMedioPag
=
sum
(
tiempoPagina
)
/
len
(
tiempoPagina
)
tiempoMedioPag
=
sum
(
tiempoPagina
)
/
len
(
tiempoPagina
)
return
paginas
,
tiempoVisita
,
tiempoMedioPag
return
paginas
,
tiempoVisita
,
tiempoMedioPag
...
@@ -56,8 +58,8 @@ def obtenerRegresion(paginas, tiempo):
...
@@ -56,8 +58,8 @@ def obtenerRegresion(paginas, tiempo):
tam
=
len
(
paginas
)
tam
=
len
(
paginas
)
# Obtenemos medias aritmeticas
# Obtenemos medias aritmeticas
medx
=
sum
(
paginas
)
/
tam
medx
=
sum
(
paginas
)
/
tam
medy
=
sum
(
tiempo
)
/
tam
medy
=
sum
(
tiempo
)
/
tam
# Obtenemos la covarianza y varianza de y
# Obtenemos la covarianza y varianza de y
xy
=
0
xy
=
0
...
@@ -67,13 +69,71 @@ def obtenerRegresion(paginas, tiempo):
...
@@ -67,13 +69,71 @@ def obtenerRegresion(paginas, tiempo):
xy
+=
paginas
[
i
]
*
tiempo
[
i
]
xy
+=
paginas
[
i
]
*
tiempo
[
i
]
sqx
+=
paginas
[
i
]
*
paginas
[
i
]
sqx
+=
paginas
[
i
]
*
paginas
[
i
]
sqy
+=
tiempo
[
i
]
*
tiempo
[
i
]
sqy
+=
tiempo
[
i
]
*
tiempo
[
i
]
cov
=
xy
/
tam
-
medx
*
medy
cov
=
xy
/
tam
-
medx
*
medy
vay
=
sqy
/
tam
-
medy
*
medy
vay
=
sqy
/
tam
-
medy
*
medy
# Obtenemos la recta de regresión de Y sobre X, y = cov/vay(x - medx) + medy
# Obtenemos la recta de regresión de Y sobre X, y = cov/vay(x - medx) + medy
Ax
=
cov
/
vay
Ax
=
cov
/
vay
Bc
=
Ax
*
medx
+
medy
Bc
=
Ax
*
medx
+
medy
ecuacion
.
append
(
Ax
)
# Para Ax
ecuacion
.
append
(
Ax
)
# Para Ax
ecuacion
.
append
(
Bc
)
# Para B
ecuacion
.
append
(
Bc
)
# Para B
return
ecuacion
return
ecuacion
def
getDuracionPrimerasVisitas
(
reg
):
# Obtenemos duraciones de primeras dos paginas (index se considera num sesion)
duraciones1
,
duraciones2
,
sesiones
=
getDuraciones
(
reg
)
tam
=
len
(
duraciones1
)
# Realizamos histogramas de duración de visitas de la duracion de las primeras paginas
plt
.
hist
(
x
=
duraciones1
,
bins
=
max
(
duraciones1
)
+
1
,
color
=
'#F2AB6D'
,
rwidth
=
0.85
)
plt
.
ylabel
(
"Frecuencia"
)
plt
.
xlabel
(
"Tiempo de primera visita"
)
plt
.
title
(
"Histograma: "
)
plt
.
show
()
# Obtenemos estadísticos habituales de ambas y los mostramos
media1
,
desv1
,
mediana1
,
moda1
,
minimo1
,
maximo1
=
getEstadisticas
(
duraciones1
,
tam
)
media2
,
desv2
,
mediana2
,
moda2
,
minimo2
,
maximo2
=
getEstadisticas
(
duraciones2
,
tam
)
datos
=
"{} -
\n
Media: {}. Desviación estándar: {}. Mediana: {}. Moda: {}. Mínimo: {}. Maximo: {}"
messagebox
.
showinfo
(
message
=
datos
.
format
(
"PRIMERA PÁGINA - "
,
media1
,
desv1
,
mediana1
,
moda1
,
minimo1
,
maximo1
),
title
=
"Estadísticas Primeras Páginas: "
)
messagebox
.
showinfo
(
message
=
datos
.
format
(
"SEGUNDA PÁGINA - "
,
media2
,
desv2
,
mediana2
,
moda2
,
minimo2
,
maximo2
),
title
=
"Estadísticas Segundas Páginas: "
)
def
getDuraciones
(
reg
):
duraciones1
=
[]
duraciones2
=
[]
sesiones
=
[]
tam
=
len
(
reg
)
for
i
in
range
(
tam
):
# Si quedan hasta 2 sesiones mas se podran obtener las dos visitas de paginas
if
tam
-
2
>
i
:
r1
=
reg
[
i
]
r2
=
reg
[
i
+
1
]
r3
=
reg
[
i
+
2
]
sesion
=
r1
.
ID_Sesion
if
sesion
not
in
sesiones
:
# Si no ha sido introducido ya, si hay hasta 3 acceso en esa sesion, agrega las duraciones
if
r1
.
ID_Sesion
==
r3
.
ID_Sesion
:
duraciones1
.
append
(
r2
.
Marca_Tiempo
-
r1
.
Marca_Tiempo
)
duraciones2
.
append
(
r3
.
Marca_Tiempo
-
r2
.
Marca_Tiempo
)
sesiones
.
append
(
sesion
)
return
duraciones1
,
duraciones2
,
sesiones
def
getEstadisticas
(
duraciones
,
tam
):
# Obtenemos media, desviacion y mediana
media
=
sum
(
duraciones
)
/
tam
desv
=
stat
.
stdev
(
duraciones
)
mediana
=
stat
.
median
(
duraciones
)
# Obtenemos moda, minimo y maximo
moda
=
stat
.
mode
(
duraciones
)
minimo
=
min
(
duraciones
)
maximo
=
max
(
duraciones
)
return
media
,
desv
,
mediana
,
moda
,
minimo
,
maximo
codigo/Gui.py
View file @
ba7f3e51
...
@@ -16,7 +16,7 @@ from VentanaAbrir import VentanaAbrir
...
@@ -16,7 +16,7 @@ from VentanaAbrir import VentanaAbrir
from
About_GUI
import
VentanaAbout
from
About_GUI
import
VentanaAbout
from
TransfCesta
import
TransformarCesta
from
TransfCesta
import
TransformarCesta
from
AnalisisRelacionVisitasDuracion
import
getRelacionVisitasDuracion
from
AnalisisRelacionVisitasDuracion
import
getRelacionVisitasDuracion
#
from AnalisisRelacionVisitasDuracion import getDuracionPrimerasVisitas
from
AnalisisRelacionVisitasDuracion
import
getDuracionPrimerasVisitas
def
f_abrir
():
def
f_abrir
():
RUTA_ARCHIVO
=
filedialog
.
askopenfilename
(
initialdir
=
"/"
,
title
=
"Seleccione fichero"
,
RUTA_ARCHIVO
=
filedialog
.
askopenfilename
(
initialdir
=
"/"
,
title
=
"Seleccione fichero"
,
...
@@ -105,7 +105,7 @@ def fRelVisDur():
...
@@ -105,7 +105,7 @@ def fRelVisDur():
def
fDurVis
():
def
fDurVis
():
if
len
(
REG
)
>
0
:
if
len
(
REG
)
>
0
:
return
#
getDuracionPrimerasVisitas(REG)
getDuracionPrimerasVisitas
(
REG
)
def
barraMenu
(
ventana
):
def
barraMenu
(
ventana
):
# DEFINIR BARRA DE MENÚ DE LA APLICACION:
# DEFINIR BARRA DE MENÚ DE LA APLICACION:
...
...
codigo/__pycache__/AnalisisRelacionVisitasDuracion.cpython-39.pyc
View file @
ba7f3e51
No preview for this file type
codigo/__pycache__/ObtenerMasVisitados.cpython-39.pyc
View file @
ba7f3e51
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment