Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Perceptron Simple-Introducción A La Inteligencia Artificial - Jupyter Notebook
Perceptron Simple-Introducción A La Inteligencia Artificial - Jupyter Notebook
Ejemplo:
Conjunto de datos flor iris
h ttps://es.wikipedia.org/wiki/Conjunto_de_datos_flor_iris
(https://es.wikipedia.org/wiki/Conjunto_de_datos_flor_iris)
def fit(self,x,y):
rgen=np.random.RandomState(self.random_state)
self.w_=rgen.normal(loc=0.0,scale=0.01,size=1+x.shape[1])
self.errors_=[]
for _ in range(self.n_iter):
errors=0
for xi,target in zip(x,y):
update=self.eta*(target-self.predict(xi))
self.w_[1:] += update * xi
self.w_[0] += update
errors += int(update != 0.0)
self.errors_.append(errors)
return self
def net_input(self,x):
return np.dot(x,self.w_[1:])+self.w_[0]
def predict(self,x):
return np.where(self.net_input(x) >= 0.0,1,-1)
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris
y=df.iloc[0:100,4].values
y=np.where(y=='Iris-setosa',1,-1)
# print(y)
x=df.iloc[0:100,[0,2]].values
# print(x)
# # # plot data
plt.scatter(x[:50, 0], x[:50, 1],
color='red', marker='o', label='setosa')
plt.scatter(x[50:100, 0], x[50:100, 1],
color='blue', marker='x', label='versicolor')
plt.xlabel('sepal length [cm]')
plt.ylabel('petal length [cm]')
plt.legend(loc='upper left')
plt.show()
ppn=Perceptron(eta=0.5,n_iter=10)
ppn.fit(x,y)
# a=ppn.predict(x)
Out[20]: < main .Perceptron at 0x2842ea42bb0>
In [21]: ppn.w_
[ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1]
[ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1]
Ejercicio:
Entrenar el algoritmo del Perceptron Simple para reconocer la función AN
D y OR, verificar que pasa con la XOR
Class
0 0
1 0
2 0
3 0
4 0
.. ...
145 2
146 2
147 2
148 2
149 2
[0 2 2 2 2 1 1 0 0 1 0 1 2 2 2 0 2 2 0 0 1 2 0 0 0 1 0 2 2 2]
Evaluar el algoritmo
La Matriz de confusión
En el campo de la inteligencia artificial una matriz de confusión es una herramienta que permite la
visualización del desempeño de un algoritmo que se emplea en aprendizaje supervisado. Cada
columna de la matriz representa el número de predicciones de cada clase, mientras que cada fila
representa a las instancias en la clase real. Uno de los beneficios de las matrices de confusión es
que facilitan ver si el sistema está confundiendo lasdiferentes clases o resultadosde la
clasificación.
[[11 0 0]
[ 0 5 0]
[ 0 1 13]]
precision recall f1-score support
accuracy 0.97 30
macro avg 0.94 0.98 0.96 30
weighted avg 0.97 0.97 0.97 30