Perceptrón algoritmo y su implementación en Python

Python | Perceptrón algoritmo : En este tutorial, vamos a aprender sobre el aprendizaje del perceptrón y su aplicación en Python.

Perceptron Algoritmo es un algoritmo de clasificación de aprendizaje de máquina utilizada para clasificar linealmente los datos dados en dos partes. Podría ser una línea en 2D o en un plano en 3D. Fue introducido por primera vez en la década de 1950 y desde entonces es uno de los más populares algoritmos class clasificación binaria. Matemáticamente, es el algoritmo más simple y también tiene una aplicación en Deep aprendizaje.

Esta figura muestra que los datos se pueden clasificar en dos clases por una línea. Por lo tanto, este es un linealmente separable y perceptron algoritmo que puede ser clasificación class usado. En el aprendizaje de lenguaje máquina, esta línea se llama la frontera de decisión. Se define como: f (y theta; .x + y theta; 0) = 0

El algoritmo se basa en esta decisión límite, ya que separa el plano en dos regiones de tal manera que:

f (y theta; y SDOT; x + y theta; ₀) & gt; 0 datos , for marcada positivamente y
f (y theta; & SDOT; x + y theta; ₀) & lt; 0 , for etiquetados negativamente punto de datos.

Si el conjunto de datos dado es linealmente separable, entonces debe existir un lineal clasificador & nbsp; de tal manera que y⁽ⁱ⁾ (y theta; & SDOT; x⁽ⁱ⁾ + y theta; ₀) & gt; 0 satisfacer todos los puntos de datos x (i) , donde y⁽ⁱ⁾ es la etiqueta.

La Figura 2 muestra una for cuando los datos no es linealmente separable y no puede existir un lineal clasificador y theta; .x + y theta; 0 = 0 tal que y (i) (y theta; & SDOT; x (i) + y theta; ₀) & gt; 0 satisfacer todos los puntos de datos x (i) , donde y (i) & nbsp; es la etiqueta. El algoritmo Perceptron sólo se puede utilizar for binario de clasificación y que es la más simple.

Nota: Si el clasificador pasa por el origen, es decir, no compensado entonces el valor y theta; 0 = 0 .
f (y theta; .x) = 0

Algoritmo:

Initialization 
= 0, a vector
0 = 0, a scalar
Iterate 1,2,3 .... T
Iterate through data points i = 1,2,3 .... n
if Y(i).( .X(i) + 0) <= 0
= + Y(i).X(i)
0 = 0 + Y(i)
Return , 0

Nota: En algún momento, cuando todos los puntos no son linealmente separables pero la aplicación de perceptrón se traducirá en una clasificación con algún error o se puede decir que pérdida.

función de pérdida:

Cuando los clasifica clasificador puntos de datos lineales con algunos puntos negativos clasifican es decir y (i) (y theta; & SDOT; x (i) + y theta; ₀) & lt; = 0 ( puntos case i & lt; = n ), entonces la función de pérdida más simple se pueden definir como el número de puntos clasificadas negativamente. En otras palabras, el número de i en la expresión anterior se llama una función de pérdida.

Nota: La función de pérdida puede ser modificado adicionalmente pero esta es la más simple y no toma en cuenta la magnitud del error (es decir, la distancia de un punto pierda clasificada desde el clasificador).

función de Python for Perceptrón Algoritmo

# Machine Learning
# Perceptron Algorithm Pyhton function
import numpy as np
def perceptron_single_step_update(
feature_vector,
label,
current_theta,
current_theta_0):
theta = current_theta
theta_0 = current_theta_0
if label*(np.matmul(current_theta, feature_vector) + current_theta_0) <= 0:
theta = theta + label*feature_vector
theta_0 = theta_0 + label
return (theta, theta_0)
def perceptron(feature_matrix, labels, T):
[m,n] = np.shape(feature_matrix)
tt = np.zeros(n)
tt_0 = 0
for t in range(T):
for i in range(m):
vec = feature_matrix[i]
(tt, tt_0) = perceptron_single_step_update(vec, labels[i], tt, tt_0)
return (tt, tt_0)


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *