-
Notifications
You must be signed in to change notification settings - Fork 0
/
projeto.Rhistory
103 lines (79 loc) · 3.72 KB
/
projeto.Rhistory
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# Le a base de dados.
mydata <- read.csv("/Users/marcelodib/Desktop/IA/BO_2016.csv")
# Retira as colunas que não serao utilizadas para a analise.
# Sobrando Somente 3 colunas RUBIRCA, LATITUDE, LONGITUDE.
mydata <- mydata[,-1:-12]
mydata <- mydata[,-2:-3]
mydata <- mydata[,-4:-8]
# Converte os valores negativos para positivo
# Converte todos os valores NULL para Na.
# Joga os valores convertidos para duas novas colunas LAT e LNG
mydata["LAT"] <- as.numeric(as.character(mydata[,2])) * -1
mydata["LNG"] <- as.numeric(as.character(mydata[,3])) * -1
# Retira as colunas LATITUDE, LONGITUDE que possuem os valores não tratados
mydata <- mydata[,-2]
mydata <- mydata[,-2]
# Remove qualquer linha que possua um valor Na.
mydata <- mydata[rowSums(is.na(mydata)) == 0,]
# Instala o package tidyverse para realizar os tratamentos de filtro.
install.packages("tidyverse")
library(tidyverse)
# Transforma a base de dados em um data frame.
my_data <- as_tibble(mydata)
# Filtra a base de dados para somente casos de Furto.
my_furto <- my_data %>% filter(RUBRICA == "Furto (art. 155)")
# Filtra a base de dados para somente casos de Roubo.
my_roubo <- my_data %>% filter(RUBRICA == "Roubo (art. 157)")
# Filtra a base de dados para somente casos de Estupro.
my_estupro_1 <- my_data %>% filter(RUBRICA == "A.I.-Estupro de vulneravel (art.217-A)")
my_estupro_2 <- my_data %>% filter(RUBRICA == "Estupro (art.213)")
my_estupro_3 <- my_data %>% filter(RUBRICA == "Estupro de vulneravel (art.217-A)")
# Renomeia o nome dos crimes para somente um tipo, Estupro (art.213).
my_estupro_1$RUBRICA[my_estupro_1$RUBRICA == "A.I.-Estupro de vulneravel (art.217-A)"] <- "Estupro (art.213)"
my_estupro_3$RUBRICA[my_estupro_3$RUBRICA == "Estupro de vulneravel (art.217-A)"] <- "Estupro (art.213)"
# Agrupa todos os casos de estupro.
my_estupro <- rbind(my_estupro_1, my_estupro_2, my_estupro_3)
# Agrupa todos os dados obtidos em uma tabela.
my_datinha <- rbind(my_furto, my_roubo, my_estupro)
# Realiza o algoritimo kmeans, retirando a coluna de definição dos crimes, RUBRICA.
dataTest<-my_datinha[,-1]
res<-kmeans(dataTest, 3)
clusterArray<-res$cluster
# Faz o plot do grafico com base nos dados tratados.
# O plot é colorido com base nos clusters obtidos.
plot(my_datinha,col=clusterArray)
# Adiciona os clusters a tabela para fins de comparação
my_datinha["cluster"] <- clusterArray
# Separa cada tipo de roubo em uma tabela separada.
my_furto <- my_datinha %>% filter(RUBRICA == "Furto (art. 155)")
my_roubo <- my_datinha %>% filter(RUBRICA == "Roubo (art. 157)")
my_estupro <- my_datinha %>% filter(RUBRICA == "Estupro (art.213)")
# Separa cada clustes referente a Furto.
my_furto_c1 <- my_furto %>% filter(cluster == 1)
my_furto_c2 <- my_furto %>% filter(cluster == 2)
my_furto_c3 <- my_furto %>% filter(cluster == 3)
# Separa cada clustes referente a Roubo.
my_roubo_c1 <- my_roubo %>% filter(cluster == 1)
my_roubo_c2 <- my_roubo %>% filter(cluster == 2)
my_roubo_c3 <- my_roubo %>% filter(cluster == 3)
# Separa cada clustes referente a Estupro.
my_estupro_c1 <- my_estupro %>% filter(cluster == 1)
my_estupro_c2 <- my_estupro %>% filter(cluster == 2)
my_estupro_c3 <- my_estupro %>% filter(cluster == 3)
# Agrupa todos cada tipo de crime em um cluster.
cluster_1 <- rbind(my_estupro_c1, my_roubo_c1, my_furto_c1)
cluster_2 <- rbind(my_estupro_c2, my_roubo_c2, my_furto_c2)
cluster_3 <- rbind(my_estupro_c3, my_roubo_c3, my_furto_c3)
# Retira a primeira e 3 coluna, RUBRICA, cluster.
cluster_1 <- cluster_1[,-1]
cluster_1 <- cluster_1[,-3]
cluster_2 <- cluster_2[,-1]
cluster_2 <- cluster_2[,-3]
cluster_3 <- cluster_3[,-1]
cluster_3 <- cluster_3[,-3]
# Faz o plot de cada cluster.
plot(cluster_1)
plot(cluster_2)
plot(cluster_3)
# Retira a coluna RUBRICA.
my_data_clean <- my_datinha[,-1]