Ciencia de datos y aprendizaje automático con Python: codificación práctica intermedia | Jesper Dramsch, PhD | Skillshare
Buscar

Velocidad de reproducción


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Ciencia de datos y aprendizaje automático con Python: codificación práctica intermedia

teacher avatar Jesper Dramsch, PhD, Scientist for Machine Learning

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción a la ciencia de datos con Python

      3:22

    • 2.

      Proyecto de clase

      1:35

    • 3.

      ¿Qué es la ciencia de datos?

      4:44

    • 4.

      Descripción general de herramientas

      4:15

    • 5.

      Cómo encontrar ayuda

      14:17

    • 6.

      | de carga de datos |

      0:21

    • 7.

      Carga de archivos de Excel y CSV

      6:20

    • 8.

      Carga de datos desde SQL

      5:11

    • 9.

      Carga cualquier archivo de datos

      5:58

    • 10.

      Lidiarás con datos enormes

      10:15

    • 11.

      Combinación de múltiples fuentes de datos

      4:14

    • 12.

      | de limpieza de datos |

      0:54

    • 13.

      Lidiar con datos faltantes

      8:05

    • 14.

      Datos numéricos de escala y agrupación

      12:26

    • 15.

      Validación de datos con esquemas

      10:09

    • 16.

      Codificación de datos categóricos

      6:39

    • 17.

      | Análisis de datos exploratorios |

      7:16

    • 18.

      Exploración de datos visuales

      10:19

    • 19.

      Estadísticas descriptivas

      5:32

    • 20.

      Divide los datos en subconjuntos

      12:30

    • 21.

      Encuentra y comprende las relaciones en los datos

      5:51

    • 22.

      | de aprendizaje automático |

      1:08

    • 23.

      Regresión lineal para la predicción de precios

      14:30

    • 24.

      Árboles de decisión y bosques aleatorios

      6:59

    • 25.

      Classificación de aprendizaje automático

      9:45

    • 26.

      Agrupación de datos para obtener información más profunda

      8:16

    • 27.

      Validación de modelos de aprendizaje automático

      10:02

    • 28.

      Interpretabilidad con aprendizaje automático

      16:23

    • 29.

      Introducción a la equidad en el aprendizaje automático

      7:47

    • 30.

      | Visuales e informes |

      0:15

    • 31.

      Conceptos básicos de visualización

      7:23

    • 32.

      52 Nuevo en geoespacial

      5:30

    • 33.

      Exporta datos y visualizaciones

      6:42

    • 34.

      Crea presentaciones directamente en Jupyter

      2:38

    • 35.

      Genera informes PDF con Jupyter

      3:47

    • 36.

      ¡Conclusión y felicitaciones!

      2:04

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

4762

Estudiantes

5

Proyectos

Acerca de esta clase

¿Estás listo para aprender las habilidades que tienen una gran demanda en todas las industrias?

El aprendizaje automático y la ciencia de datos son esenciales para tomar decisiones informadas en el mundo de los negocios de hoy. Y la mejor manera de aprender estas habilidades es a través del poder de Python.

Sigue el libro de recursos de códigos gratuitos en: Data-Science-Gui.de (sin correo electrónico)

Python es el lenguaje de referencia para la ciencia de datos, y en este curso profundizaremos en sus capacidades. Esta clase está diseñada para estudiantes principiantes e intermedios, así que no te preocupes si eres nuevo en la programación. Esta clase incluye algunos conocimientos de Python, pero si prefieres una introducción de alto nivel sin una aplicación de programación a la ciencia de datos, tengo otra clase: la clase maestra de ciencia de datos sin código.

Comenzaremos por cubrir los conceptos básicos de la sintaxis de Python y luego pasaremos al flujo de trabajo completo de ciencia de datos, que incluye:

  • Carga de datos de archivos y bases de datos
  • Limpieza y preparación de datos para la análisis
  • Explorar y comprender los datos
  • Crea y evalúa modelos de aprendizaje automático
  • Analiza la pérdida de clientes y valida modelos
  • Visualiza datos y crea informes

Usaremos bibliotecas de Python populares y gratuitas como Jupyter, NumPy, SciPy, Pandas, MatPlotLib, Seaborn y Scikit-Learn.

Al final de esta clase, no solo tendrás una comprensión sólida de la ciencia de datos y el análisis de datos, sino que también podrás aprender nuevas bibliotecas y herramientas rápidamente. Así que, no esperes más y ¡inscríbete hoy en esta clase magistral de ciencia de datos en Python!

-----------------------------------------

¿Quién soy?

Jesper Dramsch es un investigador de aprendizaje automático que trabaja entre los datos físicos y el aprendizaje profundo.

Me capacité como geofísico y me cambié a la investigación en programación en Python, ciencia de datos y aprendizaje automático durante mi trabajo para un doctorado. Durante ese tiempo creé cuadernos educativos en el sitio web del concurso de aprendizaje automático Kaggle (parte de Alphabet/Google) y alcancé el rango 81 en todo el mundo. Mi cuaderno superior ha sido visto más de 64 000 veces en este momento. Además, he enseñado Python, aprendizaje automático y ciencia de datos en todo el mundo en empresas como Shell, el gobierno del Reino Unido, universidades y varias empresas medianas. Como un poco de estímulo en 2020, he terminado la certificación de IBM Data Science en menos de 48h.

-----------------------------------------

Otros enlaces útiles:

Mi sitio web y blog -
https://dramsch.netEl boletín semanal - https://dramsch.net/newsletter

Twitter - https://twitter.com/jesperdramsch
Linkedin - https://linkedin.com/in/mlds

Youtube - https://www.dramsch.net/youtube
Camera gear - https://www.dramsch.net/r/gear

Conoce a tu profesor(a)

Teacher Profile Image

Jesper Dramsch, PhD

Scientist for Machine Learning

Profesor(a)

a top scientist in machine learning, educator, and content creator.

In my classes, you'll learn state-of-the-art methods to work with AI and gain insights from data, along with over 7,000 other students. This takes the form of exploring data and gaining insights with modelling and visualizations. Whether you're a beginner, intermediate, or expert, these classes will deepen your understanding of data science and AI.

I am trained as a geophysicist and shifted into data science and machine learning research, and Python programming during work towards a PhD. During that time, I created educational notebooks on the machine learning contest website Kaggle (part of Alphabet/Google) and reached rank 81 worldwide. My top notebook has been viewed over 70,000 times a... Ver perfil completo

Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

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.