TCC Ciência de Dados 2019
TCC Ciência de Dados 2019
TCC Ciência de Dados 2019
Belo Horizonte
2021
Gláucia de Oliveira Dias
Belo Horizonte
2021
SUMÁRIO
1. Introdução..................................................................................................................4
1.1. Contextualização..................................................................................................4
1.2. O problema proposto...........................................................................................4
2. Coleta de Dados......................................................................................................4
3. Processamento/Tratamento de Dados.................................................................5
4. Análise e Exploração dos Dados...........................................................................5
5. Criação de Modelos de Machine Learning...........................................................5
6. Apresentação dos Resultados...............................................................................5
7. Links.........................................................................................................................6
REFERÊNCIAS.............................................................................................................7
APÊNDICE....................................................................................................................8
4
1 Introdução
O trabalho visa à análise do Indicador de Situação Previdenciária (ISP)
relacionado ao Regime Próprio de Previdência Social, no intuito de dar ampla
visibilidade à situação do sistema de previdência dos servidores públicos e oferecer
insights para a melhoria da gestão previdenciária.
1.1 Contextualização
Com o objetivo de atender ao art. 40 da Constituição Federal, os Regimes
Próprios de Previdência Social (RPPS) foram instituídos pelos entes federativos para
dar cobertura a servidores públicos titulares de cargos efetivos, bem como a
membros da magistratura, do Ministério Público, da Defensoria Pública e dos
Tribunais de Contas.
Para dar ampla visibilidade do ISP aos entes federativos houve a necessidade
de analisar os dados históricos do ISP combinando com os dados de população,
com objetivo de criar um painel de visualização de classificação dos entes.
2 Coleta de Dados
Nesse trabalho foram utilizadas três fontes de dados: a primeira é referente
aos indicadores gerados pela Subsecretaria dos Regimes Próprios de Previdência
Social – SRPPS, a segunda é referente às informações dos entes, como nome e
código ibge, disponibilizadas pelo IBGE, e a última refere-se aos dados de
população dos entes federativos, também disponibilizados pelo IBGE.
6
ADMINISTRATIVA
ATENDIMENTO AO AUDITOR FISCAL Status do critério (Regular, Texto
EM AUDITORIA DIRETA NO PRAZO Irregular, com Decisão Judicial,
Em Análise)
ATENDIMENTO AO MPS EM Status do critério (Regular, Texto
AUDITORIA INDIRETA NO PRAZO Irregular, com Decisão Judicial,
Em Análise)
CARÁTER CONTRIBUTIVO (ENTE E Status do critério (Regular, Texto
ATIVOS - ALÍQUOTAS) Irregular, com Decisão Judicial,
Em Análise)
CARÁTER CONTRIBUTIVO (INATIVOS Status do critério (Regular, Texto
E PENSIONISTAS- ALÍQUOTAS) Irregular, com Decisão Judicial,
Em Análise)
CARÁTER CONTRIBUTIVO Status do critério (Regular, Texto
(REPASSE) - DECISÃO Irregular, com Decisão Judicial,
ADMINISTRATIVA Em Análise)
COBERTURA EXCLUSIVA A Status do critério (Regular, Texto
SERVIDORES EFETIVOS Irregular, com Decisão Judicial,
Em Análise)
CONCESSÃO DE BENEFÍCIOS NÃO Status do critério (Regular, Texto
DISTINTOS DO RGPS - PREVISÃO Irregular, com Decisão Judicial,
LEGAL Em Análise)
CONTAS BANCÁRIAS DISTINTAS Status do critério (Regular, Texto
PARA OS RECURSOS Irregular, com Decisão Judicial,
PREVIDENCIÁRIOS Em Análise)
DEMONSTRATIVO DA POLÍTICA DE Status do critério (Regular, Texto
INVESTIMENTOS - DPIN - Irregular, com Decisão Judicial,
CONSISTÊNCIA Em Análise)
DEMONSTRATIVO DA POLÍTICA DE Status do critério (Regular, Texto
INVESTIMENTOS - DPIN - Irregular, com Decisão Judicial,
ENCAMINHAMENTO À SPPS Em Análise)
DEMONSTRATIVO DAS APLICAÇÕES Status do critério (Regular, Texto
E INVESTIMENTOS DOS RECURSOS Irregular, com Decisão Judicial,
- DAIR - CONSISTÊNCIA Em Análise)
DEMONSTRATIVO DAS APLICAÇÕES Status do critério (Regular, Texto
E INVESTIMENTOS DOS RECURSOS Irregular, com Decisão Judicial,
- DAIR - ENCAMINHAMENTO A Em Análise)
PARTIR DE 2017
DEMONSTRATIVO DE Status do critério (Regular, Texto
INFORMAÇÕES PREVIDENCIÁRIAS E Irregular, com Decisão Judicial,
REPASSES - DIPR - CONSISTÊNCIA E Em Análise)
CARÁTER CONTRIBUTIVO
DEMONSTRATIVO DE Status do critério (Regular, Texto
INFORMAÇÕES PREVIDENCIÁRIAS E Irregular, com Decisão Judicial,
REPASSES - DIPR - Em Análise)
ENCAMINHAMENTO À SPPS
ENCAMINHAMENTO DA LEGISLAÇÃO Status do critério (Regular, Texto
À SPS Irregular, com Decisão Judicial,
Em Análise)
EQUILÍBRIO FINANCEIRO E Status do critério (Regular, Texto
ATUARIAL - ENCAMINHAMENTO NTA, Irregular, com Decisão Judicial,
DRAA E RESULTADOS DAS Em Análise)
ANÁLISES
ESCRITURAÇÃO CONTÁBIL - Status do critério (Regular, Texto
CONSISTÊNCIA DAS INFORMAÇÕES Irregular, com Decisão Judicial,
- DECISÃO ADMINISTRATIVA Em Análise)
EXISTENCIA DE COLEGIADO OU Status do critério (Regular, Texto
INSTÂNCIA DE DECISÃO EM QUE Irregular, com Decisão Judicial,
SEJA GARANTIDA A PARTICIPAÇÃO Em Análise)
8
DOS SEGURADOS
INCLUSÃO DE PARCELAS Status do critério (Regular, Texto
REMUNERATÓRIAS TEMPORÁRIAS Irregular, com Decisão Judicial,
NOS BENEFÍCIOS Em Análise)
OBSERVÂNCIA DOS LIMITES DE Status do critério (Regular, Texto
CONTRIBUIÇÃO DO ENTE Irregular, com Decisão Judicial,
Em Análise)
OBSERVÂNCIA DOS LIMITES DE Status do critério (Regular, Texto
CONTRIBUIÇÃO DOS SEGURADOS E Irregular, com Decisão Judicial,
PENSIONISTAS Em Análise)
REGRAS DE CONCESSÃO, CÁLCULO Status do critério (Regular, Texto
E REAJUSTAMENTO DE BENEFÍCIOS Irregular, com Decisão Judicial,
Em Análise)
UNIDADE GESTORA E REGIME Status do critério (Regular, Texto
PRÓPRIO ÚNICOS Irregular, com Decisão Judicial,
Em Análise)
UTILIZAÇÃO DOS RECURSOS Status do critério (Regular, Texto
PREVIDENCIÁRIOS - DECISÃO Irregular, com Decisão Judicial,
ADMINISTRATIVA Em Análise)
UTILIZAÇÃO DOS RECURSOS Status do critério (Regular, Texto
PREVIDENCIÁRIOS - PREVISÃO Irregular, com Decisão Judicial,
LEGAL Em Análise)
PONTUAÇÃO Pontuação do Indicador de Númerico
Regularidade
CLASSIFICAÇÃO Classificação do Indicador de Caracter
Regularidade
Cada arquivo possui duas planilhas, onde será lida apenas 1 delas, conforme
apresentado a seguir. Os arquivos se encontram se encontram no repositório
.../fonte_de_dados.
3 Processamento/Tratamento de Dados
Antes de abordar o processamento dos dados, serão apresentados a
linguagem de programação e as bibliotecas utilizadas para processar e tratar os
dados, o banco de dados utilizado para armazenar os dados tratados e o processo
de criação do banco de dados
3.1.2.Bibliotecas
3.1.3.Banco de Dados
3.1.2 Bibliotecas
data_termo Date
data_certificacao Date
nivel Character varying
classificacao Character varying
ano Integer
codigo_ibge Integer
indicador_regularidade
pontuacao Double precision
classificacao Character varying
ano Integer
codigo_ibge Integer
ind_regularidade Character(1)
ind_envio_informacoes Character(1)
ind_gestao Character(1)
classificacao_gestao Character(1)
indicador_situacao_ ind_suficiencia_financeira Character(1)
previdenciaria ind_acumulacao_recurso Character(1)
s
classificacao_financas Character(1)
ind_cobertura Character(1)
classificacao_atuaria Character(1)
resultado_isp Character(1)
perfil_atuarial Character varying
ano Integer
codigo_ibge Integer
indicador_suficiencia_ receitas Double precision
financeira despesas Double precision
pontuacao Double precision
classificacao Character varying
ano Integer
populacao codigo_ibge Integer
populacao Integer
ano Integer
codigo_ibge Integer
regularidade_extrato
criterio Character varying
situacao Character varying
Estado: BR_UF_2019.dbf
Município: BR_Municipios_2019.dbf
import pandas as pd
import dbfread
file_name_UF = 'D:\\Pos-EAD\\fonte-de-dados\\
br_unidades_da_federacao\\BR_UF_2019.dbf'
file_name_MU = 'D:\\Pos-EAD\\fonte-de-dados\\
br_municipios_20200807\\BR_Municipios_2019.dbf'
'postgres+psycopg2://username:password@ipaddress:port/dbname'
24
sheet_pop_2019 = 'Municípios'
#Juntar dados de UF e MU
df_pop_2019 = pd.concat(
[df_pop_UF_2019,df_pop_MU_2019[['codigo_ibge',
'POPULAÇÃO ESTIMADA']]])
df_pop_2019['ano'] = 2019
try:
frame = df_pop.to_sql(tb_populacao, con,if_exists='append',
index=False);
27
...
Cada arquivo possui várias planilhas, onde serão lidas apenas 8 delas. Os
dados foram importados do formato Microsoft Excel® (.xlsx) de um diretório
previamente definido, para um dataframe pandas, permitindo posterior manipulação.
Assim, foi necessária a importação da biblioteca pandas e a utilização do método
read_excel para leitura do arquivo.
Primeiro passo foi identificar qual código IBGE corresponde com o nome do
ente lido do arquivo da SPREV. O objetivo é fazer a ligação dos registros lidos do
arquivo do IBGE. Para isso, foi criado um dataframe com o código IBGE, o nome do
ente lido do IBGE e nome do ente lido da SPREV. Para fazer a correspondência dos
nomes das duas fontes de dados, foi utilizado um dos algoritmos de similaridade
previsto no modelo de machine learning. O desenvolvimento e a análise dos
algoritmos estão demonstrados no tópico 5. Criação de Modelos de Machine
Learning.
import import_ipynb
28
df_retorno = pd.DataFrame(columns=['codigo_ibge','tipo_ente',
'ente_sprev','ente_ibge','grau'])
for i, l1 in df_sprev.iterrows():
s1 = l1['ente_sprev']
t1 = l1['tipo_ente']
uf1 = l1['sigla_uf']
df_similaridade = pd.DataFrame(
columns = ['codigo_ibge','tipo_ente',
'ente_sprev','ente_ibge','grau'])
for j, l2 in df_ibge.iterrows():
s2 = l2['ente_ibge']
t2 = l2['tipo_ente']
uf2 = l2['sigla_uf']
cod_ibge=l2['codigo_ibge']
df = pd.DataFrame([[cod_ibge,t1,s1, s2,grau]],
columns=['codigo_ibge','tipo_ente',
'ente_sprev','ente_ibge','grau'])
df_similaridade=df_similaridade.append(df)
vmax = df_similaridade["grau"].max()
df_similaridade =
df_similaridade[df_similaridade['grau']==vmax]
df_retorno = df_retorno.append(df_similaridade)
return df_retorno
O segundo passo foi a leitura do código e nome dos entes do IBGE, a partir
do banco de dados, uma vez que já foram carregados do arquivo e gravados
(3.3.1.1 Informações do Ente).
postgres:postgres@localhost:5432/indicador_previdencia'
engine = create_engine(postgres_str)
O terceiro passo foi a leitura dos dados da SPREV, a partir dos arquivos de
origem, com o método do pandas read_excel. Os dados necessários para a
montagem deste dataframe foram obtidos da planilha ‘Resutlado’. Os campos
carregados foram o nome do ente, a sigla da UF e o grupo.
file_name_2019 = 'D:\\Pos-EAD\\fonte-de-dados\\
isp-rpps-2019-11-08-2020.xlsx'
file_name_2020 = 'D:\\Pos-EAD\\fonte-de-dados\\
isp-rpps-2020-16-12-2020.xlsx'
# Dados de 2019
sheet_2019 = 'Resultado'
df_2019=df_2019.rename(columns={df_2019.columns[0]: 'ente_sprev',
df_2019.columns[1]: 'sigla_uf',
df_2019.columns[2]: 'grupo'})
#Dados de 2020
sheet_2020 = 'RESULTADO'
df_2020=df_2020.rename(columns={df_2020.columns[0]: 'ente_sprev',
df_2020.columns[1]: 'sigla_uf',
df_2020.columns[2]: 'grupo'})
Como foram lidos dois arquivos, foi feita a unificação dos registros de 2019 e
2020.
30
# Unificando os registros
df_sprev = df_2019.copy()
df_sprev = df_sprev.append(df_2020)
Em seguida, foi feita a identificação dos entes que são Estado e Município e a
remoção dos nomes duplicados.
df_sprev = df_sprev.drop_duplicates()
df_sprev = df_sprev.reset_index(drop=True)
Por fim, foi feita a chamada do método para descobrir o código IBGE para os
entes da SPREV. O retorno do método é um dataframe (df_cod_ibge) que contém o
código IBGE, o nome do ente do IBGE e o nome do ente da SPREV. Esse
dataframe será utilizado posteriormente, na carga das planilhas do arquivo do ISP
df_grupos_2019 = pd.read_excel(file_name_2019,
sheet_name = sheet_grupos_2019,
header=1, usecols='A,D:H')
31
df_grupos_2019 = df_grupos_2019.rename(columns={
df_grupos_2019.columns[0]:'ente_uf',
df_grupos_2019.columns[1]: 'grupo',
df_grupos_2019.columns[2]: 'subgrupo',
df_grupos_2019.columns[3]: 'qtd_ativos',
df_grupos_2019.columns[4]: 'qtd_aposentados',
df_grupos_2019.columns[5]: 'qtd_pensionistas'})
df_grupos_2020 = pd.read_excel(file_name_2020,
sheet_name = sheet_grupos_2020,
usecols='A:F')
df_grupos_2020=df_grupos_2020.rename(columns={
df_grupos_2020.columns[0]: 'ente_uf',
df_grupos_2020.columns[1]: 'grupo',
df_grupos_2020.columns[2]: 'subgrupo',
df_grupos_2020.columns[3]: 'qtd_ativos',
df_grupos_2020.columns[4]: 'qtd_aposentados',
df_grupos_2020.columns[5]: 'qtd_pensionistas'})
df_grupos_2019['ano'] = 2019
df_grupos_2020['ano'] = 2020
Em seguida, foi feita a identificação dos entes que são Estado e Município.
Em seguida, foi feita a busca pelo código IBGE de cada ente, utilizando o
dataframe carregado previamente (df_cod_ibge).
try:
df_entes_rpps = df_grupos[['ano', 'codigo_ibge', 'grupo',
'subgrupo', 'qtd_ativos',
'qtd_aposentados', 'qtd_pensionistas']]
4.1 Percentual dos entes com RPPS em relação ao total de entes (Estados e
Municípios)
Primeiro, foi calculado o total de entes com RPPS, obtido da tabela ente_rpps.
Em seguida, dividiu-se esse número pelo total geral de entes, obtido da tabela entes.
4.3 Percentual dos entes classificados por grupo e subgrupo em relação ao to-
tal de entes RPPS
Para o primeiro percentual, foi calculada a quantidade de entes classificados
por grupo (pequeno porte, médio porte, grande porte, Estados/DF, não
classificados). Em seguida, dividiu-se a quantidade de cada grupo pelo número de
entes com RPPS.
Para o segundo percentual, obtêm-se a quantidade de entes classificados por
subgrupo (menor maturidade, maior maturidade). Em seguida, dividiu-se a
quantidade de cada subgrupo pelo número de entes com RPPS.
Fonte [REF1]
Entrada de dados
Nomes da fonte IBGE
1. BAHIA – BA
2. DISTRITO FEDERAL – DF
3. GOIÁS – GO
4. RIO DE JANEIRO - RJ
5. RIO GRANDE DO NORTE – RN
6. RIO GRANDE DO SUL – RS
7. SANTA CATARINA – SC
8. JANUÁRIO CICCO – RN
9. SÃO LUÍS DO QUITUNDE – AL
10. SÃO LUIS DO CURU – CE
Nomes da fonte SPREV
1. GOVERNO DO DISTRITO FEDERAL – DF
2. GOVERNO DO ESTADO DA BAHIA – BA
3. GOVERNO DO ESTADO DE GOIÁS – GO
4. BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN
5. SÃO LUIZ DO QUITUNDE – AL
Resultado esperado
NOME SPREV NOME IBGE
GOVERNO DO DISTRITO FEDERAL – DF DISTRITO FEDERAL – DF
GOVERNO DO ESTADO DA BAHIA – BA BAHIA – BA
GOVERNO DO ESTADO DE GOIÁS – GO GOIÁS - GO
BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – JANUÁRIO CICCO – RN
RN
SÃO LUIZ DO QUITUNDE – AL SÃO LUÍS DO QUITUNDE – AL
40
df_retorno = pd.DataFrame(
columns=['SPREV','IBGE','SIMILARIDADE'])
for s1 in df_find:
df_similaridade = pd.DataFrame(
columns=['s1','s2','grau'])
for s2 in df_all:
if tipo == 'levenshtein':
grau = medida.levenshtein_similarity(s1,s2)
elif tipo == 'hamming':
grau = medida.hamming_similarity(s1,s2)
elif tipo == 'jaro':
grau = medida.jaro_similarity(s1,s2)
elif tipo == 'jaro_winkler':
grau = medida.jaro_winkler_similarity(s1,s2)
elif tipo == 'lcf':
grau = medida.lcf_similarity(s1,s2)
elif tipo == 'ngram':
grau = medida.trigrams_similarity(s1,s2)
elif tipo == 'smith_waterman':
grau = medida.smith_waterman_similarity(s1,s2)
else :
grau=0
df = pd.DataFrame([[s1, s2,grau]],
columns=['s1','s2','grau'])
df_similaridade=df_similaridade.append(df)
vmax = df_similaridade["grau"].max()
df_similaridade = df_similaridade[
df_similaridade['grau']== vmax]
nomes = df_similaridade["s2"].str.cat(sep=';')
return df_retorno
41
Loop 1
Nome para GOVERNO DO DISTRITO FEDERAL – DF
pesquisa:
SPREV IBGE SIMILARIDADE
0 GOVERNO DO DISTRITO FEDERAL – DF BAHIA – BA 0.09375
1 GOVERNO DO DISTRITO FEDERAL – DF DISTRITO FEDERAL – DF 0.65625
2 GOVERNO DO DISTRITO FEDERAL – DF GOIÁS – GO 0.06250
3 GOVERNO DO DISTRITO FEDERAL – DF RIO DE JANEIRO – RJ 0.09375
Cálculo da 4 GOVERNO DO DISTRITO FEDERAL – DF RIO GRANDE DO NORTE – RN 0.12500
Similaridade 5 GOVERNO DO DISTRITO FEDERAL – DF RIO GRANDE DO SUL – RS 0.12500
6 GOVERNO DO DISTRITO FEDERAL – DF SANTA CATARINA – SC 0.09375
7 GOVERNO DO DISTRITO FEDERAL – DF JANUÁRIO CICCO – RN 0.09375
8 GOVERNO DO DISTRITO FEDERAL – DF SÃO LUÍS DO QUITUNDE – AL 0.12500
9 GOVERNO DO DISTRITO FEDERAL – DF SÃO LUIS DO CURU – CE 0.12500
Loop 3
Nome para GOVERNO DO ESTADO DE GOIÁS – GO
pesquisa:
SPREV IBGE SIMILARIDADE
0 GOVERNO DO ESTADO DE GOIÁS – GO BAHIA – BA 0.096774
1 GOVERNO DO ESTADO DE GOIÁS – GO DISTRITO FEDERAL – DF 0.096774
2 GOVERNO DO ESTADO DE GOIÁS – GO GOIÁS – GO 0.193548
3 GOVERNO DO ESTADO DE GOIÁS – GO RIO DE JANEIRO – RJ 0.161290
Cálculo da 4 GOVERNO DO ESTADO DE GOIÁS – GO RIO GRANDE DO NORTE – RN 0.129032
Similaridade 5 GOVERNO DO ESTADO DE GOIÁS – GO RIO GRANDE DO SUL – RS 0.129032
6 GOVERNO DO ESTADO DE GOIÁS – GO SANTA CATARINA – SC 0.096774
7 GOVERNO DO ESTADO DE GOIÁS – GO JANUÁRIO CICCO – RN 0.096774
8 GOVERNO DO ESTADO DE GOIÁS – GO SÃO LUÍS DO QUITUNDE – AL 0.129032
9 GOVERNO DO ESTADO DE GOIÁS – GO SÃO LUIS DO CURU – CE 0.129032
Loop 4
Nome para BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN
pesquisa:
SPREV IBGE SIMILARIDADE
0 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN BAHIA – BA 0.078947
1 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN DISTRITO FEDERAL – DF 0.078947
2 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN GOIÁS - GO 0.052632
3 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN RIO DE JANEIRO – RJ 0.105263
Cálculo da 4 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN RIO GRANDE DO NORTE – RN 0.131579
Similaridade 5 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN RIO GRANDE DO SUL – RS 0.105263
6 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN SANTA CATARINA – SC 0.078947
7 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN JANUÁRIO CICCO – RN 0.368421
8 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN SÃO LUÍS DO QUITUNDE – AL 0.078947
9 BOA SAÚDE (ANTIGO JANUÁRIO CICCO) – RN SÃO LUIS DO CURU – CE 0.078947
Loop 5
Nome para SÃO LUIZ DO QUITUNDE – AL
pesquisa:
SPREV IBGE SIMILARIDADE
0 SÃO LUIZ DO QUITUNDE – AL BAHIA – BA 0.12
1 SÃO LUIZ DO QUITUNDE – AL DISTRITO FEDERAL – DF 0.12
2 SÃO LUIZ DO QUITUNDE – AL GOIÁS – GO 0.04
3 SÃO LUIZ DO QUITUNDE – AL RIO DE JANEIRO – RJ 0.12
Cálculo da 4 SÃO LUIZ DO QUITUNDE – AL RIO GRANDE DO NORTE – RN 0.16
Similaridade 5 SÃO LUIZ DO QUITUNDE – AL RIO GRANDE DO SUL – RS 0.16
6 SÃO LUIZ DO QUITUNDE – AL SANTA CATARINA – SC 0.12
7 SÃO LUIZ DO QUITUNDE – AL JANUÁRIO CICCO – RN 0.12
8 SÃO LUIZ DO QUITUNDE – AL SÃO LUÍS DO QUITUNDE – AL 0.68
9 SÃO LUIZ DO QUITUNDE – AL SÃO LUIS DO CURU – CE 0.28
m = len(s1)
n = len(s2)
def lcf_similarity(s1,s2):
lcf_length = lcf_distance(s1,s2)
return lcf_length / max(len(s1),len(s2))
Resultado
def levenshtein_similarity(s1,s2):
return 1 –
(levenshtein_distance(s1,s2)/max(len(s1), len(s2)))
Resultado
onde:
m é o número de correlações entre caracteres;
|x| e |y| são os tamanhos de x e y, respectivamente;
t é o número de transposições.
# Números de correspondências
match = 0
# Número de transposições
t = 0
point = 0
if (s1[i] != s2[point]):
point += 1
t += 1
t = t//2
#Cálculo da similaridade
return (match/ len1 + match / len2 +
(match - t + 1) / match)/ 3.0
Resultado
prefix = 0;
if (s1[i] == s2[i]) :
prefix += 1;
else :
47
break;
return jaro_dist;
Resultado
return len(b_)/max(len(s1),len(s2))
Resultado
grams = list()
for i in range(count):
grams.append(sequence[i:i+n])
return grams
iguais=0
for g1 in grams1:
for g2 in grams2:
if g1 == g2 :
iguais=iguais+1
return iguais/max(len(grams1),len(grams2))
Resultado
6.2 Segurados
A segunda tela também apresenta a visão geral do número de segurados
ativos, aposentados e pensionistas. De acordo com dados de população do IBGE, o
total de segurados RPPS representam 2,16% da população.
6.3 Grupos
Para fins de apuração do ISP, os RPPS foram segregados em cinco grupos
definidos da seguinte forma:
1. Estado/DF;
52
7 Links
Aqui você deve disponibilizar os links para o vídeo com sua apresentação de
5 minutos e para o repositório contendo os dados utilizados no projeto, scripts
criados, etc.
8 REFERÊNCIAS
[REF2] ICS 161: Design and Analysis of Algorithms, Lecture notes for February
29, 1996. From https://www.ics.uci.edu/~eppstein/161/960229.html
9 APÊNDICE
Programação/Scripts
Cole aqui seus scripts em Python e/ou R.
Gráficos
Cole aqui workflows (KNIME, RapidMiner, etc), gráficos e figuras que você tenha
gerado e não colocou no texto principal.
Tabelas
Cole aqui tabelas de dados que você tenha gerado e não colocou no texto principal.