Sei sulla pagina 1di 120

Data Sciencia Estadística

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. ⠀

.⠀

Un par de puntos que me gustaría hacer: ⠀

. - Una herramienta no es una estrategia

. - No todas las decisiones deben basarse en datos, aún puede tomar decisiones estratégicas en su
organización

. - No gaste los recursos para probar algo si no va a resultar en una decisió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.

Tutorial de ciencia de datos: análisis del conjunto


de datos de Google Play Store
Presentación ganadora - Diciembre Data Festival 2018

Internet es una verdadera mina de oro de datos. Los sitios de


comercio electrónico y de revisión están llenos de una gran
cantidad de datos sin explotar con un potencial prominente
para convertirlos en información significativa que puede
ayudar a tomar decisiones sólidas. Aquí, exploramos el uso de
la ciencia de la información y las técnicas de aprendizaje
automático en los datos recuperados de una de esas vías en
Internet, Google Play Store .

Detalles del conjunto de datos:


Los datos de aplicaciones de Play Store tienen un enorme
potencial para impulsar el éxito de las empresas que hacen
aplicaciones. Se puede obtener información procesable para
que los desarrolladores trabajen y capturen el mercado de
Android. El conjunto de datos se elige de Kaggle . Se trata de
los datos web raspados de las aplicaciones Play Store de 10k
para analizar el mercado de Android. Se compone de un total
de 10841 filas y 13 columnas.

Demasiados datos para analizar, necesitamos ir más profundo

Basta con mirar la belleza de los datos ... Es poderoso


Las columnas del conjunto de datos son las siguientes:
1) Aplicación (Nombre)
2) Categoría (App)
3) Calificación (App)
4) Opiniones (Usuario)
5) Tamaño (App)
6) Instala (App)
7) Tipo (Gratis / Pagado)
8) Precio (App)
9) Clasificación de contenido (todos / adolescentes / adultos)
10) Géneros (Categoría Detallada)
11) Última actualización (App)
12) Versión actual (App)
13) Versión de Android (Soporte)

Análisis exploratorio de datos:

Algunas observaciones clave a primera vista incluyen cómo se


puede mejorar el rendimiento de la aplicación a partir de las
revisiones obtenidas y los diferentes patrones que se podrían
encontrar para obtener más valores empresariales de la
misma.
Ahora, comenzaremos a implementar los procedimientos
importando bibliotecas:

importar pandas como pd


importar numpy como np
desde sklearn.preprocessing importar LabelEncoder
desde sklearn.impute importar SimpleImputer
desde sklearn.ensemble importar RandomForestRegressor
desde sklearn.metrics importar meanestestasascasascasas
de las costillas en la que se encuentran las
partes de la vista.

La biblioteca "sklearn" ofrece muchos algoritmos para


implementar técnicas de aprendizaje automático en diferentes
problemas.

# Leyendo el archivo csv


df = pd.read_csv ('googleplaystore.csv')

Lo más crítico de lo que se pueden obtener patrones son los


datos. Puede ser una sola revisión o un paquete de
ellos. Cualquiera que sea la información que ingrese, podría
usarse para extraer valor de ella. Los datos también vienen con
valores inesperados, que deben manejarse antes de que afecten
el rendimiento de los modelos entrenados que predicen el
resultado.

Este es el primer paso para limpiar los datos que harán que los
resultados sean "más" precisos.

Al encontrar todos los valores únicos de cada fila, se pueden


identificar los valores inapropiados. Luego se pueden usar
diferentes métodos para eliminarlos o cambiar esos valores en
consecuencia para usarlos para hacer mejores
predicciones. Como dice el proverbio diciendo:
“Cuantos más datos tengamos, más probabilidades
tendremos de ahogarnos”. - Nassim Taleb

No solo nos interesan los datos en bruto, sino también los


datos a partir de los cuales se pueden extraer valiosos
conocimientos. Para hacerlo, echemos un vistazo a otro
proverbio.
"Más datos superan a los algoritmos inteligentes, pero
mejores datos superan más datos". - Peter Norvig

Limpieza de datos
Dicho esto, aquí están los diversos pasos tomados para limpiar
los datos:

# Limpieza de datos para la columna "Tamaño"


df ['Tamaño'] = df ['Tamaño']. Map (lambda x: x.rstrip ('M'))
df ['Tamaño'] = df ['Tamaño']. map (lambda x: str (round
((float (x.rstrip ('k')) / 1024), 1)) si x [-1] == 'k' else
x)
df ['Size'] = df ['Tamaño']. Map (lambda x: np.nan si
x.startswith ('Varies') else x)
# Limpieza de datos para la columna "Instalaciones"
df ['Instalaciones'] = df ['Instalaciones']. Map (lambda x:
x.rstrip ('+'))
df ['Instalaciones'] = df ['Instalaciones']. map (lambda x:
'' .join (x.split (',')))
# Limpieza de datos para la columna "Precio"
df ['Precio'] = df ['Precio']. Map (lambda x: x.lstrip ('$').
Rstrip ())
# Fila 10472 eliminada debido al valor faltante de la
categoría
df.drop (df.index [10472], inplace = True)
# Fila [7312,8266] eliminada debido al valor "Sin calificar"
en la Clasificación de contenido
df.drop (df.index [[7312,8266]], inplace = True)

Los datos en bruto pueden tener una clasificación


aleatoria. Para resolver esto, utilizaremos:
# Ordenar por "Category"
df.sort_values ("Category", inplace = True)

Es necesario hacer una nota de que todos y cada uno de los


datos en bruto pueden llevar a un resultado más preciso. El
conjunto de datos actual contiene valores que están en el
formato de cadena. Para resolver un problema de regresión,
debemos convertir las cadenas a un formato numérico. Para
ello, procederemos de la siguiente manera:

# Etiqueta que codifica


lb_make = LabelEncoder ()
# Crear columna para "numérico" Clasificación de contenido
df ["Clasificación de contenido NUM"] =
lb_make.fit_transform (df ["Clasificación de contenido"])
# Formulario dicitonario para Clasificación de contenido y
valores numéricos
dict_content_rating = {"Adultos solo mayores de 18 años": 0,
"Todos": 1, "Todos 10+": 2, "Para mayores de 17 años": 3,
"Adolescentes": 4}
# Valor numérico para la Clasificación de contenido
'' '
Solo adultos 18+ = 0
Todos = 1
Todos 10+ = 2 Adulto
17+ = 3
Adolescentes = 4
' ''
# Crear columna para la categoría "numérica"
df ["Category NUM"] = lb_make.fit_transform (df
["Category"])
# Forma dicitonary para Categoría y valores numéricos
dict_category = {}
val = 0
para i en df ["Category"].
Unique (): dict_category [i] = val
val + = 1
# Valor numérico de la categoría
'''
ART_AND_DESIGN = 0
AUTO_AND_VEHICLES = 1
BEAUTY = 2
BOOKS_AND_REFERENCE = 3
BUSINESS = 4
COMICS = 5
COMUNICACIÓN = 6
DATING = 7
EDUCATION = 8
ENTRETENIMIENTO = 9
EVENTOS = 10
FAMILIA = 11
FINANZAS = 12
FOOD_AND_DRINK = 13
GAME = 14
HEALTH_AND_FITNESS = 15
HOUSE_AND_HOME = 16
LIBRARIES_AND_DEMO = 17
VIDA = 18
MAPS_AND_NAVIGATION = 19
MEDICAL = 20
NEWS_AND_MAGAZINES = 21
PARENTING = 22
PERSONALIZACIÓN = 23
FOTOGRAFÍA = 24
PRODUCTIVIDAD = 25
COMPRAS = 26
SOCIAL = 27
DEPORTES = 28
HERRAMIENTAS = 29
TRAVEL_AND_LOCAL = 30
VIDEO_PLAYERS = 31
CLIMA = 32
'' '

Ahora usaremos:

# Reemplace "NaN" con mean


imputer = SimpleImputer ()
df ['Rating'] = imputer.fit_transform (df [['Rating']])
# Redondeando el valor medio a 1 lugar decimal
df ['Rating']. Round (1)
df.dropna (axis = 0, inplace = True)

Eche un vistazo a la última línea de código (LoC) en el


fragmento de código anterior. En lugar de eliminar las filas que
contienen valores nulos, los hemos utilizado. Después de cada
transformación posible con el conjunto de datos, finalmente
hemos eliminado las filas que tienen valores nulos.

# Cambie el tipo de datos


df ['Comentarios'] = pd.to_numeric (df ['Comentarios'])
df ['Instalaciones'] = pd.to_numeric (df ['Instalaciones'])
df ['Precio'] = pd.to_numeric ( df ['Precio'])

Si bien el conjunto de datos puede parecer que tiene los tipos


de datos correctos para cada columna, debemos
verificarlo. Los tipos de datos inconsistentes crearán
problemas al tratar los problemas de regresión.

La visualización de datos se puede utilizar para echar un


vistazo a la distribución del mercado de aplicaciones. Esto
puede ayudar a las empresas de varias maneras. Las
aplicaciones podrían ser dirigidas a un mercado
particular. Una empresa podría analizar su enfoque para
ingresar a un mercado con más / moderados / menos
competidores. Si la aplicación tiene una característica
que puede cambiar el uso futuro de los usuarios, una
empresa comercial basada en datos podría lanzar la
aplicación en el mercado de más competidores para
obtener una mejor retención del mercado al confiar
en esa característica clave y hacer un mayor
desarrollo .

Otra estrategia podría ser construir algo diferente de las


aplicaciones normales y su uso como muestran los datos para
traer algo nuevo al mercado.

La visualización se puede utilizar para obtener detalles más


precisos de la división en categorías. Por ejemplo, si la
categoría es "Juego", consiste en "Arcade", "Tablero",
"Carreras", etc. Esto podría usarse para ingresar a un dominio
más específico en "Juego". Estas ideas pueden permitir a los
consultores obtener una visión más clara para enmarcar un
modelo de negocio al lanzar una nueva aplicación.

Las "Calificaciones" de la aplicación se podrían usar para


ver si las clasificaciones originales de la aplicación coinciden
con la calificación pronosticada para saber si la aplicación se
está desempeñando mejor o peor en comparación con otras
aplicaciones en Play Store.
"Tener tu propia liga es genial, pero cuando se trata de
negocios, debes ver algunas estadísticas".

Los valores nulos en el conjunto de datos, especialmente en la


columna de "Calificaciones", podrían reemplazarse por la
media, la mediana o alguna otra cosa. He utilizado un
"medio". Debido a que el valor a ser reemplazado puede ser
influenciado por Outlier, pero no hay valores atípicos en el
conjunto de datos para esta columna. Se eliminó un valor
atípico existente antes de reemplazar los valores nulos con la
media.

La representación pictórica se puede ver usando el


“código”.
Figura 1

La figura anterior consta de dos gráficos circulares agrupados


en uno.

El gráfico exterior consiste en la distribución de aplicaciones


por categorías. Y el gráfico interno consiste en el porcentaje de
aplicaciones gratuitas / pagas para esa categoría en particular.
Figura 2

La figura anterior consiste en un gráfico circular de la


categoría "JUEGO" que representa diferentes dominios.

Del mismo modo, la siguiente figura muestra un gráfico


circular de la categoría "FAMILIA".

NOTA: El gráfico se ve torpe. Se puede obtener una mejor vista


ampliando la trama y moviéndose alrededor de ella. Las
formas de hacer mejoras en esto se discuten en la parte
posterior de este informe.
Fig. 3
Los datos se encuentran en diferentes
formatos que deben convertirse a un
formato similar para utilizar los datos en la
construcción del modelo de aprendizaje
automático.

Los gráficos anteriores se pueden trazar utilizando el siguiente


código:

# Gráfico circular para la categoría


value_category = np.zeros (33)
labels_category = df ['Category']. Unique ()
para i en el rango (len (df ['Categoría'))):
try:
value = df ['Category'] [i]
num = dict_category [value]
value_category [num] = value_category [num] + 1
excepto:
pass
#
Recuentos gratuitos y pagados para cada categoría
free_paid_list = []
# 1st value = Free
# 2nd value = Paid
### Valores alternativos
para j en labels_category:
free_count = 0
paid_count = 0
para i en el rango (len (df ['Type'])):
try:
if df ['Category'] [i] == j:
if df ['Type'] [i] == "Free":
free_count + = 1
if df ['Type'] [i] == "Pagado":
paid_count + = 1
excepto:
pass
free_paid_list.append (free_count)
free_paid_list.append (paid_count)
colors_free_paid = []
free_color = "# 00ff00" # GREEN color
paid_color = "# 0000ff" # BLUE color
para i en el rango (int (len (free_paid_list) / 2)):
colors_free_paid.append (free_color)
colors_free_paid.append (paid_color)
plt.axis ("igual")
plt.pie (value_category, labels = labels_category, radio =
1.5, autopct = '% 0.2f %%', rotatelabels = True, pctdistance
= 1.1, labeldistance = 1.2)
plt.pie (free_paid_list, colors = colors_free_paid, radius =
1.25, autopct = '% 0.2f %%', pctdistance = 1.0)
centre_circle = plt.Circle ((0,0), 1.0, color = 'black', fc =
'white')
fig = plt.gcf ()
fig.gca (). add_artist (centre_circle)
plt.tight_layout ()
plt.show ()
# Obtener valores posibles para JUEGO y FAMILIA en Géneros
list_games_genres = []
list_family_genres = []
para i en rango (len (df ['Category')):
try:
if df ['Category'] [i] == 'GAME ':
valor = df [' Géneros '] [i]
si el valor no está en list_games_genres:
list_games_genres.append (value)
si df [' Category '] [i] ==' FAMILY ':
value = df [' Genres '] [ i]
si el valor no está en list_family_genres:
list_family_genres.append (value)
excepto:
pass
value_games = np.zeros (len (list_games_genres))
labels_games = ordenados (list_games_genres)
value_family = np.zeros (len (list_family_genres))
labels_family = sorted (list_family_genres)
# Diccionario para juegos:
dict_games = {}
for i in range (len (labels_games)):
dict_games [labels_games [i]] = i
# Diccionario para familia
dict_family = {}
para i en rango (len (labels_family)):
dict_family [labels_family [i]] = i
# Gráfico circular para JUEGOS en Géneros
para i en rango (len (df ['Géneros'))):
intente:
si df ['Géneros'] [i] en labels_games:
value = df ['Géneros'] [i]
num = dict_games [valor]
value_games [num] = value_games [num] + 1
excepto:
pass
plt.axis ("equal")
plt.pie (value_games, labels = labels_games, radio = 1.5,
autopct = '% 0.2f %%', rotatelabels = True, pctdistance =
1.1, labeldistance = 1.2)
plt.show ()
# Gráfico circular para FAMILIA en Géneros
para i en rango (len (df ['Categoría'))):
intente:
si df ['Géneros'] [i] en labels_family:
value = df ['Géneros'] [i]
num = dict_family [valor]
value_family [num] = value_family [num] + 1
excepto:
pass
plt.axis ("equal")
plt.pie (value_family, labels = labels_family, radio = 1.5,
autopct = '% 0.2f %%', rotatelabels = True, pctdistance =
1.1, labeldistance = 1.2)
plt.show ()

NOTA: El código anterior puede parecer desordenado, en


realidad es una combinación de funciones y parámetros. Así
que respira hondo y repásalo una vez más. Estoy seguro de que
entenderá el fragmento de código.

Convertir nuestros datos en formularios


adecuados.
Tamaño: por ejemplo, el tamaño de la aplicación está en
formato de "cadena". Necesitamos convertirlo en un valor
numérico. Si el tamaño es "10M", entonces se eliminó 'M' para
obtener el valor numérico de '10'. Si el tamaño es "512k", que
representa el tamaño de la aplicación en kilobytes, la primera
'k' debería eliminarse y el tamaño debería convertirse en un
equivalente de 'megabytes'.

Instalaciones: el valor de las instalaciones está en formato


de "cadena". Contiene valores numéricos con comas. Debe ser
eliminado. Y también, el signo '+' debe eliminarse del final de
cada cadena.

Clasificación de categoría y contenido : La clasificación


de categoría y contenido consta de valores categóricos que
deben convertirse en valores numéricos si necesitamos realizar
una regresión. Por lo tanto, estos se convirtieron en valores
numéricos.
Precio: El precio está en formato “string”. Debemos eliminar
el signo de dólar de la cadena para convertirlo en forma
numérica.

Al analizar los datos, las CALIFICACIONES de la aplicación


se pueden concluir como el parámetro más importante que
desempeña un papel importante al describir el mejor
desempeño de la aplicación en comparación con las otras
aplicaciones en el mercado. También da pistas sobre qué tan
bien trabaja la compañía en la implementación de los
comentarios proporcionados por los usuarios. Después de
todo, los usuarios son la clave para las empresas modernas de
software.

LAS CALIFICACIONES dependen de varios factores. La


correlación entre estos se tratará en la siguiente parte de este
informe.

Planteamiento del problema:


Para predecir las calificaciones de la aplicación (antes /
después de iniciarla en Play Store).

Esto es claramente un problema de regresión.

Ya veo lo que me dices.


Los factores que requieren atención para resolver este
problema son,

1) Categoría

2) Opiniones

3) Tamaño

4) Instala

5) precio

6) Clasificación de contenido

Aquí, Categoría y Clasificación de Contenido son valores


categóricos. Entonces, en lugar de estos, usaremos "Categoría
NUM" y "Clasificación de contenido NUM" que contiene un
mapeo numérico.

Al tomar los valores de estas columnas en la cuenta,


obtendremos una predicción de "Calificación" de la
aplicación. La calificación se puede obtener proporcionando
los valores actuales y comparando el valor predicho y el valor
original para obtener una visión general de si la aplicación está
funcionando mejor o peor de lo esperado.

# 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)

Si queremos predecir qué tan bien puede funcionar la


aplicación antes de lanzarla en Play Store, podríamos tomar
algunos números aleatorios como parámetros. Y luego
compare diferentes parámetros, es decir, si obtenemos las
mismas calificaciones para las instalaciones, pero muchas
menos revisiones, llegamos a saber que debemos hacer algo
para obtener comentarios del usuario, ya que es necesario
mejorar la aplicación.

Modelo de aprendizaje automático:


El modelo utilizado para entrenar el conjunto de datos es
el "Regresor de bosque aleatorio" .

El conjunto de datos se dividió en datos de entrenamiento y


pruebas y con la ayuda de una función, el "error absoluto
medio" se midió la precisión.

El modelo da opciones para sintonizar. Se conoce como


hiperajuste de nuestro modelo para predecir un mejor
resultado.

Se usaron diferentes parámetros para obtener el menor error.

Otro enfoque utilizado para obtener un mejor resultado es


entrenar el modelo varias veces y luego tomar la mediana del
mismo. Aunque tomará un poco más de tiempo, se pueden
obtener resultados precisos haciendo lo mismo.

# Loop se usa para obtener un resultado más generalizado


total_sum = []
para i en el rango (10):
# Hipertuning de parámetros para una mejor predicción
forest_model = RandomForestRegressor (n_estimators = 100,
max_features = 3, min_samples_leaf = 10)
forest_model.fit (X, y)
# Para propósitos de prueba
# forest_model.fit (train_X, train_y)
# Pase valores para obtener predicción para calificaciones
# 1er valor = Categoría NUM
# 2do valor = Reseñas
# 3er valor = Tamaño
# 4to valor = Instalaciones
# 5to valor = Precio
# 6to valor = NUM de clasificación de contenido
forest_pred = forest_model.predict
([[4,100000,20,1000000,5,1]])
total_sum.append (forest_pred)
# Para propósitos de prueba
#forest_pred = forest_model.predict (test_X)
#print (mean_absolute_error (forest_pred, test_y))

NOTA: Cada declaración debajo del bucle for es parte de él.

Finalmente, imprimiremos el resultado:

imprimir (redondear (np.median (total_sum), 2))

Como se mencionó anteriormente, después de usar


mean_absolute_error, el error es "0.3". Por ejemplo, si la
calificación real de la aplicación es "4.0", entonces las
calificaciones pronosticadas podrían caer en el rango [3.7.4.3].

NOTA: Para ver el resultado, necesitamos pasar algunos


parámetros. Estos parámetros se mencionan en el fragmento
de código anterior. Esto da una idea general de antemano
sobre cómo puede funcionar la aplicación.
Conclusión y trabajo futuro:
El conjunto de datos contiene inmensas posibilidades para
mejorar los valores empresariales y tener un impacto
positivo. No se limita al problema tomado en consideración
para este proyecto. Se pueden explorar muchas otras
posibilidades interesantes utilizando este conjunto de datos.

El trabajo futuro puede incluir

 Optimización de los gráficos circulares mostrados arriba, es


decir, Fig. 3. Hay múltiples dominios en la misma
porción. Los múltiples dominios podrían separarse y
agregarse al mismo campo para obtener una versión más
detallada de este gráfico circular.
 Predicción del número de revisiones e instalaciones
mediante el uso del modelo de regresión.
 Identificando las categorías y estadísticas de las
aplicaciones más instaladas.
 Explorando la correlación entre el tamaño de la aplicación,
la versión de Android, etc. sobre el número de
instalaciones.

Las formas en que se pueden hacer las preguntas varían, al


igual que la forma de abordar un problema. Solo el que ha sido
observado y probado minuciosamente proporcionará
resultados dignos de confianza.

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.

Se proporcionó una guía de material informativo que incluía


varios recursos para ayudar en la ciencia de los datos de
autoaprendizaje en un mes o dos.

La guía se puede descargar aquí: http://bit.ly/self-learning-


datascience

Los 5 conceptos estadísticos


básicos que los científicos
necesitan saber

George SeifSeguir

21 de octubre de 2018

Las estadísticas pueden ser una herramienta poderosa cuando


se realiza el arte de Data Science (DS). Desde una vista de alto
nivel, las estadísticas son el uso de las matemáticas para
realizar un análisis técnico de los datos. Una visualización
básica, como un gráfico de barras, puede proporcionarle
información de alto nivel, pero con las estadísticas podemos
operar con los datos de una manera mucho más orientada y
orientada a la información. Las matemáticas involucradas nos
ayudan a llegar a conclusiones concretas sobre nuestros datos
en lugar de solo hacer una estimación.

Mediante el uso de estadísticas, podemos obtener información


más profunda y detallada sobre cómo se estructuran
exactamente nuestros datos y, en función de esa estructura,
cómo podemos aplicar de manera óptima otras técnicas de
ciencia de datos para obtener aún más información. ¡Hoy
vamos a ver 5 conceptos estadísticos básicos que los científicos
de datos necesitan saber y cómo pueden aplicarse de manera
más efectiva!

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

La línea en el medio es el valor mediano de los datos. La


mediana se usa sobre la media, ya que es más robusta a valores
atípicos. El primer cuartil es esencialmente el percentil 25; Es
decir, el 25% de los puntos en los datos caen por debajo de ese
valor. El tercer cuartil es el percentil 75; Es decir, el 75% de los
puntos en los datos caen por debajo de ese valor. Los valores
mínimo y máximo representan los extremos superior e inferior
de nuestro rango de datos.

Un diagrama de caja ilustra perfectamente lo que podemos


hacer con características estadísticas básicas:

 Cuando el diagrama de caja es corto , implica que muchos


de sus puntos de datos son similares, ya que hay muchos
valores en un rango pequeño
 Cuando el diagrama de caja es alto , implica que muchos
de sus puntos de datos son bastante diferentes, ya que los
valores se distribuyen en un amplio rango
 Si el valor de la mediana está más cerca del final, entonces
sabemos que la mayoría de los datos tienen valores más
bajos. Si el valor de la mediana está más cerca de la parte
superior, entonces sabemos que la mayoría de los datos
tienen valores más altos. Básicamente, si la línea mediana
no está en el centro de la caja, entonces es una indicación
de datos sesgados .
 ¿Son los bigotes muy largos ? Eso significa que sus datos
tienen una desviación estándar y
una varianza altas , es decir, los valores están dispersos y
son muy variables. Si tiene bigotes largos en un lado de la
caja pero no en el otro, entonces sus datos pueden variar
mucho solo en una dirección.

¡Toda esa información de unas pocas características


estadísticas simples que son fáciles de calcular! Pruébelos
cuando necesite una vista rápida pero informativa de sus
datos.

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)

 Una distribución uniforme es la más básica de las 3 que


mostramos aquí. Tiene un solo valor que solo se produce en
un cierto rango, mientras que cualquier cosa fuera de ese
rango es solo 0. Es una distribución "on u off". También
podemos considerarlo como una indicación de una variable
categórica con 2 categorías: 0 o el valor. Su variable
categórica puede tener varios valores distintos de 0, pero
aún podemos visualizarla de la misma forma que una
función por partes de múltiples distribuciones uniformes.
 Una distribución normal , comúnmente conocida
como distribucióngaussiana , se define específicamente
por su media y desviación estándar. El valor medio
desplaza la distribución espacialmente y la desviación
estándar controla la dispersión. La distinción de
importación de otras distribuciones (por ejemplo, poisson)
es que la desviación estándar es la misma en todas las
direcciones. Por lo tanto, con una distribución gaussiana,
conocemos el valor promedio de nuestro conjunto de datos,
así como la difusión de los datos, es decir, si se distribuye
en un amplio rango o está muy concentrado en unos pocos
valores.
 Una distribución de Poisson es similar a la normal pero
con un factor de sesgo agregado . Con un valor bajo para la
asimetría, una distribución de poisson tendrá una
distribución relativamente uniforme en todas las
direcciones al igual que la Normal. Pero cuando el valor del
sesgo es alto en magnitud, entonces la difusión de nuestros
datos será diferente en diferentes direcciones; en una
dirección estará muy extendido y en la otra estará
altamente concentrado.

Hay muchas más distribuciones en las que puedes profundizar,


pero esas 3 ya nos dan mucho valor. Podemos ver e interpretar
rápidamente nuestras variables categóricas con una
distribución uniforme. Si vemos una Distribución Gaussiana,
sabemos que hay muchos algoritmos que, por defecto,
funcionarán bien específicamente con Gauss, por lo que
deberíamos apostar por ellos. Y con Poisson veremos que
debemos tener especial cuidado y elegir un algoritmo que sea
robusto a las variaciones en la dispersión espacial.

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

El cubo representa nuestro conjunto de datos y tiene 3


dimensiones con un total de 1000 puntos. Ahora, con la
computación actual, los 1000 puntos son fáciles de procesar,
pero a mayor escala, tendríamos problemas. Sin embargo, con
sólo mirar a nuestros datos desde un 2-dimensional punto de
vista, por ejemplo, de un lado del cubo, podemos ver que es
bastante fácil de dividir todos los colores desde ese
ángulo. Con la reducción de la
dimensionalidad, proyectaríamos los datos 3D en un plano
2D. Esto reduce efectivamente la cantidad de puntos que
necesitamos calcular a 100, ¡un gran ahorro computacional!

Otra forma en que podemos hacer la reducción de la


dimensionalidad es a través de la poda de características . Con
la eliminación de características, básicamente queremos
eliminar cualquier característica que veamos que no será
importante para nuestro análisis. Por ejemplo, después de
explorar un conjunto de datos, podemos encontrar que de las
10 características, 7 de ellas tienen una alta correlación con la
salida, pero las otras 3 tienen una correlación muy
baja. Entonces, esas 3 características de baja correlación
probablemente no valen la pena el cálculo y podríamos
simplemente eliminarlas de nuestro análisis sin dañar la
salida.

La técnica de estadísticas más común utilizada para la


reducción de la dimensionalidad es PCA, que esencialmente
crea representaciones vectoriales de características que
muestran cuán importantes son para la salida, es decir, su
correlación. La PCA se puede usar para hacer los dos estilos de
reducción de dimensionalidad descritos anteriormente. Lea
más sobre esto en este tutorial .

Sobre y bajo muestreo


Sobre y bajo muestreo son técnicas utilizadas para problemas
de clasificación. A veces, nuestro conjunto de datos de
clasificación puede estar demasiado inclinado hacia un
lado. Por ejemplo, tenemos 2000 ejemplos para la clase 1, pero
solo 200 para la clase 2. ¡Eso eliminará muchas de las técnicas
de aprendizaje automático que probamos y usamos para
modelar los datos y hacer predicciones! Nuestro sobre y bajo
muestreo puede combatir eso. Echa un vistazo a la gráfica de
abajo para ver una ilustración.
Debajo y sobre muestreo

Tanto en el lado izquierdo como en el derecho de la imagen


anterior, nuestra clase azul tiene muchas más muestras que la
clase naranja. En este caso, tenemos 2 opciones de
preprocesamiento que pueden ayudar en la capacitación de
nuestros modelos de aprendizaje automático.

El submuestreo significa que seleccionaremos solo algunos de


los datos de la clase mayoritaria, y usaremos tantos ejemplos
como la clase minoritaria. Esta selección debe hacerse para
mantener la distribución de probabilidad de la clase. ¡Eso fue
fácil! ¡Acabamos de igualar nuestro conjunto de datos al tomar
menos muestras!

Sobremuestreo significa que crearemos copias de nuestra


clase minoritaria para tener el mismo número de ejemplos que
tiene la clase mayoritaria. Las copias se harán de tal manera
que se mantenga la distribución de la clase
minoritaria. ¡Acabamos de igualar nuestro conjunto de datos
sin obtener más datos!
Estadística Bayesiana
Para comprender completamente por qué utilizamos las
estadísticas bayesianas, primero debemos comprender
dónde fallan las estadísticas de frecuencia . Las estadísticas de
frecuencia son el tipo de estadísticas que la mayoría de las
personas piensan cuando escuchan la palabra
"probabilidad". Implica aplicar las matemáticas para analizar
la probabilidad de que ocurra algún evento, donde
específicamente los únicos datos que computamos son
los datos anteriores .
Veamos un ejemplo. Supongamos que te di un dado y te
pregunté cuáles eran las posibilidades de que obtuvieras un 6.
Bueno, la mayoría de la gente diría que es 1 de cada 6. De
hecho, si hiciéramos un análisis de frecuencia, veríamos
algunos datos en los que alguien lanzaría un análisis. Muere
10.000 veces y calcula la frecuencia de cada número
lanzado; ¡Aproximadamente saldría a 1 en 6!

Pero lo que si alguien fuera a decir que la matriz específica que


fue dado a quefue cargado a la tierra siempre el 6? Como el
análisis de frecuencia solo tiene en cuenta los datos
anteriores , no se tienen en cuenta las pruebas que se le
proporcionaron sobre el dado que se está cargando .

Estadística bayesiana hace toman en cuenta esta


evidencia. Podemos ilustrar esto echando un vistazo al
teorema de Baye:

Theoram de Baye

La probabilidad P (H) en nuestra ecuación es básicamente


nuestro análisis de frecuencia; dados nuestros datos
anteriores, ¿cuál es la probabilidad de que ocurra nuestro
evento? La P (E | H) en nuestra ecuación se
denomina probabilidad y es esencialmente la probabilidad de
que nuestra evidencia sea correcta, dada la información de
nuestro análisis de frecuencia. Por ejemplo, si quisieras tirar el
dado 10.000 veces, y los primeros 1000 tiros obtuviste los 6,
¡empezarías a estar bastante seguro de que ese dado está
cargado! La P (E)es la probabilidad de que la evidencia real sea
verdadera. Si te dijera que el dado está cargado, ¿puedes
confiar en mí y decir que realmente está cargado o crees que es
un truco?

Si nuestro análisis de frecuencia es muy bueno, tendrá cierto


peso al decir que sí, nuestra suposición de 6 es cierta. Al
mismo tiempo, tomamos en cuenta nuestra evidencia del dado
cargado, si es cierto o no en función de su propio análisis
previo y de frecuencia. Como se puede ver en el diseño de la
ecuación, las estadísticas bayesianas tienen todo en
cuenta. Úselo siempre que sienta que sus datos anteriores no
serán una buena representación de sus datos y resultados
futuros.

¿Te gusta aprender?


¡Sígueme en Twitter donde publico todo acerca de lo mejor y lo
último en inteligencia artificial, tecnología y
ciencia! ¡Conéctate conmigo en LinkedIntambién!
 Ciencia de los datos
 Aprendizaje automático
 Inteligencia artificial
 Tecnología
 Hacia la ciencia de datos
12.6K aplausos
38

 Seguir

George Seif
Empollón certificado

 Seguir

Hacia la ciencia de datos


Compartiendo conceptos, ideas y códigos.

Más de Hacia la ciencia de datos

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

Seis recomendaciones para aspirantes a científicos de datos

Ben Weber

Mar 17

1.6K

Más de Hacia la ciencia de datos

Transformadores

Giuliano Giacaglia

Mar 10

2.6K
Respuestas
Escribe una respuesta ...

Aplausos de George Seif (autor)

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.

Gran artículo, pero no olvide el problema de los datos incompletos. La


incoherencia, la falta de datos o los datos atípicos son difíciles de
resolver; Especialmente tienes series de tiempo.
y mi mejor broma cubre que:
Hay dos tipos de científicos de datos: 1) Aquellos que pueden extrapolar
datos incompletos.

Sobre y bajo muestreo son técnicas utilizadas para problemas de clasificación. A


veces, nuestro conjunto de datos de clasificación puede estar demasiado
inclinado hacia un lado. Por ejemplo, tenemos 2000 examen ...

Gran artículo en general! Los conceptos están muy bien explicados.

Pero tengo que plantear la preocupación de que el submuestreo y el exceso de


muestreo se encuentran entre sus 5 principales conceptos estadísticos. Podrían
ser buenos trucos que la gente usa (¿con frecuencia?), Pero si lo estás usando
mucho, el problema real podría ser que estás usando el modelo estadístico
incorrecto.

Conceptos básicos de probabilidad


para Data Science explicados con
ejemplos
DISHASHREE GUPTA , 2 DE FEBRERO DE 2017

INICIA SESIÓN PARA MARCAR ESTE ARTÍCULO


Introducción
Estadísticamente, la probabilidad de que cualquiera de nosotros esté
aquí es tan pequeña que uno pensaría que el mero hecho de existir nos
mantendría a todos contentos de sorpresa.
- Lewis
Thomas
Para cualquiera que esté dando los primeros pasos en la ciencia de datos, Probabilidad es un
concepto que debe conocer. Los conceptos de la teoría de la probabilidad son la columna
vertebral de muchos conceptos importantes en la ciencia de los datos, como las estadísticas
inferenciales a las redes bayesianas. No sería erróneo decir que el viaje de dominar las
estadísticas comienza con probabilidad.

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.

He explicado cada concepto de manera simplista para evitar la sobrecarga de conceptos


matemáticos. Al final de la guía, te he dado dos desafíos divertidos y emocionantes. Ve a través
de ellos y publica tu respuesta en las secciones de comentarios. Veamos cuántos de ustedes
pueden responderlos correctamente.

¡Exploremos la probabilidad juntos!

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

¿Por qué necesitamos probabilidad?


En un mundo incierto, puede ser de gran ayuda saber y comprender las posibilidades de varios
eventos. Puedes planear las cosas en consecuencia. Si es probable que llueva, llevaría mi
paraguas. Si es probable que tenga diabetes en base a mis hábitos alimenticios, me haré una
prueba. Si es poco probable que mi cliente me pague una prima de renovación sin un recordatorio,
se lo recordaría.

Así que conocer la probabilidad podría ser muy beneficioso.

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.

Definamos X como el resultado de un lanzamiento de moneda.

X = resultado de un lanzamiento de moneda

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)

Y puede tomar valores = (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

Algunas cosas a tener en cuenta sobre las variables aleatorias:

 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.

3. Cálculo de la probabilidad por principio de conteo.


Digamos que fuiste a una feria. Hay un puesto jugando al juego de la rueda giratoria. Hay dos
colores distribuidos uniformemente en la rueda: rojo y verde. Si aterrizas en rojo, pierdes, si
aterrizas en verde ganas.

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.

¿Qué tan probable es que ganes ahora?

¡Sólo el 25%! Este 25% o .25 es la probabilidad de ganar.


Dos tiros de un dado.
El siguiente puesto es nuestro puesto de dados favorito, donde ganamos si obtenemos una suma
de 8 en dos tiros. A ver si tenemos más posibilidades de ganar aquí.

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 la probabilidad de cada número.

Hay 6 posibilidades en el primer lanzamiento (podemos obtener cualquier número) y 6 en el


segundo. Entonces el número total si las combinaciones serían 36.

Veamos cómo:

2 {(1,1)} => 1/36

3 {(1,2), (2,1)} => 2/36

4 {(2,2), (3,1), (1,3)} => 3/36

5 {(1,4), (4,1), (2,3), (3,2)} => 4/36

6 {(3,3), (1,5), (5,1), (2,4), (4,2)} => 5/36

7 {(1,6), (6,1), (2,5), (5,2), (3,4), (4,3)} => 6/36

8 {(2,6), (6,2), (3,5), (5,3), (4,4)} => 5/36

9 {(3,6), (6,3), (5,4), (4,5)} => 4/36

10 {(4,6), (6,4), (5,5)} => 3/36

11 {(5,6), (6,5)} => 2/36

12 {(6,6)} => 1/36

Entonces, la probabilidad de éxito aquí es 5/36 o aproximadamente 1 en 7, mientras que la falla


es 31/36. Entonces, a menos que el puesto me recompense 7x del dinero que apuesto a ganar, es
un mal juego participar.

Podemos escribir esto como:

 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.

Entendamos esto a través de un ejemplo interesante.

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.

¿Cuál es la probabilidad de que ganes la serie? ¿Es el 75% o es otra cosa?

Averigüemos. ¿Cuáles son los escenarios posibles al jugar 5 juegos?

WWWWW, WWWWL, WWWLL, WWLLL, WLLLL, LLLLL, LWWWW y así


sucesivamente ...
Entonces, para el primer juego, hay dos posibilidades, ya sea que gane o pierda, otra vez para el
segundo juego tenemos dos posibilidades. Suponiendo que el primer juego no tiene efecto en el
resultado del segundo: nadie se cansa, nadie se ve presionado después de perder, etc.

Así que definamos nuestra variable aleatoria X como un número de victorias en 5


juegos. Recuerda que la probabilidad de ganar es 0.75 y perder es 0.25. Supongamos que un
empate no sucede.

X = Número de victorias en 5 juegos

Así que el primer juego tiene 2 resultados: ganar y perder, el segundo nuevamente tiene 2 y así
sucesivamente.

Así que las posibilidades totales son 2 * 2 * 2 * 2 * 2 = 32

 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 ()

Entonces, la probabilidad de obtener k éxitos en n pistas Bernoulli viene dada por:

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]

Vamos a ver cómo viene esto.

 P (X = 2) denota la probabilidad de que gane 2 juegos. Entonces hay 5 C 2 () = 10 casos


en los que ganas 2 juegos. Por lo tanto, probabilidad = 10 * 0.75 * 0.75 * 0.25 * 0.25 *
0.25 = 0.088
 P (X = 3) denota la probabilidad de que gane 3 juegos. Entonces, hay 5 C 3 () = 10 casos
en los que ganas 3 juegos. Por lo tanto, probabilidad = 10 * 0.75 * 0.75 * 0.75 * 0.25 *
0.25 = 0.264
 Del mismo modo, P (X = 4) = 0.395
 P (X = 5) = 0.237

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.

La definición general de una distribución binomial es la distribución de probabilidad discreta


del número de éxitos en una secuencia de n ensayos independientes de Bernoulli (que tienen
solo sí / no o resultados verdaderos / falsos).

Si los eventos tienen la misma probabilidad de ocurrir, es decir, p = q = 0.5, la distribución de


probabilidad se parece en algo al gráfico siguiente. Aquí la probabilidad de éxito y fracaso es la
misma.

¿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.

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.

Vamos a señalar algunas cosas interesantes que sucedieron.


 Las probabilidades son altas para los valores medios de las variables aleatorias. Cuando
jugábamos 5 partidos de fútbol, la variable aleatoria (X = las victorias) podía tomar
valores entre 0 y 5. El valor medio es 2.5. La probabilidad es mayor para 2 y 3. Cuando
nos movemos hacia la curva continua, la probabilidad es mayor para la media exacta
 Las probabilidades son bajas a medida que nos alejamos de la media.

5. Variables aleatorias continuas.


Veamos algunos casos donde las variables aleatorias son continuas. Digamos que el hombre del
tiempo está tratando de medir la cantidad de lluvia que sucederá mañana.

Digamos que la precipitación probable es de alrededor de 2 cm. ¿Pero será exactamente 2


cm? Puede ser 2.001 o 2.000001 o 2.000000001 y un número infinito de valores
intermedios. Incluso nos es imposible medir si son exactamente 2 cm.

Entonces, calculamos la probabilidad de que sea, dentro de un rango. Calculamos la probabilidad


de que la lluvia esté en el rango de 2 cm a 2,01 cm. Será la suma de probabilidades para todos
los valores entre 2 y 2.01. El área bajo la función de densidad de probabilidad con los límites 2 y
2.01 nos dará eso.

La función de densidad de probabilidad puede o no ser simétrica.

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.

La fórmula de la función de densidad de probabilidad se puede escribir como:

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.

6. El teorema del límite central


Entonces, cuando tiene una gran cantidad de datos, puede confundirse cómo darle sentido. Es
difícil saber qué está pasando debajo de esto. Para abordar este problema, lo que hacemos es
tomar una pequeña parte de los datos y verlo. Pero no estaremos satisfechos con una sola
parte. Intentaríamos analizar varios fragmentos para estar seguros de los resultados.

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.

Nuevamente tomamos una muestra de unas 50 personas y calculamos la media y seguimos


haciendo eso varias veces. Ahora trazamos los medios de estas muestras.
Vemos que estos medios de muestra forman una distribución de frecuencia que parece muy
simétrica. La frecuencia en torno a la media de los datos reales es la más alta y se reduce
gradualmente a medida que nos alejamos de la media en ambos lados.

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 de probabilidad se acerca cada vez más a la simetría, cuando el tamaño de la


muestra que utilizamos para crear esos medios es muy grande. A medida que el tamaño de la
muestra se acerca al infinito, la distribución de probabilidad se convierte en una simetría perfecta
donde el centro de la curva es la media de la población. La curva se conoce como distribución
normal.

¿Qué es una distribución normal?


La distribución normal llamada informalmente como una curva de campana se ve así:

La ecuación de la distribución normal pasa a ser:


Aquí µ es la media de los datos, mientras que σ es la desviación estándar de los datos.

La distribución normal es perfectamente simétrica respecto a la media. Las probabilidades se


mueven de manera similar en ambas direcciones alrededor de la media. El área total debajo de la
curva es 1, ya que sumar todas las probabilidades posibles daría 1.

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.

Resumamos los puntos principales que vimos:

 El área bajo una función de densidad de probabilidad da la probabilidad de que la variable


aleatoria esté en ese rango.
 Si tengo datos de población y tomo muestras aleatorias de igual tamaño de los datos, las
medias muestrales se distribuyen aproximadamente con normalidad.
 Existe una gran probabilidad de que los medios estén alrededor de la media real de los
datos, que estén más lejos.
 Las distribuciones normales para las desviaciones estándar más altas son más planas en
comparación con las de las desviaciones estándar más bajas

7. Área bajo la distribución normal


Ahora, digamos que tengo un conjunto de datos de los niveles de colesterol de varios pacientes
y necesitamos calcular la probabilidad de cuántos pacientes están sanos.

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

Calculemos también la probabilidad de estar a 2 desviaciones estándar de la media. Digamos que


debemos advertir a los pacientes que se encuentran a dos desviaciones estándar.

Esto significa 150 + 30 y 150-30.

El rango de área a calcular ahora es de 120 a 180.

Para su sorpresa, el 95% de los valores caen en este rango.


Por lo tanto, la mayor parte de los datos se encuentra dentro de 2 desviaciones estándar de la
media. Por lo tanto, podemos decir con seguridad que es muy poco probable que los datos estén
a más de 2 desviaciones estándar de la media, solo un 5%.

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.

La distancia en términos de número de desviaciones estándar, el valor observado está lejos de la


media, es la puntuación estándar o la puntuación Z.

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.

Valor observado = µ + z σ [µ es la media y σ es la desviación estándar]

En nuestro ejemplo de colesterol, veamos dónde cae 172 en la distribución. Calcularemos la


puntuación Z para encontrar el porcentaje de personas que tienen colesterol inferior a 172.

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:

Reto 1: Contrariamente a la expectativa popular, ¿intenta calcular la probabilidad de obtener 50


caras y 50 colas con 100 tiradas de monedas justas? Esta expectativa es conocida como la falacia
del jugador! ¡Una respuesta aproximada sería suficiente!
Reto 2: intente con otro: en los Estados Unidos, el CI promedio es de 100, con una desviación
estándar de 15. ¿Qué porcentaje de la población esperaría tener un CI más de 120?

Publica tus respuestas en la sección de comentarios.

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

Respuesta del desafío 2 - 9.18%


Enfoque:
media poblacional = 100, SD = 15. Entonces z = (120-100) / 15 = 1.33. Use la tabla z y z =
1.33 corresponde a 0.9082, que es el área bajo la curva desde el infinito hasta 120. pero
necesitamos personas con iq mayor que 120, entonces 1-0.9082 = 0.0918 ==> 9.18%

Desafío 1: Sin embargo, es poco claro para mí.


podemos tener 100H, 99H1T, 98H2T, …… ..50H50T, 49H, 51T ………… 1H99T,
100T. Entonces n = 101.
p (Cabeza) = 0.5, P (Cola) = 0.5 El
evento de 50H50T ocurre 1. así que P (X = 1) = 101C1 x 0.5 ^ 1 x 0.5 ^ 100 = 3.98 * e-29
¿Puede aclarar aquí qué es? incorrecto en mi comprensión?

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%

Una guía completa para principiantes


del álgebra lineal para científicos de
datos
VIKAS KUMAR YADAV , 25 DE MAYO DE 2017

INICIA SESIÓN PARA MARCAR ESTE ARTÍCULO

Introducción
Una de las preguntas más comunes que recibimos en Analytics Vidhya es:

¿Cuántas matemáticas necesito para aprender a ser un científico de


datos?
A pesar de que la pregunta parece simple, no hay una respuesta simple para la pregunta. Por lo
general, decimos que necesita conocer estadísticas descriptivas e inferenciales básicas para
comenzar. Eso es bueno para empezar.

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

1. Motivación - ¿Por qué aprender Álgebra Lineal?


Me gustaría presentar 4 escenarios para mostrar por qué es importante aprender Álgebra Lineal,
si está aprendiendo Ciencia de Datos y Aprendizaje Automático.
Escenario 1:

¿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.

Entonces, ahora comprenderías la importancia del Álgebra Lineal en el aprendizaje


automático. Hemos visto imágenes, textos o cualquier información, en general, empleando
matrices para almacenar y procesar datos. Esto debería ser lo suficientemente motivador para
leer el material a continuación para comenzar a utilizar Álgebra Lineal. Esta es una guía
relativamente larga, pero construye Álgebra Lineal desde cero.
2. Representación de problemas en álgebra lineal.
Comencemos con un problema simple. Supongamos que el precio de 1 bola y 2 bateo o 2 bolas
y 1 bate es de 100 unidades. Necesitamos encontrar el precio de una pelota y un bate.

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.

Vamos a traducir esto en forma matemática.

2x + y = 100 ...........(1)

Del mismo modo, para la segunda condición-

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.

En términos generales, en el álgebra lineal los datos se representan en forma de ecuaciones


lineales. Estas ecuaciones lineales se representan a su vez en forma de matrices y vectores.

El número de variables y el número de ecuaciones pueden variar según la condición, pero la


representación es en forma de matrices y vectores.

2.1 Visualiza el problema


Generalmente es útil visualizar problemas de datos. Veamos si eso ayuda en este caso.

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

poner el valor de y en la ecuación (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.

Eso parece simple: vamos un paso más allá y exploremos.


2.2 Vamos a complicar el problema
Ahora, suponga que le dan un conjunto de tres condiciones con tres variables cada una como se
indica a continuación y se le pide que encuentre los valores de todas las variables. Resolvamos
el problema y veamos que pasa.

x+y+z=1.......(4)

2x+y=1......(5)

5x+3y+2z=4.......(6)

De la ecuación (4) obtenemos,

z=1-x-y....(7)

Sustituyendo el valor de zen la ecuación (6), obtenemos -

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 -

1. No hay intersección en absoluto.


2. Los planos se intersecan en una línea.
3. Pueden intersecarse en un plano.
4. Los tres planos se intersecan en un punto.

¿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.

Ahora continuemos con nuestro enfoque principal, es decir, Matrix.

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.

3.1 Términos relacionados con Matrix


Orden de la matriz : si una matriz tiene 3 filas y 4 columnas, el orden de la matriz es 3 * 4, es
decir, la fila * columna.

Matriz cuadrada : la matriz en la que el número de filas es igual al número de columnas.


Matriz diagonal : una matriz con todos los elementos no diagonales iguales a 0 se llama matriz
diagonal.

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.

Matriz de fila - Una matriz que consiste solo en fila.

Traza : es la suma de todos los elementos diagonales de una matriz cuadrada.

3.2 Operaciones básicas en matriz.


Juguemos con matrices y realicemos las capacidades de las operaciones matriciales.

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

Cij = Aij + Bij

Por ejemplo, tomemos dos matrices y las resolvamos.

A=

1 0

2 3
B=

4 -1

0 5

Entonces,

C=

5 -1

2 8

Observe que para obtener los elementos de la matriz C, he agregado A y B de manera


elemental, es decir, 1 a 4, 3 a 5 y así sucesivamente.

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]

Transposición - Transposición simplemente significa intercambiar el índice de fila y


columna. Por ejemplo-

A ij T = A ji

La transposición se utiliza en la implementación vectorizada de regresión lineal y logística.

Codigo en python

import numpy as np
import pandas as pd

#create a 3*3 matrix


A= np.arange(21,30).reshape(3,3)

#print the matrix


A

array ([[21, 22, 23],


[24, 25, 26],

[27, 28, 29]])

#take the transpose


A.transpose()

array ([[21, 24, 27],

[22, 25, 28],

[23, 26, 29]])

Multiplicación de matrices

La multiplicación de matrices es una de las operaciones más utilizadas en el álgebra


lineal. Aprenderemos a multiplicar dos matrices, así como a revisar sus importantes
propiedades.

Antes de aterrizar en los algoritmos, hay algunos puntos a tener en cuenta.

1. La multiplicación de dos matrices de órdenes i * j y j * k da como resultado una matriz


de orden i * k. Simplemente mantenga los índices externos para obtener los índices de
la matriz final.
2. Dos matrices serán compatibles para la multiplicación solo si el número de columnas de
la primera matriz y el número de filas de la segunda son iguales.
3. El tercer punto es que el orden de multiplicación importa.

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)

AB= array([[2250, 2316, 2382],

[2556, 2631, 2706],

[2862, 2946, 3030]]) B.dot(A)

BA= array([[2310, 2406, 2502],

[2526, 2631, 2736],

[2742, 2856, 2970]])


Entonces, ¿cómo obtuvimos 2250 como primer elemento de la matriz
AB? 2250=21*31+22*34+23*37. Del mismo modo, para otros elementos.

Note la diferencia entre AB y BA.

Propiedades de la multiplicación de matrices.

1. La multiplicación de matrices es asociativa siempre que las matrices dadas sean


compatibles para la multiplicación, es decir,

ABC = (AB)C = A(BC)

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)

array([[306108, 313056, 320004],

[347742, 355635, 363528],

[389376, 398214, 407052]])

temp2=A.dot((B.dot(C)))

array([[306108, 313056, 320004],

[347742, 355635, 363528],

[389376, 398214, 407052]])

2. La multiplicación de matrices no es conmutativa, es decir, AB y BA no son iguales. Hemos


verificado este resultado arriba.
La multiplicación de matrices se usa en regresión lineal y logística cuando calculamos el valor
de la variable de salida por el método de vector parametrizado. Como hemos aprendido los
conceptos básicos de las matrices, es hora de aplicarlas.

3.3 Representación de ecuaciones en forma matricial.


Déjame hacer algo emocionante para ti. Tome la ayuda del lápiz y el papel e intente encontrar
el valor de la multiplicación de matrices que se muestra a continuación

Se puede verificar muy fácilmente que la expresión contiene nuestras tres


ecuaciones. Nombraremos nuestras matrices como 'A', 'X' y 'Z'.

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.

1. La manipulación debe preservar la solución, es decir, la solución no debe alterarse al


imponer la manipulación.
2. La manipulación debe ser reversible.

Entonces, ¿qué son esas manipulaciones?

1. Podemos intercambiar el orden de las ecuaciones.


2. Podemos multiplicar ambos lados de las ecuaciones por cualquier constante 'c' que no
sea cero.
3. Podemos multiplicar una ecuación por cualquier constante que no sea cero y luego
sumar a otra ecuación.

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.

Resolveré nuestro problema original como una ilustración. Hagámoslo en pasos.

1. Haz una matriz aumentada de la matriz 'A' y 'Z'.

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.

4. Ahora que hemos simplificado nuestro trabajo, recuperemos las ecuaciones


modificadas. Comenzaremos desde el más simple, es decir, el que tenga el número
mínimo de variables restantes. Si sigue el procedimiento ilustrado, encontrará que la
última ecuación es la más sencilla.

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).

¿No es bastante simple y limpio?

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.

Diferentes casos posibles-

1. Es posible que obtengamos una solución única como se ilustra en el ejemplo


anterior. Indica que los tres planos se intersecan en un punto.
2. Podemos obtener un caso como el que se muestra abajo.

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.

3. Hay otro caso donde la matriz de Echelon se ve como se muestra a continuación

Vamos a recuperar la última ecuación.

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.

Un conjunto de vectores es linealmente dependiente si podemos expresar al menos uno de los


vectores como una combinación lineal de los vectores restantes en el conjunto.
4.2 Inverso de una matriz
Para resolver un gran número de ecuaciones de una sola vez, se usa la inversa. No se asuste si
no está familiarizado con lo inverso. Haremos una buena cantidad de trabajo en todos los
conceptos requeridos. Comencemos con algunos términos y operaciones.

Determinante de una matriz : el concepto de determinante se aplica solo a matrices


cuadradas. Te llevaré a la expresión generalizada de determinante en pasos. Para empezar,
tomemos una matriz 2 * 2.

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.

Ahora toma una matriz 3 * 3 'B' y encuentra su determinante.

Estoy escribiendo la expresión primero y luego explicaré el procedimiento paso a paso.


Cada término consta de dos partes básicamente, es decir, una submatriz y un coeficiente. En
primer lugar, elige una constante. Observe que los coeficientes se seleccionan solo desde la
primera fila. Para empezar, he elegido el primer elemento de la primera fila. Puedes empezar
donde quieras. Una vez que haya elegido el coeficiente, simplemente elimine todos los
elementos de la fila y columna correspondientes al coeficiente elegido. A continuación, haz una
matriz de los elementos restantes; cada uno en su posición original después de eliminar la fila y
la columna y encontrar el determinante de esta submatriz. Repita el mismo procedimiento para
cada elemento en la primera fila. Ahora, para determinar el signo de los términos, simplemente
agregue los índices del elemento de coeficiente. Si es par, ponga un signo positivo y si es
extraño, ponga un signo negativo. Finalmente, agregue todos los términos para encontrar el
determinante. Ahora,

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)

array ([[100, 101, 102, 103],

[104, 105, 106, 107],

[108, 109, 110, 111],

[112, 113, 114, 115]])


#find the determinant
np.linalg.det(arr)

-2.9582283945788078e-31

Menor de una matriz

Tomemos una matriz cuadrada A. luego, la correspondiente a un elemento A (ij) es el


determinante de la submatriz formada al eliminar la fila "i" y la columna "j" de la
matriz. Espero que puedan relacionarse con lo que ya he explicado en la sección
determinante. Tomemos un ejemplo.

Para encontrar el elemento secundario correspondiente al elemento A11, elimine la primera fila
y la primera columna para encontrar la submatriz.

Ahora encuentra el determinante de esta matriz como ya se explicó. Si calcula el determinante


de esta matriz, debe obtener 4. Si denotamos menor por M11, entonces

M11 = 4

Del mismo modo, se puede hacer por otros elementos.

Cofactor de una matriz

En la discusión anterior sobre menores, si consideramos signos de términos menores, el


resultado que obtenemos se llama cofactor de una matriz. Para asignar el signo, simplemente
sume los índices del elemento correspondiente. Si resulta que es par, asigna signo positivo. De
lo contrario, asigne negativo. Tomemos como ejemplo la ilustración anterior. Si agregamos los
índices, es decir, 1 + 1 = 2, entonces debemos poner un signo positivo. Digámoslo
C11. Entonces

C11 = 4

Debes encontrar cofactores correspondientes a otros elementos por ti mismo para una buena
cantidad de práctica.

Matriz cofactor

Encuentra el cofactor correspondiente a cada elemento. Ahora en la matriz original, reemplaza


el elemento original por el cofactor correspondiente. La matriz así encontrada se llama matriz
de cofactor correspondiente a la matriz original.

Por ejemplo, tomemos nuestra matriz A. Si ha descubierto los cofactores correspondientes a


cada elemento, simplemente colóquelos en una matriz de acuerdo con la regla mencionada
anteriormente. Si lo has hecho bien, deberías obtener la matriz del 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.

En el paso 1, encuentra la matriz del cofactor de A.

En el paso 2, acaba de transponer la matriz del cofactor.

La matriz resultante es el adjunto de la matriz original. Para ilustrar, encontremos el adjunto de


nuestra matriz A. ya tenemos matriz de cofactor C. La transposición de la matriz de cofactor
debe ser
Finalmente, en la siguiente sección, encontraremos el inverso.

4.2.1 Hallazgo inverso de una matriz

¿Recuerdas el concepto de la inversa de un número en álgebra elemental? Bueno, si existen dos


números tales que, al multiplicarse, dan 1, esos dos números se llaman inversos entre sí. De
manera similar, en el álgebra lineal, si existen dos matrices de modo que su multiplicación
produzca una matriz de identidad, entonces las matrices se llaman inversas entre sí. Si no puede
obtener lo que expliqué, simplemente siga con el artículo. Te llegará intuitivamente. La mejor
manera de aprender es aprender haciendo. Entonces, saltemos directamente al algoritmo para
encontrar el inverso de una matriz A. De nuevo, lo haremos en dos pasos.

Paso 1 : Averigüe el adjunto de la matriz A mediante el procedimiento explicado en las


secciones anteriores.

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.

Inversa se utiliza para encontrar el vector de parámetros correspondiente a la función de costo


mínimo en regresión lineal.

4.2.2 Potencia de las matrices.


¿Qué sucede cuando multiplicamos un número por 1? Obviamente sigue siendo el mismo. Lo
mismo es aplicable para una matriz de identidad, es decir, si multiplicamos una matriz con una
matriz de identidad del mismo orden, seguirá siendo la misma.

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

Podemos manipularlo como,

(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

Donde I es la matriz de identidad del orden correspondiente.

Si observas atentamente, ya hemos llegado a la solución. Multiplicar la matriz de identidad a X


no la cambia. Así se hace la ecuación.

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?

Código de inverso en python.

import numpy as np
#create an array arr1
arr1 = np.arange(5,21).reshape(4,4)

#find the inverse


np.linalg.inv(arr1)
4.2.3 Aplicación de lo inverso en Data Science.

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 =

734 688 81 0.328 0.418 0.25

700 600 94 0.32 0.389 0.24

712 705 93 0.311 0.417 0.24

734 806 69 0.315 0.415 0.26

613 759 61 0.302 0.378 0.24

748 676 85 0.318 0.422 0.25

669 588 97 0.315 0.411 0.25

667 845 68 0.324 0.381 0.25

758 890 64 0.33 0.436 0.27

726 670 88 0.335 0.422 0.26

583 794 55 0.302 0.371 0.23

676 746 72 0.317 0.4 0.26

767 699 89 0.332 0.433 0.27

637 597 86 0.317 0.374 0.25


Para encontrar el vector de parámetro final (θ) asumiendo que nuestra función inicial está
parametrizada por θ y X, todo lo que tiene que hacer es encontrar la inversa de (X T X) que se
puede lograr muy fácilmente usando el código como se muestra a continuación.

En primer lugar, permítame hacer que la formulación de Regresión lineal sea más fácil de
comprender.

f θ (X) = θ T X, donde θ es el parámetro que deseamos calcular y X es el vector de columna de


características o variables independientes.

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)

# We are just taking 6 features to calculate θ.


X = Df1[[‘RS’, ‘RA’, ‘W’, ‘OBP’,'SLG','BA']]
Y=Df1['OOBP']

#Converting X to matrix
X = np.asmatrix(X)

#taking transpose of X and asignando it to x


x= np.transpose(X)

#finding multiplication
T= x.dot(X)

#inverse of T - provided it is invertible otherwise we use pseudoinverse


inv=np.linalg.inv(T)

#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.

Un inconveniente importante del método de ecuación normal cuando el número de


características es grande es que es computacionalmente costoso. La razón es que si hay
características 'n', la matriz (X T X) se convierte en el orden n * n y su solución cuesta tiempo
en el orden O (n * n * n). En general, el método de ecuación normal se aplica cuando un
número de características es del orden de 1000 o 10,000. Los conjuntos de datos con un número
mayor de funciones se manejan con la ayuda de otro método llamado Gradient Descent.

A continuación, veremos otro concepto avanzado de álgebra lineal llamado vectores propios.

5. Valores propios y vectores propios


Los eigenvectores encuentran una gran cantidad de aplicaciones en diferentes dominios, como
la visión artificial, la física y el aprendizaje automático. Si ha estudiado el aprendizaje
automático y está familiarizado con el algoritmo de análisis de componentes principales, debe
saber qué tan importante es el algoritmo al manejar un gran conjunto de datos. ¿Alguna vez te
has preguntado qué está pasando detrás de ese algoritmo? En realidad, el concepto de vectores
propios es la columna vertebral de este algoritmo. Exploremos los vectores Eigen y los valores
Eigen para una mejor comprensión de los mismos.

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í.

Ilustraré mi punto con la ayuda de una imagen como se muestra a continuación.

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.

5.1 ¿Cómo encontrar vectores propios de una matriz?


Supongamos que tenemos una matriz A y un vector propio 'x' que corresponden a la
matriz. Como ya se explicó, después de la multiplicación con la matriz, la dirección de 'x' no
cambia. Sólo se permite el cambio de magnitud. Escribámoslo como una ecuación

Ax = cx

(Ac) x = 0 ……. (1)

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.

Código para encontrar vectores propios en python

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)

5.2 Uso de vectores propios en la ciencia de datos


El concepto de vectores propios se aplica en un algoritmo de aprendizaje automático. Análisis
de componentes principales. Supongamos que tiene datos con un gran número de
características, es decir, tiene una dimensionalidad muy alta. Es posible que haya características
redundantes en esos datos. Aparte de esto, una gran cantidad de funciones causará una menor
eficiencia y más espacio en el disco. Lo que hace PCA es que incluye algunas de las
características menos importantes. Pero, ¿cómo determinar esas características? Aquí, los
vectores propios vienen a nuestro rescate. Vayamos a través del algoritmo de
PCA. Supongamos que tenemos una 'n' datos dimensionales y queremos reducirla a las
dimensiones 'k'. Lo haremos en pasos.

Paso 1 : Los datos se normalizan y se escalan las características.

Paso 2: Descubrimos la matriz de covarianza de nuestro conjunto de datos.

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 3: Descubrimos los vectores propios de la matriz de covarianza. No necesitas preocuparte


mucho por la matriz de covarianza. Es un concepto avanzado de estadística. Como tenemos
datos en 'n' dimensiones, encontraremos 'n' vectores propios correspondientes a 'n' valores
propios.

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.

Mira las imágenes que se muestran abajo tomadas de este enlace.

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 .

Una guía completa para la


exploración de datos
SUNIL RAY , 10 DE ENERO DE 2016
INICIA SESIÓN PARA MARCAR ESTE ARTÍCULO

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.

1. Pasos de la exploración y preparación de datos.


Recuerde que la calidad de sus entradas decide la calidad de su salida. Entonces, una vez que
haya preparado su hipótesis de negocios, tiene sentido gastar mucho tiempo y esfuerzos aquí. Con
mi estimación personal, la exploración de datos, la limpieza y la preparación pueden tomar hasta
el 70% del tiempo total del proyecto.

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.

Estudiemos ahora cada etapa en detalle:


Identificación de variables
Primero, identifique las variables Predictor (Input) y Target (output). A continuación,
identifique el tipo de datos y la categoría de las variables.

Entendamos este paso más claramente tomando un ejemplo.

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.

Vamos a entender en detalle las posibles combinaciones:

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.

 -1: perfecta correlación lineal negativa


 +1: correlación lineal positiva perfecta y

 0: No hay correlación

La correlación se puede derivar usando la siguiente fórmula:

Correlación = Covarianza (X, Y) / SQRT (Var (X) * Var (Y))

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.

 Prueba de Chi-cuadrado: esta prueba se utiliza para derivar la significación estadística


de la relación entre las variables. Además, comprueba si la evidencia en la muestra es lo
suficientemente fuerte como para generalizar que la relación para una población más
grande también. Chi cuadrado se basa en la diferencia entre las frecuencias esperadas y
observadas en una o más categorías en la tabla de dos vías. Devuelve la probabilidad de
la distribución de chi-cuadrado calculada con el grado de libertad.

Probabilidad de 0: indica que ambas variables categóricas son dependientes

Probabilidad de 1: Demuestra que ambas variables son independientes.

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:

donde O representa la frecuencia observada. E es la frecuencia esperada


según la hipótesis nula y calculada por: De la tabla de dos vías anterior, el recuento esperado para
la categoría de producto 1 es de tamaño pequeño es 0.22. Se obtiene tomando el total de la fila
para el Tamaño (9) multiplicado por el total de la columna para la Categoría de producto (2) y
luego dividiendo por el tamaño de la muestra (81). Este es el procedimiento que se realiza para
cada célula. Las medidas estadísticas utilizadas para analizar el poder de la relación son:

 V de Cramer para la variable categórica nominal


 Mantel-Haenszed Chi-cuadrado para variable categórica ordinal.

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.

 Prueba Z / Prueba T: - Cualquiera de las pruebas evalúa si la media de dos grupos es

estadísticamente diferente o no. Si la probabilidad de Z es


pequeña, entonces la diferencia de dos promedios es más significativa. La prueba T es
muy similar a la prueba Z, pero se usa cuando el número de observaciones para ambas
categorías es inferior a 30.

 ANOVA: - Evalúa si el promedio de más de dos grupos es estadísticamente diferente.

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.

2. Tratamiento de valor perdido


¿Por qué se requiere tratamiento con valores perdidos?
La falta de datos en el conjunto de datos de entrenamiento puede reducir la potencia / ajuste de
un modelo o puede llevar a un modelo sesgado porque no hemos analizado correctamente el
comportamiento y la relación con otras variables. Puede llevar a una predicción o clasificación
errónea.

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.

¿Por qué mis datos tienen valores perdidos?


Analizamos la importancia del tratamiento de los valores faltantes en un conjunto de
datos. Ahora, identifiquemos las razones de la ocurrencia de estos valores faltantes. Pueden
ocurrir en dos etapas:

1. Extracción de datos : Es posible que haya problemas con el proceso de extracción. En


tales casos, deberíamos verificar dos veces los datos correctos con los guardianes de
datos. Algunos procedimientos de hash también se pueden usar para asegurarse de que la
extracción de datos sea correcta. Los errores en la etapa de extracción de datos suelen ser
fáciles de encontrar y también se pueden corregir fácilmente.
2. Recopilación de datos : estos errores se producen en el momento de la recopilación de
datos y son más difíciles de corregir. Se pueden categorizar en cuatro tipos:
o Falta completamente al azar: este es un caso en el que la probabilidad de que
falte una variable es la misma para todas las observaciones. Por ejemplo: los
encuestados en el proceso de recopilación de datos deciden que declararán su
ganancia después de lanzar una moneda justa. Si ocurre un jefe, el encuestado
declara sus ganancias y viceversa. Aquí cada observación tiene las mismas
posibilidades de perder valor.
o Falta aleatoria: este es un caso en el que la variable falta aleatoriamente y la
proporción que falta varía para diferentes valores / nivel de otras variables de
entrada. Por ejemplo: estamos recopilando datos por edad y las mujeres tienen un
mayor valor perdido en comparación con los hombres.
o Falta que depende de predictores no observados: este es un caso en el que los
valores faltantes no son aleatorios y están relacionados con la variable de entrada
no observada. Por ejemplo: en un estudio médico, si un diagnóstico en particular
causa incomodidad, entonces hay una mayor probabilidad de abandonar el
estudio. Este valor faltante no es aleatorio a menos que hayamos incluido la
"incomodidad" como una variable de entrada para todos los pacientes.
o Falta, depende del valor faltante en sí mismo: este es un caso en el que la
probabilidad de que falte un valor está directamente relacionada con el valor
faltante en sí. Por ejemplo: es probable que las personas con ingresos más altos o
más bajos no respondan a sus ganancias.

¿Cuáles son los métodos para tratar los valores perdidos?


1. Eliminación: Es de dos tipos: Eliminar eliminación inteligente y Eliminar eliminación
inteligente.
o En la lista de eliminación inteligente, eliminamos las observaciones donde falta
alguna de las variables. La simplicidad es una de las principales ventajas de este
método, pero este método reduce la potencia del modelo porque reduce el tamaño
de la muestra.
o En la eliminación por pares, realizamos análisis con todos los casos en los que
las variables de interés están presentes. La ventaja de este método es que
mantiene tantos casos disponibles para el análisis. Una de las desventajas de este
método es que utiliza diferentes tamaños de muestra para diferentes variables.
o Los métodos de eliminación se utilizan cuando la naturaleza de los datos faltantes
es " Falta completamente al azar ", de lo contrario, los valores perdidos no
aleatorios pueden sesgar la salida del modelo.
2. Imputación media / modo / mediana: la imputación es un método para completar los
valores faltantes con los estimados. El objetivo es emplear relaciones conocidas que
puedan identificarse en los valores válidos del conjunto de datos para ayudar a estimar
los valores faltantes. La imputación media / modo / mediana es uno de los métodos más
utilizados. Consiste en reemplazar los datos faltantes para un atributo dado por la media
o la mediana (atributo cuantitativo) o el modo (atributo cualitativo) de todos los valores
conocidos de esa variable. Puede ser de dos tipos:
o Imputación generalizada: en este caso, calculamos la media o la mediana de
todos los valores no faltantes de esa variable y luego reemplazamos el valor
faltante con la media o la mediana. Al igual que en la tabla anterior, la variable
" Manpower" falta, por lo que tomamos el promedio de todos los valores no
faltantes de " Manpower" ( 28.33 ) y luego reemplazamos el valor faltante.
o Imputación de casos similares: en este caso, calculamos el promedio para el
género “ Masculino” (29.75) y “ Femenino ” (25) individualmente de valores
no faltantes y luego reemplazamos el valor faltante basado en el género. Para
" Hombre ", reemplazaremos los valores faltantes de la mano de obra con 29.75
y para " Mujer " con 25.
3. Modelo de predicción : el modelo de predicción es uno de los métodos sofisticados para
manejar los datos faltantes. Aquí, creamos un modelo predictivo para estimar valores que
sustituirán los datos faltantes. En este caso, dividimos nuestro conjunto de datos en dos
conjuntos: un conjunto sin valores perdidos para la variable y otro con valores
perdidos. El primer conjunto de datos se convierte en el conjunto de datos de
entrenamiento del modelo, mientras que el segundo conjunto de datos con valores
perdidos es el conjunto de datos de prueba y la variable con valores perdidos se trata
como variable objetivo. A continuación, creamos un modelo para predecir la variable de
destino en función de otros atributos del conjunto de datos de entrenamiento y rellenamos
los valores faltantes del conjunto de datos de prueba. Podemos usar la regresión,
ANOVA, regresión logística y varias técnicas de modelado para realizar esto. Hay 2
inconvenientes para este enfoque:
1. Los valores estimados del modelo suelen ser más adecuados que los valores
reales.
2. Si no hay relaciones con los atributos en el conjunto de datos y el atributo con los
valores faltantes, entonces el modelo no será preciso para estimar los valores
faltantes.
4. Imputación de KNN: en este método de imputación, los valores faltantes de un atributo
se imputan utilizando el número dado de atributos que son más similares al atributo cuyos
valores faltan. La similitud de dos atributos se determina utilizando una función de
distancia. También se sabe que tiene ciertas ventajas y desventajas.
o Ventajas:
 El vecino más cercano k puede predecir atributos tanto cualitativos como
cuantitativos
 No se requiere la creación de un modelo predictivo para cada atributo con
datos faltantes.
 Los atributos con múltiples valores perdidos pueden ser tratados
fácilmente
 La estructura de correlación de los datos se toma en consideración.
o Desventaja:
 El algoritmo KNN requiere mucho tiempo para analizar grandes bases de
datos. Busca en todo el conjunto de datos buscando las instancias más
similares.
 La elección del valor k es muy crítica. Un valor más alto de k incluiría
atributos que son significativamente diferentes de lo que necesitamos,
mientras que un valor más bajo de k implica perder atributos
significativos.

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.

3. Técnicas de detección atípica y tratamiento.

¿Qué es un valor atípico?


Outlier es una terminología de uso común por parte de analistas y científicos de datos, ya que
necesita mucha atención, ya que puede dar lugar a estimaciones totalmente erróneas. En pocas
palabras, Outlier es una observación que aparece muy lejos y se aparta de un patrón general en
una muestra.

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.

¿Qué causa los valores atípicos?


Cuando nos encontramos con valores atípicos, la manera ideal de abordarlos es descubrir la razón
de tener estos valores atípicos. El método para tratar con ellos dependería de la razón de su
ocurrencia. Las causas de los valores atípicos se pueden clasificar en dos categorías amplias:

1. Artificial (Error) / No natural


2. Natural .

Vamos a entender varios tipos de valores atípicos con más detalle:

 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.

¿Cuál es el impacto de los valores atípicos en un conjunto de


datos?
Los valores atípicos pueden cambiar drásticamente los resultados del análisis de datos y el
modelo estadístico. Existen numerosos impactos desfavorables de valores atípicos en el conjunto
de datos:

 Aumenta la varianza del error y reduce el poder de las pruebas estadísticas.


 Si los valores atípicos se distribuyen de forma no aleatoria, pueden disminuir la
normalidad.
 Pueden sesgar o influir en estimaciones que pueden ser de interés sustantivo.
 También pueden afectar el supuesto básico de Regresión, ANOVA y otros supuestos del
modelo estadístico.

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.

¿Cómo detectar Outliers?


El método más comúnmente usado para detectar valores atípicos es la visualización. Utilizamos
varios métodos de visualización, como Diagrama de caja , Histograma , Diagrama de
dispersión (anteriormente, hemos utilizado Diagrama de caja y Diagrama de dispersión para
la visualización). Algunos analistas también tienen varias reglas para detectar valores
atípicos. Algunos de ellos son:

 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:

Eliminación de observaciones: eliminamos valores atípicos si se debe a un error en la entrada


de datos, un error en el procesamiento de datos o las observaciones atípicas son números muy
pequeños. También podemos utilizar el recorte en ambos extremos para eliminar los valores
atípicos.

Transformar y agrupar valores: transformar variables también puede eliminar valores


atípicos. El registro natural de un valor reduce la variación causada por valores
extremos. Binning es también una forma de transformación variable. El algoritmo de árbol de
decisión permite manejar bien los valores atípicos debido a la combinación de variables. También
podemos usar el proceso de asignar pesos a diferentes observaciones.

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

¿Qué es la ingeniería de características?


La ingeniería de características es la ciencia (y el arte) de extraer más información de los datos
existentes. No está agregando ningún dato nuevo aquí, pero en realidad está haciendo que los
datos que ya tiene sean más útiles.

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.

Este ejercicio de sacar información a partir de datos se conoce como ingeniería de


características.

¿Cuál es el proceso de ingeniería de características?


Usted realiza la ingeniería de características una vez que haya completado los primeros 5 pasos
en la exploración de datos: Identificación de variables, Univariante, Análisis
bivariado , Imputación de valores perdidos y Tratamiento de valores atípicos . La ingeniería de
características en sí se puede dividir en 2 pasos:

 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.

¿Qué es la transformación variable?


En el modelado de datos, la transformación se refiere a la sustitución de una variable por una
función. Por ejemplo, reemplazar una variable x por la raíz cuadrada / cúbica o el logaritmo x es
una transformación. En otras palabras, la transformación es un proceso que cambia la
distribución o relación de una variable con otras.
Veamos las situaciones en que la transformación de variables es útil.

¿Cuándo debemos utilizar la transformación variable?


A continuación se muestran las situaciones donde la transformación de variables es un
requisito:

 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.

 Cuando podemos transformar relaciones no lineales complejas en relaciones


lineales . La existencia de una relación lineal entre variables es más fácil de comprender
en comparación con una relación no lineal o curva. La transformación nos ayuda a
convertir una relación no lineal en una relación lineal. El diagrama de dispersión se puede
utilizar para encontrar la relación entre dos variables continuas. Estas transformaciones
también mejoran la predicción. La transformación de registros es una de las técnicas de
transformación más utilizadas en estas situaciones.

 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.

¿Cuáles son los métodos comunes de transformación variable?


Hay varios métodos utilizados para transformar variables. Como se discutió, algunos de ellos
incluyen raíz cuadrada, raíz cúbica, logarítmica, binning, recíproco y muchos otros. Veamos
estos métodos en detalle resaltando las ventajas y desventajas de estos métodos de
transformación.

 Logaritmo: el registro de una variable es un método de transformación común que se


utiliza para cambiar la forma de distribución de la variable en un gráfico de
distribución. Generalmente se usa para reducir el sesgo correcto de las variables. Aunque,
no se puede aplicar a valores cero o negativos también.

 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.

 Binning: Se utiliza para categorizar variables. Se realiza sobre valores originales,


percentil o frecuencia. La decisión de la técnica de categorización se basa en la
comprensión del negocio. Por ejemplo, podemos clasificar los ingresos en tres categorías,
a saber: Alta, Media y Baja. También podemos realizar un agrupamiento de co-variado
que depende del valor de más de una variable.

¿Qué es la creación de características / variables y sus


beneficios?
La creación de características / variables es un proceso para generar nuevas variables /
características basadas en variables existentes. Por ejemplo, digamos, tenemos la fecha (dd-mm-
aa) como una variable de entrada en un conjunto de datos. Podemos generar nuevas variables
como día, mes, año, semana, día de la semana que pueden tener una mejor relación con la variable
objetivo. Este paso se utiliza para resaltar la relación oculta en una variable:
Hay varias técnicas para crear nuevas características. Veamos algunos de los métodos
comúnmente usados:

 Creación de variables derivadas: se refiere a la creación de nuevas variables a partir de


variables existentes utilizando un conjunto de funciones o métodos diferentes. Vamos a
verlo a través de " Titanic - Kaggle Competition ". En este conjunto de datos, la edad
variable tiene valores perdidos. Para predecir los valores faltantes, utilizamos el saludo
(Master, Mr, Miss, Mrs) del nombre como una nueva variable. ¿Cómo decidimos qué
variable crear? Honestamente, esto depende de la comprensión comercial del analista, su
curiosidad y el conjunto de hipótesis que pueda tener sobre el problema. Métodos tales
como tomar registro de variables, agrupar variables y otros métodos de transformación
de variables también se pueden usar para crear nuevas variables.

 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.

Para leer más, aquí hay una lista de ideas de transformación /


creación que se pueden aplicar a sus datos.

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.

¡Estaremos usando python!

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 )

No uso Anaconda ( https://www.continuum.io/downloads ). Es fácil y lo hace todo por ti, pero

quiero más libertad. La decisión es tuya.

El marco de aprendizaje automático


En 2015, se me ocurrió un marco para el aprendizaje automático automático que todavía está
en desarrollo y se lanzará pronto. Para este post, el mismo marco será la base. El marco se
muestra en la siguiente figura:
FIGURA DE: A. THAKUR Y A. KROHN-GRIMBERGHE, AUTOCOMPETE: UN MARCO PARA LAS COMPETENCIAS DE
APRENDIZAJE AUTOMÁTICO, TALLER DE AUTOML, CONFERENCIA INTERNACIONAL SOBRE APRENDIZAJE AUTOMÁTICO
2015.

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.

Hay dos formas en que podemos manejar los datos categóricos:

 Convertir los datos categóricos en etiquetas.


 Convertir las etiquetas a variables binarias (codificación de un solo calor)

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.

Las variables de texto se pueden unir de la siguiente manera:

Entonces podemos usar CountVectorizer o TfidfVectorizer en él:

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.

Si está aplicando estos vectorizadores solo en el conjunto de entrenamiento, asegúrese de


volcarlo en el disco duro para poder usarlo más adelante en el conjunto de validación.

A continuación, llegamos al módulo apilador. El módulo de apilador no es un apilador modelo,


sino un apilador de características. Las diferentes características después de los pasos de
procesamiento descritos anteriormente se pueden combinar utilizando el módulo apilador.

Puede apilar horizontalmente todas las funciones antes de someterlas a un procesamiento


adicional mediante el uso de hpack numpy o hstack escaso dependiendo de si tiene
características densas o escasas.
Y también se puede lograr con el módulo FeatureUnion en caso de que haya otros pasos de
procesamiento, como pca o selección de características (visitaremos la descomposición y la
selección de características más adelante en esta publicación).

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

No podemos aplicar modelos lineales a las características anteriores ya que no están


normalizadas. Para usar modelos lineales, se puede usar Normalizer o StandardScaler desde
scikit-learn.
Estos métodos de normalización funcionan solo en características densas y no dan muy
buenos resultados si se aplican en características dispersas. Sí, se puede aplicar
StandardScaler en matrices dispersas sin usar la media (parámetro: with_mean = False).

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.

Los siguientes pasos incluyen métodos de descomposición:

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.

Después de evaluar el rendimiento adicional de los modelos, pasamos a la escala de los


conjuntos de datos, para que podamos evaluar los modelos lineales también. Las funciones
normalizadas o escaladas se pueden enviar a los modelos de aprendizaje automático o a los
módulos de selección de funciones.

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.

Recuerde mantener un bajo número de estimadores y una optimización mínima de los


parámetros hiper para que no se adapte excesivamente.
La selección de características también se puede lograr utilizando máquinas de refuerzo de
degradado. Es bueno si usamos xgboost en lugar de la implementación de GBM en scikit-
learn, ya que xgboost es mucho más rápido y más escalable.

También podemos hacer una selección de características de conjuntos de datos dispersos


usando RandomForestClassifier / RandomForestRegressor y xgboost.

Otro método popular para la selección de características de conjuntos de datos dispersos


positivos es la selección de características basada en chi-2 y también tenemos implementado
en scikit-learn.

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.

El siguiente paso importante (o intermedio) es la selección del modelo + optimización del


hiperparámetro.
En general, usamos los siguientes algoritmos en el proceso de selección de un modelo de
aprendizaje automático:

 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.

En mi opinión, y estrictamente mi opinión, los modelos anteriores superarán a cualquier otro y


no necesitamos evaluar ningún otro modelo.

Una vez más, recuerde guardar los transformadores:

Y aplícalos en el conjunto de validación por separado:


Las reglas y el marco anteriores se han desempeñado muy bien en la mayoría de los
conjuntos de datos que he tratado. Por supuesto, también ha fallado para tareas muy
complicadas. Nada es perfecto y seguimos mejorando en lo que aprendemos. Al igual que en
el aprendizaje automático.

Ponte en contacto conmigo para cualquier duda: abhishek4 [at] gmail [dot] com

Bio

ABHISHEK THAKUR , GRAN MAESTRO DE COMPETICIONES.

Abhishek Thakur funciona como un científico de datos mayor en el equipo de Ciencia de


Datos en Searchmetrics Inc . En Searchmetrics, Abhishek trabaja en algunos de los estudios
más interesantes basados en datos, aplicó algoritmos de aprendizaje automático y obtuvo
información a partir de una gran cantidad de datos que requieren una gran cantidad de datos,
limpieza, ingeniería de características y construcción y optimización de modelos de
aprendizaje automático.
En su tiempo libre, le gusta participar en concursos de aprendizaje automático y ha participado
en más de 100 concursos. Sus intereses de investigación incluyen aprendizaje automático,
aprendizaje profundo, optimización de hiperparámetros, visión por computadora, análisis y
recuperación de imágenes y reconocimiento de patrones.

Potrebbero piacerti anche