machine-learning
Aprendizaje supervisado
Buscar..
Clasificación
Imagina que un sistema quiere detectar manzanas y naranjas en una cesta de frutas. El sistema puede recoger una fruta, extraer alguna propiedad de ella (por ejemplo, el peso de esa fruta).
Supongamos que el sistema tiene un maestro! que enseña al sistema qué objetos son manzanas y cuáles son naranjas . Este es un ejemplo de un problema de clasificación supervisada . Es supervisado porque hemos etiquetado ejemplos. Es una clasificación porque la salida es una predicción de a qué clase pertenece nuestro objeto también.
En este ejemplo consideramos 3 características (propiedades / variables explicativas):
- es el peso de la fruta seleccionada mayor que .5gram
- es el tamaño mayor de 10 cm
- el color es rojo
(0 significa No, y 1 significa Sí)
Entonces, para representar una manzana / naranja, tenemos una serie (llamada vector) de 3 propiedades (a menudo llamada vector característica)
(por ejemplo, [0,0,1] significa que el peso de esta fruta no es mayor que .5 gramos, y su tamaño no es mayor de 10 cm y el color es rojo)
Entonces, escogemos 10 frutas al azar y medimos sus propiedades. El maestro (humano) luego etiqueta cada fruta manualmente como manzana => [1] o naranja => [2] .
Ej.) El profesor selecciona una fruta que es manzana. La representación de esta manzana por sistema podría ser algo como esto: [1, 1, 1] => [1] , Esto significa que, esta fruta tiene 1.weight mayor que .5gram , 2.size mayor que 10cm y 3. el color de esta fruta es rojo y finalmente es una manzana (=> [1])
Entonces, para todas las 10 frutas, el maestro etiqueta cada fruta como manzana [=> 1] o naranja [=> 2] y el sistema encuentra sus propiedades. Como supones, tenemos una serie de vectores (que se llama matriz) para representar 10 frutas enteras.
Clasificación de frutas
En este ejemplo, un modelo aprenderá a clasificar frutas dadas ciertas características, utilizando las Etiquetas para entrenamiento.
Peso | Color | Etiqueta |
---|---|---|
0.5 | verde | manzana |
0.6 | púrpura | ciruela |
3 | verde | sandía |
0.1 | rojo | Cereza |
0.5 | rojo | manzana |
Aquí el modelo tomará el peso y el color como características para predecir la etiqueta. Por ejemplo, [0.15, 'rojo'] debería resultar en una predicción 'cherry'.
Introducción al aprendizaje supervisado
Hay bastantes situaciones en las que uno tiene enormes cantidades de datos y el uso que tiene para clasificar un objeto en una de varias clases conocidas. Considere las siguientes situaciones:
Banca: cuando un banco recibe una solicitud de un cliente para una tarjeta bancaria, el banco debe decidir si emite o no la tarjeta bancaria, según las características de los clientes que ya disfrutan de las tarjetas para las cuales se conoce el historial de crédito.
Médico: Uno podría estar interesado en desarrollar un sistema médico que diagnostique a un paciente si tiene o no una enfermedad en particular, según los síntomas observados y las pruebas médicas realizadas en ese paciente.
Finanzas: una empresa de consultoría financiera desea predecir la tendencia del precio de una acción que puede clasificarse en una tendencia ascendente, descendente o nula basada en varias características técnicas que rigen el movimiento de precios.
Expresión génica: un científico que analiza los datos de la expresión génica quisiera identificar los genes más relevantes y los factores de riesgo involucrados en el cáncer de mama, a fin de separar a los pacientes sanos de los pacientes con cáncer de mama.
En todos los ejemplos anteriores, un objeto se clasifica en una de varias clases conocidas , en función de las mediciones realizadas en una serie de características, que puede pensar que discriminan los objetos de diferentes clases. Estas variables se denominan variables predictoras y la etiqueta de clase se denomina variable dependiente . Tenga en cuenta que, en todos los ejemplos anteriores, la variable dependiente es categórica .
Para desarrollar un modelo para el problema de clasificación, requerimos, para cada objeto, datos sobre un conjunto de características prescritas junto con las etiquetas de clase, a las que pertenecen los objetos. El conjunto de datos se divide en dos conjuntos en una proporción prescrita. El mayor de estos conjuntos de datos se denomina conjunto de datos de entrenamiento y el otro, conjunto de datos de prueba . El conjunto de datos de entrenamiento se utiliza en el desarrollo del modelo. A medida que el modelo se desarrolla utilizando observaciones cuyas etiquetas de clase son conocidas, estos modelos se conocen como modelos de aprendizaje supervisado .
Después de desarrollar el modelo, el modelo se evaluará por su rendimiento utilizando el conjunto de datos de prueba. El objetivo de un modelo de clasificación es tener una probabilidad mínima de errores de clasificación en las observaciones invisibles. Las observaciones que no se usan en el desarrollo del modelo se conocen como observaciones invisibles.
La inducción de árboles de decisión es una de las técnicas de construcción de modelos de clasificación. El modelo de árbol de decisión creado para la variable dependiente categórica se denomina Árbol de clasificación . La variable dependiente podría ser numérica en ciertos problemas. El modelo de árbol de decisión desarrollado para las variables dependientes numéricas se llama árbol de regresión .
Regresión lineal
El aprendizaje supervisado consiste en un objetivo o variable de resultado (o variable dependiente) que se debe predecir a partir de un conjunto dado de predictores (variables independientes). Usando este conjunto de variables, generamos una función que mapea las entradas a las salidas deseadas. El proceso de capacitación continúa hasta que el modelo alcanza el nivel deseado de precisión en los datos de capacitación.
Por lo tanto, hay muchos ejemplos de algoritmos de aprendizaje supervisado, por lo que en este caso me gustaría centrarme en la regresión lineal
Regresión lineal Se utiliza para estimar valores reales (costo de casas, número de llamadas, ventas totales, etc.) en función de variables continuas. Aquí, establecemos la relación entre variables independientes y dependientes ajustando una mejor línea. Esta línea de mejor ajuste se conoce como línea de regresión y se representa mediante una ecuación lineal Y = a * X + b.
La mejor manera de entender la regresión lineal es revivir esta experiencia de la infancia. Digamos que le pide a un niño de quinto grado que organice a las personas en su clase aumentando el orden de peso, ¡sin preguntarles su peso! ¿Qué crees que hará el niño? Es probable que él (ella) mire (analice visualmente) la altura y la formación de las personas y las organice utilizando una combinación de estos parámetros visibles.
¡Esto es regresión lineal en la vida real! El niño realmente ha descubierto que la altura y la estructura se correlacionarían con el peso por una relación, que se parece a la ecuación anterior.
En esta ecuación:
Y – Dependent Variable
a – Slope
X – Independent variable
b – Intercept
Estos coeficientes a y b se derivan de la minimización de la suma de la diferencia al cuadrado de la distancia entre los puntos de datos y la línea de regresión.
Mira el siguiente ejemplo. Aquí hemos identificado la línea de mejor ajuste que tiene la ecuación lineal y = 0.2811x + 13.9 . Ahora usando esta ecuación, podemos encontrar el peso, sabiendo la altura de una persona.
La regresión lineal es principalmente de dos tipos: regresión lineal simple y regresión lineal múltiple. La regresión lineal simple se caracteriza por una variable independiente. Y, la regresión lineal múltiple (como sugiere su nombre) se caracteriza por múltiples variables independientes (más de 1). Mientras encuentra la mejor línea de ajuste, puede ajustar una regresión polinomial o curvilínea. Y estos son conocidos como regresión polinomial o curvilínea.
Solo una sugerencia sobre la implementación de regresión lineal en Python
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model
#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
# Create linear regression object
linear = linear_model.LinearRegression()
# Train the model using the training sets and check score
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
#Equation coefficient and Intercept
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
#Predict Output
predicted= linear.predict(x_test)
He brindado un vistazo a la comprensión del aprendizaje supervisado que se adentra en el algoritmo de regresión lineal junto con un fragmento de código Python.