Escolar Documentos
Profissional Documentos
Cultura Documentos
November 6, 2018
1 Aplicação do Perceptron
• Por Jorge Zavaleta
2 1. Algoritmo do perceptron
Fonte: Suyong Eum and Hua Yang, "Practical Machine Learning",08/11/2018.
In [12]: import os
import numpy as np
import pandas as pd
from sklearn.linear_model import Perceptron
import matplotlib.pyplot as plt
# criando um dataset para consumidores do cartão de crédito
dados = {'Idade': [24, 30],
'Salário Anual' : [1500, 6000],
'Tempo de trabalho' : [0.5, 13],
'Débito corrente' : [2000, 1000]
}
dados_panda = pd.DataFrame(dados)
# plot o dataframe
display(dados_panda)
Analisando o movimento do cartão de crédito será aprovado um crédito (1) ou negado o cred-
ito (-1)
1
algoritmo Perceptron
x_1 x_2 y
0 0.9 3.3 -1.0
1 0.8 2.6 -1.0
2 1.3 2.7 -1.0
3 0.8 2.0 1.0
4 1.0 1.5 1.0
5 1.4 3.0 -1.0
6 1.3 2.2 1.0
7 1.5 1.4 1.0
8 1.8 1.7 1.0
9 1.8 2.9 -1.0
10 2.1 2.8 -1.0
11 2.1 3.5 -1.0
12 2.1 2.0 1.0
13 2.2 1.4 1.0
14 2.8 3.6 -1.0
15 2.6 2.5 1.0
16 2.7 3.2 -1.0
17 3.2 3.4 -1.0
18 2.7 1.7 1.0
2
19 2.9 1.9 1.0
3
3.4 2.4 Graficando os dados de teste e o hiperplano(linha reta)
In [95]: #plotando os dados de teste
labelt=Teste_Y.copy()
labelt[labelt<0]=0
labelt=labelt.astype(int)
labelt=labelt.values
plt.scatter(teste_x.iloc[:,0], teste_x.iloc[:,1], marker='o', c=colormap[labelt])
#calcula o hiperplano
w=per.coef_[0]
xx=np.linspace(0, 4)
yy=-(w[0]*xx+per.intercept_[0])/w[1]
#
#plot a linhda de separação
g = plt.plot(xx, yy, 'k-', label='$reta$')
plt.title(u'Nro. de Iterações = %d' % MaxIter)
plt.xlabel('Aplicação do Perceptron em Catões de Crédito')
plt.legend(g[:1], ['linha reta'])
#plt.gca().legend(('y0','1'))
plt.show()
4
3.5 2.5 Acurácia
In [43]: #calculando a acurácia do algoritmo
count=0
for i in range(len(Teste_Y)):
if teste_y.iloc[i]==Teste_Y.iloc[i]:
count+=1.0
acuracia=count/float(len(Teste_Y))*100
print('Porcentagem de acuracia: %.2f%%' % acuracia)
In [ ]: