Skip to content

Instantly share code, notes, and snippets.

@renansa27
Created May 3, 2018 17:17
Show Gist options
  • Save renansa27/3126a2fd0dedb339f66c1f5f0412043f to your computer and use it in GitHub Desktop.
Save renansa27/3126a2fd0dedb339f66c1f5f0412043f to your computer and use it in GitHub Desktop.
#Calculo do Suporte
def calcSuporte(transacoes,produtos):
numProdutos = produtos.__len__()
a = transacoes.__len__()
num_Contem = transacoes.__len__()
i = 1;
for i in range(i,a+1):
k = 0;
for k in range(k,numProdutos):
if(produtos[k] in transacoes[i]):
num_Contem;
else:
num_Contem = num_Contem-1;
break;
return (num_Contem/a);
#Calculo da Confiança
def calcConfianca(transacoes,produtos,produtosX):
numProdutos = produtos.__len__()
numProdutosX = produtosX.__len__()
a = transacoes.__len__()
num_Contem = transacoes.__len__()
num_ContemX = transacoes.__len__()
i = 1;
for i in range(i,a+1):
k = 0;
for k in range(k,numProdutos):
if(produtos[k] in transacoes[i]):
num_Contem;
else:
num_Contem = num_Contem-1;
break;
i = 1;
for i in range(i,a+1):
k = 0;
for k in range(k,numProdutosX):
if(produtosX[k] in transacoes[i]):
num_ContemX;
else:
num_ContemX = num_ContemX-1;
break;
return (num_Contem/num_ContemX);
#Calculo do lift
def calcLift(transacoes,produtos,produtosX,produtosY):
return (calcSuporte(transacoes,produtos)/(calcSuporte(transacoes,produtosX)*calcSuporte(transacoes,produtosY)))
#Transações efetuadas
transacoes = {1: {"Maizena", "Fralda"},
2: {"Sabão", "Cerveja"},
3: {"Sabão", "Arroz","Suco"},
4: {"Maizena", "Fralda", "Sabão", "Suco"}
}
#Combinações avaliadas
produtosX = ["Suco"];
produtosY = ["Arroz"];
produtos = produtosX + produtosY;
#chama as funções
suporte = calcSuporte(transacoes,produtos);
confianca = calcConfianca(transacoes,produtos,produtosX)
lift = calcLift(transacoes,produtos,produtosX,produtosY)
#Printa os resultados obridos
print("Suporte = ",suporte*100,"%");
print("Confiança = ",confianca*100,"%")
print("Lift = ",lift)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment