Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
hace poco publiqué un artículo sobre lo que significa ser impulsado por datos (enlace al blog en la
biografía). Cuando pienso en el orden de estos, se me ocurrió una jerarquía de necesidades de
datos. ⠀
.⠀
Por supuesto, puede leer mis pensamientos completos sobre el hecho de que los datos se guíen en
el artículo del blog, pero con muy poco contexto, creo que este gráfico hace una Buen trabajo de
resumen. ⠀
.⠀
. - No todas las decisiones deben basarse en datos, aún puede tomar decisiones estratégicas en su
organización
. - El cuadro de mandos debe estar automatizado para permitir que se invierta tiempo en tareas de
mayor valor
. - El 70% del análisis de las pruebas también se puede automatizar, pero esto también lleva un
tiempo construir e implementar.
Este es el primer paso para limpiar los datos que harán que los
resultados sean "más" precisos.
Limpieza de datos
Dicho esto, aquí están los diversos pasos tomados para limpiar
los datos:
Ahora usaremos:
1) Categoría
2) Opiniones
3) Tamaño
4) Instala
5) precio
6) Clasificación de contenido
# Características de selección de
características = ['NÚMERO de categoría', 'Reseñas',
'Tamaño', 'Instalaciones', 'Precio', 'NÚMERO de Clasificación
de Contenido']
X = df [características]
# Selección de etiqueta
y = df.Rating
# Para propósitos de prueba
#train_X, test_X, train_y, test_y = train_test_split (X, y)
Nota editorial:
El evento - Data December Festival 2018 - fue
organizado por The Research Nest como una campaña de
aprendizaje en línea de dos meses enfocada en ayudar a los
principiantes a aprender Data Science. El objetivo principal
de este evento fue involucrar a los participantes en un
proyecto en tiempo real a medida que aprenden diversos
conceptos de la ciencia de datos y completarlo mediante la
creación de un informe que documente sus ideas.
George SeifSeguir
21 de octubre de 2018
Características estadisticas
Las características estadísticas son probablemente el concepto
estadístico más utilizado en la ciencia de datos. A menudo, es
la primera técnica de estadísticas que aplicarías al explorar un
conjunto de datos e incluye elementos como el sesgo, la
varianza, la media, la mediana, los percentiles y muchos
otros. ¡Todo es bastante fácil de entender e implementar en
código! Echa un vistazo a la gráfica de abajo para ver una
ilustración.
Un diagrama de caja básico
Distribuciones de probabilidad
Podemos definir la probabilidad como el porcentaje de
probabilidad de que ocurra algún evento. En la ciencia de
datos, esto se suele cuantificar en el rango de 0 a 1, donde 0
significa que estamos seguros de que esto no ocurriráy 1
significa que estamos seguros de que ocurrirá . Una
distribución de probabilidad es entonces una función que
representa las probabilidades de todos los valores posibles en
el experimento. Echa un vistazo a la gráfica de abajo para ver
una ilustración.
Distribuciones de probabilidad común. Uniforme (izquierda), Normal (medio), Poisson (derecha)
Reducción de dimensionalidad
El término Reducción de Dimensionalidad es bastante
intuitivo de entender. Tenemos un conjunto de datos y nos
gustaría reducir la cantidad de dimensiones que tiene. En
ciencia de datos este es el número de variables
características. Echa un vistazo a la gráfica de abajo para ver
una ilustración.
Reducción de dimensionalidad
Theoram de Baye
Seguir
George Seif
Empollón certificado
Seguir
10 trucos de Python Pandas que hacen que tu trabajo sea más eficiente
Shiu-Tang Li
Mar 13
2.7K
Más de Hacia la ciencia de datos
Ben Weber
Mar 17
1.6K
Transformadores
Giuliano Giacaglia
Mar 10
2.6K
Respuestas
Escribe una respuesta ...
Thierno DIOP
22 de octubre de 2018
Este es uno, si no el mejor artículo que he leído sobre cómo se usan las
estadísticas en la ciencia de datos. Explicación muy sencilla e
ilustrativa. Gracias.
En esta guía, comenzaré con los conceptos básicos de probabilidad. Luego introduciré la
distribución binomial, el teorema del límite central, la distribución normal y la puntuación Z. Si
suenan temibles ahora mismo, solo espera unos minutos. He explicado cada concepto con un
ejemplo.
Tabla de contenido
1. ¿Qué es la probabilidad?
2. Variables aleatorias
3. Cálculo de la probabilidad
4. Distribución binomial
5. Variable aleatoria continua
6. Teorema del límite central
7. Área bajo una distribución normal
8. Puntajes Z
9. Desafíos abiertos
1. ¿Qué es la probabilidad?
En pocas palabras, la probabilidad es un concepto intuitivo. Lo usamos diariamente sin darnos
cuenta necesariamente de que estamos hablando y aplicando la probabilidad de trabajar.
La vida esta llena de incertidumbres. No sabemos los resultados de una situación particular hasta
que sucede. ¿Lloverá hoy? ¿Pasaré el próximo examen de matemáticas? ¿Mi equipo favorito
ganará el sorteo? ¿Recibiré una promoción en los próximos 6 meses? Todas estas preguntas son
ejemplos de situaciones inciertas en las que vivimos. Permítanos mapearlas con una terminología
común que usaremos en el futuro.
Experimento - son las situaciones inciertas, que podrían tener múltiples resultados. Si
llueve a diario es un experimento.
El resultado es el resultado de un solo ensayo. Entonces, si llueve hoy, el resultado de la
prueba de hoy del experimento es "llovió"
El evento es uno o más resultados de un experimento. "Llovió" es uno de los posibles
eventos para este experimento.
La probabilidad es una medida de qué tan probable es un evento. Entonces, si es 60%
de probabilidad de que llueva mañana, la probabilidad del resultado "llovió" para mañana
es de 0.6
2. Variables aleatorias
Para calcular la probabilidad de ocurrencia de un evento, necesitamos poner un marco para
expresar el resultado en números. Podemos hacer esto asignando el resultado de un experimento
a números.
Posibles resultados:
1 si cabezas
0 si colas
Tomemos otro.
Supongamos que gano el juego si obtengo una suma de 8 al tirar dos dados justos. Puedo definir
mi variable aleatoria Y para que sea (la suma de la cara ascendente de dos dados justos)
Cada valor de la variable aleatoria puede o no ser igualmente probable. Solo hay 1
combinación de dados, con la suma 2 {(1,1)}, mientras que una suma de 5 puede lograrse
mediante {(1,4), (2,3), (3,2), (4, 1)}. Por lo tanto, 5 es más probable que ocurra en
comparación con 2. Por el contrario, la probabilidad de una cabeza o una cola en un
lanzamiento de moneda es igual a 50-50.
A veces, las variables aleatorias solo pueden tomar valores fijos, o valores solo en un
cierto intervalo. Por ejemplo, en un dado, la cara superior solo mostrará valores entre 1 y
6. No puede tomar un 2.25 o un 1.5. Del mismo modo, cuando se lanza una moneda, solo
puede mostrar caras y colas y nada más. Por otro lado, si defino mi variable aleatoria es
la cantidad de azúcar en naranja. Puede tomar cualquier valor como 1.4g, 1.45g, 1.456g,
1.4568g, etc. Todos estos valores son posibles y todos los valores infinitos entre ellos
también son posibles. Entonces, en este caso, la variable aleatoria es continua con una
posibilidad de todos los números reales.
No piense en una variable aleatoria como una variable tradicional (aunque ambas se
llaman variables) como y = x + 2, donde el valor de y depende de x. La variable aleatoria
se define en términos del resultado de un proceso. Cuantificamos el proceso utilizando la
variable aleatoria.
Entonces, ¿qué pasa cuando haces girar la rueda? ¿O ganas o pierdes? No hay tercer resultado en
este caso. Si la rueda es justa, hay un 50% de posibilidades de ganar y un 50% de posibilidades
de perder.
A continuación, suponga que el organizador decide aumentar el dinero del premio y reducir el
área verde. Ahora sólo ¼ º zona es verde y ¾ º es de color rojo.
Tomemos la variable aleatoria X como la suma de dos tiros. X puede tomar valores (2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12). Veamos la probabilidad de cada número.
Veamos cómo:
p (éxito) = 5/36
p (fracaso) = 31/36
También puedes ver que la probabilidad total es 1. Solo hay estas 2 posibilidades.
Veamos cómo se ven estas probabilidades. La función de probabilidad para una variable aleatoria
discreta es la función de masa de probabilidad. Muestra las probabilidades exactas para un
valor particular de la variable aleatoria.
Aquí hay una cosa importante a tener en cuenta, una suma de 2.5 no es posible en el lanzamiento
de dos dados. Así que, esencialmente, mi variable aleatoria es discreta. Solo hay valores enteros
fijos que puede tomar y podemos ver las probabilidades de que ocurran.
4. Distribución binomial
La mayoría de las veces, las situaciones con las que nos encontramos son de tipo pasar-fallar. Los
demócratas ganan o pierden la elección. O bien tengo una cabeza o colas en el lanzamiento de la
moneda. Gana o pierde su juego de fútbol (suponiendo que siempre hay un resultado
forzado). Así que solo hay dos resultados: ganar y perder o éxito y fracaso. La probabilidad de
los dos puede o no ser la misma.
Digamos que su equipo de fútbol está jugando una serie de 5 juegos contra su oponente. Quien
gane más juegos (de 5) gana el título.
Digamos que su equipo es más hábil y tiene un 75% de posibilidades de ganar. Por lo tanto, hay
un 25% de probabilidad de perderlo.
Así que el primer juego tiene 2 resultados: ganar y perder, el segundo nuevamente tiene 2 y así
sucesivamente.
P (X = 0) denota la probabilidad de que pierdas todos los juegos y solo hay una manera
en la que puede suceder, es decir, {LLLLL} = 0.25 * 0.25 * 0.25 * 0.25 * 0.25
(multiplicando las probabilidades de perder cada vez, perdidas primero hora y segunda
vez y tercera vez y así sucesivamente ..)
P (X = 1) indica la probabilidad de que gane solo 1 juego, es decir, (WLLLL o LWLLL
o LLWLL o LLLWL o LLLLW). Entonces hay 5 casos en los que ganas 1 juego = 5 *
0.75 * 0.25 * 0.25 * 0.25 * 0.25 = 0.0146
Si bien podemos contar cada uno de estos posibles resultados, se convierte en un ejercicio muy
exhaustivo e intensivo. Tomemos aquí la ayuda de la combinatoria. Elija 2 victorias de 5 juegos
= 5 C 2 ()
P (X = k) = n
C k p k q n-k , [aquí p es la probabilidad de éxito y q es la probabilidad de fallo]
Lo que recién calculamos fueron probabilidades discretas para una distribución binomial. Si
miramos estas probabilidades obtenemos algo como:
Como se puede ver, la probabilidad de ganar la serie es mucho mayor que 0,75.
¿Qué diferencia vemos en las dos distribuciones de probabilidad? El primero está sesgado hacia
la derecha. La razón de ser la probabilidad de ganar es más, por lo tanto, más victorias son más
probables que más pérdidas.
En el segundo caso, cuando las ganancias y las pérdidas son igualmente probables, la distribución
es simétrica.
Supongamos que la probabilidad de ganar y perder es igual. p = q = 0.5
Ahora, ¿qué pasa si aumento mi número de pruebas? ¿Qué pasa si juego 20 partidos de fútbol
con una probabilidad de ganar y perder a 50-50? Hay muchas más posibilidades y
combinaciones. Las barras se adelgazan cada vez más.
¿Qué pasa si juego un número infinito de veces con igual probabilidad de ganar y perder?
Las barras se vuelven infinitamente pequeñas y la distribución de probabilidad parece algo así
como un conjunto continuo de barras que están muy cerca, casi continuas. Esto ahora se convierte
en una función de densidad de probabilidad . Note que esto ahora se convierte en una función
continua.
Vida de un insecto
Supongamos que hay un insecto cuya vida útil varía de 0 a 16 días. Estamos buscando la
probabilidad de que muera en alrededor de 5 a 6 días. Nuevamente necesitaríamos la suma de
probabilidades para todos los valores entre 5 días y 6 días.
Observamos la función de densidad de probabilidad y encontramos el área del gráfico debajo de
los límites de 5 y 6. Podemos usar la integración definida bajo los límites deseados para que la
densidad de probabilidad encuentre el área. A menudo nos interesa la probabilidad de un rango
de valores en lugar de la probabilidad de un valor exacto.
Ahora podemos imaginar que la probabilidad en un punto particular sería el área de la barra más
delgada posible que podamos imaginar. Para calcular la probabilidad en x, necesitaríamos el área
de x a x + Δ, donde Δ es muy muy pequeño.
La función de densidad de probabilidad total sería entonces la recopilación de todas esas áreas /
probabilidades.
Para un punto x, Δ es el valor pequeño justo después del punto x. Intentamos calcular la
probabilidad de x a x +, con un límite si Δ tiende a 0.
Digamos que tenemos los niveles de colesterol de todas las personas en la India, podemos ver la
media, la mediana y el modo de los datos. Tal vez trazar un histograma con rangos sensibles y
mirar los datos. Asumamos que así es como se ven los datos. La media de estos datos es 153.2.
Pero esta enorme cantidad de datos es realmente difícil de procesar. Para procesarlo, tomamos
los datos de unas 50 personas y calculamos su media.
Entonces, cuando tomamos niveles de colesterol de 50 personas, una y otra vez, observamos que
los valores medios están alrededor de 150-160. Solo unos pocos valores medios son más de 170
y menos de 140. Hay muy, muy pocos más de 190 o menos de 110.
Podemos convertir fácilmente las frecuencias para ver las probabilidades. Si dividimos la
frecuencia de un bin (rango de 110 a 120) por el número total de puntos de datos, obtenemos las
probabilidades de cada bin. Entonces, ahora la distribución de frecuencia se convierte en una
distribución de probabilidad de la misma forma. La distribución de probabilidad se acerca cada
vez más a
La distribución puede variar un poco dependiendo de la distribución de los datos. Si los datos
tienen un rango muy alto y una desviación estándar, la curva normalmente distribuida se
extendería y sería más plana, ya que un gran número de valores estaría lo suficientemente lejos
de la media.
Además, si muchos valores están lejos de la media, la probabilidad de que los datos estén
alrededor de la media también disminuye. De manera similar, si la desviación estándar es baja,
lo que significa que la mayoría de los valores están cerca de la media, existe una alta probabilidad
de que la media de la muestra esté alrededor de la media y la distribución sea mucho más
delgada. Cuanto mayor sea la desviación estándar, más gruesa y plana será la curva.
El valor medio (µ) para el colesterol de todos los pacientes es igual a 150 y la desviación estándar
(σ) es igual a 15. La función de densidad de probabilidad es una distribución normal dada por la
ecuación anterior.
Necesitamos calcular la probabilidad de que los niveles de colesterol estén entre 135 (150-
15) y 165 (150 + 15), el rango de colesterol saludable.
¿Puedes ver que los pacientes sanos de los que estamos hablando son una desviación estándar a
cada lado de la media? Esto significa que necesitamos calcular el área bajo la curva con 135 y
165 como límites. No se preocupe, esta área para la distribución normal ya está calculada para
nosotros y es de ~ 68%.
Por lo tanto, siempre para datos distribuidos normalmente, alrededor del 68% de los datos se
encuentran dentro de 1 desviación estándar de la media. Entonces, la probabilidad de que los
datos estén dentro de 1 desviación estándar si la media = 0.68
Entonces, el 95% de los pacientes tienen niveles de colesterol entre 120 y 180. Y el 5% restante
es realmente crítico y diferente de los valores promedio.
8. Puntuaciones Z
Nos encontraremos con muchos casos en los que necesitaríamos conocer la probabilidad de que
los datos sean menores o mayores que un valor en particular. Este valor no será igual a 1σ o 2σ
de la media.
Un puntaje Z positivo indica que el valor observado es Z desviaciones estándar por encima de la
media. La puntuación de Z negativa indica que el valor está por debajo de la media.
172 = 150 + Z * 15
Aquí, vemos que 172 es 1.47 {(142-150) / 15} desviaciones estándar más que la media. Este 1.47
se conoce como el valor z.
Ahora, necesitaríamos usar estos límites para calcular el área bajo la curva. Recuerde que el área
debajo de la curva es 1. Calculemos la probabilidad de que las personas tengan un nivel de
colesterol inferior a 172.
Para su felicidad, nunca tendrá que calcular realmente el área bajo la curva normal, tenemos
la tabla z que se puede usar para calcular las probabilidades para valores z particulares. Las filas
de la tabla Z tienen la puntuación Z en decenas, mientras que las columnas dan el decimal
centésimo. El valor es el área bajo la curva menor que la puntuación Z.
Para una puntuación z en particular, podemos mirar en la tabla para encontrar la probabilidad de
que los valores caigan menos que ese valor z en particular. Puede ser –ve o + ve. Si buscamos
1,47, encontramos que ~ 93% de los datos caen menos que eso. Por lo tanto, el 93% de los
pacientes tienen un colesterol inferior a 172. Además, podemos decir con seguridad que el 7%
tiene colesterol más de 172.
9. Desafíos
Espero que hayas encontrado la guía simple y útil. Espero que alguien haya dado esto al
principio de mi carrera. Aquí hay algunos desafíos para que pruebes:
DESAFÍO 1:
= ncr * P (éxito) ^ 50 * P (error) ^ 50, n = 100, r = 50
= 100c50 * (.5) ^ 100
donde 100c50 = 100891344545564193334812497256
= 0.07958924
Desafío 2:
Puntuación Z = (120-100) / 15 = 1.33 El área bajo la curva para este valor sería .9082, que es una
probabilidad de que el valor sea menor que 120, por lo que la respuesta será 1-.9082 = 0.091
Notas finales
Espero que te haya gustado leer el artículo. Para resumir, hay numerosos problemas matemáticos
y cotidianos que se resuelven utilizando la probabilidad y las propiedades de la distribución
normal. Problemas que van desde la biología hasta la automatización industrial, la probabilidad
es ubicua: no se puede vivir con ella, no se puede prescindir de ella.
Para el desafío 1, piense en ello como 100 pruebas de bernoulli en las que la probabilidad de
obtener caras es de 0.5 y las colas también son 0.5. Ahora necesitas 50 cabezas y 50 colas de cada
100 intentos. Así que selecciona 50 de 100 de éxito, y aplica las probabilidades. entonces la
respuesta sería 100C50 (0.5) ^ 50 (0.5) ^ 50.
Así que aquí p es decir, la probabilidad de obtener caras es 0.5 y q es decir, la probabilidad de
obtener colas es 0.5. Necesitamos k éxito que es 50, de n pruebas que es 100.
Intenta calcular ahora !!
desafío 1:
P (X = k) = nCk pk qn-k
p = q = 0.5
P (50) = 100c50 * (0.5 ^ 50) * (0.5 ^ 50)
= 1.00891E + 29 * 8.881784e-16 * 8.881784 e-16
= 1.00891E + 29 * 7.888609e-31
= 0.07958897
desafío 2:
valor observado = µ + zσ
120 = 100 + z * 15
z = 120-100 / 15
z = 1.33 (valor de la tabla z = 0.9082)
para> 120, (probabilidad total = 1, hasta 120 = 0.9082)
1 -0.9082 = 0.0918 ==> 9.18%
Introducción
Una de las preguntas más comunes que recibimos en Analytics Vidhya es:
Pero, una vez que haya cubierto los conceptos básicos del aprendizaje automático, necesitará
aprender un poco más de matemáticas. Lo necesitas para entender cómo funcionan estos
algoritmos. Cuáles son sus limitaciones y en caso de que hagan suposiciones
subyacentes. Ahora, podría haber una gran cantidad de áreas para estudiar, incluyendo álgebra,
cálculo, estadísticas, geometría 3D, etc.
Si se confunde (como yo lo hice) y pregunta a los expertos qué deberían aprender en esta etapa,
la mayoría de ellos sugeriría / estaría de acuerdo en seguir adelante con el Álgebra Lineal.
Pero, el problema no se detiene allí. El siguiente desafío es descubrir cómo aprender Álgebra
Lineal. ¡Puedes perderte en las matemáticas y derivaciones detalladas y aprenderlas no ayudaría
tanto! Hice ese viaje yo mismo y, por lo tanto, decidí escribir esta guía completa.
Si se ha enfrentado a esta pregunta sobre cómo aprender y qué aprender en Álgebra Lineal, está
en el lugar correcto. Sólo tienes que seguir esta guía.
Tabla de contenido
1. Motivación - ¿Por qué aprender Álgebra Lineal?
2. Representación de problemas en álgebra lineal
2.1. Visualizando el problema: Línea
2.2. Complicar el problema
2.3. Aviones
3. Matriz
3.1 Términos relacionados con Matriz
3.2 Operaciones básicas en Matriz
3.3 Representación en forma matricial
4. Resolviendo el problema
4.1. Forma de fila Echelon
4.2. Inverso de una matriz
4.2.1 Encontrar inverso
4.2.2 El poder de las matrices: resolver las ecuaciones de una sola vez
4.2.3 Uso de inverso en la ciencia de datos
5. Valores propios y vectores propios
5.1. Localización de vectores propios
5.2 Uso de vectores propios en la ciencia de datos: algoritmo PCA
6. Descomposición del valor singular de una matriz
7. Notas finales
¿Qué ves cuando miras la imagen de arriba? Lo más probable es que dijiste flor, hojas, no
demasiado difícil. Pero, si te pido que escribas esa lógica para que una computadora pueda
hacer lo mismo por ti, será una tarea muy difícil (por decir lo menos).
Pudiste identificar la flor porque el cerebro humano ha pasado por millones de años de
evolución. No entendemos lo que pasa en el fondo para poder saber si el color de la imagen es
rojo o negro. De alguna manera, hemos entrenado nuestros cerebros para realizar esta tarea
automáticamente.
Pero hacer que una computadora haga la misma tarea no es una tarea fácil, y es un área activa
de investigación en Aprendizaje de Máquina y Ciencias de la Computación en general. Pero
antes de trabajar en la identificación de atributos en una imagen, reflexionemos sobre una
pregunta en particular: ¿Cómo almacena esta máquina una máquina esta imagen?
Probablemente sepa que las computadoras de hoy están diseñadas para procesar solo 0 y 1.
Entonces, ¿cómo puede una imagen como la anterior con múltiples atributos como el color ser
almacenada en una computadora? Esto se logra almacenando las intensidades de píxeles en una
construcción llamada Matrix. Luego, esta matriz puede ser procesada para identificar colores,
etc.
Por lo tanto, cualquier operación que desee realizar en esta imagen probablemente utilice
Álgebra Lineal y matrices en el extremo posterior.
Escenario 2:
Si está familiarizado con el dominio de Data Science, es posible que haya oído hablar del
mundo "XGBOOST", un algoritmo empleado con más frecuencia por los ganadores de las
competencias de Data Science. Almacena los datos numéricos en forma de matriz para dar
predicciones. Permite a XGBOOST procesar datos más rápido y proporcionar resultados más
precisos. Además, no solo XGBOOST, sino también otros algoritmos, utilizan matrices para
almacenar y procesar datos.
Escenario 3:
Aprendizaje profundo: la nueva palabra de moda en la ciudad emplea matrices para almacenar
entradas como imágenes, voz o texto para brindar una solución de vanguardia a estos
problemas. Los pesos aprendidos por una red neuronal también se almacenan en matrices. A
continuación se muestra una representación gráfica de los pesos almacenados en una matriz.
Escenario 4:
Otra área activa de investigación en Aprendizaje automático es tratar con el texto y las técnicas
más comunes empleadas son Bolsa de palabras, Matriz de documentos de término, etc. Todas
estas técnicas de una manera muy similar almacenan (o algo similar) palabras en documentos y
almacenan esto recuento de frecuencia en forma de matriz para realizar tareas como análisis
semántico, traducción de idiomas, generación de idiomas, etc.
Supongamos que el precio de un bate es Rs 'x' y el precio de una pelota es Rs 'y'. Los valores de
'x' y 'y' pueden ser cualquier cosa dependiendo de la situación, es decir, 'x' y 'y' son variables.
2x + y = 100 ...........(1)
x + 2y = 100 ..............(2)
Ahora, para encontrar los precios del bate y la pelota, necesitamos los valores de 'x' e 'y' de
modo que satisfagan ambas ecuaciones. El problema básico del álgebra lineal es encontrar estos
valores de 'x' e 'y', es decir, la solución de un conjunto de ecuaciones lineales.
Las ecuaciones lineales representan objetos planos. Comenzaremos con el más simple de
entender, es decir, la línea. Una línea correspondiente a una ecuación es el conjunto de todos
los puntos que satisfacen la ecuación dada. Por ejemplo,
Los puntos (50,0), (0,100), (100 / 3,100 / 3) y (30,40) satisfacen nuestra ecuación (1). Entonces,
estos puntos deben estar en la línea correspondiente a nuestra ecuación (1). De manera similar,
(0,50), (100,0), (100 / 3,100 / 3) son algunos de los puntos que satisfacen la ecuación (2).
Ahora, en esta situación, queremos que se cumplan ambas condiciones, es decir, el punto que se
encuentra en ambas líneas. Intuitivamente, queremos encontrar el punto de intersección de
ambas líneas como se muestra en la siguiente figura.
Resolvamos el problema mediante operaciones algebraicas elementales como la suma, la resta
y la sustitución.
2x + y = 100 .............(1)
x + 2y = 100 ..........(2)
de la ecuación (1) -
y = (100- x)/2
x + 2*(100-x)/2 = 100......(3)
Ahora, dado que la ecuación (3) es una ecuación en una sola variable x, se puede resolver
para x y posteriormente y.
x+y+z=1.......(4)
2x+y=1......(5)
5x+3y+2z=4.......(6)
z=1-x-y....(7)
5x+3y+2(1-x-y)=4
3x+y=2.....(8)
Ahora, podemos resolver las ecuaciones (8) y (5) como un caso de dos variables para encontrar
los valores de ' x ' e ' y ' en el problema del bate y la bola de arriba. Una vez que sepamos ' x ' e
' y ', podemos usar (7) para encontrar el valor de ' z '.
Como puede ver, agregar una variable adicional ha aumentado enormemente nuestros esfuerzos
para encontrar la solución al problema. Ahora imagina tener 10 variables y 10
ecuaciones. Resolver 10 ecuaciones simultáneamente puede resultar tedioso y lento. Ahora
sumérgete en la ciencia de datos. Tenemos millones de puntos de datos. ¿Cómo resuelves esos
problemas?
Tenemos millones de puntos de datos en un conjunto de datos real. Será una pesadilla alcanzar
soluciones utilizando el enfoque mencionado anteriormente. E imagina si tenemos que hacerlo
una y otra vez y otra vez. Va a pasar mucho tiempo antes de que podamos resolver este
problema. Y ahora, si te digo que es solo una parte de la batalla, ¿qué pensarías? ¿Entonces,
qué debemos hacer? ¿Deberíamos renunciar y dejarlo ir? Definitivamente no. ¿Entonces?
La matriz se usa para resolver un gran conjunto de ecuaciones lineales. Pero antes de ir más
lejos y echar un vistazo a las matrices, visualicemos el significado físico de nuestro
problema. Piense un poco en el siguiente tema. Se relaciona directamente con el uso de
matrices.
2.3 Planos
Una ecuación lineal en 3 variables representa el conjunto de todos los puntos cuyas
coordenadas satisfacen las ecuaciones. ¿Puedes averiguar el objeto físico representado por tal
ecuación? Trate de pensar en 2 variables a la vez en cualquier ecuación y luego agregue la
tercera. Debería darse cuenta de que representa un análogo tridimensional de la línea.
Básicamente, una ecuación lineal en tres variables representa un plano. Más técnicamente, un
plano es un objeto geométrico plano que se extiende hasta el infinito.
Al igual que en el caso de una línea, encontrar soluciones a una ecuación lineal de 3 variables
significa que queremos encontrar la intersección de esos planos. Ahora, ¿puedes imaginarte de
cuántas maneras puede cruzarse un conjunto de tres planos? Déjame ayudarte. Hay 4 casos
posibles -
¿Te imaginas la cantidad de soluciones en cada caso? Intenta hacer esto. Aquí hay una ayuda
elegida de Wikipedia para ayudarte a visualizar.
Entonces, ¿cuál fue el punto de tenerte para visualizar todos los gráficos de arriba?
Los humanos normales como nosotros y la mayoría de los súper matemáticos solo pueden
visualizar cosas en 3 dimensiones, y tener que visualizar cosas en 4 (o 10000) dimensiones
es difícil imposible para los mortales. Entonces, ¿cómo tratan los matemáticos con datos de
dimensiones superiores de manera tan eficiente? Tienen trucos bajo la manga y Matrices es uno
de esos trucos empleados por los matemáticos para tratar con datos de dimensiones más altas.
3. Matriz
Matrix es una forma de escribir cosas similares para manejarlas y manipularlas según nuestros
requisitos fácilmente. En Data Science, generalmente se usa para almacenar información como
pesos en una red neuronal artificial mientras se entrenan varios algoritmos. Podrás entender mi
punto al final de este artículo.
Técnicamente, una matriz es una matriz de números en 2-D (en lo que respecta a Data
Science). Por ejemplo, mira la matriz A a continuación.
1 2 3
4 5 6
7 8 9
En general, las filas se indican con 'i' y las columnas con 'j'. Los elementos están indexados por
' i ' th row y ' j ' th column. Denotamos la matriz por algún alfabeto, por ejemplo, A y sus
elementos por A (ij).
En la matriz anterior
A12 = 2
Para llegar al resultado, vaya a lo largo de la primera fila y llegue a la segunda columna.
Matriz triangular superior: matriz cuadrada con todos los elementos debajo de la diagonal
igual a 0.
Matriz triangular inferior: matriz cuadrada con todos los elementos por encima de la
diagonal igual a 0.
Matriz escalar: matriz cuadrada con todos los elementos diagonales iguales a alguna
constante k.
Matriz de identidad: matriz cuadrada con todos los elementos diagonales iguales a 1 y todos
los elementos no diagonales iguales a 0.
Matriz de columnas : la matriz que consta de solo 1 columna. A veces, se utiliza para
representar un vector.
Adición : la adición de matrices es casi similar a la suma aritmética básica. Todo lo que
necesita es que el orden de todas las matrices que se agreguen sea el mismo. Este punto se
volverá obvio una vez que hagas la adición de matrices por ti mismo.
Supongamos que tenemos 2 matrices 'A' y 'B' y la matriz resultante después de la adición es
'C'. Entonces
A=
1 0
2 3
B=
4 -1
0 5
Entonces,
C=
5 -1
2 8
Multiplicación escalar : la multiplicación de una matriz con una constante escalar se denomina
multiplicación escalar. Todo lo que tenemos que hacer en una multiplicación escalar es
multiplicar cada elemento de la matriz con la constante dada. Supongamos que tenemos un
escalar constante 'c' y una matriz 'A'. Luego, multiplicar 'c' con 'A' da-
c [Aij] = [c * Aij]
A ij T = A ji
Codigo en python
import numpy as np
import pandas as pd
Multiplicación de matrices
No te preocupes si no puedes obtener estos puntos. Podrás entender al final de esta sección.
Supongamos que nos dan dos matrices A y B para multiplicar. Primero escribiré la expresión
final y luego explicaré los pasos.
He elegido esta imagen de Wikipedia para su mejor comprensión.
En la primera ilustración, sabemos que el orden de la matriz resultante debe ser 3 * 3. Entonces,
en primer lugar, crea una matriz de orden 3 * 3. Para determinar (AB) ij, multiplique cada
elemento de 'i'th row of A con' j'th column of B de una en una y agregue todos los
términos. Para ayudarlo a comprender la multiplicación de elementos, eche un vistazo al código
a continuación.
import adormecido as np
A=np.arange(21,30).reshape(3,3)
B=np.arange(31,40).reshape(3,3)
A.dot(B)
import numpy as np
A=np.arange(21,30).reshape(3,3)
B=np.arange(31,40).reshape(3,3)
C=np.arange(41,50).reshape(3,3)
temp1=(A.dot(B)).dot(C)
temp2=A.dot((B.dot(C)))
Verifica explícitamente que podemos escribir nuestras ecuaciones juntas en un lugar como
AX = Z
El siguiente paso debe ser los métodos de solución. Pasaremos por dos métodos para encontrar
la solución.
4. Resolviendo el problema
Ahora, veremos en detalle los dos métodos para resolver ecuaciones matriciales.
1. Forma escalonada
2. Inverso de una matriz
4.1 Forma de la fila Echelon
Ahora ha visualizado lo que representa una ecuación en 3 variables y ha tenido un
calentamiento en las operaciones matriciales. Busquemos la solución del conjunto de
ecuaciones que se nos da para comprender nuestro primer método de interés y explorarlo más
adelante en detalle.
Ya he ilustrado que resolver el método de las ecuaciones por sustitución puede resultar tedioso
y tomar tiempo. Nuestro primer método le presenta un método más prolijo y sistemático para
realizar el trabajo en el que manipulamos nuestras ecuaciones originales de forma sistemática
para encontrar la solución. ¿Pero cuáles son esas manipulaciones válidas? ¿Hay algún criterio
de calificación que tengan que cumplir? Bueno, sí. Hay dos condiciones que deben ser
cumplidas por cualquier manipulación para que sean válidas.
Estos puntos se aclararán una vez que pases por el algoritmo y lo practiques. La idea básica es
borrar variables en ecuaciones sucesivas y formar una matriz triangular superior. Equipado con
requisitos previos, vamos a empezar. Pero antes de eso, se recomienda encarecidamente ir a
través de este enlace para una mejor comprensión.
Lo que he hecho es que acabo de concatenar las dos matrices. La matriz aumentada
simplemente dice que los elementos en una fila son coeficientes de 'x', 'y' y 'z' y el último
elemento en la fila es el lado derecho de la ecuación.
2. Multiplica la fila (1) con 2 y resta de la fila (2). De manera similar, multiplica la
ecuación 1 con 5 y resta de la fila (3).
3. Para hacer una matriz triangular superior, multiplica la fila (2) por 2 y luego resta de la
fila (3).
Recuerde hacer que cada coeficiente principal, también llamado pivote, sea igual a 1, mediante
manipulaciones adecuadas; en este caso multiplicando la fila 2 por -1. Además, si una fila
consta de 0 solamente, debe estar debajo de cada fila que consta de una entrada distinta de
cero. La forma resultante de Matrix se llama forma Row Echelon. Observe que los planos
correspondientes a nuevas ecuaciones formadas por manipulación no son
equivalentes. Haciendo estas operaciones, solo estamos conservando la solución de ecuaciones
y tratando de alcanzarla.
0*x+0*y+1*z=1
z=1
Ahora recupere la ecuación (2) y coloque el valor de 'z' en ella para encontrar 'y'. Haga lo
mismo para la ecuación (1).
Reflexionemos sobre otro punto. ¿Siempre podremos hacer una matriz triangular superior que
dé una solución única? ¿Hay diferentes casos posibles? Recordemos que los planos pueden
cruzarse de múltiples maneras. Tómese su tiempo para averiguarlo y luego continúe.
Tenga en cuenta que en la última ecuación, 0 = 0, que siempre es cierto, pero parece que solo
tenemos 2 ecuaciones. Una de las ecuaciones es redundante. En muchos casos, también es
posible que el número de ecuaciones redundantes sea más de una. En este caso, el número de
soluciones es infinito.
0*x+0*y+0*z=4
0=4
¿Es posible? La intuición muy clara es NO. Pero, ¿esto significa algo? Es análogo a decir que
es imposible encontrar una solución y, de hecho, es cierto. No podemos encontrar una solución
para este conjunto de ecuaciones. ¿Puedes pensar lo que está sucediendo realmente en términos
de planos? Regrese a la sección donde vimos los aviones que se cruzan y descúbralo.
Tenga en cuenta que este método es eficiente para un conjunto de 5-6 ecuaciones. Aunque el
método es bastante simple, si el conjunto de ecuaciones se hace más grande, la cantidad de
veces que tienes que manipular las ecuaciones se vuelve enormemente alta y el método se
vuelve ineficiente.
Rango de una matriz : el rango de una matriz es igual al número máximo de vectores de fila
linealmente independientes en una matriz.
Por ahora, solo enfócate en la matriz 2 * 2. La expresión del determinante de la matriz A será:
det(A) =a*d-b*c
Tenga en cuenta que det (A) es una notación estándar para determinante. Tenga en cuenta que
todo lo que tiene que hacer para encontrar un factor determinante en este caso es multiplicar los
elementos de la diagonal y colocar un signo positivo o negativo ante ellos. Para determinar el
signo, sume los índices de un elemento particular. Si la suma es un número par, ponga un signo
positivo antes de la multiplicación y si la suma es impar, ponga un signo negativo. Por ejemplo,
la suma de los índices del elemento 'a11' es 2. Del mismo modo, la suma de los índices del
elemento 'd' es 4. Así que colocamos un signo positivo antes del primer término en la
expresión. Haga lo mismo para el segundo término usted mismo.
Intente relacionar la expresión con lo que ya hemos hecho y averiguar la expresión final.
Codigo en python
import numpy as np
#create a 4*4 matrix
arr = np.arange(100,116).reshape(4,4)
-2.9582283945788078e-31
Para encontrar el elemento secundario correspondiente al elemento A11, elimine la primera fila
y la primera columna para encontrar la submatriz.
M11 = 4
C11 = 4
Debes encontrar cofactores correspondientes a otros elementos por ti mismo para una buena
cantidad de práctica.
Matriz cofactor
Junto a una matriz : en nuestro viaje para encontrar lo inverso, estamos casi al final. Solo
mantén el artículo por un par de minutos y estaremos allí. Entonces, a continuación
encontraremos el adjunto de una matriz.
Supongamos que tenemos que encontrar el adjunto de una matriz A. Lo haremos en dos pasos.
Paso 2: Multiplica la matriz adjunta por el inverso del determinante de la matriz A. La matriz
resultante es la inversa de A.
Por ejemplo, tomemos nuestra matriz A y encontremos que es inversa. Ya tenemos la matriz
adjunta. El determinante de la matriz A llega a ser -2. Entonces, su inverso será
Supongamos ahora que el determinante resulta ser 0. ¿Qué sucede cuando invertimos el
determinante, es decir, 0? ¿Tiene algún sentido? Indica claramente que no podemos encontrar
el inverso de tal matriz. Por lo tanto, esta matriz no es invertible. Más técnicamente, este tipo de
matriz se llama matriz singular.
Tenga en cuenta que la resultante de la multiplicación de una matriz y su inversa es una matriz
de identidad. Esta propiedad se utilizará ampliamente en la resolución de ecuaciones.
Vamos a resolver nuestro problema original con la ayuda de matrices. Nuestro problema
original representado en la matriz fue como se muestra a continuación
AX = Z es decir
Lo que sucede cuando ya multiplicamos los dos lados con la inversa de la matriz de
coeficientes, es decir, A. Vamos a descubrir haciendo.
A -1 AX = A -1 Z
(A -1 A) X = A -1 Z
Pero sabemos que multiplicar una matriz con su inverso da una Matriz de Identidad. Asi que,
IX = A -1 Z
X = A -1 Z
Para resolver la ecuación, solo tenemos que encontrar el inverso. Se puede hacer muy
fácilmente ejecutando algunas líneas de códigos. ¿No es un método realmente poderoso?
import numpy as np
#create an array arr1
arr1 = np.arange(5,21).reshape(4,4)
Inverso se usa para calcular el vector de parámetros por ecuación normal en ecuación
lineal. Aquí hay una ilustración. Supongamos que nos dan un conjunto de datos como se
muestra a continuación:
REAL
ACADEMIA licenciado
Equipo Liga Año RS W OBP SLG sol OOBP OSLG
DE BELLAS en Letras
ARTES
ARI NL 2012 734 688 81 0.328 0.418 0.259 162 0.317 0.41
ATL NL 2012 700 600 94 0.32 0.389 0.247 162 0.306 0.37
BAL Alabama 2012 712 705 93 0.311 0.417 0.247 162 0.315 0.40
BOS Alabama 2012 734 806 69 0.315 0.415 0.26 162 0.331 0.42
CHC NL 2012 613 759 61 0.302 0.378 0.24 162 0.335 0.42
CHW Alabama 2012 748 676 85 0.318 0.422 0.255 162 0.319 0.40
CIN NL 2012 669 588 97 0.315 0.411 0.251 162 0.305 0.3
CLE Alabama 2012 667 845 68 0.324 0.381 0.251 162 0.336 0.4
COLUMNA NL 2012 758 890 64 0.33 0.436 0.274 162 0.357 0.4
DET Alabama 2012 726 670 88 0.335 0.422 0.268 162 0.314 0.40
HOU NL 2012 583 794 55 0.302 0.371 0.236 162 0.337 0.42
KCR Alabama 2012 676 746 72 0.317 0.4 0.265 162 0.339 0.42
Laa Alabama 2012 767 699 89 0.332 0.433 0.274 162 0.31 0.40
MUCHACHO NL 2012 637 597 86 0.317 0.374 0.252 162 0.31 0.36
Describe las diferentes variables de los diferentes equipos de béisbol para predecir si se llega a
los playoffs o no. Pero ahora mismo para convertirlo en un problema de regresión, supongamos
que estamos interesados en predecir OOBP a partir del resto de las variables. Entonces, 'OOBP'
es nuestra variable objetivo. Para resolver este problema usando la regresión lineal, tenemos
que encontrar el vector de parámetros. Si está familiarizado con el método de la ecuación
normal, debe tener la idea de que para hacerlo, necesitamos usar matrices. Continuemos y
denotemos nuestras variables independientes a continuación como una matriz 'X'. Estos datos
forman parte de un conjunto de datos tomado desde el borde analítico. Aquí está el enlace para
el conjunto de datos.
entonces, X =
En primer lugar, permítame hacer que la formulación de Regresión lineal sea más fácil de
comprender.
import pandas as pd
import numpy as np
#you don’t need to bother about the following. It just #transforms the data from
original source into matrix
Df = pd.read_csv( "../baseball.csv”)
Df1 = df.head(14)
#Converting X to matrix
X = np.asmatrix(X)
#finding multiplication
T= x.dot(X)
#calculating θ
theta=(inv.dot(X.T)).dot(Y)
Imagínese si tuviera que resolver este conjunto de ecuaciones sin utilizar el álgebra
lineal. Permítame recordarle que este conjunto de datos es inferior al 1% de la fecha original
establecida. Ahora imagina si tuvieras que encontrar un vector de parámetros sin usar álgebra
lineal. Habría tomado mucho tiempo y esfuerzo y podría ser incluso imposible de resolver a
veces.
A continuación, veremos otro concepto avanzado de álgebra lineal llamado vectores propios.
Vamos a multiplicar un vector bidimensional con una matriz de 2 * 2 y ver qué pasa.
Esta operación en un vector se llama transformación lineal. Observe que las direcciones de los
vectores de entrada y salida son diferentes. Tenga en cuenta que la matriz de columnas denota
un vector aquí.
En la imagen anterior, hay dos tipos de vectores de color rojo y amarillo y la imagen muestra el
cambio en los vectores después de una transformación lineal. Tenga en cuenta que al aplicar
una transformación lineal a un vector de color amarillo, su dirección cambia, pero la dirección
del vector de color rojo no cambia incluso después de aplicar la transformación lineal. El vector
coloreado en rojo es un ejemplo de Eigenvector.
Precisamente, para una matriz particular; Los vectores cuya dirección permanece sin cambios
incluso después de aplicar la transformación lineal con la matriz se denominan vectores propios
para esa matriz en particular. Recuerde que el concepto de valores y vectores de Eigen es
aplicable solo a matrices cuadradas. Otra cosa que debe saber es que he tomado un caso de
vectores bidimensionales, pero el concepto de vectores propios es aplicable a un espacio de
cualquier número de dimensiones.
Ax = cx
Tenga en cuenta que en el término (Ac), 'c' denota una matriz de identidad del orden igual a 'A'
multiplicada por un escalar 'c'
Tenemos dos incógnitas 'c' y 'x' y solo una ecuación. ¿Puedes pensar en un truco para resolver
esta ecuación?
En la ecuación (1), si ponemos el vector 'x' como vector cero, no tiene sentido. Por lo tanto, la
única opción es que (Ac) es una matriz singular. Y la matriz singular tiene una propiedad que
su determinante es igual a 0. Usaremos esta propiedad para encontrar el valor de 'c'.
Det (Ac) = 0
Una vez que encuentre el determinante de la matriz (Ac) y se iguale a 0, obtendrá una ecuación
en 'c' del orden que depende de la matriz A dada. Todo lo que tiene que hacer es encontrar la
solución de la ecuación. Supongamos que encontramos soluciones como 'c1', 'c2' y así
sucesivamente. Coloque 'c1' en la ecuación (1) y encuentre el vector 'x1' correspondiente a
'c1'. El vector 'x1' que acaba de encontrar es un vector propio de A. Ahora, repita el mismo
procedimiento con 'c2', 'c3' y así sucesivamente.
import numpy as np
#create an array
arr = np.arange(1,10).reshape(3,3)
#finding the Eigenvalue and Eigenvectors of arr
np.linalg.eig(arr)
Ahora queremos reducir el número de características, es decir, las dimensiones. Pero cortar
características significa pérdida de información. Queremos minimizar la pérdida de
información, es decir, queremos mantener la variación máxima. Por lo tanto, queremos
averiguar las direcciones en las que la varianza es máxima. Encontraremos estas instrucciones
en el siguiente paso.
Paso 4 : Seleccionaremos los vectores propios 'k' correspondientes a los valores propios más
grandes de 'k' y formaremos una matriz en la que cada vector propio constituirá una
columna. Llamaremos a esta matriz como U.
Ahora es el momento de encontrar los puntos de datos reducidos. Supongamos que desea
reducir un punto de datos 'a' en el conjunto de datos a las dimensiones 'k'. Para hacerlo, solo
tiene que transponer la matriz U y multiplicarla con el vector 'a'. Obtendrá el vector requerido
en las dimensiones 'k'.
Una vez que hayamos terminado con los vectores propios, hablemos de otro concepto avanzado
y altamente útil en el álgebra lineal llamado descomposición de valor singular, popularmente
llamado SVD. Su comprensión completa requiere un estudio riguroso del álgebra lineal. De
hecho, SVD es un completo blog en sí mismo. Se nos ocurrirá otro blog completamente
dedicado a la SVD. Estén atentos para una mejor experiencia. Por ahora, solo te daré un vistazo
de cómo la SVD ayuda en la ciencia de la información.
6. Descomposición del valor singular
Supongamos que le dan una matriz de características A. Como lo sugiere su nombre, lo que
hacemos es descomponer nuestra matriz A en tres matrices constituyentes para un propósito
especial. A veces, también se dice que svd es una especie de generalización de la
descomposición del valor Eigen. No voy a entrar en sus matemáticas por la razón ya explicada
y mantendré nuestro plan, es decir, el uso de svd en la ciencia de datos.
Svd se utiliza para eliminar las funciones redundantes en un conjunto de datos. Supongamos
que tiene un conjunto de datos que comprende 1000 características. Definitivamente, cualquier
conjunto de datos real con un número tan grande de características está obligado a contener
características redundantes. Si ha ejecutado ML, debe estar familiarizado con el hecho de que
las funciones redundantes causan muchos problemas al ejecutar algoritmos de aprendizaje
automático. Además, ejecutar un algoritmo en el conjunto de datos original será ineficiente en
el tiempo y requerirá una gran cantidad de memoria. Entonces, ¿qué debes hacer para manejar
un problema así? ¿Tenemos alguna opción? ¿Podemos omitir algunas
características? ¿Conducirá a una cantidad significativa de pérdida de información? ¿Podremos
obtener un algoritmo suficientemente eficiente incluso después de omitir las filas? Responderé
a estas preguntas con la ayuda de una ilustración.
Podemos convertir este tigre en blanco y negro y podemos considerarlo como una matriz cuyos
elementos representan la intensidad de píxeles como ubicación relevante. En palabras más
simples, la matriz contiene información sobre la intensidad de los píxeles de la imagen en
forma de filas y columnas. Pero, ¿es necesario tener todas las columnas en la matriz de
intensidad? ¿Podremos representar al tigre con una menor cantidad de información? La
siguiente imagen aclarará mi punto. En esta imagen, se muestran diferentes imágenes
correspondientes a diferentes rangos con diferente resolución. Por ahora, solo asuma que un
rango más alto implica la mayor cantidad de información sobre la intensidad de píxeles. La
imagen está tomada de este enlace.
Está claro que podemos alcanzar una imagen bastante buena con 20 o 30 rangos en lugar de
100 o 200 rangos y eso es lo que queremos hacer en un caso de datos altamente
redundantes. Lo que quiero transmitir es que para obtener una hipótesis razonable, no tenemos
que retener toda la información presente en el conjunto de datos original. Incluso, algunas de
las características causan un problema para alcanzar una solución para el mejor algoritmo. Para
el ejemplo, la presencia de características redundantes provoca la co-linealidad múltiple en la
regresión lineal. Además, algunas características no son significativas para nuestro
modelo. Omitir estas características ayuda a encontrar un mejor ajuste del algoritmo junto con
la eficiencia de tiempo y menos espacio en el disco. La descomposición de valor singular se
utiliza para deshacerse de las características redundantes presentes en nuestros datos.
7. notas finales
Si has llegado tan lejos, date una palmada en la espalda. Hemos cubierto diferentes aspectos del
álgebra lineal en este artículo. He intentado proporcionar suficiente cantidad de información y
mantener el flujo de manera que todos puedan comprender los conceptos y hacer los cálculos
necesarios. Aún así, si te quedas atascado en algún lugar, no dudes en comentar a continuación
o publicar en el portal de discusión .
Introducción
No hay atajos para la exploración de datos. Si está en un estado mental, el aprendizaje automático
puede alejarlo de cualquier tormenta de datos, confíe en mí, no lo hará. Después de algún
momento, se dará cuenta de que está luchando para mejorar la precisión del modelo. En tal
situación, las técnicas de exploración de datos vendrán a su rescate.
Puedo decir esto con confianza, porque he pasado por esas situaciones, mucho.
Soy profesional de Business Analytics desde hace casi tres años. En mis primeros días, uno de
mis mentores me sugirió dedicar un tiempo significativo a la exploración y análisis de
datos. Seguir su consejo me ha servido bien.
He creado este tutorial para ayudarlo a comprender las técnicas subyacentes de la exploración de
datos. Como siempre, he hecho todo lo posible por explicar estos conceptos de la manera más
sencilla. Para una mejor comprensión, he tomado algunos ejemplos para demostrar los conceptos
complicados.
Tabla de contenido
1. Pasos de la exploración y preparación de datos
2. Tratamiento de valor perdido
o ¿Por qué se requiere tratamiento de valor perdido?
o ¿Por qué los datos tienen valores perdidos?
o ¿Cuáles son los métodos para tratar el valor perdido?
3. Técnicas de detección atípica y tratamiento.
o ¿Qué es un valor atípico?
o ¿Cuáles son los tipos de valores atípicos?
o ¿Cuáles son las causas de los valores atípicos?
o ¿Cuál es el impacto de los valores atípicos en el conjunto de datos?
o ¿Cómo detectar valores atípicos?
o ¿Cómo eliminar el valor atípico?
4. El arte de la ingeniería de características
o ¿Qué es la ingeniería de características?
o ¿Cuál es el proceso de ingeniería de características?
o ¿Qué es la transformación variable?
o ¿Cuándo debemos usar la transformación de variables?
o ¿Cuáles son los métodos comunes de transformación de variables?
o ¿Qué es la creación de variables de características y sus beneficios?
Empecemos.
A continuación, se incluyen los pasos necesarios para comprender, limpiar y preparar sus datos
para construir su modelo predictivo:
1. Identificación de variables
2. Análisis univariado
3. Análisis bi-variado
4. Tratamiento de valores faltantes.
5. Tratamiento atípico
6. Transformación variable
7. Creación variable
Finalmente, tendremos que recorrer los pasos 4 a 7 varias veces antes de encontrar nuestro
modelo refinado.
Ejemplo: - Supongamos que queremos predecir si los estudiantes jugarán cricket o no (consulte
el conjunto de datos a continuación). Aquí debe identificar las variables de predicción, la variable
de destino, el tipo de datos de las variables y la categoría de las variables.
A
continuación, las variables se han definido en diferentes categorías:
Análisis univariado
En esta etapa, exploramos las variables una por una. El método para realizar un análisis
univivalente dependerá de si el tipo de variable es categórico o continuo. Veamos estos métodos
y medidas estadísticas para variables categóricas y continuas individualmente:
Variables continuas: - En el caso de variables continuas, necesitamos entender la tendencia
central y la propagación de la variable. Estos se miden utilizando varios métodos de visualización
de métricas estadísticas como se muestra a continuación:
Nota: El análisis univariado también se usa para resaltar los valores perdidos y los valores
atípicos. En la próxima parte de esta serie, veremos métodos para manejar valores perdidos y
atípicos. Para saber más sobre estos métodos, puede consultar las estadísticas descriptivas de
los cursos de Udacity .
Variables categóricas: - Para las variables categóricas, usaremos la tabla de frecuencia para
entender la distribución de cada categoría. También podemos leer como porcentaje de valores
bajo cada categoría. Se puede medir utilizando dos métricas, Count y Count% contra cada
categoría. El gráfico de barras se puede utilizar como visualización.
Análisis bi-variado
Bi-variate Analysis descubre la relación entre dos variables. Aquí, buscamos asociación y
disociación entre variables en un nivel de significación predefinido. Podemos realizar análisis de
variabilidad para cualquier combinación de variables categóricas y continuas. La combinación
puede ser: Categórica y Categórica, Categórica y Continua y Continua y Continua. Se utilizan
diferentes métodos para abordar estas combinaciones durante el proceso de análisis.
Continuo y Continuo: mientras hacemos análisis de dos variables entre dos variables continuas,
deberíamos mirar el diagrama de dispersión. Es una forma ingeniosa de descubrir la relación
entre dos variables. El patrón de diagrama de dispersión indica la relación entre las variables. La
relación puede ser lineal o no lineal.
El diagrama de dispersión muestra la relación
entre dos variables, pero no indica la fuerza de la relación entre ellas. Para encontrar la fuerza de
la relación, usamos Correlación. La correlación varía entre -1 y +1.
0: No hay correlación
Varias herramientas tienen una función o funcionalidad para identificar la correlación entre
variables. En Excel, la función CORREL () se usa para devolver la correlación entre dos variables
y SAS usa el procedimiento PROC CORR para identificar la correlación. Esta función devuelve
el valor de correlación de Pearson para identificar la relación entre dos variables:
En el ejemplo anterior, tenemos una buena relación positiva (0.65) entre dos variables X e Y.
Categórico y categórico: para encontrar la relación entre dos variables categóricas, podemos
utilizar los siguientes métodos:
Tabla bidireccional: podemos comenzar a analizar la relación creando una tabla
bidireccional de conteo y conteo%. Las filas representan la categoría de una variable y
las columnas representan las categorías de la otra variable. Mostramos conteo o conteo%
de observaciones disponibles en cada combinación de categorías de fila y columna.
Tabla de columnas apiladas: este método es más bien una forma visual de una tabla de
dos direcciones.
Probabilidad menor a 0.05: Indica que la relación entre las variables es significativa al 95% de
confianza. La estadística de prueba de chi-cuadrado para una prueba de independencia de dos
variables categóricas se encuentra por:
Diferentes lenguajes y herramientas de ciencia de datos tienen métodos específicos para realizar
la prueba de chi-cuadrado. En SAS, podemos usar Chisq como una opción con Proc freq para
realizar esta prueba.
Categórico y continuo: mientras exploramos la relación entre las variables categóricas y
continuas, podemos dibujar diagramas de caja para cada nivel de variables categóricas. Si los
niveles son pequeños en número, no mostrará la significación estadística. Para observar la
significación estadística, podemos realizar la prueba Z, la prueba T o ANOVA.
Ejemplo: Supongamos que queremos probar el efecto de cinco ejercicios diferentes. Para esto,
reclutamos 20 hombres y asignamos un tipo de ejercicio a 4 hombres (5 grupos). Sus pesos se
registran a las pocas semanas. Necesitamos averiguar si el efecto de estos ejercicios en ellos es
significativamente diferente o no. Esto se puede hacer comparando los pesos de los 5 grupos de
4 hombres cada uno.
Hasta aquí, hemos comprendido las tres primeras etapas de la exploración de datos, la
identificación de variables, la uni-variable y el análisis de doble variable. También
observamos varios métodos estadísticos y visuales para identificar la relación entre las
variables.
Ahora, vamos a ver los métodos de tratamiento de valores perdidos. Más importante aún, también
veremos por qué los valores faltantes aparecen en nuestros datos y por qué es necesario tratarlos.
Observe los valores faltantes en la imagen que se muestra arriba: En el escenario de la izquierda,
no hemos tratado los valores faltantes. La inferencia de este conjunto de datos es que las
posibilidades de jugar al cricket por los machos son mayores que las hembras. Por otro lado, si
nos fijamos en la segunda tabla, que muestra datos después del tratamiento de los valores
perdidos (según el género), podemos ver que las mujeres tienen mayores posibilidades de jugar
cricket en comparación con los hombres.
Después de tratar con los valores perdidos, la siguiente tarea es lidiar con los valores
atípicos. A menudo, tendemos a descuidar los valores atípicos al construir modelos. Esta es una
práctica desalentadora. Los valores atípicos tienden a sesgar sus datos y reduce la
precisión. Vamos a aprender más sobre el tratamiento atípico.
Tomemos un ejemplo, hacemos perfiles de clientes y descubrimos que el ingreso anual promedio
de los clientes es de $ 0.8 millones. Pero, hay dos clientes que tienen un ingreso anual de $ 4 y $
4.2 millones. El ingreso anual de estos dos clientes es mucho mayor que el resto de la
población. Estas dos observaciones serán vistas como valores atípicos.
¿Cuáles son los tipos de valores atípicos?
Los valores atípicos pueden ser de dos tipos: Univariado y Multivariado . Anteriormente,
hemos discutido el ejemplo de unívoco atípico. Estos valores atípicos se pueden encontrar cuando
observamos la distribución de una única variable. Los valores atípicos multivariados son valores
atípicos en un espacio n-dimensional. Para encontrarlos, hay que mirar las distribuciones en
múltiples dimensiones.
Entendamos esto con un ejemplo. Digamos que estamos entendiendo la relación entre altura y
peso. A continuación, tenemos una distribución univariada y bivariada para Altura, Peso. Echa
un vistazo a la trama de caja. No tenemos ningún valor atípico (por encima y por debajo de 1.5 *
IQR, el método más común). Ahora mira el diagrama de dispersión. Aquí, tenemos dos valores
por debajo y uno por encima de la media en un segmento específico de peso y altura.
Errores de entrada de datos: - Los errores humanos, como los errores causados durante
la recopilación de datos, el registro o la entrada, pueden causar valores atípicos en los
datos. Por ejemplo: El ingreso anual de un cliente es de $ 100,000. Accidentalmente, el
operador de entrada de datos pone un cero adicional en la figura. Ahora el ingreso se
convierte en $ 1,000,000, que es 10 veces más alto. Evidentemente, este será el valor
atípico en comparación con el resto de la población.
Error de medición: es la fuente más común de valores atípicos. Esto se produce cuando
el instrumento de medición utilizado resulta defectuoso. Por ejemplo: hay 10 máquinas
de pesaje. 9 de ellos son correctos, 1 es defectuoso. El peso medido por las personas en
la máquina defectuosa será más alto / más bajo que el resto de personas en el grupo. Los
pesos medidos en una máquina defectuosa pueden llevar a valores atípicos.
Error experimental: Otra causa de los valores atípicos es el error experimental. Por
ejemplo: en un sprint de 100 metros de 7 corredores, un corredor no se concentró en la
llamada "Ir", lo que hizo que comenzara tarde. Por lo tanto, esto causó que el tiempo de
ejecución del corredor sea más que el de otros corredores. Su tiempo total de ejecución
puede ser un valor atípico.
Intención intencional : esto se encuentra comúnmente en medidas autoinformadas que
involucran datos confidenciales. Por ejemplo: los adolescentes generalmente reportan la
cantidad de alcohol que consumen. Solo una fracción de ellos reportaría el valor
real. Aquí los valores reales podrían parecer valores atípicos porque el resto de los
adolescentes están reportando el consumo.
Error de procesamiento de datos: Cada vez que realizamos una minería de datos,
extraemos datos de múltiples fuentes. Es posible que algunos errores de manipulación o
extracción puedan llevar a valores atípicos en el conjunto de datos.
Error de muestreo: por ejemplo, tenemos que medir la altura de los atletas. Por error,
incluimos algunos jugadores de baloncesto en la muestra. Es probable que esta inclusión
provoque valores atípicos en el conjunto de datos.
Valor atípico natural: cuando un valor atípico no es artificial (debido a un error), es un
valor atípico natural. Por ejemplo: en mi último trabajo con una de las compañías de
seguros de renombre, noté que el desempeño de los 50 principales asesores financieros
era mucho más alto que el resto de la población. Sorprendentemente, no se debió a ningún
error. Por lo tanto, cuando realizamos cualquier actividad de minería de datos con
asesores, solíamos tratar este segmento por separado.
Para comprender el impacto en profundidad, tomemos un ejemplo para comprobar qué sucede
con un conjunto de datos con y sin valores atípicos en el conjunto de datos.
Ejemplo:
Como puede ver, el conjunto de datos con valores atípicos tiene una media y una desviación
estándar significativamente diferentes. En el primer escenario, diremos que el promedio es de
5,45. Pero con el valor atípico, el promedio se eleva a 30. Esto cambiaría la estimación por
completo.
Cualquier valor, que está fuera del rango de -1.5 x IQR a 1.5 x IQR
Utilice métodos de limitación. Cualquier valor que esté fuera del rango de percentil 5 y
95 puede considerarse como valor atípico
Los puntos de datos, tres o más desviaciones estándar respecto a la media se consideran
como valores atípicos
La detección de valores atípicos no es más que un caso especial del examen de datos para
los puntos de datos influyentes y también depende de la comprensión del negocio
Los valores atípicos bivariados y multivariados se miden generalmente utilizando un
índice de influencia o apalancamiento, o la distancia. Los índices populares como la
distancia de Mahalanobis y la D de Cook se utilizan con frecuencia para detectar valores
atípicos.
En SAS, podemos utilizar PROC Univariate, PROC SGPLOT. Para identificar valores
atípicos y observaciones influyentes, también observamos medidas estadísticas como
ESTUDIANTE, COOKD, ESTUDIANTE y otros.
¿Cómo eliminar Outliers?
La mayoría de las formas de lidiar con los valores atípicos son similares a los métodos de valores
perdidos como eliminar observaciones, transformarlos, agruparlos, tratarlos como un grupo
separado, imputar valores y otros métodos estadísticos. Aquí, discutiremos las técnicas comunes
utilizadas para tratar los valores atípicos:
Imputación: al igual que la imputación de valores perdidos , también podemos imputar valores
atípicos. Podemos usar la media, la mediana, los métodos de imputación de modo. Antes de
imputar valores, debemos analizar si es natural atípico o artificial. Si es artificial, podemos ir con
valores de imputación. También podemos usar un modelo estadístico para predecir los valores
de observación atípica y después de eso podemos imputarlo con valores predichos.
Tratar por separado: si hay un número significativo de valores atípicos, debemos tratarlos por
separado en el modelo estadístico. Uno de los enfoques es tratar a ambos grupos como dos grupos
diferentes y construir un modelo individual para ambos grupos y luego combinar la salida.
Hasta aquí, hemos aprendido sobre los pasos de la exploración de datos, el tratamiento de valor
perdido y las técnicas de detección y tratamiento de valores atípicos. Estas 3 etapas mejorarán
sus datos sin procesar en términos de disponibilidad y precisión de la información. Pasemos
ahora a la etapa final de exploración de datos. Es la Ingeniería de Característica.
4. El arte de la ingeniería de características
Por ejemplo, supongamos que intenta predecir la caída del pie en un centro comercial en función
de las fechas. Si intenta y usa las fechas directamente, es posible que no pueda extraer
información significativa de los datos. Esto se debe a que la caída del pie se ve menos afectada
por el día del mes que por el día de la semana. Ahora esta información sobre el día de la semana
está implícita en sus datos. Necesitas sacarlo para mejorar tu modelo.
Transformación variable.
Creación de variables / características.
Estas dos técnicas son vitales en la exploración de datos y tienen un impacto notable en el poder
de la predicción. Entendamos cada uno de estos pasos en más detalles.
Cuando queremos cambiar la escala de una variable o estandarizar los valores de una
variable para una mejor comprensión. Si bien esta transformación es imprescindible si
tiene datos en diferentes escalas, esta transformación no cambia la forma de la
distribución de variables.
Se
prefiere la distribución simétrica a la distribución sesgada, ya que es más fácil de
interpretar y generar inferencias. Algunas técnicas de modelado requieren la distribución
normal de variables. Por lo tanto, siempre que tengamos una distribución sesgada,
podemos usar transformaciones que reducen la asimetría. Para la distribución sesgada a
la derecha, tomamos la raíz cuadrada / cúbica o el logaritmo de la variable, y para la
desviación a la izquierda, tomamos el cuadrado / cubo o exponencial de las variables.
La transformación variable también se realiza desde el punto de vista de la
implementación(Participación humana). Vamos a entenderlo más claramente. En uno
de mis proyectos sobre el desempeño de los empleados, encontré que la edad tiene una
correlación directa con el desempeño del empleado, es decir, a mayor edad, mejor el
desempeño. Desde el punto de vista de la implementación, el lanzamiento de un
programa basado en la edad podría presentar un desafío de implementación. Sin
embargo, clasificar a los agentes de ventas en tres grupos de edades de <30 años, 30-45
años y> 45 y luego formular tres estrategias diferentes para cada grupo es un enfoque
juicioso. Esta técnica de categorización se conoce como binning de variables.
Raíz cuadrada / cubo: La raíz cuadrada y cúbica de una variable tiene un efecto de
sonido en la distribución de variables. Sin embargo, no es tan significativo como la
transformación logarítmica. La raíz cúbica tiene su propia ventaja. Se puede aplicar a
valores negativos incluyendo cero. La raíz cuadrada se puede aplicar a valores positivos
que incluyen cero.
Creación de variables ficticias: una de las aplicaciones más comunes de las variables
ficticias es convertir las variables categóricas en variables numéricas. Las variables
ficticias también se denominan variables de indicador. Es útil tomar variables categóricas
como predictor en modelos estadísticos. La variable categórica puede tomar los valores
0 y 1. Tomemos una variable 'género'. Podemos producir dos variables, a saber,
“ Var_Male ” con valores 1 (Male) y 0 (No male) y “ Var_Female ” con valores 1
(Female) y 0 (No Female). También podemos crear variables ficticias para más de dos
clases de variables categóricas con n o n-1 variables ficticias.
Notas finales
Como se mencionó al principio, la calidad y los esfuerzos invertidos en la exploración de datos
diferencia un buen modelo de un mal modelo.
Aquí termina nuestra guía sobre exploración y preparación de datos. En esta guía completa,
analizamos en detalle los siete pasos de la exploración de datos. El objetivo de esta serie era
proporcionar una guía detallada y paso a paso de un proceso extremadamente importante en la
ciencia de datos.
Personalmente, disfruté escribiendo esta guía y me encantaría aprender de sus comentarios. ¿Te
ha resultado útil esta guía? Agradecería sus sugerencias / comentarios. Por favor, siéntase libre
de hacer sus preguntas a través de comentarios a continuación.
Acercándose (casi) a
cualquier problema de
aprendizaje automático
| Abhishek Thakur
Equipo Kaggle |07.21.2016
Abhishek Thakur , un gran maestro de Kaggle, publicó originalmente esta publicación aquí el
18 de julio de 2016 y amablemente nos dio permiso para cruzar la publicación en No Free
Hunch
Un científico de datos promedio trata con cargas de datos diariamente. Algunos dicen que más
del 60-70% del tiempo se gasta en la limpieza, el intercambio de información y el traslado de
datos a un formato adecuado, de modo que se puedan aplicar modelos de aprendizaje
automático a esos datos. Esta publicación se centra en la segunda parte, es decir, en la
aplicación de modelos de aprendizaje automático, incluidos los pasos de
preprocesamiento. Los temas tratados en esta publicación son el resultado de más de cien
competencias de aprendizaje automático en las que he participado. Cabe señalar que la
discusión aquí es muy general pero muy útil y también puede haber métodos muy
complicados que existen y Son practicados por profesionales.
Datos
Antes de aplicar los modelos de aprendizaje automático, los datos deben convertirse a una
forma tabular. Todo este proceso es el proceso más lento y difícil y se describe en la siguiente
figura.
Los modelos de aprendizaje automático se aplican a los datos tabulares. Los datos tabulares
son la forma más común de representar datos en el aprendizaje automático o la minería de
datos. Tenemos una tabla de datos, filas con diferentes muestras de los datos o X y etiquetas,
y. Las etiquetas pueden ser de una sola columna o de varias columnas, según el tipo de
problema. Vamos a denotar los datos por X y las etiquetas por y.
Tipos de etiquetas
Las etiquetas definen el problema y pueden ser de diferentes tipos, tales como:
Columna única, valores binarios (problema de clasificación, una muestra pertenece a una
sola clase y solo hay dos clases)
Columna única, valores reales (problema de regresión, predicción de un solo valor)
Múltiples columnas, valores binarios (problema de clasificación, una muestra pertenece a
una clase, pero hay más de dos clases)
Columna múltiple, valores reales (problema de regresión, predicción de valores múltiples)
Y multilabel (problema de clasificación, una muestra puede pertenecer a varias clases)
Métricas de evaluación
Para cualquier tipo de problema de aprendizaje automático, debemos saber cómo vamos a
evaluar nuestros resultados o cuál es la métrica u objetivo de la evaluación. Por ejemplo, en el
caso de un problema de clasificación binaria sesgada, generalmente elegimos el área bajo la
curva de características operativas del receptor (ROC AUC o simplemente AUC). En el caso
de problemas de clasificación de múltiples etiquetas o clases múltiples, generalmente
elegimos la pérdida de registro multiclase categórica o entremedio multiclase y el error
cuadrático medio en caso de problemas de regresión.
No voy a entrar en detalles de las diferentes métricas de evaluación, ya que podemos tener
muchos tipos diferentes, dependiendo del problema.
Las bibliotecas
Para comenzar con las bibliotecas de aprendizaje automático, instale primero las básicas y las
más importantes, por ejemplo, numpy y scipy.
Para ver y hacer operaciones sobre datos: pandas ( http://pandas.pydata.org/ )
Para todo tipo de modelos de aprendizaje automático: scikit-learn ( http://scikit-
learn.org/stable/ )
La mejor biblioteca de mejora de gradiente: xgboost ( https://github.com/dmlc/xgboost )
Para redes neuronales: keras ( http://keras.io/ )
Para trazar datos: matplotlib ( http://matplotlib.org/ )
Para monitorear el progreso: tqdm ( https://pypi.python.org/pypi/tqdm )
En el marco que se muestra arriba, las líneas rosadas representan las rutas más comunes
seguidas. Una vez que hemos extraído y reducido los datos a un formato tabular, podemos
continuar con la construcción de modelos de aprendizaje automático.
El primer paso es la identificación del problema. Esto se puede hacer mirando las
etiquetas. Uno debe saber si el problema es una clasificación binaria, una clasificación multi-
clase o multi-etiqueta o un problema de regresión. Una vez que hemos identificado el
problema, dividimos los datos en dos partes diferentes, un conjunto de entrenamiento y un
conjunto de validación como se muestra en la siguiente figura.
La división de los datos en conjuntos de capacitación y validación "debe" realizarse de
acuerdo con las etiquetas. En caso de cualquier tipo de problema de clasificación, use la
división estratificada. En Python, puedes hacer esto usando scikit-learn muy fácilmente.
En caso de una tarea de regresión, una simple división K-Fold debería ser suficiente. Sin
embargo, existen algunos métodos complejos que tienden a mantener la distribución de las
etiquetas para el entrenamiento y el conjunto de validación, y esto se deja como un ejercicio
para el lector.
He elegido el tamaño de evaluación o el tamaño del conjunto de validación como el 10% de
los datos completos en los ejemplos anteriores, pero se puede elegir este valor de acuerdo
con el tamaño de los datos que tienen.
Una vez realizada la división de los datos, deje estos datos y no los toque. Cualquier
operación que se aplique en el conjunto de entrenamiento debe guardarse y luego aplicarse al
conjunto de validación. El conjunto de validación, en cualquier caso, no debe unirse al
conjunto de entrenamiento. Al hacerlo, obtendrás muy buenos puntajes de evaluación y harás
feliz al usuario, pero en su lugar, él / ella estará construyendo un modelo inútil con un
overfitting muy alto.
El siguiente paso es la identificación de diferentes variables en los datos. Usualmente hay tres
tipos de variables con las que tratamos. A saber, variables numéricas, variables categóricas y
variables con texto dentro de ellas. Tomemos un ejemplo del popular conjunto de datos Titanic
( https://www.kaggle.com/c/titanic/data ).
Aquí, la supervivencia es la etiqueta. Ya hemos separado las etiquetas de los datos de
entrenamiento en el paso anterior. Entonces, tenemos pclass, sexo, embarcado. Estas
variables tienen diferentes niveles y por lo tanto son variables categóricas. Variables como la
edad, sibsp, parch, etc. son variables numéricas. El nombre es una variable con datos de
texto, pero no creo que sea una variable útil para predecir la supervivencia.
Separa primero las variables numéricas. Estas variables no necesitan ningún tipo de
procesamiento y, por lo tanto, podemos comenzar a aplicar los modelos de normalización y
aprendizaje automático a estas variables.
Recuerde convertir primero las categorías a números utilizando LabelEncoder antes de aplicar
OneHotEncoder en él.
Como los datos de Titanic no tienen un buen ejemplo de variables de texto, formulemos una
regla general sobre el manejo de variables de texto. Podemos combinar todas las variables de
texto en una sola y luego usar algunos algoritmos que funcionan con datos de texto y los
convierten en números.
o,
El TfidfVectorizer funciona mejor que los conteos la mayoría del tiempo y he visto que los
siguientes parámetros para TfidfVectorizer funcionan casi todo el tiempo.
Una vez que hemos apilado las características, podemos comenzar a aplicar modelos de
aprendizaje automático. En esta etapa, solo los modelos a los que debe ir deben ser modelos
basados en conjuntos de árboles. Estos modelos incluyen:
RandomForestClassifier
RandomForestRegressor
ExtraTreesClassifier
ExtraTreesRegressor
XGBClassifier
XGBRegressor
Si los pasos anteriores dan un "buen" modelo, podemos optar por la optimización de los
hiperparámetros y, en caso contrario, seguir los siguientes pasos y mejorar nuestro modelo.
En aras de la simplicidad, dejaremos de lado las transformaciones de LDA y QDA. Para datos
de alta dimensión, generalmente se usa PCA para descomponer los datos. Para las imágenes,
comience con 10-15 componentes y aumente este número siempre que la calidad del
resultado mejore sustancialmente. Para otro tipo de datos, seleccionamos 50-60 componentes
inicialmente (tendemos a evitar la PCA siempre que podamos manejar los datos numéricos tal
como están).
Para los datos de texto, después de la conversión de texto en matriz dispersa, vaya a
Descomposición de valor singular (SVD). Una variación de la SVD llamada TruncatedSVD se
puede encontrar en scikit-learn.
El número de componentes SVD que generalmente funcionan para TF-IDF o conteos está
entre 120-200. Cualquier número por encima de esto podría mejorar el rendimiento, pero no
de manera sustancial y tiene el costo de la potencia de cálculo.
Hay varias formas en que se puede lograr la selección de características. Una de las formas
más comunes es la selección codiciosa de funciones (hacia adelante o hacia atrás). En la
selección de características codiciosas, elegimos una característica, entrenamos un modelo y
evaluamos el rendimiento del modelo en una métrica de evaluación fija. Seguimos agregando
y eliminando funciones una a una y registrando el rendimiento del modelo en cada
paso. Luego seleccionamos las características que tienen la mejor puntuación de
evaluación. Una implementación de la selección de características codiciosas con AUC como
métrica de evaluación se puede encontrar
aquí: https://github.com/abhishekkrthakur/greedyFeatureSelection . Se debe tener en cuenta
que esta implementación no es perfecta y se debe cambiar / modificar de acuerdo con los
requisitos.
Otros métodos más rápidos de selección de características incluyen seleccionar las mejores
características de un modelo. Podemos mirar los coeficientes de un modelo logit o podemos
entrenar un bosque aleatorio para seleccionar las mejores características y luego usarlas con
otros modelos de aprendizaje automático.
Aquí, usamos chi2 junto con SelectKBest para seleccionar 20 funciones de los datos. Esto
también se convierte en un hiperparámetro que queremos optimizar para mejorar el resultado
de nuestros modelos de aprendizaje automático.
No olvide descargar cualquier tipo de transformador que use en todos los pasos. Los
necesitará para evaluar el rendimiento en el conjunto de validación.
Clasificación :
Bosque aleatorio
GBM
Regresión logística
Ingenuo bayes
Máquinas de vectores de soporte
k-vecinos más cercanos
Regresión
Bosque aleatorio
GBM
Regresión lineal
Cresta
Lazo
RVS
¿Qué parámetros debo optimizar? ¿Cómo elijo los parámetros más cercanos a los
mejores? Estas son algunas preguntas que la gente hace la mayor parte del tiempo. No se
pueden obtener respuestas a estas preguntas sin experiencia con diferentes modelos y
parámetros en una gran cantidad de conjuntos de datos. Además, las personas que tienen
experiencia no están dispuestas a compartir sus secretos. Afortunadamente, también tengo
bastante experiencia y estoy dispuesto a regalar algunas de las cosas.
Vamos a desglosar los hiperparámetros, modelo sabio:
RS * = No puedo decir acerca de los valores correctos, vaya a la búsqueda aleatoria en estos
hiperparámetros.
Ponte en contacto conmigo para cualquier duda: abhishek4 [at] gmail [dot] com
Bio