Open leonardofl opened 10 years ago
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line 91, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/views.py", line 55, in json_analise
analise_temporal = analisador.get_analise_temporal()
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/analise.py", line 68, in get_analise_temporal
self._faz_analises()
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/analise.py", line 93, in _faz_analises
analiseRotacionada = rotacionador.espelha_ou_roda()
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/analise.py", line 446, in espelha_ou_roda
dados_partidos[partido] = numpy.dot( coords, numpy.array([[-1.,0.],[0.,1.]]) )
ValueError: objects are not aligned
Provavelmente o problema são meses com zero votações.
Se você olhar a função que faz a pca esse caso vai parecer estar previsto, de fato eu acredito que esteja (não estou olhando o código agora), porém o problema surge depois, na hora de rotacionar. É claro, não há necessidade de rotacionar nada. Portanto todos os cálculos feitos para ver quanto vai rotacionar e/ou espelhar deveriam ser evitados no caso de zero votações em um dos períodos, evitando por exemplo o produto escalar da linha abaixo:
dados_partidos[partido] = numpy.dot( coords, numpy.array([[-1.,0.],[0.,1.]]) )
(no caso, estou desconfiado de que pelo menos uma das dimensões de coords seja zero).
2013/11/29 Leonardo Leite notifications@github.com
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response response = callback(request, _callback_args, *_callback_kwargs)
File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line 91, in _wrapped_view response = view_func(request, _args, *_kwargs)
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/views.py", line 55, in json_analise analise_temporal = analisador.get_analise_temporal()
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/analise.py", line 68, in get_analise_temporal self._faz_analises()
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/analise.py", line 93, in _faz_analises analiseRotacionada = rotacionador.espelha_ou_roda()
File "/home/leonardo/workspaces/polignu/radar/radar_parlamentar/analises/analise.py", line 446, in espelha_ou_roda dados_partidos[partido] = numpy.dot( coords, numpy.array([[-1.,0.],[0.,1.]]) )
ValueError: objects are not aligned
— Reply to this email directly or view it on GitHubhttps://github.com/leonardofl/radar_parlamentar/issues/193#issuecomment-29531469 .
Talvez esse problema já esteja resolvido e seja só questão de reativar a opção "mensal". Depois que implementamos o filtro, isso de ter períodos com zero votações acontecia bastante, então por isso acho que a situação está melhor tratada agora.
Erro:
######################## Exception ###########################
Traceback (most recent call last):
File "/home/leonardo/workspaces/radar/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/analises/views.py", line 81, in json_analise
analise_temporal = analisador.get_analise_temporal()
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/analises/analise.py", line 83, in get_analise_temporal
self._faz_analises()
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/analises/analise.py", line 107, in _faz_analises
analisePeriodo = analisadorPeriodo.analisa()
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/analises/analise.py", line 205, in analisa
self._calcula_parlamentares_2d()
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/analises/analise.py", line 237, in _calcula_parlamentares_2d
self.coordenadas_parlamentares = self._pca_parlamentares()
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/analises/analise.py", line 269, in _pca_parlamentares
self.pca = pca.PCA(matriz, fraction=1) # faz o pca
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/analises/pca.py", line 78, in __init__
self.U, self.d, self.Vt = np.linalg.svd(A, full_matrices=False)
File "/home/leonardo/workspaces/radar/venv/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 1274, in svd
_assertNonEmpty(a)
File "/home/leonardo/workspaces/radar/venv/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 170, in _assertNonEmpty
raise LinAlgError("Arrays cannot be empty")
LinAlgError: Arrays cannot be empty
##############################################################
[01/Sep/2016 19:09:18] "GET /analises/json_analise/cdep/MES/ HTTP/1.1" 500 91124
######################## Exception ###########################
Traceback (most recent call last):
File "/home/leonardo/workspaces/radar/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/leonardo/workspaces/radar/radar/radar_parlamentar/radar_parlamentar/views.py", line 151, in dados_utilizados
time = os.path.getmtime(dump_file_path)
File "/home/leonardo/workspaces/radar/venv/lib/python2.7/genericpath.py", line 62, in getmtime
return os.stat(filename).st_mtime
TypeError: coercing to Unicode: need string or buffer, NoneType found
##############################################################
[01/Sep/2016 19:21:10] "GET /dados/ HTTP/1.1" 500 65197
Contudo... ao fazer o teste desse erro, deu pra ver que a análise mensal demora pra caramba. Pelo menos na cdep. Temos q fazer uma análise PCA pra cada mês. Me parece q isso é realmente pesado, pelo menos sem nenhuma paralelização como estamos fazendo.
Pra CMSP o problema é outro. A análise sai rápido, mas temos muitos meses com muitas poucas votações, tipo de 1 a 3. Creio que isso diminua o valor do gráfico, pois o gráfico não fica legal pra tão poucas votações.
Por essas é que tô achando que não é uma boa disponibilizar a análise mensal. Em algumas situações pode dar certo, mas no caso geral parece q vai dar mais problema.
O que acham?
PS: na dúvida, o melhor seria deixar rolar, e ver melhor os resultados em produção. Mas estou com bastante dúvida o quanto vale a pena, considerando que o gráfico PCA serve mais para uma análise conjuntural, e talvez, politicamente falando, um mês seja um unidade muito pequena para tal análise.
Bom, de qlqr forma o bug q está acontecendo não deveria acontecer. E se ele acontece no mensal, de repente pode se manifestar em outras situações (como análise com filtro, por ex). Então a correção do bug não perde sua valia.
Testei periodicidade mensal com o senado e com a cmsp e deu pau.