sklearn.linear_model.Perceptron

class sklearn.linear_model.Perceptron

Más información en el Manual de usuario.

Parámetros
penalty{“l2”,”l1”,”elasticnet”}, default=None

La penalización (término de regularización, también conocido como «penalty») que se utilizará.

alphafloat, default=0.0001

Constante que multiplica el término de regularización si se utiliza la regularización.

l1_ratiofloat, default=0.15

El parámetro de mezcla de la Elastic Net, con 0 <= l1_ratio <= 1. La l1_ratio=0 corresponde a la penalización L2, la l1_ratio=1 a la L1. Sólo se utiliza si penalty='elasticnet'.

Nuevo en la versión 0.24.

fit_interceptbool, default=True

Si el intercepto debe ser estimado o no. Si es False, se asume que los datos ya están centrados.

max_iterint, default=1000

El número máximo de pasadas sobre los datos de entrenamiento (también conocido como épocas o epochs). Sólo afecta al comportamiento del método fit, y no al método partial_fit.

Nuevo en la versión 0.19.

tolfloat, default=1e-3

El criterio de parada. Si no es None, las iteraciones se detendrán cuando (loss > previous_loss - tol).

Nuevo en la versión 0.19.

shufflebool, default=True

Si los datos de entrenamiento deben ser aleatorizados o no después de cada época.

verboseint, default=0

Nivel de verbosidad

eta0double, default=1

Constante por la que se multiplican las actualizaciones.

n_jobsint, default=None

El número de CPUs a utilizar para realizar el cálculo OVA (Uno Contra Todos, One Versus All, para problemas multiclase). None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa utilizar todos los procesadores. Ver Glosario para más detalles.

random_stateint, RandomState instance, default=None

Se utiliza para reorganizar al azar los datos de entrenamiento, cuando shuffle se establece en True. Introduce un int para una salida reproducible a través de múltiples invocaciones de la función. Ver Glosario.

early_stoppingbool, default=False

Indica si se utiliza la parada anticipada para finalizar el entrenamiento cuando la puntuación de validación no mejora. Si se establece en True, se reservará automáticamente una fracción estratificada de los datos de entrenamiento como validación y se finalizará el entrenamiento cuando la puntuación de validación no mejore en al menos tol para n_iter_no_change épocas consecutivas.

Nuevo en la versión 0.20.

validation_fractionfloat, default=0.1

La proporción de los datos de entrenamiento que se reservan como conjunto de validación para la parada anticipada. Debe estar entre 0 y 1. Sólo se utiliza si early_stopping es True.

Nuevo en la versión 0.20.

n_iter_no_changeint, default=5

Número de iteraciones sin mejora que hay que esperar antes de la parada anticipada.

Nuevo en la versión 0.20.

class_weightdict, {class_label: weight} or «balanced», default=None

Preajuste para el parámetro de ajuste class_weight.

Ponderación asociada a las clases. Si no se da, se supone que todas las clases tienen ponderación uno.

El modo «balanced» utiliza los valores de y para ajustar automáticamente las ponderaciones inversamente proporcionales a las frecuencias de clase en los datos de entrada como n_samples / (n_classes * np.bincount(y))

warm_startbool, default=False

Cuando se establece a True, reutiliza la solución de la invocación anterior para ajustar como inicialización, de lo contrario, solamente borrará la solución anterior. Ver Glosario.

Atributos
classes_arreglo de forma (n_classes,)

Etiquetas de clase únicas.

coef_ndarray de forma (1, n_features) si n_classes == 2 de lo contrario (n_classes, n_features)

Ponderaciones asignadas a las características.

intercept_ndarray de forma (1,) si n_classes == 2 de lo contrario (n_classes,)

Constantes en la función de decisión.

loss_function_concrete LossFunction

La función que determina la pérdida, o la diferencia entre la salida del algoritmo y los valores objetivo.

n_iter_int

El número real de iteraciones para alcanzar el criterio de parada. Para los ajustes multiclase, es el máximo sobre cada ajuste binario.

t_int

Número de actualizaciones de ponderación realizadas durante el entrenamiento. Igual que (n_iter_ * n_samples).

Ver también

SGDClassifier

Notas

Perceptron es un algoritmo de clasificación que comparte la misma implementación subyacente con SGDClassifier. De hecho, Perceptron() es equivalente a SGDClassifier(loss="perceptron", eta0=1, learning_rate="constant", penalty=None).

Referencias

https://es.wikipedia.org/wiki/Perceptron y las referencias en ella.

Ejemplos

>>> from sklearn.datasets import load_digits
>>> from sklearn.linear_model import Perceptron
>>> X, y = load_digits(return_X_y=True)
>>> clf = Perceptron(tol=1e-3, random_state=0)
>>> clf.fit(X, y)
Perceptron()
>>> clf.score(X, y)
0.939...

Métodos

decision_function

Predice las puntuaciones de confianza de las muestras.

densify

Convierte la matriz de coeficientes en formato de arreglo denso.

fit

Ajustar el modelo lineal con el Descenso Gradiente Estocástico.

get_params

Obtiene los parámetros para este estimador.

partial_fit

Realiza una época de descenso de gradiente estocástico en las muestras dadas.

predict

Predice las etiquetas de clase para las muestras en X.

score

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

set_params

Establece y valida los parámetros del estimador.

sparsify

Convierte la matriz de coeficientes en formato disperso.

decision_function()

Predice las puntuaciones de confianza de las muestras.

La puntuación de confianza de una muestra es proporcional a la distancia con signo de esa muestra al hiperplano.

Parámetros
Xarray-like o matriz dispersa, forma (n_samples, n_features)

Muestras.

Devuelve
arreglo, forma=(n_samples,) si n_classes == 2 de lo contrario (n_samples, n_classes)

Puntuaciones de confianza por combinación (muestra, clase). En el caso binario, la puntuación de confianza para self.classes_[1] donde >0 significa que esta clase sería predicha.

densify()

Convierte la matriz de coeficientes en formato de arreglo denso.

Convierte el miembro coef_ (de vuelta) en un numpy.ndarray. Este es el formato predeterminado de coef_ y se requiere para el ajuste, por lo que invocar este método sólo es necesario en los modelos que han sido previamente dispersados (sparsified); de lo contrario, es un no-op.

Devuelve
self

Estimador ajustado.

fit()

Ajustar el modelo lineal con el Descenso Gradiente Estocástico.

Parámetros
X{array-like, sparse matrix}, forma (n_samples, n_features)

Datos del entrenamiento.

yndarray de forma (n_samples,)

Valores objetivo.

coef_initndarray d forma (n_classes, n_features), default=None

Los coeficientes iniciales para iniciar la optimización en caliente (warm-start).

intercept_initndarray de forma (n_classes,), default=None

El intercepto inicial para el arranque en caliente de la optimización.

sample_weightarray-like, forma (n_samples,), default=None

Ponderaciones aplicadas a las muestras individuales. Si no se proporciona, se asumen ponderados uniformes. Estas ponderaciones se multiplicarán por el peso de la clase (pasado a través del constructor) si se especifica el peso de la clase.

Devuelve
self :

Devuelve una instancia de sí misma.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

partial_fit()

Realiza una época de descenso de gradiente estocástico en las muestras dadas.

Internamente, este método utiliza max_iter = 1. Por lo tanto, no se garantiza que se alcance un mínimo de la función de coste después de invocarlo una sola vez. Cuestiones como la convergencia del objetivo y la parada anticipada deben ser manejadas por el usuario.

Parámetros
X{array-like, sparse matrix}, forma (n_samples, n_features)

Subconjunto de los datos de entrenamiento.

yndarray de forma (n_samples,)

Subconjunto de los valores objetivos.

classesndarray de forma (n_classes,), default=None

Clases a través de todas las invocaciones a partial_fit. Puede obtenerse mediante np.unique(y_all), donde y_all es el vector objetivo de todo el conjunto de datos. Este argumento es necesario para la primera invocación a partial_fit y puede omitirse en las siguientes. Ten en cuenta que no es necesario que y contenga todas las etiquetas de classes.

sample_weightarray-like, forma (n_samples,), default=None

Ponderaciones aplicadas a las muestras individuales. Si no se proporciona, se suponen ponderados uniformes.

Devuelve
self :

Devuelve una instancia de sí misma.

predict()

Predice las etiquetas de clase para las muestras en X.

Parámetros
Xarray-like o matriz dispersa, forma (n_samples, n_features)

Muestras.

Devuelve
Carreglo, forma [n_samples]

Etiqueta de clase predicha por muestra.

score()

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

En la clasificación multietiqueta, se trata de la precisión del subconjunto, que es una métrica rigurosa, ya que se requiere para cada muestra que cada conjunto de etiquetas sea predicho correctamente.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de prueba.

yarray-like de forma (n_samples,) o (n_samples, n_outputs)

Etiquetas verdaderas (True) para X.

sample_weightarray-like de forma (n_samples,), default=None

Ponderación de muestras.

Devuelve
scorefloat

Precisión media de self.predict(X) con relación a y.

set_params()

Establece y valida los parámetros del estimador.

Parámetros
**kwargsdict

Parámetros del estimador.

Devuelve
selfobject

Instancia de estimador.

sparsify()

Convierte la matriz de coeficientes en formato disperso.

Convierte el miembro coef_ en una matriz scipy.sparse, que para los modelos L1-regularizados puede ser mucho más eficiente en cuanto a memoria y almacenamiento que la representación numpy.ndarray habitual.

El miembro intercept_ no se convierte.

Devuelve
self

Estimador ajustado.

Notas

Para los modelos no dispersos, es decir, cuando no hay muchos ceros en coef_, esto puede en realidad aumentar el uso de la memoria, así que utilice este método con cuidado. Una regla general es que el número de elementos cero, que puede ser calculado con (coef_ == 0).sum(), debe ser más del 50% para que esto proporcione beneficios significativos.

Después de invocar a este método, el ajuste posterior con el método partial_fit (si lo hay) no funcionará hasta que llames a densify.

Ejemplos usando sklearn.linear_model.Perceptron