Transcripciones
1. Introducción: La ciencia de datos en cierto sentido, es como una historia de detectives para mí. Desentrañas relaciones ocultas en los datos, y construyes una narrativa alrededor de esas relaciones. Mi nombre es Oscar Thomas y estoy en el investigador de aprendizaje automático y científicos de datos. Pasé los últimos tres años trabajando hacia mi doctorado en aprendizaje automático y geofísica. Tengo experiencia trabajando como consultora, enseñando Python y machine learning en lugares como Shell y el gobierno del Reino Unido, pero también medianas empresas y universidades. Toda esta experiencia me ha dado la capacidad de terminar mi Certificado Profesional de Ciencia de Datos de IBM en 48 horas para un curso que se supone que tomará alrededor de un año. También creo exactamente estos cuadernos que aprendes a crear en este curso para la competencia de ciencia de datos y aprendizaje automático, un tipo llamado Kaggle, que es propiedad de Google. Ahí gané el rango 81 a nivel mundial de más de 100 mil participantes. Después de este curso, habrás llegado a través de cada paso del flujo de trabajo de ciencia de datos. Eso significa que podrás recrear toda la visualización, y tener todos los fragmentos de código disponibles para más adelante para usarlos con tus propios datos en tus propios informes. Haremos un paso a paso muy aplicado. Empezaremos desde el principio, empezando por meter tus datos en Python. Eso significa mirar archivos de Excel y mirar tablas SQL, pero también mirar esos extraños formatos de datos que a veces pueden ser un poco difíciles de trabajar. Después preprocesaremos nuestros datos, limpiaremos nuestros datos y haremos análisis exploratorios de datos o EDA corta. EDA es esa parte donde realmente refinas tu pregunta, y donde echamos un vistazo a las relaciones en nuestros datos y contestamos esas preguntas. Después por diversión, echaremos un vistazo al
modelado de aprendizaje automático y a cómo validar esos modelos de aprendizaje automático, porque en este tiempo moderno, esto es más importante que nunca. Tendremos un vistazo a diferentes visualizaciones de datos, cómo contar mejor tu historia, cómo generar mejor presentaciones e informes para realmente convencer, para puntuar realmente tu historia de que puedes contar esos datos. Muy finalmente, vamos a echar un vistazo a
generar automáticamente presentaciones e informes PDF directamente desde Python. Tengo la desafortunada falta de graduarme en recesión dos veces ahora. Pero Python me ha dado la capacidad de terminar un doctorado mientras trabajaba como consultor y haciendo estas increíbles carteras de ciencia de datos de clase mundial para mí que ahora han generado tanta atención. Es increíble. Uno de mis cuadernos ha sido visto más de 50,000 veces. Espero compartir esto con ustedes. Señales de datos para mí es el nuevo campo súper emocionante y Python es muy accesible. Por lo que espero verte en clase.
2. 01 de clase: Bienvenido a clase y gracias
por echarle un vistazo. Estoy muy feliz de tenerte. Esta clase será un video del
tamaño de un bocado que forman parte de capítulos más grandes
porque entonces puedes volver y echar un vistazo a los pequeños detalles y no tener que buscar en cuanto más grande sea
la noticia. Y cada capítulo será uno de los pasos en
el flujo de trabajo de
ciencia de datos. Al final. Porque solo
senos no se aplica seno uno sobre proteína. Y luego este proyecto, recrearás lo que hacemos
en estas videoconferencias. Recorre todo el flujo de trabajo de ciencia de
datos
y, al final, genera PDF para una
presentación con tu multa, es bueno en tus propios datos, en un conjunto de datos que
proporciono además de eso, y haga que todos estos cuadernos estén disponibles para usar para que pueda codificar durante los videos
porque es mejor experimentar. A veces ves algo, quieres crear,
algo diferente, quieres
entenderlo mejor. Y luego experimentar
con el código que tengo en pantalla es realmente
la mejor manera de hacerlo. Para el primer
par de conferencias, quiero asegurarme de que todos tengan una sequía
inicial igual. Eche un vistazo a las herramientas. Tendremos algunas conferencias
introductorias donde realmente obtenemos objetos
africanos. Y luego comenzaremos
con todo el conjunto de datos. Lo que aunque muy brutal
carga, limpieza, análisis
exploratorio de datos y todo el camino al aprendizaje automático. Y llamamos generación.
3. 02 ¿Qué es nuevo Data Science: En esta clase veremos la ciencia de datos desde dos perspectivas
diferentes. Entonces hay uno en el que
vamos a echar un
vistazo a lo que en realidad constituye
que diseñaron para actuar. ¿Cuáles son los
fundamentos importantes? Y ahí está el otro,
el enfoque de proceso. ¿Cómo lo
hacen realmente los científicos de datos? Definir la ciencia de datos como un
poco bestia porque es una disciplina
tan nueva
que todos
tienen puja por diferentes leucemias. Y me gustó la
forma en que salió Jim Gray, el Turing Award, básicamente lo define
como un Ford Pinto firma. Y esa ciencia de datos o tecnología de la
información. Y tres, Necesita cambios
Todo sobre la ciencia. Y creo que el impacto de las decisiones
basadas en datos
sobre letreros, negocios, ha mostrado mis
formas favoritas de ver la ciencia de datos, jerarquía de la ciencia de
datos de las necesidades por cuidado no deseado
pícaro nuestros dientes. Y ella realmente la define
como esta pirámide. Todas las
necesidades de nivel base y Ben Wolf, más necesidades de nicho a
medida que vas más alto. Y en la base misma de esa jerarquía de necesidades
está la recolección de datos. Y tenemos que ser conscientes de
que ya bajo proceso
colectivo
por este desactualizado, a
mucha gente le gusta pensar que los datos son imparciales, eso cierto. Pero eso realmente no son las chicas. Muchas veces incluso entonces los sistemas
físicos sesgan nuestros datos, se leen recopilando y
luego pasan a nivelar los dientes,
moviéndolos y almacenándolos a lo grande. Así que asegurándonos de
tener almacenamiento confiable, confiable lento de datos, tener un
proceso ETL de extracción, transformación y carga ayudar realmente
a la
infraestructura de la ciencia de datos. El siguiente nivel de raza es explorar y
transformar datos. Así haciendo
detección de anomalías en la limpieza, preparando nuestros datos
para el MLS real. paso cuatro es agregar
y etiquetar los datos, decidir las métricas
que usaremos y observando las características
y los datos de entrenamiento, el paso final del panel es
hacer el modelado real. Así que haciendo pruebas AB, probando entre una versión
del sitio web y otra, y experimentación con algoritmos
simples de
aprendizaje automático para ganar interiores para modelar los datos y hacer predicciones basadas en la
punta de las cabezas piramidales, IA y, y personas asintiendo. Entonces las cosas realmente jugosas, pero también esas cosas que mayoría de las empresas
en realidad no piensan. Esto resume aproximadamente
cuánto tiempo debes dedicar también a cada escalón dentro
del perímetro. Entonces, si no pasas en cualquier momento adquiriendo datos
de pensar en datos, entonces probablemente tendrás
un problema en el futuro. Otra forma de ver las
ciencias de datos haciendo preguntas. El proceso de ciencia de datos
consiste fundamentalmente hacer preguntas
sobre tus datos. Y es un enfoque muy
iterativo. Entonces, al principio, se plantea la pregunta, adquiriendo estos datos, pero ¿cómo se muestrean
realmente los datos? Esto entra en los datos de los compradores. Qué datos son relevantes, y luego se pasa a explorar los datos para el análisis
exploratorio de datos. Andrey inspecciona. A veces hay que regresar. Es un proceso iterativo. Durante la exploración, verás que alguna
fuente de datos realmente
ayudaría esa información que
tienes en tus datos. Así que vas y
vienes entre pasos. Luego modela los datos, construye un modelo simple de
aprendizaje automático o simplemente como la jerarquía de necesidades y realmente obtuvo conocimientos
modelando sus datos con algoritmos
simples. Por último, y esto no forma parte
de la jerarquía de necesidades, pero definitivamente es parte
del proceso de ciencia de datos que está
comunicando tus resultados. ¿Qué aprendimos? ¿Cómo podemos
darle sentido a los datos? ¿Cuáles son nuestras ideas? Y cómo podemos convencer a la
gente de las ideas sobre cómo todos sabemos que a veces conocer
la verdad no es suficiente. Tienes que contar una
historia convincente para convencer a la gente de la ciencia
Jane y realmente tener un
impacto con
tus dos lados del día. Por lo que esta clase te mostrará todo
el proceso
y también cómo generar esas
historias desactualizadas.
4. 03 de visión de herramientas: Vamos a tener una visión general de las herramientas que estamos
usando en esta clase. Obviamente, todo lo
relacionado con la ciencia de datos será universal. Pero también aprender Python es extremadamente valioso
para tu conjunto de habilidades. Python ha ganado mucha popularidad porque es
gratis, es de código abierto, es muy fácil de usar y se puede instalar en
prácticamente cualquier dispositivo. Entonces Mac, Windows, Unix, tu teléfono incluso
encendido no es un problema. Y hola código de delgadez para humanos. Así que muchos lugares, Google Ads, YouTube,
instagram, Spotify, todos
usan al menos
y Pub Python
porque es muy fácil conseguir nuevas
personas a bordo con Python. Porque si escribes
un buen código Python, casi
se puede leer como texto. Instalará Python 3.8 usando
la instalación de Anaconda. Anaconda es agradable
porque distribuye muchos paquetes
de ciencia de datos que ya
necesitamos y es gratis. Si estás en una
versión posterior de Python, eso debería estar completamente bien siempre y cuando sea Python, reza, tal vez
te estés preguntando si
necesitas instalar algún tipo de IDE o algún tipo de
compilador para Python. Y ese no es el caso. Usaremos Júpiter, que es una
interfaz basada en la web para Python y hace que la enseñanza Python y la ruta
de aprendizaje sean extremadamente fáciles. Y pasando de eso, siempre
puedes ir
a otro editor. Uno de mis favoritos es el código VS. Se ha vuelto muy bueno
para el desarrollo de Python. Y el código VS en realidad cuenta
con un intérprete. Y el código de vistas
en realidad viene con una extensión para
Júpiter también. Pero eso es para otro día en la base de cualquier cosa
que hagamos este NumPy, es
biblioteca de computación científica y Python. Y no vamos a estar
interrelacionándonos con eso directamente, pero quiero que
sepas que está ahí. Así que siempre cuando necesites
hacer algún tipo de cálculo, podrías hacerlo en Python. Se ha utilizado para
encontrar agujeros negros. Se utiliza para la analítica
deportiva y para los cálculos
financieros. Y es utilizado por cada paquete que vamos a
utilizar en este curso. Rápidamente notarás
en este curso que
todo lo que hacemos es
dependiendo de los pandas. Pandas es esta poderosa
herramienta que es
una especie de mezcla entre Excel
y SQL para mí. Y es realmente una herramienta de análisis
y manipulación de datos. Así que almacenamos nuestra información con columnas
mixtas en un DataFrame. Y este DataFrame entonces
se puede manipular, cambiar, agregar solo dentro esta herramienta para la porción de
aprendizaje automático y la validación del modelo
cuando se usa scikit-learn y bibliotecas construidas
sobre scikit- aprender, Scikit-learn ha
cambiado mucho la forma en que hacemos el aprendizaje automático
y ha permitido parte del gran auge que
vemos en los intereses del aprendizaje automático
en el mundo en este momento. Matplotlib es una
herramienta de visualización de datos y en su mayoría usaremos bibliotecas que
se
basan en matplotlib. Pero es muy
importante saber que está ahí y tiene una
extensa biblioteca con ejemplos donde
puedes echar un vistazo a lo
que te gustaría construir. Seaborn como una sola vez
estas bibliotecas que se basan en matplotlib. Y es extremadamente
potente ya que a menudo
se necesita una sola
línea o un par de líneas para hacer visualizaciones
de
datos muy hermosas de sus datos estadísticos. Estas son las herramientas fundamentales que usaremos en la ciencia
de datos. Hay código abierto, son gratuitos y son los grandes. Pero usaremos un par de otras herramientas más pequeñas que me han
gustado mucho también, pero las
presentaré a lo largo del curso. La documentación de estas herramientas de código
abierto es increíble porque también está construida
por voluntarios como yo. He escrito parte de los pandas y la
documentación de scikit-learn, y encontrarás que
es realmente útil con pequeños ejemplos ingeniosos que realmente te harán
entender mejor el código. Si estás usando estos en un entorno
corporativo,
siguen siendo gratuitos. Pero considere convertirse en
un defensor patrocinio porque
estos paquetes realmente dependen de tener desarrolladores
pagados y mantenedores
centrales.
5. 04 Cómo encontrar ayuda nueva: Puede resultar realmente desalentador
hacer este curso. Entiendo totalmente. Estoy aprendiendo constantemente. Estoy haciendo estos cursos
y estar solo en estos cursos es terrible. Pero Skillshare tiene
la página del proyecto donde puedes pedir ayuda. Y en esta clase
también echaremos un vistazo a todas
las diferentes formas, cómo puedes encontrar ayuda y cómo puedes aprender a ayudarte a ti mismo. Porque cada programador te
dirá que cada vez
mejoraron en la programación. Uno, aprendieron a buscar en
Google los pagos del RIF. Para empezar, echaremos un
vistazo al cuaderno de Júpiter
porque el cuaderno de Júpiter nos quiere ayudar
directamente. Entonces, si tenemos algún
tipo de función, incluso la función print, podemos usar Shift Tab. Y cuando le pegamos,
una vez, se abre, básicamente la descripción básica, así obtenemos la firma
de nuestra función. Eso significa imprimir este el nombre. Este es el primer argumento, y luego el punto-punto-punto
es simplemente pequeño. Y estos son los argumentos de las
palabras clave. Y devuelve la primera, yo soy la primera frase fuera de la documentación
en el docstring. Entonces, si bien podemos presionar
Shift Tab varias veces, dos veces, solo abre toda
la cadena de documentos. Tres veces hace
Esa es la cadena está abierta más tiempo y también
puedes hacer clic aquí. Y todo eso. Y cuatro veces echarán al fondo aquí. Así que lo tienes disponible mientras trabajas
y puedes simplemente sacarlo aquí
a su propio lado, pero también simplemente cerrarlo. Y una adición. Bueno, entonces estaremos
trabajando con Pandas. Entonces, cuando comenzamos a escribir, a menudo
podemos presionar Tab
para completar automáticamente. Y esta es realmente
mi forma personal de ser un poco perezoso a la hora de escribir. Entonces cuando quiera importar pandas, puedo presionar tab y ver qué
tipo de cosas están instaladas. Pandas como pd
ejecutándose aquí mismo, me ocuparé de Control Enter
para permanecer en el mismo lugar. Y Turno Entrar. Se va a ejecutar y
llevarme a la siguiente celda. Y aquí también puedo, así que P D es ahora nuestros pandas. Cuando llegue a punto y Tab, abrirá todos los métodos
disponibles en PD. Entonces aquí realmente puedo echar un
vistazo a cualquier cosa, como si quiero
fusionar algo, luego
puedo darle al paréntesis, cambiar la pestaña en él y
leer cómo fusionarlo. Ahora bien, esto puede ser un
poco duro de leer, a pesar de que podemos ponerlo todo
el camino en la parte inferior aquí. Y es por eso que está
la documentación de los pandas, que se construye esencialmente a partir de la docstring con un
poco de trucos de formato. Entonces puedes ver aquí mismo
que ves lo que es esto, la firma del mismo. Y puedes
leerlo e incluso echar un vistazo a los ejemplos
y copiar sobre los ejemplos. Una cosa que hay que saber en el software es que este tipo de
códigos que están aquí, quiero decir, entonces nada genial. No tienes que bien, realmente no
tienes
que escribirlos. Puedes simplemente
copiarlos y decir, bien, necesitaba esto. Ahora, tengo un buen DataFrame
con la edad es cetera. Entonces copiar algo como
esto es súper común. Es justo lo que
hacemos en el software. La siguiente manera de obtener
ayuda es la buena voluntad. Y a veces hago la broma de que en las
entrevistas solo debes tener gente en Google Python y ver si muestra serpientes o
si muestra el logo de Python. Porque en algún momento google
empieza a
conocerte y te muestra
cada vez más Python. Y es una buena manera de ver que tienes mucha
experiencia en cinco. Entonces, cuando quieres hacer
cualquier tipo de pregunta, cuando estás atascado con cualquier cosa. Al igual que tienes un formato de datos muy
oscuro que quieres cargar. O simplemente tienes
un error que
no sabes realmente qué
hacer con tu copia sobre ella. Y digamos que tienes
un error de tipo, por ejemplo, solo echa un vistazo aquí y luego suele
haber uno
resaltado. Pero claro, Google
siempre cambia y a menudo te
llevan a los docs. Entonces en este caso son
los docs de Python. Y entonces uno de los enlaces
va a ser
StackOverflow también. Y StackOverflow
es este sitio web que bueno, es
extremadamente útil, pero tampoco es el
mejor lugar para los novatos porque algunos de los mejores expertos del mundo
en este sitio web
respondiendo a su pregunta. Pero si tu pregunta
no está bien formulada, algunas de las personas
en este sitio web
a veces pueden ser un poco
hostiles al respecto. No obstante, para navegar y
para encontrar soluciones, igual que tu pregunta
probablemente se haya hecho antes. Si no lo encuentras
en StackOverflow, intenta cambiar un poco tu
consulta de Google. Entonces encuentras diferentes tipos de resultados como qué tipo
de error de tipo o
tuviste una copia sobre todo
el nombre del
tipo error y todo eso. Así que realmente entonces quieres
desplazarte hacia abajo hasta las respuestas. Y este no es realmente
votado tanto a favor. Pero a menudo
tienes una votación a favor. Entonces eso es muy, muy popular. Y a veces incluso se pueden
obtener respuestas aceptadas. Como echar un vistazo a éste. Aquí tienes una marca de verificación
verde, lo que significa que
el autor de la pregunta ha marcado esta como
la respuesta exceptuada. Y se puede ver
aquí mismo que la gente pone mucho trabajo en
responder a estas preguntas. Tienes diferentes formas de ver esto con ejemplos de código y realmente
puedes ver qué hacer
a continuación con
tu tipo de error. Volvamos a Júpiter
y cerremos este. Porque esto también es algo que sí
quiero mostrarte. En Python. Las flechas son baratas porque simplemente
podemos hacerlas fácilmente. Si tenemos algo como
esto, nos dirá
enseguida qué está pasando. Entonces hay algo
raro al principio. Pero lo que realmente
primero hago con cualquier error, mucho tiempo que sea esto, esta es una flecha muy corta. Desplázate hasta la última
línea y echa un vistazo. Oh, bien, esto es
un error de sintaxis y dice
EOFinesperado mientras que política EOFS, EOFsignifica y un archivo. Entonces, si realmente no
sabes qué es esto, copia esto, revisa
Google y echa un vistazo. Si Google
te dice qué es esto. A menudo la búsqueda de Google es mejor que la búsqueda en
sus propios sitios web. Y aquí, significa
que se alcanzó el final de su código fuente
antes de que se completaran todos los códigos. Entonces volvamos a echar un
vistazo a nuestro código. Aquí. Si cerramos los paréntesis, nuestro código ya está terminado
y funciona bastante bien. Vamos, vamos
a generar otro error. Sí, algo que
definitivamente no podemos hacer es tener esta cadena dividida
por algún número. Entonces si ejecutamos esto, esto nos da un error de tipo. Entonces nos desplazaremos
hasta el fondo y diremos:
Bueno, mira lo que está
pasando aquí mismo. Y te dice que la división no es posible para cadenas y para enteros. Y realmente
pasar por flechas es tu manera de poder discernir
por qué a Python no le gusta lo
que has escrito aquí mismo. Ya que estamos en el tema de ayuda y no voy
a poder mirar por encima de su hombro. Y las clases que di un error muy común que
te puedes atrapar es que estos cuadernos Python no tienen que ser
ejecutados en orden. Entonces ves el pequeño
número justo aquí junto a lo que se ha
ejecutado y lo que no. Hagamos un pequeño ejemplo, agreguemos algunas cosas nuevas, nuevas aquí. Digamos aquí mismo
defino a, N, aquí. Quiero definir b. Y b va a
ser a por cinco. Y voy por aquí, experimento con esto. Tengo un vistazo a PD merge, tengo un error aquí,
lo cual está bien. Podemos dejar eso por ahora. Ejecute este código, tal vez
imprima algo. Y se puede ver que estos
números están fuera de servicio. Esto es importante más adelante. Entonces ejecuto esta celda y me
da un nombre de error, nombre de
error a no está definido. Y eso es porque esta celda
no tiene un número. Nunca se ha ejecutado. Entonces solo algo para
notar que tienes que ejecutar todas las celdas que
haces que quieras. Porque. Cuando ejecutamos este
y luego ejecutamos este, esto está completamente bien. Así que realmente echa un vistazo a los
números y la siguiente flecha. Y eso está muy
relacionado con esto, es que a veces
cambiamos algo
en algún lugar como aquí. Y cambiamos de a a B a seis. Y luego volvemos a ejecutar este código. Y de pronto echamos
un vistazo y b es 30, aunque a es cinco aquí. Y este es uno de
los grandes problemas que tiene la gente con la ejecución
fuera de orden. Y hay que tener
cuidado con esto. Entonces, o solo tienes que
rastrear qué celdas hiciste. Y sobre todo con esto, como hay como 107849, esto se vuelve muy difícil de
tener en cuenta. Especialmente puedes
eliminar estas celdas. Y a todavía va
a estar en la memoria. Así que todavía podemos ejecutar esto a pesar de que las celdas ya no
existen. Entonces a veces
solo hay que ir
al caramelo y decir
reinicio y salida clara, lo que borra todas
las variables y borra todas las salidas que
tenemos aquí mismo. Para que podamos ir aquí, darle a este gran botón rojo, y ahora tenemos un cuaderno nuevo con todo el código aquí dentro. Ahora podemos ejecutar esto para obtener todos nuestros
errores que tenemos, y ver aquí mismo
que a no está definido. Entonces tenemos que básicamente agregar una nueva línea aquí y
definir una de nuevo. Y de esa manera puedes
atrapar muchos errores en Júpiter
al echar un vistazo a los números aquí mismo, ¿te olvidaste de ejecutar algo o lo
hiciste fuera de orden? Sí. En total. Lo que quieres
hacer para encontrar ayuda en Python es, recuerda shift tap. Recuerda esa pestaña,
autocompleta tus consultas y te puede dar
información sobre qué es, qué métodos están disponibles
en básicamente cualquier cosa. Entonces quieres ser muy
bueno buscando cosas en Google. En algunas de mis clases, algunas de las personas
que me pusieron un poco bien con las que me hice amiga, se
rieron de mí en
algún momento y dijeron, tu clase podría haber
sido esencialmente solo Google esto porque en algún momento todo el mundo tiene que buscar cosas en Google y
hay algunas publicaciones divertidas
en Twitter además de mantenedores de bibliotecas teniendo
que Google cosas muy
básicas sobre sus propias bibliotecas
porque nuestros cerebros son tan confiables
y las cosas cambian. Y si quieres tener
la información más reciente, no
hay vergüenza en
mirar hacia arriba cuando hayas terminado con la búsqueda en Google, con mirar hacia arriba
en StackOverflow, copiar sobre algún tipo de código. Estarás mejor por ello. Ahora todas estas herramientas
para encontrar ayuda y
Python y ayudarse a ti mismo. Y esto te da
las herramientas necesarias. Sumérgete en
la ciencia de datos con el ciclismo.
6. 10 carga de introducción nueva: El primer par de clases
serán meter datos en Python. Entonces si tienes datos en las tablas están en tu
base de datos SQL, no coincide. Lo pondremos en Python
en una herramienta llamada pandas, que es esencialmente
excelentes esteroides en Python. Y vamos por tus datos.
7. 11 de carga de archivos de Excel y CSV: Esta es la primera clase
donde tocamos código. Así que abre tu cuaderno Jupyter si quieres codificar. Empezaremos con la carga de datos. Así que he proporcionado
algunos archivos extra y fuentes de valores separados por comas
CSV y nos pondremos en cargarlos. Podríamos escribir esto
a mano y te voy a mostrar en un ejemplo mucho más sencillo también
cómo escribir algo
así a mano. Pero por suerte,
con Python ahora mayor de 20 años, mucha gente ya ha
pensado mucho
en extender la
funcionalidad de Python. Así que podemos usar estos
pandas aquí y extender Python para cargar
datos en Python. Entonces lo que hacemos aquí es
simplemente decir pandas de importación. Y esto sería suficiente para, porque vamos a estar
usando mucho Pandas. Normalmente le damos una taquigrafía
hasta algún tipo de alias. El pd es uno muy común
que mucha gente usa. Y luego ejecutamos la celda y ahora tenemos
pandas y Python. Y para importar o leer datos, podemos hacer el PD, no leer, golpear pestaña y ver todas las diferentes formas en las que
puedes cargar datos en Pandas. En este curso,
vamos a echar un
vistazo a los más comunes que encontré en mi trabajo
como científico de datos. Pero también te voy a mostrar cómo
encontrar a los demás. Porque si realmente no
sabemos lo que estamos haciendo, siempre
podemos echar un
vistazo a la documentación de los pandas. Si bien podemos echar un
vistazo a todo lo que
podemos hacer con los pandas, como ya hemos leído
X0 aquí, también
podemos darle Shift Tab y echar un
vistazo a esta firma. Y verás que esto
se ve inquietamente similar a la documentación
porque pandas y todo Python en realidad viene con su
documentación construida. Y así es muy independiente
y muy fácil de usar. Entonces al principio solo necesitamos dar el nombre del archivo donde realmente
tenemos el archivo. Y esto va a ser data
slash housing dot XLSX, el nuevo tipo de archivo extra. Y cargando esto se ejecutará. Y vemos que tenemos todos
estos datos ahora en Pandas. No lo guardamos en
una variable en este momento. Pero lo que solemos hacer si
solo tenemos un conjunto de datos temporal, lo
llamamos df. Porque en Python, esto
se llama DataFrame. Entonces es básicamente una representación XO de una
sola hoja en tu Python. Porque queremos echarle un
vistazo. Después. Simplemente llamaremos a la cabeza en
nuestro DataFrame y echaremos
un vistazo a las primeras cinco filas. Podemos ver aquí montar los
encabezados y nuestros datos. Los archivos csv son un poco diferentes porque
los archivos CSV son datos sin procesar. Echemos un vistazo
aquí. Tengo los datos. De hecho, podemos echar un vistazo a los valores
CSV separados por comas en bloc de notas porque es
solo texto y es fantástico para compartir
datos entre sistemas, especialmente si tienes
programadores que quizás no tener Microsoft Office disponible. Esta es la mejor
manera de compartir datos. Nosotros pd leemos CSV y solo podemos darle
el nombre del archivo nuevamente. Así vivienda punto CSV. Y esto debería,
llamémoslo de cabeza justo en este caso. Esto debería darnos los
mismos datos y podemos ver que son los mismos. Aunque quiero mostrarte un truco
realmente genial. Si, sabes que algunos
datos están en línea como este conjunto de datos de
artículos medianos sobre el campo de código libre. De hecho, puede colorear pd, leer CSV, y simplemente
darle la URL. Pero esto va a fallar. Te voy a mostrar, tenemos
que aprender que las flechas y
Python, está bien. Está totalmente bien
cometer errores. Lea la última línea, pase datos de tokenización de errores. Entonces algo como esperar
algo diferente. Y puede que ya veas aquí
que esto no es un CSV, se
trata de un archivo TSV. Entonces alguien en realidad estaba
separando esto con pestañas. Y para poner tabulaciones, haz este
carácter de barra inversa t como separador. Y podemos importar
estos datos directamente desde Internet simplemente
dando la palabra clave correcta. Y esto es algo
realmente importante de ver, muy importante de aprender. Si echamos un vistazo a esto, hay muchas palabras clave
que podemos usar. Estas palabras clave son extremadamente útiles y ya
limpian tus datos. Se puede ver aquí mismo que hay algo que se llama NaN. Este no es un número
que tengamos que
limpiar posteriormente curando
la carga de este, ya
podemos echar un
vistazo a cosas como, ¿queremos saltarnos las líneas en blanco? Entonces es realmente,
pandas tiene un muy fácil de usar si quieres
experimentar con este. Dejaré esto en
la sección de ejercicios. Y puedes checar si ya
puedes limpiarlo. Algunos nans también tendrán
una sección dedicada de datos de limpieza más adelante. La carga de datos en
Python con pandas es muy fácil. Pruébalo con tus propios datos. Si tienes un archivo XL tirado
en tu computadora, recuerda que todo esto
está en tu computadora. Nada sale. Así que solo puedes imprimir
puntos pd y obtener tus
datos y jugar con ellos. En esta clase se trabajó a través de la
carga de tablas de Excel y
separamos por comas el valor
de los archivos e incluso echamos un vistazo a cómo cargar
datos de Internet. siguiente clase, echaremos
un vistazo a las tablas SQL. Algunos nano trabajan con ellos. Siéntase libre de omitirlo. La siguiente clase
será ese paseo para ti.
8. 12 datos de carga de SQL nuevo: Las bases de datos SQL son
una manera
fantástica almacenar datos y
ponerlos a disposición los científicos de
datos que trabajan con
SQL a lo que sea demasiado. Aquí hay cursos completos en Skillshare a los que voy a vincular. También los puedes encontrar aquí mismo
en el cuaderno. Sin embargo, es bueno tener
una visión general porque es muy fácil cargar los datos
una vez que sabes cómo hacerlo. Y si trabajas con SQL, esto será realmente
valioso para ti. La mayoría de las empresas no
almacenan esos datos en archivos
Excel porque México
se copia, se copia. Y de pronto terminas con la versión
final, final, final. Y probablemente esté en la PC de
alguien en alguna parte, tal vez en una computadora portátil. En cambio. Muchos lugares tienen bases de datos. En un servidor, esta base de datos que contiene toda esta
información que necesitas. Por lo general, esta forma de acceder a la
información se llama SQL, que es la abreviatura de Lenguaje de Consulta
Estructurado. Este es algún lenguaje en sí mismo. Sería demasiado
explicar esto en este curso. Si quieres aprender más, hay cursos sobre Skillshare y también hay
recursos como este, cuales están vinculados donde
puedes probarlo, hacer los ejercicios paso a paso, aprender a montar un consulta, obtener datos
en Python de manera avanzada. Es absolutamente suficiente para
volver a importar Pandas. Entonces podemos echar un vistazo y
ahí abajo está SQL. Lo que puedes hacer aquí son
en realidad tres diferentes. Hay una general, SQL, hay una consulta SQL. Hay una tabla que lee SQL
en la documentación. Ese suele ser un muy
buen lugar para empezar. Mira que hay
dos tipos de residuos. Si nos desplazamos hacia abajo, podemos ver que
hay diferente a la tabla SQL y la consulta SQL. Echemos un vistazo a la
consulta y esto necesita
que escribas una consulta SQL. Algunos de ellos pueden ser muy sencillos y te pueden ahorrar mucho espacio. Entonces, si tienes una tabla SQL
de base de datos grande solo carga toda la
tabla desde tu servidor. Además de Pandas, en realidad
queremos
importar alquimia SQL. Y luego a continuación esto
creará la conexión. Entonces se le llama un motor. Y echemos un vistazo a
lo que necesitamos aquí dentro. Entonces, si tienes una base de datos SQL
postgres, solo
podemos copiar esto. Esta debe ser la
ubicación de su base de datos. Aquí. Vamos a leer tabla de secuela
solo para que sea fácil. Y ahora, si tuvieras
tu base de datos SQL, puedes poner tu
nombre aquí, como por ejemplo ventas como la conexión aquí. Si quisiéramos
usar realmente el lenguaje SQL, tendríamos que
usar la consulta SQL de lectura. Y eso significa en este caso
que necesitamos definir una consulta que entre
en nuestra conexión. Por lo que esta consulta puede ser
muy, muy sencilla. Por supuesto, esta consulta puede ser
tan complicada como quieras. Así que en realidad tomamos la cadena multilínea
aquí de Python. Entonces podemos decir Seleccionar clientes y gasto total de ventas. Y
como es una mesa tan grande, queremos limitarla a mil entradas porque
solo queremos tener un aspecto inicial
y no queremos sobrecargar nuestra computadora. Además a eso. Queremos
decir que el año es 2019. Ahora podemos copiar
todo esto por aquí y seleccionar nuestros datos de nuestra
base de
datos imaginaria aquí mismo. uso de consulta SQL es, ojalá en esta
clase se trate de. Sql puede ser bastante fácil. Simplemente puedes obtener la tabla de la base de datos y trabajar
con ella en Pandas. Ahora, la siguiente clase
va a ser cómo cargar cualquier tipo de datos. Y vamos a demostrar que los pandas hacen todo un
poco más fácil.
9. 13 Carga de cualquier archivo nuevo: A veces tienes
datos raros y yo soy geofísico, trabajo con datos sísmicos. Y hay paquetes
que pueden cargar datos
sísmicos en Python al
igual que nuestros archivos CSV. Y en esta clase, vamos a echar un vistazo a cómo cargar cualquier dato y cómo
ponerlos a disposición. En Python, los pandas son geniales para tablas y
datos estructurados así. Pero a veces tenemos
diferentes formatos de datos, como solo un archivo de texto o
imágenes o formatos propietarios. Entonces, cuando estaba mentoriando clase en la conferencia estadounidense
Python, alguien me preguntó sobre este formato súper específico con el
que trabajan. Lo primero que
hice fue buscarlo en Google. Había una
biblioteca Python para ello, y te mostraré cómo usarla. Las bibliotecas Python más comunes
usarán el archivo de texto. A diferencia del
archivo de texto que tenemos aquí, es un CSV, pero
sigue siendo un archivo de texto. Como pueden ver,
lo que decimos es abierto y luego tenemos que darle el lugar donde
está y el nombre. Ahora cambiemos la pestaña a esto. Hay diferentes
modos para ponerse de pie. El modo es R. Echemos un vistazo a lo que realmente significan
estos modos porque puedes abrir
archivos en cualquier computadora, solo que la mayoría de los programas lo
hacen por ti. Y modo de lectura, modo derecho y en modo de anexar. Entonces quieres asegurarte de que si estás leyendo datos que no
quieres cambiar, esto se establece en r. Hagamos esto explícito. Entonces le damos a este archivo que
abrimos un nombre para que podamos
simplemente llamar a esta vivienda. Y Python, los espacios en blanco
son muy importantes. Entonces ahora tenemos un bloque
que voy a archivar está abierto. Y dentro de este bloque, por ejemplo podemos decir que los datos son iguales a lectura de puntos de
vivienda, y esto lee nuestros datos. Ahora bien, si salimos de
este bloque ahí, realmente
podemos trabajar con nuestra variable sin
tener el archivo abierto. Y esto es
increíblemente importante. Mucha gente que es nueva programación no lo sabe, pero la mayoría de los archivos
solo pueden ser abiertos por una persona y un
programa a la vez. Si se intenta acceder a
los mismos datos, se romperán los datos. Así que es muy importante
que abras tus datos, los guardes en variables
cargadas en Python, y luego cierres todo. Entonces si tenemos adherimos
en el estado de variable y
salimos de este bloque, Paul acaba de ejecutar esto
y pasar a la siguiente celda. Podemos hacer cosas con data bike, echar un vistazo a lo que hay en los datos. Y podemos ver
aquí mismo que se trata un archivo de texto sin
tener el archivo abierto, lo cual es simplemente una forma muy fácil
y accesible de hacerlo. También podemos echar un vistazo a la vivienda como nuestro manejador de
archivos aquí mismo. Y podemos ver que esto nos dice si la vivienda
está cerrada o no. Entonces aquí mismo, podemos ver que después de que se ejecute este
bloque, se cerrará. Echemos un vistazo a cómo se ve
esto por dentro de aquí. Entonces aquí dentro,
no está cerrada. Eso significa que podemos leer
diferentes líneas y todo eso. Sin embargo, en lugar de solo usar
el estándar Python open, podemos usar muchas bibliotecas
diferentes que también nos
dan finalmente manejadores. Para que pueda usar algo
así como, estoy enfermo. Por qué IO, del que probablemente
nunca has oído hablar antes. Y por eso
lo quiero quiero mostrártelo muy
rápido, que es sólo una manera
de importar esto. Después de importar esto, podemos
decir con segue I 0 punto abierto, darle el archivo, ponerle el nombre S, y luego cargar todos los datos
físicos en Python. Y después de su
sistema, el archivo, una vez más, este se
cerró y quedó a salvo. Entonces esto es realmente, esta es una forma muy general de ir sobre la carga de tus
datos en Python. Y como puedes ver aquí, nuestro CSV no se ve tan bonito como, como lo hace en Pandas. Pero con un poco de procesamiento, en realidad
podemos hacer que se
vea tan bonito como los
pandas para que podamos dividirlo por ejemplo en estos nuevos caracteres de línea, que es la diagonal inversa n. Y podemos ver que
esto ya da nosotros todas estas líneas aquí dentro. Y podemos seguir y
dividir cada una de estas líneas en la coma debido a esta coma
separada y así sucesivamente y así sucesivamente. Pero por eso
te mostré primero a los Pandas. Porque es mucho más fácil. Y creo que es muy agradable ir primero a estas
abstracciones de alto nivel, pero también ver como hacer
el trabajo y la espalda. Y en esta clase nos
han tenido una visión general de lo que hace
la declaración width L Can y cómo
cargar cualquier tipo de búsqueda de
datos para los cargadores de datos para
los formatos raros que a veces tenemos. Y creo que
definitivamente vimos lo fácil que nos lo hace
Pandas porque dividir un archivo CSV como Vout es realmente engorroso. Y luego limpiar los datos como valores
faltantes es aún peor. Y la siguiente clase en echar
un vistazo a enormes conjuntos de datos. Entonces, ¿qué pasa cuando
nuestros archivos se vuelven tan grandes que ya no
caben en la memoria, cómo podemos cargar estos datos
y cómo podemos manejarlos?
10. 14 enormes datos nuevos: Es bastante común que
sobre todo en las empresas más grandes, tengas conjuntos de datos
que ya no
caben en la
memoria de tu computadora. O que si haces
cálculos con ellos y el cálculo tardará
tanto que esencialmente
pides prestado y en algunos casos, tardarías más tiempo tener entonces el Universo
ya existe. Entonces eso significa que tenemos que encontrar formas de trabajar con los datos para que
sean pequeños y memoria. Hablaremos de eso. Pero también cómo muestrear los datos. Entonces tienes un subconjunto porque muchas veces es válido simplemente
tomar una muestra,
una
muestra representativa de big data, y luego hacer cálculos,
hacer la ciencia de datos sobre eso. Y esta es una en la
que nos estamos metiendo. Importaremos pandas como pd, y luego
cargaremos nuestros datos en el df DataFrame con CSV leído. Vamos a hacer esto
explícitamente ahora porque podemos cambiarlo más tarde para ver las diferencias entre los
diferentes procedimientos de carga y cómo podemos
optimizar nuestra carga. Esto nos da la siguiente huella de
memoria de nuestro DataFrame cargado
tendremos que decir deep equals true porque tenemos algunos objetos ahí dentro
que hay que medir. Aquí se ve que proximidad
al océano es bastante más grande que
todo lo demás. Y eso es porque la
proximidad al océano contiene datos de cadena. Entonces sabemos que es categórico. Vamos a echar un vistazo a
la cabeza muy rápido. Justo aquí. Es categórico y
todo lo demás son números. Los números son muy eficientes, pero teniendo cadenas y puede
haber mucha
memoria intensiva. Si echamos un
vistazo a los tipos profundos. Entonces los tipos de datos,
vemos que en este
momento la proximidad oceánica
es solo un objeto. Todo lo demás es
flotar, entonces un número. Pero el objeto
aquí mismo es lo que lo hace tan grande en memoria,
porque un objeto, podemos cambiar los tipos de datos de nuestro DataFrame cuando lo
carguemos hará esto
diciendo df de proximidad oceánica porque queremos
cambiar la proximidad oceánica. Copia todo eso
y anularemos nuestra proximidad al océano
con este punto como tipo. Y podemos usar un tipo de datos especial que tenga disponible
pandas, que se llama
categórico o categoría. ¿Qué? Esto mejora nuestro uso de memoria. Profundo es igual a verdad. Entonces solo vemos la
huella de memoria de las columnas. Y podemos ver que esto
mejora nuestro uso de memoria de proximidad
oceánica
significativamente incluso por debajo del uso de los números. Y así es como puedes hacer que tu dataframe sea más
óptimo de una manera sencilla. Ahora un problema obvio con
esto es que ya
tenemos estos datos en la memoria
y luego los estamos cambiando. Entonces la huella
de memoria de esto sigue siendo grande. Sólo lo estamos reduciendo
después. Lo que podemos hacer es cambiar los
tipos de datos durante el tiempo bajo. Así que echemos un
vistazo rápido en el docstring. Y ahí vamos. Es de tipo D. Y vamos a asignar un diccionario donde la clave es nuestra columna. Volveremos a usar la proximidad al océano. Y el valor va
a ser el tipo de datos. Eso significa que puedes usar tantos
como quieras. Yo hice un error tipográfico ahí y un error tipográfico
y vivienda que va a ir. Y usando esto, también puedes
asignar el tipo entero dos números y realmente cambiar tu carga en el momento de la carga. Entonces d de pequeño, Echemos un vistazo a la huella de
memoria de esto. Entonces USD de
uso de memoria pequeña, profundo es igual a verdadero. Y podemos ver aquí mismo
que esto automáticamente en el momento de la
carga cambió nuestra huella
de memoria del DataFrame. Entonces, ¿y si en lugar de cargar todo
el DataFrame
con todas las columnas, todas las características
disponibles, elegimos tomar solo un subconjunto
de las columnas? A lo mejor no necesitamos de todo. A lo mejor no necesitamos el precio medio de la
casa en esta. Entonces definiremos un nuevo DataFrame y cargaremos los
datos como siempre. Pero en este caso, definiremos las columnas. Entonces eso son columnas. Y en este caso
necesitaremos una lista. Echemos un vistazo, use
longitud y latitud. Y nosotros, también podríamos usar habitaciones totales o
algo así, pero solo usaremos la proximidad
al océano como antes. Solo pega esto en editado. Así que en realidad son los nombres de las
columnas por
entrada de lista y añadir proximidad al océano. Ahora bien, esto va a
salir mal y quiero
que aprendas que está absolutamente
bien cometer errores aquí. Porque en Python,
los errores son baratos. Podemos ver ese tipo de error. Dice que no
reconoce una de las palabras clave. Y eso es porque uso
columnas en lugar de usar Coles. Yo, honestamente no puedo recordar todas las palabras clave
porque hay tantas, pero por eso tenemos el
docstring y corregido. Al observar el DataFrame, solo
cargamos longitud, latitud y proximidad osha. Otra forma muy agradable de ahorrar
algo de espacio mientras se carga. Y de esta manera podemos cargar muchas filas con sólo unas pocas columnas. a veces el problema no es Sin embargo, a veces el problema no es
realmente cargar los datos. Todos los datos
encajan en nuestro DataFrame. Pero el problema es
hacer el cálculo. A lo mejor tenemos una función
muy
gasto, parcela muy cara
que queremos hacer. Entonces tendremos que
muestrear nuestros datos. Y Pandas hace esto
extremadamente fácil para nosotros. Cada DataFrame tiene disponible la muestra del
método. Acabas de proporcionar un número
y te da
tantas filas de tu
DataFrame como digas. En eso, echemos un
vistazo rápido a la docstring. Podemos definir un número o una
fracción del DataFrame. Y como es un proceso de
muestreo estocástico, puedes proporcionar
ese estado aleatorio, lo cual es realmente importante
si quieres recrear tu análisis y proporcionarlo a otro colega u
otro dato científico. Y entonces tendrás que introducir el
estado aleatorio ahí mismo. Entonces podemos ver aquí mismo que cambia cada vez que
ejecuto la celda. Pero si establecemos el
estado aleatorio a un número especificado, puede ser cualquier entero
que quieras. A mí me gusta 42. Y sólo ve aquí mismo
que este número es 2048. Y si vuelvo a ejecutar esto, este número no cambia. Entonces esto es algo muy
bueno a lo que acostumbrarse. Si tienes algún proceso aleatorio. Ese proceso aleatorio es genial cuando
lo usas en producción. Pero si quieres
recrear algo, quieres arreglar ese
proceso aleatorio, así es reutilizable. Lo que a menudo hago es ir en la primera celda
donde importo todas mis bibliotecas y arreglé el estado aleatorio y
ahí como variable. Y solo proporciono esa variable
en los procesos estocásticos. Eso hace que sea un
poco más fácil y muy fácil leer
para los próximos
científicos de datos que obtengan esto. Sin embargo, a veces hay
que sacar las herramientas grandes. Entonces usaremos task de x y no la
usaremos aquí mismo, pero puedes probarla en el
sitio web si vas a probarla ahora. Y anochecer básicamente
como DataFrames perezosos, por lo que no carga
todo el DataFrame en la memoria cuando apuntas al
dataframe o a los datos. Pero sabe dónde está y cuando se quiere
hacer la ejecución, hará la ejecución
y de una manera muy inteligente, distribuida
incluso sobre clústeres grandes. En esta clase,
echamos un vistazo a cómo minimizar la
huella de memoria de los datos. Entonces, cómo podemos cargar menos datos o cómo podemos cargar
datos de manera más eficiente. También te mostré un
vistazo rápido a algunas herramientas que puedes usar si quieres usar DataFrames
perezosos, por ejemplo
, DataFrames que están
en reposo cuando
los cargas y luego cuando haces el cálculo y lo
hace ese pedazo sabio. Por lo tanto, es una forma inteligente de lidiar
con grandes datos en reposo. En la siguiente parte, vamos a
echar un vistazo a cómo combinar diferentes fuentes de datos. Entonces, ¿cómo podemos realmente
florecer y obtener diferentes fuentes de información
para realmente hacer ciencia de datos?
11. 15 Combinación de fuentes de datos: El mayor impacto realmente proviene de combinar fuentes
de datos. Entonces tal vez tengas
datos de ventas y publicidad y
combines estos datos para generar nuevos insights. Y en esta clase
veremos cómo podemos fusionar datos, unir datos y agregar nuevos datos
a nuestro DataFrame. Como siempre,
importaremos pandas como pd y guardaremos nuestro DataFrame en df. Ahora dividiremos los datos
geográficos con
latitud, longitud y proximidad
oceánica en el subrayado df. Vamos, echemos un
vistazo a la cabeza. Y podemos ver que son
tres columnas, exactamente como definimos. Y ahora podemos unirnos a él. Unir fuentes de datos
significa que queremos agregar una columna a nuestro DataFrame. Así que tomaremos nuestro
guion bajo df GO y uniremos una columna del conjunto de datos
original a esta. Ahora bien, esto técnicamente es
hacer trampa un poco, pero solo está haciendo que sea
más fácil mostrar cómo lo hacemos. Bueno, elige el precio medio de la
casa para esta. Echemos un vistazo a todo
el marco de datos. Y podemos poner eso en nuestra
G. Podemos ver como esto ahora contiene el
geo DataFrame original unido con la columna valor
medio de la casa. Esto es un poco
más fácil de lo normal. Normalmente no tienes
todas las columnas disponibles, pero tendrá un vistazo a
cómo fusionar DataFrames. Ahora, si bien puedes ser un
poco más específico, primero
vamos a crear un DataFrame de precio con la longitud,
latitud y el precio
medio de la casa. Y lo que vamos a hacer ahora, uno, fusionar ambos
en un marco de datos. Así que tomamos el geo DataFrame
llamado geo dot merge. Echemos un
vistazo rápido a la docstring, cómo hacer esto realmente. Entonces queremos un DataFrame izquierdo
y el DataFrame derecho. Y creamos todo
definimos un método. ¿Cómo unirse a estos? El método interno significa
que solo guardamos los datos que están disponibles
en izquierda y derecha. Echemos un vistazo rápido al DataFrame izquierdo y
derecho. La unión natural
es la unión interior. Entonces solo las filas y
las columnas de ambos DataFrames están
ahí, eso están ahí. El izquierdo es de todo, desde la izquierda y solo el
derecho coincidente. Y la unión correcta es de
todo, desde la derecha
y la izquierda coincidentes. La unión exterior lo es todo. Entonces lo
llenamos de muchos sustantivos. Y tenemos que definir
la columna en
la que se fusionan el
DataFrame izquierdo y derecho. Entonces tomaremos latitud
en este caso. Entonces tenemos algo en lo que
realmente podemos combinar
nuestros conjuntos de datos. Si tienes tus fuentes de datos, izquierda y derecha deberían
ser los mismos datos, pero pueden tener nombres
completamente diferentes o que funcionen bastante bien. Se puede ver que ahora
todo está fusionado. También podemos
concatenar nuestros datos. Entonces eso significa que usaremos pd dot
concat para concatenar y proporcionar los DataFrames que
queremos combinar en
un DataFrame más grande. Ahora, en este caso tenemos dos. Podemos combinar
tantos como queramos. Y ahora mismo,
ves una buena manera de agregar nuevos datos o nuevos puntos de datos
a las filas del DataFrame. Dondequiera que no tenga
datos, se proporcionan NAN. No obstante, como
queremos unir los datos, proporcionamos una unión y el eje. Y se puede ver
que ahora todo está unido en un gran marco de datos. En esta clase, tuvimos
una visión general de
cómo combinar diferentes fuentes de
datos y generar un gran marco de datos para que
podamos hacer un análisis combinado. Y con eso concluye nuestro tutorial
de carga de datos. Y en el siguiente capítulo, vamos a echar un
vistazo a la limpieza de datos. Probablemente la
parte más importante de la ciencia de datos.
12. 20 de limpieza de datos: Después de cargar los datos, tenemos que tratar con
los datos en sí. Y cualquier fecha y
los científicos de datos te dirán que el 90% de su trabajo se realiza
en el paso de limpieza. Si no limpia
sus datos a fondo, obtendrá malos resultados. Y es por eso que
pasamos mucho tiempo echando un vistazo a
diferentes valores faltantes, valores atípicos y
cómo deshacernos de ellos. Y cómo mejorar realmente
nuestro conjunto de datos después de que cargamos. Porque a veces las
mediciones son defectuosas, a veces los datos
faltan o se corrompen, y a veces
solo tenemos a alguien en entrada de
datos que
realmente no está prestando atención. No importa. Tenemos los datos
que tenemos y
tenemos que mejorar los datos hasta un punto en el que podamos tomar
buenas decisiones basadas en datos.
13. 21 datos perdidos: El primer paso en el proceso de limpieza de datos para mí suele ser
mirar los datos faltantes. Los datos faltantes pueden tener
diferentes fuentes. A lo mejor ese dato está disponible, a lo mejor se perdió, lo mejor se corrompió. Y por lo general no es un problema. Podemos rellenar esos datos. Pero escúchame. Creo que muchas veces faltar datos es muy informativo en sí mismo. Entonces mientras podamos rellenar datos con promedio o
algo así, y te voy a mostrar
cómo hacerlo. A menudo, conservando
esa información de que faltan datos, hay mucho
más informativo que rellenar esos datos. Al igual que si tienes una tienda
online de ropa, si alguien nunca hizo
clic en la categoría bebé, probablemente no tenga hijo. Y esa es mucha
información que solo puedes tomar de esa información
no estando ahí. Como de costumbre,
importaremos pandas como pd. Y esta vez vamos a
importar el número faltante, la biblioteca como MS, NO. Y leeremos los datos
en nuestro TF DataFrame. Número faltante es esta
fantástica biblioteca que ayuda a visualizar los valores faltantes de una
manera muy agradable. Entonces cuando echamos un vistazo a la F, podemos ver que el total de recámaras tiene algunos
valores faltantes ahí dentro. Todo lo demás
parece estar bastante bien. Y cuando echamos un
vistazo al gráfico de barras, podemos ver que para realmente
echar un vistazo a lo bien que funciona
esta biblioteca, tenemos que mirar otro conjunto de datos y
hay un
dataset de ejemplo en números faltantes
que ahora se cargarán. Para ver. Cargaremos estos datos desde colcha. También tienes esto instalado. Pero abajo en el ejercicio
se puede ver cómo obtener estos datos. Cargaremos estos datos de colisión en la ciudad de Nueva
York. Son las colisiones de vehículos las que nos
meteremos en nuestra variable. Y estos datos tienen significativamente
más valores faltantes. Vamos a echar un vistazo rápido. Hay muchas columnas muy
diferentes y
ya podemos ver que hay
muchos sustantivos para exploremos con números
faltantes. Reemplazaremos todas
las cadenas nan con el valor NumPy np punto nan. Numpy es esta biblioteca numérica de
Python que proporciona mucha utilidad. Y np dot nan es solo un tipo de datos nativo donde
podemos tener no un número
representado en nuestros datos. Esto es lo mismo
que hace NumPy cuando tú, esto es
lo mismo que hacen los pandas cuando le dices que,
um, le den valores nan. En mis datos. A menudo esto
puede ser de -9.9 a cinco. Pero puede ser cualquier cosa realmente. Y puedes especificarlo
a lo que quieras, que luego se reemplaza como NAM. Entonces ya sabes que es
un valor faltante. Entonces echemos un vistazo a sí, voy a dejar eso para después. Echemos un vistazo a la matriz. Vemos que aquí hay más
columnas y las columnas son mucho
más heterogéneas. Entonces tenemos algunas columnas con
casi todos los valores faltantes. Y en el lado también podemos ver qué fila tiene más valores llenados y qué fila tiene el menor valor se llena. Siento que eso sea tan bajo. Echemos un vistazo
al gráfico de barras. Y podemos ver
qué columnas tienen más datos rellenados y cuáles tienen
más datos faltantes. Ahora el dendrograma es
una herramienta fantástica para ver las relaciones
en los datos faltantes. Cuanto más cerca esté la
ramificación a cero, mayor será
la correlación
de números faltantes. Entonces eso significa que en la parte superior derecha, se pueden
ver muchos valores
que faltan juntos. Esta es una manera fácil de contar todos los valores que
faltan en este DataFrame. Volvamos a cambiar a
nuestro DataFrame original, los precios de
la vivienda, donde
también podemos contar
los números nulos. Y podemos ver que el
total de recámaras es la única que tiene valores
faltantes con 207. Entonces además de
mirar el conocimiento faltante, podemos sacar
valores numéricos de esto. Echemos un vistazo al
total de habitaciones aquí y agreguemos una nueva columna
a nuestro DataFrame, que es total de
recámaras corregidas. Porque no me gusta
sobrescribir los datos originales. Prefiero agregar una nueva
columna a mi conjunto de datos. Y aquí decimos, llenar nuestros valores faltantes con el valor medio
de nuestro dormitorio total. Porque habitación total
es cuenta por lo que el valor medio,
el valor promedio, no tiene sentido, más bien
se llenará con el
valor más común en las recámaras. Ahí vamos. Esta sería la media
y esta es la mediana. Por suerte, los pandas pone a disposición todos
esos como método, por lo que es muy
fácil reemplazarlos, lo
reemplazarán en
su lugar esta vez, pero hay que tener
cuidado con eso. A veces no es la
mejor práctica hacer esto. Y ahora podemos ver el total de
recámaras corregidas no tiene ningún valor
faltante. Cuando echamos un
vistazo al total de habitaciones y total de recámaras
corregidas aquí mismo. Podemos ver que estos
son los mismos valores. Los valores que estaban
no tenían ceros, no
tenían ningún nans, no se cambiaban. Sólo se sustituyeron los valores con
nan. En esta clase, echamos un
vistazo a los números faltantes. Entonces, ¿qué pasa cuando
nos faltan datos? ¿Podemos encontrar relaciones
entre valores faltantes? Entonces solo algunos datos y se van perdiendo cuando otros datos
también van desapareciendo, ¿hay alguna relación en los números
faltantes en sí? En la siguiente clase, echaremos
un vistazo al formateo de nuestros datos. También eliminando duplicados
porque a veces es muy importante no tener entradas
duplicadas en nuestros datos. Así que en realidad podemos ver cada punto
de datos por sí mismo.
14. 22 de escalado y Binning: En esta clase primero, vamos a echar un vistazo a
escalar los datos. Eso es realmente importante porque a veces algunas de
nuestras características están en los cientos y
otras características son como en las decenas o
puedes agregar puntos decimales. Y comparar esas características
puede ser muy difícil, especialmente cuando estamos construyendo modelos
de aprendizaje automático. Ciertos
modelos de aprendizaje automático son muy susceptibles a los factores de
escalado. Por lo tanto, ponerlos en el
mismo tipo de escala numérica puede ser beneficioso para hacer un mejor modelo de
aprendizaje automático. Voy a introducir cada factor de
escalado o cada método de escalado en el propio método para que podamos
aprenderlo de una manera aplicada. La segunda parte y esta clase va a ser binning data. Entonces eso significa asignar clases a datos en función del valor numérico. En este ejemplo, usaremos valor de
la casa y
le asignaremos lujo de gama media, alta y baja. Sólo para poder
hacer un ejemplo de cómo
podemos asignar clases
basadas en números. Y verás que esto se
puede hacer con diferentes métodos que
dan diferentes resultados. Como de costumbre, estamos
importando pandas como pd y obtenemos nuestros datos de vivienda
en el df DataFrame. Haz un poco de espacio para que
podamos escalar nuestros datos. Echa un vistazo. Empezaremos
con un método muy sencillo. Bueno, escalamos nuestros datos
entre el mínimo y el máximo de
todo el rango de datos. Entonces voy a modificar la x
va a ser x menos el mínimo de x dividido
por el rango. Así máximo de x menos
un mínimo de x. y eso nos dará un valor 0-1. Para toda la columna. Escogeremos el valor medio de la
casa para esta. Entonces df punto el valor medio de la
casa es nuestra x. y tendremos que copiar
esto algunas veces. Así que solo voy a
ser perezoso con esto. X menos el mínimo de x dividido por el máximo de x
menos el mínimo de x Y tenemos que usar paréntesis
aquí para que esto funcione. Porque de lo contrario
solo dividiría la parte media. Se puede ver aquí mismo. Nuestra versión a escala en la
nueva columna que nombrará valor
medio de la casa minmax. Justo aquí. Podemos detectar claramente
que cometí un error, no agregar entre paréntesis
a la parte superior. Entonces cuando agrego paréntesis aquí, podemos ver que los datos
realmente escalan 0-1. Ahora podemos hacer algunos
binning reales sobre los datos. También hay varias opciones disponibles para hacer binning. Usaremos el primero, que es el método pd dot cut, donde tú mismo proporcionas los valores de
bin. Entonces esos son
intervalos discretos donde hemos estado nuestros datos basados en umbrales que ponemos nosotros usando el minmax que acabamos crear porque eso
nos hace la vida un poco más fácil. Porque entonces
sólo podemos definir las papeleras. 0-1 tendrá tres cuartas partes,
por lo que los cuartiles. Y eso significa que tenemos que
proporcionar cinco valores, 0-1 y 0.25 incrementos. Cuando ejecutamos esto, podemos ver que se proporcionan los
intervalos. Si no
queremos necesariamente que se proporcionen esos intervalos
, sino que proporcionemos nombres para ellos. Entonces en el caso de estos valores, podemos decir que el
primero es bastante barato. Entonces tenemos un
valor medio para las casas, un valor alto para las casas, y luego estamos en
el segmento de lujo. Por supuesto, puedes definir estas
clases como quieras. Esto es sólo un ejemplo
para que tomes. Haz que esto sea un poco más
legible en los datos comunes. De lo contrario, obtendremos un error. Y ahora con las etiquetas, podemos ver que cada
punto de datos ahora está asignado a una categoría que en realidad es asignarlos a precio
o rango de precios en este caso, y
sangría correctamente. Y podemos ver que ahora
tenemos una nueva columna con nuevas clases que
podríamos
predecir con un modelo de
aprendizaje automático más adelante. El segundo método que
veremos es el método q cap. Esto es un quanta se cortan. Así podemos definir
cuántos bins queremos. Y los datos se
asignarán en
medidas iguales a cada bin, se utilizarán los datos de antes. Entonces la casa valora minmax. Ahora bien, en el caso de la tarjeta cue, no
importa
cuál tomemos porque el escalado es
lineal en este caso. Entonces eso está bien. Pero para comparar, podemos ver que el
bin superior está ahora entre 0.5, 15.1 en lugar de 0.7, 5.1, podemos asignar las etiquetas para que sea
absolutamente comparable. Y podemos ver
aquí mismo que esto es ahora mucho más lujo y 01234
en vez de alto como antes. Entonces esto hace una gran
diferencia y hay que
estar al tanto de cómo funciona el niño. Son muy, muy útiles. Pero sí, es algo de lo
que hay que tener en cuenta. Vamos a asignarlo al
cuantil de rango de precios y sangría correctamente. Y tenemos una nueva columna con la
que podemos trabajar. En lugar de hacer esto a mano, podemos usar unas bibliotecas de
aprendizaje automático, scikit-learn para usar
el pre-procesamiento. Porque como viste, a veces cometes errores,
solo olvida paréntesis. Y si ya está en una biblioteca usándolo evitará este
tipo de errores
tontos que tienen consecuencias
muy graves
si no los atrapas. De SkLearn, que es la
abreviatura de scikit-learn. Importaremos el preprocesamiento
y usaremos los
escalares minmax para poder compararlo con nuestro escalado min-max
que hicimos a mano. Utilizamos la
transformación de ajuste en nuestros datos. Y la transformación de ajuste primero
estima los valores y luego transforma los valores que tiene al escalar
minmax. Ahora están justo aquí. Podemos ver eso, quiero decir, estoy acostumbrado a
leer estos errores, pero como errores, malos, rápidamente
descubres lo que pasó. Puedes buscar en Google los errores. Y este caso, proporcioné un serio y scikit-learn estaba esperando un DataFrame en su lugar. Echemos un vistazo,
comparemos nuestros datos. Y algunos valores son
iguales, algunos no lo son. Y esto parece ser un error de punto
flotante. Echémosle un vistazo real. El primer valor es falso. Así que podemos simplemente cortar en
nuestra matriz y echar un vistazo. Los primeros valores son. Y aquí mismo podemos ver que el
método scikit-learn proporciona menos, menos dígitos después de la coma. Ahora bien, esto no está mal porque nuestra precisión numérica no es tan precisa para ser honestos. Entonces podemos usar el método NumPy, NumPy dot todo cerca para comparar nuestros datos
con los otros datos. Entonces eso significa que nuestros errores serán evaluados dentro de la precisión
numérica. Ya sea que coincidan o no. Tan solo copia eso. Y podemos ver, sí, de hecho coinciden. Entonces dentro de la precisión numérica, hecho
son iguales. En lugar del escalar minmax, podemos echar un vistazo
y hay un montón de
métodos de preprocesamiento disponibles, como Max app scalar, normalizando transformadores
cuantiles. Pero uno que es muy bueno y uso bastante a menudo es
el escalador estándar. Y elegir eso te
demostrará que lo es. De hecho, usa exactamente lo mismo
solo ajusta los extremos de transformación. Usted obtiene sus datos en lugar
del escalador estándar. Si tienes muchos
valores atípicos en tus datos, puedes usar bien el escalar robusto en esta clase y ver
diferentes formas de escalar nuestros datos y cómo asignar
clases a nuestros datos en
función de los datos. Así que realmente hicimos una inmersión profunda y cómo preparar datos para el aprendizaje
automático y el final. Y ya verás cómo
lo hacemos en una clase posterior. En la siguiente clase, profundizaremos
en algunos temas avanzados. Vamos a echar un vistazo a cómo
construir esquemas para nuestros datos. Así que en realidad podemos
verificar si nuestros datos están dentro de ciertos rangos o
se adhieren a ciertos criterios que dijimos que los
datos tienen que tener si automatizamos nuestro
flujo de trabajo de ciencia de datos al final, esto es realmente importante
porque justo al principio, podemos decir que nuestros datos están bien o que nuestros
datos han cambiado a lo que es antes y que hay control de datos, problema de control de
calidad.
15. 23 esquemas nuevos: En esta clase no se van a
mirar esquemas. Entonces eso significa que cuando
cargamos nuestros datos, podemos ver si cada columna
que definamos se ajusta a una determinada clase predefinida o algunos criterios predefinidos que
creemos que este tipo de
característica tiene que tener. Y vamos a estar explorando
diferentes formas de hacer esto. Y qué pensar
al hacer esto. Así podemos automatizar
nuestro
flujo de trabajo de ciencia de datos desde el
principio hasta el final. Además de la
importación habitual de paneles que tenemos, vamos a importar la era de los pandas. Esto es obviamente
un juego de pandas, y es la biblioteca
que usaremos en este ejemplo para crear esquemas y validar
nuestro DataFrame. Hay otras bibliotecas como expectativas
de tarifas que
puedes consultar, pero en este caso,
pandorable dos. Primero, necesitamos
crear el esquema. El esquema es básicamente
nuestro conjunto de reglas, cómo se
supone que debe ser nuestro DataFrame. Entonces en este caso, usaremos un ejemplo fácil con proximidad
oceánica y lo
haremos fallar primero, decimos que la columna se
supone que es enteros. Entonces obtenemos un error de esquema. Y podemos ver aquí mismo
que nos dice todo el camino al final que estaba
esperando un int 64. No se molestó, Dios. Si reemplazamos esto por una cadena, podemos ver que ahora valida
y todo está bien. Ahora, además del tipo, también
podemos proporcionar criterios
que queremos verificar. Entonces tecleamos PA dot check. Y como queremos comprobar que la proximidad oceánica solo
tiene un par de valores, copiamos estos valores y decimos que se supone
que está dentro de esta lista. Si validamos este esquema, vemos que todo está bien. Hagamos que falle. Eliminar la bahía cercana, y vemos que
hay un error de esquema porque esto
no se pudo validar. Vamos a correr eso atrás,
hacer que eso funcione de nuevo. El texto no es lo único
que hay que validar. También podemos echar un
vistazo a otros valores numéricos. Entonces, si quisiéramos verificar la latitud estuviera
en una zona determinada, o que la longitud
estuviera en una zona determinada. Eso tiene totalmente
sentido en como, puedes comprobar si está
dentro de ciertos límites. Echemos un vistazo al total de habitaciones y comprobemos que es un entero. Ahora, ahora mismo no lo es. Pero podemos por supuesto, hacer que los datos se carguen como enteros
y luego validar los datos. Entonces nuestra carga como
siempre como un entero. Entonces lo que vamos a hacer es definir la columna y decir que
tiene que ser un entero. Ahora en este caso,
obviamente obtenemos un error de esquema porque
es un flotador en este momento. Entonces tenemos que hacer una
conversión de tipo o tenemos que recargar los datos
con un entero. Obtendremos el CSV de punto de vivienda. Y definiremos el tipo de datos
para que el total de habitaciones sea int. El problema aquí es que
hay en 32s y en 64. Entonces, ¿cuántos bits
hay en un entero? Y estos tienen que ser lo mismo. Entonces cuando miramos el
error de nuestro esquema, podemos ver que está
esperando una inseguridad para. Así que vamos a importar numpy y definir nuestra carga como en 64 aquí mismo. Y nuestro esquema una vez más valida porque
ahora hemos coincidido con el tipo. Entonces si lo hacemos en 64 cargando
y el inicio, podemos igualar esto con él en 64 que esperamos
y nuestro esquema. Son solo cosas a tener en cuenta
cuando estás cargando. Otra forma de validar nuestros datos en esto usando
una función lambda. Entonces una
función anónima que puede hacer comprobaciones
arbitrarias y devolver valores
verdaderos o falsos. En este caso, comenzaremos con la mediana
de edad de la vivienda. Hacer en cómo una columna
y agregar el cheque. Ahora estoy cometiendo un error
aquí por desgracia, pero ya verás en un segundo. Entonces P dot check agregará
lambda n es nuestra variable. Y comprobamos si n es ninguno, Todo no es ninguno. Y tenemos un
error de tipo aquí mismo. Esto es importante tener en cuenta. No es un error de esquema. Y eso es porque olvidé agregar un cheque tipo aquí mismo. Entonces comprobaremos si hay flotación. Y ahora todo vuelve
a
validar porque ninguno de los valores en la mediana de
edad habitacional está entumecido puede hacerla fallar
quitando el ninguno. Y eso romperá nuestro esquema. Podemos hacer muchas otras pruebas, pruebas de funciones
arbitrarias aquí, como si nuestro
n cuadrado estuviera por encima de cero, lo
cual debería si
las matemáticas siguen funcionando. Hay varias
razones por las que quieres hacer validación de
esquemas en
DataFrames están en tablas. Y es bastante común hacer
los que ya están en bases de datos. Y es una buena práctica
hacer esto en DataFrames. Puede ser que
solo obtengas datos defectuosos o que los datos
cambien de alguna manera. Y un ejemplo muy sencillo aquí
mismo son los porcentajes. En geofísica.
En ocasiones hay que calcular la porosidad, por ejemplo de rocas, que se puede
dar como porcentaje 0-1, así como decimal, o se puede dar como
porcentaje, 0-100. Ambos están completamente bien, pero hay que tomar uno para tener sus
cálculos correctos después. Así que vamos a crear un DataFrame
aquí con porcentajes mixtos, donde veas que
va a arrojar un error. Si validas estos datos. Guarde este DataFrame
y D de simple. Y crearemos un
esquema para esto. Haciendo que todos los datos floten 0-1. Así que crea el esquema DataFrame y agrega porcentajes
para la columna. Y realmente por qué estamos haciendo
este ejemplo es que
veas otros datos los datos de vivienda que
podemos hacer esto en datos
físicos también. Y para hacerte
pensar en tus datos, cómo puedes validar que
tus datos son de hecho correctos. Entonces vamos a tener un
cheque aquí mismo. Y podemos comprobar que esto sea
menor o igual a uno. Una vez más, tenemos que
validar nuestro DataFrame en el esquema y ver
que fallará. Y lo bueno es
que nuestros casos de fracaso están claramente delineados aquí mismo. Así podríamos entrar manualmente
y corregir esos datos. Todo lo que podemos corregir
todos los datos que
sabemos que están equivocados en
nuestros porcentajes o caer y obtener nuestro esquema validado con los datos de entrada
correctos. Entonces obtendremos todos los
datos que están por encima uno y solo dividiremos
todo por 100. Entonces solo tenemos porcentajes
decimales. Y ahora todo se
valida fácilmente. En esta clase, echamos un vistazo a diferentes esquemas y cómo
podemos validar nuestros datos
ya desde el principio. Y echamos un vistazo con un
simple ejemplo de porcentajes, por qué esto es tan importante de hacer. En la siguiente clase, tendremos
otra estrategia avanzada, que es la codificación del tema que es bastante importante
para el aprendizaje automático, pero también se puede aplicar
de varias maneras diferentes.
16. 24 de codificación nueva: En esta clase, vamos a echar un
vistazo a la codificación de nuestros datos. Entonces, si tenemos una variable
categórica como nuestra proximidad al océano, el proceso de aprendizaje
automático a menudo no puede lidiar con eso porque
necesita los números. Y vamos a echar un
vistazo a cómo podemos suministrar estos números
de diferentes maneras. Y además de eso, una vez que lo hayamos hecho, también
podemos usar estos números de diferentes
maneras para segmentar nuestros datos. Empezaremos con
los pandas habituales. Y luego vamos a echar un vistazo a la proximidad del océano
porque estas son cadenas y nuestras cadenas
son datos categóricos. Y los sistemas de aprendizaje automático a veces tienen problemas
con el análisis de cadenas, por lo que desea convertirlas a algún tipo de
representación numérica. pandas en sí tienen algo
llamado codificación one-hot. Y esta es una codificación ficticio. Entonces, esencialmente, cada
valor en las categorías obtiene su propia columna donde
es verdadero o falso. Entonces cada valor que estaba
cerca de la bahía ahora tiene uno en la columna de bahía cercana
y cero y todo lo demás. Fusionemos estos datos con
el DataFrame original. Entonces podemos comparar esto con otros tipos de codificaciones y ver cómo podemos
jugar con él. Nos uniremos
a esto y a su DataFrame. Y podemos ver justo
aquí cerca de la bahía. Uno para cerca de la bahía, tierra adentro es uno para tierra adentro
y cero en todas partes. Alternativamente, podemos usar el paquete de preprocesamiento
de scikit-learn. Scikit-learn nos da
objetos codificadores que podemos usar. Así que asignaremos este objeto
codificador de un solo caliente a la tinta, y ajustaremos esto a nuestros datos. Lo bueno de
estos objetos es que tienen un par de métodos que son realmente útiles que ahora
podrán explorar. Adaptemos esto a
los datos únicos que tenemos en nuestra proximidad al océano. Y luego ver cómo este codificador
trata realmente con nuestros datos. Después de ajustar nuestro codificador
a nuestros valores únicos, podemos transformar nuestros datos. Si lo deletreamos bien. Sí,
convertir esto en una matriz
nos da la codificación one-hot
para nuestros valores únicos. Entonces solo uno en cada
columna y cada fila. Ahora transformando datos reales. Así que no solo los valores únicos deberían darnos algo muy parecido a lo que guardamos en
el DataFrame. Más arriba. Convierta esto en una matriz. Entonces tenemos valores y
la cuarta columna. Aquí mismo se puede ver cerca de la bahía. Mismo. Ahora, tal vez se pregunten por qué estamos haciendo
este trabajo redundante. Pero con este
objeto encoder, como mencioné, tenemos algunas
cosas realmente bonitas que podemos hacer en un par de líneas y podemos usar la matriz que
tenemos de antes. Voy a usar
NumPy porque
solo estoy más acostumbrado a tratar
con objetos NumPy. Y podemos convertir
esta matriz de nuevo ahora, lo cual no es tan fácil
con otros métodos, pero como tenemos
este bonito objeto que tiene todos estos
métodos disponibles, podemos usar la transformada
inversa, proporcionar esa matriz a
esta transformación inversa, y recuperar las clases
reales porque el objeto recuerda la clase
en lugar de que encajaba en. Y también podemos obtener todos
los datos que se almacenan dentro del objeto
sin realmente proporcionarle valores. Así que realmente solo una forma ordenada de
lidiar con el preprocesamiento. Obviamente, a veces queremos algo
diferente a la codificación one-hot. La codificación en caliente puede ser un
poco engorrosa para trabajar con ella. Entonces vamos a echar un vistazo
al paquete de preprocesamiento y podemos ver que ahí está etiquetado por
un a risers etiquetar codificadores. Pero ahora mismo solo echaremos
un vistazo al codificador ordinal. El codificador ordinal asignará
un número en lugar del, en lugar de la categoría. Y eso básicamente
solo significa que es 0-1234 dependiendo
del número de clases. Y hay que tener
cuidado con esto, como en un modelo lineal, por ejemplo los números importan. Por lo que cuatro sería mayor que 04 sería mayor que tres. Entonces, codificarlo como ordinal sería una mala
idea y un modelo lineal. Pero ahora mismo, para
esto, es bastante bueno, como si usamos un
tipo diferente de modelo más tarde de lo que estamos completamente justificados
en usar un codificador ordinal. Esto marcó nuestra última clase y
la sección de limpieza de datos. Así que echamos un vistazo a cómo podemos codificar la información
de diferentes maneras. Así podemos usarlo en modelos de
aprendizaje automático, pero también guardarlo en nuestro DataFrame como información
adicional. En la siguiente clase,
vamos a echar un
vistazo al análisis exploratorio de datos. Así que haciendo la
inmersión profunda en nuestros datos.
17. 30 análisis de datos exploratorio: En esta clase, vamos a echar un
vistazo a los informes
generados automáticamente. Y muchas veces eso
puede ser suficiente. Desea una visión general
de sus datos y los
conocimientos más comunes sobre sus datos y generará estos
informes y será reproducible para usted en cualquier tipo de conjunto de datos
que tenga. Esta herramienta es muy poderosa. Después, vamos a
echar un vistazo a cómo generar estos insights
nosotros mismos también. Porque a veces
quieres saber más de lo que este reporte
solo te da. Y además, si sólo se tratara
de ejecutar esta utilidad, la ciencia de
datos, no
se pagaría eso. Bueno, para ser sinceros, este es un buen primer paso. Conseguir esta visión general sobre
tus datos es realmente importante. Pero luego necesitamos
profundizar en nuestros datos y realmente desenterrar las pequeñas características
que tenemos que encontrar. Importaremos pandas y
luego obtendremos nuestro DataFrame y la variable DF
S que siempre hacemos. Después importaremos el reporte de perfil de la Biblioteca de
perfiles de pandas. Y estoy bastante seguro de que se
sorprenderá de lo práctico que
es en realidad este proceso de generar este informe. Y si le
quitas algo a esto, creo que esto es todo. Esta utilidad realmente
le quita muchas cosas que
solíamos hacer manualmente en Pandas. Y te voy
a mostrar cómo hacerlo de todos modos, porque es muy bueno
entender lo que realmente estás
haciendo de fondo. Pero esta herramienta es increíble. Por lo que generas automáticamente todas las estadísticas sobre tus datos. Ves que cuenta tus
variables y te da la visión general de cuántas son numéricas y cuántas
son categóricas. Observe que no suministramos características de categoría
ni cambios de tipo de datos. E incluso conseguimos inflamación. Cómo se distribuyen nuestros datos. Sin embargo, es un poco
difícil de ver en nuestro cuaderno. Entonces es por eso que vamos
a utilizar una versión
específica de notebook, que es widgets de perfil da2. Y aquí tenemos un widget de visión general muy
agradable con la misma información que el reporte de perfil de antes. Podemos ver
aquí mismo que incluso nos
dice el tamaño y la memoria y nos
dice cuándo se
inició y terminó el análisis. Cómo se puede recrear
este análisis. Te dice todas las advertencias como correlaciones altas, altas. Ahora entre
latitud y longitud, está bien. Valores faltantes. Y luego sobre las variables, puedes echar un vistazo a la
distribución de tus datos. que puedas platicar con los resultados y echar un
vistazo al histograma. El histograma
también es pequeño ahí arriba, pero es muy agradable echarle
un vistazo a lo grande también. Y puedes hojear
todas tus variables, ver que le faltan
valores a la izquierda, tienes advertencias al respecto. Y realmente obtenga toda
la información que necesita para obtener una
visión de sus datos. ver si hay
algún valor común que aparezca todo el tiempo. Ahora bien, esto era 55 valores
realmente, ¿no es Coleman? Consulta los
valores mínimos y máximos que tienes. Así que un poco de tener una idea
de la gama. Y cuando echamos un
vistazo a nuestros ingresos, que es más una distribución, también
podemos ver la distribución
ahí. Y en nuestra característica categórica, la proximidad al océano,
podemos verte algo
muy importante. Isla sólo tiene cinco entradas. Entonces tenemos una especie de conjunto de datos
desequilibrado aquí que no hay
muchos hogares en la isla. Luego haremos clic y echaremos
un vistazo a las interacciones. Entonces mira como una variable
cambia con la otra. Si echamos un vistazo a la
longitud contra la latitud, eso está
correlacionado negativamente, longitud, longitud, el mismo valor siempre
está correlacionado positivamente. Ahora bien, si echamos un vistazo al valor medio de la
vivienda
frente a todo lo demás, realmente
podemos ver
cómo estos interactúan, cómo estos cambiaron
entre sí. Total de dormitorios
frente a hogares, e.g., está correlacionado positivamente. Algo bueno para saber. Y esto es solo una herramienta
poderosa para ver
realmente cada variable
contra otra. Después haremos click sobre
las correlaciones. Y la medida de
correlación lineal estándar entre uno y menos uno
es la Correlación de Pearson. Y aquí podemos ver lo que vimos antes que una
variable consigo misma, por lo que longitud contra
longitud siempre será uno y todos los demás valores deberían estar en algún lugar
entre uno y menos uno. Y de esa manera realmente se pueden ver las relaciones entre los datos. Spearman es un poco
más no lineal, pero generalmente la gente prefiere
velas dos especímenes, y luego hay pi k Así que phi es una medida entre
dos variables binarias, generalmente activadas en la parte superior derecha para leer más sobre estos. Echa un vistazo a los valores faltantes. Y esto puede recordarte
algo que hicimos antes. Y no soy el
único que piensa que la
biblioteca de números faltantes es increíble, obviamente, porque esto da ideas
muy similares
sobre esta pestaña. Y luego también podemos echar un
vistazo a una muestra de nuestros datos. Por último, conduzca a esto. Podemos tomar nuestro reporte
de perfil y
podemos generar un reporte de
perfil explorativo. Este es más
interesante cuando se tienen diferentes tipos de datos. Entonces si también tienes texto o
archivos o imágenes en
tu dataframe, en tu análisis de datos. Entonces realmente no es tan
aplicable aquí mismo. En general, sin embargo,
puedes ver que este reporte ya
repasa muchas de las
cosas que quieres
saber en tu análisis exploratorio de
datos. Generalmente, quieres conocer
las estadísticas de tus datos, las correlaciones de tus datos, valores
faltantes en tus datos y ver realmente cómo
los datos
impactan entre sí y qué
datos pueden predecir cada uno otro. Está bien si esto
es lo único que le quitas
a este curso. Pero realmente, profundicemos en cómo podemos generar
este tipo de insights nosotros mismos. En las próximas clases. Rápidamente te muestro
cómo meter esto en un archivo. Entonces tienes perfil punto a
archivo y luego le das un nombre. Y luego obtienes este
hermoso sitio web donde puedes dar click y compartirlo
con colegas donde pueden echar un
vistazo a tu análisis. Dirá que es perfil de
aprendiz o en el
reporte, y eso es bueno. No solo use esto, use esto como
punto de partida para hacer un análisis más profundo y para inspeccionar
realmente sus datos. Pero esto le quita
mucho trabajo a nuestro trabajo cotidiano
de ciencia de
datos.
18. 31 Exploración visual: Para EDA, me gustaría
primero mirar las parcelas. Entonces echaremos un vistazo a
las visualizaciones que nos dan una comprensión intuitiva de
las relaciones en los datos. Relaciones entre
entidades, correlaciones y también las distribuciones
de cada entidad. Y vamos a estar usando Seaborn, lo que hace que todo
esto sea extremadamente fácil a solo generalmente con una
o dos líneas de código. Primero, estamos importando pandas
como de costumbre y cargamos nuestros datos. Además, cargaremos la biblioteca de plotting
Seaborn. Seaborn se
abrevia comúnmente como SNS. Y la primera gráfica para nuestra visualización de datos
va a ser una gráfica par. Ahora, una trama de par trazará cada columna contra cada
columna, incluso contra sí misma. Entonces, cuando trazar el total de
habitaciones contra sí mismo, obtendrá la distribución
del total de habitaciones. Y si trazaste
contra cualquier otra columna, obtendrás un diagrama de dispersión. Este diagrama de dispersión, así como la distribución pueden
ser muy informativos. Una de mis parcelas favoritas
para hacer para una visualización, aquí
mismo podemos ver que por ejemplo nuestros datos de latitud y longitud aparentemente tienen dos picos. Entonces parece que nuestros datos de geolocalización están
enfocados alrededor de dos spots. Podemos ver que hay algunas correlaciones
muy fuertes. Y la mitad de nuestra trama, eso es porque tenemos algo de dispersión lineal aquí
mismo. Y cada otra característica
que vemos
aquí mismo se distribuye de
ciertas maneras como
esta está dispersa por
todo el lugar
y podemos ver algunos recortes en los bordes. Entonces probablemente alguien tomó
como máximo algunos datos. Además de la trama par, podemos crear una parcela par
que es coloreada por una clase. este momento, la única clase que
tenemos disponible como la proximidad oceánica en tu
exploración para el proyecto, sería realmente genial si
experimentas con esto, tal vez combinas esto con el ejercicio de
binning que hicimos. Se necesita un poco para que esto se cargue. Por eso en este momento solo muestreé
1,000 muestras, porque queremos obtener la
parcela relativamente rápido. Sin embargo, esto da una visión
muy buena cómo se
distribuyen las diferentes clases entre sí. La leyenda de la derecha nos
da qué colores cuáles. Y quiero bajar su
latitud y longitud ahora mismo porque esas características están fuertemente
correlacionadas entre sí y ahora mismo solo
ocupan espacio en nuestras parcelas. Así que realmente podemos hacer más uso de nuestra trama al
deshacernos de estos. Ahora, en la gota, tengo que añadir las x's porque queremos
dejar esto de la columna. Y entonces nuestra parcela
debería poder trazar con algunas parcelas menos en
la, en la cuadrícula. Entonces cada parcela es un
poco más grande. Y eso ya nos da
mucha información. Entonces podemos ver que nuestros datos están relativamente
igualmente dispersos, excepción de los datos de la isla. Ese dato de isla parece
tener un pico muy agudo. No obstante, recuerda
que los datos de nuestra isla tienen muy pocas muestras. Realmente sesga mucho
los resultados. No obstante, tal vez solo
queremos trazar la
distribución de nuestros datos. Para esto, podemos
usar la gráfica KDE, que es la abreviatura de la estimación de densidad
del kernel. Entonces vamos a echar un vistazo a cómo se distribuyen
nuestros valores medios de vivienda. Además de esta trama, también
podemos volver a
dividir esto por matiz. Desafortunadamente, no hay una
buena forma incorporada de hacer esto, como para la parcela par. Así que iteraremos sobre los valores únicos en
nuestra proximidad al océano. Y esto es un poco
de una solución, pero me gustó mucho esta trama, así que de todos modos te mostraré
cómo hacerlo. Y en mi enseñanza suele surgir esta pregunta de todos modos. Entonces espero que esta trama lo haga,
espero que esta trama le
funcione también a usted. Así que subconjuntaremos nuestros datos. Usa la proximidad oceánica
que es igual a la clase, que es nuestro iterador
sobre los valores únicos. Eso significa que tenemos nuestra trama
dividida por nuestra clase. No obstante, en estos momentos la leyenda no se ve particularmente bien. Cada leyenda solo dice el valor
medio de la vivienda. E idealmente nos
gustaría que la leyenda, por
supuesto que dijera la clase. Así que podemos proporcionar una etiqueta
aquí mismo que contenga el nombre de
nuestra clase. Y de esa manera tenemos
una pequeña parcela bonita, tiene todas nuestras distribuciones. Bueno, podemos ver que el interior tiene una distribución muy diferente
a la mayoría de las otras. Y claro, la isla
está sesgada a la derecha, lo que indica un precio más alto. Pero una vez más, no
hay muchos datos ahí, así que es un resultado
un poco sesgado. Ahora, a lo mejor queremos echar un vistazo a más de
las tramas de dispersión. Hacer un diagrama de
dispersión es muy fácil. Bueno, incluso podemos
ir un paso más allá. Hay algo que
se llama una trama conjunta, donde tenemos las
gráficas de dispersión y las partes inferiores. Podemos trazar la
distribución de los datos. Entonces generalmente un histograma, también
puedes hacer
otros diferentes. Estos son extremadamente agradables para
señalar cómo los datos co-varían. En el caso de por ejemplo habitaciones
totales y población, vemos una distribución muy clara que indica una tendencia
básicamente lineal. Entonces algún tipo de
correlación lineal entre los dos. Y esta trama es muy fácil. Simplemente le das la función, el nombre de
la columna y el DataFrame y Seaborne colocan muy
bien con pandas. Aquí mismo, también puedes
ver las distribuciones
y las etiquetas se aplican
automáticamente. Esta parcela tiene un par
de opciones diferentes. Ya viste que
hay una opción hexagonal. También podemos hacer una regresión
lineal, por lo que ajustar una línea de tendencia con
incertidumbre a nuestros datos. Así que realmente podemos ver si un modelo lineal realmente se ajusta a nuestros datos o es
algo más debería ser. Ahora aquí podemos ver que valores atípicos sesgan
un poco los resultados al menos. Y además, podemos echar un vistazo a una
característica diferente solo para ver cómo cambia nuestra
regresión lineal, por ejemplo. Esta característica parece estar muy fuertemente
correlacionada con el total de habitaciones. Así que reemplace población
por hogares. Y podemos ver que esto es, esto es tan lineal como realmente obtienen los datos
verdaderos. Creo que si
ahora copiamos esta
población sobrereemplazada con hogares, entonces encajamos una línea. Podemos ver que la sombra detrás de la línea
básicamente no es visible, por lo que la incertidumbre básicamente
no está ahí en estos datos. Una manera muy agradable de ver cómo
se ajusta nuestra regresión lineal a los datos. En lugar de la parcela de par, también
podemos hacer un
mapa de calor de la correlación. Entonces eso solo nos da la representación
numérica de nuestro coeficiente de
correlación de Pearson. Y podemos ver que la diagonal es una como
se supone que debe ser. Nuestra
latitud y longitud están
correlacionadas negativamente porque la
longitud es negativa. Y en el medio
tenemos un cuadrado de fuerte correlación que definitivamente
debemos investigar. Eso es muy interesante. Y en general, solo una buena manera de inspeccionar
sus datos también. Podemos copiar esto de nuevo y simplemente jugar un
poco con él solo para mostrarte que aquí
no hay nada horneado, realmente
puedes
jugar con, con él. Es un campo de juego abierto para explorar
realmente tus
visualizaciones. Esta magnitud 0-1,
ahora nos muestra que ingreso medio se
correlaciona bastante alto en comparación con el valor
medio de la vivienda. Y en realidad no lo
vi antes. Entonces, solo revisando esto, cambiarlo un poco puede darte más información. Entonces probar esto
desde el estándar, desde las visualizaciones estándar puede ser extremadamente valioso. Podemos agregar anotaciones a esto. Ahora esto es un poco desordenado. Entonces redondearemos nuestros números
al primer decimal y veremos que esto se
ve mucho mejor. Esto también se puede hacer con los datos
originales. Esta clase dio una visión general
de las diferentes parcelas que puedes usar para
entender mejor tus datos. En la siguiente clase, realmente
veremos los números subyacentes
debajo de estas gráficas y cómo extraer números
específicos que le dirán
más sobre sus datos.
19. 32 estadísticas descriptivas: En esta clase daremos seguimiento a la visualización
de
que acabamos de quedarnos. Entonces vamos a echar un vistazo a los
números detrás de las gráficas. Las estadísticas pueden ser una palabra un
poco aterradora, pero en realidad son solo números
significativos o indicadores clave de rendimiento de tus datos los que
te informan sobre los datos. Entonces, la media, por ejemplo, es solo el promedio
de todos sus datos, mientras que la mediana, por ejemplo es el valor más común. Y esta desviación estándar, por lo que STD solo describe
cuánto varían tus datos. Entonces, ¿qué tan probable es que encuentres datos
alejados de la media? Y exploraremos todo esto
en esta clase y realmente profundizaremos estadísticas
descriptivas y cómo obtenerlas
a partir de tus datos. Al principio, vamos a
importar nuestros datos y luego en realidad podemos simplemente calcular estadísticas en
filas proporcionando la fila. Entonces df dot house, mediana de edad. Y luego tenemos la
media y mediana y desviación
estándar disponibles como métodos para calcular
directamente sobre los datos. La media es la
media en este caso, y la mediana es el valor
más común. Básicamente, si queremos obtener estadísticas
agregadas sobre
todo el DataFrame, simplemente lo llamamos punto describe en el DataFrame o un
subconjunto del dataframe. Esto nos da el conteo, la media, el estándar y los cuartiles de nuestros datos. Cuando juegues con esto, asegúrate de revisar la
cadena de documentos para lo descrito. Se puede hacer mucho más con él. Entonces podemos agruparnos por nuestros datos. Y grupo por acción tiene que hacerse por algo que
podamos agrupar por nosotros. Entonces usaremos la
proximidad oceánica en este caso. Y podemos calcular la media para estos grupos
sobre cada columna. Entonces esto realmente no tiene mucho
sentido una longitud, pero para todos los demás valores, por lo tanto, podemos obtener
grupos a estadísticas. Y adicional, podemos usar
el método AC para agregado. Y ahí básicamente podemos
definir un diccionario con todas las estadísticas que
queremos calcular
en una columna dada. Longitud, por ejemplo, vamos a echar
un vistazo a min-max media. Y podemos copiar esto para usarlo para otras
funciones también. Y realmente, así que
no estás limitado a estos e incluso
puedes suministrar funciones
a este agregador. Y no tienen que
superponerse también. Entonces, para habitaciones totales, puedes cambiar esto para que sea el valor medio
en lugar de la media. Porque, bueno, eso tiene un poco más de
sentido para obtener la mediana. Y para nuestro ingreso medio. Bueno, solo trata de obtener el
sesgo de nuestra distribución. Y aquí podemos ver que nuestro nuevo DataFrame que
sale de esto está lleno de nan
donde no
hay valores disponibles donde realmente
no tienen sentido. Pero realmente podemos
sumergirnos en las estadísticas aquí. Otra pequeña herramienta ordenada
solo para dar una visión general de las columnas son los métodos de recuentos de
valores. Entonces, en la proximidad del océano, por ejemplo, podemos llamar al método de recuentos de
valor para obtener una visión general de cuántas muestras
hay en cada una de estas. Así que muy bueno para tener una idea cómo se
distribuyen nuestros datos entre las clases. Para los mapas de calor que
generamos antes necesitábamos calcular la
correlación entre cada una, cada columna contra la
otra columna. Y podemos ver aquí
mismo que
tenemos estos datos
disponibles fácilmente. Y el método call
también nos da la oportunidad de cambiar
la correlación que utilizamos. Así puedes
cambiarlo a spam y por ejemplo realmente muy similar a lo que teníamos en el reporte
generado automáticamente. Aquí puedes
sumergirte en los datos y ver
realmente cómo nuestros datos
se correlacionan por número. En esta clase, echamos un
vistazo a las estadísticas descriptivas, así que a los números reales , los valores
promedio y
cómo podemos extraer estos números específicos y tomar
decisiones basadas en ellos. En la siguiente clase,
vamos a echar un
vistazo a los subconjuntos de esos datos. Entonces, ¿cómo seleccionamos partes
de los datos y cómo podemos calcular estos
números en esas partes? Porque a veces,
como vimos aquí, Island solo tiene cinco muestras
en todo nuestro conjunto de datos. Entonces, ¿cómo podemos
asegurarnos de extraer esos datos de nuestro DataFrame
y explorarlos más a fondo?
20. 33 subconjuntos nuevos: En esta clase,
aprenderemos a extraer subconjuntos de nuestro conjunto de datos
porque a veces, por ejemplo solo
queremos enfocarnos en
una ubicación determinada o queremos enfocarnos en un
subconjunto de clientes. Y esos segmentos
son realmente
fáciles de extraer usando Pandas. Y te voy a mostrar
como hacer esto. Entonces primero cargaremos nuestros datos, y luego tomaremos nuestro marco de datos df y echaremos
un vistazo a la longitud. Porque podemos tomar nuestro marco de datos df y simplemente
realizar lógica normal en él. Entonces en este caso, queremos que sea inferior a
menos uno a dos y sacemos un serio de ello con valores
verdaderos y falsos. Entonces una serie booleana. Podemos usar esto para elegir filas
en nuestro DataFrame original. Y podemos ver aquí mismo
que esto es sólo una vista. Entonces tenemos que
asignarlo a una nueva variable. Echemos otro vistazo a
otra forma de seleccionar subconjuntos. En este caso, queremos echar un vistazo
a proximidad
del océano porque
seleccionar subconjuntos de nuestras categorías es muy importante para algo que
haremos más adelante que se refiere a la
equidad de la IA y la IA ética. Entonces podemos elegir aquí que solo cerca de la bahía y del interior
debería estar ahí dentro. Obtenemos
una vez más una serie booleana de
esto que podemos usar para cortar en nuestro DataFrame u obtener un subconjunto
de nuestro DataFrame. Podemos ver esto aquí mismo, y podemos ver que tiene
menos robustos que antes. También podemos combinar diferentes
tipos de lotería x2. Bueno, para ser arbitrariamente complejo. Y por qué tenemos que hacer
aquí mismo es usar el operador AND. Pero en este caso, tiene
que ser el ampersand. El ampersand es un operador
especial en Python para hacer
comparaciones bit a bit. Y se puede ver
aquí mismo eso y va a fallar porque los operadores bit sólo una mano muy corta
para comparar a los Booleanos. Y hay que tener
cuidado de usar paréntesis en conjunto
con un operador bit a bit. Aquí, sólo vamos a
jugar un poco
con lo verdadero y lo falso. Para que puedas ver cómo
se combinan estos cuando los usamos y cuáles usarán los
mismos con un operador OR. Pero claro tenemos que
tomar el operador bit a bit, que es este pozo, símbolo de tubería. No sé si tienes un nombre
diferente para ello tal vez, pero está en pantalla, lo
tienes en tu cuaderno. Y aquí tenemos la elección
de las cosas que están en. La elección de proximidad oceánica
que está cerca de la bahía tierra adentro, o D de longitud
es de -120 a uno, echamos un vistazo a
los valores únicos en nuestro subconjunto de proximidad oceánica. Podemos ver que hay valores que no están en
cerca de bahía y tierra adentro porque estaban en la longitud por debajo de
menos ciento 22. También podemos usar el método
dot loc. Esta es una forma de
seleccionar subconjuntos de nuestro marco de datos usando
los nombres de los índices. Índice en las columnas y
el índice en las filas. Podemos copiar esto de inmediato. Y te voy a mostrar
aquí mismo donde
está la diferencia con el método anterior,
porque esto va a fallar, porque espera que
demos rebanadas para todos los índices. Entonces un DataFrame tiene
dos dimensiones,
las columnas y las filas. En este momento sólo
le dimos las columnas, el colon aquí mismo. Se utiliza para simplemente seleccionar
todo y la sección de fila. Y por supuesto podemos
usar esto para dividir en las filas también usando
los números del índice. Aquí mismo, podemos ver
que esta seleccionada del nombre índice cinco a 500. Y ten en cuenta que nuestro
índice puede ser cualquier cosa. Vamos a echar un vistazo a
eso en un segundo. Aquí podemos ver que esto
no cambió en absoluto nuestro DataFrame. Esto es solo un método
para devolver una vista. Y claro que también podemos guardar esto en una variable como siempre. Entonces el método dot loc simplemente funciona de una manera
diferente a la nuestra manera antes. Ahora echemos un
vistazo a la indexación, porque ahí arriba podemos
ver que nuestro índice es solo un entero corriendo de cero a cualquiera que sea el número
máximo, 20,640 en este caso. Sin embargo, podemos usar el método de índice de conjunto de puntos para cambiar nuestro índice
a cualquier otra fila. Y esto es realmente
potente y que podemos asignar cualquier tipo de indexación, incluso texto y seleccionar
en ese texto, o en este caso, la latitud. En lugar de sólo un número. Todavía puedes usar números y luego te
mostraré
cómo hacerlo. Pero esta es una especie de forma de
cambiar pensando en tu DataFrame porque
ahora mismo nuestras filas están indexadas
por la latitud. Entonces podemos, no podemos hacer
lo que hicimos antes con el número porque
nuestro índice en este momento ya no es el entero. Nuestro índice ahora es la latitud. Entonces, si elegimos
el número en guerra, cualquier tipo de número
de nuestra latitud, esto volverá a funcionar. Aquí tengo un vistazo al índice, solo copia un número fuera
de aquí, como EF 37.85. Y entonces podemos usar esto para seleccionar un subconjunto
usando punto loc. Solo usa todas las columnas. Y podemos ver
aquí mismo que esto solo muestra todo desde
nuestro índice aquí mismo. Se puede ver que los índices
en Pandas no tienen que ser únicos también. Algo realmente importante en lo que pensar cuando
trabajas con ellos. Cortando en nuestro
DataFrame así, es extremadamente poderoso
porque nuestro índice, simplemente
devolveremos los datos en ese índice y cualquier
clasificación que tengamos. Así que realmente no tenemos que ser conscientes de cómo están estructurados nuestros
datos. Sin embargo, podemos
usar el método iloc, que es básicamente la ubicación del
índice, donde aún podemos entrar en nuestro DataFrame y
seleccionar la fila cinco a 500, 499 porque es exclusivo. También podemos usar
esto en la columna. Entonces, si pensamos que sabemos
exactamente donde está todo, podemos usar este tipo de rebanado
también y para solo usar el rebanado numérico
para obtener nuestros subconjuntos, generalmente
recomiendo usar dot
loc porque qué punto loc, siempre puedes estar seguro
independientemente de la clasificación, que recuperarás las
cosas que quieras con el índice exacto que es. Y no tienes que
asegurarte de que estás ordenando tu DataFrame
es la forma correcta. Aquí mismo podemos
ver que ahora la latitud ya no forma parte de
nuestras columnas porque la hemos asignado para
que sea nuestro índice. Ahora bien, si queremos que la latitud
vuelva a nuestras columnas, podemos hacerlo también
reiniciando el índice y entonces nuestro índice
volverá a estar solo ejecutando enteros. Esto también funciona cuando
lo volviste a clasificar. Para que puedas restablecer el
índice de nuevo a ir 0-500 o número máximo BO cuando
cambiaste alrededor de tu orden de
columna. Y es muy
importante
pensar en esto cuando estás
haciendo rebanado de índice que siempre puedes cambiar la clasificación
de tus, tus datos. Pero cuando hagas punto loc, podrás recuperar
exactamente lo que hay en el índice. Sobre el tema de
seleccionar columnas. Por supuesto, podemos
hacer la forma estándar de simplemente proporcionar
las columnas que queramos. Pero a veces tu
DataFrame obtiene pierna
muy larga tu vista de
vuelta a los números faltantes. Ejemplo que teníamos,
pienso más de 20 columnas. Entonces seleccionar todo lo que uno puede ser realmente engorroso
para ser honesto. Entonces también podemos ir por
el otro lado y seleccionar qué columnas no
queremos. Y eso es con un método drop. Por lo que proporcionamos los
nombres de las columnas que se deben soltar
del DataFrame. Justo aquí. Simplemente tomaremos la inversa
de longitud y población, proporcionaremos el eje del
que queremos
bajarlo porque
también podemos soltar columnas. Justo aquí. Puedes ver cómo puedes cambiar en torno a
muchas de las cosas,
así que puedes hacer en su lugar
cayendo también si
quieres cambiar el DataFrame
directamente en la memoria. Aquí mismo puedes
ver que podemos caer,
bueno, hacer exactamente lo
contrario de lo que hacíamos antes soltando filas. En general, estamos haciendo esto porque si seleccionas
subconjuntos de tus datos, puedes hacer análisis
sobre los subconjuntos. Entonces, si solo usamos el método describe de
nuestra estadística descriptiva, podemos ver aquí mismo, por ejemplo, la desviación estándar y
la media de todas las columnas. Y, por supuesto, también podemos llamar el método describir en
un subconjunto de nuestros datos. Y mira cómo nuestras, bueno, cómo cambian nuestras
estadísticas descriptivas. A continuación, puede comenzar a trazar
en estos subconjuntos y realizar todo
el
análisis de conjunto de datos en estos subconjuntos. Esta clase realmente profundizó en cómo podemos seleccionar subconjuntos de nuestros datos y
decidir realmente qué tomar en
función de las características, pero también en los índices. Y echamos un vistazo a
cómo cambiar, dicen, y cómo
restablecerlo de nuevo, porque eso es muy
importante cuando quieres hacer tu
análisis exploratorio de datos y echar un vistazo más de cerca a algunos
subconjuntos de sus datos. En la siguiente clase, estaremos viendo cómo podemos generar esas
relaciones en nuestros datos. Y realmente enfocarse
en qué extraer.
21. 34 Correlaciones nuevas: En esta clase, vamos a
echar un vistazo a las relaciones
dentro de nuestros datos. Así que realmente vamos a comprobar cómo funciona
la correlación
dentro de nuestros datos. Pero ir más allá de esto también. Así que vaya más allá de
las correlaciones lineales y
sumérgete realmente en la
disección de nuestros datos. Empezaremos de
nuevo importando pandas y cargando
el DataFrame. Podemos ver que el núcleo de puntos es realmente central para hacer análisis de
correlación. En Pandas. Podemos usar Corr
y cambiar alrededor del coeficiente de correlación
que realmente queremos usar. Ahora, la correlación estándar de
Pearson es una correlación lineal. Spearman y Kendall utilizan una correlación de rango que
puede ser no lineal. Además de calcular estas, estas
correlaciones agregadas, tal vez
a veces solo quieras averiguar cómo se correlaciona
una celda, una columna
con otra. Y aquí podemos simplemente proporcionar la columna y calcular la correlación en
otra columna. Justo aquí. Incluso podemos llevar
este más lejos. Así que
las herramientas de aprendizaje automático han sido muy fáciles de usar en
los últimos diez años. Y podemos usar esta herramienta
de aprendizaje automático para predecir
básicamente una característica basada en las otras características. Y si lo hacemos
con cada característica, en realidad
podemos ver cuán informativa
se basa una característica en la otra. Y esto se ha integrado en una pequeña herramienta ordenada
que podemos usar aquí llamada Descubre las relaciones
futuras o más allá de las correlaciones. Recientemente ha cambiado de nombre, por lo que también podrás
encontrarlo en GitHub. Y esto significa que podemos usar
el método de descubrimiento de esta biblioteca para
sumergirnos realmente en sus relaciones
en nuestros datos. Así que usamos el
método discover on, en nuestro DataFrame. Y podemos suministrar un
método o un clasificador, pero en este caso
simplemente lo dejaremos en estándar. Puedes jugar con esto más tarde si te
interesa,
lleva unos segundos
ejecutar esto, pero luego solo
usaremos la muestra de nuestro DataFrame para
hacerla un poco más rápido. Se puede dejar correr
en muestras más grandes. Y obtenemos cómo una característica predice
otra característica aquí mismo. Y lo conseguimos para
cada característica alrededor, podemos usar las tablas dinámicas
que tal vez conozcas de X0 para sacar una biblioteca completa, mesa de crecimiento
completo que te
dará toda la
información que necesitas. Justo aquí. Muy similar
a la correlación. Sin embargo, el central no
está lleno, así que solo llenaremos eso
con unos porque puedes predecir la característica
fácilmente en sí mismo. Por supuesto. Entonces continuaremos a trazar esto porque
mirar esto como una parcela siempre es bastante agradable, igual que podemos mirar el mapa de calor desde
las correlaciones. Esto es muy similar a las
correlaciones excepto que
utilizamos el aprendizaje automático para predecir esta vez de forma
cruzada. Así que guardaremos esto
en la variable y luego haremos una bonita
trama. Todos esos. Podemos ver que a
diferencia de la,
la gráfica de correlación, esta no
se fija entre -1.1. Así que lo arreglaremos muy rápido. Y entonces realmente se puede ver cómo cada característica se puede extraer
de la otra característica. Hacemos esto, esta fijación
de menos uno a uno usando el
V min y V max. Y ahí lo vemos. Entonces, por ejemplo analizar cómo nuestra población puede ser predicha por
cualquier otra cosa es realmente una buena manera de ver
las relaciones dentro de los datos donde puede profundizar más por qué algo es predictivo o no. Realmente una buena herramienta
para la ciencia de datos. Esta fue la última clase y ahora un capítulo sobre análisis
exploratorio de datos. Cuando miro cómo
podemos extraer información sobre
correlaciones y relaciones en nuestros datos. Y en la siguiente clase, veremos cómo construimos modelos de
aprendizaje automático. Entonces algo que
ya usamos implícitamente aquí ahora
aprenderá a aplicar realmente.
22. 40 introducción al aprendizaje automático: Este capítulo del proceso de ciencia de
datos o vamos a echar un
vistazo al aprendizaje automático. Específicamente, queremos
modelar nuestros datos y encontrar relaciones y
los datos automáticamente. Los modelos de aprendizaje automático son los
llamados modelos de caja negra. Eso significa que no tienen
ningún conocimiento de tus datos. Pero cuando les muestres los datos y lo que quieres
obtener de los datos, ellos aprenderán
relación y cómo categorizar o cómo encontrar
el tipo correcto de números. Así que haz una regresión
con tus datos. Y el aprendizaje automático
es realmente potente y súper fácil de
aplicar en estos días. Es por eso que también
dedicaremos mucho tiempo a validar
nuestros modelos. Porque estos modelos
tienden a aprender exactamente lo que les
dices que aprendan, que tal vez no sea lo
que quieres que aprendan. Y la validación como la diligencia
debida que debes
hacer para asegurarte de que realmente aprendieron lo
que tú les quieres. Así que encendamos nuestros cuadernos y echemos un
vistazo al aprendizaje automático.
23. 41 Regresión lineal: Bienvenido a la primera clase y al capítulo sobre aprendizaje automático. Vamos a echar un vistazo
a cómo construir modelos simples. Porque en el aprendizaje automático, muchas veces los gobernantes, cuanto más simple sea
el modelo, mejor. Porque
los modelos simples son más fáciles interpretar y suelen ser
muy robustos al ruido. Entonces, vamos a sumergirnos en ello. Después de cargar nuestros datos, podemos importar el modelo de
regresión lineal porque queremos predecir
los valores de las casas
en este ejercicio. No obstante, antes de
que tengamos que preparar nuestros datos
de cierta manera, necesitamos dividir nuestros
datos en dos partes. Queremos una
parte de entrenamiento y queremos una. Bueno, un conjunto de datos que el modelo nunca ha
visto durante el tiempo de entrenamiento. Para que podamos validar que nuestro modelo aprenda
algo significativo. Esto es para evitar un efecto
que se llama sobreajuste. Entonces, cuando nuestro modelo básicamente recuerda los
datos de entrenamiento y no aprende relaciones
significativas
entre los datos
que luego puede aplicar a nuevos
datos nunca ha visto. Así que de esa manera, tomamos nuestro DataFrame y
lo dividimos en dos partes al azar. Por supuesto que podríamos hacer esto con subconjuntos que hicimos
en la sección anterior. Sin embargo, tomar una muestra
aleatoria que es absolutamente seguro que no se superpondrá de ninguna manera es
una manera mucho mejor. Y la
función de división de prueba de tren que suministra
Scikit-learn es realmente buena para
esto y tiene algunas que realmente necesitan otras
funciones que podamos usar. Esta es también una
manera muy agradable de seleccionar nuestras características. Para el modelo simple, solo
usaremos las
características de la vivienda, mediana de edad y luego
el total de habitaciones como nuestras características de entrenamiento. Y el valor de la casa
va a ser nuestro objetivo. Esos suelen
guardarse una x y luego y. Entonces sabemos que tenemos
x tren y x prueba, y luego tenemos y
tren e y prueba. Esto es bastante común. Y vamos a echar un
vistazo a las formas. Entonces tenemos un poco más de
20,000 filas aquí. Nuestros datos de trenes van a ser alrededor del 75% de eso
con 15 mil valores. Y nuestro tren y debería
tener la misma cantidad de objetivos porque esos son muestreados aleatoriamente pero
en la misma fila. Entonces los datos obviamente colchón. Nuestras pruebas x ahora deberían tener las filas restantes que no
están en el conjunto del tren. Ahora, hacer esto es
extremadamente importante y no hay forma de evitar dividir sus datos
para su validación. Ahora es el momento de
construir nuestro modelo. Nuestro modelo va a ser el modelo de regresión lineal
que importamos antes. Y Scikit-learn hace
que sea extremadamente fácil para nosotros construir modelos
y asignar modelos. Sólo tenemos que asignar el
objeto a alguna variable. En este caso,
sólo lo llamaremos modelo. Y puedes ver que puedes cambiar algunos de los
hiperparámetros en el modelo, pero lo mantendremos
estándar ahora mismo. Ahora ajustamos nuestro
modelo a los datos. Este es el paso de entrenamiento donde automáticamente se ajusta nuestro
modelo y se cambian
los parámetros en nuestro
modelo para que nuestro modelo pueda predecir
y entrenar a partir de x tren. Y para anotar nuestro modelo. Entonces, para probar qué tan bien le va, podemos usar el método de puntaje
en nuestro modelo ajustado y proporcionarle datos bien donde también
conocemos las respuestas. Entonces podemos usar x test e
y test para ver qué tan bien le va a nuestro
modelo en datos no vistos. En este caso, la regresión
va a ser el r-cuadrado. R-cuadrado es una, bueno, en estadística, es básicamente
una medida de determinismo. Entonces, ¿qué tan bien predice
realmente nuestros datos? Y el mejor valor hay uno. Y luego baja e incluso
puede ser negativo. 0.03 no es realmente, bueno. No es impresionante. Cuando cambiamos nuestros datos de entrenamiento para incluir el ingreso medio, aumentamos el
puntaje significativamente. Obviamente, esta es la parte
más importante. Tenemos que encontrar
datos que nos puedan dar información sobre
otros datos que queramos. Sin embargo, una vez que
lo encontremos, podemos mejorar aún más
nuestro, nuestro modelo haciendo
preprocesamiento de nuestros datos. Pero tenemos que tener cuidado
aquí, porque uno, voy a hacer preprocesamiento
y probaremos cosas
diferentes si
funcionan o si no lo hacen. Lo que puede pasar es que
nos sobreajustemos manualmente. Modelo. Eso significa hacer una ciencia de
datos adecuada aquí mismo. Queremos dividir nuestros
datos de prueba en dos partes. Uno, conjunto de validación de holdout y
juego de prueba. El conjunto de pruebas
no se tocará y todo
el proceso de capacitación y no en nuestra experimentación, sino solo en la última parte de nuestro viaje de aprendizaje
automático. Aquí definimos x Val e y Val. Y cometí un pequeño
error aquí, dejando eso a y
entrenar que
por supuesto debería ser x prueba en
el tren prueba split. Cambiar esto significa
que esto funciona. Y esta también es
una buena parte sobre la función de división de prueba de tren. Realmente se asegura de que
todo sea consistente o el pozo que todas
nuestras variables coinciden. Y podemos ver aquí mismo que nuestro conjunto de datos de prueba es ahora bastante
pequeño con 1,000 valores. Así que podemos volver a la división de prueba del
tren aquí
y, de hecho, proporcionar una proporción de datos que podemos usar en sus esfuerzos de ciencia de datos y aprendizaje
automático. Siempre debes ver que puedes usar el tamaño de prueba
más grande que
puedas pagar realmente porque eso
significa que podrás tener más certeza
y tus resultados. Aquí podemos ver que ahora
se divide 5050
y dividiendo nuestro conjunto de pruebas ahora más abajo en
el conjunto de validación. Y el conjunto de pruebas muestra que
nuestro conjunto de pruebas final tiene alrededor 2,500 muestras
ahí dentro, que es, él. Es lo suficientemente bueno para este caso. Definiremos nuestro escalador
estándar aquí y nuestro modelo como la regresión
lineal. Y ajustamos nuestro escalar
en los datos de entrenamiento. Eso significa que ahora también podemos
reescalar todos nuestros datos, modo que ninguna de
las columnas sea significativamente más grande que las otras. Esto es sólo un pozo, en un modelo lineal, nos sentamos la pendiente
y la intersección. Y cuando nosotros, cuando
escalamos nuestros datos, eso significa que nuestro modelo lineal ahora puede funcionar dentro de
los mismos rangos de datos y no
estar sesgado porque una característica es significativamente
mayor que las otras, creará x escalado
a partir de nuestros datos de tren X. Entonces no tenemos que llamar a la transformación escalar en
el bucle de entrenamiento del tren. Podemos compararlos
aquí podemos ver que nuestros datos de escala ahora están dentro,
bueno, centrados alrededor de cero
y todos a la misma escala. Mientras que antes estaba por
todas partes. Ahora podemos ajustar nuestros
datos en nuestro modelo, en los datos de la escala. Y bueno, el estilo
etiquetado normal que tenemos, obviamente la etiqueta tiene que
ser y entrenar en este caso. Y luego podemos hacer
la validación habitual sobre nuestros datos de holdout. Y este caso va
a ser x vocal, e y val. Así que no tocamos los datos de
prueba mientras vemos qué tipo de escalado y qué tipo de preprocesamiento funciona, tenemos que transformar
nuestros datos porque ahora nuestro modelo espera datos de escala. Entonces cuando olvidamos eso, obtenemos resultados terribles, y podemos ver que
mejoramos nuestro modelo por,
por un pequeño margen, pero aún así es mejorar solo aplicar este
escalado a los datos. Si intentamos usar el escalar
robusto en su lugar, podemos hacer esto simplemente, bueno, solo experimentando y
usando un escalar diferente. Y esta es la parte a la
que me refiero donde
necesitamos un
conjunto extra de holdout porque solo probar cosas
diferentes, es una muy buena manera de
ver qué funciona. Y es cómo se hace la ciencia de datos. solo hecho de ver lo que se pega es realmente equivalente a construir un buen modelo de aprendizaje automático. Porque a veces es posible
que no esperes que sí tengas
valores atípicos en tus datos. Y pruebas el
escalar robusto y
verás que en realidad
funciona mejor. O te das cuenta de que funciona
que se realizan peor. Aquí podemos entrenar sobre
nuestros datos transformados con nuestro tren Y nuevamente
y puntuar nuestros resultados. Para comprobar si esto funciona. Prueba también el escalar minmax
que usamos en nuestra clase anterior. Después de haber hecho
la experimentación y entrenar para el modelo final, podemos usar este modelo
para predecirlo en cualquier tipo de datos que
tenga las mismas columnas, ojalá la misma
distribución nuestros datos de entrenamiento y
el conjunto de validación. Entonces para hacer esto, usaremos model.predict y proporcionaremos algún tipo de datos. En este caso,
utilizaremos los datos de entrenamiento. Solo eche un vistazo a cómo
el modelo se
compara con los datos reales de la
verdad del suelo, los datos etiquetados. Pero claro, hacerlo en los datos del tren no es lo más interesante
porque el modelo ha visto este tipo de beta. Eventualmente, haremos
esto en el set de prueba. Pero finalmente,
quería hacer esto datos
completamente inéditos para obtener predicciones de su modelo de aprendizaje automático. Otra manera muy agradable
y por qué me gusta mucho la
utilidad de división de prueba de tren es que
se le puede proporcionar
una palabra clave estratificar. La estratificación es un medio para asegurarse de que algún
tipo de característica esté igualmente representada en cada parte del tren y la división de prueba. Entonces, si queremos asegurarnos de
que nuestra proximidad oceánica en la isla sea en parte en
tren y en parte en pruebas. Podemos hacer esto suministrando este tipo de características. Y una razón por la cual, y a la gente le gustan tanto
los modelos lineales es porque los modelos
lineales se
ajustan esencialmente a una línea a sus datos. Entonces, si piensas de nuevo
como quinto grado, tal vez
recuerdes que una línea es básicamente solo la intersección en la y y un coeficiente
para la pendiente. Entonces lo que podemos hacer es interpretar nuestro modelo lineal y haber
mirado estos coeficientes. Entonces cada columna tiene un
parámetro de pendiente aquí mismo que podemos, bueno básicamente, este
parámetro te dice
cuánto influye la pendiente de estos datos en el resultado de
la predicción. Y claro,
podemos echar un vistazo a la intercepción con una y, lo que nos da una
visión completa de nuestro modelo. Entonces esto, esencialmente
podrías escribirlo en papel. Ahora, en esta clase
aprendemos a usar scikit-learn en un modelo simple
de aprendizaje automático, una regresión lineal. Así que básicamente ajustando
una línea a nuestros datos, echamos un vistazo a cómo el escalado
puede mejorar nuestro modelo e incluso predijimos en algunos datos que el modelo
nunca ha visto el. Entonces es validar si realmente
estamos aprendiendo algo significativo o
si solo recuerda los datos. En la siguiente clase,
echaremos un vistazo a algunos modelos más sofisticados,
a saber, árboles de decisión
y bosques aleatorios.
24. 42 árboles nuevos: En esta clase vamos a
echar un vistazo a los árboles de
decisión y los bosques
aleatorios, que son solo un montón
de árboles de decisión que están entrenados de una manera específica
para ser aún más poderosos. Y los árboles de decisión son muy buenos
aprendices porque normalmente no tienes que
cambiar demasiado los parámetros básicos. En esta clase. Verás
lo fácil que es usar scikit-learn para
construir todo tipo de modelos
diferentes y
utilizarlos en tu exploración
de los datos. Para este video,
ya preparé todas las entradas y
la carga de datos. Y dividí los datos
en el conjunto de trenes, que es del 50 por ciento, y luego una validación
y un conjunto de pruebas, que son cada uno 25 por
ciento de los datos totales. Y ahora vamos a pasar a construir un árbol de decisiones para comenzar. Así que vamos a importar los árboles de scikit-learn de
la biblioteca de árboles. Como siempre,
definiremos nuestro modelo. En este caso, va a ser un árbol de decisión regressor
porque sobre esto, para hacerlo comparable, volverá a hacer una regresión
sobre el valor de la vivienda. Modelo, tren. Lo que el entrenamiento va a ser el
mismo de siempre, model.fit, x tren e y tren. Y creo que en este
punto se ve realmente por qué Scikit-learn es tan popular. Se ha estandarizado
la interfaz para todos los modelos de aprendizaje automático. Entonces, anotar, ajustar, predecir tu árbol de decisiones es tan fácil
como un modelo lineal. Los árboles de decisión son aprendices
relativamente mediocres y realmente solo los miramos. luego podamos mirar el bosque
aleatorio que construye varios
árboles de decisión y
combinarlos en un aprendizaje conjunto. Y lo bueno los árboles de
decisión es que
suelen ser independientes a escala silenciosa, y funcionan con características
categóricas. Así que en realidad podríamos
alimentar la proximidad oceánica a nuestro entrenamiento aquí. Pero entonces, por supuesto, tampoco pudimos comparar el método con el modelo
lineal. Entonces no vamos a hacer esto ahora mismo, pero definitivamente esto es algo
que puedes probar más tarde. Entonces escalar estos datos
no nos cuesta nada. Así que bien podríamos intentarlo. Aquí. De hecho, puedes
ver lo que sucede cuando no transformas tus datos
de validación. Así que básicamente un ahora espera incluso el
árbol de decisiones espero datos de escala. Por lo que se desempeña muy mal. Cuando transformamos nuestros datos de tren y transformamos nuestros datos
de validación. Nuestro puntaje es ligeramente
peor que antes. A continuación, podemos construir
un bosque aleatorio. Un bosque aleatorio
es un conjunto de árboles donde utilizamos un
método estadístico llamado embolsado que básicamente intenta construir árboles de decisión
no correlacionados que en conjunto son aprendices
más fuertes que
cada árbol de forma individual. Así que vamos a importar el regresor de
bosque aleatorio de la subbiblioteca ensemble
de scikit-learn. Y al igual que antes, asignaremos nuestro modelo a un, lo que su
objeto modelo a una variable. Y luego podemos ajustar
nuestro modelo a los datos. Como pueden ver, el ajuste
de esto es bastante rápido y anotar de esto debería
darnos un muy buen resultado. Aquí podemos ver aquí que
esto es un poco mejor incluso que la puntuación que
obtuvimos en nuestro, en nuestro modelo lineal
después de escalar. Y si ahora miramos la
puntuación de los datos de entrenamiento, puedes ver por qué
necesitamos datos de validación. Entonces, este árbol de bosques aleatorios es extremadamente fuerte en los datos de
entrenamiento en sí, pero bien, en los datos de
validación VAP. En cambio, también podemos echar un vistazo al escalado
solo para ver cómo funciona. No nos cuesta nada, es realmente barato de hacer. Así que también podrías. Si esto mejora tu modelo de
aprendizaje automático o
reduce el sobreajuste, siempre vale la pena
hacerlo porque es, sí, es barato. Así que escalaremos nuestros datos de entrenamiento y ajustaremos nuestros datos,
nuestro modelo a los mismos. Podemos usar la
misma escala desde antes porque los escalares e independientes del modelo de aprendizaje
automático es solo el escalar. Y vemos aquí mismo que nuestro puntaje de entrenamiento básicamente no cambió como si estuviera
en la cuarta coma. Entonces es básicamente
ruido aleatorio en ese punto. En el conjunto de validación. Tampoco debemos esperar
demasiado. Por lo que está un poco
deteriorado el resultado. Por lo que vale la pena conservar
los datos originales. En este caso. Una cosa fantástica de los bosques
aleatorios es que los bosques aleatorios tienen
algo llamado introspección. Así que en realidad puedes
echar un vistazo a lo importante que es un bosque aleatorio, creo que cada característica es. Esto, estos son números
relativos. Podrían fluctuar un poco, pero podemos ver que estas características se ponderan de
manera diferente dentro del bosque aleatorio para
predecir un precio correcto. Esta fue una muy rápida. Creo que Scikit-learn es increíble porque hace que
todo sea muy fácil. Simplemente pensabas encajar, predecir
puntos y no anotar. Y esos son súper útiles para todas nuestras necesidades de
aprendizaje automático. En la siguiente clase, veremos cómo
no solo predecimos el precio, sino cómo podemos
predecir las categorías. Entonces en un negocio más
envía que puede estar prediciendo como alguien que
es digno de crédito o no.
25. 43: En esta clase vamos a echar
un vistazo a la clasificación. Entonces eso significa
asignar nuestros datos a diferentes bins dependiendo de
lo que
contenga los datos. En nuestro ejemplo, vamos a echar
un vistazo a la proximidad del océano. Entonces intentaremos
predecir si una de nuestras casas está más cerca o
más lejos del océano. Y eso básicamente
significa que
tendremos la oportunidad de probar
diferentes algoritmos y cómo se ven afectados por preprocesamiento de
nuestros datos también. Importaremos todo
y cargaremos nuestros datos. Ahora en esta división,
queremos sustituir el valor de la casa por proximidad
oceánica porque
queremos hacer yo soy clasificación, así que necesitamos predecir clases. En este caso, vamos a predecir que cerca de una casa
está al océano. Pero generalmente se puede
predecir casi cualquier clase. Le daremos la vuelta
esta vez y usaremos todas las funciones de entrenamiento. Pero, por supuesto, necesitamos dejar caer proximidad
al océano
desde nuestro DataFrame. Si dejáramos eso adentro, no
habría una
tarea de clasificación muy fácil, diría yo. Entonces el modelo más fácil, o uno de los modelos más simples, es
decir, el modelo
vecino más cercano, nuestro modelo K vecino más cercano. Los vecinos más cercanos están
esencialmente simplemente tomando los puntos de datos más cercanos
al punto que se quiere clasificar y tomar el, bueno, generalmente solo se
toma un voto mayoritario. Entonces eso significa que la clase
que es más prominente alrededor de tu punto es probablemente
la clase de tu punto. Y para la clasificación, Scikit-learn no es
diferente a la regresión. Vamos a asignar el modelo a lo que
el objeto a una variable. Y luego vamos
a tratar de encajar nuestros datos. Pero algo pasó de En finanzas o infinito o cualquier cosa. Y k-vecino más cercano
no se ocupa bien de esto. Como dije, dejo todos los pasos de preprocesamiento en el
capítulo de preprocesamiento para que
estos capítulos sean
breves y concisos. Pero en este caso,
dejaremos caer los nans sin ningún preprocesamiento diferente solo para que esas filas se eliminen. Puede que no sea una buena
idea en la mayoría de los casos, pero en este caso
es solo para sacar nuestros datos de la puerta. Aquí podemos ajustar nuestro modelo
con los datos de entrenamiento habituales. Simplemente funciona esta vez. Y entonces podremos puntuar nuestro modelo. Ahora, puntuar n
clasificación es un poco
diferente a la regresión. No tenemos el R-cuadrado
porque el r-cuadrado es una medida de determinismo
en regresión. En este caso,
tenemos la exactitud. Y la precisión es del 59
por ciento, lo cual está bien, lo que el 60% de las veces este modelo de vecino más cercano está corrigiendo la clase correcta. Probablemente podamos hacerlo mejor, pero eso es un comienzo. Una cosa que puedes probar en
tu ejercicio es cambiar el
número de vecino más cercano y echar un vistazo qué tipo de pozo
más cercano, cuántos vecinos más cercanos al punto dan
el mejor valor. Podemos echar un vistazo a muchos algoritmos de
clasificación diferentes. A la izquierda se ven
los datos de entrada, que son tres
formas diferentes de entradas. Y luego se ven las superficies de
decisión de una clasificación binaria
a la derecha. Entonces puedes ver que el
bosque aleatorio es muy chamarra e.g y un proceso gaussiano
es muy suave. Entonces solo para que entiendas
cómo estos entienden los datos, probaremos el
bosque aleatorio porque se ve muy diferente que en
la superficie de decisión. Y los bosques aleatorios
vuelven a ser modelos muy potentes. Este va a ser el mismo esquema que los vecinos
más cercanos. Así que vamos a tener una charla rápida
sobre las funciones de puntuación. Porque el
puntaje de precisión es, bien, es un buen defecto, pero esencialmente solo cuenta
cuántos obtienes, ¿verdad? Y digamos que trabajas
en un ambiente donde los errores son especialmente malos,
sobre todo caros. Se quiere echar un vistazo si otra función de puntuación
sería más apropiada. Y puedes echar un vistazo
al documento scikit-learn, mentation. Existen diferentes
funciones de puntuación que puedes verificar. Aquí echamos un vistazo
y el bosque aleatorio acaba de superar
con los valores predeterminados. Cualquier cosa a la que se
acerquen
los vecinos más cercanos con 96 por ciento. Eso es sobre datos inéditos. Por lo que es una muy buena puntuación. Podemos volver a echar un vistazo a las importancias de características
para ver lo que nuestro modelo piensa que es el indicador
más importante que algo está cerca de
la, cerca de la orilla. Y obviamente parte de ello
va a ser la longitud
y la latitud. Así que dejémoslos
también de nuestro DataFrame, de nuestros datos de entrenamiento. Porque queremos que
sea un poco más interesante,
tal vez otra cosa. Es un mejor indicador si vienes a tu
jefe y dices: Oye, me di cuenta de que la
ubicación nos dice muy bien que mi casa está
cerca del océano. Probablemente te mirarán
un poco más lamentable. Así que échale un vistazo. Y obviamente nuestra puntuación aleatoria de
bosque es un poco peor, pero bastante bien. Entonces echemos un vistazo a
otro modelo lineal. El
modelo de regresión logística es un modelo binario. puedes usarlo para
clases múltiples con un par de trucos. Eso básicamente va 0-1
y encuentra esa transición. Se puede ver
aquí mismo en rojo. Los modelos de regresión logística son realmente interesantes porque una vez más dan un
buen modelo de línea base porque son clasificadores
lineales. Pero lo más interesante es que
viste que hay esta línea de transición
0-1 en esta imagen. Y se puede definir un
umbral en su estándar. Está en 0.5, pero
puedes hacer una prueba de cómo
quieres establecer el umbral para
tu regresión logística. Y esto es algo muy
bueno en lo que pensar en tu modelo
de aprendizaje automático. Y vamos a echar un vistazo a cómo determinar este umbral después este segmento de programación,
la regresión logística. Entonces agregaremos esto y un vistazo rápido porque tenemos un problema multiclase aquí mismo. Y queremos que se solucione este
problema multiclase. Obviamente. Por suerte, multi-clase se establece
automáticamente en auto porque la mayoría de la gente
no se ocupa de problemas binarios y de la vida real. Entonces sí, scikit-learn
realmente intenta establecer buenos valores predeterminados, se ajustará a nuestro modelo con datos de x
tren e y tren. Y
desgraciadamente, no convergió. Por lo que no funcionó en
esto en esta instancia. Entonces entraré en el docstring y echaré
un vistazo. Ahí vamos. Max iter va a ser la palabra clave que
tenemos que aumentar. Por lo que obtiene más iteraciones
para encontrar lo óptimo. El, para encontrar la
regresión logística meteorológica se supone que es. Mil tampoco fue suficiente. Solo agrega un cero. Esto
va a tomar un tiempo. Entonces, pensaremos en
nuestro, nuestro umbral óptimo. Porque en cierto sentido, cuando tienes aprendizaje automático, quieres que todos tus
aspectos positivos se clasifiquen
positivamente
y que todos tus negativos sean clasificados negativamente. Y entonces hay que
pensar en cuál es
peor, hacer algo bien, en
hacer algo mal. Y en este caso, podemos usar la curva ROC para regresión
logística donde
podemos trazar las tasas
positivas verdaderas. Entonces los positivos que son positivos frente a la tasa de
falsos positivos. Entonces todo lo que se
clasificó como positivo falsamente, luego elegir nuestro óptimo. En esta clase,
estamos echando un
vistazo a diferentes algoritmos de
clasificación. Hay muchos más como te
mostré en esa diapositiva. Y realmente puedes
sumergirte en los diferentes tipos de clasificación muy
fácilmente como ves, siempre
es doctrina pensada en
forma. Y luego anotas y
predices sobre datos no vistos. Y realmente al final, siempre es
lo mismo. Y luego se trata de cómo
escalas tus datos, que es parte del ejercicio. Y también cómo
eliges hiperparámetros como k para el algoritmo de
k-vecinos más cercanos. En la siguiente clase,
vamos a echar un
vistazo a la agrupación de nuestros datos. Entonces realmente viendo la estructura
interna de nuestros datos y cómo cada
punto de datos pertenece a los demás.
26. 44 Cluster nuevo: En esta clase, vamos a
echar un vistazo a cómo podemos agrupar cada dato. A veces se agrupan puntos de datos. Bueno, a veces
ha habido más difíciles de discernir. Y veremos cómo
diferentes algoritmos tratan
los datos de manera diferente y los
asignan a diferentes bins. Después de importar nuestros datos. Esta vez saltaremos la parte donde dividimos los
datos porque
más bien mirará el algoritmo de
clustering como una herramienta de descubrimiento de datos. Si quieres construir algoritmos de
clustering para nuestra predicción real o para
asignar nuevas clases nuevas. También hay que hacer la
división. Sabes que en realidad hace
lo que se supone que tiene que hacer. En nuestro caso, solo echaremos un
vistazo a k-means. K-means era un
poco el hermano pequeño no supervisado de k vecino más cercano, donde esencialmente da
lo que mide la cercanía
a otros puntos y simplemente los asigna a un clúster si
están lo suficientemente cerca, encajarán nuestros datos
en el DataFrame. Y usaremos fit predict porque queremos hacer
todo en un solo paso. Ahora el problema
aquí mismo es que
tenemos proximidad al océano
ahí dentro con cuerdas ahí dentro. Así que vamos a estar dejando saber. De hecho, solo echaremos un
vistazo a los datos espaciales. Entonces longitud y latitud, porque esos son muy
fáciles de visualizar en 2D. Así que eso solo nos facilita un poco la
vida. Vamos a sacar algunas
etiquetas para estos. Y lo que podemos hacer entonces es que
podemos trazar estos usando matplotlib. También conocerán matplotlib
en una clase posterior. Pero solo para una gráfica
fácil, sí tiene la dispersión PLT, que toma una coordenada x
y. Y luego también puedes
aplicar asignar un color, cual está etiquetado, en nuestro caso. K-significa. Puedes definir cuántos clústeres
quieres sacar. Ahora el valor por defecto es ocho. Jugaremos
un poco con él y podrás ver
cómo cambia, cómo cambian los clústeres. Cuanto más alto vas,
más fragmentado se pone. Y se puede argumentar lo mucho que realmente tiene sentido en algún momento aún agrupar
los datos con luz. Cientos de racimos. Voy tres. Es bastante fácil
solo mostrar lo que sucede cuando en realidad
tenemos como clústeres adecuados. Dividiremos un poco nuestros
datos. Entonces, esencialmente, usa el
subconjunto que discutimos antes para eliminar parte de la parte media
en la longitud. Para eso, podemos usar
el método between que básicamente define un punto de
inicio y un punto final. Cuando negamos esto entre, nos quedamos con en
cluster a la izquierda de
nuestro diagrama de dispersión geográfica y a la derecha de nuestro diagrama de dispersión
geográfica. Para eso, solo
elegiremos -121 y -100 18 como los bordes izquierdo
y derecho. Podemos ver aquí mismo que
esto nos da un conjunto de datos dividido. Asignar eso a una variable
para que podamos usarla. Echemos un vistazo y
no esto en realidad. Entonces vemos qué es, qué está pasando con nuestros datos. Simplemente elimine por ahora que
tenemos colores están etiquetados porque esos
no aplican aquí. Y podemos ver la clara
división entre dos clusters. Entonces podemos usar nuestros k-medias para clasificar estos dos
o para igualar estos dos. Y simplemente copiaré esto y usaré la predicción de ajuste
para obtener nuestros datos en
los datos divididos y
también copiaré sobre nuestro gráfico de dispersión y
agregaré nuevamente en las etiquetas. Podemos ver con dos clústeres, es bastante fácil para k-means obtener un clúster
a la izquierda y un
clúster a la derecha. Si jugamos
con los números, realmente
podemos probar el
comportamiento de Howard, encontrar subclusters en esto y
cómo interpreta los datos. Pero como es muy fácil
con un scikit-learn, echemos un
vistazo a otros métodos. Esto es, este es un gráfico del sitio web
scikit-learn donde tienes diferentes
tipos de
algoritmos de clustering y cómo funcionan
en diferentes tipos de datos. El agrupamiento espectral
viene a, me viene a la mente. Pero personalmente
también me gusta mucho DB scan y obtuve modelos de mezcla
gaussiana. Funcionan bastante bien
en datos reales y sobre todo el
desarrollo posterior de la estafa de TB llamada HDB scan es un método muy
potente. Hdb scan es una biblioteca separada que hay que echar un vistazo y luego
instalarte. Pero sí, definitivamente
vale la pena echarle un vistazo. Entonces podemos hacer lo mismo que antes. Importaremos el escaneo
de base de datos de nuestra biblioteca de clústeres
en scikit-learn, asignarlo a la variable de valor
dB. Y no tiene muchos hiperparámetros
diferentes
que podamos establecer. A lo mejor cambiar
la métrica ahí que
viste en el docstring. Pero por ahora Euclidian
está totalmente bien. Podemos ver aquí mismo sin
establecer ningún clúster, ahí están los valores atípicos
y el derecho. Y básicamente encuentra
tres clusters sin que le
digamos mucho
sobre nuestros datos. También echemos un vistazo a la agrupación
espectral aquí mismo. Funciona igual. Lo asignaremos a un
objeto y lo instanciaremos. Tenemos que abastecer
clusters para éste. Queremos simplemente copiar todo esto a la predicción en nuestro SP y ejecutar
todo esto. Esto lleva un poco más de tiempo. agrupación espectral, puede ser,
um, sí, puede ser,
puede ser un poco más lenta
en conjuntos de datos grandes. Consulta la documentación. Tienen una muy
buena visión general de qué método de
agrupamiento es el mejor
para el tamaño de los datos. Y además, sí,
básicamente en lo que tienes que pensar al aplicar diferentes métodos de
clustering. Dado que los métodos siempre están
evolucionando y siempre creciendo, es una muy buena
idea simplemente revisar la documentación
porque siempre está actualizada. Aquí podemos ver que
el clustering está bastante bien, bastante bueno. Agrupar datos puede
ser muy difícil. Como viste, puede llevar a resultados
muy diferentes
dependiendo de qué tipo de vistas
autorrítmicas. Entonces, qué tipo de suposiciones
subyacentes están en ese algoritmo, pero también cómo se componen tus
datos. ¿Es fácil separar los datos o es realmente
difícil separar los datos? Al final, creo que
es una herramienta que puede generar nuevos insights sobre tus datos que
antes no tenías en función de los
datos que alimentaste a ellos. En la siguiente clase, veremos
cómo validamos los modelos de
aprendizaje automático. Porque solo construir
el modelo no es suficiente. Tenemos que saber si
en realidad es aprender
algo significativo.
27. 45 Validación de modelos de aprendizaje automático: En esta clase vamos a
echar un vistazo a la validación de sus modelos
de aprendizaje automático. Y hay que
hacerlo cada vez. Debido a que construir modelos de
aprendizaje automático es muy fácil, la parte difícil
ahora es validar que tu modelo de aprendizaje automático realmente aprendió
algo significativo. Y luego una de las clases
adicionales también
veremos si nuestros modelos de machine
learning son justos. Y en esta clase vamos a echar
un vistazo a la validación cruzada. Entonces, viendo lo que sucede si
cambiamos nuestros datos, ¿podemos predecir resultados
significativos? Y luego echaremos un vistazo a modelos ficticios de
línea base que
son básicamente un flip de monedas. Entonces, ¿nuestro modelo se desempeñó
mejor que el azar aleatorio? Después de importar todo
y cargar los datos, soltaremos los sustantivos
y dividiremos nuestros datos. Ahora mismo, vamos a hacer
la regresión. Entonces construiremos un regresor de
bosque aleatorio. Y esto es sólo para tener un modelo que podamos comparar con el modelo ficticio para
hacer la validación. Así que lo ajustaremos de inmediato a los datos de
nuestro tren y
agregaremos las etiquetas aquí. Al tener un modelo ajustado, ahora
podemos puntuar esto y luego pasar a hacer la
validación cruzada. La validación cruzada es una forma
muy interesante. Si acabas de enterarte de las divisiones de tren de
prueba,
esto, esto va a llevar las divisiones de tren de
prueba
al siguiente nivel. Entonces, la validación cruzada es
la idea de que tienes tus datos de entrenamiento y tus datos de prueba mantendrán los datos de
prueba, los datos de prueba. Y como sabes, dividimos los datos de nuestros trenes en un conjunto de entrenamiento y
un conjunto de validación. En la validación cruzada, ahora estamos dividiendo nuestros
datos de entrenamiento en pliegues. Entonces básicamente
solo en sub partes. Y cada parte alguna vez se usa como set de
prueba contra todo lo
demás como conjunto de tren. Entonces estamos construyendo cinco modelos
si tenemos cinco pliegues. También puedes hacer esto de
manera estratificada, como el tren de prueba split
que usamos antes. Ahora bien, es bastante
fácil hacer esto. Una vez más, la API, por lo que la interfaz
con la que trabajas se mantiene muy sencilla. Así que vamos a importar la puntuación
de validación cruzada. Y aquí mismo, la puntuación cruzada
Val toma tu modelo, los datos de validación,
y esa es tu x. Entonces las características y
por supuesto, los objetivos, porque tenemos que
validarlo en algún tipo de número. Esto lleva cinco veces
más tiempo porque
construimos cinco modelos o sí, evaluamos cinco modelos y
sacamos cinco puntuaciones
por cada modelo. Puede notar que todos estos puntajes son ligeramente
inferiores a nuestro puntaje promedio
en todos los datos, y este suele ser el
caso y más cercano a la realidad. También podemos usar
cross-fold predict para obtener predicciones sobre
estos cinco modelos. Entonces esto también es bastante agradable
para hacer mezcla de modelos, por ejemplo, así que si tienes cinco modelos
entrenados, también puedes
sacar predicciones. No es una buena medida para
tu error de generalización. Así que no deberías tomar
cross-fold predict como una forma de ver qué tan bien
le va a tu modelo. Más bien para visualizar cómo predicen
estos cinco modelos en los k pliegues en la
validación cruzada. Otra estrategia de validación
es la construcción de modelos ficticios. Ya sea que haga esto antes de
realizar la validación cruzada
o, o después, eso depende de usted. Es una forma de
validar nuestro modelo. Entonces un modelo ficticio es
esencialmente la idea de que ¿ ese peso que queremos que nuestro modelo de aprendizaje automático
sea mejor que el azar? No obstante, a veces sabiendo cómo se ve el
azar,
es un poco duro. Entonces vamos a echar un vistazo aquí. Puedes hacer diferentes estrategias para usar en tu clasificador. Simplemente puedes hacerlo
fuerza bruta y probarlos todos. Pero uno bueno
suele estar usando prior. Creo que esto
se convertirá en los métodos predeterminados y futuros para
el clasificador ficticio. Pero como estamos haciendo
regresión primero, echemos un
vistazo al regresor. Entonces aquí mismo
también se puede definir una estrategia. La estrategia por defecto es
sólo tener la media. Entonces, un rato, el peor tipo de modelo
regresa solo la media. Entonces usaremos esto
como nuestro modelo ficticio. Al igual que cualquier modelo de
aprendizaje automático, se ajusta esto a los datos
con x train e y train. Entonces podemos puntuar esta función. Incluso podemos hacer una
validación cruzada sobre esto. Y mira qué tan bien le va a este modelo de
azar. Y en base a estas puntuaciones, es un buen indicador qué tan bien, mientras que qué tan bien le va a tu modelo
real. Si la posibilidad de modelo está
funcionando mejor que tu, mejor o igual que tu modelo, probablemente
construirás
un modelo malo y
tienes que volver atrás y
repensar lo que estás haciendo. Podemos hacer validación cruzada, pero obviamente puntuar
sería más apropiado aquí, que es algo que puedes
probar en los cuadernos. Volveremos a hacer esto
y crearemos un modelo de
clasificación muy rápido utilizando nuevamente los datos de
proximidad oceánica. Aquí vamos a construir el clasificador, solo si somos
la estrategia normal. Personalmente, creo que los modelos
ficticios son realmente útiles porque a veces
mientras Chance no es solo 5050, si tienes desequilibrios de clase como lo hacemos con los datos de la
isla, por ejemplo tu, tu flip de moneda es
esencialmente sesgada. Es sesgada. Y el clasificador ficticio es sólo una forma
muy fácil de validar eso. Incluso con desequilibrios de clase, no
construiste
un modelo inútil. Entonces aquí mismo podemos anotar
esto y obtenemos una precisión de, bueno, bastante baja
precisión aquí mismo. Y podemos comprobar cómo las diferentes estrategias
afectan nuestro resultado. Entonces el 32% ya es bastante malo. Pero aun así
probablemente deberías llevarte el clasificador
ficticio con un mejor modelo porque
eso sigue siendo un chance, chance result. Por lo que estos 40% en la
predicción de oportunidad no son una buena, no una buena señal. Digamos eso. Así que aquí mismo vamos a construir un nuevo modelo usando los Bosques
Aleatorios de nuevo. Ahí vamos con un clasificador
y le
encajaremos directamente los datos para que
no tengamos que
ejecutar más celdas. Ahora anotar en los datos
mostrará que nuestro bosque aleatorio es al menos un poco
mejor que el maniquí. Entonces 20 por ciento mejor precisión. Yo diría que en realidad estamos aprendiendo algo
significativo aquí para predecir si estamos más cerca o más lejos de la proximidad
al océano. Ahora, como dije, la puntuación es más apropiada, así que usaremos la
puntuación aquí mismo con nuestro modelo ficticio
en los datos de la prueba. Y la advertencia aquí mismo
es interesante porque nuestro puntaje de validación cruzada nos
dice que la proximidad al océano, la clase de la isla no tiene datos
suficientes para
hacer realmente una división adecuada. Entonces esto es realmente
importante de notar. Aparte de eso, sí vemos, así que eso es algo
a tener en cuenta. Pero aparte de eso, vemos que incluso en la validación cruzada, nuestro modelo está superando
al modelo ficticio. Validar modelos de
aprendizaje automático está muy cerca de mi corazón. Es muy importante ya que
se ha vuelto tan fácil construir modelos de aprendizaje
automático que
haces el trabajo y ves
que esos modelos, en realidad
he aprendido
algo significativo y solo estoy leyendo
algo en ruido. Y estas estrategias son realmente el nivel base que
tienes que ver con cada modelo
de aprendizaje automático. Y en la siguiente clase, veremos cómo construir realmente modelos
justos y
cómo asegurarnos de
que nuestro modelo
no ponga en desventaja a que nuestro modelo
no ponga en desventaja nadie debido a alguna clase
protegida, por ejemplo y eso será sumamente
importante si tocas a los humanos con tu modelo
de aprendizaje automático.
28. 46 ML: En esta clase vamos a echar un
vistazo a la
interpretabilidad de Machine Learning. Entonces vamos a ver
este modelo de caja negra que
construimos e inspeccionaremos
lo que realmente aprendió. Y si eres como yo
y alguna vez has construido un modelo y se lo demuestras a
tu jefe y le dijiste: Sí, aprendió y se desempeñó tal y tan
bien en esta llamada, como si tuviera 60% de precisión. No van a quedar impresionados. Quieren saber qué es lo que
realmente
hace este modelo de aprendizaje automático. Y en esta clase, echaremos un vistazo a
todas y cada una de las características diferentes de
nuestros datos que influyen en la decisión en nuestro modelo de aprendizaje automático. Y de hecho,
profundizaremos en las tramas realmente geniales que puedes tomar que influyen la decisión en un modelo de
aprendizaje automático. Entonces aquí vamos a pretender
que ya hicimos toda
la validación del modelo y la construcción de modelos y
la ciencia de datos antes. Para que podamos comprobar si
nuestro modelo es justo. Entonces la noción de equidad
realmente es la idea que aunque nuestro modelo no
haya visto la clase de
proximidad oceánica, puede
perjudicar implícitamente a esta clase. Así que puedes consultar aquí mismo. Nuestra división,
caemos directamente la proximidad al océano. No entrenamos en él. Pero tal vez nuestros datos de
alguna manera implícitamente
deshabilitan a alguna clase que
se encuentra dentro de la proximidad del océano. Así que comprueba esto. Estoy haciendo algunos, algunos, bueno, un par de
trucos de pandas llevan un rato usando
panelistas. Entonces aquí ves las cosas
que puedes hacer con los socios. Porque aquí mismo tienes los datos de validación y eso es solo una parte de nuestro DataFrame. Quiero encontrar todos los índices
de nuestro DataFrame que están en esta clase y encontrar
la intersección de este índice con los datos de
validación. De esa manera, puedo
elegir el subconjunto de la clase en nuestro
conjunto de validación sin
tener realmente los datos en, bien presente en el DataFrame
de nuestra división de tren de prueba. Y haciendo esto,
estoy jugando un poco con él y
tratando de que funcione, solo imprimiendo sobre un oversize,
mira lo que está pasando. Y así en realidad puedo
validar con los datos que estos son
los datos que quiero. Justo aquí. Ves que ahora estoy
tomando el subconjunto de la misma, tomando el índice de la misma. Y luego estoy imprimiendo
la intersección de x val y el índice basado en clases
que creo antes de eso. Así que guarda esto en idx. Así que solo puedo entrar en el DataFrame y subdividir el marco de
datos con el índice. Usaremos la
función de puntuación del modelo en este caso para tener una idea inicial de
qué tan bien nuestra hora, bueno, qué tan bien
está funcionando realmente nuestro modelo en el subconjunto de clases de nuestros,
nuestros datos de validación. Justo aquí. Imprime esto porque ahora
estamos en un bucle. Entonces tengo que usar dot loc aquí. Y es muy importante para ti también ver que
todavía puedo cometer errores muy comúnmente y
no puedes tener miedo de los errores en Python porque no
duele.
Los errores son baratos. Así que solo pruébalo. En este caso, me
equivoqué, a veces tengo
problemas para mantener separadas
las columnas y las filas. Y aquí mismo, curiosamente, vemos valores tremendamente variables. Entonces tenemos tres que están alrededor del 60 por
ciento, lo cual es agradable. Pero el tercer valor está alrededor de 23% en el
último es cero. Entonces le eché un vistazo a los índices. Y podemos ver
aquí mismo que debe ser Isla porque Irlanda sólo tiene
cinco valores en total. Así que definitivamente tenemos un problema de
predicción aquí, a pesar de que nuestro modelo
le va bien en general. Hace terrible en los datos de la isla
porque no tiene suficientes datos ahí mismo. Aquí puedes ver que intentaré mejorar el modelo
estratificándolo en la proximidad oceánica solo para tratar de ver si esto lo
cambia todo. Y no lo hace. Porque ahora me
aseguré de que el, están igualmente
distribuidos entre clases y tenemos
aún menos datos. Entonces antes tuve
suerte de que tenía dos de las muestras y en
el conjunto de validación. Y ahora tengo menos. Ahora no puedo hacer esto porque el Bien, esto ya es
un subconjunto de los datos, así que simplemente saltaremos esto
porque con cinco muestras tratando de distribuirlas
por todos los conjuntos de datos, es una especie de moot. Y realmente en este caso, que pensar si
puede obtener más muestras, alguna manera crear más muestras,
recolectar más muestras, o si hay alguna manera de
sacar las muestras de el sistema. Pero el sentido que son datos, deberían estar representados
en tu modelo por lo general. Entonces realmente en este caso, obtener más datos. En ese caso. Lo que se puede ver aquí mismo que la estratificación ha
mejorado el modelo en general, lo cual es agradable de ver
y de esta manera. Entonces el backslash
n es un nuevo espacio solo para que se vea
un poco más agradable. Aquí podemos ver
que esto
nos está dando buenas predicciones para el, para todo lo que está
cerca del, al océano,
cerca de la bahía y cerca del océano, y debajo de 1 h del océano. Pero el interior se está
desempeñando significativamente peor que el nuestro que
los otros datos. Ignoremos la
isla por ahora porque discutimos los problemas
con la isla. Echemos un
vistazo a los datos de las pruebas. Porque ahora mismo ya no estamos
haciendo afinación de modelos. Entonces esta es realmente
la validación n y podemos ver que
en los datos de prueba, tierra adentro realmente tiene un problema. Por lo que nuestro modelo está
funcionando bien sobre todo. Pero algunas cosas
están pasando aquí con nuestros datos del interior. Y también sería bueno
aquí hacer validación cruzada. Así que en realidad podemos obtener
incertidumbre sobre nuestro puntaje y ver si hay alguna
fluctuación ahí dentro. Pero pasemos a L5. L5 o IL-5 es un paquete
explicativo de aprendizaje automático. Esta es la documentación. Y para los árboles de decisión, dice aquí mismo podemos
usar los pesos explicativos. Entonces esto es lo que estamos
haciendo aquí mismo. Estoy llamando a esto en
nuestro modelo aquí mismo. Tenemos que abastecer a
sus estimadores. Entonces lo que entrenamos nuestro modelo y
podemos ver los pesos para cada característica y cómo se llama
esta característica. Y esta es una forma sumamente
buena de buscar en tu modelo para poder
explicar qué es lo que más influye en
nuestro modelo. También podemos usar Eli cinco para explicar
predicciones individuales. Entonces aquí mismo,
podemos obviamente es aplicar
nuestro objeto estimador, pero luego también suministrar muestras
individuales y obtener una explicación de cómo las diferentes características
influyeron en esta predicción. Aquí en este momento solo usaremos una sola muestra de nuestros datos. Aquí podemos ver cómo cada
característica individual contribuye al resultado de 89,000. Y claro que también puedes hacer esto
para los clasificadores. O podemos iterar sobre varios números diferentes y ver cómo estos son
explicados por Eli cinco, solo voy a usar la pantalla aquí. Como dije, el formato también
es muy bonito, pero realmente no quiero
meterme en él en esta clase. Y aquí se puede
interpretar cómo cada uno de estos está influenciado por otros parámetros
diferentes del modelo. Después de echar un vistazo a estos, podemos echar un vistazo a la importancia de las
características. Quizás recuerdes desde
el, desde antes, del bosque aleatorio
que puedes hacer introspección sobre la importancia de la
característica. Y Scikit-learn también proporciona una importancia de permutación
para todo. Entonces, para todos,
puedes aplicar esto a cada modelo de
aprendizaje automático disponible en scikit-learn. Y la forma en que esto funciona es que esencialmente la
importancia de la permutación mira su modelo y toma
cada característica en los datos y una por una
aleatorizó esas características. Entonces primero va a los
hogares y tiendas revueltos, por lo que son esencialmente ruido. Y luego ve cuánto
influye esto en tu predicción. Y puedes ver aquí que te
da la importancia media, la desviación estándar, y
también la importancia general. Así que realmente puedes sumergirte profundamente
en cómo tu modelo se afectado por estos,
por cada característica. Por lo que también puedes decidir
abandonar ciertas características aquí. A continuación, echaremos un vistazo a las parcelas de dependencia
parcial. Estas parcelas son
realmente agradables porque te
dan una
visión unidireccional de cómo una característica
afecta a tu, tu modelo. Y la introspección es relativamente
nueva en, en scikit-learn. Por eso hay
scikit, ladrillo amarillo, scikit menos yb, lo que hace que
estas fantásticas parcelas. parte superior media se ve la curva de recuperación de
precisión, por ejemplo ,
y en general, una
muy buena manera visualizar diferentes cosas que explican su
aprendizaje automático. Aquí vemos todas las
diferentes características de
nuestro entrenamiento y cómo
influyen en nuestro entrenamiento y cómo
influyen el resultado de la predicción. Así que abajo a la derecha, el
ingreso medio que se puede ver, tiene una fuerte influencia positiva. Y aquí mismo puedes interpretar cómo el cambio de una característica influiría en los resultados de los
precios. Entonces, los hogares
, por ejemplo, tiene un ligero aumento cuando hay más
hogares, etcétera. Es una pequeña trama muy ordenada. Pero la biblioteca final y mi biblioteca favorita para
la explicación del aprendizaje automático, sí
obtuvieron un papel
de la naturaleza de esto incluso es shap. Shap tiene diferentes
módulos explicativos para diferentes modelos, por lo que básicamente están
muy afinados a cada uno. Incluso puedes hacer
una explicación de aprendizaje profundo con shap. Usaremos el explicador de árboles
para nuestro modelo de bosque aleatorio. Y tenemos un deseo de que tengamos muchas muestras
de fondo. Así que en realidad podríamos submuestrear esto
para acelerarlo. Pero ahora mismo, pasaremos
nuestros datos de validación a esto, explicaremos nuestro objeto que
creamos y calcularemos esto. Entonces esto lleva un segundo y de hecho
lo cancelaré aquí mismo porque quiero guardarlos
en una variable para
poder reutilizarlos más tarde y eso es no tener que
recalcularlos. Pero generalmente la trama que quiero
mostrarles es una trama de fuerza. Esta gráfica se puede utilizar para explicar
básicamente
la magnitud y la dirección de cada característica de su
modelo de aprendizaje automático de sus datos, cómo cambia la predicción. Y realmente me encanta usar estas parcelas y reportes porque
son muy intuitivos. Eso lo verás en un segundo. Entonces aquí tenemos que pasar
el valor esperado en nuestro objeto explicador y los valores shap que
calculamos antes. Y uno de nuestros puntos de datos
en los datos de validación. Por lo que una vez más puedes
hacer esto para varios de tus puntos de
datos de validación. Cometí un error aquí y
no tener un subrayado. Y además, debería
haber activado JavaScript para Shapley porque
hacen algunas parcelas bonitas. Lo son, están volviendo a caer
en JavaScript para hacer esto. Y tiene que
inicializarse aquí mismo. Pero después, tenemos esta trama y espero que la
puedas probar tú mismo. Porque aquí se puede ver que esta predicción en particular fue más influenciada por el
ingreso medio de manera negativa. Y luego tirar a la población
un poco menos positivamente en número de
hogares de manera negativa. Y solo en general, un paquete
muy agradable. Así que hemos visto diferentes formas visualizar e incluir datos en tus informes y cómo
puedes generarlos y definitivamente revisar la documentación para que
tengan mucho más para ti. En esta clase, inspeccionamos
el modelo de aprendizaje automático, así que echamos un vistazo a cómo diferentes características influyen nuestra decisión de aprendizaje automático. Pero también, ¿qué tan fuerte
es esta influencia en la decisión y cómo influyen las
diferentes características en otras características? Entonces tal vez
incluso podamos dejar algunos de nuestra adquisición de datos original. Y en la siguiente clase, vamos a
echar un vistazo a la equidad. Entonces, esta parte importante de donde los modelos de
aprendizaje automático
podrían en realidad perjudicar algunas clases protegidas porque aprenden algo que
no deberían aprender. Y vamos a echar un
vistazo a cómo detectar esto y algunas estrategias, cómo mitigarlo.
29. 47 de equidad: En esta clase se tendrá
una mirada introductoria al aprendizaje automático, la equidad. El aprendizaje automático se ha vuelto un poco mala rap
últimamente porque ha desfavorecido a algunas clases
protegidas que no deberían haber sido
desfavorecidas por el modelo. Y esto solo ha salido
por la gente que se da cuenta, no por la ciencia de datos haciendo
el trabajo de antemano. En esta clase, vamos a echar un
vistazo a cómo puedes hacer el trabajo. Cómo puedes ver si tu
modelo se está desempeñando peor en ciertas
características protegidas. Y también echa un vistazo si tu
modelo de aprendizaje automático es menos seguro en ciertas áreas. Entonces a veces se
obtiene un modelo que predice que alguien está peor porque está
en una clase predicha. Y eso es un gran no-go. Si eso alguna vez sucede, es
posible que el modelo de aprendizaje automático nunca llegue a la producción. Pero a veces tu modelo de
aprendizaje automático es solo menos seguro para algunas personas
si se ofrece cierta clase. Y entonces se debe tratar de
aumentar la certeza del modelo haciendo
el trabajo de aprendizaje automático y
ciencia de datos de antemano. Esto estará construyendo
sobre lo que hicimos y la parte de la interpretabilidad. Bueno, ya hicimos parte
de la evaluación de equidad. Empezamos con un bosque aleatorio
y hacemos la anotación. Así que tenemos una línea de base en saber qué tan bien le va a nuestro modelo
general. Entonces comenzaremos a
diseccionarlo por clase. Entonces ya tenemos
esta estratificación en la clase porque la
mantendremos de antes, porque mejoró significativamente el
modelo. Pero luego iteraremos sobre
las clases y de hecho echaremos
un vistazo a lo bien que les
va. Al principio. Queremos conocer la partitura y básicamente hacer el mismo trabajo que hicimos en la parte de
interpretabilidad. Entonces conseguiremos nuestras
clases aquí mismo. Y entonces en realidad podemos
echar un vistazo e interpretar. Nuestros datos. Aquí mismo haremos el trabajo de
obtener nuestros índices. Entonces hacemos todo con
la intersección
y obteniendo nuestros,
nuestros índices de clase
y el inicio. Entonces esto se va a
guardar en idx para index. Y entonces estamos tomando la
unión y la intersección, no la unión de estos valores para la validación
y para nuestra prueba. Porque ahora mismo solo somos uno para probar
realmente nuestros algoritmos. Entonces, tener ambos conjuntos de datos de holdout, eso está realmente
bien para esta parte. Por lo general, lo
haces al final después de
arreglar tu modelo. Y después de la
afinación hiperparamétrica para ver si tu modelo está en
desventaja a alguien. Así que tomamos la intersección con un índice de clase aquí mismo, copiamos esto y nos
aseguramos de que los datos estén ahí. Y luego podemos puntuar modelo en los
datos de validación y en los datos de prueba. Estos puntajes deberían, idealmente todos estos puntajes
deberían funcionar igual de bien. Y absolutamente idealmente todos
ellos rinden así como
la puntuación general del modelo. Pero recordamos que tierra adentro era significativamente
peor que todo lo demás. Y por supuesto, tenemos los
problemas de que Irlanda no tenga suficientes muestras para
realmente hacer la validación. Por eso incluí
solo un archivo script. Y por ahora, más adelante, también te
mostraré cómo
hacer el cómo detectar errores en tu procesamiento
para que podamos hacer con esto. Y luego ampliaremos esto
para incluir la validación cruzada. Porque con la
validación cruzada, realmente
podemos asegurarnos de que no
haya
fluctuaciones raras dentro de nuestros datos. Entonces tal vez tierra adentro solo tiene algunos datos graciosos ahí que realmente lo hacen muy
salvajemente y su predicción. Entonces sacar eso es
realmente importante aquí mismo. Y esto es sólo el
comienzo para ti. Si quieres tener una
jugada con él, puedes Yo también soy modelos
ficticio de Bill y simplemente profundiza en por qué el interior está
haciendo mucho peor. Usando la interpretabilidad
para
investigar realmente por qué algo está sucediendo en este
modelo aquí mismo. Para que tengamos los puntajes. Y mientras miramos
estos puntajes, es agradable. Se está poniendo un poco
mucho con los números. Entonces, ¿qué podemos hacer? En primer lugar, está en el
try-excepto que Python tiene. Entonces, si hay un error, porque Irlanda no
tiene suficientes datos, podemos atrapar ese error. Y con el excepto, sólo
vamos a poner un camino para que
todo lo demás siga corriendo. Después también procesamos
Islas. Ahí vamos. Entonces ahora las
guardaremos como variables, como Val y probaremos. Porque entonces en realidad
podemos simplemente calcular estadísticas sobre esto. Así que consigue la media y la desviación
estándar. Entonces un indicador de
incertidumbre aquí sería, o algo gracioso
pasando aquí, sería si la desviación
estándar de nuestra validación cruzada
fuera muy alta. Lo cual curiosamente, no lo es. En esta clase tuvimos
un vistazo a cómo diseccionar nuestro modelo de
aprendizaje automático y evaluarlo en diferentes clases
protegidas sin capacitarse sobre ellas. Y vimos que un modelo
que en general le va bastante bien puede rendir muy
mal en algunas clases. Y que a veces ni siquiera
tenemos datos suficientes para
evaluar realmente nuestro modelo. Así que tenemos que
volver hasta
la adquisición de datos y
obtener más datos para
poder construir realmente un
buen modelo y hacer una buena ciencia de datos con
respecto a esa clase. Y el caso de negocios
aquí es muy claro. Nunca quieres una desventaja, alguien que
sería un buen cliente, porque pierdes a
un buen cliente. Con esto concluye el capítulo sobre aprendizaje
automático y validación de
aprendizaje automático. En la siguiente clase veremos visualización y cómo construir hermosas parcelas
que pueda usar en su informe de ciencia de datos
y presentaciones.
30. 50 Viz: En este capítulo
final ya veremos la visualización de datos y también cómo generar presentaciones e informes PDF
directamente desde Júpiter. Y con eso concluye este curso.
31. 51 Visualización básica: En esta clase, aprenderás los mecanismos subyacentes para visualización de
datos en Python. Importaremos nuestros datos como siempre, y luego usaremos la
biblioteca de plotting estándar en Python. Matplotlib at subyace a la mayoría de las otras
bibliotecas de plotting que son más alto nivel como
Seaborne también. Entonces es muy bueno
conocerlo porque también puedes usarlo para interactuar
con Seaborn. Así que vamos a hacer una parcela de línea fácil con valor medio de la casa aquí. Ahora, por lo general se
quiere una gráfica de líneas para datos que en realidad están
relacionados entre sí. Entonces empezaremos a
modificar éste. Primero. Abriremos una figura. Y también llamaremos al
programa de la trama porque Jupyter Notebook, lo está poniendo un
poco fácil,
mostrándonos el objeto de la trama justo después de la ejecución del vendedor. Pero esta es realmente
la manera de hacerlo. Así podemos cambiar
el tamaño de la figura
iniciando nuestro objeto figura con un tamaño de figura diferente. Por lo general, esos se
miden en pulgadas. Sólo que sí. Sólo un aparte. Y entonces podemos cambiar
esto a partir de una trama lineal. Modificaremos esto más a fondo. Entonces ya que, bueno, como las parcelas de
líneas no están relacionadas, procrean aquí, porque si trazamos esto uno contra el otro, se ve un poco funky. Podemos cambiar el
marcador para que sea una x. Y tenemos un bonito diagrama de
dispersión aquí mismo. Y se puede ver
que el mar, por ejemplo, hace que sea mucho más fácil para nosotros obtener un gráfico de dispersión de aspecto agradable. Esta parcela aún
necesita mucho trabajo. Pero que sepas así
es como cambiamos los colores y cambiamos
diferentes marcadores. Puedes buscar los marcadores
en el sitio web matplotlib. Hay una miríada de mercados
diferentes. Pero entonces también podemos empezar a
agregar etiquetas a esto. Entonces el objeto plot que
tenemos es un simple plot objects. Así que solo podemos agregar en una etiqueta. Entonces x label es nuestra población, y label va a ser el valor de
nuestra casa aquí mismo. Y podemos agregar un título porque queremos que nuestras parcelas vean bien y sean informativas. Y además, podemos agregar capas
adicionales de
plotting encima de esto. Entonces, en lugar de la población
contra el valor medio de la casa, podemos trazar la población contra nuestro total de habitaciones y
cambiar el tamaño del
marcador, el color del marcador y
el estilo del marcador. Pero obviamente, nuestras habitaciones
totales se escalan de manera muy
diferente al valor medio de nuestra casa. Así que solo podemos hacer
un hot fix ahora mismo. Por supuesto que nunca se hace
eso en una trama real. Pero solo para mostrar cómo superponer diferentes tipos de
datos en una misma gráfica, puedes modificarlo. De esta manera. Puede guardar sus datos y tenerlos disponibles
como un archivo normal. Cambiar el DPI significa que
tenemos los puntos por pulgada. Esa es un poco la resolución de nuestra de nuestra trama que se salva. Entonces también podemos trazar ImageData. No tenemos una imagen en este
momento para esto, pero vale la pena plt.show. Y esencialmente solo le das datos de
la imagen y va a
trazar la imagen 2D por ti. Echemos un
vistazo a cómo cambiar esta gráfica si es más como superponer diferentes
datos sobre esto también. Como si solo
tuviéramos un scatter, esto está completamente bien
y podemos agregar una leyenda. Pero nos da una
linda advertencia de que no
hay etiquetas ni
en este objeto de trama. Entonces eso significa que podemos
agregar una etiqueta a nuestra, a nuestra gráfica de datos aquí mismo. Y sólo lo llamaremos casa. Entonces ahora tenemos una leyenda aquí. Tiene más sentido si
superponemos más datos. Entonces, si queremos trazar
algunos datos en la parte superior, podemos simplemente llamar a otra función
plot aquí mismo. Cambia el marcador para que se vea un poco
diferente y puedas ver que nuestra leyenda también
está actualizada. Entonces así es como se pueden
hacer parcelas singulares. Y como mencioné, C1 es una
abstracción de alto nivel para matplotlib. Eso significa que en realidad podemos usar matplotlib para trabajar un
poco con un C1. Y esto sólo te dará un ejemplo de cómo
salvar una trama de Seaborn. Pero también puedes
buscar otras formas fácilmente. Agrega información a
tus parcelas marítimos
o modifica tus parcelas de Seaborn a través de la interfaz
matplotlib. Entonces aquí mismo haremos la parcela de par con solo 100 muestras porque
queremos que sea rápida. Y podemos volver a abrir una figura matplotlib y cambiar el
tamaño de la figura como quisiéramos. Y luego guardar la cifra. Aquí podemos ver que esto ya
está disponible como PNG. Abre el PNG y lo
usas donde necesitemos. Justo aquí. Y esto, al abrir, esto solo se ve como la trama, pero como imagen. Si quieres hacer
gráficas rápidas directamente desde DataFrames sin llamar a
Seaborn o matplotlib. Se puede llamar a la función de
trama de pandas en realidad, que interconecta con la línea de mar. Entonces d de parcela te da la posibilidad de hacer
diferentes tipos de parcelas. Realmente puedes hacer gráficos de
barras e histogramas y también diagramas de
dispersión, lo que estaremos haciendo esta vez. Esto significa que solo
proporcionaremos la etiqueta de nuestros datos x y y le indicaremos
que haga un diagrama de dispersión. Volveremos a usar a la población
contra el valor de nuestra casa. Lo siento, el total de habitaciones otra vez. Y solo proporciona la
palabra diagramas de dispersión, un diagrama de dispersión, dispersión para nosotros. En esta clase aprendimos las diferentes formas de trazar datos. En Python. Usamos matplotlib, usamos pandas directamente, e incluso vimos que estos interactúan entre sí porque tanto
seaborne como pandas
dependen de matplotlib. Para que puedas tomar los
objetos devueltos por esas parcelas y guardarlos e incluso
manipularlos más. En la siguiente clase,
vamos a echar un
vistazo a trazar información espacial.
32. 52: En esta clase vamos a echar un
vistazo a la cartografía de datos geoespaciales. Entonces datos cuando tengas ubicaciones
geográficas disponibles. Para que puedas hacer buenos mapas y realmente mostrar dónde están
tus datos, lo que agrega otra dimensión de comprensión
a través de tus datos. Empezaremos
cargando nuestros datos. Nuestros datos ya contienen
longitud y latitud. No obstante, están en
el orden equivocado, así que tendremos que
tenerlo en cuenta. Importaremos folium. Folium es una forma de trazar nuestros datos en mapas de
manera interactiva en realidad. Entonces comenzaremos
con un mapa base folium y daremos la ubicación
de nuestros primeros datos. Y me gusta caminar y manera
fácil para mí
simplemente hacer el mapa base para mis datos es proporcionar la media de la latitud y longitud como punto
central de nuestro mapa. Y luego podemos echar
un vistazo a sí, al impacto de la exhibición. Se puede ver que esto tiene OpenStreetMap como fondo. Y se puede caminar por ahí. Y entonces podemos empezar a
agregarle cosas. Un ejemplo es agregar marcadores. Los marcadores son una buena manera de agregar ubicaciones desde sus puntos de datos y darle
algunas ubicaciones de muestra
en la información sobre herramientas. Y esto es lo
que haremos aquí mismo. Así que el volumen tiene la clase de marcador y echa un vistazo a todas las diferentes clases
que puedes usar. La biblioteca sigue creciendo, pero ya tiene alguna funcionalidad
realmente
ordenada para construir
algunos mapas realmente geniales. Y usaremos el
mercado para caminar. Vamos a sumarles los primeros puntos
de datos de nuestro mercado. Entonces es por esto que tiene
que en dos método. Y copiaremos sobre el
mapa base en la celda porque todo tiene que estar
contenido en una celda para poder cambiarlo. Y lo podemos ver aquí mismo. Entonces cambiaremos eso alrededor, agregaremos latitud y longitud
y solo usaremos I locked para obtener la primera fila de
nuestro DataFrame que vayamos, agregarla a nuestro mapa base. Y cuando movemos nuestro zoom out, podremos ver nuestro primer
marcador en el mapa. Entonces esto es bastante agradable. Podemos cambiar alrededor del mapa. También podemos cambiar
por marcadores. Ahora, diferentes tipos de marcadores. Para que también puedas agregar círculos para
marketing a tu mapa. Definitivamente experimenta con él. Es bastante divertido. Creo que otra
manera bastante ordenada de visualizar datos. Entonces, si bien nuestro mapa se amplió demasiado
al valor estándar, entonces a las 12 estaba en algún lugar por
ninguna parte. Así que
aléjate un poco al principio para que podamos ver
realmente en el Marcos, también
podemos agregar múltiples marcadores iterando sobre nuestro DataFrame. Entonces para eso solo estamos
usarlo surgió método tenemos en el marco de
datos y esto
devolverá el
número de nuestra fila
y también la fila y el contenido de
la fila en sí. Entonces para que eso funcione, y probablemente agregaré una muestra
al DF porque si nosotros, si agregamos 20,000
marcadores a nuestro mapa, ese mapa sería
bastante ilegible. Ahí vamos. Entonces tal vez hacer
cinco para el inicio. Y fritos. Aquí, voy a añadir el ISO que se desempaqueta en ellos en
el bucle mismo. Y puedo quitar, me encierro aquí mismo porque
no tenemos que acceder a ninguna
ubicación de lo nuestro. La iteración ya
hace eso por nosotros. Y tenemos un buen
grupo de unos pocos, de unos pocos Mockus aquí mismo. Entonces también puedes ir y
cambiar estos marcadores, como agregar una punta de herramienta
cuando pasas el cursor sobre ella. Y este tooltip puede contener cualquier información que
tengamos disponible. Entonces, por ejemplo, podemos usar la proximidad
al océano aquí mismo. Ahora cuando pasas el cursor sobre él, puedes ver qué tipo de
flores tiene este marcador, según nuestra
fecha en esta clase, echamos un vistazo a cómo
crear mapas y agregar marcadores a estos mapas y hacerlos
realmente agradable e interactivo. En la siguiente clase,
echaremos un
vistazo a parcelas más interactivas, gráficas de
barras y todo eso para
poder interactuar con los datos directamente y hacer
estos bonitos gráficos interactivos.
33. 53 Exportación de datos: A menudo necesitamos
guardar estos datos porque no
queremos volver a ejecutar el
análisis todo el tiempo. Todo lo que queremos compartir los
datos con un colega. Eso significa que necesitamos exportar los datos o
las visualizaciones que hacemos. Y esto es lo que
haremos en esta clase. Al tener nuestros datos ligeramente
modificados, podemos, por ejemplo usar la codificación one-hot
que usamos antes. Sólo para que
sepamos que ahí tenemos algunos
datos diferentes. Y podemos usar para, para CSV o cuál de estos
métodos puedes montar,
exhalar también, y
escribir esto en un archivo. Entonces de esa manera tenemos disponibles los
datos después de
procesarlos y no tenemos que volver a ejecutar el
cómputo cada vez. Y para CSV toma muchos argumentos
diferentes al
igual que leer CSV, es muy conveniente y de
esa manera realmente puedes reemplazar los nans
aquí con por ejemplo solo la palabra nan. Entonces la gente sabe que esto es un, no un número y no
sólo un valor faltante donde olvidaste
agregar algo. Y entonces podemos echar
un vistazo a este archivo. Y el navegador Júpiter
también, busca nana. Y podemos ver
aquí mismo que agregó nan al archivo directamente. Así que realmente un
envoltorio conveniente para
sacar nuestro DataFrame en
un formato compartible. Nuevamente, en lugar de esto, también
podemos usar la funcionalidad de
escritura. Entonces así es básicamente como puedes escribir cualquier tipo
de archivo que quieras. Usaremos el texto al aire libre y este punto TXT y cambiaremos
el modo al modo de escritura. Entonces w, y solo usaremos F S, un manejador de archivo en este momento. Y punto F, ¿verdad? Debería darnos la
oportunidad o la posibilidad escribir una cadena
en este archivo. Y podemos convertir
nuestro DataFrame una cadena con valores de muro. Creo que debería
haber un método de dos cadenas
para realmente dar, sí, un
método toString aquí mismo, que es inocencia y
otro método de exportación. Pero realmente esto es
solo para demostrar que
puedes escribir cualquier tipo de cosa que puedas formarlo
como una cadena en un archivo. Entonces veremos
aquí mismo que este muro,
este no está tan bien
formateado como antes. Tenemos las pestañas en el medio
en lugar del comentarista. Así que realmente se necesita un
poco de magia de cuerdas para que esto funcione tan bien
como los pandas a CSV. Pero sí, así es como se
exportan archivos en Python. Ahora algo a
notar aquí es que el derecho siempre
anulará su archivo. Entonces, si lo cambias
a otra cosa, y vamos a echar otro
vistazo al archivo. Podemos ver que refrescar
esto nos da sólo esto. Por lo que el archivo es reemplazado
por la operación de escritura. Hay otro, otro modo que
deberíamos echar un vistazo, que es el modo append. Y el modo append solo
tiene el significante a, donde podemos agregar a un archivo. Así que esto es bastante agradable
si quieres conservar los datos originales
o algún tipo de algún tipo de proceso
que está en curso para escribir datos y agregarlos a tu archivo, a un archivo existente sin eliminar ese
archivo esencialmente. Entonces podemos ver aquí mismo que
escribimos nuestro DataFrame. Y luego podemos
copiar esto y cambiarlo para anexar ejecutado, repasar, actualizar esto, y echar un vistazo al final. Debería decir cualquier cosa o ser. Y lo hace. Entonces sí,
esos son archivos. Ya hicimos esto en los
fundamentos de la visualización, pero en caso de que te saltes eso, cuando tienes cifras, puedes exportar estas cifras generalmente con el comando de seguridad. Entonces este toma un nombre de
archivo, manejadores de archivos, algún tipo de significante, y por supuesto necesitas
algún tipo de trama. Realmente quiero señalarte el
método de diseño ajustado aquí mismo, porque ese es realmente bueno, demasiado joven para endurecer el
diseño de tus parcelas seguras. Entonces, si guardas tus datos y te
figurará y se
ve un poco torcido. PLT.Mostrar un diseño ajustado realmente
limpiará los bordes de tu figura y generalmente los
hace más presentables. Básicamente los ejecuto en
casi cualquier cifra exportada. Y aquí se puede ver que nuestra cifra fue
exportada muy bien. Se puede cambiar alrededor de todos
estos, todos estos parámetros. Por supuesto, para guardar la figura exactamente de
la manera que necesites. A lo mejor tienes un color corporativo que quieres que sea tu figura. En. Este caso, elegí el negro, que por supuesto es una mala elección que si eres
leyendas o desbloqueas. Pero sí, solo para
mostrarte cómo hacerlo, cómo jugar con él. Echamos un vistazo a lo
fácil que es guardar datos en diferentes
formatos desde Python. Y luego en la siguiente clase vamos a echar un vistazo a cómo podemos generar presentaciones desde Cuadernos
Júpiter directamente.
34. 54 presentaciones nuevas: Puede ser complicado
generar presentaciones completas, pero es posible obtener presentaciones de
paseo fuera de Júpiter. Y en esta clase, te voy a mostrar cómo puedes usar cualquier
tipo de cuaderno. Usaremos el creado y
el de exploración visual. Entonces quieres ir a la barra de herramientas
Ver celda y luego a la presentación de diapositivas. Y puedes cambiar el tipo de
diapositiva para cada celda. Entonces, si quieres
tener una diapositiva exhibida o omitida va a ser la de las diapositivas
principales. Entonces. Así que todo lo que quieras
en su propia diapositiva, puedes poner como slot, slide o sub slide. Y sub slide va a
ser una navegación diferente. Así que fíjate en estas tramas
mientras voy
a mirar la presentación
y en un segundo. Y fragmento, se va a
añadir otro elemento a la, a la
diapositiva de los padres esencialmente. Así que vamos a comprobar eso también. Así que después de significarlos, podemos ir a File Download S y llamar a las diapositivas Reveal JS. Cuando abrimos esto, obtenemos una presentación
directamente en el navegador. Vamos a deshacernos de eso. Entonces esta es una diapositiva principal desplazándose hacia la
derecha esencialmente, y todavía podemos echar un vistazo a los datos y nos muestra
el código y todo. A veces hay que
jugar un poco con,
uh, con, uh, tramas en las
que funcionan. Estas son las diapositivas de las que
hablamos antes. Y ahora el fragmento
va a agregar otro elemento a tu
diapositiva esencialmente. Entonces este es también el fragmento
y otro fragmento. En esta clase tuvimos una
visión general de cómo generar presentaciones en JavaScript
y HTML desde Júpiter. Vimos que
realmente podemos preservar los datos y el código
en nuestras presentaciones, incluso tener estas parcelas incluidas
automáticamente. Vimos que podemos
hacer un sub diapositivas y fragmentos y realmente hacer esto súper
interesantes presentaciones que son diferentes a
lo que sueles ver. En la siguiente clase. Veremos cómo sacar
reportes PDF de Júpiter.
35. 55 PDF nuevo: En esta clase final, aprenderás a generar archivos PDF directamente desde el cuaderno
Júpiter. Y cómo puede obtener estas
hermosas visualizaciones en sus archivos PDF sin
ningún paso intermedio. Empezaremos con
un cuaderno de Júpiter e iremos a Vista Previa de Impresión. Aquí ya podemos
guardarlo como PDF. Si imprimimos esto. Alternativamente,
podemos descargar como PDF, pero aquí tienes que
asegurarte de que tienes instalado. Y sé que mucha gente yo
no en
esta computadora, por ejemplo, así que obtienes un error del servidor. Puedes ir al paso extra
de ir a descargar como HTML. Abre el HTML y
esto es equivalente a
tu a la vista previa de impresión
y guárdalo como PDF. Y en el PDF puedes ver que este ahora contiene tu código y toda la información que tenías previamente
disponible también. Además,
tenemos NB convert, así que la
funcionalidad de conversión de notebook que viene
con el portátil Jupiter, y creo que es una manera muy
agradable de trabajar con él. Tiene un leerme cuando
te acaban de llamar Júpiter espacio y convertirte. Y te dirá
cómo usarlo esencialmente. Entonces, lo que querrás
hacer es ir a tus datos aquí mismo en mi repositorio de código para
este curso de Skillshare. Y ahí solo puedes Júpiter
y convertirte y luego elegir una de las formas que quieras generar el
informe a partir de ese HTML. Html suele ser el valor predeterminado. Entonces, si acabas de llamar a Júpiter
y convertirte en tu cuaderno, se convertirá a HTML. También puede suministrar
el menos menos dos. Pero si dices PDF, se encontrará con el mismo
error que antes de que no
tienes látex instalado. Entonces, si instalas eso, puedes obtener fácilmente estos informes PDF
directamente desde para ponerlos. Otra manera muy agradable es que, bueno, si estás en el cuaderno de
Júpiter, a menudo
juega un
poco y tu o la, las celdas pueden ser, pueden correr números bastante altos. Así que sé como 60, 70. Y eso básicamente demuestra cuánta experimentación
hiciste. Si desea un cuaderno limpio
que se ejecute de arriba a abajo, puede proporcionarles la opción
de ejecución menos menos, que ejecuta
su notebook celda
por celda antes de exportar. Y así es como
generas PDFs en Júpiter. Entonces tal vez tengas que instalar último para poder hacerlo. Todos. Utiliza la funcionalidad de impresión
de los informes HTML. Pero con esto concluye la clase sobre ciencia de
datos y Python
aquí en Skillshare. Gracias por
llegar hasta aquí. Espero que lo hayan disfrutado y espero que esto lo traiga adelante
en su carrera.
36. 60 Conclusión nueva: Enhorabuena, Hiciste un
tiro todo el curso Ciencia de
Datos con Python
aquí en Skillshare. Y entiendo
que esto es mucho. Revisamos todo el flujo de trabajo de ciencia de
datos, incluida la carga de datos, limpieza de datos, que hacer análisis
exploratorios de datos y la
construcción de modelos de
aprendizaje automático. Posteriormente, validándolos,
mirando la interpretabilidad, y también generando reportes y presentaciones a partir de nuestro análisis. Esto es enorme y
entiendo que esto
puede ser abrumador. Pero siempre puedes volver a los videos del tamaño de un bocado
y echar otro vistazo a
esos para entender y profundizar y tus conocimientos. Ahora mismo. En mi opinión, los
mejores científicos de datos solo construyen proyectos. Aprenderás más
sobre ciencia de datos aplicando realmente tus
conocimientos en este momento, y es por eso que
tenemos un proyecto. Al final de este curso, construirás un bonito proyecto de ciencia de
datos, análisis de tus propios datos
o los datos que te proporcione aquí y construirás un PDF con al
menos una visualización
que te guste. Honestamente, cuanto más
hagas, mejor. Profundiza en los datos, encuentra relaciones interesantes
en tu conjunto de datos y realmente averigua cómo
visualizar los mejores. Y así es como te convertirás en un mejor científico de datos al aplicar realmente
tus conocimientos. Gracias de nuevo por
tomar este curso. Espero que lo hayan disfrutado. Y echa un vistazo a mis otros
cursos aquí en Skillshare, si tienes tiempo, ahora, asegura de salir y
construir algo interesante, algo que realmente te guste. Gracias de nuevo por
tomar este curso. He puesto mucho
trabajo en esto y me alegro de que hayas logrado
pasar por el final. Espero volver a verte
y construir otra cosa.