Sie sind auf Seite 1von 5

Não é segredo que vivemos em um país que está lamentavelmente listado como um dos mais violentos do mundo, em

que temos 21 cidades entre as 50 mais violentas do mundo.

Se levarmos em consideração que em alguns estados do Brasil a taxa de esclarecimento de homicídios é de menos de
15%, temos um problema grave na segurança pública de maneira geral.

Mas se o crime por si só é a externalidade/consequência de diversos fatores como aspectos socioeconômicos,


educacionais, e de ambiente (para citar alguns); o policiamento preventivo, isto é, o ataque direto das causas deve ser o
norte de qualquer política de segurança pública; e é sobre isso que se trata esse post.

Através de uma base de dados sintética (extremamente desbalanceada) de dados que poderiam se extraídos de
qualquer distrito policial ou mesmo de algum departamento de segurança pública vamos fazer a aplicação de
uma técnica de Machine Learning chamada Association Rules ou Regras de Associação para formulação de políticas de
segurança pública.

Como vamos iniciar a nossa análise sem nenhum tipo de hipótese e o objetivo é ver o conhecimento intrínseco da base
de dados, vamos fazer um aprendizado não-supervisionado.

Contexto colocado, vamos para o R Studio.

Antes de mais nada, vamos limpar o nosso console e na sequência importar a biblioteca _arules_ no R.

1 # Clear the console


2 cat("\014")
3
4 # Load arules library
5 library(arules)

Com a nossa lib importada, vamos realizar carregar a nossa base de dados no R.

1 # Load Dataset - This is a synthetic dataset, some inconsistencies can be found... as in the
2 crimes <- read.csv("https://raw.githubusercontent.com/fclesio/learning-space/master/Datasets

Com a nossa base de dados importada, vamos agora ver as colunas da base de dados:

1 # See variables types


2 str(crimes)

Temos uma base de dados com 780 crimes com 16 variáveis que são:

Crime_id: Número da ocorrência.


Zona: Zona da cidade que a ocorrência foi registrada.
Periculosidade: Nível de periculosidade da área de acordo com mapeamentos anteriores.
Viaturas_Apoio_Forca_Tatica: Indica se tem reforços da Força Tática disponíveis na região. A grosso modo, Força
Tática é um destacamento que ‘flutua’ na circulação e tem como objetivo atender a ocorrência mais próxima que a
primeira força de atendimento não conseguir solucionar.
Patrulhamento: Indica se há patrulhamento pelas viaturas do batalhão mais próximo.
Policiamento_Ostensivo: Informa se há operações acontecendo com mais frequência. Um maior nível de
policiamento aumenta também o enfrentamento policial, o que pode acarretar em mais óbitos de ambas as partes.
Apoio_GCM: Esse campo indica se a Guarda Civil Metropolitana circula na área da ocorrência. Diferente da PM ou
da Civil; a GCM apesar das mesmas prerrogativas policiais tem uma função mais voltada à segurança patrimonial
de alguns pontos da cidade e escolas.
Arma_Fogo: Houve arma de fogo na ocorrência.
Qtde_Vitimas: Número de vitimas da ocorrência.
Possui_DP: Tem Distrito Policial nas redondezas.
Tipo_Policiamento: O tipo de policiamento local influencia também na prática de crimes, em que áreas menos
assistidas pelos batalhões podem ter um maior índice de violência em relação à áreas que não tem esse tipo de
atendimento com um maior volume de viaturas e policiais.
Area_Residencial: Indica se é área residencial ou não.
Ocorrencia_Atendida_15_Minutos: Sabe-se que quanto mais demorado for o atendimento da ocorrência, as chances
de resolução do evento criminoso em questão converge para a não solução efetiva. Esse campo indica se a ocorrência
foi prontamente atendida.
Pericia: Informa se houve a perícia para auxiliar nas investigações.
Possui_UPP: Mostra se tem Unidade de Polícia Pacificadora instalada nas redondezas do evento criminoso
Iluminacao: Informa se o local do crime tinha iluminação ou não.
Com um pouco mais de trabalho na parte de data wrangling é possível criar mais algumas variáveis, mas como o foco
aqui será de fazer uma primeira análise básica vamos seguir com algumas estatísticas básicas em relação a cada uma
das variáveis da base de dados.

1 # See basic stats


2 summary(crimes)

Uma olhada rápida no sumário podemos tirar as seguintes informações:

Em relação ao tipo de policiamento vemos que temos um patrulhamento feito por diversos batalhões na metade dos
casos, o que indica que há uma dispersão de batalhões (i.e. nenhum batalhão cuida específicamente de uma área)
nessas áreas mais críticas;
69% das localidades tem algum tipo de Distrito Policial nas redondezas do evento criminoso;
Apenas 1% dos locais não tem nenhum tipo de viatura da Força Tática;
Quase 70% das ocorrências acontecem com 3 ou mais pessoas. Isso nos faz a crer que pode ter dois tipos de vieses
que são a) os crimes coletivos (e.g. arrastões, chacinas, etc.) são os mais reportados ou estão acontecendo de fato, ou
b) os crimes menores como roubo de celular não estão sendo notificados;
Mais de metade das áreas dos eventos aconteceram em áreas consideradas com o nível de periculosidade altíssimo;
Pelos dados a Zona Sul está em chamas;
Com 88% dos locais com iluminação, pode ser que essa variável não seja mais a responsável pela inibição dos
eventos criminosos;
Com apenas 49% dos casos periciados, as atividades de investigação podem em algum momento ter problemas de
robustez de provas; e
Sendo o índice de patrulhamento em 90% e o policiamento ostensivo 83% nas regiões criminosas há indícios de que
os criminosos estão indiferentes à presença policial.

São insights interessantes que nos auxiliam em algumas hipóteses como as levantadas. Neste ponto a análise descritiva
básica pode ajudar e muito no início de uma política de segurança efetiva, e não pode ser descartada em nenhum
momento. No nosso caso vamos avançar para a parte aplicada de machine learning que é o foco desse post.

Vamos criar um objeto utilizando o algoritmo a priori escolhendo um suporte de 55% (isso é, os conjuntos de itens
estarão no mínimo em 55% de todas as transações) e com a confiança de 80% (isso é, a grosso modo é como dizer que há
a probabilidade de 80% das transações encontradas serão derivadas dos itens contidos na base do suporte).

Não há uma regra única em relação à utilização do suporte e confiança, mas trazendo aqui uma heurística que eu
sempre uso é que se o problema tem um volume de transações muito grande, o suporte será a métrica que vai dar mais
robustez para descartar muitas regras redundantes, já se o problema tem uma caracterização com um menor volume de
instâncias e se há uma necessidade de entrar mais no detalhe das regras e elas precisam de um grau de assertividade
naturalmente maior (e.g. uma campanha de cartas em que há um custo operacional envolvido) aí utiliza-se a confiança.
Mas lembrando, tudo isso depende do problema em questão.

Nesse caso, como os recursos a serem empregados são caros e escassos (viaturas e pessoal militar), então partiremos
para uma confiança de 80%.

1 # The most important thing it's get a good support and a great confidence (This is a wishful
2 # The main task here is get a set a most meaningful way, so, shity rules will be discarted.
3 crimes_rulez <- apriori(crimes, parameter = list(minlen=4,maxlen=10, supp=0.55, conf=0.80))

Com o objeto criado, vamos agora reduzir para duas casas decimais as métricas de avaliação dessas regras para fins de
simplicidade.

1 # Reduce the number of digits in measures of quality of the model


2 quality(crimes_rulez) <- round(quality(crimes_rulez), digits=2)

Apenas para fins de visualização, vamos criar alguns objetos de regras ordenando pela confiança e suporte para que
possamos identificar de maneira mais efetiva as regras mais interessantes e acionáveis.

1 # Sort by Confidence and Support and Lift


2 model_srt_confidence <- sort(crimes_rulez, by="confidence")
3
4 model_srt_support <- sort(crimes_rulez, by="support")

Vamos agora inspecionar as nossas regras, de acordo com a confiança e o suporte:


1 # Check models (#66 rules)
2 inspect(model_srt_confidence)
3
4 inspect(model_srt_support)

Com esse comando acima, temos algumas regras:

1 lhs rhs support con


2
3 1 {Apoio_GCM=Nao,
4 Area_Residencial=Sim,
5 Iluminacao=Sim} => {Patrulhamento=Sim} 0.57
6
7 63 {Area_Residencial=Sim,
8 Ocorrencia_Atendida_15_Minutos=Sim,
9 Iluminacao=Sim} => {Zona=Zona_Sul} 0.55
10
11 49 {Patrulhamento=Sim,
12 Area_Residencial=Sim,
13 Ocorrencia_Atendida_15_Minutos=Sim,
14 Iluminacao=Sim} => {Policiamento_Ostensivo=Sim} 0.58

A regra 1 indica que o patrulhamento está funcionando nos locais em que a PM não tem o apoio da GCM em áreas
iluminadas de bairros residenciais;
A regra de número 63 mostra um primeiro padrão em relação a Zona Sul, em que com 82% de confiança essas
ocorrências estão ligadas a lugares com malha residencial, iluminadas e a ocorrência foi feita dentro dos primeiros 15
minutos;
Já a regra 49 que o policiamento ostensivo está ocorrendo com 89% de confiança em áreas já patrulhadas em uma
malha residencial iluminada em que o evento foi atendido em 15 minutos ou menos.

Com essas poucas regras acima podemos observar que o trabalho de primeiro atendimento está sendo feito dado que
grande parte dessas ocorrências (dado o nível de suporte e confiança) estão sendo atendidas em um tempo de 15 minutos.

Outro ponto a ser considerado é que nas áreas residenciais estão ocorrendo muitos eventos criminosos. Isso pode ser
um indicativo de que nas áreas de comércio e indústrias podem estar com baixa atratividade criminosa ou mesmo o
policiamento nessas áreas está mais efetivo. Uma estratégia aqui seria ver esses dois aspectos, e caso a segunda
hipótese estiver correta replicar as ações de combate ao crime.

Já a Zona Sul que concentra grande parte das ocorrências, parece estar em chamas mesmo com um alto nível de
patrulhamento, iluminação e policiamento ostensivo. Neste caso há a hipótese de que são o maior patrulhamento e um
policiamento mais ostensivo além de ter uma ação mais rápida – que converge como o fato do atendimento de
ocorrências demorar menos de 15 minutos – ela tem o poder de jogar luz em uma demanda reprimida de registros
policiais (i.e. crimes que não seriam registrados por ausência do poder público, ou mesmo por descaso do estado nunca
entrariam nas estatísticas oficiais).

Em um segundo caso pode ser mesmo que uma facção criminosa esteja disputando controle direto com a polícia através
de confrontos armados, ou mesmo atentados e roubos em áreas que são vigiadas pela polícia; o que sugere uma
estratégia de inteligência para desarticular de dentro para fora milícias, grupos criminosos ou quadrilhas free lance que
estejam levando terror a essas áreas.

Como são muitas regras e o objetivo é encontrar o máximo de regras específicas, vamos minerar algumas dessas regras
usando campos específicos. Sendo assim vamos explorar um pouco mais das ocorrências que apresentaram as
características de terem ocorrido na Zona Sul, em lugares iluminados, casos que as ocorrências foram atendidas em menos
de 15 minutos ou que tiveram policiamento ostensivo.

1 # See specific rules of zones (I already mined some rules, but feel free to discover)
2 Zona_Sul <- subset(crimes_rulez, subset = rhs %pin% "Zona=Zona_Sul")
3
4 Iluminacao_Sim <- subset(crimes_rulez, subset = rhs %pin% "Iluminacao=Sim")
5
6 Ocorrencia_Atendida_15_Minutos_Sim <- subset(crimes_rulez, subset = rhs %pin% "Ocorrencia_At
7
8 Policiamento_Ostensivo <- subset(crimes_rulez, subset = rhs %pin% "Policiamento_Ostensivo=Si

Esses objetos criados, tem somente as regras em que o RHS (right-hand-side) foram esses campos descritos no parágrafo
anterior.
Vamos inspecionar esses objetos.

1 # Specific Rules
2 inspect(Zona_Sul)
3
4 inspect(Iluminacao_Sim)
5
6 inspect(Ocorrencia_Atendida_15_Minutos_Sim)
7
8 inspect(Policiamento_Ostensivo)

Seguindo a mesma lógica da análise acima, podemos ter os seguintes conjuntos de regras específicas:

1 Zona_Sul
2 8 {Patrulhamento=Sim,
3 Policiamento_Ostensivo=Sim,
4 Iluminacao=Sim} => {Zona=Zona_Sul} 0.66 0.88 1.03
5
6 9 {Patrulhamento=Sim,
7 Area_Residencial=Sim,
8 Iluminacao=Sim} => {Zona=Zona_Sul} 0.66 0.85 0.99
9
10
11 Iluminacao_Sim
12 lhs rhs support confidence lift
13 12 {Patrulhamento=Sim,
14 Policiamento_Ostensivo=Sim,
15 Area_Residencial=Sim,
16 Ocorrencia_Atendida_15_Minutos=Sim} => {Iluminacao=Sim} 0.58 0.96 1.09
17
18 13 {Zona=Zona_Sul,
19 Patrulhamento=Sim,
20 Policiamento_Ostensivo=Sim,
21 Area_Residencial=Sim} => {Iluminacao=Sim} 0.61 0.95 1.08
22
23
24 Ocorrencia_Atendida_15_Minutos_Sim
25 lhs rhs support confidence l
26 5 {Zona=Zona_Sul,
27 Area_Residencial=Sim,
28 Iluminacao=Sim} => {Ocorrencia_Atendida_15_Minutos=Sim} 0.55 0.81 1
29
30 7 {Patrulhamento=Sim,
31 Policiamento_Ostensivo=Sim,
32 Area_Residencial=Sim,
33 Iluminacao=Sim} => {Ocorrencia_Atendida_15_Minutos=Sim} 0.58 0.83 1
34
35
36 Policiamento_Ostensivo
37 lhs rhs support confidence
38 10 {Patrulhamento=Sim,
39 Area_Residencial=Sim,
40 Ocorrencia_Atendida_15_Minutos=Sim,
41 Iluminacao=Sim} => {Policiamento_Ostensivo=Sim} 0.58 0.89
42
43 11 {Zona=Zona_Sul,
44 Patrulhamento=Sim,
45 Area_Residencial=Sim,
46 Iluminacao=Sim} => {Policiamento_Ostensivo=Sim} 0.61 0.93

No caso dessas regras, tudo indica que mesmo com as ocorrências sendo atendidas em menos de 15 minutos em áreas
residenciais iluminadas, a Zona Sul está com um problema grave de segurança.

A estratégia nesse caso seria investir de forma intensa em atividades de inteligência, dado que pelo que vimos pelos
dados há uma situação de combate intenso com policia na rua e crimes acontecendo mesmo em situações em que os
bandidos supostamente estariam intimidados.

Conclusão
Usando uma base sintética, vimos que é possível com algumas linhas de código e estatística descritiva básica ter insights
sobre uma base de dados mesmo sem um conhecimento prévio.
No caso da nossa análise, vimos que pode haver uma situação de confronto clara em áreas residenciais mesmo com
patrulhamento da polícia e policiamento ostensivo acontecendo.

Isso leva a crer que esses crimes estejam sendo reportados pelos aspectos acima, ou mesmo por uma maior disposição
dos criminosos em agir em áreas controladas pela polícia. Isso pode indicar que o trabalho da polícia nesse caso não está
sendo eficiente, e que uma estratégia de investigação através de atividades de inteligência devem ser colocadas em
campo.

Das könnte Ihnen auch gefallen