Transcripciones
1. Introducción: Hola. Bienvenido a la ciencia de datos y el aprendizaje automático con Python. Yo soy tu instructor. Frank Kane y yo pasamos más de nueve años en amazon dot com e imdb dot com. Desarrollando y gestionando algunas de sus características más famosas, como Recomendado para Usted y Gente que Compró También Compró y top sellers y
recomendaciones de películas e I. M. D B. M.
D B.
Y todas estas características requerido aplicar la minería de datos en técnicas de aprendizaje automático a conjuntos de datos del mundo
real. Y de eso se trata todo este curso. Ser científico de datos en la industria tecnológica es una de las carreras más gratificantes del
planeta hoy fui y estudié descripciones reales de puestos para roles de científicos de datos en
empresas tecnológicas , y destilo esos requisitos hacia abajo en el temas que verás en este curso. Este curso es realmente integral. Empezaremos con un curso de choque en Python y haremos una revisión algunas estadísticas básicas y probabilidad. Pero luego nos vamos a sumergir justo en más de 60 temas en minería de datos en aprendizaje automático que incluye cosas como cerveza basada. Estoy agrupando árboles de decisión, análisis de
regresión, diseño
experimental. Míralo a todos y algunos de estos temas son realmente divertidos. Vamos a desarrollar un sistema de recomendación de películas real usando
datos de clasificación de películas del usuario real , Vamos a crear un motor de búsqueda que realmente funcione para los datos de Wikipedia. Vamos a construir un clasificador de spam que pueda clasificar correctamente los correos spam y no spam en su cuenta de correo electrónico. Y también tenemos una sección completa sobre escalar este trabajo hasta un clúster que se ejecuta en big data usando Apache Spark. Si eres desarrollador de software o programador que busca transitar hacia una carrera en la
ciencia de datos , este curso te enseñará las habilidades más calientes sin toda la notación matemática y pretensión que viene junto con estos temas. Solo vamos a explicar estos conceptos en inglés sencillo y mostrarte algún código python que realmente funciona en el que puedes sumergirte y meterte con ellos para hacer que esos conceptos se hundan en casa. Y si estás trabajando como analista de datos en la industria financiera, este curso también te puede enseñar a hacer la transición hacia la industria tecnológica. Todo lo que necesitas es algo de experiencia previa en programación o scripting, y deberías estar bien para ir. El formato general de este curso es que empezaré con cada concepto explicándolo en un montón de diapositivas y ejemplos gráficos, y lo haré en inglés llano tanto como sea posible. Te presentaré algo de la notación y terminología de fantasía que te
gustan a los científicos de datos para que puedas hablar el mismo idioma. Pero los conceptos en sí fueron generalmente bastante simples después de eso. Los tres en algún código python real que realmente funciona con el que podemos correr y meternos con. Y te mostraré cómo aplicar realmente estas ideas a los datos reales, y estas se van a presentar como archivos de cuaderno Python. Y ese es un formato donde puedo entremezclar código y notas que rodean el código que explican lo que está pasando en los conceptos Así que puedes llevar estos archivos de cuaderno contigo después de este curso y usarlo como referencia práctica y
rápida más adelante en tu carrera y al final de cada concepto, te
animaré a sumergirte realmente en ese código python,
hacer algunas modificaciones, hacer algunas modificaciones, meterte con él y simplemente ganar más familiaridad poniéndote manos en la mano y en realidad haciendo algunos modificaciones y ver los efectos que tienen. Entonces con eso, sumémonos y empecemos
2. Instrucciones de configuración de Windows: Entonces vamos a ponerlos a todos en marcha para este curso. Bastante fácil de hacer. Vamos a empezar instalando un entorno de desarrollo de Python llamado Anaconda. Si no lo tienes ya. Una vez que eso esté instalado, solo vamos a instalar un par de paquetes que necesitamos que no vienen con él. Pi dot plus y TensorFlow, que usaremos más adelante para hacer redes neuronales. Y luego descargaremos todos los materiales del curso de nuestra página web y lo instalaremos y aseguraremos que todo funcione. Entonces, empecemos por dirigirnos a anaconda.com. Este será el entorno Python que utilizamos para este curso. Ya está hecho para la ciencia de datos y el análisis de datos, por lo que nos ahorra muchos problemas y configurando las cosas. Simplemente dirígete
al gran botón Get Start amigable o como sea que necesites navegar al área de descargas. Vamos a descargar los instaladores de Anaconda. Y queremos, para mí la versión de Windows de 64 bits. Obviamente elige cualquier versión que tenga sentido para cualquier sistema operativo que estés usando. Pero para mí eso es Windows 64-bit. Entonces esperaremos a que se descargue eso. Deberían bajar bastante rápido. Y una vez que eso esté abajo, solo
vamos a abrir el instalador y ejecutarlo. De acuerdo, entonces nada especial aquí, solo tu Instalador estándar de Windows. Voy a pegarle Next para empezar. De acuerdo con los términos de la licencia. Instálala solo para mí. Y quieres asegurarte de que estás instalando esto en algún lugar. Tiene mucho espacio en disco duro para mí. El disco C está un poco apretado porque es un SSD pequeño. Entonces en realidad voy a cambiar esto a mi E Drive. Simplemente haz lo que tenga sentido para tu asistente se asegure de que tengas suficiente espacio para ello. Y vamos a pegarle a Next para continuar. Esas opciones por defecto están bien. Y ahora sólo esperamos a que se instale y esto tomará unos minutos. Hay muchas cosas que instalar, así que haré una pausa y volveré cuando esto termine. Muy bien, un par de minutos después eso sí terminó. Por lo que le pegaré a Next para continuar con el instalador. Y sólo diremos Siguiente otra vez. Y voy a desmarcar estas opciones. Realmente no necesito ver un tutorial. Y ahí lo tenemos. Entonces ahora que Anaconda ha sido instalada, solo
necesitamos instalar un par de paquetes extra en ella. Por lo que para entrar en nuestro nuevo entorno de Anaconda, ve a tu menú de inicio y busca ahí la carpeta de tres Anaconda. Y a partir de ahí seleccione Anaconda Prompt. Y deberías ver un pequeño terminal de mando así. Y desde aquí solo vamos a teclear en Conda instalar pi dot plus. Y esto sólo va a instalar un paquete. Visualicemos árboles de decisión más adelante en el curso. Tardará un momento averiguar cómo hacer eso. Y cuando consigues ese prompt para decir por qué Entrar y dejar que haga lo suyo. Muy bien, Muy bien. A continuación necesitamos instalar el paquete TensorFlow. Eso es lo que vamos a estar usando para el aprendizaje profundo más adelante en el curso y las redes neuronales y todas esas cosas divertidas. Normalmente dirías que Conda instala TensorFlow para hacer eso, pero hay un error con eso ahora mismo en Windows. Entonces en cambio, vamos a decir pip instalar TensorFlow. Y eso debería funcionar. De nuevo, sólo deja que haga lo suyo. Manojo de dependencias que tiene que ponerse primero pero no debería tardar demasiado. Muy bien, así que ahora tenemos instalado TensorFlow también. Entonces dejemos esta ventana. Bueno, vamos a volver a ello un poco más tarde. Pero volvamos a nuestro navegador web y descarguemos los materiales del curso a continuación. Para eso, te dirigirás al Media dot JSON, perro dash, softer.com slash machine dash learning dot HTML. Preste atención a los guiones y capitalización en todo asunto. Y una vez que estés aquí, encontrarás un bonito enlace amistoso para los materiales del curso. Simplemente sigue adelante y haz clic en eso. Y abajo en CMS. Si estás aquí, si quieres una copia de las diapositivas, también las
encontrarás aquí. Una vez que eso esté descargado, adelante y abra eso. Y vamos a ampliar ahí los materiales del curso. Haga clic derecho y Extraer todo. Y lo que hay aquí es un montón de lo que llamamos un Jupyter Notebook archivos. Y estas son formas de ejecutar código Python de forma interactiva dentro de un navegador web. Por lo que prácticamente todas las conferencias de este curso van a ir acompañadas con un Notebook IPython
práctico con el que
podrás jugar y experimentar. Y eso es lo que hay aquí. También aquí hay una gran cantidad de tipo experimental de datos de prueba que puedes usar para
entrenar realmente estos modelos y jugar alrededor y realmente hacer predicciones basadas en datos reales. Y eso es lo que la mayoría de lo que se está descomprimiendo en este momento es darle algo de tiempo para terminar de descomprimir. Está bien, se hace desabrochar. Entonces sigamos adelante y busquemos la carpeta en la que se expandió. Debería haber una carpeta de cursos ML ahora ahí, y abramos eso. Y dentro de la carpeta del curso ML hay otra carpeta del curso MLK. Este es el que realmente queremos. Entonces sigamos adelante y seleccionemos esa carpeta de cursos ML dentro de la otra. Y voy a golpear Control X para cortar eso. Y ahora queremos poner eso en algún lugar que va a ser fácil de recordar y fácil de escribir. Entonces voy a poner esto en la raíz de mi unidad C. Voy a golpear Control V para pegarlo en mi unidad C aquí. De lo que esa copia encima. Y la razón por la que lo estoy poniendo aquí es porque vamos a tener que teclear el camino en el que está. Eso va a ser C colon contrajo curso ML en este caso. Muy bien, así que ahora tenemos una carpeta de cursos de CML, y dentro de eso está los materiales reales del curso en sí mismos. Podrás ver todos los datos ahí así como todos los Cuadernos IPython. Eso es lo que significa i, p, y y p. Se llama Cuaderno de Jupyter en estos días. Entonces sigamos adelante y probemos uno y veamos si realmente funciona. Sí, así que vuelve a nuestro Anaconda Prompt aquí. Y ya terminamos con todas estas cosas de fondo. Entonces lo que tienes que hacer, recuerda practicar a estos chicos. Esto va a ser algo que tienes que hacer con casi todas las conferencias. Para abrir realmente el archivo del cuaderno para una conferencia dada, primero, es necesario abrir un Prompt de Anaconda. Y de nuevo, eso está bajo el menú de inicio, bajo el menú de Anaconda. Y luego necesito que cd a dondequiera que instale esos materiales. Entonces voy a decir cd C colon barra contracorriente curso ML, porque ahí es donde instalé los materiales del curso. Es importante que empieces esto desde dentro del directorio correcto o de lo contrario estos cuadernos no aparecerán. Pero una vez que estemos en el directorio al que realmente instalamos estos materiales, entonces
puedo escribir en cuaderno de Júpiter. Y eso arrancará el navegador web que me permitirá ejecutar realmente esos cuadernos. Así que de nuevo, recuerda, por cada vez que necesites abrir un cuaderno de Júpiter, abrir un cd de prompt de Anaconda al directorio en el que instalas los materiales del curso, y luego escribir en cuaderno de Júpiter. Es posible que quieras apuntar esto chicos. Vas a tener que volver a hacer esto mucho en el futuro. Y lo que esto hace es realmente traer tu navegador web. Y esto nos lleva a la página principal de Júpiter aquí en realidad podemos seleccionar los diferentes cuadernos a ejecutar. Entonces, veamos si realmente funciona. Desplazémonos un poco hacia abajo. Los atípicos son divertidos. Así que vamos a hacer clic en los atípicos dot p-y, a y B.
Y una rápida introducción a los cuadernos Júpiter aquí, se
puede ver que básicamente es una forma de ejecutar el código Python en línea. En realidad podemos ver los resultados dentro de tu navegador y ejecutarlo. Y no es sólo una página web prefabricada. En realidad puedes ejecutar código aquí. Entonces, mira esto. En realidad puedo hacer clic en uno de estos bloques aquí y presionar el botón Ejecutar y en realidad ejecuta este código y genera una nueva gráfica en respuesta a eso. Por lo que esta es una gran manera de especie de experimentar de
forma interactiva con algún código de Python y jugar con nuevos algoritmos. Y eso es exactamente lo que vamos a hacer en este curso. Entonces pasemos muy rápidamente por este ejemplo aquí solo para que puedas ver qué es lo que está pasando a un nivel alto, hablaremos más a fondo más adelante. Pero básicamente lo que está pasando aquí es que estamos simulando una distribución del ingreso. Entonces hemos simulado a un montón de gente aleatoria que tiene ingresos que van desde, ya
sabes, veintisiete mil dólares más o menos 15 mil dólares al año. Y luego para estropear las cosas, lanzamos a Jeff Bezos quien tiene mil millones de dólares a su nombre, probablemente más que eso a estas alturas, ¿verdad? Y se puede ver que eso sesga nuestra distribución aquí. Entonces nos gustaría que acabara de tener esto como un pequeño punto flaco aquí que representa a toda la gente normal. Y luego tenemos a Jeff Bezos aquí fuera para un poco estropear nuestros datos. Entonces de lo que estamos hablando en este ejercicio en particular es cómo identificar atípicos como Jeff Bezos y eliminarlos de nuestros datos para que realmente podamos conseguir una distribución más significativa. Y eso es lo que está pasando aquí. Y en realidad se puede, es un atajo para ejecutar todo esto de una vez. Se puede ver ir al menú Kernel aquí y decir reiniciar y ejecutar todo. Y eso realmente volverá a ejecutar automáticamente todas estas celdas. Y se puede ver que en realidad funciona. Entonces esperemos que si haces eso, estás viendo algunas gráficas bonitas. Y si es así, eso significa que tienes todo configurado correctamente. Enhorabuena. De nuevo, recuerda cómo llegar aquí, chicos lo anotan. Vas a abrir un cd prompt de Anaconda al directorio en
el que instalas los materiales del curso, y luego escribe en cuaderno de Júpiter y selecciona el NOPLAT que quieres abrir. De acuerdo, con eso bajo nuestro cinturón, sigamos adelante y en realidad empecemos a aprender algunas cosas.
3. Instrucciones de configuración de Mac: Muy bien, tan rápido, déjame guiarte a través de que te arreglen aquí. Te mostraré cómo hacer todo esto de primera mano aquí. Pero para el resumen, vamos a instalar Anaconda, que es un entorno Python y necesidad computación
científica y ciencia de datos y aprendizaje automático. Una vez que tengamos esa configuración, instalaremos un paquete llamado pi dot plus, que usaremos más adelante en el curso para visualizar árboles de decisión. Y también instalará TensorFlow, que vamos a utilizar para construir redes neuronales y IA
real y deep learning más adelante en el curso. También descargaremos aquí los materiales del curso de mi página web y abriremos uno de los cuadernos de esos materiales y veremos si funciona. Entonces, vamos a sumergirnos. Entonces lo primero que necesitamos es un entorno de desarrollo de Python. Y en este curso estamos usando Anaconda para ese propósito. Viene con la mayoría de los paquetes que necesitamos para este curso preinstalado. Entonces te va a ahorrar muchos problemas. Por lo que incluso si tienes un entorno de desarrollo de Python existente, te
recomiendo instalar Anaconda de lado también. Para conseguirlo solo dirígete a anaconda.com. Y quieres ir al menú de productos e ir a la adición individual. Básicamente busca la versión de código abierto de Anaconda dondequiera que pudieran estar escondiéndola en la página web en estos días. Y a partir de ahí vamos a dar click en el gran botón Descargar amigable y seleccionar el instalador gráfico de Mac OS y esperar a que eso se descargue. Está bien, eso está terminado. Adelante y abramos ese instalador. Ahí es poco, solo haz doble clic en él para lanzarlo. Y vamos a pegarle Continuar. Continuar. Leer el acuerdo de licencia. Continuar. Y de acuerdo. Está bien. Sólo vamos a pasar por los impagos aquí. Instalaremos solo para mí. Y no te comiste un poco de espacio en disco para este tipo es de dos puntos 13 gigabytes para empezar, y vamos a instalar más cosas encima también. Así que asegúrate de tener mucho espacio para esta instalación. Y esto tomará un tiempo. Hay una ley para que se instale, así que volveremos cuando esté hecho. Muy bien, justo por aquí. Golpearemos Continuar aquí para terminar las cosas y cerrar. Y sí, terminamos con el instalador, podemos descartar eso. Entonces ahora abramos una nueva terminal. Y si ya tenías uno abierto, vas a necesitar un conjunto cerrado y reabrirlo para poder recoger las nuevas variables
de entorno que Anaconda instaló. Entonces una vez que estés seguro de que tienes una terminal fresca abierta aquí, solo
podemos teclear en Conda instalar pi dot plus, así como eso. Y eso instalará el paquete pi dot plus que vamos a necesitar más adelante en el curso con el fin de visualizar árboles de decisión. Entonces solo déjalo que se apague y haz lo suyo aquí por un rato. ¿ Por qué continuar? Muy bien, lo otro que necesitamos es TensorFlow, y eso es igual de fácil de instalar, Conda, instalar TensorFlow, así como eso. Y este es un paquete que necesitamos para hacer redes neuronales profundas, que va a ser muy divertido más adelante en el curso. Este será un entorno más grande. Por qué proceder. Y fuera eso va. Enfriar. Por lo que tenemos Anaconda completamente configurada para todo el curso en este punto, eso fue bastante fácil. Lo siguiente que tenemos que hacer es conseguir los materiales del curso. Así que volvamos a nuestro navegador y vayamos a medios Dotson dogs, dash, soft.com slash machine dash learning dot HTML. Preste atención a la ortografía de mayúsculas, donde están los guiones, todo importa. Deberías ver una página que se vea así. Y verás aquí un gran enlace amistoso para los materiales del curso. Adelante y haz click en eso para descargarlo. Y también aquí verás un enlace a las diapositivas del curso si quieres una copia de eso. De acuerdo, así que ahora que los materiales del curso se han descargado, sigamos adelante y abramos que uno hecho debería estar haciendo un escaneo rápido de virus ahora mismo. Está bien, parece que nuestros materiales del curso están ahí y ya lo descomprimió para nosotros también. Eso es genial. Entonces volvamos a nuestra terminal aquí y veamos si realmente podemos usar estos materiales. Ahora necesitamos saber dónde están. Por lo que para poder lanzar realmente estos archivos de cuaderno que están dentro de los materiales del curso, necesitamos poder navegar a ellos primero. Por lo que estamos en nuestro directorio de inicio ahora mismo. Vamos a cd en descargas. Y ahí debería ser donde vive el directorio de cursos ML. Ahí está. Está bien, así que si quieres mover eso a otro lugar, puedes. Simplemente importa que sepas llegar a este lugar, de acuerdo. Porque lo que hay aquí es un montón de lo que llamamos archivos de Júpiter Notebook. Estas son formas interactivas de correr y experimentar realmente con código
Python que nos permitirán jugar con todos los algoritmos de este curso. Ahora para lanzar estos, necesitamos primero navegar a este directorio. Por lo que necesito usar el comando cd para navegar hacia dónde está esto. Por lo que de nuevo, estoy bajo los usuarios Frank descarga curso
ML para ti que estará en tu propio directorio de usuarios muy probablemente. Y solo necesitas poder cd en eso. Entonces el primer paso para lanzar realmente estas cosas como un cd en el directorio en el que las descargué. Yo solo hago esto por el bien de la ilustración aquí. Y para ti puedes ver a los dos dondequiera que guardes eso también. Una vez que estés ahí dentro, vas a escribir el siguiente cuaderno de Júpiter. Al igual que eso, Júpiter se deletrea divertido y asegúrate de hacerlo bien. Y lo que eso hará es lanzar el cuaderno Jupyter dentro de esta carpeta. De esa forma aparecerán
todos los archivos de script correctos y todos los datos que necesiten también estarán en el lugar correcto. Y puedes ver aquí un listado de todos los archivos del cuaderno que vienen con el curso. Entonces, veamos si realmente funciona. Vayamos a puntos atípicos, PY y B. Esa es una simple. Entonces cada vez que estoy en una conferencia en este curso y digo abrir atípicos, punto IP, y y b o lo que sea. Esto es lo que quieren hacer chicos. Esto es importante. Anote esto. De acuerdo, no voy a repasar esto muchas veces de nuevo en el futuro. Necesitas volver a abrir un terminal cd a donde instalas el tipo de materiales en cuaderno Júpiter, Júpiter deletreó divertido. Y a partir de ahí, selecciona el guión que quieras abrir. Entonces abramos los atípicos y veamos si funciona. Hace cool. Por lo que deberías estar viendo una pantalla como esta. Y lo que es genial es que en realidad puedes ejecutar este código en línea aquí y en realidad modificarlo y jugar con él un lío alrededor con él. No es sólo una página web estática. Entonces, por ejemplo, puedo hacer clic en este bloque de código Python aquí y presionar este botón Ejecutar. Y va a seguir adelante y realmente ejecutar ese código y generar esta gráfica automáticamente en base a esa ejecución. Entonces, ¿qué tan genial es eso? Tienes curiosidad ¿qué está pasando aquí? Básicamente estamos creando una distribución de los ingresos de las personas. Y luego estamos lanzando en Jeff Bezos tiene un multimillonario al final para mostrar el efecto de un atípico en una distribución de datos. Y a lo largo del resto de este ejercicio, pasamos y encontramos formas de identificar valores atípicos como Jeff Bezos, rechazándolos del conjunto de datos, lo que nos permite obtener una interpretación más significativa de los datos para todos los demás. Pero hablaremos más de eso en el futuro. Es cosas divertidas. Por ahora, sin embargo, deberías estar viendo aquí un cuaderno de Júpiter que funciona. Si lo haces, entonces las grandes cosas están configuradas correctamente. De no ser así, volver a comprobar las cosas podrían ser un conflicto con otro entorno de Python que podría haber instalado. Entonces eso podría ser algo que tengas que rastrear, pero ojalá las cosas estén funcionando y podamos seguir adelante.
4. Instrucciones de configuración de Linux: Muy bien, tan rápido, déjame guiarte a través de que te arreglen aquí. Te mostraré cómo hacer todo esto de primera mano aquí. Pero para el resumen, vamos a instalar Anaconda, que es un entorno Python y necesidad computación
científica y ciencia de datos y aprendizaje automático. Una vez que tengamos esa configuración, instalaremos un paquete llamado pi dot plus, que usaremos más adelante en el curso para visualizar árboles de decisión. Y también instalará TensorFlow, que vamos a utilizar para construir redes neuronales y IA
real y deep learning más adelante en el curso. También descargaremos aquí los materiales del curso de mi página web y
abriremos uno de los cuadernos de esos materiales y veremos si funciona. Entonces, vamos a sumergirnos. De acuerdo, vamos a configurar las cosas en Linux, alguien de buena gana para hospedar aquí. Y lo primero que tenemos que hacer es instalar Anaconda. Anaconda es un entorno Python hecho para la computación científica. Contiene bibliotecas necesarias para la ciencia de datos y el aprendizaje automático. Por lo que te ahorrará muchos problemas e instalando paquetes al usar esto en lugar de solo una instalación genérica de Python. Y el dosel pensado también puede funcionar si tienes eso. Pero Anaconda es lo que estoy usando en este curso por ahora. Así que dirígete a anaconda.com si no lo tienes y encuentra el botón de descarga y pulsa Descargar de nuevo. Y seleccione su sistema operativo. Estamos en Linux. Y quieres el Python tres versión 3, sea lo que sea, el código en este curso es para Python 3 y Python 2, estoy en un sistema X86, así que seguiré adelante e instalaré el instalador X86. Se puede ver que es grande. Eso lo descargaremos mi directorio de inicio en la carpeta de descarga automáticamente. Y sólo esperaremos a que baje eso. Una vez que eso haya terminado de descargar, podemos minimizar nuestro navegador y abrir una terminal. Vamos a cd en nuestra carpeta Descargas. Y necesitamos que ese script shell sea ejecutable. De esta manera cambia mod H más x Anaconda tres, lo que sea. Y ahora debería poder ejecutar ese script de instalador. Presiona enter para mirar el espacio de acuerdo de licencia mientras lo lees. Y asumiendo que aceptas los términos tipo en sí. Esa ubicación del directorio domiciliario está bien por mí, vamos a golpear Enter. Y fuera va. Hay mucho para que se instale, así que volveremos cuando esté hecho. Está bien. Está casi desinstalando. Se quiere saber si quieres inicializar Anaconda, no estoy seguro por qué dirías que no. Entonces tecleemos sí. Y estamos listos para irnos. Por lo que anaconda se instala en este punto, Eso es impresionante. Ahora algunas variables de entorno se cambiaron aquí. Entonces para asegurarnos de que los recojamos, voy a cerrar esta terminal y traer una nueva. Ahora hay un par de paquetes que necesitamos
instalar que no venían con la instalación predeterminada. Uno es pi dot plus. Usaremos eso para visualizar árboles de decisión más adelante en el curso. Para instalar eso, solo teclea Conda, instala pi dot plus así. Y vas a ver muchas advertencias en general cuando
ejecutas código y operas con el entorno de Anaconda, por lo general solo están hablando de cosas que están siendo obsoletas en el futuro y es seguro ignorarlas. Entonces, no se asusten por los mensajes de advertencia, chicos. Van a ser muchos de ellos y casi siempre son seguros de ignorar. Si es un error, esa es una historia diferente, pero no sudes las advertencias. Muy bien, le pegaremos a Y para proceder. Y eso fue rápido. Ahora también necesitamos instalar TensorFlow. Tensorflow es un paquete utilizado para construir redes neuronales de aprendizaje profundo, y estaremos jugando con eso más adelante en el curso también. Para instalar eso solo dices Conda, instala TensorFlow. Y si estás en un sistema que tiene una GPU NVIDIA, puedes acelerar las cosas instalando realmente TensorFlow GPU en su lugar. Pero si no estás seguro, solo quédate con TensorFlow. Como me estoy encontrando con un pequeño entorno virtual aquí, no
tengo mucha confianza en que TensorFlow GPU realmente funcionará. Entonces me voy a quedar con solo TensorFlow llano. Y eso se apagará y hará lo suyo también. Y otra vez, ¿por qué proceder? De acuerdo, Y en este punto, Anaconda se instala con todo lo que necesitamos para este curso. Adelante y despejemos la pantalla. Y volvamos a nuestro navegador y obtendremos los materiales del curso a continuación. Ahora para conseguir esos, vas a dirigirte a HTTP y medios Dotson perros, dash soft.com slash Machine Learning dot HTML. Preste atención a la capitalización y guiones en todos los asuntos. Y deberías ver una página que se ve así. Muy bien, entonces verás aquí un gran enlace amistoso para los materiales del curso. Esto contiene todos los
archivos de cuaderno Python que vamos a utilizar a lo largo del curso. Adelante y haz clic en eso para descargarlo. Y vamos a seguir adelante y guardar eso. Y si quieres las diapositivas es una copia de la misma aquí también. Muy bien, ahora ese material del curso está en su lugar. Vamos a seguir adelante y cerrar el navegador aquí. Y de vuelta a nuestra terminal. Volvamos a nuestra carpeta de descargas. Y descomprimimos ese archivo zip de puntos del curso ML. Está bien, así que sólo necesitamos recordar dónde está esto. Entonces Vamos a entrar en curso ML. Y así está bajo Descargas curso AMOLED. Eso se puede mover a otro lugar si se quiere. Lo importante es que solo recuerdes dónde está y cómo llegar. Está bien, así que déjame mostrarte cómo ejecutar estas cosas en realidad. Entonces esta es una colección de archivos de Júpiter Notebook es como se les llama. Son formas de ejecutar de forma interactiva el código Python dentro de un navegador web. Y esto también incluye todos los datos de muestra que necesitamos para que el curso realmente capacite
a nuestros modelos y realmente haga machine learning. Pero para, para ejecutarlos realmente, necesitamos empezar realmente lo que se llama cuaderno de Júpiter desde dentro de este directorio. Entonces recuerda, siempre que realmente iniciamos un cuaderno dentro de este curso, lo que debes hacer primero es abrir una ventana terminal cd en el directorio donde instalas estos materiales del curso, vale, para nosotros, ese va a ser nuestro hogar directorio bajo descargas y luego curso ML. Y una vez que estés en ese directorio, escribe Júpiter con un cuaderno y, así como así. Es importante que empieces esto desde el directorio correcto. Una vez que hagamos eso, deberíamos tener un pop-up de navegador. Y ahí está. Entonces eso es genial. Ahora podemos ver la lista de archivos Notebook que tenemos para este curso aquí solo necesitamos seleccionar el que queremos. Entonces, cada vez que digo abrir un archivo de cuaderno específico en el curso, solo mira hacia adelante aquí. Abramos los valores atípicos. Dot I-SPIY, NB. Esa es una interesante. Enfriar. Entonces puedes ver que tenemos todo este código Python en línea que en realidad podemos ejecutar forma interactiva y en realidad ver la salida a medida que lo ejecutamos dentro de nuestro pequeño navegador web. Es un poco guay. Y esto no es sólo una página web prehecha, chicos. Este es en realidad un entorno en el que realmente se puede ejecutar y modificar el código. Entonces por ejemplo, puedo dar click en esta cuadrita aquí. Lo que realmente está haciendo es crear una distribución aleatoria de los ingresos de las personas. Y luego lanzar en Jeff Bezos tiene un valor atípico con mil millones de dólares, pero solo puede hacer clic en eso y presionar este botón Ejecutar. Y eso realmente ejecutará ese código y producirá esta gráfica en respuesta. Bastante cool. Y el resto de esto, hablaremos a través de esto más adelante cuando realmente lleguemos a esta lección. Pero básicamente hablamos de cómo eliminar Jeff Bezos tiene un valor atípico y obtener visualizaciones más significativas de los datos para personas normales aquí. Actividad tan importante ahí. Pero de todos modos, sí, parece estar funcionando. Entonces si tienes tan lejos, todo está configurado correctamente. Enhorabuena, y podemos seguir adelante de nuevo. Recuerda cómo hacer para abrir estos archivos del cuaderno. Se desea abrir un cd terminal al directorio en el que se instalan los materiales del curso, y luego escribir en cuaderno de Júpiter. Y recuerda, Júpiter se deletrea divertido, Jay UP por qué TER, y eso debería llevarte a donde necesitas estar. Muy bien, chicos, sigamos adelante.
5. Conceptos de Python parte 1: por lo que si ya conoces a Python, probablemente
puedas saltarte las siguientes dos conferencias. Pero si necesitas un refresco, o si no has hecho pitón antes, quieres pasar por estos. Hay algunas cosas peculiares sobre el lenguaje de scripting python que debes saber . Entonces, sumémonos y saltemos a la piscina y aprendamos algo de pitón escribiendo algún
código real . Muy bien, hora de un curso rápido en Python. Ahora, como dije antes en el año requisitos para este curso, deberías tener algún tipo de fondo de programación para tener éxito. En este curso, has revestido en algún tipo de lenguaje, aunque sea un lenguaje de scripting. JavaScript. No me importa lo que sea. C plus trabajo algo. Pero si eres nuevo en Python, te
voy a dar un poco de curso rápido aquí. Sólo voy a sumergirme justo y meterme en algunos ejemplos aquí. Hay algunas peculiares sobre python que airen un poco diferentes a otros lenguajes que
podrías haber visto, Así que solo quiero caminar por lo que es diferente de python de otros lenguajes de scripting con los que
puede haber trabajado y los mejores manera de hacerlo es mirando algunos ejemplos reales. Entonces vamos a sumergirnos en algún código. Entonces una última vez, Un poco recto cómo abrir realmente un cuaderno aquí en su sistema aquí. Y estoy en ventanas aquí. Consulte la conferencia anterior si necesita instrucciones sobre un sistema operativo diferente, pero en general, va a querer abrir un símbolo del sistema de algún tipo. Y en Windows, vas a necesitar usar el símbolo del sistema anaconda. Entonces encuentra tu anaconda tres. Muchos con menú de inicio y Goto Anaconda nos piden para que venga y otra vez, necesitas CD en el directorio donde guardaste todos los materiales de tu curso. Entonces para mí, eso fue C colon slash ml supuesto, podrías hacer un de ir solo para asegurarte de que todo está ahí. Y una vez que estés en el directorio correcto, escribe Júpiter con por qué notebook y deberías ver una pantalla como esta. Y desde aquí queremos seleccionar el cuaderno Python 101 porque eso va a contener nuestro pequeño tutorial en python aquí. Así que adelante y haz click en Python 101 dot i p y N b y ahora deberías tener una pantalla que se vea así,
así que vamos a sumergirnos. Si nunca has visto un cuaderno de Júpiter antes, la forma en que funciona es que puedes hacer clic en cualquiera de estas cajas de código y presionar el botón de correr o turno. Entra y ejecutará ese código directamente desde tu navegador Web. Probémoslo con este primer bloque. Haga clic dentro de él para seleccionarlo y golpear turno Entrar. Ahora solo vamos a cubrir la sintaxis de python aquí en las principales formas en que
difiere de otros lenguajes. Entonces echemos un vistazo más de cerca a este código. Una cosa con Python es que el espacio en blanco es realmente importante. Cualquier anidación de código, como para la adoración o expresiones condicionales, se basa en el número de pestañas para agrupar código juntos en lugar de corchetes rizados como otros idiomas. Entonces aquí tenemos una lista de números. En python, una lista es como una matriz o un vector y otros lenguajes. Definimos una lista de los números uno a seis poniéndolos entre corchetes separados por comas. En python, no
había ningún personaje requerido para terminar una línea que acabas de golpear. Entra cuando termines, vamos a tener siete a la lista sólo para demostrar que ejecutar esto realmente hace algo. Sí, tenemos resultados de uno a siete ahora. A continuación, tenemos un ejemplo de un bucle de cuatro en python. Esta afirmación es una tasa a través de la lista nombrada lista de números, almacenando la iteración actual en el número variable cada vez, Ah, cuatro Statement sí tiene que terminar con un colon como este, pero ahora usamos en denso a indicar qué código vive dentro de esta cuadra cuatro. Y aquí tenemos un ejemplo de una cláusula if else. Si el número es uniformemente divisible por dos, imprimimos eso. Es incluso de otra manera. Imprimimos que es impar y de nuevo usamos en denso para indicar qué código vive dentro de cada cláusula if o else aquí eliminará todo en denso para salir del bucle de cuatro e imprimir todo hecho al
final. Observe que nunca tuvimos que declarar ninguna variable antes de tiempo. Tampoco tenemos que definir sus tipos. Python es lo que se llama un lenguaje de tipo dinámicamente. Trata de inferir el tipo de datos de tus variables en función de cómo utilizaste inicialmente um, pero internamente, sí
tienen tipos. También puedes lanzar explícitamente variables a diferentes tipos si es necesario. Pero las variables no se refundirán automáticamente como lo harían en idiomas de tipo semanal. En ocasiones esto puede llevar a errores inesperados, y veremos algo de eso a medida que pasemos por el curso. Pasemos al siguiente bloque, que solo muestra cómo importar módulos externos a tus scripts de python. Acabas de utilizar el comando de importación para esto, y puedes definir un alias para el módulo si quieres ahorrarte algo de escritura, también. Entonces aquí estamos importando el módulo num pastel para que podamos referirnos a él dentro de nuestro script, y lo estamos importando bajo el nombre NP. Esto nos permite entonces usar tartas entumecidos función aleatoria simplemente escribiendo np dot random y en este caso, estaban pidiendo pastel numb para darnos 10 valores aleatorios normalmente distribuidos con la media dada y desviación estándar
6. Conceptos de Python parte 2: continuación, acontinuación,discutamos las listas con más profundidad, ya que las usamos mucho. Si necesitas saber cuántos elementos aire en una lista, puedes usar la función incorporada Len para conseguirlo. Al igual que tantas veces, también
necesitas rebanar listas de ciertas maneras para extraer valores en un rango dado dentro de la lista. El colon se usa para esto. En este primer ejemplo, usamos Colón tres para pedir los primeros 3 elementos de la lista,
y de igual manera, podemos usar tres puntera del colon. Pide todo después del tercer elemento. Al igual que So, también
podemos hacer algo así como negativo al dedo del pie del colon. Pregunta por los dos últimos elementos de la lista. Y si quieres anexar una lista a otra lista, para
eso es la función extender. Al igual que este chaval, la lista que contiene siete y ocho a nuestra lista original. Y si quieres subir un solo valor a una lista, puedes usar la función upend así. Otra cosa genial de Python es que las listas pueden contener casi cualquier tipo que quieras. Incluso podrías hacer una lista de listas, así que hagámoslo ahora mismo. haremos una nueva lista llamada Why and Make una nueva lista de listas que contiene nuestra lista
X recién crecido y esta nueva lista Y para recuperar un elemento de una lista. Basta con utilizar el operador de soporte así aquí. Estamos recuperando Elemento uno de los más salvajes. Esto es basado en cero. Entonces por qué uno realmente te devuelve el segundo elemento, no el primero 1 Por qué cero te daría el primer elemento, que es el número 10 en este ejemplo. También tengamos una función de ordenación integrada que puedes usar para ordenar la lista en su lugar así. Y si quieres ordenar en orden inverso, solo
pasas. Invertir es verdadero en la función de ordenación. Este es también un buen momento para mencionar que hay un par de formas de pasar parámetros a funciones. Podrías simplemente pasar en una lista de valores como lo harías en la mayoría de los idiomas, pero también puedes pasarlos por nombre. A menudo, las funciones de
python tendrán muchos parámetros que tienen valores predeterminados asignados a ellos, y solo especificas los que te interesan especificándolos por nombre. De acuerdo, sigamos adelante y hablemos de dos encuestas. A continuación dos encuestas se parecen mucho a las listas, pero la principal diferencia es que son inmutables. Una vez que creas un to pull, no
puedes cambiarlos. Son útiles para las personas que realizan programación funcional o para interactuar con sistemas como Apache Spark que aire desarrollado en lenguajes de programación funcionales lo harán más adelante en el curso. La única diferencia real es que encierran dos piscinas con paréntesis en lugar de entre
corchetes . Entonces aquí hay un to pull de los valores 12 y tres. Podemos usar a Len en él, igual que estábamos con lista. Se pueden hacer referencia a elementos en A para tirar de la misma manera que lo harías en una lista es, bueno de nuevo se basa en cero. Entonces por qué dos nos devuelve el tercer elemento de la lista, no el 2do 1 También puedes hacer una lista de dos toros si así lo deseas. Otro uso común de dos polos es de pasar alrededor de grupos de variables que se desea mantener juntos. Por ejemplo, la función dividida en una cadena te devolverá un montón de valles de cuerdas extraídos de esa cadena, y podemos asignar esos valores a elementos en a pull como una forma rápida de nombrar a cada uno Mira este ejemplo. Tenemos dos números separados por una coma, y sabemos que el primer Valle representa una edad y el segundo y valor de ingreso. Podemos extraerlos derecho en variables denominadas Edad e ingresos. Al igual que moverse por otra estructura de datos útil y python es el diccionario. En otros idiomas, es posible que conozcas esto como un mapa o una tabla hash. Se trata básicamente de una tabla de búsqueda donde se almacenan los valores asociados con algún conjunto único de valores
clave. Tiene más sentido. Con un ejemplo, declaras un diccionario usando corchetes rizados, así que hagamos un diccionario Asignando nombres de naves estelares a los nombres de sus capitanes llamarán este diccionario capitanes ahora para crear una entrada en la plaza Diccionario de Uso paréntesis para especificar un valor clave que estaban interesados en asignar. Entonces para asignar el valor Kirk a la empresa clave, Sólo
podemos decir capitanes empresa es igual a Kirk. Hacemos lo mismo por las otras naves estelares que conocemos. Después recuperar un elemento de diccionario se hace de la misma manera. Basta con utilizar corchetes para recuperar el valor deseado. Entonces para conseguir al capitán del USS Voyager, podemos hacerlo así. Pero, ¿qué pasa si intentas recuperar un valor para una clave que no existe? Obtienes una excepción. En ese caso, una forma de evitar eso es usar la función get en el diccionario. Para que
veas, puedes recuperar con éxito al capitán de la empresa tal como existe en el diccionario . Pero si tratamos de conseguir un barco que no está en su diccionario, devuelve el valor especial ninguno por el que te disputas y tratas como quieras. Y si sabes que el capitán de la N XO uno es Jonathan Archer, Eres mi nuevo mejor amigo. Puedes iterar a través de todas las claves de un diccionario, igual que entrarías a través de una lista como esta para enviar. Capitanes te devolverán cada llave y el diccionario del capitán y el nombre que envió para
ti para que luego podamos imprimirla. Al igual que
7. Conceptos de Python parte 3: OK, pasando a funciones ahora. Afortunadamente, funcionaron más o menos como esperabas en python. Esto intacto se ve así. Se define una función con la palabra clave sorda, seguida del nombre de la función, seguido de cualquier parámetro que se desee pasar con sus nombres. Asegúrese de terminar la definición de función con dos puntos. Después de eso, su código dentro de la función necesita sangría. Pitones todo sobre el espacio en blanco. ¿ Recuerdas? Entonces aquí tenemos una función súper simple llamada Square It que sólo toma en un valor, lo
llama X y devuelve su llamada cuadrada. La función funciona exactamente como cabría esperar. Basta con teclearlo en cuadrado y luego dos entre paréntesis para conseguir el valle cuadrado de a, por ejemplo, vamos a ejecutarlo. Hay algunas cosas funky que puedes hacer con funciones y python, por ejemplo. En realidad se puede pasar en otra función a una función como parámetro. Esto es algo que permite a python jugar bien con lenguajes de programación funcionales, que encuentras mucha computación distribuida. Podemos crear una función como esta llamada do Algo que toma en alguna función f algún parámetro X y devuelve el resultado de f de X. Así que en realidad podemos decir Do algo, square it coma tres como una forma realmente complicada de volver a cuadrado de tres. Pero funciona que, por cierto, ¿notaste que este bloque de código aún sabe que el cuadrado que funciona existe a
pesar de que lo definimos en un bloque anterior? Cuadernos de Júpiter corren dentro de una sola sesión de coronel. Por lo que cualquier cosa que definas o modifiques antes de la cuadra que estás ejecutando aún estará en memoria dentro de ese coronel. En ocasiones esto puede llevar a comportamientos confusos, especialmente si estás ejecutando bloques dentro de un cuaderno, fuera de servicio o repetidamente. Si empiezan a suceder cosas raras, siempre
puedes empezar desde una pizarra limpia seleccionando Coronel reiniciar desde el menú. También vamos a dar algo de atención del dedo del pie las funciones Lambda thes permiten pasar por
funciones simples en línea sin siquiera darles un nombre. Esto se ve con bastante frecuencia en el mundo de la ciencia de datos. Es más fácil de entender con un ejemplo. Aquí estamos llamando a nuestra función do Something con una función lambda que computa el cubo de un valor en lugar de su cuadrado. un vistazo de cerca a la sintaxis aquí decimos Lambda, seguido del parámetro de función que un colon, después de lo cual podemos hacer lo que queramos a ese parámetro. Cualquiera que sea el valor que se calculó después de los dos puntos es implícitamente el valor de retorno de la tierra de la función. Entonces esto dice, para crear una función lambda que tome algo llamado X y devuelva X veces X veces X Pasamos ese cordero para funcionar para hacer algo con un valor de tres, que luego ejecuta son función lambda para el valor tres. Y si ejecutamos esto, se
puede ver que lo hacemos de hecho, volver 27 que es de tres cubos.
8. Conceptos de Python parte 4: ok, La otra cosa es bastante sencilla. Así es como se ve la sintaxis para las expresiones booleanas. Puedes usar un signo doble igual para probar la igualdad, y también puedes solo usar la palabra es que también hay un signo triple igual que puedes usar para comparar objetos reales juntos en lugar de sus valores. Pero eso parece menos comúnmente cierto y falso son un poco raros y que se capitalizan en python. Pero sólo la primera letra, así y para operadores como y o y no solo usaste las palabras y o y no en lugar de símbolos especiales, podrías hacer algo así como una sentencia de caso o cambio usando expresiones booleanas con un Si l Si otra estructura como esta en este ejemplo, imprimimos ¿Cómo sucedió eso si uno es tres, que siempre es falso. De lo contrario pasamos a probar si uno es mayor que tres, lo cual también debería satisfacerse con incredulidad si fuera cierto. Cuando esa prueba falla, volvemos a nuestra última cláusula else, que imprime todo está bien con el mundo otra vez, usamos en denso para asociar código con cláusulas específicas aquí que tocamos el bucle antes . Vayamos a más profundidad aquí. Se puede utilizar la función de rango toe automáticamente construir una lista de valores dentro de un
rango dado como así otra vez, empezamos a contar desde cero aquí, por lo que el rango 10 nos devuelve los valores de cero a nueve. El palabra clave continue dentro de un bucle significa omitir el resto de la adoración e ir directamente a la siguiente. Y la palabra clave freno significa detener la adoración temprano en este ejemplo, usamos seguir saltando sobre la impresión de cada valor si el valor es uno, y usamos freno para parar después de alcanzar el valor. Cinco. Estudia la salida del 02345 y verás que eso es exactamente lo que hizo. Una sintaxis alternativa es el bucle salvaje, que genera hasta algún expresionista booleano falso. Aquí configuramos una variable de contador llamada X y bucle a través de la impresión X sólo mientras que X es
menor a 10. Una vez que golpea 10 el bucle termina como puedes ver en su salida. Así que prueba una actividad realmente sencilla que articula algunas de las cosas de las que acabamos de
hablar. Tu reto es escribir aquí un bloque de código que crea una lista de imagers bucles a través de cada elemento de lista, y Onley imprime números pares en la lista. Esto sólo debería ser cuestión de reorganizar parte del otro código de este cuaderno. Por lo que aunque no estés cómodo con Python, te animo a que lo intentes. Te sentirás mucho mejor con Python si has escrito algo tú mismo con él,
no importa lo pequeño que sea. De acuerdo, así que ojalá no tuvieras muchos problemas con eso. Aquí está mi solución. Y ten en cuenta esto más de una forma de hacerlo. Vamos a teclear. Ah, mi lista es igual entre corchetes. 012583 y puedes usar cualquier número que quieras. Entonces podemos decir cuatro números en mi lista. Curso de Colón. Podría elegir diferentes nombres de variables si el número mod dos es cero número de impresión de dos puntos. Y como pueden ver, sí
obtenemos la salida esperada de solo los números pares aquí. De acuerdo, entonces eso es todo lo que es peculiar de Python. En su mayor parte, si vienes de algún otro idioma, eso debería darte suficiente conocimiento para entender el código python. Te estaré mostrando en este curso y trabajar con ese código tú mismo. Entonces ese es tu curso de python crash. Obviamente solo algunas cosas muy básicas ahí. medida que pasemos por más y más ejemplos a
lo largo del curso, tendrá cada vez más sentido ya que tienes más ejemplos que ver. Pero si te sientes un poco intimidado en este punto, tal vez seas un poco demasiado nuevo en programación o scripting, y podría ser una buena idea ir y tomar un curso de Python antes de seguir adelante. Pero si te sientes bastante bien por lo que has visto hasta ahora, sigamos adelante y seguiremos adelante.
9. Introducción a los Pandas: Entonces ahora que tienes una breve introducción al lenguaje de programación Python, hablemos un poco de la biblioteca Pandas. Esa es una biblioteca de funciones de python que estarás usando muchos de los científicos de datos. Así que sígueme aquí, adelante y encuentra el tutorial de pandas que p Y N b archivo. Eso debería estar dentro de los materiales de tu curso. Deberías estar viendo algo así en este punto. ¿ Qué son los pandas? Bueno, básicamente
es una forma de procesar datos tabulares. Entonces cuando tienes columnas y filas de información como lo haces a menudo en la ciencia de datos, pandas son una forma muy fácil de cargar esos datos en manipularlos, examinar tus datos, limpiarlos y cosas así. Y funciona junto con otras dos bibliotecas que vas a estar usando mucho en el
campo de la ciencia de datos y el aprendizaje automático. Entonces cuando hablamos de aprendizaje automático real, algoritmos estarán usando una biblioteca de python llamada Psychic Learn o SK Learn para abreviar. Ahí es donde tiene todo el código real para hacer cosas como regresiones lineales o SPM. Todas las cosas de las que vamos a hablar más adelante y que usualmente toma como entrada una
pira entumecida , unos pasteles tan entumecidos. Otra biblioteca en la mezcla aquí que tiene su propia representación de un aumento de datos sobre esto podría ser un matrices multidimensionales de datos, también. Entonces es una especie de forma de representar la información. Entonces la forma en que suele ir es que podrías usar pandas para cargar tus datos y manipularlos y limpiarlos y entenderlos,
para luego traducirlo en una pira entumecida. A que luego se alimenta a la psiquica. Se aprende, y esa traducción suele suceder automáticamente. Por cierto, no
tienes nada especial. Entonces, lo que es más importante en esta etapa es entender los pandas, ¿
verdad? Porque en realidad cosa que en
psique, aprende bastante trivial. Entonces hablemos de pandas. Bajemos un poco por aquí y juguemos con algunos datos, ¿sí? Entonces empezaremos importando lo que necesitamos. Por lo que vamos a decir que queremos usar la librería de lib de mat plot en línea. El más mínimo significa que cualquier hierba que creemos como parte de nuestro cuaderno aparecerá dentro del propio cuaderno y no dentro de una ventana externa con la necesidad de
importar específicamente las bibliotecas que queremos usar en nuestro código python. Entonces vamos a importar la biblioteca num pastel como y P. Eso significa que podemos referirnos a tartas entumecidos la taquigrafía y P dentro de nuestro guión ahora. Y también importaremos la biblioteca Pandas como PD. Entonces esto significa que básicamente hemos creado un alias para la Biblioteca Panis de PD. Sólo dedo del pie guárdanos algunas pulsaciones de teclas. Entonces sigamos adelante y usemos Panis por primera vez. Donde digo aquí es DF igual a p d dot reid Underscore. Ver SV pasado superior Sazi SV. Entonces, ¿qué está pasando aquí? Esto va a cargar el pasado arranque más alto ver archivo SV. Eso es un archivo de valores separados por comas Eso sólo significa que es información tabular donde cada columna está separada por una coma. Entonces es Es un formato muy sencillo, basado en
texto, y la primera fila suele corresponder a los títulos de esas columnas. Entonces con una línea de código, podemos leer esos datos desde el disco y crear lo que se llama un marco de datos fuera de él. Un marco de datos de pandas, y vamos a firmar ese marco de datos a una variable llamada DF. Por lo que esto carga en el pasado nuestro Zazi SV y lo convierte en un marco de datos de pandas. Y entonces podemos llamar a la cabeza a ese objeto de marco de datos para visualizar las primeras 5 filas de ese marco de
datos, y así es como se ve. Por lo que en realidad está haciendo clic aquí y golpear turno enter para ejecutarlo. Y se puede ver aquí este es un pequeño adelanto del archivo. Entonces si solo quieres,
como, como, comprobar
dos veces que todo cargado incorrectamente y entender lo que hay en él, esta es una buena manera. Dedo del pie hacer poco punto. Consulta con cabeza. Se puede ver aquí que tenemos las 1 ª 5 filas que se muestran aquí y nuestras columnas aire tituladas propiamente Años experiencia empleada empleadores anteriores nivel educación, platicaron su escuela, internados y contratados. Vamos a estar usando este conjunto de datos más adelante en el curso, realidad ver si podemos predecir si un solicitante de empleo es contratado o no en base a su historial
pasado. De acuerdo, entonces todo se ve razonablemente bien ahí. También puedes pasarlo en un entero por delante si quieres ver algún número específico desde el inicio de tu archivo. Entonces si quiero ver las primeras 10 filas de mi marco de datos. Yo sólo podría decir DF punto cabeza 10 así y el calambre la 1ª 10 filas, se
puede ver un poco de un muestreo más grande de datos allí. Um, y también podría mirar al final de tu archivo de datos también. Si tu marco de datos así así que DF punto tail bien, mira así y eso es mostrar las últimas cuatro filas en nuestro marco de datos. Se puede ver que este es un conjunto de datos muy pequeño. Es sólo algo que me hice. Sólo contiene 12 filas de información. Ahora, a veces hablaremos de la forma de su marco de datos o de la forma de sus datos. Y lo que queremos decir cuando hablamos de la forma es solo la dimensionalidad de la misma. Entonces, por ejemplo, si vemos la forma de punto DF que volverá con 13 coma siete, y lo que eso significa es que tenemos 13 rosas y siete columnas en nuestro marco de datos, y esa es la forma de nuestro marco de datos. Precisamente cuántas columnas tiene cuántas filas Tiene solo una palabra de lujo para un concepto muy sencillo . También podemos decir, DF tamaño de punto que vuelve. Es 91 que es solo el número de celdas en nuestro marco de datos, básicamente el número de puntos de datos únicos. Y eso va a ser sólo 13 veces siete en nuestro ejemplo. 13 Tiempo de rosa. Siete columnas. Es 91. También hay un operador de Len. Podría llamar a Len DF, y eso vuelve con 13. Eso solo causa que te devuelvas el número de filas en tu marco de datos. Si solo necesitas eso. Y si haces columnas de puntos DF. Qué te devuelva eso. Es una matriz de los nombres reales de las columnas. Entonces si quieres hacer un pequeño recordatorio rápido de cuáles son tus nombres de columna y lo que significan , esa es una buena manera de, como, conseguir una visualización rápida de lo que me está llamando. Y a veces necesitas recordarte a ti mismo, y eso es, ah, pequeño truco
práctico. Ahora hagamos algo de manipulación de este marco de datos. Digamos que queremos extraer sólo una sola columna de ese marco de datos. Digamos que solo queremos extraer la columna contratada y hacer algo específicamente con eso . A menudo, cuando estás cargando datos, no
te interesa cada característica que hay en ella. Quieres extraer ciertas características que te importan para el modelo que estás construyendo . Así funcionaría eso. Entonces si digo DF corchete cotizado corchete contratado que sólo extraerá la primera esa columna la columna
contratada como un solo marco de datos. Por lo que ahora tenemos un nuevo marco de datos que consiste precisamente en eso. Columna única. La columna contratada y yo podríamos haber firmado eso a otro marco de datos si quisiera dar la
vuelta y hacer eso, ya
sabes, y hacer algo más con él. Entonces podría decir, ya
sabes, llamada
contratada a iguales, DF contratado o algo así. También puedes extraer un rango dado de rosa dentro de una columna como esta. Entonces si lo hago, DF contrató y luego un corchete adicional con Colon cinco que extraerá la 1ª 5 filas de la columna contratada y me devuelvo un nuevo marco de datos que se parece a eso solo cinco filas de la columna
superior y nada más para que tú puede ver cómo se podrían utilizar los pandas para ordenar extraer los datos que te importan cuando estás tratando de pre procesar tus datos También puedes extraer un solo valor como ese. Si yo sólo dijera el corchete cinco al final, eso es arrancar explícitamente la columna contratada en la quinta fila, que pasa a ser el valor Por qué. De acuerdo, entonces hablemos un poco de terminología aquí. OK, tenemos un marco de datos que básicamente es un objeto multidimensional, en este caso de 13 por siete objeto. Y luego cuando extraigamos una sola fila o una sola columna como esta, eso va a dar. Speck fue llamado de Siri. De acuerdo, así que eso serio es básicamente una matriz de uno D. Y si extraemos un solo valor, eso suele referirse como, bueno, un valor tan poco de terminología allí. También podrías extraer más de una columna si quieres. Obviamente, esa va a ser una situación más común. Eso lo harías así. Entonces, en lugar de pasar solo un solo nombre de columna citado, podrías pasar en una matriz de nombres de columna en lugar de esta manera. Entonces vamos a decir DF bracket, y luego vamos a tener otra capa de corchetes dentro de esos corchetes que representa la matriz de nombres de columna que quieres Así que digo DF bracket bracket años experiencia coma contratado bracket y eso nos va a devolver este nuevo marco de datos aquí que consiste los años vividos y contratados columnas y nada más. Y tú, obviamente puedes agregar más columnas a esa lista si quieres. Entonces de nuevo, una operación muy común para extraer solo las características o las columnas que realmente te
importan para una tarea específica. Cuantos menos datos empujes, mejor. Por lo que suele ser lo primero que quieres hacer. Deshazte de las cosas que no te importan. De acuerdo, también
puedes extraer rangos de rosa de más de una columna de la misma manera. Por lo que podría decir, quiero sólo las 1 ª 5 filas de los años experimentadas en columnas superiores como esta. Nada demasiado sorprendente esto en impuestos ahí. Si quieres ordenar tus resultados, ordena tu marco de datos. Podrías hacerlo así. Ahí está la función de valores de subrayado ordenar. Se puede llamar al marco de datos, simplemente pasando array de la columna por la que se desea ordenar y diremos esta experiencia. Queremos ordenar por años experiencia. Se puede ver Lo hizo de hecho, hacer ese tipo de cero más bajo a más alto, hasta 20 años de experiencia y nuestro pequeño marco de datos fabricado aquí. ¿ Qué más podríamos hacer? También podemos hacer recuentos de valor. Esa es la forma de desglosar cuántos de cada valor único existe, lo que podría ser una forma útil de visualizar su tipo de datos. Busca valores raros que podrían estar fuera. Mentirosos que necesito hacer es decir DF y luego el nombre de la columna que quieres contar con el
valor de punto cuenta y te daré un conteo de cada valor único dentro de su. Entonces hazlo real. Digamos que queremos crear un recuento de valor Siri fuera de la columna de nivel de educación en nuestro marco de datos, y luego vamos a seguir adelante e imprimir eso solo diciendo para crear una puntuación cuenta y
recuperamos este resultado que indica que en todo nuestro marco de datos existen siete grados B s para licenciaturas de doctorado en a grados M s. De acuerdo, entonces y si quieres Oh, lo tentador que hacer aquí es crear una historia, Graham, ¿
verdad? Entonces queremos si quieres trazar esa distribución que sea muy fácil. Y Pan isas Bueno, podríamos decir que cuenta de grado. Stop plot kind Eagles Bar dice, diciendo, Queremos una parcela de bar de esos conteos de grado. Y ya que usamos Matt Plot en vivo en línea en la parte superior, eso solo sigue adelante y muestra dentro de nuestro cuaderno I Python tan muy fácil de hacer realmente gráficos usando pandas también. Está bien, si quieres practicar esto por ti mismo, tengo un reto para ti. Ponte las manos sucias aquí y consigue un poco de experiencia en las manos. Intenta extraer subió cinco a 10 de ese marco de datos fuente de la de las contrataciones potenciales que tenemos, y quiero que preserven sólo los empleadores anteriores y las columnas superiores. Asignar eso a un nuevo objeto de marco de datos y luego crear un graham de historia como acabamos aquí, trazando la distribución del número de empleadores anteriores dentro sólo de ese subconjunto de los datos. De acuerdo, entonces eso debería permitirte armar todas las cosas de las que hablamos aquí. Hay mucho más dependiente que esto,
obviamente, obviamente, pero estas son las operaciones más comunes con las que debes lidiar y prácticamente todo lo que necesitas saber para pasar por este curso y entender lo que está pasando. Entonces ten una grieta de ese ejercicio. Creo que será una buena práctica para ti, y con eso bajo tu cinturón, podemos pasar a alguna ciencia de datos real.
10. Tipos de datos: todo bien. Si quieres ser científico de datos, necesitamos hablar sobre los tipos de datos que podrías encontrar y cómo clasificarlos y cómo tratarlos de manera diferente. Entonces, sumémonos en los diferentes sabores de datos que podrías encontrar. De acuerdo, hablemos de diferentes tipos de datos que podrían encontrarse aquí cosas bastante básicas. Pero, ya
sabes, tengo que empezar con cosas simples, y vamos a trabajar nuestro camino hasta las cosas de aprendizaje automático de minería de datos más complicadas. Pero es importante saber con qué tipo de datos estás tratando porque diferentes técnicas podrían tener diferentes matices, dependiendo del tipo de datos que estés manejando. Entonces hay varios sabores de datos, si se quiere, y me gusta el helado, que es la razón principal por la que esta diapositiva está arriba. Pero pasando por ahí hay datos numéricos, categóricos y orginales, y de nuevo , ya
sabes, hay diferentes variaciones de técnicas que podrías usar para diferentes tipos de datos . Por lo que siempre debes tener en cuenta con qué tipo de datos estás tratando cuando lo estás analizando. Empecemos Nuevo Milagro. Es probablemente el tipo de datos más común básicamente representa alguna cosa cuantificable que puedes medir algunos ejemplos que tengo aquí alturas de gente tiempo de carga de página, precios de
acciones. Ya sabes, cosas que varían cosas que puedes medir cosas que tienen, ya
sabes, una gran gama de posibilidades. Um, ahora básicamente hay dos tipos de datos numéricos, por lo que un sabor de sabor, si se quiere. Hay datos discretos, que están basados en energía, por ejemplo, que podrían ser cuentas de algún tipo de evento. Algunos ejemplos aquí. ¿ Cuántas compras hizo un cliente en un año? Bueno, eso sólo podría ser valores discretos. Compraron una cosa o compraron dos. Las cosas son sobre tres cosas que podrían haber comprado, ya
sabes, 2.25 cosas o tres y 3/4 cosas. Es un valor discreto que tiene una restricción de enteros. El otro tipo de datos numéricos son los datos continuos. Esto son cosas. Tiene un rango infinito de posibilidades donde se puede entrar en fracción. Entonces, por ejemplo, volviendo a la altura de las personas, hay un número infinito de alturas posibles para las personas. Podrías tener cinco pies y 10.37625 pulgadas de alto o lo que sea o el tiempo que se tarda en hacer algo como echar un vistazo en una página web podría ser cualquier enorme gama de posibilidades. Ya sabes, 10.7625 segundos para todo lo que sabes o cuánta lluvia cayó de nuevo en un día determinado, ahí hay una infinita cantidad de precisión, así que ese es un ejemplo de datos continuos. Entonces, para recapitular, los datos
numéricos son algo que puedes medir cuantitativamente con un número. Y podría ser o un discreto donde se basa su energía, como algún tipo de conteo de eventos o continuo, donde hay una precisión infinita que podrías tener a disposición de esos datos. El segundo tipo de datos que vamos a hablar de sus datos categóricos y se trata datos que no tiene reunión numérica inherente. Realmente no se puede comparar una categoría con otra directamente. Cosas como el género. Sí, sin preguntas. Carrera, Estado de residencia, categoría de
producto, partido
político. Puedes asignar números a estas categorías, y muchas veces lo harás, pero esos números no tienen reunión inherente. Entonces, por ejemplo, puedo decir que la zona de Texas es mayor que la de Florida, pero no puedo decir que Texas es mayor que Florida quiero decir, son sólo categorías. No hay riel, nuevo milagro, significado
cuantificable para ellos. Es sólo formas en que categorizamos cosas diferentes. Ahora de nuevo, podría tener algún tipo de culo numérico Nación IG a cada estado. O sea, podría
decir que el estado número tres de Florida en Texas Estate número cuatro pero no hay relación
real entre tres y cuatro. Tienen razón. Es sólo una especie de abreviatura para representar más compactamente estas categorías. Entonces nuevamente, los datos
categóricos no tienen ningún significado numérico intrínseco. Es solo una forma en la que estás eligiendo dividir un conjunto de datos en función de categorías, y la última categoría de la que tiendes a escuchar con tipos de datos son datos orginales,
y es una especie de, ah, mezcla de numéricos y datos categóricos. Y un ejemplo común son las calificaciones de estrellas para una película o música o lo que tienes. Entonces en este caso, tenemos datos categóricos en que podría ser de una a cinco estrellas. Ya sabes donde uno podría representar pobre y cinco podrían representar excelente, pero sí tienen significado matemático. sabemos que cinco significa que es mejor que uno. Entonces este es un caso donde tenemos datos donde las diferentes categorías realmente tienen una relación
numérica entre sí. Entonces puedo decir que una estrella es menos de cinco estrellas. Puedo decir que dos estrellas es menor a tres estrellas y decir que cuatro estrellas es mayor que dos estrellas en cuanto a una medida de calidad. Entonces es una especie de en medio ahí. También se podría pensar en esto. Ya sabes, si lo pensaras como el número real de estrellas como datos numéricos discretos. Entonces definitivamente una línea fina ahí, y en muchos casos, realidad
puedes tratarla de esa manera. Entonces ahí lo tienes. Los tres tipos diferentes ahí es el dia numérico, categórico y orginal. A ver si está hundido. No te preocupes, no
voy a hacer que pase en tu trabajo ni nada. Quiz rápido. Entonces, para cada uno de estos ejemplos, ¿los datos son numéricos, categóricos u orginales? Empecemos con cuánto gas hay en tu tanque de gas. ¿ Qué opinas? Bueno, la respuesta correcta es nuevo milagro. Es un valor numérico continuo ahí porque puedes tener cualquier rango infinito de posibilidades de gas en tu tanque. Es decir, sí, Eso es probablemente algún límite superior la cantidad de gas que puede caber en él. Pero no hay fin al número de posibles valores de cuánto gas tienes. Podría ser 3/4 de un tanque. Podría ser 7/16 de un tanque. Podría ser uno sobre pi de un tanque. Es decir, quién sabe, ¿verdad? ¿ Qué tal si estás leyendo tu salud general en una escala del 1 al 4, donde esas opciones correspondían categorías más pobres, moderadas, buenas y excelentes, ¿Crees? Bueno, ese es un buen ejemplo de datos orginales. Eso se parece mucho a nuestros datos de calificación de películas. Y de nuevo, dependiendo de cómo modeles que probablemente podrías tratar como datos numéricos discretos también. Pero técnicamente, vamos a llamar a esos datos de calvario. ¿ Qué tal las carreras de tus compañeros de clase? Ya sabes, ¿qué nacionalidad son? Ejemplo bastante claro de datos categóricos. Ya
sabes, realmente no se puede decir eso, ya
sabes, no se puede comparar a la gente amarilla la gente verde ahí justo amarillo y verde y
acaba de elegir dos razas aleatorias que no existen. Um, pero, ya
sabes, son categorías que tal vez quieras estudiar y entender las diferencias entre en alguna otra dimensión. ¿ Qué tal las edades de tus compañeros aquí en esta clase en años? Un poco de una pregunta truco ahí. Si dijera que tenía que ser en un nuevo valle energético de años, como, ya
sabes, 40 50 o 55 años, entonces eso serían datos numéricos discretos. Pero si tuviera más precisión como, ya
sabes, 40 años, tres meses y 2.67 días, entonces eso sería datos numéricos continuos. Pero de cualquier manera, es un tipo de datos numéricos, y finalmente, dinero gastado en una tienda de nuevo. Ya sabes, eso podría ser un ejemplo de datos numéricos continuos. Entonces, de nuevo, esto solo es importante porque podrías aplicar diferentes técnicas a diferentes tipos de datos. Por lo que podría haber algunos conceptos donde hacemos un tipo de implementación para datos categóricos y un tipo diferente de implementación para datos numéricos, por ejemplo. Entonces eso es todo lo que necesitas saber sobre los diferentes tipos de datos. Área de conceptos bastante simples que obtienes datos categóricos numéricos y datos de Ordell y numéricos podrían ser continuos o discretos, y podría ser diferentes técnicas que aplique, dependiendo del tipo de datos con el que esté tratando. Entonces veremos que a lo largo del curso adelante, sigamos adelante
11. Hablar de tu media y modo: Hagamos un poco de actualización de estadísticas. 101 e. quiero decir, esto es como cosas de la escuela primaria, pero bueno pasarlo de nuevo y especie de apreciar las diferencias y cómo se usan estas diferentes técnicas. Media mediana y modo. Seguro que para esos términos antes, pero es bueno ver cómo se usan de manera diferente. Entonces, vamos a sumergirnos. Pasemos a significar mediana y modo. Esa debería ser una revisión para la mayoría de ustedes. Creo que en estos días enseñan estas cosas en la primaria. Pero sólo un refresco rápido, en otras palabras, empezar a sumergirse en realidad en algunas estadísticas reales. Echemos un vistazo a algunos datos reales y descubramos cómo medir estas cosas. Entonces la media, como probablemente sabrás, es solo otro nombre para que el promedio calcule la media de un conjunto de datos. Todo lo que tienes que hacer es un poco hasta todos los valores y dividido por el número de valles que
tienes . Entonces tomemos este ejemplo aquí. Digamos que fui puerta en puerta en mi barrio y le pregunté a todos, ¿cuántos hijos tienen? Cuántos Niños viven en su hogar que por cierto es un buen ejemplo de datos
numéricos discretos , ¿
verdad? Recuerda de la conferencia anterior. Entonces digamos que voy por ahí y me enteré que la primera casa no tiene hijos en ella. Y la segunda casa tiene dos Niños y la SEC Tercera casa tiene tres Hijos y dos y uno y así sucesivamente y demás. Entonces una máscara, este pequeño conjunto de datos de datos numéricos discretos. Y para descifrar lo malo todo lo que hago es sumarlos todos juntos y divididos por el número de casas a las que fui. Entonces en ese caso, sale cero más dos más tres, más todo el resto de estas cosas dividido por el número de casas que miré, que es nueve. Y el número medio de Niños por casa en mi muestra es 1.11 Así que ahí lo tienen significan ahora, mediana. Es un poco diferente. El modo en que computas la mediana de un conjunto de datos es ordenando todos los valores y tomando el que termina en el medio. Entonces, por ejemplo, si ese era mi conjunto de datos original, podría ordenarlo numéricamente, y puedo tomar el número que durmió dab en medio de los datos, que resulta ser uno. Entonces de nuevo, todo lo que hago es tomar el tipo de datos numéricamente y tomar el punto central. Eso es todo lo que hay a los medios de comunicación. Ahora hay un matiz si lo tienes parejo versus un número impar de puntos de datos que la mediana podría en realidad caer entre dos puntos de datos, ¿
verdad? Al igual que si tuviera Ah, un número par ahí de puntos de datos que quedaría claro cuál es en realidad el medio . En ese caso, todo lo que haces es tomar el promedio de la caída a hacer en el medio. Entonces si ni siquiera tienes número, solo tomas el medio hasta ahora este ejemplo de una mediana y el medio estamos bastante cerca uno del otro porque no había muchos atípicos. Ya sabes, teníamos 012 o tres hijos, pero no teníamos alguna familia loca que tuviera 100 hijos. Eso habría sesgado realmente el medio. Pero podría no haber cambiado demasiado la mediana, ¿ verdad? Y es por eso que la mediana a menudo es algo muy útil para mirar y muchas veces se pasa por alto. La gente tiene tendencia a engañar a la gente con estadísticas a veces, y voy a seguir señalando esto a lo largo del curso donde pueda. Pero por ejemplo, se
puede hablar del ingreso medio o promedio de los hogares en Estados Unidos, y ese número real del año pasado cuando lo busqué fue 72,000 algunos dólares impares. Pero eso realmente no cuenta una imagen precisa de lo que hace el promedio, lo que hace el típico estadounidense. Porque si nos fijamos en la mediana de ingresos, es mucho menor sus 51,939 dólares. ¿ Por qué es eso? Bueno, por la desigualdad de ingresos, hay algunas personas muy ricas en América, y lo mismo ocurre en muchos países también. América ni siquiera es lo peor, pero ya conoces a esas personas multimillonarias tan súper ricas que viven en Wall Street o Silicon Valley o lo que sea que sesguen la mala derecha. Pero hay tan pocos de
ellos, en realidad no afectan tanto a la mediana. Entonces este es un gran ejemplo de donde la mediana cuenta una historia mucho mejor sobre la
persona típica o punto de datos en este ejemplo que la media lo hace Así que cada vez que alguien habla del medio hay que pensar, Bueno, ¿ Cómo se ve la fecha de distribución? ¿ Hay atípicos que podrían estar sesgando eso significa? Y si la respuesta es potencialmente, sí, también
debes pedir la mediana, porque muchas veces eso proporciona más perspicacia que la media o la media. Por último, hablaremos de modo. Esto realmente no surge con demasiada frecuencia en la práctica, pero no se puede hablar de media y mediana sin hablar de modo. No sé por qué. Porque empieza con ellos, supongo. Pero todo lo que es es el valor más común en el conjunto de datos. Entonces volviendo a mi ejemplo de número de niños en cada casa, si solo miro qué número ocurre con más frecuencia, resulta ser cero. Y el modo, por lo tanto, de estos datos es cero. El número más común de Niños en una casa determinada en este barrio no es niños, y eso es todo lo que significa ahora. Este es en realidad un buen ejemplo de, um, datos
continuos versus discretos, correcto, porque esto solo realmente funciona con datos discretos. Si tengo un rango continuo de datos que realmente no puedo hablar del valor más común que ocurre a menos que, como querer lazos que de alguna manera en valores discretos. OK, entonces ya nos hemos topado con un ejemplo aquí donde el tipo de datos importa el modo generalmente solo es relevante para los datos numéricos discretos. Y si tienes datos continuos, no tanto. Muchos datos del mundo real tienden a ser continuos. Entonces tal vez por eso no escuchas demasiado sobre el modo. Pero está aquí para la exhaustividad. Ahí lo tienes significan mediana y modo en pocas palabras, y podríamos seguir adelante bien. Media mediana y modo, tipo de las cosas estadísticas más básicas que posiblemente puedas hacer. Pero espero que haya ganado un poco de refresco ahí sobre la importancia de elegir entre mediana y media. Pueden contar historias muy diferentes, y sin embargo la gente tiende a equipararlas en sus cabezas. Así que asegúrate de estar siendo un científico de datos responsable y representando datos de una manera que transmita el significado que estás tratando de representar. Si estás tratando de mostrar un valor típico, a menudo la mediana es una mejor opción que la media debido a los valores atípicos. Entonces recuerda que sigamos adelante
12. Usar medios y modo en Python: Empecemos a hacer algo de codificación real y python y veamos cómo computas la mediana media y modo usando python en algún archivo de cuaderno de Python que tenemos Vale, así que abre el cuaderno de modo medio medio de tus materiales del curso por aquí en tu ah Página del cuaderno de Júpiter aquí y otra vez, si hace falta Teoh refrescar sobre cómo hacerlo, vuelve a la conferencia de configuración y te mostraré cómo hacerlo de nuevo. Pero una vez que tienes el modo medio de mediana abiertamente, puedes jugar con él. Entonces veamos qué está pasando aquí. Entonces lo que vamos a empezar haciendo es crear un conjunto de datos falso de distribución del ingreso. Entonces vamos a modelar 10 mil personas y cuánto dinero ganan cada año. Ahora, para hacer esto, vamos a usar el paquete num pastel. Entonces, como hablamos en la importación de paquetes en nuestra introducción a Python, empezaremos diciendo importante tarta numb AS y P. Esto nos permite referirnos al paquete numb tarta como solo np, que simplemente nos ahorra algunos escribiendo además de importar ese paquete para que podamos usarlo ahora El paquete num pastel incluye una función llamada random dot normal, y lo que esto hace es crear una distribución aleatoria. Básicamente, crea una distribución de la curva de campana de datos alrededor de un cierto punto en este caso, $27,000 con una desviación estándar de $15,000. Y queremos 10 mil puntos de datos en este conjunto de datos. Ahora bien, si no estás familiarizado con la desviación estándar y las distribuciones normales, hablaremos de eso con más detalle más adelante. Pero creo que empezarás a darle sentido a medida que pases por este ejercicio. Entonces una vez que hemos creado ese conjunto de datos de 10,000 personas que tienen una distribución centrada alrededor de $27,000 podemos entonces col n p dot significa usar el paquete num pastel para computar la media o promedio de ese conjunto de datos. Y como especificamos que debería estar centrado en torno a los 27,000 dólares esperaríamos que fueran unos 27,000 dólares. Por lo que es click en este bloque de código y pulsa turno enter para ejecutarlo, y lo suficientemente seguro, es alrededor de $27,000 ahora porque hay un componente aleatorio a esto tu resultado puede ser ligeramente diferente. Eso se espera. Eso está bien, pero debería estar cerca de 27,000 para que en realidad podamos trazar esto para meternos más en sentir cómo se distribuye el estado. Para ello, vamos a utilizar un paquete llamado Matt Plot Lib, que nos permite crear gráficos realmente simples aquí en línea y en realidad mostrar estas gráficas dentro del propio archivo del cuaderno. Tenemos que decir por ciento Matt parcela lib en línea como la primera línea aquí. ¿ Alguna vez te has topado con un problema en el futuro con este curso en los cuadernos donde se muestran tus gráficas? Probablemente sea porque olvidaste ejecutar un bloque de código que contenía Matt plot live en línea que se requiere para ver realmente estas gráficas. Con eso fuera del camino,
sin embargo, sin embargo, podemos importar el paquete real Matt plot lib en sí específicamente la parte de lote de tubería del mismo
y de nuevo se referirá a eso como un alias de Plt solo para salvarnos y mecanografiar. Entonces ahora que tenemos instalada la parcela de tarta de Matt Pot Libs, solo
podemos decir plot dot silbido para crear un hist un gramo de nuestro conjunto de datos de ingresos, y vamos a pasar en el número 50 lo que significa que queremos que esto se divida en 50 cubos
diferentes. Entonces vamos a Kwan Ties son un conjunto de datos en 50 discretos cubos de datos, si se quiere, y entonces podemos llamar trama que mostré. En realidad muéstralo. Adelante y corremos eso también. Turno, entra dentro de esa cuadra y deberías ver algo que se ve un poco así. Entonces ahí está esa curva de campana que te prometí, verdad, y puedes ver que está centrada alrededor o $27,000 más o menos. Si no estás familiarizado con la historia, Gramos, La forma de interpretar estos datos es que mucha gente está ganando alrededor de 27,000 dólares al año. Muy pocas personas están haciendo entre 60 mil y 80 mil dólares anuales. De acuerdo, así que esos son los datos ficticios que inventamos. Por lo que hemos visto que la media es de unos 27,000 dólares. Eso tiene sentido. Eso es lo que esperaríamos. ¿ Cuál es la mediana? Entonces de nuevo, los medios de comunicación son justos. Si ordenáramos todos estos datos, cuál sería el valor en medio de todo. Y como sí tenemos una distribución agradable, incluso de la curva de campana aquí, la mediana debe ser aproximadamente la misma que la media. Sigamos adelante y pinchemos aquí en el Bloque tres y ejecutemos ese turno. Entra y lo suficientemente seguro, eso también es alrededor de 27,000 dólares. Entonces para un destruido uniformemente un conjunto de datos como este, la mediana y la media serán aproximadamente la misma. No obstante, no todos los conjuntos de datos se distribuyen uniformemente. Veamos qué pasa si agregamos a Jeff Bezos a la mezcla. Y digamos que el año pasado hizo un mil millones de dólares. Probablemente esté un poco en el lado alto, incluso para Jeff Bezos. Pero sólo por el bien del argumento, vamos a llamar a n p dot append para simplemente agregar un valor extra a la lista de ingresos, y contendrá un solo valor, mil millones. Por lo que tendremos aquí una nueva lista de ingresos que contiene normalmente se distribuyen datos más Jeff Bezos allá para estropear las cosas. Ahora recuerda, la mediana simplemente representa cuál es el valor medio lejos para ordenarlos a todos. Y sólo hemos agregado un punto de datos más aquí, así que eso no debería cambiar mucho, ¿
verdad? Entonces volvamos a correr la mediana, y todavía estamos obteniendo un valor cercano a los 27,000 dólares. Por lo que Jeff Bezos no se metió con la mediana de nuestro conjunto de datos. No obstante, si calculamos lo malo, va a ser muy diferente, ¿
verdad? Eso es hasta, como $127,000. Casi así. Esta es una gran historia sobre cómo un valor atípico en un conjunto de datos realmente puede estropear la media o el valor
promedio de ese conjunto de datos. Entonces cuando la gente habla de promedios o medios, toma esa información con un grano de sal. Pregúntate, ¿Podría haber valores atípicos que estén sesgando esos datos? Y, ah, distribución del
ingreso es un gran ejemplo de ello. En ese caso, la mediana te va a contar una mejor historia sobre lo que realmente está sucediendo en la
población más grande . ya lo sepas, lección de
estadísticas número uno o cómo cuidar a las personas mintiendo con estadísticas. Asegúrate de entender la diferencia entre la mediana y la media, y si hay atípicos involucrados los medios y probablemente te va a dar más información
útil también tocará el modo solo porque empieza con ellos y la gente habla al respecto junto con media y mediana por alguna razón. Así que sigamos adelante y creemos otro conjunto de datos falsos aquí. Esto se distribuirá uniformemente. Tendremos un montón de edades falsas para 500 personas. Entonces vamos a llamar a np dot random dot rand a tener distribución uniforme de entre 18 y 19 años para 500 personas. Y entonces solo escribiremos edades, lo que nos permite visualizar esa matriz en línea aquí. Turno entra dentro de eso y esto es aleatorio. Entonces vamos a obtener diferentes resultados cada vez ahora para volver a calcular el modo. Ese es solo el valor que aparece con mayor frecuencia en este conjunto de datos. Entonces sigamos adelante y hagamos eso. ¿ Hiciste eso? Vamos a usar el paquete tesis I pi y es módulo de estadísticas, y es sólo otra forma de importarlo. Entonces estamos diciendo del CYP I importo estadísticas. En este caso, no
vamos a usar la cláusula como porque puedo escribir estadísticas que no son demasiado difíciles. Y entonces eso llamaremos a stats dot mode en la matriz ages para recuperar nuestro resultado de modo, y después de eso, chugs lejos un poco. Tiene una carga arriba. Ese paquete que obtenemos. Nuestra respuesta. Resulta, en esta instancia, el modo es 28 el cual ocurrió 14 veces en el estado de set. Y esto es completamente aleatorio. Por lo que cada vez que corras esto, obtendrás una respuesta diferente. Vámonos. ¡ Vámonos! Atrás, Teoh. Bloquear siete Aquí otra vez y turno entrar de nuevo para obtener un nuevo conjunto de datos aquí. Y si volvemos a ejecutar este bloqueo, deberías obtener una respuesta diferente esta vez los votantes 20 lo que ocurrió 15 veces. Entonces solo te muestra que el modo funciona. Pero esto son datos aleatorios, por lo que no es terriblemente significativo, pero ilustra cómo harías esto en cyp I Muy bien, así que ahí lo tienes significan mediana y modo. Pasemos a un ejercicio para dejarte practicar con él. Te voy a dar un poco Simon. Aquí. Si abres ejercicio medio medio me pitón cuaderno. Hay algunas cosas con las que puedes jugar, así que quiero que te enrolles las mangas y en realidad traten de hacer esto aquí tenemos algunos datos de comercio electrónico
aleatorio. Entonces, ¿qué? Este dato representa es el monto total gastado por transacción. Y de nuevo, igual que con nuestro ejemplo anterior, es sólo una distribución normal de datos. Al igual que nuestro ejemplo de ingresos puede correr eso y tu tarea es seguir adelante y encontrar la media y mediana de estos datos usando el bulto que empaqueté más o menos la asignación más fácil que puedas imaginar. Todas las técnicas que necesitas están en el modo medio medio de cuaderno Python. Mi punto aquí no es realmente desafiarnos, solo para hacerte realmente escribir algún código python y convencerte de que
realmente puedes obtener un resultado y hacer que algo suceda aquí. Así que adelante y juega con eso. Si tienes algún problema al publicar las discusiones para la selección te ayudarán. Pero debería ser bastante trivial si quieres jugar eso algunos o siéntete libre de jugar con la distribución de datos aquí y ver qué efecto puedes tener en los números ahí. Ya sabes, en algunos valores atípicos hacen lo que hacemos con los datos de ingresos tan jodidos de esta manera
aprendes estas cosas, ten en ello divertirte, acuerdo. Espero que te haya enrollado las mangas y realmente haya jugado un poco alrededor de ese código. Consigue algo de confianza en hacer realmente estadísticas en I cuaderno Python, Bear y Python en general. Entonces, sin atrás,
sigamos adelante a nuestro concepto de redes, desviación
estándar y varianza.
13. Variación y desviación de escala: Hablemos de conceptos de desviación estándar y variantes en términos que probablemente hayas escuchado antes. Pero vayamos un poco más de profundidad sobre lo que realmente significan y cómo
los computas . Es una medida de la propagación de una distribución de datos, y voy a tener un poco más de sentido en unos minutos. Hablemos de la desviación estándar en variantes a cantidades fundamentales para una
distribución de datos que verás una y otra vez en este curso. Entonces veamos qué son. Si necesitas un refresco de nuevo, veamos un historial Graham, porque la varianza y la desviación estándar son todo acerca de la propagación de la fecha de la forma de la distribución de un conjunto de datos. Entonces echemos un vistazo a estos datos falsos. Digamos que tenemos algunos datos sobre la frecuencia de llegada de los aviones a un aeropuerto, por ejemplo, y esta historia Graham indicaría que sin embargo optamos por Kwan vincula esos datos. Digamos que tenemos alrededor de cuatro llegadas por minuto. Bueno, eso pasó en, digamos, alrededor de 12 días que miramos para este dato. Por lo que 12 diferentes puntos de datos discretos a cuatro llegadas ish permanente, pero luego tenemos estos valores atípicos. Tuvimos un día realmente lento que solo tenía una llegada por minuto para mí, solo tenía un día realmente rápido donde teníamos casi 12 llegadas por minuto. Entonces de nuevo, la forma de leer un historial Graham es Buscar el cubo de un valor dado y eso te dice con
qué frecuencia ocurrió ese valor en tus datos y la forma de la historia. Ram podría decirte mucho sobre la distribución de probabilidad de un determinado conjunto de datos. Por lo que sabemos a partir de estos datos es muy probable que tengan alrededor de cuatro llegadas por minuto. Pero es muy poco probable que tenga uno o 12 derecho, y también podemos hablar específicamente de las probabilidades de todos los números intermedios. Por lo que no sólo es poco probable tener 12 llegadas permitidas, también
es muy improbable que tengan nueve llegadas por minuto. Y una vez que empecemos a
moverte, ya sabes, comer o así las cosas empiezan a retomar un poco. Entonces mucha información que tenemos de un graham de historia y la varianza solo habla de lo extendido que es la forma de esos datos. ¿ De qué manera se difunde su conjunto de datos? ¿ Cómo se mide bien la varianza, por lo general
nos referimos a ella como Sigma al cuadrado y descubrirás por qué momentáneamente. Pero por ahora, solo sepan que la varianza es solo el promedio de las diferencias cuadradas con respecto a la media. Entonces, para calcular la varianza de un conjunto de datos, primero
descifras la media del mismo. Entonces digamos que tengo algunos datos. Podría representar cualquier cosa. Digamos Ah, máximo número de personas que estuvieron de pie en fila durante una hora determinada o algo que no
sé . Y la primera hora observé a una persona de pie en fila de cuatro de cinco y cuatro de ocho. De acuerdo, entonces el primer paso para computar la varianza es solo para encontrar la media el promedio de esos datos. Los sumo todos juntos, divididos por el número de puntos de datos. Y eso sale a 4.4. Es el promedio de personas paradas en línea Ahora el siguiente paso es encontrar
las diferencias con respecto a la media para cada punto de datos. Entonces sé que el medio es 4.4. Entonces para mis primeros datos 0.4 punto cuatro, y al uno, así que uno menos 4.4 es negativo 3.4 cuatro menos 4.4 es negativo. 0.4 y así sucesivamente y así sucesivamente. De acuerdo, así que termino con facilidad tanto los números positivos como los negativos que representan la varianza desde la media para cada punto de datos. OK, pero lo que quiero es un solo número que represente la varianza de todo este conjunto de datos. Entonces lo siguiente que voy a hacer, encontremos las diferencias cuadradas. Entonces sólo llegamos a pasar por cada una de esas diferencias crudas con respecto a las medias y
cuadradas . Esto es por un par de razones diferentes. En primer lugar,
quiero asegurarme de que las varianzas negativas tipo de tanto como las varianzas positivas, correcto. De lo contrario, se cancelarían el uno al otro, no estaría mal. También quiero darle más peso a los valores atípicos. Por lo que esto amplifica el efecto de cosas que son muy diferentes de la media a la vez que
conservan , asegurándose de que el aire negativo y positivo se comparara comparablemente Así que veamos lo que sucede ahí. Tan negativo 3.4 al cuadrado positivo, 11.6 negativo 0.4 al cuadrado, pero menor número de 0.16 porque eso está mucho más cerca de la media de 4.4 punto seis, también cerca de la media solo 60.36 Pero a medida que llegamos al valor atípicos positivo 3.6 centavos arriba siendo 12.96 bien, y para encontrar el valor real de las variantes, sólo
tomamos el promedio de todas esas diferencias al cuadrado de la media. Entonces sumamos todas estas varianzas cuadradas divididas por cinco el número de valores que tenemos , y terminamos con una varianza de 5.4 OK, eso es todo varianzas ahora. Por lo general, hablamos de desviación estándar más que variantes, y resulta que la desviación estándar es solo la raíz cuadrada de la varianza. Es sólo así de sencillo. Por lo que tuve una varianza de 5.4. El desvío estándar es 2.24 Así que ya ves por qué llamamos a Variant Sigma al cuadrado. Es porque la misma Sigma representa la desviación estándar. Entonces si tomo la raíz cuadrada de señal Square para conseguir Sigma que termina en este ejemplo para ser 2.24 Este es un graham de historia de los datos reales que estábamos viendo. Ahora vemos que el número cuatro su dos veces en nuestro conjunto de datos, y luego tuvimos 1115118 Ahora la desviación estándar se usa generalmente como una forma de pensar el cómo identificar los valores atípicos en su conjunto de datos. Entonces si digo si estoy dentro de una desviación estándar de la media de 4.4 que se considera una
especie de valor típico en una distribución normal. Pero se puede ver en este ejemplo los números uno y ocho en realidad se encuentran fuera de ese rango. Entonces si tomo 4.4 más o menos 2.24 sabes que terminamos por ahí y ahí y uno ocho ambos caen fuera de ese rango de una desviación estándar. Entonces podemos decir matemáticamente que uno de cada ocho o valores atípicos No tenemos que como Adivina un globo ocular lo. Ahora todavía hay una especie de juicio. Llámanos a lo que consideras un valor atípico en cuanto a cuántas desviaciones estándar, lo que generalmente puedes hablar de cuánto es un punto de datos atípicos por cuántas
desviaciones estándar de la media que es. Entonces eso es algo para lo que verás la desviación estándar utilizada en el mundo real, hay un poco nuevos deseos de desviación estándar en variantes. Y ahí es cuando estás hablando de varianza poblacional versus muestra. De acuerdo, sólo una pequeña diferencia menor. Entonces si estás trabajando con un conjunto completo de datos, ya
sabes, un conjunto completo de observaciones, entonces haces exactamente lo que te dije. Simplemente tomas el promedio de todas las varianzas cuadradas de la media y esas son tus variantes. Pero si estás tomando un muestreo de tus datos, ya
sabes, si estás tomando algún subconjunto de los datos solo para facilitar la computación, tienes que hacer algo un poco diferente. En lugar de dividir por el número de muestras que divide por el número de muestras menos una . De acuerdo, entonces veamos este ejemplo un ejemplo. Acabamos de tener la varianza poblacional es exactamente lo que hicimos. Tomamos la suma de las varianzas cuadradas en dividido por cinco, el número de puntos de datos que tuvimos que obtener 5.4 Pero la varianza de la muestra, que se estima por S al cuadrado, se divide por cuatro y menos uno. Entonces tomamos el número de puntos de datos que habíamos restado uno y obtuvimos la varianza de la muestra que sale a 6.3. Entonces de nuevo, si esto fuera algún tipo de muestra que tomamos de un conjunto de datos más grande, eso es lo que harías. Si es el conjunto de datos completo, divides con el número real, ¿de acuerdo? Y eso es una varianza de población y muestra demasiado extrema. En cuanto a por qué se mete en, como, cosas
realmente extrañas sobre la probabilidad de que probablemente no quieras pensar demasiado . Y si quieres expresar esto en términos de notación matemática de fantasía, trato de evitar la notación en este curso tanto como sea posible. Creo que los conceptos son más importantes, pero esto es lo suficientemente básico como para que lo veas una y otra vez. Población diversa suele designarse un sigma al cuadrado con desviación estándar Sigmund, y podríamos decir que es la suma de la de cada punto de datos X menos la media que
cuadraste . Esas son las variantes de cada muestra cuadrada sobre extremo. El número de puntos de datos y varianza de muestra de manera similar no es s cuadrado. Y esa es la suma de cada punto de datos menos el m medio del conjunto de muestras al cuadrado y menos uno. Entonces restas una del número de muestras que tienes, eso es todo lo que hay en ello. Entonces veamos algunos ejemplos reales y escribamos algún código python para que esto suceda. Escribamos aquí algún código y juguemos con alguna desviación estándar en las varianzas. Entonces si tiras hacia arriba thes no hizo las variantes Cuaderno Python. Archivo de variantes de desviación de Sarah. Sígueme aquí. Por favor hazlo, porque hay una actividad al final que quiero que pruebes. Entonces vamos a escuchar es igual que el ejemplo anterior. Vamos a utilizar Matt Plot Live para trazar un graham de historia de algunos datos
aleatorios normalmente distribuidos . Y vamos a llamar a esto lo estamos llamando ingresos Estaban diciendo que va a estar centrado alrededor de 100. Esperemos que esa sea una tarifa por hora o algo así. Y en anual o es alguna denominación extraña soportar desviación de 20 y 10,000
puntos de datos . Entonces sigamos adelante y generemos eso y trazarlo. Ahí lo tienes. Por lo que tenemos 10 mil puntos de datos en un centrado alrededor de 100 como se puede ver aquí. Entonces con una distribución normal con una desviación estándar de 20 por lo que esa es una medida de la propagación de estos datos, y bastante seguro, se
puede ver que la ocurrencia más común es alrededor de 100. Y a medida que nos alejamos cada vez más de eso, las cosas se vuelven cada vez menos probables. Y el punto de desviación estándar de 20 que especificamos es por ahí alrededor. Entonces puedes ver este tipo de punto en el que las cosas empiezan a caerse
bruscamente, ¿no? Entonces podemos decir que cosas más allá de esa desviación estándar, límite o inusual. Ahora volcado también hace increíblemente fácil competir la desviación estándar en varianza. Si desea computar la desviación estándar real de este conjunto de datos que generamos, basta con llamar a la función STD directamente en el conjunto de datos en sí. Entonces, ningún arbitraje cuando crea una lista, no
es solo una lista de python normal, en
realidad tiene algunas cosas extra pegadas a ella, por lo que en realidad puedes llamar a funciones como STD para la desviación estándar. Y podríamos hacer eso, y deberíamos conseguir un número bastante cercano al 20 porque eso es lo que especificamos. Cuando creamos nuestros datos aleatorios, queríamos una desviación estándar de 20. Seguro, 19.96 bastante cerca y la varianza es solo cuestión de llamar a dot var, que sale a bastante cerca de 400 que es 20 al cuadrado, ¿
verdad? Entonces el mundo tiene sentido. Sí, la desviación
estándar es sólo una raíz cuadrada de la varianza. O se podría decir que las varianzas una desviación estándar cuadrada al revés. Cierto, eso funciona Así que el mundo funciona de la manera que debería. Quiero que te sumerjas aquí y realmente juegues con él. Hazlo realmente así que prueba diferentes parámetros sobre generar esos datos normales. Recuerde, esta es una medida de la forma de la distribución de los datos. Entonces, ¿qué pasa si cambio ese punto central? No importa. ¿ Afecta realmente la forma? ¿ Lo probaste y lo averiguaste? Intenta jugar con la desviación estándar real allí que especificamos y ver qué impacto tiene eso en la forma del gráfico. Entonces si quiero una desviación estándar de 30 podría cambiar eso ahí. Y ya sabes, puedes ver cómo eso realmente afecta a las cosas o hagámoslo aún más dramático, como 50 Solo juega alrededor de eso empezando un poco más gordo ahí, cierto, así que jugador con valores diferentes solo consigue un sentir cómo funcionan estos valores. Esta es la única manera de conseguir realmente un sentido intuitivo de la desviación estándar, varianza Mesereau y sólo ejemplos diferentes y ver el efecto que tiene. Así que juega un poco alrededor de esto viendo la siguiente conferencia para que la desviación estándar en
variantes en la práctica te metió en las manos con algo de ello ahí. Por lo que espero que hayas jugado un poco alrededor de eso para familiarizarte con él. Conceptos muy importantes. Ya sabes, hablamos mucho de desviaciones estándar a lo largo del curso y a lo largo de tu carrera y ciencia de datos, así que asegúrate de que tienes eso bajo tu cinturón. Sigamos adelante.
14. Función de densidad de probabilidad; función de la masa de probabilidad: por lo que ya hemos visto algunos ejemplos de una función de distribución normal para algunos de los ejemplos de este curso. Ese es un ejemplo de una función de densidad de probabilidad, y hay otros tipos de funciones de densidad de probabilidad por ahí, así que vamos a sumergirnos y ver qué significa realmente y cuáles son algunos otros ejemplos de ellas. Hablemos de probabilidad, funciones de
densidad, y en realidad ya hemos usado esto en el curso. Simplemente no lo llamábamos así. Entonces formalicemos algunas de las cosas de las que hemos hablado. Por ejemplo, vimos la distribución normal algunas veces en nuestros ejemplos, y ese es un ejemplo de una función de densidad de probabilidad aquí es esa
curva de distribución normal . Entonces ya sabes, conceptualmente
es fácil tratar de pensar en esto como la probabilidad de que
ocurra un valor dado . Pero eso es un poco engañoso cuando estás hablando de datos continuos, verdad, porque hay un número infinito de puntos de datos posibles reales en un estado continuo de distribución, sabes que podría haber cero o 0.1 o 0.1 derecha, por lo que la probabilidad real de que ocurra un valor muy específico es muy, muy pequeña, infinita, incluso infinitamente pequeña. La función probablemente Desi realmente habla de la probabilidad de que
ocurra un rango determinado de valores . Entonces es lo que tienes que pensar al respecto. Entonces, por ejemplo, en una distribución normal entre la media y una desviación estándar de la media, hay una probabilidad de 34.1% de que resulte de que un valor caiga en ese rango, y se puede apretar esto o extenderlo como tanto como quieras. Averiguar los valores reales, pero esa es la forma de pensar en una probabilidad, densidad, función, rango de valores
perdonado. Te dice que puedes ver una forma de averiguar la probabilidad de que ocurra ese rango. De acuerdo, puedes ver aquí. Ya sabes, si te acercas a la media dentro de una desviación estándar, es muy probable que llegues ahí. Es decir, si suman 34 34 lo que sea que salga es la probabilidad de aterrizar dentro de una desviación
estándar de la media. Pero a medida que sales aquí entre dos y tres desviaciones estándar, ya
sabes, bajamos a sólo un poco más del 4% combinado con lo positivo y lo negativo y a medida que salgas más allá de tres desviaciones estándar y estamos mucho menos del 1% en realidad. Entonces, ¿esta es la forma de visualizar y hablar de las probabilidades de que
ocurra el punto de datos dado ? Entonces de nuevo, una función de distribución de probabilidad. Se ve la probabilidad de que un punto de datos caiga dentro de algún rango dado de un valor dado. Está bien. Y una función normal es sólo un ejemplo de una función de densidad de probabilidad. Mira un poco más en un momento. Ahora, cuando se trata de datos discretos, ese pequeño matiz sobre tener números infinitos de valores posibles desaparece bien, y a eso lo llamamos algo diferente. Entonces esa es una función de masa de probabilidad para tratar con datos discretos. Se puede hablar de la función de masa de probabilidad. Entonces, por ejemplo, se
puede trazar una densidad de probabilidad, probabilidad
normal, función de
densidad de datos continuos en esta curva negra. Pero si tuviéramos que cuantificar eso en un conjunto de datos discreto como lo hacemos con el Ram de Historia , podemos decir que el número tres ocurre algún número establecido de veces, realmente, y en realidad se puede decir que el número tres tiene un poco más del 30% de probabilidad de ocurrir, Así que probablemente la función de masa es la forma en que visualizamos la probabilidad de que
ocurran datos discretos , y se parece mucho a una historia Graham, porque básicamente es un ram de historia. De acuerdo, entonces la diferencia terminológica probablemente la función de densidad, una curva sólida que describe la probabilidad de que un rango de valores ocurra con
datos continuos . Probablemente la función de masa es las probabilidades de valores discretos dados que ocurren en un
conjunto de datos . De acuerdo, así que veamos algunos ejemplos reales, y tendrá aún más sentido que vayamos a algún lugar profundidad a continuación.
15. Distribuciones de datos comunes: Veamos algunos ejemplos reales de funciones de distribución de probabilidad y
distribuciones de datos en general, y tipo de envolver la cabeza un poco más sobre las distribuciones de datos y cómo visualizarlas y usarlas en python. Así que adelante y abre las distribuciones I Archivo de cuaderno Python a partir de los materiales del curso , y puedes seguir conmigo aquí si quieres. Empecemos con un ejemplo realmente sencillo. Entonces ah, distribución
uniforme sólo significa que hay una probabilidad plana, constante de que un valor ocurra dentro de un rango dado para que podamos usar usando la función uniforme de punto aleatorio I. Y esta convocatoria dice, quiero un conjunto aleatorio uniformemente distribuido de valores que oscila entre 10 negativo y 10
positivo y yo 100 mil de ellos. Y si entonces creo un hist, un gramo de esos valores se puede ver que se ve así. Por lo que hay más o menos una probabilidad igual de que algún valor dado o rango de valores ocurra dentro de esos datos. Entonces, a diferencia de la distribución normal, donde vimos una concentración de valores cerca de la distribución uniforme ah media como igual probabilidad a través de cualquier valor dado dentro del rango que definas. Entonces, ¿cómo sería la función de distribución de probabilidad de esto? Si bien esperaría ver básicamente cero fuera del rango de negativo 10 o más allá de 10. Pero cuando yo entre el negativo 10 y 10 vería una línea plana porque hay una
probabilidad constante de que se produzca alguno de esos rangos de valores. De acuerdo, entonces una distribución uniforme, se vería una línea plana en la función de distribución de probabilidad porque
básicamente hay una probabilidad constante. Cada valor, cada rango de valores tiene la misma probabilidad de aparecer como cualquier otro valor. De acuerdo, Y eso sucede a veces. Ahora hemos visto funciones normales o también conocidas como galaxia y distribución en el pasado, y ya en este curso, en realidad
se pueden visualizar las de Python. Hay una función pdf en la función de paquete de normas de punto de CYP idot stats. Entonces aquí, en este ejemplo, sólo
pasemos por lo que está pasando aquí. Estamos creando una lista de valores X para aplaudir ese rango entre tres negativos y tres
positivos con un incremento de 30.1 entre ellos. De acuerdo, entonces esos airen los valores X en la gráfica y que iban a trazar el eje X y el
eje Y va a ser la función normal norma punto pdf función de densidad de probabilidad para una distribución
normal en esos valores X. Y terminamos con esto. Por lo que la función pdf con una distribución normal se ve igual que en nuestra diapositiva anterior . Esa es una distribución normal para los números dados que proporcionamos donde cero
representará la media y estos números son desviaciones estándar ahora para generar realmente números
aleatorios con distribución normal. Ya lo hemos hecho algunas veces, pero así como refresco de nuevo, si usas el paquete num pastel, tiene una función normal de punto aleatorio. Y el primer parámetro mu representa la media que se quiere centrar. El dato alrededor de Sigma es la desviación estándar de esos datos, que es básicamente la propagación de los mismos. Y luego especificamos el número de puntos de datos que queremos usando una función de
distribución de probabilidad normal . De acuerdo, así que esa es la forma de usar una función de distribución de probabilidad en este caso, la función de distribución normal. Para generar un conjunto de datos aleatorios, condenamos trama que sólo muestra un historial. Graham rompió en 50 cubos y mostrarlo, y eso es lo que terminamos con él. Sí se parece más o menos a una distribución normal, pero como hay un elemento aleatorio, no
va a ser una curva perfecta. Ya sabes, todos
estamos hablando de probabilidades o algunas probabilidades de que las cosas no sean del todo lo que deberían ser. Otra función de distribución, ve con bastante frecuencia es la función de distribución de probabilidad exponencial donde las cosas
se caen de manera exponencial. Entonces cuando hablas de caída exponencial, espera ver una curva como esta donde es muy probable que algo suceda,ya
sabes, ya
sabes, cerca de cero. Pero entonces, medida que te alejas de
él, se cae muy rápido. Entonces hay muchas cosas en la naturaleza que se comportan de esta manera. Y para hacer eso en Python, igual que teníamos una función en las estadísticas del CYP I para un punto de norma pdf. También tenemos un ex pond dot pdf para una función de distribución de probabilidad exponencial, y podríamos hacer la misma sintaxis que hicimos para la distribución normal con una
distribución exponencial aquí. Entonces de nuevo, solo
creamos nuestros valores X usando el pastel num, una función de rango para crear un montón de valores entre cero y 10 con un tamaño de paso de 100.1 Y luego trazamos esos valles X contra el eje Y, que se define como la función exponencial. Pdf de X y parece que se caiga exponencial. También visualizamos probablemente las funciones de masa de probabilidad. Se llama el por nadie probabilidad binomial, función de
masa y otra vez, mismos impuestos pecado antes. Entonces en lugar de ex Pond o norma, simplemente
usamos por gnomo y nuevamente una función de masa de probabilidad recordatorio se ocupa de
datos discretos , y en este caso, estamos tratando con datos discretos. Hemos estado todo el tiempo lanzamientos cómo piensas al respecto. Estamos creando algunos discretos valores X entre cero y 10 a un espaciado de 100.1 Y estamos diciendo que quiero trazar una función de masa de probabilidad binomial usando esos datos y con la función de masa de
probabilidad, en realidad
puedo especificar el forma de esos datos utilizando para dar forma a parámetros y NP. En este caso, son 10 y 0.5, y si quieres entrar y jugar alrededor de diferentes valores para ver qué efectos tiene, esa es una buena manera de obtener un sentido intuitivo de cómo funcionan esos parámetros de forma en el función de masa de probabilidad. Por último, la otra función de distribución de la que podría escuchar es una función de masa de probabilidad de Poisson , y esto tiene una aplicación muy específica. Se parece mucho a una distribución normal, pero es un poco diferente. Aquí la idea es si tienes alguna información sobre el promedio de cosas que suceden en algún periodo de tiempo dado. De acuerdo, esto podría darte una forma de predecir las probabilidades de obtener algún otro valor en su lugar en un día futuro
determinado. De acuerdo, así que como ejemplo, digamos, tener un sitio web, y en promedio, obtienes 500 visitantes por día. Puedo usar la función de masa de probabilidad de Pawson para estimar la probabilidad de ver algún otro valor en un día específico. Entonces digamos que recibo un promedio de 500 visitas diarias. ¿ Cuáles son las probabilidades de ver 550 visitantes en un día determinado? Eso es lo que puede darte una función de masa de probabilidad de Prasong. Entonces en este ejemplo, estoy diciendo mis promedios 500 ustedes Voy a montar algunos X valores del dedo del pie. Mira entre 406 100 con un espaciado de 1000.5. Y voy a trazar eso usando el fósil en función de masa de probabilidad. Y puedo usar esa gráfica para buscar las probabilidades de obtener algún valor específico. Eso no son 500 asumiendo una distribución normal. Entonces 5 50 resulta,
sale a alrededor de 0.2 ¿La probabilidad ahí o 0.2%? Muy interesante. Muy bien, así que esas son algunas distribuciones de datos comunes con las que podrías encontrarte en el mundo real. Quiz pop. Asegúrate de estar prestando atención. Cuál es la función de distribución de probabilidad equivalente al usar datos discretos en lugar de continuos. Entonces recuerda que usamos una función de distribución de probabilidad con datos continuos. Pero cuando estamos tratando con datos discretos en su lugar, usamos pista. Está justo en la pantalla ahora mismo. Una función de masa de probabilidad. De acuerdo, sigamos adelante. Entonces eso es probabilidad. Densidad, funciones y probabilidad. Las funciones de masa básicamente alejadas del dedo del pie visualizan y miden la probabilidad real de que un
rango dado de valores ocurra en un conjunto de datos. Información muy importante en algo muy importante a entender,
seguir usando ese concepto una y otra vez. Así que asegúrate de volver a ver este video si es necesario. Eres bueno. Está bien, sigamos adelante
16. Percentiles y momentos: siguiente hablaremos de percentiles y momentos percentiles. Se oye de eso en las noticias todo el tiempo. Personas que están en el 1% superior de los ingresos, eso es un percentil. Eso lo explicaremos y tendremos algunos ejemplos ahí, y hablaremos de momentos. Concepto matemático muy elegante. Pero resulta que es muy sencillo de entender conceptualmente. Entonces, sumémonos y empecemos. Hablemos de percentiles y momentos. Pareja de conceptos y estadísticas bastante básicos. Pero de nuevo, estamos trabajando nuestro camino hasta las cosas duras. Por lo tanto, ten presente conmigo mientras pasamos por alguna de esta revisión. Tan percentiles. Básicamente, si te imaginas que si ordenaras todos los datos en el conjunto de datos, un percentil dado es el punto en el que ese porcentaje de los datos es menor que el punto en el que
estás. Entonces un ejemplo común del que se ve mucho hablado es la distribución del ingreso. Cuando hablamos del percentil 99 o del uno por ciento, imagínate que fueras a tomar todos los ingresos de todos en el país en este caso, Estados Unidos y ordenarlos por ingresos. El percentil 99 sería la cantidad de ingresos en la que el 99% del resto del país estaba haciendo menos que eso. OK, entonces es una manera muy fácil del dedo del pie. Comprenderlo. Se trata de algunos datos reales aquí. Entonces, por ejemplo, en el percentil 99, podemos decir que el 99% de los puntos de datos aquí, que representan a las personas en América, ganan menos de 506.000 dólares al año, y el 1% hacen más que eso. Por el contrario, Así que si eres un uno por centro, estás ganando más de 500.000 dólares al año aproximadamente. Enhorabuena. Pero si eres una persona mediana más típica, el percentil 50 define el punto en el que la mitad de la gente está haciendo. Menos de la mitad están haciendo más, ¿
cuál es la definición de mediana, no? Por lo que el percentil 50 mismo es mediana, y eso estaría en 42 mil dólares dado este conjunto de datos. Entonces si estás haciendo 42 mil dólares al año en la U. S, estás haciendo exactamente la cantidad mediana de ingresos para el país, y puedes ver que conoces el problema de la distribución del ingreso. Escuchar las cosas tienden a estar muy concentradas hacia el extremo alto, que es Ah, problema político
muy grande ahora mismo en el país, así que veremos qué pasa con eso. Pero eso está más allá del alcance de este curso. Entonces eso son percentiles en pocas palabras. También se utilizan percentiles en el contexto de hablar de los azulejos de cuartos en una distribución. Entonces si estás mirando,
digamos, digamos, una distribución normal aquí, gente habla de azulejos de corte y cuartil. Uno y cuartil tres en el medio son sólo los puntos que contienen juntos el 50% de los datos, por lo que 25% están de este lado de la mediana en 25% de este lado de la mediana. El encuentro en este ejemplo resulta estar cerca de la media Entonces, por ejemplo, el rango inter cuartil cuando hablamos de una distribución es el área en medio de la distribución que contiene el 50% de los valores. OK, ahora, este es un ejemplo de lo que llamamos diagrama de caja y bigote. Entonces no te preocupes aún por estas cosas de aquí en los bordes. Eso se pone un poco confuso, y lo cubriremos más adelante, a
pesar de que se llama cuartil cuando un juicio judicial. Tres realmente no representan el 25% de los datos. Pero no te cuelgues de eso todavía. Enfócate en el punto de que las teselas de cuarto en el medio representan el 25% de la
distribución de datos , y esas tienden a estar en el medio. Echemos un vistazo a algunos ejemplos más usando python y tipo de ponerlo en nuestras manos y conceptualizar Es un poco más. Muy bien, vamos a ensuciarnos las manos con percentiles. Adelante y abre los percentiles como archivo de cuaderno Python. Si quieres seguir una y otra vez, te animo a hacerlo porque quería jugar un poco más tarde con esto. Entonces comencemos generando algunos datos normales distribuidos aleatoriamente o datos aleatorios normalmente distribuidos. Más bien y en este ejemplo, donde vamos a hacer es generar algunos datos centrados en torno a cero con una media de cero con una desviación estándar de 00.5. Y voy a hacer 10 mil puntos de datos con esa distribución, y vamos a trazar un graham de historia y ver que se nos ocurre y se ve un poco algo así, muy parecido a una distribución normal. Pero debido a que hay un componente aleatorio ya sabes, tenemos mucho Mentiroso. Escuchar cosas. Punta de aire un poco a la derecha aquí. Un poquito. Un poco de variación aleatoria ahí para hacer las cosas interesantes. Ahora, para calcular los valores del percentil de esta distribución, pastel
Numb proporciona una función percentil muy útil que hará eso por ti. Por lo que creamos nuestra lista de vocales de datos aquí usando el punto de arbitraje aleatorio, no normal. Y podría simplemente llamar a np dot percentil para descifrar el valor del percentil 50 en este ejemplo que resulta ser Plano cinco. Entonces recuerda, el percentil 50 es sólo otro nombre de la mediana. Y resulta que la mediana está muy cerca de cero en estos datos y se puede ver que estamos inclinados un poco a la derecha, así que eso no es demasiado sorprendente. Yo quiero computar el percentil 90. Eso me da el punto en el que el 90% de los datos es menor que este valor dado. Entonces el percentil 90 del estado, resulta ser 0.65 Así que está por aquí, y básicamente a ese 0.90% de los datos es menor que eso, así que creeré que 10% es mayor. El 90% es menor que justo ahí en el valor del percentil 20. Eso me daría el punto en el que el 20% de los valores son menores a ese número que
se me ocurre. Por lo que el punto del percentil 20 resulta ser negativo 0.4 aproximadamente y otra vez, creo eso. Por lo que está diciendo que el 20% de los datos se encuentra a la izquierda del negativo 200.4, y por el contrario, 80% es mayor. Entonces si quieres tener una idea de dónde están esos puntos de ruptura en el conjunto de datos, la función percentil es una forma fácil de calcularlos. Si se tratara de un conjunto de datos que representara la distribución del ingreso, como en nuestras diapositivas , ya
sabes, podríamos llamar a MP Top percentil values common 99 averiguar cuál
es el percentil 99. Para que pudieras averiguar quiénes son esos uno por ciento de los que la gente sigue hablando realmente. Y si eres uno de ellos, bien, ahora manchate las manos. Yo quiero que juegues alrededor de estos datos, así que este es un I Python abierto por una razón. Es para que puedas meterte con él y meterte con el código intenta, ya
sabes, diferente. Uh, prueba diferentes valores de desviación estándar. Vea qué efecto tiene en la forma de los datos y dónde terminan esos por ciento casa aplicando . Por ejemplo, intente usar tamaños de conjuntos de datos más pequeños y un poco más de variación aleatoria en cosa. Es solo ponerse cómodo que jueguen con él y, ya
sabes, encontrar que en realidad puedes hacer estas cosas y escribir algún co real que funcione. Así que pasa unos minutos, Ah, jugando con esa política de hit mientras haces eso y cuando continúas volverá al concepto de momentos de una distribución. A continuación, hablemos de momentos. Los momentos son una frase matemática de fantasía, y en realidad no necesitas un grado de matemáticas para entenderlo, aunque intuitivamente, es mucho más simple de lo que suena. Es uno de esos ejemplos donde a la gente en estadística y minería de datos en el aprendizaje automático y la ciencia de datos les gusta usar términos de gran fantasía para hacerse sonar realmente inteligentes. Pero los conceptos son en realidad muy fáciles de entender, y ese es el tema que vas a escuchar, puedes y otra vez en este curso. Entonces hablemos de momentos. Básicamente, son formas de medir la forma de una distribución de datos de una función probablemente de densidad de cualquier cosa, realidad. Y matemáticamente, tenemos alguna notación matemática realmente elegante aquí de cómo se definen. Y, ya
sabes, si conoces el cálculo, en realidad no
es tan complicado de un concepto. Estamos tomando la diferencia entre cada valor de alguna carrera de valor a la 10ª potencia, donde N es el número de momento e integrándose a través de toda la función desde el
infinito negativo hasta el infinito. Pero intuitivamente, es mucho más fácil que el cálculo listo. Aquí vamos. El primer momento funciona para ser solo el medio de los datos que estás viendo. Eso es todo. El primer momento es la carne, el promedio es así de simple. Segundo momento es la varianza. Eso es todo. El segundo momento de un conjunto de datos es lo mismo que el valor diverso, y, ya
sabes, podría
parecer un poco espeluznante que estas cosas se caigan de las matemáticas de forma natural . Pero piénsalo. El diverso se basa realmente en el cuadrado de las diferencias
con respecto a la media así que llegar a una forma matemática de decir que muy insisten relacionado con la media no es realmente mucho de un estiramiento, verdad? Es sólo así de sencillo. Ahora, cuando llegamos al tercer y cuarto momento, las cosas se ponen un poco más complicadas, pero siguen siendo conceptos que son fáciles de entender. Por lo que el tercer momento se llama sesgo, y básicamente es una medida de lo desigual que está una distribución. Por lo que se puede ver en estos dos ejemplos. Si tengo una cola más larga a la izquierda, sabes que es un sesgo negativo, y tengo una cola más larga a la derecha. Eso es un sesgo positivo, así que puedes ver aquí con la forma de una distribución normal se vería como sin sesgo. Si estiro eso de un lado, entonces termino con el sesgo del otro lado de sesgo positivo en ese ejemplo. De acuerdo, así que eso es todo sesgo es. Básicamente es estirar la cola de un lado u otro, y es una medida de lo mal que está, lo sesgada que está una distribución. El cuarto momento se llama Curto Sis. Vaya, esa es una palabra elegante. Todo lo que realmente es es lo grueso que es el cuento de lo agudo que es el pico. Entonces de nuevo, es una medida de la forma de la distribución de datos Y aquí hay un ejemplo aquí, y se puede ver que los valores de pico más altos tienen un valor de anfitriona de Kurt más alto. Por lo que la curva roja tiene una queratosis más alta de lo que sabes. Este es ese negro. Ni siquiera puedo decir negruzco orgullosa curva aquí en la parte inferior. Entonces es una diferencia muy sutil, pero una diferencia en cuanto menos mide básicamente qué tan picados son tus datos de nuevo. Revisión. Primer momento significa variantes de segundo momento. Tercer momento sesgada la queratosis de cuarto momento ya saben qué medio y varianza fue nuestro esquí lo mal que están los datos, lo estirada que podría estar uno de los cuentos y la queratosis fuera Peaked house empapado juntos. La demostración es así que juguemos alrededor en Python y en realidad compute estos momentos y veamos cómo haces eso, Ok, para jugar alrededor, Vamos adelante y abrimos los momentos I Python archivo cuaderno y puedes seguir conmigo aquí así que es de nuevo crear esa misma distribución normal de datos aleatorios, y de nuevo vamos a hacer que se centre alrededor de cero con una desviación estándar de 0.5 y 10,000 puntos de
datos y trazar eso de nuevo, un conjunto de datos generado aleatoriamente con una distribución normal alrededor de cero. Entonces para encontrar la media y la varianza lo hemos hecho antes, tarta
entumecida solo te da una función media y barra para calcular eso. Entonces podemos simplemente llamar y p punto significan para encontrar el primer momento, que es sólo una palabra de fantasía para el medio. Y eso funciona para estar muy cerca de cero, al igual que esperaríamos para un dato normalmente distribuido, distribuido centrado en torno a cero. Por lo que el mundo tiene sentido hasta ahora. El segundo momento, sólo otro nombre para la varianza. Y eso funciona para ser alrededor de 0.25 Y otra vez eso funciona con un buen cheque de cordura. Recuerda que la desviación estándar es la raíz cuadrada de la varianza. Y si tomas la raíz cuadrada de 0.25 sale 2.5, que es la desviación estándar que especificamos mientras creamos el estado. Entonces otra vez, eso chequea también por un momento, sq. Y para hacer eso, vamos a necesitar usar el paquete CYP I en lugar de non pastel. Pero eso de nuevo está incorporado en cualquier paquete de computación científica como y pensado canopy o anaconda importaciones. Escriba las estadísticas de iDoT como SP y luego solo podríamos decir sp dot sesgo en vales y eso nos dará un valor sesgado. Y como esto se centra alrededor de cero, debería ser casi un sesgo cero. Resulta de variación aleatoria sí sesga un poco a la izquierda. Y en realidad eso sí jive con forma que estamos viendo aquí. Parece que sí lo tiramos un poco negativo. Cuarta mujer es Curto Sys, que describe la forma de la cola y nuevamente para una distribución normal que debería ser aproximadamente cero. Y de hecho lo es. Entonces ya sabes, la forma del sastre, lo agudo que es el pico si lo empujas. Ya sabes, tiene ambos efectos hasta ahora para machacar la cola hacia abajo. Es como que empuja hacia arriba ese pico para ser más señalador. Y de igual manera si lo empujara hacia abajo esa distribución e imaginara ese tipo de esparcimiento un poco
las cosas, haciéndolo un poco más gordo y el pico de la misma un poco más bajo. Entonces eso es lo que significa queratosis. Y en este ejemplo, queratosis está cerca de cero porque es sólo una distribución llana vieja, normal. Entonces Si quieres jugar alrededor de eso, adelante y otra vez intenta modificar la distribución, haz que se centre alrededor de algo además de cero y ve si eso realmente cambia algo, ¿no? Bueno, realmente no debería porque todas estas son medidas de la forma de la distribución, y en realidad no dice mucho sobre dónde está exactamente esa distribución. Es una medida de la forma. De eso se trata todos los momentos. Así que adelante y juega alrededor de eso. Pruebe diferentes valores de centro, pruebe diferentes valores de desviación de san y vea qué efecto tiene en estos valores y no lo
cambia todo. Por supuesto, esperarías que cosas como ellas significan que cambien porque estás cambiando el valor medio. Pero varianza que tal vez no jugar alrededor, averíguelo bien, eso son momentos. Sigamos adelante. Y ahí tienes percentiles y momentos percentiles. Momentos conceptuales bastante simples. Suena duro, pero en realidad es bastante fácil entender cómo hacerlo. Y es fácil y python a. Entonces tienes eso debajo de tu cinturón. Sigamos adelante
17. Un curso de velocidad de matplotlib: para que sepas que tu cita es tan buena como puedes presentarla a otras personas, ¿
De verdad? Entonces hablemos de trazar y graficar tus datos y cómo presentarte a los demás y hacer que tus gráficos se vean bonitos estaban en Introduce Matt Plot Lib, que es una biblioteca que puedes usar en python para hacer bonitas gráficas, y te voy a mostrar algunas trucos sobre cómo hacerlos tan bonitos como puedas. Vayamos ahí. Vamos a divertirnos un poco con los gráficos. Sabes que siempre es bueno hacer fotos bonitas de tu trabajo, y esto te dará algunas herramientas más en tu cofre de herramientas para visualizar dos
tipos diferentes de datos, usar diferentes tipos de manualidades y hacer que se vea bonita. Ya sabes, estos diferentes colores, diferentes estilos de línea, diferentes ejes, cosas así. Entonces sabes que no solo es importante usar gráficos y visualización de datos para tratar de encontrar patrones
interesantes en tus datos, sino que también es interesante presentar bien tus hallazgos a un público no técnico. Entonces vamos a sumergirnos en Matt plot lib. Adelante y abre el mat plot lib I cuaderno Python y puedes jugar alrededor de estas cosas conmigo. Empezaremos destruyendo un simple gráfico de líneas. Entonces en este ejemplo, voy a importar Matt Plot vivió hasta parcela alta como plantación y sólo nos referiremos a ella como plt. A partir de ahora en este cuaderno y lo que voy a hacer use numb pie dot a dispuestas para crear un eje X lleno de valores entre el negativo tres y tres y argumentos de 30.1 Y voy a usar pi parcelas Función de trazado para trazar X y la función Y será norma dot pdf de x. Así que voy a crear una función de densidad de probabilidad con una distribución normal basada en los valores
X. Y estoy usando el paquete de estadísticas del sitio pi para hacer eso. Entonces atándolo de nuevo a nuestra conferencia anterior sobre funciones de densidad de probabilidad aquí estamos trazando una función de densidad de probabilidad normal usando ese labio de trama. Por lo que acabamos de llamar al método de parcela de tarta para configurar nuestra parcela. Y luego lo mostramos usando plot dot show y cuando ejecutamos eso, eso es lo que obtenemos. Bonita gráfica con todo el formato por defecto. Digamos que quiero trazar más de una cosa a la vez para que en realidad pueda llamar a trama varias veces antes de llamar mostró realmente agregar más de una función a su gráfica. Entonces en este ejemplo, estoy llamando a mi función original de solo una distribución normal. Pero voy a ser una especie de renderizar otra distribución normal aquí también, con una media alrededor de un punto. Ah, en una desviación estándar de 00.5. Y los voy a mostrar juntos para que veas cómo se comparan entre sí y puedes ver por defecto. Matt. Plot live elige diferentes colores para cada gráfico automáticamente para ti, lo cual es muy bonito y práctico de la misma. Ahí lo tienes. Si quiero decirle esto a un archivo, ya
sabes, quizá quiera incluirlo en un documento o algo así. Puedo hacer algo como esto en lugar de solo llamar a plot got show. Puedo llamar plot got, digamos fig con un camino a donde quiero guardar este archivo y en qué formato quería. Entonces en este ejemplo, tengo la misma trama configurada en lugar de mostrar. Estoy llamando a seguro grande a este camino y querrás cambiarlo a un camino real que existe en tu máquina. Si lo estás siguiendo, probablemente no tengas la carpeta franca de un usuario en tu sistema. Y recuerda que si estás en Lennox o Mac Os en lugar de una barra invertida, vas a usar barras diagonales y no vas a tener una letra de unidad. Entonces con todos estos cuadernos python, siempre que veas un camino como este, asegúrate de cambiarlo a una ruta real que funcione en tu sistema. De acuerdo, pero aquí estoy en Windows, y sí tengo las carpetas francas de los usuarios para que pueda seguir adelante y ejecutar eso. Y si reviso mi sistema de archivos bajo usuarios, Frank. Claro, tengo un archivo PNG de mi parcela. Puedo abrirme y mirarlo, y puedo usar eso en el documento que quiera. Tan bastante cool. Está bien, sigamos adelante. Digamos que no me gustan las opciones por defecto de los ejes de este valor, como si lo estuviera ajustando automáticamente al conjunto más apretado de valores de acceso que confinó, cual suele ser algo bueno de hacer. Pero a veces quieres cosas a escala absoluta, ¿verdad? Entonces en este ejemplo, estoy estableciendo el límite X usando primero obtengo los ejes usando ejes Plata. Yo quiero tener estos ejes objetos. Yo los puedo ajustar. Por lo que llamando a set Excelente. Puedo establecer el rango X de 55 negativo y establecer mientras en mi set su rango Y de 0 a 1. Y se puede ver que aquí abajo Mi ex valora el aire que va desde la noche menos 5 a 5 y por qué
va de 0 a 1. Y también puedo tener un control explícito sobre dónde están estas marcas. Entonces digo que quiero el x tex a Viet menos cinco en sus cuatro minas, tres etcétera. Y por qué las garrapatas de 0 a 1 en incrementos de 10.1. Ahora, podría usar la función de rango para hacer eso de manera más compacta. Pero el punto es que tienes un control explícito sobre dónde suceden exactamente esas marcas y puedes saltarte algunas. Podrás tenerlos en los incrementos que quieras o en la distribución que quieras. Más allá de
eso, es lo mismo. Una vez que he ajustado mis ejes, solo llamo a plot con las funciones que quiero plot y call show para mostrarlo. Y bastante seguro, ahí tienes el resultado. ¿ Y si quiero líneas de cuadrícula? Bueno, misma idea. Todo lo que hago es llamar cuadrícula de punto en los ejes que me devuelven de los ejes de Pipe Lott DOD. Y al hacer eso, obtengo estas lindas líneas de cuadrícula, y eso hace un poco más fácil ver dónde está un punto específico, aunque abarrota las cosas un poco, Así que un poco de una elección estilística ahí. ¿ Y si quiero jugar juegos con los tipos y colores de león? Tú también podrías hacer
eso . Entonces ven aquí que en realidad es un parámetro extra en la función de trama, Reckon cadena transitable que describe el estilo de la línea. Y en este primer ejemplo, lo que esto indica es que quiero una línea azul con una línea sólida. Eso es lo que representa la B. Azul en el Dash significa una línea sólida, y para mi segunda función, voy a trazar en rojo. Eso es lo que significa la R y el colon significa que voy a tramar con pequeños hashes verticales todo el camino hacia arriba. Corro que puedes ver eso es lo que hace, y puedes cambiar,
uh, uh, diferentes tipos de estilos de línea ahí. Además, puedes hacer una doble diagonal o un doble guión en lugar, y eso te da esta línea discontinua es un estilo de línea como en ah, dash dot y puedes conseguir algo que se vea así. Entonces, ¿cuáles son las diferentes opciones ahí? Podría hacerlo verde con horror con barras verticales. Ahí vas. Así que diviértete un poco con eso. Si lo deseas, experimenta con diferentes valores y puedes obtener diferentes estilos de línea. Algo que harás más a menudo es etiquetar tus ejes. Sabes que nunca quieres presentar datos en un vacío. Definitivamente quieres decirle a la gente lo que representa. Y para hacer eso puedes usar la etiqueta X y por qué las funciones de etiqueta en la parcela de tarta para realmente poner etiquetas en tus ejes. Entonces voy a etiquetar el eje X Grable's y el Wild Label Probabilidad, y también puedes agregar una leyenda y establecer aquí. Normalmente esto sería lo mismo. Pero sólo para demostrar que decía de forma independiente, estoy sentada aquí una leyenda, y tú pasas básicamente una lista de lo que quieres nombrar a cada gráfica. Por lo que mi primera gráfica se va a llamar soplones. segundo graf se va a llamar Jacks y el parámetro look aquí indica en
qué ubicación lo querías. Por lo que representa la inferior la esquina inferior derecha. Entonces sigamos adelante y corremos eso, y se puede ver que estoy arando la probabilidad de Grable versus para ambos discursos y la
pequeña referencia del Dr Seuss de Jack para ti ahí. Entonces así es como dijiste hachas, etiquetas y leyendas. Un pequeño ejemplo divertido aquí si estás familiarizado con el cómic Web X, K C D. Y es un poco de un huevo de Pascua en el bucle de la trama de la estera, donde en realidad puedes trazar cosas al estilo XK CD, y puedes hacer eso al Parcela de colonia X K C D. ¿Qué tipo de pone Matt parcela en vivo en modo X K C D. Y después de que hagas eso, las cosas empezarán a lucir con, ya
sabes, como este estilo con una especie de fuente de cómic y líneas ardientes automáticamente. Y este pequeño ejemplo simple muestra una gráfica divertida aquí donde estamos trazando tu salud versus tiempo, donde tu salud toma un fuerte descenso una vez que te das cuenta de que podrías cocinar tocino siempre
que quieras . Y todo lo que estamos haciendo ahí es usar este método x K C D para entrar en ese modo. Un poco de pitón interesante aquí y en realidad cómo estamos
juntando este oficio . Entonces estamos empezando por hacer una línea de datos que no es más que el valor uno a través de 100 puntos de
datos. Y luego usamos la vieja pitón. Vamos a rebanar operador para tomar todo después del valor de 70 y restamos de
esa sub lista de 30 ítems, el rango de cero a 30. Entonces eso tiene el efecto de restar un valor más grande linealmente a medida que se llega más allá de los 70 lo que resulta en que mentir se dirige hacia abajo a cero más allá del 00.70. Entonces un pequeño ejemplo. Ahí. Alguna lista de python rebanando en acción ahí en un poco de uso creativo de la función de rango A para modificar tus datos. Ahora volviendo al mundo real, podemos quitar el modo XK CD diciendo los valores predeterminados de RC en esa trama en vivo, y podemos volver a la carga normal aquí. Si quieres un gráfico circular, todo lo que tienes que hacer es llamar a plot dot pie y darle una matriz de tus valores, colores, etiquetas y si quieres o no artículos explotados. Y si es así, por cuánto Así puedes ver aquí estoy creando un gráfico circular con estos valores 12 55 para 32 14 . Voy a asignar colores explícitos a cada uno de esos valores etiquetas explosivas a cada uno de esos valores. Voy a explotar el segmento ruso del pastel en un 20% y voy a darle a esta trama un título llamado Ubicaciones Estudiantiles y mostrarlo Eso es todo lo que hay para ello. Fuimos a un gráfico de barras también muy simple, una
especie de idea similar al gráfico circular. Usted dio una matriz de valores y una matriz de colores, y usted simplemente traza sus datos. Entonces le estoy diciendo que trazar desde el rango de 0 a 5, usando estos valores y en esta matriz y usando su lista explícita de colores. Adelante y demuéstrale eso. Y ahí tienes tu gráfico de barras y una trama de dispersión. Esto es algo que veremos con bastante frecuencia en este curso. Entonces digamos que tienes un par de atributos diferentes. Se quiere una trama para el mismo conjunto de personas o cosas. Por ejemplo, estaban aplaudiendo edades contra ingresos o algo por cada persona alcanzada punto representa a una persona, y estos ejes representan diferentes atributos de esas personas. El modo en que lo haces con una gráfica de dispersión es que llamas a mi gráfica de tarta con scatter usando los dos ejes que quieres definir esos dos atributos que contienen datos que quieres una gráfica contra la otra. Entonces digamos, tener una distribución aleatoria en X e Y, y los dispersé en una trama de dispersión, y lo muestro Eso es lo que parece bastante guay. Por lo que se puede ver este tipo de concentración en el centro aquí por la
distribución normal que se está utilizando en ambos ejes. Pero ya que es aleatorio, pero no hay una correlación real entre esos dos. Por último, nos recordaremos cómo funciona un gramo silbido. Ya hemos visto esto muchas veces en el curso, pero si solo llamas,
por ejemplo, por ejemplo, la distribución normal se centraba en 27,000 con una desviación estándar de 15,000 con 10,000 puntos de
datos, Solo puedo llamar a parcelas de tarta, siseó una función de graham silbido, y tú especificas los datos de entrada y el número de cubos en los que quieres agrupar las cosas en tu historia, Graham en este show de llamadas, y el resto es magia. Por último, tramas de
caja y bigote. Entonces recuerda la conferencia anterior, y hablamos de percentiles tocó esto un poco más. Con una caja y parcela de bigote. El cuadro representa las fichas al coito donde reside el 50% de tus datos, y, contrario, otro 25% reside a ambos lados de esa caja. Pero la línea hija y los bigotes representan el rango de los datos a excepción de los valores atípicos. Por lo que definimos los valores atípicos en una parcela de caja y parte de bigote como cualquier cosa más allá de 1.5 veces el inter cuartil arreglar o el tamaño de esta caja. Entonces tomamos el tamaño de esa caja veces 1.5, y hasta ese punto,
eso es lo que llamamos a estas fichas de núcleo externo. Pero cualquier cosa fuera de eso se considera un valor atípico, y eso es lo que aquí representan estas líneas. Ahí es donde nosotros o definiendo valores atípicos basados en nuestra definición con la trama de caja y bigote . Ahora, solo para darles un ejemplo aquí hemos creado algún conjunto de datos falsos donde tenemos una distribución uniforme ,
aleatoria de datos, , y luego agregamos unos atípicos en el extremo alto y unos atípicos negativos nos bien Y entonces podemos capitanear ocho esas listas todas juntas y crear un único conjunto de datos a partir de estos tres conjuntos diferentes que creamos usando tarta numb. Después tomamos ese conjunto de datos combinado de aleatorio de datos uniformados y unos valores atípicos, y trazamos usando parcela de punto cuadro. Y así es como obtienes una caja y bigote plot call show para visualizarlo. Y ahí tienes. Por lo que se puede ver que es mostrar esa caja que representa el inter 50% de todos los datos. Y luego tenemos estas líneas de valores atípicos donde se puede ver un poco de cruces para cada individuo fuera Mentiroso que se encuentra en ese rango. Está bien, eso está en esa trama. Vive tu curso de choque. Ponga sus manos en ello. En realidad hace algunos ejercicios aquí. Entonces como tu reto, quiero que crees una trama de dispersión que represente datos aleatorios que fabricas sobre la edad versus el tiempo que pasas viendo televisión y podrías hacer eso lo que quieras. ¿ En serio? Si tienes un conjunto ficticio diferente de todos los datos en la cabeza con el que te gustaría jugar, diviértete un poco con él. Por lo tanto, crea una trama de dispersión que complica a conjuntos aleatorios de ayuda unos contra otros y etiqueta tus ejes hacen que se vea bonita. Juega a su alrededor, diviértete con él. Todo. Y debe estar en este cuaderno de Python que necesitas para referencia cualquiera por ejemplos. Pero ten cualquier problema siéntete libre de publicar en las discusiones para esta conferencia y
te ayudaremos . Así que mantén ese cuaderno Python alrededor con tus consejos y trucos para Matt Plot lib. Es una especie de hoja de tramposos, si se quiere, para diferentes cosas que podría necesitar hacer para generar diferentes tipos de gráficos y diferentes estilos de artesanía, así que espero que resulte útil.
18. Visualización de datos con Seaborn: De acuerdo, hablemos ahora de Seaborne, que es básicamente Matt plot lib plus, si se quiere. Muy bien, Seaborn es básicamente una biblioteca de visualización que se sienta en la parte superior del mapa lote lib, y todo lo que hace es hacerlo un poco bonito de mirar. Pero también tiene un montón de diferentes tipos de gráficos y gráficos que no teníamos en Matt plot live. Y justo desde que el ejemplo empezará de nuevo diciendo que trama vive en línea, lo que significa que queremos ver todos nuestros resultados como parte de este cuaderno en sí dentro del navegador importará pandas ya que PD carga un archivo punto de eficiencia de combustible C S V que he subido aquí a mi página web aquí y estos datos de Israel, por cierto. Por lo que se trata de datos reales que provienen del Estados Gobierno de los
EstadosUnidos sobre la eficiencia de combustible de cada automóvil. Tienen un récord off para el año modelo 2019 y específico, Así que vamos a extraer algo de información de esa con la que podemos jugar. Empecemos extrayendo el número de engranajes de ese marco de datos resultante, y vamos a hacer recuentos de valor. Y si recuerdas de nuevo de nuestro tutorial de pandas, eso básicamente nos devuelve los datos que necesitamos para un hist un gramo que dice cuántas veces se produce
cada valor único en nuestro marco de datos. Entonces esto debería devolvernos un Siri's que mapea los números de engranajes al número de veces que apareció cada valor
único. Entonces podemos simplemente trazar eso, diciendo que queremos un gráfico de barras. Entonces en este momento, solo
estamos usando esa lib de trama, como es solo para visualizar estos datos. Y ahí lo tienes, por lo que puedes ver que Ah, transmisión de
ocho velocidades parece ser la más común, seguida de seis velocidades, y tenemos una especie de caída exponencial sus otros dos valores más oscuros. Ahora veamos nacer así que ver nacido en su forma más básica solo puede hacer que Matt plot viva luzca mejor. Entonces todo lo que necesitamos hacer, digamos, importar Seaborn como SNS, y entonces podemos decir sns dot set y todo lo que hace se reemplaza. Los ajustes por defecto en la trama Matt viven con los ajustes de aspecto más visualmente modernos que Seaborne nos ha dado. Esa olla live es bastante vieja. decir, Esdecir,se remonta a esa trama, y es como que muestra su edad con toda franqueza. Por lo que esto le da un aspecto y sensación más modernos. Entonces ahora podríamos hacer ese mismo gráfico de barras exacto. Pero con los valores predeterminados de Seaborne aplicados, se puede ver un poco más bonitos. Tenemos, ya
sabes, más, Ah, tonos
apagados aquí. Y también está en contra de este bonito fondo gráfico aquí que en realidad te permiten visualizar ese genial un poco mejor de lo contrario, casi igual. Pero sólo es un poco más fácil a los ojos, ¿
verdad? Vamos a sumergirnos en algo más de profundidad aquí. Echemos un vistazo más de cerca a los datos con los que estamos tratando. Entonces aquí está nuestro marco de datos en bruto que realmente cargamos que vino del gobierno aquí , y solo tenías que echar un vistazo a las primeras 5 filas aquí como ejemplo. Por lo que la información que he extraído es el fabricante de autos como Aston Martin o Volkswagen. La línea de autos, que básicamente es el modelo el desplazamiento del motor. Eso es cuántos líderes es el motor. Cuántos cilindros de aire en el motor, el tipo de transmisión. Es una ciudad MPG. combustible golpea eficiencia de combustible en carretera, la ciudad combinada más carretera, mi valor mpg y el número de engranajes Cities Car tiene. Entonces esa es la información con la que tenemos que jugar aquí ahora. See Born tiene algunas parcelas que Matt plot live no ofrece en absoluto. Entonces, por ejemplo, hay dis plot, y esa es la forma de realmente trazar un hist un gramo junto con una distribución suave sobre. Colgado encima de eso silbó un gramo. Entonces echemos un vistazo a eso en la columna calma y PG. Entonces aquí tenemos un graham de historia de cuántas veces cada valor dentro de comentario. Aparece PG. Se puede ver que tenemos una especie de esta espiga por aquí. Ya sabes, los bajos, bajos a mediados de los veinte, ¿
verdad? Eso parece ser como la calificación mpg más común para un vehículo. Y podemos superponer este tipo de curva de tendencia aquí automáticamente forma parte de las parcelas dis. Entonces eso es algo que Seaborn está haciendo por nosotros automáticamente sin que ni siquiera lo intentemos para que dijeran un poco más fácil visualizar el trans más grande aquí. Y se puede ver que eso es algo útil porque tenemos estos, como valores extraños entre estos otros valores. Por lo que parece que parece haber algún tipo de ización cuántica que ocurre en nuestros datos que podemos suavizar un poco con esa línea de tendencia. Esa es a veces una forma útil de visualizar las cosas. Otra cosa que puedes tener en Seaborn es la trama de pareja que también es algo único para ver Born. Y esto es cosas geniales porque te permite visualizar parcelas de cada combinación posible de , ah, conjunto de atributos. Para que puedas, como, simplemente mirar todas las formas posibles de visualizar un conjunto de valores y tratar de encontrar los que parezcan interesantes que podrían ser útiles para investigar más a fondo. Entonces como ejemplo, clasifiquemos los autos por cuántos cilindros tienen, y buscaremos relaciones entre cuántos cilindros tiene cada auto y su
calificación mpg de ciudad allí clasificación de autopista mpg y su calificación combinada mpg. Entonces, solo empecemos extrayendo esas columnas de nuestro marco de datos a DF dos. Vamos a usar esa misma sintaxis tan introducida en nuestro tutorial de bragas. Simplemente extraiga estas columnas en un nuevo marco de datos, por lo que ahora tenemos un nuevo conjunto de rosa aquí que solo contienen los cilindros y las columnas NPG a partir de nuestros datos originales. Ahora mira esto. Si hacemos trazado de emparejamiento en ese nuevo marco de datos, ¿tienes que hacerlo? Podemos decir que queremos enfocarnos en los cilindros como nuestra cosa primordial que queremos
mirar y con una altura dada decir que queremos que esta sea una parcela bonita y grande que podamos visualizar fácilmente. Deja que eso funcione. Aquí vamos. Entonces lo que tenemos aquí es como una rejilla de rejillas, ¿
verdad? Entonces esto es un poco aseado. Vamos a desplazarnos un poco hacia abajo para que podamos especie de visualizar lo que está pasando aquí para que
veas que tenemos puesta aquí cada columna. Y por aquí tenemos todo, cada columna también. Entonces si quieres un comentario de trama PG versus cilindros, puedes lucir así aquí. Si quieres un terreno carretera, mpg versus Ciudad I mpg. Aquí puedes ver esta trama para que puedas ver aquí que puedes encontrar interesantes
relaciones lineales entre diferentes columnas ah aquí. Entonces, por ejemplo, sólo mirando la columna Cilindros aquí, podemos ver que hay una relación bastante clara entre el número de cilindros y el mpg, ya sea ciudad, carretera o combinado. Entonces es el número de cilindros incrementos podemos ver que ese mpg es tiene que estar bajando. Pero hay un realmente generalizado aquí para vehículos de cuatro cilindros. Entonces esto es más a la historia aquí en el mundo de los vehículos de cuatro cilindros. Algunos son realmente malos. Algunos son realmente buenos, muy grandes extendidos ahí. Por lo que ya tenemos alguna perspicacia útil allí en nuestros datos, por lo que también podemos usar una gráfica de dispersión y Seaborn 1.9. Es sólo una especie de versión más bonita de la trama del mapa. Vive uno. Básicamente, puede trazar puntos de datos individuales en cualquiera de los dos ejes que desee y ver cómo se
distribuyen sus datos a través de esas dimensiones. Entonces digamos sns dot scatter plot. Vamos a decir que el eje X va a ser desplazamiento del motor. ¿ Por qué se va a combinar mpg, mpg? Y para los datos en sí, vamos a referirnos a nuestro marco de datos DF a partir de nuestros datos brutos. Entonces esto va a arrancar esas dos columnas y trazarlas unas contra otras en una
trama de dispersión . Y ahí lo tienes. Por lo que cada punto individual en nuestro marco de datos se está dispersando sobre esta gráfica que mapea ese particular puntos desplazamiento del motor y valor mpg combinado. Y de nuevo, se
puede ver Ah, aquí
hay una relación. Entonces ya estamos obteniendo algunos, sabes, insights de volver a visualizar esos datos. El menor desplazamiento del motor tiende a tener una muy extendida de M p G,
pero en general, pero en general, cuanto mayor sea
el desplazamiento del motor, peor, la eficiencia del combustible, que no debería ser tan grande de un sorpresa, ¿verdad? Otra cosa genial Y Seaborn es la trama conjunta. Esto te permite visualizar, dispersar parcelas y sisear un gramos al mismo tiempo en cada eje. Entonces echemos un vistazo a esa misma propagación del desplazamiento del motor versus convento PG. Pero esta vez vamos a hacer una trama conjunta en lugar de una trama de dispersión. Aquí es lo que parece, así que tenemos las mismas parcelas de dispersión antes, pero tenemos un historial gramos sobre puesto en cada acceso para que podamos ver por aquí de este lado el siseado, un gramo de calificaciones mpg. De acuerdo, entonces podemos visualizar eso muy fácilmente y fuente ver cómo todos estos datos se enrollan y arriba aquí. Tenemos un ram histórico de los valores de desplazamiento del motor también, por lo que esto hace que sea mucho más fácil decir que el desplazamiento del motor más común está alrededor. Ah, poco menos de 22 líderes, ¿verdad? Entonces esa es una forma un poco más fácil de, como tratar de averiguar cuántos puntos aire en una columna dada aquí una sección porque muchas veces se pueden solapar y que en realidad no es tan intuitivo descifrar la historia. Ram hace que esa distribución de datos sea más fácil de ver. Otra cosa que ofrece Seaborn es la parcela L M, y eso es sólo una parcela de dispersión con una regresión lineal. Aplica automáticamente para que pueda decir esa misma trama de dispersión, pero en cambio parcela de dispersión y parcela de cordero me devuelve este mismo Scott exacto una parcela, pero con una regresión lineal aplicada a ella. Y si miras realmente de cerca, puedes ver este tipo de área sombreada alrededor de ahí a esto. Dale cualquier tipo de tu, uh, tus límites sobre esa regresión, y hablaremos de regresión lineal y más muerte más adelante en este curso. Pero básicamente estamos ajustando una línea al día que tenemos un concepto muy sencillo. De vuelta en Matt trama en vivo. Hablamos de parcelas de caja y Seaborne tiene su propia versión de la misma también. de caja y bigotes. En este ejemplo. Echemos un vistazo a cada fabricante de vehículos y visualicemos la calificación mpg a través de los vehículos que producen. Entonces eso nos va a dar el spread de calificaciones mpg en todos los vehículos que ofrece cada fabricante. De acuerdo, entonces vamos a hacer básicamente una parcela individual de caja para cada fabricante mostrando la
distribución de las calificaciones de NPG en toda su línea de productos. Lo tengo. Muy bien, Así que hay muchos fabricantes, así que vamos a tener que hacer un par de cosas aquí para aprovechar lo que
ofrece Seaborne . En primer lugar, vamos a ajustar el tamaño de la figura a 15 5 Eso sólo lo hace más grande para que podamos caber más información en la pantalla. Bueno, entonces definir la trama de caja en sí estaban en. Digamos que queremos trazar al fabricante en el eje X y los valores de mpg combinados en el
eje Y utilizando nuestro marco de datos original. Aquí están los datos DF y vamos a guardar esa gráfica de caja en una variable X. Después estableceremos las etiquetas de tick en esa parcela para tener una rotación de 45 grados. De esa manera serán más fáciles de leer porque hay muchos de ellos. Entonces la sintaxis aquí es Ron, Say, sit set X etiquetas de tick en las X etiquetas de tick que recuperamos de esa trama con una rotación de 45 grados. Entonces básicamente es decir, quiero establecer las etiquetas del eje X a las etiquetas existentes. Ya sabes, dejarlos sin cambios, pero especifica una rotación de 45 grados. Entonces vamos a seguir adelante y patear eso fuera del set exit check labels Command sacó algo de salida . Aquí es parte de su proceso ah aquí. Pero aquí está el gráfico en sí bastante interesante, por lo que se puede ver ese ángulo de 45 grados que especificamos en las etiquetas aquí siendo usadas allí. Eso es mucho más fácil de leer, y se puede ver la propagación de los valores de mpg para cada fabricante individual. Tan interesante. Volkswagen tiene una gama realmente amplia, por ejemplo, mientras que Aston Martin está bastante agrupado. Volvo son Volvo también bastante apretado aquí, ya
sabes, cosas
tan interesantes. También, General Motors tiende a agruparse aquí alrededor, ya
sabes, mediados de los veinte años más o
menos, pero tienen muchos valores atípicos aquí arriba en el extremo superior también. Por lo que parece que hay algunos autos de General Motors muy eficientes por ahí también. Entonces tenemos Ferrari, obviamente no muy bueno mpg, porque las personas que manejan Ferraris se preocupan más por el rendimiento y la eficiencia del combustible. Yo creo que sí. Interesantes insights que se obtendrán de esta caja y bigotes trama aquí de la eficiencia del combustible a
través de los modelos para cada fabricante de vehículos que sabemos sobre cosas divertidas, y es bonito mirar. Es otra vez. Es colores modernos, agradables, y eso es una especie de lo que C one te da de la caja. También están las parcelas de enjambre,
que, que, en lugar de cajas y bigotes, traza cada punto de datos individual. Pero en realidad los agrupa de manera que sea más fácil visualizarlos. Por lo que tiene más sentido. Cuando lo mires, solo
haremos una trama de enjambre en la misma cosa exacta. Por lo que en el nombre del fabricante y mpg combinado de nuestro marco de datos DF. Nuevamente, estableceremos la rotación en 45 grados en el eje X y la patearemos en Lee. Diferentes Sears estaban haciendo una trama de enjambre en lugar de una parcela de caja se puede ver aquí es de la caja y bigotes. Solo estamos consiguiendo este formato diferente aquí, donde estamos una especie de aglomerado. Estos puntos aquí para representar realmente mejor la distribución de los datos. Por lo que cada vehículo individual está siendo trazado hasta un punto en la chatarra, pero estamos agrupando esos puntos horizontalmente para intentar dedo del pie reflejar un poco mejor una distribución de esos puntos. Por lo que es una forma de mirar un poco más los datos brutos que en una gráfica de caja. Pero sigue agrupado de una manera que te da la misma información que una caja bolsillos con información
más refinada. Entonces esto es lo que llamamos una trama de enjambre. Podrían sacar los mismos resultados de ella. Entonces de nuevo, ya
sabes, mirando más profundamente en Volkswagen, se
puede ver que tienen un bastante extendido aquí. Hay un montón alrededor de 30 y un montón alrededor de 10 y nada mucho en el medio. Entonces una especie de caso curioso ahí, y creo que eso se debe a que Volkswagen en realidad posee un montón de marcas diferentes que están dirigidas a mercados muy diferentes. Así que probablemente estamos viendo los vehículos de consumo aquí arriba. Y los vehículos de rendimiento por aquí serían mi conjetura. General Motors muy fuertemente agrupados en esta gama. Aquí están, más sobre vehículo de mercado masivo, por lo que como que quieren estar en ese punto dulce ahí de cosas que funcionaron razonablemente bien pero también funcionan bien a tipo de atractivo. Pronto público americano de todos modos, sólo otra forma de mirarlo. Una más es la trama de conteo. Básicamente lo mismo es una historia,
Graham, Graham, pero es para datos categóricos, así que siseó un gramo realmente solo se silba un gramo si se trata de valores numéricos. Si lo estás haciendo con categorías, sin embargo, eso se llama trama de cuenta. Entonces, solo volvamos a verlo como un ejemplo, extrayamos los nombres de los fabricantes y solo echemos un vistazo a cuántos autos fabrica cada fabricante. Entonces vamos a contabilizar parcela, contando cuántos vehículos tiene cada fabricante y de nuevo los girará 45 grados para que realmente podamos leer esas etiquetas X. Y ahí lo tienes. Entonces, igual que una historia Graham, excepto que está desglosada por categoría, lo que no hay un significado inherente real al orden real en el que aparecen estos. Ahí sólo conteos desglosados por categoría, eso es todo lo que hay para ello. Eso es todo trama de cuenta ISS. Por lo que puedes ver con bastante claridad aquí que General Motors tiene el mayor número de modelos de autos disponibles, seguido de cerca por BMW y, ya
sabes, nuevo, estas grandes compañías aéreas que poseen otros fabricantes. Entonces ya sabes, no necesariamente
estamos diciendo que hay más de 100 modelos diferentes de BMW en el mercado en 2019. Esas incluyen otras marcas. El onus bien, pero, ya
sabes, en el ah, en el otro extremo aquí hay muy pocos modelos de Aston Martin en un número muy bajo de modelos Rolls Royce, por ejemplo, por lo que realmente puedes ver aquí la distribución de cuántos modelos produce cada fabricante muy fácilmente. Por último, echemos un vistazo a un mapa de calor, mapas de
calor o diversión para que estén lejos para trazar datos Ah dos d, pero donde los colores representan los valores individuales dentro de cada celda de esa tabla, por lo que vuelve a tener más sentido. Si solo lo miras, hagamos una tabla pivotante a partir de nuestro marco de datos original para crear una tabla de dos D mapeando clasificación
promedio mpg para cada combinación del número de cilindros y el desplazamiento del motor . Echemos un vistazo a este mapa de calor que tenemos aquí. Se trata de una tabla pivotante sobre marco de datos original solo para extraer esta información de dos D básicamente una matriz de dos D que mapea el mpg combinado para cada combinación de cilindros y
desplazamiento del motor . Entonces, básicamente, estamos corriendo por aquí. Es como un marco de datos, justo donde estaban mapeando cilindros contra desplazamiento del motor con celdas individuales en esa trama contienen la combinación de refrigerador mpg. Y vamos a sumar estos juntos usando medios que vamos a decir que queremos mirar a través de todos los diferentes valores y tomar la media para cada combinación individual de cilindros y desplazamiento del motor. Entonces si hay más de un auto que tiene dicho, ya
sabes ah, cuatro cilindros a punto, un motor líder tomará el promedio de todos esos autos juntos para llegar al valor en esa celda de esa trama. De acuerdo, entonces así es como luce esa trama como un mapa de calor. Ahora falta mucha de la fecha porque al parecer no existe tal cosa como un motor de 12 cilindros ,
1.4 litros. , Eso sería una locura. Pero los de representan todos los valores para los que realmente tenemos datos en nuestro marco de datos, y el color real de cada punto corresponde al valor de esa celda. Entonces, por ejemplo, aquí está la leyenda de lo que significan esos colores. El negro está en algún lugar alrededor de los 12 mpg. Entonces si tienes un motor de 16 cilindros, ocho litros, eso va a tener una eficiencia de combustible realmente horrible en promedio de solo 12 mpg. De acuerdo, así es como lees esta cosa. Y se puede ver con solo mirarlo que a medida que subes a este extremo de la trama esta esquina aquí tienes un bajo número de cilindros, bajo desplazamiento del motor. Esos tienen colores muy claros porque son más eficientes en combustible. Al bajar hacia esta esquina aquí de muchos cilindros y mucho
desplazamiento del motor , te metes en peor y peor, eficiencia del
combustible. Por lo que este mapa de calor hace que sea muy fácil visualizar cómo cambian esas calificaciones mpg reales función de dónde se encuentran en esta trama. Entonces ese es un mapa de calor. De acuerdo. Si quieres probar esto por tu cuenta. Aquí tienes un poco de reto para ti. Así que intenta explorar la relación entre el número de marchas que tiene el auto y es calificación mpg
combinada. Y quiero ojos divisionales estas dos dimensiones de datos en un montón de maneras diferentes a una trama de dispersión haciendo Ellen trama a una trama conjunta a una caja de sangre y a una trama de enjambre. ¿ Qué conclusiones puedes sacar de eso? Entonces antes de desplazarte hacia abajo, da a probarte tú mismo. Te dejé aquí algunos puntos vacíos para jugar realmente y darle una oportunidad a eso. No asomarse antes de tiempo, Pero sí tengo mi solución abajo. Si quieres echar un vistazo cuando termines y comparar tus resultados a la mente. Entonces dale una oportunidad a eso, ojalá consiga algunos resultados. Pero si te quedas atascado, siéntete libre de desplazarte hacia abajo y no pongas pico. Pero las mis respuestas aire allá abajo. De acuerdo, Así que diviértete un poco con eso. Y espero que eso vuelva a hacer que Seaborn sea un poco más real para ti. Lo vamos a estar usando bastante a lo largo de este curso. Es una biblioteca de visualización muy útil que también es buena para mirar y ahí la tienes
19. Covarianza y correlación: continuación, vamos a hablar de co varianza y correlación. Entonces digamos que tengo dos atributos diferentes de algo, y quiero ver si en realidad están relacionados entre sí o no. Esto te dará las herramientas matemáticas que necesitas para hacerlo y te sumergirás en algunos ejemplos y realmente descubrirás co varianza y correlación usando Python. A continuación, hablemos de co varianza y correlación. Estas son formas de medir si dos atributos diferentes están relacionados entre sí en un conjunto de datos, que es la cumbia. Cosa muy útil para averiguarlo. Entonces hablemos de co varianza. Entonces imagina que aquí tenemos una gráfica de dispersión, y tal vez cada uno de estos puntos de datos representa a una persona que medimos. Y estamos aplaudiendo tal vez su edad en un eje versus sus ingresos en otro. Por lo que cada uno de estos puntos representaría a una persona o diría que son exe Valley, representaba su edad, y su por qué representaba sus ingresos. De acuerdo, estoy totalmente haciendo que esta oficina sea datos falsos. Ahora que una trama de dispersión que se veía así, se
ve que estos valores tienden a estar por todo el lugar. Y esto te diría que no hay correlación riel entre edad e ingresos en base estos datos, verdad, a
estos datos,
verdad,
como eso no parece importar que para una edad determinada eso podría ser una enorme gama de ingresos. Tienden a agruparse alrededor del medio. Pero, ya
sabes, realidad no
estamos viendo una relación muy clara entre estos dos atributos diferentes de edad e ingreso. Ahora, en contraste, por aquí a la derecha, se
puede ver que hay una relación lineal muy clara entre edad e ingreso, por lo que la co varianza y correlación nos da un medio para medir qué tan apretadas estas cosas están correlacionados. Entonces, ya
sabes, esperaría una correlación o co varianza muy baja para estos datos de la izquierda, pero una muy alta co varianza y correlación de Corvair para los datos de la derecha. Entonces ese es el concepto de varianza básica y correlación mide cuánto parecen depender estos dos atributos que yo midiendo unos de otros, por lo que midiendo la co varianza matemáticamente. Es un poco difícil, pero trataré de explicarlo. Es realmente más importante que entiendas cómo usarlo y qué significa, pero en realidad derivarlo. Si pensaras en estos,
estos atributos de los datos son vectores de alta dimensión. Lo que vamos a hacer en cada atributo para cada punto de datos es calcular la varianza desde la media en cada uno en cada punto. Por lo que ahora tengo estos vectores de alta dimensión alcanzan cada punto de datos cada persona, si va a corresponder a una dimensión diferente. Y tengo un vector en este espacio de alta dimensión que representa todas las varianzas de la media para una edad digamos para uno atributos. Y entonces tengo otra victoria que representa todas las variaciones de la media para algunos otros atributos, como el ingreso. Y lo que hago entonces es tomar estos vectores que miden las varianzas de la media para cada atributo, y tomo lo que se llama el producto de punto entre los dos y matemáticamente. Esa es una forma de medir el ángulo entre estos vectores de alta dimensión. Entonces si no están muy cerca el uno del otro, eso me dice que estas varianzas se están moviendo más o menos en lockstep
entre sí a través de estos diferentes atributos. Y si tomo ese producto de punto final y divido con un tamaño de muestra, así terminó con la cantidad de co varianza. Ahora nunca vas a tener que calcular esto tú mismo de la manera difícil. Ya sabes, ya veremos cómo hacer esto en Python, pero conceptualmente, así es como funciona ahora. El problema con co diverso es que puede ser difícil de interpretar. Entonces si tengo, AH, co varianza es cercana a cero. Bueno, sé que eso me está diciendo que no hay mucha correlación entre estas variables en absoluto, pero, ah, gran co varianza implica que hay una relación. Pero, ¿qué tan grande es grande? Ya sabes, dependiendo de las unidades que esté usando, podría
haber formas muy diferentes de interpretar esos datos. Entonces eso es un problema. Esa correlación de Saúl. Se normaliza todo por la desviación estándar de cada atributo, y al hacerlo, puedo decir muy claramente. Una correlación de uno negativo significa que hay una correlación inversa perfecta. Entonces a medida que aumenta un valor, el otro disminuye y viceversa. Una correlación de cero significa que no hay correlación en absoluto entre estos dos conjuntos de atributos, y una correlación de uno implicaría una correlación perfecta donde estos dos atributos se están moviendo exactamente de la misma manera que miramos diferentes puntos de datos. Entonces recuerda que la correlación no implica causalidad solo porque encuentres un valor de
correlación muy alto no significa que uno de estos atributos cause el otro. Simplemente significa que hay una relación entre ambos, y esa relación podría ser causada por algo completamente diferente. El único modo de determinar realmente la causalidad es a través de un experimento controlado, que hablaremos más adelante. Vamos a ensuciarnos las manos y computar correlación y causalidad y ver cómo realmente
hacemos esto en Python. Muy bien, vamos a ensuciarnos las manos con co varianza y correlación aquí con algún
código python real . Entonces de nuevo, como expliqué a las diapositivas, se
puede pensar conceptualmente de la co varianza es una especie de tomar estos vectores multidimensionales de varianzas de la media para cada atributo y computar el ángulo entre ellos como un medida de la co varianza. Y las matemáticas para hacer eso son mucho más simples de lo que suena. Ya sabes, estamos hablando de vectores de alta dimensión. decir, Esdecir,suena como, ya
sabes, cosas de
Stephen Hawking, pero en realidad, para un punto de vista matemático, es bastante sencillo. Entonces voy a hacer esto de la manera difícil. Numb Pie sí tiene un método para simplemente calcular la co varianza para ti, y hablaremos de eso más adelante. Pero por ahora, quiero demostrar que en realidad se puede hacer esto. Ya sabes, desde principios primeros. Por lo que la co varianza de nuevo se define como el producto de punto, que es una medida del ángulo entre dos vectores del vector de las desviaciones de la media para un determinado conjunto de datos y las desviaciones de la media para otro dan en lugar de datos para los mismos datos, puntos
de datos. Y entonces dividimos eso por fin menos uno. En este caso, porque en realidad estamos tratando con una muestra así que d e media o desviación de ser función está tomando un conjunto de Data X realmente lista, y está computando la media de ese conjunto de datos. Y aquí te dejamos un poco de engaño de pitón para ti. Esta sintaxis está diciendo que voy a pasar por voy a crear una nueva lista y pasar por cada elemento de siguiente. Llámalo X I, y luego devuelve la diferencia entre X I y el Me siguiente media para ese conjunto de datos completo. Por lo que esta función devuelve una nueva lista de datos que representa las desviaciones de la media para cada punto de datos. Por lo que mi función de varianza co hará eso para ambos conjuntos de datos entrantes, divididos por el número de puntos de datos menos uno. ¿ Recuerdas esa cosa de muestra versus población? Bueno, eso está entrando en juego aquí, y entonces sólo podemos usar esas funciones y ver qué pasa. Entonces en este ejemplo, voy a fabricar algunos datos que va a tratar de encontrar una relación entre
velocidades pagadas . Eso es lo rápido que se renderiza la página en un sitio web y cuánto gasta la gente. Entonces, por ejemplo, en Amazon, estábamos muy preocupados por la relación entre lo rápido que se rinden las páginas y cuánto dinero gasta la gente después de esa experiencia. Ya sabes, queremos saber. Existe una relación real entre lo rápido que es el sitio web y cuánto dinero gasta la gente en
realidad en el sitio web? Entonces esta es una forma en la que podrías ir para averiguar eso. Entonces, solo generemos algunos datos aleatorios normalmente distribuidos aleatoriamente tanto para velocidades
pagadas como para cantidades de compra. Y como es aleatorio, eso no va a ser una correlación riel entre ellos. Por lo que sólo se iniciará un cheque de cordura aquí. Empieza por la dispersión trazando estas cosas, y verás que tiende a agruparse alrededor del medio debido a la
distribución normal en cada atributo. Bueno, no
hay relación real entre los dos,ya
sabes, ya
sabes, para cualquier velocidad pagada dada es una amplia variedad de cantidad gastada y para cualquier cantidad dada gastada, hay una variedad mentira de velocidades pagadas. Entonces no hay correlación riel ahí, excepto las que están saliendo a través de la aleatoriedad o a través de la naturaleza de la
distribución normal . Y bastante seguro, si calculamos la varianza co en estos dos datos thes dos conjuntos de atributos, terminamos con un valor muy pequeño. Negativo 0.7 Así que ese es un valor de varianza co muy pequeño cercano a cero. Eso implica que no hay relación real entre estas dos cosas. Ahora hagamos la vida un poco más interesante. Hagamos realmente el monto de compra de función real de velocidad pagada. Entonces estamos manteniendo las cosas un poco aleatorias aquí, pero estamos creando una relación real entre estos dos conjuntos de valores. Por lo que para un usuario perdonado tendencia dada, existe una relación real entre las velocidades pagadas que encuentran y la cantidad que gastaron. Y si trazamos eso, podemos ver que en realidad es esta curva aquí donde las cosas tienden a estar fuertemente alineadas. Las cosas se ponen un poco incómodas aquí abajo cerca del fondo aquí solo por cómo
funcionan las cosas al azar . Pero si competimos aquí la co varianza, terminamos con un valor mucho mayor. Negativo ocho. Y sabes que es la magnitud de ese número lo que importa. Tesis firmada, positiva o negativa simplemente implica una correlación positiva o negativa. Pero ese valor de ocho dice, Hey, ese es un valor mucho mayor que cero. Entonces ahí pasaba algo. Pero de nuevo, es difícil interpretar lo que ocho realmente significa. Entonces ahí es donde entra la correlación, donde normalizamos todo por las desviaciones estándar. Entonces nuevamente, haciendo eso desde principios primeros, podemos tomar la correlación entre dos conjuntos de atributos. Calcular la desviación estándar de cada co varianza computarizada de cada co varianza entre estas dos cosas y dividir por las desviaciones estándar de cada conjunto de datos. Y eso nos da el valor de correlación que se normaliza a negativo 1 a 1, y terminamos con un valor de 0.4 negativo, lo que nos dice que hay alguna correlación entre estas dos cosas en la dirección negativa . No es perfecto. No es línea perfecta, ya
sabes, esa sería negativa. Pero pasa algo interesante ahí y otra vez. Un coeficiente de correlación uno negativo significa correlación negativa perfecta. Cero significa no correlación, y uno significa correlación positiva perfecta. Ahora, entumecido Pichon en realidad calcula la correlación para ti usando la función core coif. Entonces si quería hacer esto de la manera fácil, sólo
podríamos decir dump iDot core coif, velocidades
pagadas, cantidad de
compra. Y lo que eso te devuelve es una matriz que te da la correlación entre cada combinación
posible de los conjuntos de datos que pasas. Entonces la forma de leer esto es la que responde. Existe una correlación perfecta entre comparar las velocidades pagadas a sí mismo y el monto de compra a sí mismo, lo cual se espera. Pero cuando comienzas a comparar velocidad pagada con monto de compra o cantidad de compra pagada velocidad pasando por este valor nativo de 10.4005, que es más o menos lo que obtuvimos cuando lo hicimos de la manera difícil, va a
haber un poco de precisión errores, pero ya sabes, eso no es realmente importante. Ahora. Podríamos forzar una correlación perfecta fabricando una relación totalmente lineal, y eso es lo que hicimos en este ejemplo y otra vez aquí. Esperaríamos que la correlación saliera a negativa para una perfecta
correlación negativa . Y de hecho, eso es con lo que terminamos. Está bien, entonces, nuevo, una correlación recordatoria no implica causalidad. hecho de que la gente pague, gente podría gastar más si tienen velocidades pagadas más rápidas. A lo mejor eso significa que pueden permitirse una mejor conexión a Internet. A lo mejor eso no significa que en realidad haya una causalidad entre lo rápido que se renderizan las páginas y cuánto gasta la gente. Pero te dice esta interesante relación que vale la pena investigar Mawr. Por lo que no se puede decir nada de causalidad sin ejecutar un experimento. Pero Correlación te puede decir qué experimentos podrías querer ejecutar, así que ponte las manos sucias rodar. Chris Lee's Quiero que uses la función Num pie Doc U've. Esa es en realidad una forma de conseguir pastel entumecido para calcular la co varianza para ti. Vimos cómo calcular la correlación usando la función core coif, así que retrocede y vuelva a ejecutar estos ejemplos. Está usando la función no numb pie dot c o V on ver qué pasa si obtienes los mismos resultados o no está bien, deberías. Deberían estar bastante cerca. Entonces en lugar de hacerlo de la manera difícil con la función de co varianza que escribí desde cero , solo usa tarta entumecida y ve si vuelves a obtener los mismos resultados. Es sólo Ah, el punto de este ejercicio es familiarizarte con el uso de tarta entumecida y aplicarlo a datos
reales. Así que ten en ello. A ver a dónde llegas Así que ahí lo tienes. Co varianza y correlación tanto en teoría como en práctica, Técnica
muy útil. Dedo del pie Tienen tan definitivamente recordar esa conferencia. Sigamos adelante.
20. Ejercicio: probabilidad de estado: Hablemos de probabilidad condicional. Concepto bastante sencillo. Es básicamente la probabilidad de que algo ocurra dado que algo más ocurrió primero, que depende de buenos ejemplos del mundo real. Si vas a amazon dot com y miras el futuro, eso es como si la gente que compró esto también comprara, o las personas que vieron esto también vieron. Se puede pensar en eso en términos de probabilidad condicional. ¿ Cuáles son las probabilidades de comprar otro artículo dado que compraste primero este otro artículo ? Mismo concepto. Ahora la notación en probabilidad condicional es probablemente la parte más confusa, por lo que vamos a tratar de guiarte a través de ella en esta conferencia. Pero ayudaría si agarras una taza extra de café o te pongas tu gorro de pensamiento
lo que sea necesario para meterte en tu estado mental más agudo, porque esta es una de las cosas más desafiantes por superar. Con eso, sumémonos y trataré de hacerlo lo más simple posible. Hablemos nuevamente de probabilidad condicional. Concepto sencillo con la notación contribuyen a veces, así que vamos a sumergirnos en lo que es esa notación y en lo que significa Now. El concepto básico de probabilidad condicional es que si tengo que hacerlo, eventos que dependen entre sí, puedo hacer una declaración sobre la probabilidad de que ocurra ese segundo evento. Dado que el primer suceso ocurrió ahora, la notación que vamos a utilizar aquí es doble. Hay p una coma B, y eso significa la probabilidad de que tanto A como B ocurran independientemente entre sí. Y entonces tenemos p de ser bar A. Esa es la probabilidad de que se le dé que a ha ocurrido. Entonces eso implica cierta dependencia entre B y A. Y podemos empatar todo esto usando esta práctica ecuación dandy aquí, donde la probabilidad de que se le dé una que es la probabilidad condicional de que se le dé el evento A es igual a la probabilidad de A y B juntos divididos por la probabilidad de un Así que puedes usar eso para desprender lo condicional la dependencia entre ser a Tendrá más sentido con un ejemplo real. Entonces echemos un vistazo a un ejemplo real. Digamos que entrego a mis alumnos a exámenes, y en general, 60% de mis alumnos pasaron ambas pruebas. Entonces si llamamos a las pruebas A y B p una coma, sería 60%. No obstante, la primera prueba fue más fácil. El 80% de mis alumnos pasó esa. Entonces si ser es la segunda prueba y a es la primera prueba P de a sería 80% en este ejemplo, derecha y ver. Esto se vuelve confuso bastante rápido con todas las A's y B's y comas y pipas. Pero repasemos de nuevo. Por lo que el 60% de los alumnos pasó ambas pruebas. Opiáceos un generoso 60%. El primer test fue más fácil. Pasó el 80%. Esa prueba jabonosa de a es del 80%. Entonces ahora ¿cómo averiguo el porcentaje de estudiantes que aprobaron la primera prueba que también pasaron la segunda? Entonces, ¿cuál es la probabilidad de pasar mi segunda prueba? Teniendo en cuenta que pasaste la primera prueba? Eso es probabilidad condicional. Por lo que estamos pidiendo la probabilidad de B bar a. La probabilidad condicional de pasar la prueba a, dado que se pasa la prueba uno y podemos calcular eso usando la ecuación que acabamos de ver p de ser Bari. El probabilidad condicional de ser dado a es capaz de la probabilidad no condicional p
una coma B, que fue 60% sobre la probabilidad de A, que es 80%. Y si lo hacemos, esa división se fue con 75%. Y podemos decir que el 75% es la probabilidad condicional de pasar la segunda prueba. Teniendo en cuenta que se pasa el 1er 1 tiene sentido, golpear, pausar y digerir esto por un minuto. Porque con todas estas letras y diferentes signos de puntuación y lo que no, puede ponerse confuso. Entonces déjame solo sumergirte en un cuaderno y pasaremos por un montón de otros ejemplos para tratar de hacer que esta notación y cómo manejar todas estas cosas sean de segunda naturaleza para ti. Y cuando terminemos, te
daré un poco de ejercicio sencillo en practicarlo tú mismo. Está bien para este ejercicio, quiero que abras el cuaderno de ejercicios de probabilidad condicional en
los materiales de tus cursos , y he intentado caminar por esto un poco despacio. Esto es una especie de ah, cosa
difícil de envolver un poco la cabeza. Lo que vamos a hacer en esta actividad es generar 100 mil personas aleatorias y digamos que todos son clientes en un sitio web de big e-commerce como Amazon o algo por cada una de estas 100 mil personas las asignarán aleatoriamente a un rango de edad dado, estando en sus veinte o sus treinta o ahí cuarenta, todo el camino hasta sus setenta. Y vamos a crear una probabilidad condicional de una dependencia entre su probabilidad de comprar algo y su edad. Básicamente, vamos a decir que cuanto más viejo seas, más probable es que compres algo. Entonces si eres joven, tendrás una menor probabilidad de comprar algo. Entonces digamos que decimos que la probabilidad de comprar algo se llama E, y la probabilidad de estar realmente en una edad dada oscila F. Eso significa que no tenemos una probabilidad condicional de dependencia entre E y F. Muy bien así que recorremos el código aquí que configura ese conjunto de datos aleatorios. Tengo muchas preguntas de la gente sobre cómo funciona este código. Así que aguanten conmigo chicos, si ya conocen a Python. Pero para las personas que son nuevas en ello, esto sí toma algunas explicaciones. Entonces voy a pasar por esta línea por línea. Muy bien, entonces vamos a empezar importando aleatorio desde el paquete de tarta numb. Nada emocionante. Ahí Eso es solo para que realmente podamos generar números aleatorios dentro de este pequeño fragmento de
código aquí,semilla de código aquí, punto
aleatorio solo genera un valor de semilla para el generador de números aleatorios. El propósito de esta línea es asegurarnos de que obtenemos resultados consistentes cada vez que ejecutamos este código. Entonces como antes, solíamos obtener diferentes resultados cada vez que corría esto. Pero al tener un número consistente, ver, eso significa que obtendrá los mismos resultados de vuelta para nuestros números aleatorios. Cada vez que ejecutamos esto, el número cero es arbitrario. Todo lo que importa es que es el mismo valor que se utiliza cada vez. Podría ser 1234 o cualquier número que quieras, siempre y cuando sea el mismo que siempre está pasando. Solo estaban asegurándose de que tuviéramos cierta consistencia en nuestros resultados la próxima vez. Configurar a diccionarios python llamados totales y compras y lo que esto está haciendo es hacer un
seguimiento de cuántas personas totales tengo en cada rango de rabia. Los de 20 años, los de 30 años de 40 años y demás, y cuántas compras se hicieron por cada persona en esa edad rabias Así que básicamente, estoy diciendo, inicialmente, tengo cero personas en el cubo de 20 años de antigüedad aquí en el cubo de 30 años y aquí en el cubo de
40 años y así sucesivamente y así sucesivamente. Y tengo cero compras de jóvenes de 20 años, cero compras de niños de 30 años, cero compras de 40 años y así sucesivamente y así sucesivamente. Entonces así es justo como voy a hacer un seguimiento del número total de personas y el
número total de compras asociadas a cada grupo de edad. También haré un seguimiento del número total de compras independientemente de la edad, con la variable total de compras. A continuación, vamos a crear un bucle al jittery a través de 100 mil personas aleatorias que iban a crear. Y eso nos subraya un tenedor del lugar. Yo sólo podría decir forex y varió 100 mil o lo que quieras. Pero como en realidad no estoy usando ese valor en ningún lugar dentro del bucle aquí, solo
puedo usar el carácter de subrayado como marcador de posición. Simplemente significa que realmente no me importa cuál sea ese valor en realidad cada vez a través. No me importa que este sea el número de usuario 1776. Podría simplemente descartar esa información. Eso es todo. El subrayado significa que realmente no me importa cuál es el número real. Por lo que para cada uno de estos, 100 mil personas iban a comer a través de la sopa 100 mil veces y por cada vez le
asignaremos década de edad a esta persona. La elección de puntos aleatorios solo elegirá aleatoriamente un valor de esta lista que pasamos por lo elegirá aleatoriamente uno de estos números 2030 40 50 60 o 70 distribuidos uniformemente. Por lo que tendremos una probabilidad aleatoria, incluso de tener 20 años o 30 años o 40 años. Todo lo tenemos a una edad de 70 años por cada persona individual. Ahora aquí está Aquí es donde las cosas se ponen un poco raras. En función de tu edad, calculamos una probabilidad de compra. Entonces estamos tomando tu edad y dividiéndola por 100 para averiguar las probabilidades de que realmente
compres algo de nuestra página web. Entonces, por ejemplo, si estoy en mis veinte años, tomaré 20 divididos por 100. Eso funciona a 0.2 o 20% por lo que los jóvenes de 20 años tendrán un 20% de posibilidades de comprar realmente algo de 30 años que tengan un 30% de posibilidades de comprar algo y así sucesivamente y así sucesivamente. Entonces así es como estamos descubriendo que las personas más jóvenes son menos propensas a comprar algo que las personas
mayores en nuestro conjunto de datos generados aleatoriamente aquí a medida que lo pasemos, elevarán el total para esa edad Década por un medio que generamos a un nuevo persona aleatoria dentro de este rango de edad. Y aquí estamos diciendo, si punto aleatorio aleatorio, es menor que esa probabilidad de compra atribuir realmente de compra a esta persona. ¿ Cómo funciona eso? Bueno, punto
aleatorio aleatorio solo selecciona aleatoriamente un valor entre cero y uno. Entonces si ese número aleatorio es menor que nuestra probabilidad de compra, decimos que esta persona realmente compró algo. Veamos un ejemplo para que eso sea un poco más intuitivo. Digamos que tenemos a una de 30 años, vale, así que alguien en sus treinta su probabilidad de compra va a funcionar a 0.3 o 30%. Entonces si nuestro número aleatorio entre cero y uno sale a ser menor a 10.3, esa persona se le atribuye a una compra si es mayor a 0.3. No compraron algo. Entonces ya ves cómo funciona eso. Así es como básicamente están rodando los dados para ver si esta persona compró algo o no, dada su probabilidad general de compra mayor rango de edad. Entonces a medida que
terminamos, estamos construyendo el número total de compras que se hacen para en todo el
conjunto de datos . También estamos haciendo un seguimiento de las compras antes de esa década individual de edad, y también estamos haciendo un seguimiento del número total de personas en cada edad decadas bien, necesitaremos todos estos números para descifrar cosas como PV y Pieza PF y PV dado la mitad y todas esas cosas. Adelante y corremos. Esto y aquello. Genera son conjuntos de datos falsos que tiene una dependencia entre la edad y las compras. Echemos un vistazo a lo que tenemos. Yo esperaría que los totales para cada rango de edad sean aproximadamente consistentes, y son así que tenemos alrededor de 16.5 1000 personas en cada década de edad, así que eso es bueno. E incluso la distribución, eso es lo que esperamos. Pero si nos fijamos en las compras atribuidas a cada rango de edad, se
puede ver que eso va en aumento con base en el SIDA. Entonces tenemos esa dependencia que tratamos de modelar ahí trabajando bien. Entonces alrededor de 3020 años de edad, pero compran algo pero sobre, ya
sabes, casi 12,007 años de edad manchas algo, pesar de que estaban distribuidos uniformemente en número de personas. Entonces estamos viendo aquí muy claramente que hay una relación entre tu edad y tu probabilidad de comprar algo. De acuerdo, así que tenemos un bonito conjunto de datos falsos toe trabajo con año para probabilidad condicional, también
podemos calcular el número total de compras a través de todo el conjunto de datos Eso sale a 45,012. Y ahora tenemos los valles con los que necesitamos trabajar para jugar con probabilidad condicional. De acuerdo, así que de nuevo, mucho de esto es sólo conseguir la cabeza alrededor de la notación y hacer un seguimiento de qué letra significa ¿qué? Entonces de nuevo, vamos a llamar a e comprar algo y f una edad determinada en la que estás. Entonces empecemos por calcular p de e dada f Esta es una probabilidad condicional entre hacer una compra y f donde vamos a llamar a eso estar en tus treinta con este rango de edad arbitrariamente seleccionado ahí. Entonces la probabilidad de comprar algo e dado que estás en tus treinta f podemos computar eso directamente. En realidad, sólo
podemos averiguar cuántos niños de 30 años compraron algo como porcentaje. Entonces sigamos adelante y solo computemos eso. ¿ Cuántas compras totales vimos de treintasitas y cuántas personas había en ese conjunto de
datos? Y eso funciona a 0.299 casi 0.3 ¿verdad? También podemos calcular de forma independiente pieza de BNP Sabbeth pieza de f será la probabilidad de ser 30 en general en el estado de set. Eso es fácil de computar. Simplemente se llevará el número total de niños de 30 años divididos por el número total de personas en nuestro conjunto de datos, y eso funciona. Teoh 16.6% 0.166 pieza PF e es solo la probabilidad general de comprar algo sin importar tu edad, si no hubiera dependencia ahí en absoluto, Así que para computar, PV solo tomará el número total de compras en todo el mundo, independientemente de su edad, dividido por el número total de personas en general, y eso funciona a 2.45 o 45%. Entonces, en general en todo nuestro conjunto de datos, quitando la edad de la ecuación, hay un 45% de probabilidad de comprar algo. Está bien, así que aquí es donde empiezas a ponerte un poco tu gorra de pensamiento. Entonces envuelve la cabeza alrededor de esta declaración. Si e y f eso es comprar algo y tu edad fuera independiente de lo que esperarías que p de e dado f sea aproximadamente igual que PV, ¿
verdad? Si no hubiera dependencia entre comprar algo a tu edad, esperarías que la probabilidad general de comprar algo fuera la misma que una probabilidad de comprar algo dada tu edad, porque no debería haber dependencia no debería importar. No debes importar. Pero hemos visto que eso no es cierto, ¿verdad? Por lo que PV calculamos para ser alrededor del 45% pero p de e dado f calculamos antes para ser alrededor del 30% o 300.299 Lo que sea ISS thes los números aire bastante diferente. Entonces eso solo nos está diciendo que E y f son dependientes de que haya una condición entre estas dos cosas y sabemos que ese es el caso en este ejemplo, creamos artificialmente una dependencia entre la probabilidad de compra y la edad. Entonces esa es una forma de burlarse de eso fuera de los datos ahí mismo. Si ves que P, e, v y P V dado F o si quieres usar letras diferentes puedes hacer pis de A no es igual a P de un dado sean las letras que quieras usar, es solo notación. Si esos no son lo mismo, entonces podría haber una dependencia pasando ahí de la que debes saber. Muy bien, vamos a computar también p de e com af otra vez. Todo esto se trata de notación. PFE coma F es diferente de P A e bar f. Así que PV coma F es la probabilidad general de estar tanto en tus treinta y comprar algo sin dependencia allí. Por lo que estamos viendo la probabilidad general de estar tanto en tus treinta como de comprar algo, no sólo restringirlo a la población de personas que están en sus treinta años. Podemos computar eso con bastante facilidad. Podríamos simplemente mirar el número total de compras de treinta cosas sobre el
tamaño total de los datos establecidos aquí, y eso funciona a cerca de ah 5% ish punto por punto. Ah, por nueve. Si bien estamos en ello, también
podemos calcular el producto de P E y P F. Eso sólo va a estar multiplicando P e y P F, la probabilidad general de comprar algo y la probabilidad general de estar en tus treinta . Eso sale a cerca de 7.5% ahora. En estadística, cuando hablan de probabilidad, a menudo
verás la relación de que p de aecom F es igual al producto de PNE y PMF . Pero eso sólo es cierto si ya lo suficiente es independiente. Encontramos aquí que p de aecom f la probabilidad general de solo estar en tus treinta y comprar algo del conjunto total de datos es de aproximadamente 0.5 Pero PV veces Pff es de aproximadamente 0.75 Así que cuando tienes una dependencia pasando entre estas dos variables, hay una probabilidad condicional pasando, y la relación de PV coma F es igual a P si él veces pf ya no aguanta. Entonces esa es otra forma en que puedes averiguar que tal vez hay una dependencia aquí que está estropeando tus resultados. No obstante, podríamos volver atrás y comprobar esa ecuación que devolvimos en las diapositivas y sólo ver si p a e dado f es de hecho igual a PV coma F sobre PF. Y esa es solo una forma de computar la probabilidad condicional. Si no puedes computar directamente como pudimos en este ejemplo, y lo suficientemente seguro podemos demostrar que eso es cierto. La probabilidad de aecom a F Eso sólo va a ser el número total de compras de niños de 30 años sobre todo el conjunto de datos sobre Pff, que calculamos antes. Eso sí funciona 2.299 a 9, que es exactamente lo mismo que P A E dado f que calculamos camino arriba en la parte superior de esto, ¿
verdad? Entonces vamos a revisar dos veces ese 90.299295 El mismo número que nos levantamos aquí originalmente. Entonces eso es genial. Funcionan las matemáticas. Wow. OK, entonces esto es básicamente un par de formas de averiguar si tienes una dependencia en tus datos que quizás no hayas conocido y una forma de calcular la probabilidad condicional, dadas otras cosas que podrías conocer. Entonces, de todos modos, hagamos una pequeña asignación aquí un poco de reto, si se quiere. Por lo que su tarea en caso de optar por aceptarlo, es modificar el código anterior de tal manera que la probabilidad de compra no varíe con la edad. Entonces recuerda aquí arriba en este primer bloque aquí arriba tenemos esta probabilidad de compra que fue una función de tu edad. Simplemente haz de eso un valor constante. En cambio, mira lo que eso le hace a tus resultados. Entonces si haces eso, puedes generar un nuevo conjunto de datos donde puedas mostrar que PV dado f es aproximadamente el mismo de P y V? Eso te demostraría que ahí no hay condición. Si muestras que para ser verdad, ese PV dar suficiente es el mismo spv entonces no hay dependencia entre esas dos cosas y esa es una forma matemática de encontrar eso. Entonces dale un tiro a eso y a ver si te lo puedes demostrar y te mostraré mi solución a eso en la próxima conferencia. Entonces ahí tenemos algunos ejemplos de volver a usar la probabilidad condicional, los conceptos no tan duros. Simplemente es realmente fácil tropezarse con toda la notación con todas las tuberías y comas, lo que significa cosas diferentes y cosas. Pero una vez que te acostumbras, no
es tan malo. Por lo que espero que tengas la oportunidad de sumergirte en la tarea aquí y probar este pequeño ejercicio de jugar contigo mismo y quitar esa condición y confirmar que probabilidad
condicional termina acabando borrándose. En ese caso, permítanme mostrarles mi solución en la próxima conferencia.
21. Solución de ejercicio: probabilidad de estado: ¿ Hiciste tu tarea? Eso espero. Entonces echemos un vistazo a mi solución al problema de echar un vistazo a cómo la
probabilidad condicional nos dice si hay una relación entre la edad y la
probabilidad de compra en un conjunto de datos falso. Vámonos. De acuerdo, déjame guiarte por mi solución aquí, y esto debería ser bastante sencillo de nuevo. El objetivo aquí era eliminar la dependencia entre tu edad y tu probabilidad de comprar y ver si realmente puedes burlarte de las matemáticas de esa dependencia que la condicionalidad se fue. Entonces si recuerdas de nuestro paseo por este código que genera nuestro conjunto de datos, solíamos tener aquí una línea sobre probabilidad de compra que generaba eso en base a tu edad. Básicamente tardó tu década de edad y dividida por 100 para crear esa condición entre tu edad y lo probable que tengas de comprar algo. Entonces lo que he hecho aquí, en lugar de solo código duro de eso al 40% así que ya no hay ninguna relación entre tu edad y tu probabilidad de comprar algo. Entonces sigamos adelante y regeneremos ese conjunto de datos. Eliminando esa dependencia entre la edad y la probabilidad de compra es ahora que podemos calcular. PFE Dado f Otra vez Esa es la probabilidad de hacer una compra dada tu edad, para algún grupo de edad elegirá nuevamente a los niños de 30 años solo para ser consistentes. Por lo que nuevamente vamos a calcular el número total de compras por los niños de 30 años por el número total de niños de 30 años, y terminamos con el número alrededor del 40%. Y podemos calcular de forma independiente p de e, que es solo la probabilidad de comprar algo en general, independientemente de tu edad, que sale al 40%. Entonces 39.8 40.0, bastante malditos cerca. De acuerdo, entonces en este caso, PV es aproximadamente equivalente a PV dado f un poco diferente solo por
variación aleatoria . Pero es lo suficientemente cerca como para que podamos decir que el TNF probablemente sean variables independientes en este caso. Entonces las matemáticas nos dijeron que p de e dado F es el mismo spv más o menos y lo suficientemente seguro, eso sí refleja el hecho de que quitamos ese empate entre la edad y la probabilidad de compra. Entonces espero que hayas podido alcanzar el mismo resultado y aprender un poco de algo en
el camino sobre la probabilidad condicional y cómo burlarse de esas dependencias entre tus diversas características de tus datos establecidos de las matemáticas. De acuerdo, ojalá llegaras a una solución similar por tu cuenta. Si no, ya
sabes, regresa y estudia mi solución. Está ahí mismo en los archivos de datos de este curso. Si necesitas abrirlo y estudiarlo y jugar con él. Y con eso detrás de nosotros, pasemos al teorema de Bayes.
22. Tede de Bayes': Entonces ahora que entiendes la probabilidad condicional, puedes entender cómo aplicar el Teorema de Bayes, que se basa en la probabilidad condicional. Y es un concepto muy importante, sobre todo si vas en el campo médico pero ampliamente aplicable a, y verás por qué en un minuto te puede decir de manera muy cuantitativa. A veces cuando las personas te engañan con estadísticas. Entonces veamos cómo funciona eso. Ahora que entiendes la probabilidad condicional, podemos hablar del teorema de Bayes. Se oye mucho hablar de esto, pero no mucha gente realmente entiende lo que significa o su significado. Entonces hablemos de basado ahí a un alto nivel aquí. Entonces basado ahí, um, es simplemente esto. La probabilidad de un B dado es igual a la probabilidad de una veces la probabilidad de que se le dé a sobre la probabilidad de B. Muy bien, para que sepas que puedes sustituir A y B lo que quieras. Un ejemplo común son las pruebas de drogas. Entonces podríamos decir, ¿Cuál es la probabilidad de ser un usuario real de un medicamento, dado que dio positivo para ello? Y el teorema basado en la razón es importante es que llama que esto
depende mucho tanto de la probabilidad de a como probablemente de abejas. Por lo que la probabilidad de ser un usuario de drogas, dado que usted dio positivo depende en gran medida de la probabilidad general base de ser un usuario de
drogas y de la probabilidad general de dar positivo. De acuerdo, también
significa que el probablemente se le dé un No es lo mismo que un probablemente un dado ser . Por lo que la probabilidad de ser un usuario de drogas, dado que dio positivo, podría ser muy diferente a la probabilidad de dar positivo, dado que eras un usuario de drogas, para que sepas que puedes ver hacia dónde va esto. Hay un problema muy real donde las pruebas diagnósticas en medicina o las pruebas de drogas arrojan muchos falsos positivos, ¿
verdad? Y aún se puede decir que la probabilidad de que una prueba detecte a un usuario podría ser muy alta. Pero no necesariamente significa que la probabilidad de ser usuario dado que usted dio
positivo es alta. Ahí hay un dos cosas diferentes y basadas y permite cuantificar esa diferencia. Entonces vamos a clavar un poco más ese ejemplo a casa Así que de nuevo, una prueba de drogas podría ser un ejemplo común de aplicar el teorema de Bayes para demostrar un punto. Incluso una prueba de drogas altamente precisa puede producir más falsos positivos y verdaderos positivos. Entonces en nuestro ejemplo aquí, vamos a llegar a unas pruebas de drogas que puedan identificar con precisión a los usuarios de un medicamento el 99% de las veces y en realidad tiene un resultado negativo para el 99% de los no usuarios. Entonces, pero sólo el 0.3% de la población general realmente usa el medicamento en cuestión. OK, entonces tengo una probabilidad muy pequeña de ser realmente un usuario de una droga. Lo que parece una precisión muy alta del 99% no es en realidad lo suficientemente alta, ¿
verdad? Podemos trabajar las matemáticas. Entonces dejemos que evento Amy significa que eres un usuario de alguna droga y evento sea es que has probado positivamente el medicamento que usa esta prueba de drogas. Por lo que necesitamos determinar la probabilidad de probar positivamente en general. Y podemos resolverlo mirando la probabilidad probando positivo si eres usuario y la probabilidad de probar positivo si no eres usuario y eso funciona al 22 punto Abril de eso funciona al 1.3% en este ejemplo Ok, entonces tenemos probabilidad de ser la probabilidad de probar positivamente para el medicamento en general sin saber nada más sobre ti. Si haces las matemáticas, la probabilidad de ser usuario del medicamento Dado que has probado positivamente, ¿
sabes cuál es la probabilidad de un resultado positivo de la prueba? Significar que en realidad eres un usuario de drogas funciona a la probabilidad de ser un usuario de la droga en general, que es del 3%. Sabemos que 3% de la población es un usuario de drogas veces la probabilidad de que se le dé una la probabilidad de probar positivamente. Teniendo en cuenta que su usuario y nuevamente esta prueba tiene un lo que suena como una precisión muy alta del 99% . Por lo que tenemos 0.3% de la población usa la droga veces la precisión I de 99% dividido por la probabilidad de probar positivamente en general, lo que funcionó a 1.3%. Por lo que la probabilidad de ser un usuario real de este medicamento, dado que usted probó positivamente para ello es de sólo 22.8%. De acuerdo,
Entonces, a pesar de que esta prueba de drogas es precisa el 99% del tiempo, sigue proporcionando un resultado falso en la mayoría de los casos en los que estás dando positivo. De acuerdo, la gente pasa por alto esto todo el tiempo. Entonces si hay una lección que aprender desde la base de ahí, es tomar siempre la fuente de las cosas con el trabajo de asalto de grúa que se aplican con base ahí en estos problemas reales. Y a menudo encuentras que lo que suena como una alta tasa de precisión en realidad puede estar dando resultados muy engañosos. Si estás lidiando con una baja incidencia general de un problema determinado, vemos lo mismo en los exámenes de detección de cáncer y otros tipos de exámenes médicos también. Es un problema muy real, y es mucha gente recibiendo una cirugía muy, muy real y muy innecesaria como resultado de no entender basado ahí. Entonces si vas a entrar a la profesión médica con big data, por favor, por
favor, recuerda esta conferencia. Entonces eso se basa ahí. Siempre recuerdo que la probabilidad de algo dado algo más no es
lo mismo , es al revés, y en realidad depende mucho de las probabilidades base de ambas cosas que estás midiendo. Por lo que la probabilidad de que una prueba de drogas sea precisa depende mucho de la probabilidad general de ser un usuario de drogas en la población, no solo de la teocracia de la prueba, cosa
muy importante a tener en cuenta. Y, ya
sabes, siempre mira tus resultados con eso en mente basado ahí y te da las herramientas para cuantificar ese efecto. Espero que resulte útil.
23. Regresión linear: Hablemos de análisis de regresión, tema
muy popular y ciencia de datos y estadística. Entonces todo lo que es tratar de ajustar una curva, algún tipo de función a un conjunto de observaciones. Y luego puedes usar esa función para predecir nuevos valores que aún no has visto. Es todo lo que hay a ello. Entonces, comencemos hablando de la forma más simple de análisis de regresión. Regresión lineal. Hablemos de regresión lineal. Se oye mucho sobre el análisis de regresión en el campo de los días. La ciencia suena a fantasía, pero en realidad es un concepto muy sencillo. A ver. Por lo que la regresión lineal todo lo que es está ajustando una línea recta a un conjunto de observaciones. Eso es todo. Eso es todo lo que hay a ello. Entonces, por ejemplo, digamos que tengo un montón de gente que he medido y las dos características que he medido o estas personas son su peso y su estatura, algunas impactantes, mostrando el peso en el eje X y la altura en el eje Y. Y puedo trazar todos estos puntos de datos. Esa gente nos espera es su estatura, y yo lo pude ver. Eso parece una relación lineal, ¿
no? A lo mejor puedo ajustarle una línea recta y usar eso para predecir nuevos valores. Y eso es lo que hace Lenny Regresión lineal. Entonces en este ejemplo, podría terminar con una pendiente de 0.6 en la intercepción Y de 1 30.2 en este ejemplo sobre que define una línea recta, dada una pendiente en una interceptación Y que se ajuste a los datos que mejor tengo. Y puedo usar esa línea y crear nuevos valores para que veas que los pesos que
observé sólo subieron hasta personas que pesaban 100 kilogramos. ¿ Y si tuviera a alguien que pesara 120 kilogramos? Bueno, podría usar esa línea para luego averiguar ¿Dónde estaría la altura para alguien con 100 20 kilogramos en base a todos estos datos anteriores? Eso es todo. No sé por qué lo llaman Regresión. La regresión implica que estás haciendo algo al revés, y supongo que puedes pensar en ello en términos de tu creación de una línea para predecir nuevos valores a partir de observaciones que hiciste en el pasado hacia atrás en el tiempo. Pero parece un poco de estiramiento. Es sólo un término confuso, toda sinceridad. Y ya sabes otra forma de que oscurecemos un poco lo que hacemos con conceptos muy simples, simples usando terminología muy elegante. Por lo tanto, no dejes que la regresión lineal te haga subir en términos de sonar fantasía. Todo lo que está ajustando una línea recta a un conjunto de puntos de datos. Cómo funciona Bueno internamente utiliza una técnica llamada mínimos cuadrados, mínimos cuadrados ordinarios que también se conoce como OLS. posible que veas ese término también tirado, y la forma en que funciona es que intenta minimizar el error cuadrado entre cada punto y la línea, y el error es solo la distancia entre cada punto de la línea que tienes. Entonces si sumamos todos los cuadrados de esos errores, suena mucho como cuando calculamos variantes derecha excepto en lugar de relativo a los medios a esta línea que estamos definiendo. Podemos medir la varianza de los puntos de datos desde esa línea, y minimizando esa varianza, podemos encontrar la línea que mejor se ajuste a ella. Ahora nunca tendrás que hacer esto tú mismo de la manera difícil. Pero si tuvieras que hacerlo por alguna razón o si solo tienes curiosidad por lo que pasa bajo el capó . Esto describe el algoritmo general aquí para usted de cómo en realidad iría a calcular la pendiente y por qué interceptarse de la manera difícil si lo necesita. En realidad no es tan complicado. El talud simplemente resulta ser la correlación entre las dos variables veces una
desviación estándar y por qué dividido por la desviación estándar en X, y podría parecer un poco raro que la desviación estándar simplemente se arrastra hacia el mapa naturalmente allí. Pero recuerda, Correlación tenía desviación estándar horneada en ella también, por lo que no es demasiado sorprendente que tengamos dedo del pie reintroducir ese término. Entonces se puede poner la intercepción. El intercepto puede entonces ser computado como la media de la Y, menos la pendiente, veces la media de X y otra vez, a pesar de que eso realmente no es tan difícil. Python lo hará todo por ti. Pero el punto es que estas no son cosas complicadas de correr, ya
sabes, realidad
se pueden hacer de manera bastante eficiente. Entonces de nuevo, solo recuerda, mínimos Cuadrados minimiza la suma de errores al cuadrado desde cada punto hasta la línea y otra forma de pensar acerca de la regresión lineal es que estás definiendo una línea que representa el máximo probabilidad de una observación tendida ahí, pero la probabilidad máxima de que el valor Y sea algo para un determinado valor X. Entonces, de nuevo, ya
sabes, gente a veces llama a esta estimación de máxima verosimilitud, y es solo otro ejemplo de personas que le dan un nombre elegante a algo que es muy sencillo . Entonces si escuchas a alguien hablar de estimación de máxima verosimilitud, realmente
están hablando de regresión. Sólo están tratando de sonar realmente inteligentes. Pero ahora ya sabes ese término para para que ustedes dos puedan sonar inteligentes. Hay más de una forma de hacerlo. Hablamos de mínimos cuadrados ordinarios como ser una forma sencilla de ajustar una línea a un conjunto de datos. Pero también hay otras técnicas. Grady y disidencia siendo uno de ellos, y funciona mejor en datos tridimensionales, por lo que tipo de trata de seguir los contornos de los datos para ti. Es muy elegante y obviamente un poco más computacional e caro, pero python no te facilita probarlo. Si lo quieres comparar con los cuadrados ordinariamente,
normalmente, normalmente, sin embargo, mínimos cuadrados es una elección perfectamente buena que estamos haciendo cuando tu regresión y sabes que
siempre es , ah, cosa legítima que hacer. Pero si te encuentras con Grady y disidencia, sabrás que esa es una forma alternativa de hacer a Inglaterra tu regresión y
generalmente se ve en datos dimensionales superiores. Entonces, ¿cómo sé lo buena que es mi regresión? ¿ Qué tan bien se ajusta mi línea a mis datos? Bueno, ahí es donde entra R. Squared y R cuadrado es que también se les conoce como el coeficiente de determinación otra vez . Entonces estoy tratando de encontrar a alguien tratando de sonar inteligente. lo llamo así, pero normalmente se llama R cuadrado. Es la fracción de la variación total y por qué eso lo capturan tus modelos. Entonces, ¿qué tan bien sigue tu línea esa variación que está sucediendo? ¿ Estamos consiguiendo una cantidad igual de variantes muy a ambos lados de su línea o no? Eso es lo que R. Squared ha cumplido con esta medición y en realidad calcular el valor toma uno menos la suma de los errores al cuadrado sobre la suma de las variaciones al cuadrado de la media por lo que no es muy difícil de calcular, pero de nuevo, python te dará funciones que simplemente calcularían eso para ti,
para que nunca actúes realmente hacer esa matemática tú mismo manera de interpretar R al cuadrado, obtendrás un valor que oscila entre 0 y 1 cero. Significa que estás en forma es terrible. No capta ninguna de la varianza en tu en tus datos, y uno es un ajuste perfecto. Por lo que toda la varianza en tus datos se capta por esta línea, lo que todos los diversos a ver a cada lado de tu línea deberían ser los mismos en ese caso, Así que cero es malo. Uno es bueno. Ya es realmente necesario saber algo en el medio es algo en el medio. Por lo que un valor R cuadrado bajo significa soportar ajuste alto R cuadrado. Valor Significa es un buen ajuste. Y, como ven en las próximas conferencias, hay más de una forma de hacer regresión. La regresión lineal es una de ellas. Es una técnica muy sencilla, pero también hay otras técnicas, y puedes usar nuestro cuadrado. Es una medida cuantitativa de lo buena que es una regresión dada a un conjunto de puntos de datos y luego usa eso para elegir el modelo que mejor se ajuste a tus datos. OK, así que juguemos con él y en realidad calculemos alguna regresión lineal y r al cuadrado. Vamos a divertirnos un poco con las manos de regresión lineal. Así que adelante y abre la regresión lineal I Python archivo cuaderno y sigue
conmigo si se quiere, porque lo hacen. Se quiere jugar alrededor de esto para tener una buena sensación de ello. Entonces empezaremos por crear un poco de código python aquí que genere algunos
datos ish aleatorios que, hecho, linealmente correlacionados. Entonces en este ejemplo, voy a fingir algunos datos sobre velocidades de representación de páginas y cuánto compra la gente igual que un ejemplo anterior. Por lo tanto, fabricar una relación lineal entre la cantidad de tiempo que tarda una
carga del dedo del pie del sitio web y la cantidad de dinero que la gente gasta en ese sitio web. Entonces lo he hecho aquí es que he hecho un aleatorio, una distribución normal de velocidades de pago centrada alrededor de tres segundos con una desviación central de un segundo, y he hecho la cantidad de compra de función lineal de eso. Entonces lo estoy haciendo 100 menos las velocidades de página, más alguna distribución aleatoria normal a su alrededor. Veces tres. Y si dispersamos eso, podemos ver que la línea de los datos termina luciendo así. De acuerdo, entonces puedes ver con solo mirarlo que definitivamente hay una relación lineal pasando ahí. Y eso es porque hicimos coda dura, riel relación lineal en nuestros datos fuente. Entonces vamos a ver si podemos burlarnos de eso y encontrar la línea de mejor ajuste usando mínimos
cuadrados ordinarios . Ahora hablamos de cómo hacer ordinariamente cuadrados y regresión lineal en las diapositivas, pero no tienes que hacer ninguna de esas matemáticas tú mismo, porque tesis I paquete pi tiene un paquete stets que puedes importante buscando seguro de CYP I estadísticas de importación. Y entonces solo podrías llamar a las estadísticas. Stotland retrocede en sus dos características. Por lo que ten una lista de velocidades pagadas y una lista correspondiente de montos de compra. El retroceso de carril me devolverá un montón de cosas, así que me devuelve todas estas variables que estoy recuperando esa pendiente la intercepción, y esto es lo que necesito para definir realmente mi mejor línea de ajuste. También me da el nuestro valor del que podemos conseguir que nuestra plaza mida la calidad de ese ajuste y un par de cosas de las que hablarán más adelante en el curso para Ahora solo
necesitamos interceptar Slope en nuestro valor. Entonces sigamos adelante y ejecutemos estos. Entonces ahí está mi línea y sigamos adelante y encontremos la regresión lineal. Mejor ajuste ahora el valor R cuadrado que la línea que recuperamos es 0.99 Eso es casi un punto. Ah, entonces eso significa que tenemos un ajuste realmente bueno, lo cual no es demasiado sorprendente porque nos aseguramos de que hubiera una relación lineal real entre estos datos. A pesar de que hay alguna varianza alrededor de esa línea, están mintiendo capturas a la varianza. Entonces tenemos aproximadamente la misma cantidad de varianza a ambos lados de la línea, cual es algo bueno. Nos dice que sí tenemos una relación lineal y nuestro modelo es un buen ajuste para los datos que tenemos. En realidad trazar esa línea para que este poco de código realmente cree una función para dibujar esa línea roja de mejor ajuste junto a los datos. Entonces un poco más de Matt plot lib magic aquí, vamos a hacer una lista de líneas de ajuste, y vamos a usar esta función de predicción. Escribimos para tomar las velocidades pagadas, que es nuestro eje X y crear la función Y de a partir de eso. Entonces en lugar de tomar las observaciones por cantidad gastada, vamos a encontrar las pronosticadas solo usando la pendiente Times X más la intercepción que recuperamos de la llamada de regresión de tierras arriba. Entonces básicamente, vamos a una gráfica de dispersión como lo hicimos antes para mostrar los datos brutos puntos las observaciones. Y luego también vamos a llamar a plot en esa misma instancia de lote de tubería usando nuestra línea de ajuste que creamos usando la ecuación de línea que recuperamos y mostrarles todos juntos. Haz eso. Y parece así para que veas que nuestro león es de hecho un gran ajuste para nuestros datos va bien, merienda por el medio y todo lo que necesitas para predecir nuevos valores es esta función de predecir. Entonces, dada una nueva velocidad pagada previamente invista, podríamos predecir la cantidad gastada solo usando los tiempos de pendiente la velocidad de C más C pe pagada más la intercepción. Eso es todo lo que hay a ello. Por lo que es hora de ensuciarse las manos. Intenta aumentar la variación aleatoria en los datos de prueba y ve si eso tiene algún impacto. Recuerda el R cuadrado es una medida del ajuste. Cuánto hay que capturar, las variantes. Entonces la cantidad de varianza veremos si realmente hace una diferencia o no. Eso es regresión lineal. Concepto bastante sencillo. Todo lo que estamos haciendo es ajustarnos a una línea recta en lugar de observaciones. Y entonces podemos usar esa línea para hacer predicciones de nuevos valores. Es todo lo que hay a ello. Pero, ¿por qué limitarse a alinearse? Hay otros tipos de regresión. Podríamos hacer ese brazo o complejo. Lo haremos a continuación.
24. Regresión de Polynomial: por lo que hablamos de regresión lineal. regresión polinomial es nuestro siguiente tema, y eso es usar un orden superior. Polinomio es encajar tus datos, por lo que a veces tus datos podrían no ser realmente apropiados para una línea recta. Ahí es donde entra la regresión polinomial. Vamos a bucear en Muy bien. Hablamos de regresión lineal antes, donde encajamos una línea recta a un conjunto de observaciones. Hablemos de regresión polinomial, que es un caso más general de regresión. Entonces, ¿por qué limitarte a una línea recta? A lo mejor tus datos en realidad no tienen una relación lineal. A lo mejor hay algún tipo de curva a ello, ¿verdad? Eso sucede con bastante frecuencia. No todas las relaciones son lineales, pero la regresión lineal es sólo un ejemplo de toda una clase de regresiones que podemos hacer. Entonces si recuerdas, la línea de regresión lineal con la que terminamos estaba fuera de la forma Y es igual a MX más B, donde recuperamos los valores M y B de nuestro análisis de regresión lineal de
mínimos cuadrados ordinarios o cualquier método que elijas. Ahora esto es sólo un polinomio de primer orden o de primer grado, y el orden del grado es el poder de X, un C. Así que ese es el polinomio de primer orden. Pero también podríamos usar un polinomio de segundo orden, y eso se vería como y equivale a X cuadrado más B x más e
Y si estuviéramos haciendo una regresión usando un polinomio de segundo orden, obtendríamos valores de vuelta para A, B y C. O podríamos hacer 1/3 de orden polinomio que tiene un X cubed más B X cuadrado más e x plus D. Y entre más órdenes más altas que obtienes, más complejas son las curvas que puedes representar. ¿ Verdad? Para que conozcas los poderes mawr de X. Has mezclado las formas y relaciones más complicadas que puedes conseguir. Pero más grados no siempre es mejor, ya
sabes. Por lo general hay alguna relación natural en tus datos que realmente no es tan complicada. Y si te encuentras tirando, sabes grados muy grandes en ajustar tus datos, podrías estar más ajustada. De acuerdo, así que si estás si tienes datos, eso es algo así por todo el lugar y tiene muchas variantes que puedes conseguir puedes enloquecer y crear esta línea que, solo, como, sube y abajo para tratar de encajar que los datos son lo más cerca posible. Pero de hecho, eso no representa la relación intrínseca de esos datos. No hace un buen trabajo de predecir nuevos valores. Entonces, siempre empieza por solo visualizar tus datos y piensa en ti sabes, ¿qué tan complicada necesita realmente ser esta curva? Ahora puedes usar nuestro cuadrado para medir qué tan bueno tu ajuste ISS. Pero recuerda, eso es solo medir qué tan bien se ajusta esta curva a tus datos de entrenamiento. Los datos que estás usando para hacer realmente tus predicciones basadas en ello no
miden tu capacidad de predecir con precisión en el futuro. Posteriormente, hablaremos de algunas técnicas para prevenir el sobreajuste denominado test de tren. Pero por ahora, solo
vas a tener que mirarlo y asegurarte de que no estás más
ajustando y lanzando más grados que una función. Entonces lo necesitas. Esto le dará más sentido a Mawr cuando hagamos un ejemplo. Afortunadamente, ninguno. Pie tiene una función de ajuste de poli que hace que sea súper fácil jugar con esto y experimentar con diferentes resultados. Entonces vamos a echar un vistazo. Tiempo de diversión con regresión polinomial. De verdad creo que es divertido, por cierto. Es un poco genial, ver todas esas matemáticas de secundaria en realidad entrando en alguna aplicación práctica. Adelante, abre la regresión polinomial i Cuaderno Python y vamos a divertirnos un poco. Por lo tanto, vamos a crear una nueva relación entre las velocidades de nuestra página y los datos falsos de la cantidad de compra. Y esta vez vamos a crear una relación más compleja. Eso no es lineal. Vamos a tomar una las velocidades pagadas y hacer que sea alguna función de la división de velocidades de página por el monto de compra. Y si hacemos una trama de dispersión, terminamos con esto. Por cierto, si te estás preguntando con esta línea de semilla de punto aleatorio NPR hace eso crea un
valor de semilla aleatorio , y significa que cuando haga operaciones aleatorias posteriores, serán deterministas. Entonces al hacer eso, podría asegurarme de que cada vez que ejecuto esto siendo un poco de código, termine con los mismos resultados exactos, acuerdo, y eso va a ser importante más adelante porque voy a hacer que vuelvas y en realidad prueba diferentes encajes a estos datos para ver comparados los encajes que obtienes. Por lo que es importante que estés empezando con el mismo conjunto inicial de puntos. Por lo que ahí lo tenemos. Se puede ver que Esa no es realmente una relación lineal. Ya sabes, podríamos tratar de jugar línea a ella, y estaría bien que muchos de los datos podrían estar aquí abajo, pero no tanto aquí. Realmente tenemos más de una curva exponencial. Ahora resulta que tarta entumecida tiene una función de ajuste de poli que te permite encajar cualquier
polinomio grado que quieras a estos datos. Entonces, por ejemplo, podríamos decir que nuestro eje X es un array de las velocidades de página que tenemos en nuestro eje Y es un área. El monto de compra que tenemos. Podemos entonces simplemente llamar y P, que es un atajo para tarta entumecida, Paul, si x y y cuatro significando que queremos 1/4 grados polinomio ajuste a este dato. Entonces sigamos adelante y corremos. Eso corre bastante rápido, y luego podemos trazar eso. Entonces vamos a crear un pequeño gráfico aquí que las parcelas son de dispersión grafica puntos originales vs son puntos pronosticados, y se ve así. Entonces en este punto, parece un ajuste razonablemente bueno. Lo que quieres preguntarte, sin embargo, es m I sobre ajuste ¿Mi curva parece que en realidad está saliendo de su camino para
acomodar valores atípicos y no realmente. Ya sabes, realidad no veo toda una locura pasando. Como si tuviera un polinomio de orden muy alto , podría , ya
sabes, colarse aquí para atrapar ese y luego bajara aquí para coger ese y, ya
sabes, conseguir un poco más estable
por aquí, donde tenemos mucha densidad. Y tal vez entonces quisiera que pudiera potencialmente, ya
sabes, ir por todo el lugar tratando de encajar este conjunto de datos de última visita aquí. Entonces tal vez se vaya. Nosotros cortejamos, por ejemplo. Entonces si ves ese tipo de tonterías, ya
sabes, tienes demasiados pedidos demasiados grados en tu polinomio, y probablemente deberías bajarlo de nuevo, porque aunque encaja con los datos que observaste, no va a ser útil para predecir datos que no has visto. Entonces imagina que tengo alguna curva que se desliza aquí arriba y luego volver abajo de nuevo para encajar estos puntos de
datos. Mi predicción para algo en el medio no va a ser precisa, ¿
verdad? Realmente debería estar en el medio aquí así de nuevo más adelante en el curso se hablará principales medios de detectar eso sobre el ajuste. Pero por ahora, sólo el globo ocular. Ahora podemos medir el aire al cuadrado R. Entonces al tomar el por qué y los valores pronosticados que no tenemos son para anotar función en su SK aprendió psíquico aprendió sobre métricas que podemos usar que calcula ese bosque. Entonces,
básicamente, compara un conjunto de observaciones con un conjunto de predicciones y calcula r cuadrado para ti con solo una línea de código y r r código cuadrado para esto resulta ser 10.8 a 9, lo cual no es tan malo. Recuerda, cero es malo. Uno es bueno, apuntando a bastante cercano a uno ya sabes, no perfecto. E intuitivamente eso tiene sentido. Se puede ver que nuestra línea es bastante buena en esta sección de los datos, pero no tan buena aquí y no tan buena aquí arriba y apuntar a sonidos sobre lo correcto. Entonces te quiero,
Teoh, Teoh, agáchate y sucio con estas cosas. Pruebe diferentes órdenes de polinomio. Entonces vuelve aquí arriba a donde corrimos la función poli fit y prueba diferentes valores ahí además de cuatro. Sabes que podrías usar uno, y eso volvería a una regresión lineal. O podrías probar alguna cantidad realmente alta, como ocho. Y tal vez comenzarías a ver sobre ajuste, así que mira qué efecto tiene eso. Ya sabes, vas a querer cambiar eso. Por ejemplo, vayamos a 1/3 grado polinomio. Simplemente sigue bateando carrera para pasar por cada paso, y se puede ver el efecto que tiene. Por lo que nuestro polinomio de tercer grado definitivamente no tan bueno de un ajuste. Y si realmente mides el error r cuadrado, en realidad
es peor cuantitativamente. Pero si voy a
drogarme, podría empezar a ver que estamos ajustando. Así que sólo tienes que divertirte un poco con él, juega alrededor de diferentes valores y consigue una idea de lo que diferentes órdenes de polinomio debido a tu a tu línea aquí, regresión y ensuciarte las manos y trata de aprender algo. Entonces eso es regresión polinomial otra vez. Necesitas asegurarte de que no pongas mawr grados en el problema de lo que necesitas usar solo la cantidad correcta para encontrar lo que parece un ajuste intuitivo a tus datos. Demasiados pueden llevar a un exceso de ajuste demasiado pocos pueden llevar a un mal ajuste. Por lo que puedes usar tanto tus globos oculares por ahora como la métrica R cuadrada para averiguar cuál es el número
correcto de grados. Para tus datos, sigamos adelante.
25. Regresión múltiple: Vamos a sumergirnos en regresión múltiple. Eso es sólo una regresión que toma en cuenta
más de una variable, más de una característica. El concepto es en realidad bastante simple. Es sólo responder a la pregunta, si tengo más de una variable influyendo en lo que estoy tratando de predecir. Entonces básicamente estoy haciendo una regresión que no sólo tengo una característica que estoy midiendo para tratar de predecir algún valor. Tengo muchas características que podrían juntarse. Entonces, por ejemplo, eso podría ser predecir el precio de un automóvil en base a sus muchos atributos. El auto tiene un montón de cosas diferentes que puedes medir que podrían influir en su precio, como su kilometraje, su edad, cuántos cilindros tiene, cuántas puertas tiene, cosas así. Y en realidad puedes tomar todos esos en cuenta y rodar eso en un modelo grande, muchas variables como parte de él. Ahora, tan a menudo como el caso en la ciencia de datos, aquí
hay alguna terminología confusa. Además de la regresión múltiple, que está utilizando múltiples características para predecir un solo valor, también
tenemos el concepto de regresión multivariada. Y pensarías que eso significaría lo mismo, pero no lo hace. Por lo general, cuando hablamos de regresión multivariada, estamos hablando de no sólo tener múltiples atributos de
entidad que estamos tratando de usar para hacer una predicción. Pero también estamos tratando de predecir más de una cosa al mismo tiempo. Entonces tal vez estoy tratando de predecir no sólo el precio de un auto en
función de su kilometraje y edad y número de puertas. También estoy tratando de predecir cuánto tiempo tardará en venderlo o algo así. Eso sería un ejemplo de regresión multivariada donde tenemos múltiples cosas estamos tratando de predecir además de
múltiples características que se están utilizando para hacer esas predicciones. De cualquier manera, sin embargo, la forma en que lo hacemos es en realidad bastante simple. Por lo que podemos simplemente tener en lugar de un solo coeficiente adjunto a alguna variable de entidad única, podemos tener múltiples términos con múltiples variables. Por lo que podemos decir que podemos predecir el precio del valor en base algún valor constante Alpha veces algún coeficiente llamado beta una vez tu primera característica, que dicen que podría ser kilometraje más algún coeficiente beta dos, que podría estar multiplicándose con alguna otra característica como la edad del auto más beta tres veces el número de puertas, lo que quieras hacer. Y esos coeficientes solo miden lo importante que es cada factor para el resultado final real. Ahora esto supone que todas tus características se normalizan entrando en ella. Por lo que en realidad se pueden comparar esos coeficientes juntos de manera justa. Si no se normalizan, ese coeficiente también estará trabajando para escalar esa característica en el resultado final también. Y eso también puede ser informativo si realmente resuelve los valores de Beta-1,
Beta-2 , Beta-3, y cualquier otra cosa que puedas tener. Eso también te puede decir un poco sobre qué características son realmente importantes para tu modelo. Entonces si terminas con un coeficiente muy bajo para una característica dada después de que las cosas se normalicen. Esa podría ser la forma que tiene la naturaleza de decirte que esa característica
en realidad no es muy importante para predecir lo que estás tratando de predecir. Y eso puede ayudarte a simplificar tu modelo al eliminar los datos de características que no necesitas. Entonces eso es algo muy útil. Eso se llama selección de características. Y a menudo es una parte muy importante de construir un buen modelo de aprendizaje automático. Ahora todo esto todavía utiliza mínimos cuadrados. Entonces en nuestro cuaderno vamos a usar algo llamado OLS que significa mínimos cuadrados ordinarios. Y puede manejar múltiples características como esta. Por lo que todavía podemos medir el ajuste de esta cosa en general usando R-cuadrado. no hay nada diferente. Y otra cosa que debemos señalar es que todo esto asume que no hay dependencia entre estas diferentes características. Observe que estoy tratando todas estas características de forma independiente con sus propios coeficientes. Entonces si de hecho existe una relación entre estas características, este modelo no captará eso. Y esto es en realidad un ejemplo de dónde probablemente sería el caso. Por ejemplo, el kilometraje en el auto
probablemente estaría altamente correlacionado con la edad del automóvil. Y este modelo no captará esa relación. De hecho, probablemente estarás bien
solo usando el kilometraje o la edad independientes entre sí. Pero esto podría por lo menos decirte cuál de esas es más importante conservar. Entonces con eso, vamos a sumergirnos y en realidad encender un cuaderno y ver cómo funciona. Hay algo llamado el paquete Statsmodel que facilita las cosas. Y ofrece el modelo OLS que solo podemos usar para dispararnos y hacerla chug lejos y hacerlo todo por nosotros. Entonces hagamos real ese ejemplo de regresión múltiple. Adelante y abre aquí el archivo de cuaderno de regresión múltiple, y deberías estar viendo algo como esto. De acuerdo, veamos regresión múltiple en acción. Afortunadamente, el paquete Statsmodel tiene un modelo de regresión OLS que puede manejar regresión múltiple. Es bastante fácil de usar, aunque hay unas cuantas canchas de las que hablaremos aquí de las que debes saber. Lo que vamos a tratar de hacer es predecir los precios de los
autos usando regresión múltiple sobre diversos atributos de los autos. Por ejemplo, el kilometraje, el número de cilindros en el número de puertas. Y sí tengo un conjunto de datos real para que ustedes aquí jueguen con eso que he subido a nuestra página web. Entonces lo primero que vamos a hacer es importar pandas y llamar a su función de lectura Excel para cargar esta hoja de cálculo Excel de un montón de datos sobre autos en sus atributos y para qué vendieron. Y vamos a cargar eso en un DataFrame llamado df. Entonces sigamos adelante y Shift Enter para hacer eso. Ahora si te dan un fracaso, simplemente lo están intentando de nuevo. A veces acceder a internet desde un cuaderno puede ser un poco poco poco confiable, pero normalmente si lo intentas de nuevo, las cosas se pondrán al día y funcionará la segunda vez. Muy bien, así que intentemos visualizar estos datos. Lo primero que normalmente quieres hacer cuando estás tratando con un nuevo conjunto de datos es inspeccionar los datos y asegurarte de que puedas sentirte cómodo con ellos y manipularlos y
sacarle información y asegurarte de que es lo que esperar. Entonces eso es todo lo que vamos a hacer en esta siguiente cuadra. Vamos a cargar matplotlib para poder trazar cosas, importaremos el paquete NumPy para poder manipular nuestros datos. Y crearemos un nuevo dataframe df que solo extrae las características de kilometraje y precio de nuestro DataFrame original de la hoja de cálculo de Excel que cargamos como df. Entonces ahora todo lo que vamos a tratar de lidiar con C. ¿ Hay alguna relación entre el kilometraje y el precio? Pensarías que lo habría, ¿verdad? Pensarías que los autos de mayor kilometraje en general costarían menos que los autos de bajo kilometraje. Entonces, veamos si eso es cierto. Vamos a reventar esto. Entonces vamos a crear DataFrame de
un bin y vamos a llamar a np.arange. Lo que esto va a hacer es romper nuestros datos en trozos de 10 mil millas entre 0 y 50000 millas. Lo tengo. Entonces esto me va a devolver un rango de datos entre 010 mil millas, 10000 y 20000 millas, todo el camino hasta 50 mil millas. Y luego crearemos estos grupos y tomaremos esos datos de características de kilometraje y precio, agruparlos por esos compartimentos que creamos y calcularemos la media para cada uno de esos compartimentos. Por lo que ahora los grupos van a contener el precio medio para cada uno de esos rangos de millas. Imprimiremos eso, nos aseguraremos de que parezca razonable, y luego lo trazaremos y veremos qué tenemos. Entonces vamos a golpear Shift Enter. Y se puede ver aquí que sí tenemos esos rangos que esperábamos. Por lo que entre 010 mil millas, el kilometraje medio fue de 4588 y el precio medio fue de 24 mil dólares. Trabaja a tu manera hasta de 30 a 40 mil millas y el
precio medio baja hasta 19,463 millas. Y si lo trazas, entonces ves lo que esperas. Coches de mayor kilometraje en general cuesta menos que los autos de bajo kilometraje. Ahora te avisaré que hay algunos valores atípicos en este conjunto de datos. Y esto podría no ser cierto todo el camino más allá de 50 mil millas. Entonces tal vez haya algunos autos deportivos de colección que tienen alto kilometraje, pero aún así valen mucho, ¿verdad? Por lo que este conjunto de datos es en realidad un buen con el que jugar para lidiar con los valores atípicos. A si quieres profundizar en eso y te
animaré a hacerlo al final de este ejercicio. De todos modos, nuestro objetivo ahí era solo asegurarnos de que estemos cómodos, los datos pudieron cargarlo, somos capaces de manipularlo hasta ahora, tan bueno. Está bien, entonces construyamos un modelo. Por lo que vamos a empezar importando Statsmodel API como SM. Entonces esto va a ser importando el modelo que realmente vamos a estar usando aquí. Vamos a importar escalador estándar desde el preprocesamiento de puntos SKLearn. Y vamos a crear una nueva instancia de escalador estándar llamado escalado escalado estándar es y lo que vamos
a usar para normalizar todos nuestros datos de características para que todos estén en el mismo rango general. Eso hace que los modelos funcionen mucho mejor en algunos casos incluyendo éste. Entonces, empecemos extrayendo los datos de las características que queremos. Vamos a volver a nuestro marco de datos original que se cargó directamente desde esa hoja de cálculo de Excel. Y solo extraiga tres características, kilometraje, número de cilindros y número de puertas. Y por convención llamamos a nuestra matriz de funciones X, mayúscula X. Así que vamos a tratar de construir un modelo que sólo trate de predecir el precio basado en el kilometraje, número de cilindros, y el número de puertas. Ahora en realidad hay muchos otros datos ahí y los datos de origen y por ejemplo, la marca y el modelo del auto que sería bastante importante también se pensaría. Pero este tipo de modelo de regresión, realmente no se
puede mezclar y emparejar datos ordinales con datos numéricos. Entonces tenemos que escoger uno u otro. En este caso, vamos a ir con algunas características numéricas. Y por eso estamos emitiendo cosas como marca y modelo del auto. Por convención, minúscula y son nuestras etiquetas, las cosas que estamos tratando de predecir en nuestro caso, ese es el precio, ¿vale? Ahora necesitamos preprocesar esos datos de características para que funcionen bien con nuestro modelo. Esto es algo bastante común de hacer. Por lo que vamos a llamar a escala, que es nuestro escalador estándar ajuste transformar y pasar en ese cilindro de mielina refrendar características de nuestra radiografía, extraer los valores de eso, pasarlo a transformarse en ajuste y eso nos devuelven cilindros de kilometraje
escalados y puertas que se habían escalado hacia abajo en una distribución normal. Entonces más o menos una curva de campana entre el negativo 11 y vamos a meter eso de nuevo en la radiografía original en las mismas columnas con las que empezamos. Esta línea de nuevo va a escalar las entidades interiores del cilindro de kilometraje dentro ese conjunto de datos en una curva de campana entre el negativo 11 en una distribución normal. Este siguiente tobogán es una especie de peculiaridad de OLS. Por lo que recordarán de la conferencia que hay un término B, una intersección y constante para cada uno, para donde partimos. Y a menos que agregue una columna constante a sus datos de entidad, el modelo no puede crear eso. Por lo que para permitir que tenga una intersección y, para tener que sea constante en el modelo, necesitamos llamar a Statsmodel dot add constant y pass en nuestro array de funciones. Son todo lo que hace es agregar una columna llena de unas al inicio de nuestro DataFrame. Imprimiremos eso y nos aseguraremos de que se vea como esperamos. Y entonces realmente entrenaremos al modelo en sí. Y eso es un solo liner aquí. Nos limitamos a llamar a Statsmodel dot OLS, pasamos nuestros datos etiquetados, pasamos nuestros datos de función y llamamos
fit para ajustar esos datos a nuestro modelo y crear un nuevo estimador. A continuación imprimiremos información resumida sobre cómo fue esa capacitación. Y nos dirá, nos dará algunas ideas sobre lo que realmente está pasando dentro del modelo ahí mismo. Entonces cambiemos Entrar y arranquemos eso bastante rápido. De acuerdo, así que lo primero que imprimimos fue esa matriz de funciones que se ha reducido. Y se puede ver que tenemos esa columna constante que nos pegamos al frente ahí Eso se va a utilizar para modelar la intercepción y del modelo sea 0. Y se puede ver que nuestros datos de características se han escalado más o menos en el rango más o menos negativo 1 en una distribución normal. Entonces parece que eso funcionó. Después entrenamos el modelo e imprimimos información resumida sobre el modelo del tren. Y al mirar esto, puedes obtener algunas ideas. R-cuadrado y todas las métricas habituales aquí están para que lo miren. De verdad llegó a leer la documentación sobre lo que realmente significan
estas estadísticas porque no siempre son lo que esperas. Por ejemplo, el r-cuadrado se basa en una, una métrica ponderada que no es lo que normalmente pensarías como r-cuadrado, pero aún hay comparable ya que estás ejecutando modelos diferentes, diferentes en los mismos datos. Echemos un vistazo a los coeficientes reales aquí. Entonces esto es como la carne de la salida de nuestro modelo aquí. Estos son los coeficientes reales para esos términos b0, b1, b2, b3 en nuestro modelo de regresión múltiple. Por lo que puedes ver nuestro término constante es en realidad bastante grande. 21,340 dólares ish es nuestra y-intercept. kilometraje en realidad tiene un coeficiente negativo. Entonces de nuevo, eso tiene sentido porque a medida que aumentas un kilometraje, el precio disminuiría. También estamos viendo que los cilindros tienen un impacto realmente grande en ello. Por lo que el número de cilindros en el auto en realidad parece ser la mayor magnitud absoluta de coeficiente que vemos aquí. Por lo que más bien sorprendentemente, el número de cilindros parece afectar al modelo más de lo que nada fue a ver que viniera. Pero supongo que tiene sentido. Ya sabes, si tienes vehículos de cilindro realmente alto, probablemente
estés en el mundo de como súper autos exóticos, ¿verdad? Entonces esto podría ser impulsado por valores atípicos donde alguien tiene algo, ya
sabes, superdeportivo de millones de dólares con diez cilindros. Y eso podría estar sesgando a todo este modelo, a menudo haciendo cosas raras. Entonces otra vez, los valores atípicos o algo para profundizar y hablar de eso más tarde. Número de puertas, sorprendentemente también un coeficiente negativo. El número de puertas, más puertas, no soy yo más dinero, resulta. Y si vuelves a pensar en eso, ya
sabes, autos
deportivos, coops deportivos, tienden a ser de dos puertas y tienden a ser caros. Entonces un poco de una perspicacia interesante y los datos solo de mirar estos coeficientes y nada más. Muy bien, seguir adelante. Entonces esta fue en realidad una forma bastante complicada y compleja
de descubrir que más puertas no significa más dinero. Y quiero reiterar eso. Siempre quieres ir por la solución más simple cuando puedas. Por lo que podría haber averiguado eso con una línea de código aquí. Mucho más sencillamente, si solo agrupaba mis datos por el número de puertas y computadora, el precio medio para cada conjunto de números de puertas. A ver qué se nos ocurre. Entonces ahí mismo solo puedo ver con esa simple línea de código sin construir un modelo grande de aprendizaje automático de fantasía, que el precio medio de un vehículo de dos puertas es de 23,800 dólares, mientras que el precio medio de una puerta de cuatro es de 20,580 dólares. Por lo que podría haber llegado a esa conclusión mucho más fácilmente y con menos complejidad si quisiera. Tan poca parábola lateral ahí y cómo la sencillez suele ser algo bueno. De todos modos. Entonces tenemos este modelo que vamos a hacer con él. Entonces digamos que quieres hacer una predicción real para un auto ficticio o algún auto nuevo que te hayas encontrado? Bueno, no es tan sencillo como
pensarías que sería volver a una predicción real usando ese modelo. Pero así es como lo haces. Entonces, en primer lugar, vamos a fabricar este nuevo auto falso que tiene 45 mil millas, ocho cilindros y cuatro puertas. Entonces eso es lo que significa esa matriz ahí. En primer lugar, necesitamos escalar eso en el mismo rango que se utilizó para entrenar a nuestro modelo. Entonces vamos a tomar esa misma instancia
de escala de escalar estándar que teníamos antes y llamar transformar en ella para escalar este coche
en particular de nuevo al mismo rango que usamos para entrenar realmente el modelo. Y de esa manera será compatible con un modelo que hicimos. También tenemos que insertar esa columna constante también otra vez. Entonces vamos a llamar numpy dot insert. Vamos a extraer esos datos de características de escalado, que es lo que llamamos a esa matriz resultante de nuestro auto ficticio. Vamos a decir que queríamos insertar en la posición 0, el número uno. De acuerdo, eso es todo lo que está pasando aquí. Entonces imprimirá eso, asegurarnos de que eso es lo que esperamos que sea. Por último, podemos llamar a predecir en nuestro estimador que creamos con ese vehículo ficticio que creamos y recuperar un precio de venta predicho para ello. Entonces sigamos adelante y corramos eso. Ahí vamos. Por lo que podemos ver que nuestra matriz de características de entrada aquí tiene esa columna constante 1 y nuestros datos de función escalados para el kilometraje, número de cilindros y el número de puertas. Y volvió con un precio predicho en este caso de 27 $1658, que está en el estadio de nuestros datos. Entonces creo que esa es una estimación razonable. Por lo que ahí lo tienes. Regresión múltiple en acción usando algunos datos reales de las ventas reales de autos poco poco. Y supongo que es una especie de conjunto de datos viejo, pero, ya sabes, los precios de los
autos no han cambiado tanto, de todos modos
no los autos usados. Como siempre, los animo a juguetear más con esto por su cuenta. Intenta descargar esa hoja de cálculo XLS de nuestra página web allí. Simplemente puedes usar ese enlace que estaba en el primer bloque de ahí y en realidad descargarlo a través tu navegador si quieres y familiarizarte más con lo que está pasando. Entonces en la actividad aquí, sugerí tal vez tratar de
meterse con el número de puertas y ver si en realidad se pueden fabricar algunos datos para hacer una influencia más interesante o tal vez diferente en el número de puertas en el precio. Y tal vez podamos divertirnos con él y crear autos que tengan 10 puertas o algo así para tratar de ver si puedes sesgar las cosas de una manera u otra. También sería buena idea echar un vistazo a los datos y tratar de identificar algunos de esos valores atípicos de los que estábamos hablando. Intenta quitarlos y ve qué hace eso a la calidad de tu modelo. Creo que, como dije, podría
haber algunos súper autos ahí dentro que estén tirando cosas por los tipos más comunes de autos que la gente suele comprar. Entonces me divierto un poco con él y juguetear si tú, si estás tan inclinado. Y eso es regresión múltiple en pocas palabras, de nuevo, todo lo que estamos haciendo es hacer regresión en múltiples características al mismo tiempo y asignar diferentes coeficientes a cada característica para tener un solo modelo de regresión que podemos usar para hacer predicciones basadas en más de una característica.
26. Modelos de multinivel: Hablemos de modelos multinivel. Este definitivamente es un tema avanzado, y no voy a entrar en un montón de detalles aquí. Mi objetivo aquí es solo presentarte el concepto de modelos multinivel y permitirte entender algunos de los retos y cómo pensar en ellos. Cuando las estás juntando, eso es todo. Entonces el concepto aquí es que algunos efectos sucedieron en diversos niveles diferentes en la jerarquía. Entonces, por ejemplo, tu salud tu salud podría depender de cuán sanas sean tus células individuales. Y esas células podrían ser una función de lo saludables que los órganos que están dentro de nuestro y la salud de tus órganos podrían depender de la salud de ti en su conjunto, y tu salud podría depender en parte de la salud de tu familia y del medio ambiente tu familia te da a ti y la salud de tu familia, a su vez, podría depender de algunos factores de la ciudad en la que vives. ¿ Cuánto delito hay, Cuánto estrés hay, cuánta contaminación hay? ¿ Y aún más allá de eso? Podría depender de factores en todo el mundo en los que vivimos puede ser justo el estado de tecnología
médica en el mundo es un factor, ¿no? Otro ejemplo de tu riqueza. ¿ Cuánto dinero ganas? Bueno, eso es un factor de tu duro trabajo individual, pero también es un factor del valor de tus padres. ¿ Sabías cuánto dinero pudieron invertir en tu educación y en el entorno en el que creciste? Y a su vez, ¿qué tal el de tus abuelos? ¿ Qué tipo de entorno fueron capaces de crear? Y qué tipo de educación fueron capaces de ofrecer para tus padres, que a su vez influyó en los recursos que tienen disponibles para tu propia educación y actualización traída trayendo. Por lo que estos son todos ejemplos de modelos multinivel donde existe una jerarquía de efectos que influyen entre sí a escalas más grandes y grandes. De acuerdo, ahora el reto de los modelos multinivel es tratar de averiguar mientras ¿cómo modelo estas interdependencias? ¿ Cómo modelo todos estos diferentes efectos y cómo se afectan entre sí? Se ve la línea de atención a la salud, por cierto, Así que el reto aquí es identificar los factores en cada nivel que realmente afectan a lo que estás tratando de predecir. Entonces estoy tratando de predecir en general sabes s a T puntajes, por ejemplo. Bueno, sé que eso depende en parte del niño individual que esté tomando la prueba. Pero, ¿qué es lo que importa del niño? Bueno, podría ser la genética que podría ser. Um, ya
sabes, la su salud individual. Ya sabes, el individuo, ya
sabes, rezando tamaño que tienen. Se puede pensar en cualquier número de factores que afectan al individuo que podrían afectar su puntuación S a T. Y luego, si subes otro nivel, mira su ambiente hogareño para lucir a su familia. No. ¿ Qué tiene de sus familias que podrían afectar sus puntajes de S A T? ¿ Cuánta educación pudieron ofrecer? ¿ Son los padres capaces realmente de tutorizar a los Niños en los temas que están en el S A. T? Todos estos son factores en ese segundo nivel. Eso podría ser importante. ¿ Y su vecindario? El índice delictivo de ese barrio podría ser importante. Ya sabes, las instalaciones que tienen para los adolescentes y mantenerlos alejados de las calles, cosas así. Ahora, la idea es que quieres seguir mirando estos niveles superiores, pero cada nivel identifica los factores que impactan cosa que estás tratando de predecir, y puedo seguir subiendo a la calidad de los maestros en su escuela, el financiamiento del distrito escolar, las políticas educativas a nivel estatal. Se puede ver que hay diferentes factores en diferentes niveles en absoluto se alimentan de esta cosa que estás tratando de predecir. Y algunos de estos factores podrían existir en más de un nivel. Por lo que el índice de criminalidad, por ejemplo, a nivel local y estatal. Tienes que averiguar cómo todos esos se interrelacionan entre sí también. Cuando haces modelado multinivel. Está bien. Y como se puede imaginar, esto se pone muy duro y muy complicado muy rápidamente. Es realmente mucho más allá del alcance de este curso, no sólo el punto que estás en este momento en este curso, sino cualquier curso introductorio en ciencia de datos, Esto es cosas duras, sus libros gruesos al respecto. Haces un curso completo al respecto. Ese sería un tema muy avanzado. El único motivo por el que hasta lo estoy mencionando en este curso es porque lo he visto mencionado en descripciones de puestos como algo que quieren que sepas. En un par de casos, nunca
he tenido que usarlo en la práctica. Pero creo que lo importante desde el punto de vista de conseguir un día de carrera de la ciencia es que al menos estás familiarizado con el concepto, y ya sabes lo que significa y algunos de los retos que implica crear un
modelo multinivel . Entonces espero haberles dado esos conceptos con que podemos pasar a la siguiente sección. Por lo que ahí tienes los conceptos de modelos multinivel. Es un tema muy avanzado, pero hay que entender cuál es el concepto, al
menos, y el concepto en sí es bastante sencillo. Simplemente estás mirando los efectos que diferentes niveles, diferentes jerarquías cuando estás tratando de hacer una predicción. Entonces tal vez haya diferentes capas de efectos que tienen impactos entre sí, y esas diferentes capas podrían tener factores que se interrelacionan
también para relacionarse entre sí . modelado multinivel trata de tomar en cuenta todas esas jerarquías
y factores diferentes y cómo interactúan entre sí. Eso es todo lo que necesitas saber. Por ahora,
27. Aprendizaje, entrenamiento / prueba: Hablemos de algunas técnicas de aprendizaje automático más. Y uno de los conceptos fundamentales detrás del machine learning es algo llamado
test entrenado que nos permite evaluar muy hábilmente lo bueno que
es un modelo que hacemos en machine learning . Entonces vamos a aprender más sobre eso. Hablemos del aprendizaje automático y específicamente de la diferencia entre el aprendizaje automático
supervisado y no supervisado. Nos estamos metiendo en las cosas interesantes aquí, así que vamos. Entonces, ¿qué es el aprendizaje automático? Bueno, si lo buscas en Wikipedia o lo que
sea, dirá que sus algoritmos que pueden aprender de la observación todos los datos y pueden hacer predicciones basadas en ella suena realmente elegante. Muy bien, como cosas de inteligencia artificial que sabes, gustaría que tuvieras un cerebro palpitante dentro de tu computadora. Pero en realidad, estas técnicas suelen ser muy simples, y ya habríamos hecho esto bien. Si miras las regresiones, tomamos un conjunto de datos observacionales. Nosotros violinamos línea a ella, y luego podríamos usar esa línea para hacer predicciones. Entonces por esta definición, eso es aprendizaje automático, y es bastante malditamente simple. Y sí, quiero decir, tu cerebro funciona así, también, así que, ya
sabes, es un poco divertido pensar en ello. ¿ Hay alguna idea en estos algoritmos sobre cómo funciona realmente tu cerebro? A lo mejor hay debajo de todo, realmente
hay algo muy sencillo pasando ahí dentro, pero ese es un tema para un curso diferente. Entonces hablemos de los dos tipos diferentes de aprendizaje automático de los que hablamos supervisado y no supervisado. A veces puede haber una especie de línea borrosa entre los dos, para ser honesto. Pero la definición básica de aprendizaje no supervisado es que no estás dando a tu modelo ninguna respuesta para aprender de tu solo presentarlo con un grupo de datos, y trata de darle sentido, dado que no hay información adicional. Entonces, por ejemplo, digamos que le doy un montón de objetos diferentes, ya
sabes, bolas y cubos y conjuntos de dados y demás. Y tengo algún álbum que agrupará estos objetos en las cosas que son similares entre sí, basado en alguna métrica de similitud. De acuerdo, ahora no lo he dicho antes de tiempo. ¿ Qué categorías? Ciertos objetos pertenecen a Teoh. No tengo una especie de hoja de trucos que pueda aprender de donde tengo un conjunto de
objetos existentes en mi categorización de categoría correcta de la misma. Tiene que en para esas categorías por sí solo. Entonces ese es un ejemplo de aprendizaje sin supervisión donde no tengo un conjunto de respuestas de las que lo estoy dejando aprender. Sólo estoy tratando de que se reúna. Su propia respuesta se basa únicamente en los datos que se le presentan. De acuerdo, entonces el problema con eso es que no necesariamente se sabe
con qué se le ocurrirá el disco . Entonces si le di un montón de estos objetos en esta diapositiva, ¿va a agrupar las cosas en cosas que están alrededor de cosas que son grandes versus
cosas pequeñas que son rojas versus azules? No lo sé. Va a depender de la métrica que le dé por similitud entre artículos, principalmente. Pero a veces encontrarás cúmulos que son sorprendentes y emergen que no esperabas
ver . Entonces ese es realmente el punto del aprendizaje supervisado por la ONU. Si no sabes lo que buscas, podría ser una poderosa herramienta para descubrir clasificaciones que ni siquiera sabías que estaban ahí. eso lo llamamos una variable latente. Por lo que alguna propiedad de tus datos que ni siquiera sabías estaba allí originalmente pero aprendizaje
sin supervisión puede burlarse por ti. Entonces un ejemplo. Digamos que estaba agrupando gente en lugar de, ya
sabes, pelotas y Dyson ¿Qué no? Estoy dirigiendo un sitio de citas, y quiero ver qué tipo de personas tienden a agruparse aquí. Hay algunos atributos que las personas tienden a agrupar alrededor, que tienden a gustarles y salir entre sí o lo que sea. Y podrías encontrar que los cúmulos que emergen no se ajustan a tus
estereotipos predisponentes . A lo mejor no se trata de estudiantes universitarios versus, ya
sabes, mediana edad o personas que están divorciadas y lo que no o su policía religiosa. A lo mejor si miras los clústeres que realmente emergen de ese análisis, aprendes algo nuevo sobre tus usuarios y realmente descubres que hay algo más importante que cualquiera de esas características existentes de tu gente que realmente cuentan para si se les gustan el uno al otro. Entonces ese es un ejemplo de aprendizaje no supervisado que proporciona resultados útiles. De acuerdo, Otro ejemplo. Agrupar películas en base a sus propiedades. Ya sabes, si fueras a ejecutar clustering en un conjunto de películas de,
como, como, imdb o algo así, tal vez los resultados te sorprendieron. A lo mejor no se trata sólo del género del cine. A lo mejor hay otras propiedades como la edad de la película o la longitud corrida, o en qué país se estrenó que son más importantes, simplemente nunca se sabe. O podríamos analizar el texto de las descripciones de los productos y tratar de encontrar los términos que más significan para una determinada categoría. Nuevamente, quizá no
sepamos necesariamente con antelación qué términos son las palabras más indicativas de que un producto esté en una categoría determinada. Pero a través de aprendizajes no supervisados, ahora
podemos burlar esa información latente. En contraste, aprendizaje
supervisado es un caso en el que tenemos un conjunto de respuestas de las que el modelo puede aprender . Por lo que le damos un conjunto de datos de entrenamiento en este caso que el modelo aprende de Hennequin y para las relaciones entre las características y las categorías que queremos, luego aplicar eso a nuevos valores inéditos y predecir información sobre ellos. Entonces, volviendo a nuestro ejemplo anterior, donde estamos tratando de predecir los precios de los autos basados en los atributos de esos autos, ese es un ejemplo donde estamos entrenando a nuestro modelo usando respuestas reales. Por lo que tengo un conjunto de autos conocidos en sus precios reales por los que vendieron. Entrené al modelo en ese conjunto de respuestas completas, y luego puedo crear un modelo que pueda usar para predecir los precios de autos nuevos que no
he visto antes. Entonces ese es un ejemplo de aprendizaje supervisado. ¿ Le estabas dando un conjunto de respuestas para aprender de,ya
sabes, ya
sabes, las categorías asignadas a
tu partido o lo que sea a un conjunto de datos y luego usa eso para construir un modelo que pueda usar para predecir nuevos valores a partir de? Entonces, ¿cómo evalúas el aprendizaje supervisado? Entonces lo hermoso del aprendizaje supervisado es que puedo usar un truco llamado
test de tren , y la idea aquí es, ¿Qué pasaría si fuera a dividir mi observación todos los datos de los que quiero que mi dedo modelo aprenda en dos agrupa un conjunto de entrenamiento y un conjunto de pruebas. Entonces cuando realmente entrené a mi modelo cuando construyo mi modelo basado en los datos que
tengo, solo hago eso con parte de mis datos que estoy llamando a mi conjunto de entrenamiento bien, y reservo otra parte de mis datos, y voy a usar eso para propósitos de prueba para poder construir mi modelo usando un subconjunto de mis datos para datos de entrenamiento. Y luego puedo evaluar el modelo que sale de eso y ver si puede
predecir con éxito las respuestas correctas para mis datos de pruebas. Entonces, ¿ves lo que hice ahí? Tengo un conjunto de datos. Donde ya tengo la respuesta es que puedo entrenar a mi modelo desde, pero voy a retener una parte de esos datos y realmente usar eso para probar mi modelo que se generó usando el conjunto de entrenamiento. De acuerdo, entonces eso me da una forma muy concreta de probar qué tan bueno es mi modelo en datos inéditos. Porque en realidad tienen un poco de día que dejo a un lado con el que lo impugno. Y luego puedes medir cuantitativamente qué tan bien lo hizo usando R cuadrado o alguna otra métrica como, error cuadrado de
rutina, cosas así. Y, ya
sabes, puedes usar eso para probar un modelo contra otro y ver cuál es el mejor modelo para un problema
dado. Puedes afinar los parámetros de ese modelo y usar la prueba entrenada para maximizar la precisión de ese modelo en tus datos de prueba. Tan buena manera de evitar el sobreajuste. Hay algunas adversidades. Necesitas asegurarte de que tanto tus conjuntos de datos de entrenamiento como de prueba sean lo suficientemente grandes como para ser
realmente representativos de tus datos. Necesitas asegurarte de que estás atrapando todas las diferentes categorías y fuera mentirosos que te importan tanto en el entrenamiento como en las pruebas. Para obtener una buena medida de su éxito y para construir un buen modelo, haces que tengas que asegurarte de que seleccionaste de esos conjuntos de datos al azar. Entonces no solo estás tallando tu conjunto de datos y dos y diciendo que todo lo que queda de aquí es entrenamiento y derecho de aquí es pruebas. Quieres muestrear eso aleatoriamente porque podría haber algunos patrones secuencialmente en tus datos que no conoces. Pero fundamentalmente, es como dije, una gran manera de protegerse contra el sobreajuste. Entonces si eres un modelo es más apropiado y simplemente salir de su camino para aceptar valores atípicos en tus datos de entrenamiento,
bueno, bueno, eso se va a revelar cuando lo pongas en contra de un infijo visto de datos de prueba, ¿
verdad? Porque todos esos giros para los valores atípicos no ayudarán con los aliados que no ha visto antes . Ahora, prueba de
tren no es perfecta puedes obtener resultados engañosos de que puede ser tu muestra tamaños aire a pequeña como ya hablamos. O tal vez la probabilidad pseudo aleatoria de tus datos de entrenamiento en tus datos de prueba se vean notablemente similares. En realidad sí tienen un conjunto similar de valores atípicos, y aún puedes estar más ajustada, ¿quién sabe? Y se puede ver en este ejemplo Sí, puede
suceder. Por lo que hay una manera de evitar que dos llamados K fold validación cruzada y harán un ejemplo de esto más adelante en el curso. Pero el concepto básico es que haces prueba de tren muchas veces. Por lo que en realidad dividiste tus datos no en un solo conjunto de entrenamiento en un conjunto de pruebas que pongas tus datos en múltiples segmentos asignados aleatoriamente. Segmentos K. De ahí viene la K y se reserva uno de esos segmentos es sus datos de prueba. Y luego comienzas a entrenar a tu modelo en los segmentos restantes y mides su rendimiento frente a tus pruebas a establecer. Y luego tomas el rendimiento promedio de cada uno de esos conjuntos de entrenamiento, modela resultados y tomas su puntuación promedio R al cuadrado. Entonces de esta manera estás entrenando en diferentes rebanadas de tus datos midiéndolas contra el mismo conjunto de pruebas. Y de esa manera, si tienes un modelo, se acabó Apropiando a unos segmentos particulares de tus datos de entrenamiento que serán promediados por los otros que están contribuyendo a una cuidadosa validación cruzada tendrá más sentido más tarde. En el transcurso de, solo
quiero que sepan que esta herramienta existe para realmente hacer la prueba de tren aún
más robusta de lo que ya es. Entonces vamos a jugar en realidad con algunos datos y en realidad evaluados usando prueba entrenada.
28. Uso de entrenar y prueba para evitar la inhabilitación: pongamos la prueba de tren en acción para que puedas recordar que una regresión es se puede pensar una forma de aprendizaje automático supervisado. Entonces, solo tomemos una regresión polinomial, que ya cubrimos antes en este curso y usemos pruebas capacitadas para tratar de encontrar el polinomio de grado
adecuado para ajustarse a un conjunto determinado de datos. Entonces al igual que en nuestro ejemplo anterior, vamos a configurar un pequeño conjunto de datos falsos de velocidades pagadas generadas aleatoriamente y
montos de compra , y voy a crear una extraña relación entre ellos. Eso es una especie de exponencial en naturaleza. Entonces sigamos adelante y generemos esos datos. Se va a utilizar una distribución normal de datos aleatorios tanto para velocidades pagadas como para
monto de compra usando esta relación aquí. Entonces a continuación voy a dividir esos datos. Voy a tomar el 80% de mis datos, y tenemos que reservar eso para mis datos de entrenamiento. Por lo que sólo el 80% de estos puntos se van a utilizar para entrenar al modelo. Y luego voy a reservar el otro 20% para probar ese modelo contra datos inéditos. OK, entonces solo voy a usar la sintaxis pitones aquí para dividir una lista en el 1er 80 puntos van a ir al set de entrenamiento y los últimos 20. Todo después de los 80 va a ir a prueba. Entonces recuerda que desde nuestro curso de Python Basics, cubrimos esa sintaxis antes, y haré lo mismo por los montos de compra ahora en las diapositivas. Yo sí dije que no deberías simplemente rebanar tu conjunto de datos en así. Debes probarlo aleatoriamente para entrenamiento y pruebas. En este caso, funciona porque mis datos originales se generaron aleatoriamente de todos modos, así que realmente no hay rima ni razón para donde cayeron las cosas. Pero en los datos del mundo real, querrás barajar esos datos antes de que los dividiera. Y hay un método aleatorio de puntos que puedes usar para ese propósito. Además, si estás usando el paquete Pandas, ahí hay algunas funciones muy práctica para hacer conjuntos de datos de entrenamiento y prueba automáticamente para ti. Pero sólo lo vamos a hacer usando una lista de python aquí solo para que sea simple. Entonces visualicemos nuestro conjunto de datos de capacitación con el que terminamos. Entonces haremos una trama de dispersión de nuestro entrenamiento, velocidades
pagadas y montos de compra, y parece que básicamente 80 puntos seleccionados al azar del original del conjunto de
datos completo tiene básicamente las mismas formas. Eso es algo bueno. Es representante de nuestros datos. Eso es importante. Y nuestros 20 restantes para las pruebas también, ya
sabes, tiene la misma forma general son nuestros datos originales. Entonces creo que eso es ah, prueba
representativa puesta a un poco más pequeña de lo que te gustaría ver en el mundo
real seguro, probablemente
obtienes un poco de un mejor resultado si tuvieras, ya
sabes, 1000 puntos en lugar de 100 por ejemplo para elegir y reservó 200 en lugar de 20. Entonces ahora voy a tratar de encajar un polinomio de octavo grado a esta fecha. Y no sólo voy a hacer pit pick el número ocho al azar porque sé que es un orden realmente alto probablemente sea más apropiado. Entonces sigamos adelante y encajemos nuestro polinomio de octavo grado usando un pedóneo, Polly, Wendy y la gente si usa X y y ocho, donde X es una matriz de los datos de entrenamiento solamente y sabia una matriz de los datos de entrenamiento solamente. Por lo que estamos ajustando nuestro modelo usando sólo esos 80 puntos que reservamos para el entrenamiento y Ahora tenemos esta función P cuatro que resulta que podemos usar para predecir nuevos valores. Entonces sigamos adelante y trazar al polinomio esto se le ocurrió en contra de los datos de entrenamiento sobre Weaken. Dispare aquí nuestros datos originales para el conjunto de datos de entrenamiento. Y entonces podemos graficar son valores pronosticados en contra de ellos. Por lo que puedes ver aquí. Parece un ajuste bastante bueno, pero claramente está haciendo algo más de ajuste aquí. ¿ Qué es esta locura de aquí? Es decir, estoy seguro bastante seguro que lo son, realmente Data, si lo tuviéramos aquí fuera, no
estaría loco alto como implicaría esta función. Por lo que este es un gran ejemplo de sobreajustar sus datos. Se ajusta a los datos. Usted lo dio muy bien, pero haría un terrible trabajo de predecir nuevos valores más allá de este punto. ¿ Verdad? Entonces intentemos burlarnos de eso. Démosle nuestro conjunto de datos de prueba. Y de hecho, si trazamos nuestros datos de prueba contra esa misma función, bueno, en realidad no se ve tan mal. Tuvimos suerte, y ninguna de nuestras pruebas en realidad está aquí para empezar. Pero puedes ver que ya sabes, es un ajuste razonable, pero está lejos de ser perfecto. Y de hecho, si realmente mides la puntuación R al cuadrado, es peor de lo que podrías pensar. Entonces podemos hacer eso aquí. Usando el son para anotar función de
psique, aprende métricas, y simplemente le damos nuestros datos originales y son valores pronosticados. Y simplemente pasa y mide todas las varianzas de las predicciones y cuadrados. Estoy todo listo para ti y terminamos con una puntuación R cuadrada de apenas 0.3. Entonces no tan caliente. Y se puede ver que se ajusta mucho mejor a los datos de entrenamiento, lo cual, con r valor cuadrado de 0.6, lo cual no es demasiado sorprendente porque lo entrenamos en los datos de entrenamiento. El estado de prueba especie de. Se desconoce. La prueba de ITT y falló la prueba, francamente, 30%. Eso es suficiente. Entonces ese es un ejemplo de usar la prueba entrenada para evaluar un algoritmo de aprendizaje supervisado. Y, como dije antes, pandas tienen algunos medios para hacer esto aún más fácil. Eso lo veremos un poco más tarde, y también veremos más ejemplos de pruebas entrenadas, incluyendo cuidadosas a través de la validación más adelante en el curso también, y probablemente puedas adivinar cuál es tu tarea. Entonces sabemos que un polinomio de octavo orden no es muy útil. ¿ Puedes hacerlo mejor? Entonces quiero volver atrás, Ejecutar esto me pitón sin libro en todo el camino, pero usar diferentes valores para el número para el polinomio grado que vas a usar para encajar. Entonces cambia que 82 valores diferentes y ve si puedes averiguar qué
polinomio de falla de grado realmente puntúa mejor Usar prueba entrenada es una métrica. Entonces, ¿de dónde obtienes tu mejor puntuación r cuadrada para tus datos de prueba? Qué dos grados encaja aquí. Entonces ve a jugar con eso. Tener algún problema planteado en las discusiones, pero debería ser un ejercicio bastante fácil en uno muy esclarecedor para ti también. Así que diviértete un poco con él. Entonces eso es prueba entrenada en acción. Técnica muy importante. dedo del pie tiene. Y lo vas a usar una y otra vez para asegurarte de que tus resultados sean un buen ajuste para el modelo que tienes y sean un buen predictor de valores inéditos. Tan buena manera de evitar el exceso de ajuste cuando estás haciendo tu modelado. Sigamos adelante
29. Methods: de Bayesian conceptos: ¿ Alguna vez te preguntabas cómo funciona el clasificador de spam en tu correo electrónico? ¿ Cómo sabe que el correo electrónico podría ser spam o no? Bueno, una técnica popular es algo llamado Bayes ingenuo, y ese es un ejemplo de un método ocupado y. Entonces, aprendamos más sobre cómo funciona eso. Discutamos sobre Basie y los métodos. Por lo que hablamos del Teorema de Bayes antes en el curso, en el contexto de hablar de cómo cosas como las pruebas de drogas podrían ser muy engañosas en sus resultados. Pero en realidad puedes aplicar lo mismo basado aquí,
um, um, dedo del pie problemas más grandes como clasificador de spam. Entonces, vamos a sumergirnos en cómo podría funcionar eso. Y eso se llama BZ y método. Entonces sólo un refresco sobre el teorema de Bayes. Recuerde, la probabilidad de un B dado es igual a la probabilidad general de una veces la probabilidad de que se le dé a sobre la probabilidad general de B. Entonces, ¿qué es ¿Cómo se puede usar eso en el aprendizaje automático? En realidad puedo construir un clasificador de spam para eso. Algoritmo que en realidad puede analizar un conjunto de correos electrónicos de spam conocidos y un conjunto conocido de correos electrónicos no spam y capacitar a un modelo para predecir realmente dónde sus nuevos correos electrónicos son spam o no. Y hay. Esta es una técnica real utilizada para el spam natural. Clasificador está en el mundo real. Entonces, como ejemplo, vamos a averiguar la probabilidad de que un correo electrónico sea spam, dado que contiene la palabra libre. Ya sabes, mayoría de la gente prometiéndote cosas gratis. Probablemente sea span, así que solucionemos eso. La probabilidad de ser spam, dado que tienes la palabra libre en un correo electrónico, funciona a la probabilidad general de que sea un lapso que el mensaje cubra la probabilidad de contener la palabra libre, dado que es spam sobre la probabilidad general de ser libre ahora, el numerador y sólo el pensamiento de esto, la probabilidad de que un mensaje sea spam y que contenga la palabra libre. Pero eso es un poco diferente a lo que estamos buscando, porque esas son las probabilidades fuera del conjunto de datos completo, y no sólo las probabilidades dentro de las cosas que contienen la palabra libre. De acuerdo, y el denominador sólo la probabilidad general de contener la palabra libre. En ocasiones eso no será inmediatamente accesible para ti a partir de los datos que tienes. Si no lo es, en realidad
puedes expandirlo a esta otra expresión aquí si necesitas derivarlo. Entonces al final del día, eso te da el porcentaje de correos electrónicos que contienen la palabra libre ese lapso, cual sería una cosa útil saber cuando estás tratando de averiguar si es familia. ¿ Y qué pasa con todas las otras palabras en el idioma inglés, sin embargo, Así que nuestro clasificador de spam debe saber acerca de más que sólo la palabra libre debe
recoger automáticamente la cada palabra en el mensaje idealmente, y averiguar ¿Cuánto contribuye eso a la probabilidad de que este correo electrónico sea spam? Entonces lo que podemos hacer es entrenar un modelo sobre cada palabra que nos encontramos durante el entrenamiento. Ya sabes, tirar cosas como a y las y y y palabras sin sentido como esa, claro. Y luego cuando pasemos por todas las palabras en un nuevo correo electrónico, podemos multiplicar la probabilidad de ser spam para cada palabra juntos. Y luego obtenemos la probabilidad general de que ese correo electrónico sea spam. De acuerdo, ahora se llama Bayes ingenuo por una razón. Así se llama esta técnica. Y una razón por la que es ingenuo es porque estamos asumiendo que no hay relaciones
entre las propias palabras solo estaban mirando a cada mundo, palabra aislada, individualmente dentro de un mensaje y básicamente combinando toda la probabilidades de cada palabra contribución a la misma. Siendo spam o no, no
estamos viendo las relaciones entre las palabras. De acuerdo, así que un mejor clasificador de spam haría eso. Pero obviamente eso es mucho más difícil. Entonces esto suena como mucho trabajo. La idea general, y no es que no es tan difícil pero el aprendizaje psíquico Python hace que en realidad sea bastante fácil de
hacer . Ofrece una función llamada Count Factor Riser que hace que sea muy sencillo
dividir realmente un correo electrónico a todas sus palabras componentes y procesar esas palabras individualmente. Y luego tiene una función multi no meal NB donde N B significa Bayes ingenuo que hará todo el levantamiento pesado para base ingenua para nosotros para que en realidad podamos construir un clasificador de spam con no mucho abrigo. Y se incluye en los materiales de tu curso algunos datos de muestra que incluyen un conjunto de correos electrónicos de spam conocidos y en lugar de
correos electrónicos conocidos de jamón. El jamón es lo que llamamos correo electrónico. Eso no es spam, y hagámoslo. Construyamos clasificador de spam
30. Implementar un clasificador de spam con Naive Bayes: Muy bien, vamos a escribir un clasificador de spam. Usando Bayes ingenuo, te vas a sorprender lo fácil que es esto. De hecho, mayor parte del trabajo termina por estar leyendo todos los datos de entrada en los que vamos a entrenar
y en realidad analizando esos datos en la clasificación de spam real. Pero el bit de aprendizaje automático es en realidad solo unas pocas líneas de código, por lo que suele ser así como funciona. Ya sabes, realidad, en
realidad,
leer y masajear y limpiar tus datos suele ser la mayor parte del trabajo Cuando estás haciendo ciencia de datos, así que acostumbrate a la idea. Adelante y abre el ingenuo cuaderno Bayes I Python si te gusta seguir conmigo . Y como dije, mayor parte del trabajo está justo en leer en los datos. Entonces lo que tengo aquí en sus materiales del curso es un par de directorios diferentes
llenos de correos electrónicos. Y uno es un montón de correos electrónicos que ya sé dónde span que se han clasificado antes de tiempo y otro directorio lleno de correos electrónicos que son jamón que no son span. Y voy a usar esta información para entrenar a mi modelo y en realidad probarla. Entonces lo primero que hay que hacer es leer todos esos correos electrónicos de alguna manera, y vamos de nuevo. Usa pandas para hacer esto un poco más fácil. Por lo que nuevamente, pandas son una herramienta útil para el manejo de datos tabulares. Y vamos,
uh, uh, después de importar todos los diferentes paquetes que vamos a usar dentro de nuestro ejemplo aquí, que incluye la biblioteca OS, la biblioteca Iot, tarta
numb, pandas y contar factor elevador y multi sin comida y ser de psique. Se aprende, y pasaremos por todo eso a medida que los encontremos. Pasemos estas definiciones de funciones a partir de ahora y bajemos a lo primero que nuestro código realmente hace. Y eso es para crear un objeto de marco de datos Pandas. Y vamos a construir esto a partir de un diccionario que inicialmente contiene una lista vacía para mensajes en listas vacías de clase. Entonces esta sintaxis está diciendo Quiero fechar un marco que tenga dos columnas, una que contenga el mensaje,
el texto real de cada correo electrónico y cuando eso contiene la clase de cada correo electrónico, es
decir si se trata de spam o jamón. De acuerdo, así que básicamente, esta línea está diciendo que quiero crear una pequeña base de datos de correos E, y esta base de datos tiene dos columnas. Tiene texto teatral del correo electrónico, y tiene si es spam o no. De acuerdo, ahora necesito poner algo en esa base de datos en ese marco de datos en sintaxis de python. Entonces voy a llamar a estos dos métodos para realmente tirar todos mis correos de spam de mi carpeta de
spam y todos mis correos electrónicos de mano para mi carpeta de jamón. Y si estás jugando aquí, asegúrate de modificar este camino para que coincida dondequiera que instalaste los materiales del curso para este curso, ¿de acuerdo? Y ya sabes, nuevo, si estás en un Mac o límites esos respaldos prestan atención a las cortes inversas
y hacia adelante y todas esas cosas en este caso, no
importa. Pero no tendrás una letra de unidad,
por ejemplo, por ejemplo, si no estás en Windows, así que solo asegúrate de que esos pasados estén apuntando realmente a dónde están tus carpetas de spam y jamón para este ejemplo. Entonces, ¿cuál es esta fecha de vencimiento? Un marco de directorios de función que escribí aquí. Básicamente, dice que tengo una ruta a un directorio, y sé que es como dar clasificaciones spammer, jamón y lo que voy a hacer es llamar a esta función de archivos de lectura que también escribí que va a leer escribir a través de cada sencillo en un directorio, y no quiero entrar en demasiados detalles sobre cómo funciona esto. Pero básicamente es usar la función de pie de punto del OS para encontrar todos los archivos en un directorio, construye el nombre completo de la ruta de acceso para cada archivo individual en ese directorio, y luego lo lee en. Y mientras lo está leyendo, en realidad
se salta el encabezado de cada correo electrónico y simplemente ve directamente al texto. Y lo hace buscando aquí la primera línea en blanco. Sabe que todo después de la primera línea vacía es en realidad el cuerpo del mensaje, y todo frente a esa primera línea vacía es solo un montón de información de encabezado en la que realmente no
quiero entrenar mi clasificador de spam. Por lo que me devuelve tanto el camino completo a cada archivo como el cuerpo del mensaje. De acuerdo, así es como leo en todos mis datos, y esa es la mayoría del código. Entonces lo que tengo al final del día aquí es un objeto de marco de datos, básicamente una base de datos de dos columnas que contiene cuerpos de mensajes corporales y si es spam o no. Y podríamos seguir adelante y ejecutar eso y podemos usar el comando head del marco de datos para realmente previsualizar cómo es esto. Por lo que las primeras entradas en nuestro marco de datos se ven así para cada ruta a un archivo dado lleno de correos electrónicos, tenemos una clasificación y tenemos el cuerpo del mensaje. De acuerdo, acuerdo, ahora por la parte divertida. Entonces vamos a usar la función multi no meal nb de Psíquico Aprendido, realidad realizar ingenuo basado en el estado de eso que tenemos y lo que espera obtener son dos cosas. Entonces una vez que construimos un multi multi multi no comida clasificador de Bayes ingenuo en estas dos entradas y él es los datos reales que estaban entrenando y los objetivos para cada cosa. Entonces lo que eso es básicamente una lista de todas las palabras en cada correo electrónico, bien, y el número de veces que ocurre esa palabra. Entonces eso es lo que hace esta cosa del elevador de vector de conteo. Lo hará. Esta sintaxis significa tomar la columna del mensaje para mi marco de datos y tomar todos los valores de ella . Voy a llamar vector riser dot Fit, transformar Lo que eso hace. ¿ Es básicamente token ises o convierte todas las palabras individuales vistas en mis datos en
números, Y luego contará cuántas veces ocurre cada palabra. Por lo que esta es una forma más compacta de representar cuántas veces ocurre cada palabra en un correo electrónico lugar de realmente preservar las palabras mismas. Estoy representando esas palabras como valores diferentes en una matriz escasa. De acuerdo, que básicamente es decir que estoy tratando cada palabra es un número como un índice numérico en una matriz. Entonces lo que eso hace es sólo en inglés llano. Se divide. Él Smith cada mensaje arriba en una lista de palabras que están en él y cuántas veces
ocurre cada palabra . Entonces estamos llamando que eso cuenta. Es básicamente que la información de cuántas veces ocurre cada palabra en cada
mensaje individual y luego los objetivos son los datos de clasificación reales para cada correo electrónico que he encontrado. Y puedo llamar clasificador dot fit usando mi multi nobile y ser función para realmente crear un modelo usando Bayes ingenuo que va a predecir dónde sus nuevos correos e son spam o no, en
base a la información que le di. Su sigamos adelante y corremos. Eso corre bastante rápido, Así que vamos a probarlo. Voy a usar un par de ejemplos aquí. Vamos a probar un mensaje Cuerpo que acaba de decir Viagra libre ahora probablemente bastante claramente lapso. Y, ah, mensaje
más inocente que acaba de decir, Hola, Bob, ¿Qué tal un partido de golf mañana? Entonces estamos más allá de que en lo primero que necesitamos hacer es convertir estos mensajes en el mismo formato en el que entrené mi modelo. Entonces voy a usar ese mismo elevador vectorial que creé al crear el modelo para convertir cada mensaje en una lista de palabras y sus frecuencias, donde las palabras aire representadas por posiciones en una matriz. Y luego una vez que haya hecho esa transformación, realidad
puedo usar la función de predecir en mi clasificador en esa área, ejemplos que se han transformado en, ya
sabes, listas de palabras y ver que se nos ocurre, y bastante seguro que funciona. Por lo que dada esta matriz de a entrada mensajes, Viagra
libre ahora y alta. Bob me está diciendo que los primeros resultados regresaron un spam, y el segundo resultado le volvió la mano, que es lo que yo esperaría así que eso es bastante guay. Entonces ahí lo tienes. Ahora, tenemos un conjunto de datos bastante pequeño aquí. Entonces, ya
sabes, podrías intentar ejecutar algunos correos electrónicos diferentes a través de él si quieres, y ver si obtienes diferentes resultados. Pero trata de aplicar tres. No te cuidas tú mismo. intentó aplicar prueba de tren a este ejemplo. Entonces la verdadera medida de si mi clasificador de spam es bueno o no no es sólo intuitivamente si puede averiguar que Viagra gratis ahora es un spam. Se quiere medir eso cuantitativamente. Así que si quieres un poco de un reto, adelante y prueba Teoh divide el estado en un conjunto de entrenamiento en un conjunto de datos de prueba y en realidad
puedes buscar en línea cómo los pandas pueden dividir datos en trenes testing y testing sets bastante fácilmente para ti. O puedes hacerlo a mano, lo que sea que funcione para ti, y ver si realmente puedes aplicar tu clasificador multi no meal nb a un conjunto de datos de prueba y medir su rendimiento. Entonces un poco de ejercicio, un poco de reto. Adelante, Dale una oportunidad a eso. Qué genial es que acabamos de escribir su propio clasificador de spam solo usando unas pocas líneas de código en Python Es bastante fácil usar el aprendizaje psíquico y python. Eso es ingenuo. Bayes en acción, y en realidad puedes entrar. Clasifica algunos mensajes de spam o jamón ahora que tienes eso debajo de tu cinturón. bastante cool. Hablemos de clustering a continuación.
31. Clustering K-Means: siguiente vamos a hablar de K significa clustering, y esta es una técnica de aprendizaje sin supervisión donde tienes ah, colección de cosas que quieres agrupar en varios clústeres. A lo mejor es géneros de cine o demografía de gente que sabe, Pero en realidad es una idea bastante simple. Entonces vamos a ver cómo funciona. De acuerdo, hablemos de K significa clustering. Técnica muy común en el aprendizaje automático, donde solo tratas de tomar un montón de datos y encontrar racimos interesantes de cosas solo basados en los atributos de los datos mismos. Suena elegante, pero en realidad es bastante simple. Todo lo que hacemos en K significa clustering es tratar de dividir nuestros datos en grupos K. De ahí viene la K. en cuántos grupos diferentes estás tratando de dividir tus datos. Y lo hace al encontrar caso Central Lloyds. Entonces, básicamente, a
qué grupo de punto de datos dado pertenece se define por cuál de estos puntos OID centrales es más cercano en tu gráfica de dispersión, por lo que puedes visualizar que por aquí esto está mostrando un ejemplo de K significa clustering con K de tres, y los cuadrados representan puntos de datos en una gráfica de dispersión los círculos representan el central es que el algoritmo de agrupamiento K significa que se le ocurrió, y a cada punto se le asigna un clúster basado en qué central está más cerca. De acuerdo, así que eso es todo lo que hay para. Realmente es un ejemplo de aprendizaje supervisado por la ONU. Entonces no es un caso donde tengamos un montón de datos, y ya conocemos el clúster correcto para un determinado conjunto de datos de entrenamiento. Más bien, solo
te dan los datos en sí, e intenta converger en estos clústeres de forma natural, solo en función de los atributos de los datos solo. Entonces es un buen caso de donde estás tratando de encontrar clústeres son categorizaciones que ni
siquiera sabías que estaban ahí. Es Ah, como con la mayoría de las técnicas no supervisadas o cualquiera, el punto es encontrar valores latentes. Ya sabes, cosas que realmente no te diste cuenta de dónde hay hasta que el algoritmo te las muestra. Entonces, por ejemplo, ¿dónde viven los millonarios? A
lo mejor, no lo sé. A lo mejor hay algún clúster geográfico interesante donde sabes que la gente rica tiende a vivir y K significa que la agrupación podría ayudarte a descifrar eso. A lo mejor realmente no sé si los géneros de música actuales o significativos ¿Qué significa ser alternativa en estos días? No mucho, verdad. Pero al usar K significa agrupar en atributos de canciones, tal vez podría encontrar interesantes cúmulos de canciones que están relacionadas entre sí y llegar
a nuevos nombres para lo que representan esos clústeres. O tal vez pueda mirar datos demográficos, y tal vez los estereotipos existentes ya no sean útiles. A lo mejor, ya
sabes, hispano ha perdido su significado. Y esto en realidad otros atributos que definían grupos de personas, por ejemplo, que podía descubrir con clustering suena fantasía. No hace cosas realmente complicadas. Aprendizaje automático sin supervisión con clústeres K. Suena fantasía, pero como con la mayoría de las técnicas y la ciencia de datos, en realidad
es una idea muy simple. Entonces aquí está el algoritmo que empezamos con un elegido aleatoriamente en lugar de Central. Es así que si tenemos una K de tres, vamos a buscar tres cúmulos en nuestro grupo, y asignaremos tres ayudas centrales de posición aleatoria en nuestra trama de dispersión. Después asignamos punto declarado al que asignó aleatoriamente centralmente que es más cercano a, y luego volvemos a calcular el clúster de alcance central que se nos ocurre. Entonces para un clúster dado con el que terminamos. Vamos a mover eso centralmente para ser el centro real de todos esos puntos. Y luego lo volveremos a hacer todo hasta que el centro deje de moverse. Ya sabes, llegamos a algún valor umbral que dice, OK, hemos convergido en algo aquí y luego para predecir los clústeres para nuevos puntos que no
he visto antes. Simplemente podemos ir por nuestras ubicaciones centrales y averiguar qué central está más cerca de
ti para predecir su clúster. De acuerdo, veamos aquí un ejemplo gráfico para tener un poco más de sentido. Entonces digamos que tengo una trama de dispersión otra vez. Estos cuadrados grises representan puntos de datos en nuestra gráfica de dispersión. Por lo que estos reportes estos ejes representan algunas características diferentes de algo. A lo mejor su edad e ingresos es un ejemplo que sigo usando, pero podría ser cualquier cosa. Y estas plazas representan personas individuales o canciones individuales o individuos, algo que quiero encontrar relaciones entre. De acuerdo, entonces empiezo por solo escoger tres puntos al azar en mi trama de dispersión. Podría estar en cualquier lugar. Tienes que empezar en alguna parte, ¿verdad? Entonces lo siguiente que voy a hacer es por cada punto. Voy a calcular cuál de estos puntos está más cerca para que puedas ver dónde termina
siendo eso haciendo eso, estos puntos sombreados en azul se asocian a este centinela azul OID. Los puntos verdes son los más cercanos al verde central. Es en este sencillo Redpoint está más cerca de ese punto aleatorio rojo que elegí. Pero puedes ver que sabes, eso no es realmente ah reflexivo de dónde parecen estar los clústeres reales. Entonces si vuelvo a hacer esto, lo que voy a hacer es tomar los puntos que terminaron en cada clúster y calcular el
centro real de esos puntos. Entonces, por ejemplo, y este clúster verde aquí, el centro real de todos esos datos resulta ser un poco más bajo. Entonces vamos a mover eso un poco hacia abajo en este clúster rojo La isla tenía un punto, por lo que su centro se mueve hacia abajo a donde ese solo punto está bien, y el punto azul estaba en realidad bastante cerca. Para que eso sólo se mueve un poco. Y en esta próxima generación, terminamos con algo que se parece a esto. Por lo que ahora se puede ver que nuestro clúster para las cosas rojas ha crecido un poco, y las cosas se han movido un poco con las que se sacaron del clúster verde, básicamente. Y si volvemos a hacer eso, probablemente
puedas ver qué va a pasar. Redes que Green Central. Se va a mover por aquí un poco ese azul. Senador Troy sigue sobre dónde debería estar, pero al final del día, vas a terminar con los cúmulos que probablemente esperarías ver. El cúmulo rojo terminará siendo este grupo, y Azul terminará siendo este grupo y Greenwell en que sea ese grupo, es como k significa funciona. Por lo que simplemente sigue iterando tratando de encontrar los derechos centrales correctos hasta que las cosas dejen de
moverse y convergamos en una solución. Por lo que obviamente hay algunas limitaciones a K significa clustering. En primer lugar, necesitamos elegir el valor correcto de K, y eso no es algo sencillo hacerlo todo. Ya sabes la forma en que la forma de principios de elegir K es simplemente empezar a baja y seguir aumentando el valor de K. Cuántos grupos quieres hasta que dejes de conseguir grandes reducciones en el error cuadrado. Entonces ya sabes, si miras las distancias desde cada punto hasta sus centrales. Se puede pensar en que es una métrica de error, y en el punto en que dejas de reducir esa métrica de error, sabes que probablemente tienes demasiados clústeres. OK, entonces realmente no estás ganando más información agregando clústeres adicionales en ese punto. Además, hay un problema de minimas locales, por lo que podrías simplemente tener mucha mala suerte con esas elecciones iniciales de derechos centrales. Y podrían terminar simplemente convergiendo en fenómeno local en lugar de clústeres más globales. Por lo que normalmente quieres correr esto unas cuantas veces y tal vez promediar los resultados juntos. Ya sabes, a eso le
llamamos aprendizaje conjunto. Hablaremos de eso más un poco más adelante. Pero ya sabes, siempre
es una buena idea ejecutar K significa más de una vez usando un conjunto diferente de valores
iniciales aleatorios y solo ver si de hecho terminas con los mismos resultados generales o no. Por último, el principal problema con K significa clustering es que no hay etiquetas para los clústeres que obtienes. Simplemente te dirá que este grupo de puntos de datos están de alguna manera relacionados, pero no puedes ponerle un nombre. Sabes que no puedes decirte el significado real de ese clúster. Digamos tengan un montón de películas que estoy viendo y K significa Clustering me dice que un montón de películas de ciencia ficción se extienden por aquí, pero no les va a llamar películas de ciencia ficción. Para mí, me toca a mí cavar realmente en los datos y averiguar bien, qué tienen realmente estas cosas en común y cómo podría describirlo en inglés. Esa es la parte difícil, y K significa no te ayudará con eso. Entonces otra vez, aprendizaje
psíquico hace que sea muy fácil hacer esto. Vamos realmente a hacer un ejemplo y poner k significa clustering en acción.
32. Clustering personas con ingresos y edad: Muy bien, veamos lo fácil que es hacer K significa agrupar usando el aprendizaje psíquico y python. Entonces lo primero que voy a hacer es crear algunos datos aleatorios que quiero tratar de agrupar. Y solo para hacerlo más fácil, realidad
voy a construir algunos clústeres en mis datos de prueba falsos. Entonces finjamos que hay alguna relación fundamental riel entre estos datos, y hay algunos cúmulos naturales reales que existen en él. Entonces para hacer eso, acabo de escribir esta pequeña función de crear datos agrupados y python, y comienza con una semilla aleatoria consistente, por lo que obtendrás el mismo resultado cada vez y toma en cuenta. Deseo crear clústeres de personas finales en clústeres K. Por lo que se da cuenta de cuántos puntos por cluster que funciona primero y luego acumula esta lista X que comienza vacía. Por lo que para cada cluster para I en Rango K, voy a crear alguna tasa central aleatoria de ingresos entre 220,000 dólares algún
siglo aleatorio de edad entre los 20 y 70 años. Entonces lo que estoy haciendo aquí es crear alguna trama de dispersión falsa como falsa que mostrará ingresos versus edad para N personas y conglomerados K. Entonces para cada aleatoria centralmente que
creé, entonces voy a crear un conjunto normalmente distribuido de datos aleatorios con una
desviación estándar de 10,000 e ingresos y una desviación estándar de dos y un juez y eso me va a devolver un montón de datos de ingresos por edad que se agrupan en algunos clústeres preexistentes que elegí al azar. De acuerdo, sigamos adelante y corremos eso. Y ahora hacer realmente K significa que verás lo fácil que es. Todo lo que haces es importar k significa de psique. Se aprende paquete de clúster, y también es importante que trazar los labios para que podamos visualizar las cosas y también las cosas de escala podamos echar un vistazo a cómo funciona eso en un minuto. Entonces voy a usar mi función crear datos agrupados para decir que quiero 100 personas aleatorias alrededor cinco clústeres. Por lo que hay cinco cúmulos naturales a partir de la fecha en que ellos crean. He estado yendo a crear un modelo k significa modelo con K de cinco. Entonces yo y escogiendo cinco clústeres porque sé que esa es la respuesta correcta. Pero otra vez y el aprendizaje sin supervisión, no necesariamente se sabe cuál es el valor real de K. Necesitas iterar y converger en él tú mismo. Y entonces podría simplemente llamar a Modeled outfit usando, como, un modelo de medios, usando los datos que tenía ahora escala a la que aludía antes. Eso es normalizar los datos. Y una cosa importante con K significa es que funciona mejor. Si todos tus datos están normalizados, significa que todo está a la misma escala. Entonces un problema que tengo aquí es que mis edades van desde los 20 hasta los 70 pero por ingresos variaron hasta
los 200 mil. Por lo que estos valores no son realmente comparables. Los ingresos son mucho mayores que la escala de valores de edad, tomarán todos esos datos y los escalarán juntos a una escala consistente. Entonces en realidad puedo comparar estas cosas como manzanas con manzanas, y eso ayudará mucho con tus K significa resultados. Entonces una vez que realmente he llamado fit on my model, tengo un modelo, y en realidad puedo mirar las etiquetas resultantes que obtuve y entonces realmente podemos visualizarlo usando este pedacito de Matt Plot Live magic. Se puede ver aquí tengo un pequeño truco aquí donde firmé el color, también. Las etiquetas con las que terminé convertidas a algún número de punto flotante, y eso es un poco complicado pueden usar para asignar colores arbitrarios a un valor dado. Entonces vamos a ver, terminamos con no tardó tanto tiempo. Aquí ven los resultados, básicamente en qué clusters firmé todo. Y se puede ver sabemos que nuestros datos falsos ya están pre agrupados, por lo que parece que e identificar el primer y segundo clústeres con bastante facilidad se pusieron un
poco confundidos más allá de ese punto, sin embargo, porque nuestro los cúmulos aquí en el medio son en realidad un poco un poco matizados juntos. No son muy realmente tan distintos. Entonces eso fue un reto para K significa. Pero sin importar, se le ocurrió algunas conjeturas razonables en el clúster. Pero terminamos con aquí estaba cluster aquí, cerca de aquí. Cluster ahí en un clúster ahí, cluster aquí abajo y no es una mala elección. Ya sabes, esto es probablemente un ejemplo de donde ustedes cuatro cúmulos estaban más naturalmente en forma. El dato. Entonces lo que quiero que hagas actividades extranjeras para probar eso. Pruebe diferente valor de K y CTO terminan con, ya
sabes, solo mirar esto. Parece que cuatro funcionarían Bueno, ¿de verdad? ¿ Qué pasa si aumento K dos grandes? ¿ Qué pasa con mis resultados ahí? ¿ En qué trata de dividir las cosas y ni siquiera tiene sentido? Así que jugar con él, tratar de por valores. OK, entonces los clústeres finales funcionan aquí, cambia los cinco a otra cosa, corriendo todo a través de él otra vez y ver si terminan con así que juega alrededor, diviértete un poco con él. Eso es todo lo que hay para K significa clustering. Es sólo así de sencillo. Podrías usar como aprende k significa cosa del cluster y otra vez el único gotcha real . Asegúrate de escalar los datos, normalizarlos o blanquearlos ya que el caso puede ser otro nombre para la misma cosa. Quieres asegurarte de que las cosas en las que estás usando los medios k sean comparables entre sí , y la función de escala hará eso por ti. Entonces esas son las cosas principales para K significa clustering. Concepto bastante simple, aún más simple de hacerlo usando psíquico aprendido. Ahí lo tienes. Es todo lo que hay a ello. Eso es K significa clustering. Entonces si tienes un montón de datos que no están clasificados y realmente no tienes la
respuesta correcta está por delante de tiempo. Es una buena manera de tratar de encontrar naturalmente agrupaciones interesantes de tus datos. Y tal vez eso podría darte alguna idea de lo que son esos datos. Tan buena herramienta para tener. lo he usado antes en el mundo real, y realmente no es tan difícil de usar,
así que mantén eso en tu cofre de herramientas.
33. Medir Entropy: todo bien. Muy pronto vamos a llegar a una de las partes más frías del aprendizaje automático, pero al menos creo que los llamados árboles de decisión. Pero antes de que pudiéramos hablar de eso, hay
que entender el concepto de entropía y ciencia de datos, y es un ejercicio bastante sencillo. Conferencia muy corta aquí. Pero solo pongamos ese concepto debajo de tu cinturón. Hablemos de entropía, otro ejemplo de una palabra de fantasía para un concepto sencillo. Pero tenemos que entender esto antes de hablar de árboles de decisión. Entonces pongamos esto debajo de nuestro cinturón primero. Entonces la entropía, igual que en la física. Termodinámica. Es una medida de un trastorno de conjuntos de datos. Entonces qué igual o diferente su set de día. Entonces imagina que tenemos un conjunto de datos de diferentes clasificaciones. Por ejemplo, animales. Digamos que tengo un montón de animales que están clasificados por especies. Ahora bien, si todos los animales en mi conjunto de datos no son iguana, yo una entropía muy baja porque todos son iguales. Pero si cada animal en mi conjunto de datos es un animal diferente, tienen iguanas y cerdos y ranuras, y quién sabe qué más que tendría una entropía mayor porque hay más desorden. En mi conjunto de datos, las cosas son más diferentes de lo que son. La misma entropía es una forma de cuantificar esa misma o esa diferencia a lo largo mis datos. Entonces nuevamente, una entrevista cero implica todas las clases y los datos son los mismos. En tanto que si todo es diferente, tendría una alta entropía y algo en el medio sería un número en el medio. Entonces es sólo otro ejemplo de una palabra de fantasía para un concepto simple. La entropía simplemente describe cuán iguales o diferentes son las cosas en un conjunto de datos. Eso es todo lo que hay a ello. Es una conferencia muy corta porque es un concepto muy sencillo. Ahora, matemáticamente, está un poco más involucrado en eso. Entonces cuando realmente se computa un número para la entropía se computa usando esta expresión aquí. Entonces para cada clase diferente que tengo en mis datos, voy a tener uno de estos términos de p. Entonces pieza de una pieza de dos y así sucesivamente y así sucesivamente hasta el final para fin clases diferentes que podría tener, y cada término el P DIS representa la proporción de los datos que es esa clase, y si realmente traza con esto se ve como para cada término, esta pieza negativa de por veces un algoritmo de ley natural de pieza de I. Se verá un poco algo como esto, y se suman estos para cada clase individual. Entonces si lo miras, como
que tiene sentido. Ya sabes, por ejemplo, si la proporción de los datos que es una clase dada cero que la contribución a la entropía
general es cero. Y si todo es esa clase y otra vez, la contribución a la entropía general es cero. Porque en cualquier caso, si nada es esta clase o todo es esta clase que realmente no está aportando nada a la entropía general? Ya sabes, son estas cosas en el medio las que contribuyen en homenaje a la clase, donde hay alguna mezcla de esto, esta clasificación y otras cosas, y cuando agregas todos estos términos juntos, terminas con una entropía general para todo el conjunto de datos así matemáticamente así es como funciona. Pero de nuevo, el concepto es muy sencillo. Es solo una medida de lo desordenado que tu conjunto de datos, qué iguales o diferentes son las cosas en tus datos. Eso es todo lo que hay a la entropía. Entonces con eso bajo nuestro cinturón, podemos seguir adelante y hablar de árboles de decisión. Entonces eso es entropía, sólo una medida del trastorno de un conjunto de datos. ¿ Qué igual o diferente es todo? Y sólo hay que entender eso mientras hablamos de árboles de decisión a continuación.
34. Windows: instalación de Graphviz: Entonces esta va a ser la conferencia más corta del mundo sobre Windows. No tienes que hacer nada especial para usar realmente árboles de decisión en Anaconda. Ya instaló todo lo que necesitas para ti de forma automática. Podrías notar que aquí hay videos configurados para un Mac y usuarios de Lennox donde
sí necesitan seguir un paso extra. Pero tú eres bueno. Entonces solo continúa con la siguiente lección, y en realidad podemos empezar a jugar con nuestros árboles de decisión.
35. Mac: instalación de Graphviz: ahora, antes de poder visualizar realmente árboles de decisión, necesitamos un paquete llamado graph Viz instalado en su sistema y en el Mac. La forma más fácil de hacerlo es a través de Homebrew. Entonces si no tienes ya instalado homebrew, ve a brew dot s h aquí e instala Homebrew. Sólo vamos a copiar toda esta información aquí, Comando. ¿ Ver? Ve a una terminal, pide pegarlo en el comando V y ejecuta eso. ¿ Volverá? Tendrá que autenticarse. Y fuera va bien. Después de unos minutos, eso sí terminó. Y ahora solo podemos teclear en brebaje. Instalar gráfico es así. Está bien. Parece que estamos en el negocio. Adelante y cerremos esta ventana terminal para que podamos estar seguros de que recogemos el nuevo entorno la próxima vez. Y eso debería ser. Deberíamos estar todos listo para irnos ahora.
36. Linux: instalación de Graphviz: por lo que sobre Lenox. Antes de poder jugar realmente con árboles de decisión, necesitamos instalar un paquete llamado Graph Viz que nos permita dibujar realmente en Visualizarlos dentro de nuestro cuaderno. Para
ello, es realmente fácil, y Lennox, voy a tener que hacer es abrir una terminal y escribir en sudo Apt Dash get install graph viz Al menos así funciona de una buena a en diferentes sabores de winnicks. Es posible que tengas diferentes gestores de paquetes, pero la gráfica es probablemente ahí. Así que solo haz lo que necesites hacer para poder instalarlo. Graph está en tu sistema Lennox. Pero por qué continuar y grafica está ahora instalado. Simplemente es así de fácil. Por lo que ahora podemos continuar y empezar a jugar con árboles de decisión.
37. Árboles de decisión: conceptos: lo creas o no. Dado un conjunto de datos de entrenamiento, en realidad
puedes conseguir que python genere un diagrama de flujo para que realmente tomes una decisión. Entonces, si tienes algo que estás tratando de predecir sobre alguna clasificación, puedes usar un árbol de decisiones para ver realmente múltiples atributos que podrías decidir sobre él cada nivel en un diagrama de flujo. Y en realidad puedes imprimir un diagrama de flujo real para que lo utilices para tomar una decisión basada en el aprendizaje automático real. ¿ Qué tan guay es eso? Veamos cómo funciona. Muy bien, vamos a hablar de árboles de decisión. Esta es una de las aplicaciones más interesantes en el aprendizaje automático que se me ocurre. Creo que son cosas bastante cool, pero hablemos de cómo funciona. Entonces un árbol de decisiones básicamente te da un diagrama de flujo de cómo tomar algunas decisiones para que
tengas alguna variable dependiente, como si debería o no ir a jugar afuera hoy o no en base al clima. Y cuando se tiene una decisión como esa, eso depende de múltiples atributos, múltiples variables. Un árbol de decisiones podría ser una buena opción, por lo que hay muchos aspectos diferentes del clima que podrían influir en mi decisión de si debo salir afuera y jugar. Podría tener que ver con la humedad, la temperatura, si está soleado o no. Por ejemplo, un árbol de decisiones puede mirar todos estos atributos diferentes del clima o cualquier otra cosa y decidir dónde están los umbrales, donde las decisiones que necesito tomar sobre cada uno de esos atributos antes de llegar a un decisión de si debo o no ir a jugar afuera. Eso es todo lo que es el árbol de decisiones. Entonces es una forma de aprendizaje supervisado. El modo en que funcionaría en este ejemplo sería yo tendría algún tipo de conjunto de datos del clima
histórico y si la gente saliera o no a jugar ese día y alimentaría al modelo este dato de qué, si estaba soleado o no en cada día y cuál era la humedad, por ejemplo, y si hacía viento o no, y si era o no un buen día para ir a jugar afuera. Y dado que los datos de entrenamiento, un algoritmo de árbol de decisiones en realidad puede llegar a un árbol que
te da este diagrama de flujo que puedes imprimir se ve así que simplemente podrías caminar y averiguar si es o no una buena día de juego del dedo del pie fuera basado en los atributos actuales. Por lo que puedes usar eso para predecir la decisión de un nuevo conjunto de valores. Es algo bastante impresionante. O sea, ¿qué tan genial es eso? Ya sabes, tenemos un algoritmo que hará un diagrama de flujo para ti automáticamente, solo basado en datos observacionales. Y lo que es aún más fresco es lo simple que funciona todo una vez que aprendes cómo funciona. Entonces, por ejemplo, realidad
vamos a hacer esto. Digamos que quiero construir un sistema que filtre automáticamente los currículums y basado en la información en el currículum. Entonces un gran problema que tienen las empresas tecnológicas es que obtenemos toneladas y toneladas de currículums para nuestras posiciones. Entonces tenemos que decidir a quién realmente traemos para una entrevista porque puede ser costoso volar a alguien y en realidad tomar el tiempo fuera del día para realizar una entrevista. Entonces, ¿qué si hubiera una manera de tomar realmente datos históricos sobre quién realmente fue contratado y mapear que las cosas que se encuentran en su currículum, podríamos construir un árbol de decisiones que nos dejara pasar por él currículum individual y decir, OK, esta persona realmente tiene la alta probabilidad de ser contratada o no. Para que podamos entrenar un árbol de decisiones sobre esos datos históricos y caminar por eso para futuros candidatos. ¿ Eso sería algo maravilloso tener? Entonces hagamos algunos datos de contratación totalmente fabricados que voy a usar en este ejemplo. Tenemos candidatos que acaban de identificar por identificadores numéricos, y voy a escoger algunos atributos que creo que podrían ser interesantes para predecir si son o no un buen contratante o no. ¿ Cuántos años de experiencia tienen? ¿ Están empleados actualmente? ¿ Cuántos empleadores han tenido anteriores a éste? ¿ Cuál es su nivel educativo? ¿ Qué titulación tienen? ¿ Fueron a lo que clasificamos como una escuela de primer nivel? ¿ Hicieron una pasantía mientras estaban en la universidad? Y podemos echar un vistazo a este dato histórico y aquí se contrata la variable dependiente. ¿ Esta persona realmente consiguió una oferta de trabajo o no basada en esa información Ahora, obviamente hay mucha información que no está en este modelo. Eso podría ser muy importante. Pero el árbol de decisiones que entrenamos a partir de estos datos podría realmente ser útil para hacer un pase
inicial, que leer algunos candidatos y bueno, terminamos con podría ser un árbol que se vea así. Entonces simplemente resulta que en mis datos totalmente fabricados, cualquiera que hiciera una pasantía en la universidad en realidad terminó consiguiendo una oferta de trabajo. Entonces mi primer punto de decisión es, ¿hizo esta persona una pasantía o no? En caso afirmativo, adelante y tráelo. Y ya sabes, en mi experiencia, las
prácticas son en realidad un bastante buen predictor de lo buena que es una persona, Ya
sabes, si tienen la iniciativa de realmente salir y hacer una pasantía y realmente aprender algo en esa pasantía, esa es una buena señal. ¿ Tienen trabajo actualmente? Bueno, si ellos si actualmente están empleados en mi muy pequeño think data dijo, resultó que
vale la pena contratarlos, ya
sabes, sabes, sólo porque alguien más pensó que valía la pena contratarlos. Obviamente, sería un poco más una decisión matizada en el mundo real. Si actualmente no están empleados, ¿tienen más de un empleador menos de un anterior. caso afirmativo, esta persona nunca ha ocupado un empleo, y
tampoco hizo una pasantía . Probablemente no sea una buena decisión de contratación. No contrates a esa persona. Pero, ya
sabes, si tenían un empleador anterior, ¿al menos van a una cima a tu escuela? Si no, es una especie de dudosa. Si es así, entonces sí, deberíamos contratar a esta persona en base a los datos en los que nos capacitamos. Entonces así se camina a través de los resultados de un árbol de decisiones. Es como pasar por un diagrama de flujo, y es algo increíble que un algoritmo pueda producir esto para ti. El algoritmo en sí es en realidad muy simple. Así es como funciona. Por lo que en cada paso del diagrama de flujo del árbol de decisión, encontramos el atributo en el que podemos particionar nuestros datos. Eso minimiza la entropía de los datos en el siguiente paso. De acuerdo, entonces saben que tenemos un conjunto resultante de clasificaciones en este caso, mayor, no contrato y queremos elegir la decisión de atributo en cada paso que minimizará la entrevista el siguiente paso. Entonces, básicamente, en cada paso, queremos hacer que todas las opciones restantes den como resultado ya sea tantos contratados conocidos o tantas decisiones
superiores como sea posible. Queremos hacer ese datum o más uniforme. Entonces a medida que trabajamos nuestro camino por el diagrama de flujo, finalmente
terminamos con un conjunto de candidatos que son o todos los contratados son todos contratados que podemos clasificar en, ya
sabes, sí, no hay decisiones sobre un árbol de decisiones. Entonces eso es todo. Ya sabes, acabamos de caminar por el árbol, minimizamos la entropía en cada paso eligiendo el atributo correcto para decidir, y seguimos adelante hasta que nos acabemos. Y hay un nombre elegante para este algoritmo se llama idee tres. Ni siquiera sé qué significa eso, pero eso es todo lo que significa es lo que se conoce como algoritmo codicioso. Entonces a medida que va bajando por el árbol, sólo recoge el atributo que minimizará la entropía en ese punto. Ahora eso podría no resultar realmente en un árbol óptimo que minimice el número de opciones que tienes que hacer, pero dará como resultado un árbol que funciona, dado el día que le diste. Entonces eso es todo lo que hay a ello. Es una idea bastante sencilla. Ahora, un problema con los árboles de decisión es que son muy propensos a sobreencajar. Para que puedas terminar con un árbol de decisiones. Algo así como vimos que funciona bellamente para los datos en los que lo entrenaste. Pero podría no ser tan grande para predecir realmente la clasificación correcta para
gente nueva que no ha visto antes. Esa decisión arbolan aire todo sobre llegar a la decisión correcta para los datos de entrenamiento que le diste. Está bien. Y tal vez realmente no tomaste en cuenta los atributos correctos. A lo mejor no le dio suficiente de una muestra representativa de personas para aprender de éstas puede resultar en problemas reales. Entonces para luchar eso usamos una técnica llamada bosques aleatorios. Y la idea aquí es que realmente demos muestras de nuestros datos que entrenamos de diferentes maneras para múltiples árboles de decisión diferentes. Por lo que cada árbol de decisiones toma una muestra aleatoria diferente de nuestro conjunto de datos de entrenamiento y conduce la verdad, construye un árbol a partir de ella, y luego cada tratado resultante puede votar el resultado correcto. Ahora, esa técnica de volver a muestrear aleatoriamente nuestros datos con el mismo modelo es un término llamado bootstrap agregando o embolsando de nuevo, un término lujoso para una idea muy simple. Y esta es una forma de lo que llamamos aprendizaje conjunto, que en breve cubrirá con más detalle. Pero la idea básica. Tenemos múltiples árboles, un bosque de árboles, si se quiere. Cada uno que utiliza una sub muestra aleatoria de los datos sobre los que tenemos que entrenar, y luego cada uno de estos árboles puede votar el resultado final, y eso nos ayudará a combatir por adecuación para un determinado conjunto de datos de entrenamiento. La otra cosa que los bosques aleatorios pueden hacer es en realidad restringir el número de atributos entre los que puede elegir en cada etapa es que está tratando de minimizar la entropía es hace va y
podemos elegir aleatoriamente qué atributos pueden elegir en cada nivel. Por lo que eso también nos da más variación de árbol a árbol. Y por lo tanto obtenemos más de una variedad de algoritmos que podemos competir entre sí, y todos ellos pueden votar sobre los resultados finales utilizando enfoques ligeramente diferentes para llegar
a la misma respuesta. Entonces así funcionan los bosques aleatorios. Básicamente, es un bosque de árboles de decisión donde están dibujando a partir de
diferentes muestras y también diferentes conjuntos de atributos en cada etapa que puede elegir. De acuerdo, así que con todo eso, vamos a tomar algunos árboles de decisión y en realidad usaremos fuerzas aleatorias Bueno, cuando terminemos porque como Hitler y lo hace realmente, realmente fácil de hacer tan bien ver en un minuto.
38. Árboles de decisiones: Predicting decisiones de contratación: Muy bien, tomemos algunos árboles de decisión. Es bastante fácil. De hecho, es una locura lo fácil que es esto. Es algo bastante emocionante. Si pudiéramos crear un diagrama de flujo real a partir de datos de entrenamiento que realmente funcione con solo unas pocas líneas de código en Python. Entonces vamos a intentarlo. Por lo que he incluido un archivo de llantas pasadas dot C S V con los materiales de tu curso, y eso solo incluye algunos datos fabricados que inventé sobre personas que o bien consiguieron una oferta de
trabajo o no en base a los atributos de esos candidatos. Así que adelante y cambia ese camino a lo que sea. Dondequiera que instalaste los materiales para este curso, no
estoy seguro de dónde lo pusiste, pero casi seguro que no está ahí. Así que adelante y fin de ese archivo estaban en la decisión Tree Python archivo de cuaderno aquí en
este momento . Y solo vamos a usar pandas para leer eso es ESPN y crear un objeto de marco de datos fuera de él. De acuerdo, así que sigamos adelante y leamos eso en, y podemos usar la función de cabeza en el dedo del marco de datos, imprimir las primeras líneas y asegurarnos de que parezca que tiene sentido, y lo suficientemente seguro, nosotros tener algunos validados aquí. Por lo que para cada candidato, yo d. Tenemos sus años de experiencia pasada si estaban o no empleados ahí, número de empleadores anteriores, su nivel más alto de educación, si fueron a una cima escuela de nivel y si hicieron una pasantía. Y por último, aquí están las respuestas donde sabíamos que o bien extendimos una oferta de trabajo a esta persona o no . De acuerdo, así que como de costumbre, la
mayor parte del trabajo es solo en masajear tus datos, preparar tus datos antes de que realmente ejecutes los algoritmos en ellos. Y eso es lo que tenemos que hacer aquí. aprendizaje psíquico requiere que todo sea nuevo. Milagro. Entonces no podemos tener sabio y extremos y B s y m s es. Y doctorados Tenemos que convertir todas esas cosas a números para el
trabajo del dedo del pie del modelo del árbol de decisión . Entonces la forma de hacer eso es usar algún panda acortado Esto que hace que estas cosas sean fáciles . Básicamente, lo
estoy haciendo diccionario y python que mapea la letra y al número uno y la letra final al valor cero. Entonces quiero convertir a todas mis esposas dedo del pie y termina 20 Entonces ¿por qué va a significar uno va a ser malo? Sí, y cero significará no. Y lo que puedo hacer es simplemente tomar la llamada contratada y desde el marco de datos, usando esta sintaxis aquí y llamar a mapa en ella usando un diccionario. Y lo que eso hará es pasar por toda la columna contratada en todo el marco de datos y usar ese diccionario. Busca para transformar todas las entradas en esa columna, y devuelve una nueva columna de marco de datos que estoy poniendo de nuevo en la llamada más alta. Por lo que esto básicamente reemplaza la columna superior por una que se ha mapeado unos de dedo y ceros . De acuerdo, y yo hago lo mismo por los empleados. Habla con tu escuela y pasantes para que todos esos sean mapeados usando el diccionario sí no para que sabios y
los extremos se conviertan en unos y ceros en su lugar. Para el nivel de educación, hice el mismo truco que creé diccionario que tiene signos Bs 20 m esto uno y PhD a y usa eso para remapear esos nombres de grado a valores numéricos reales. Entonces si sigo adelante y hago eso y vuelvo a hacer adelante, se
puede ver que funcionó todos mis sí son unos, mi nariz o ceros, y mi nivel educativo ahora está representado por un valor numérico que tiene significado real. Entonces ahora solo necesitamos preparar todo para entrar realmente en nuestro clasificador de árbol de decisiones , lo cual no es tan difícil de hacer eso. Necesitamos separar nuestra información de características, que son los atributos que intentaban predecir de y nuestra columna Target. Entonces, ¿qué contiene lo que estamos tratando de predecir? Por lo que para extraer la lista de columnas de nombre de entidad sólo iban a decir, Crear una lista de columnas hasta el número seis. Entonces las 1 ª 6 columnas y vamos adelante e imprimimos eso. Y esos son los nombres de columna que contienen nuestra característica información años experiencia empleada, empleados
anteriores nivel educación remató a tu escuela y a su vez,
estos transmiten los atributos de los candidatos en los que queremos predecir contratación y nosotros a continuación construimos R y vector aquí se asigna a lo que estamos tratando de predecir. Entonces esa es nuestra columna contratada. Entonces esto extrae toda la columna contratada y le llama por qué, y luego toma todas nuestras columnas para los datos de la característica y las pone en algo llamado X. Así que esta es una recopilación de todos los datos y todas las columnas de características. Y estas son las dos cosas que son las necesidades del clasificador Árbol de decisión. Por lo que realmente crea el clasificador en sí. Dos líneas de código que llamamos tratar arriba clasificador de árbol de decisión para crear nuestro clasificador. Y luego lo ajustamos a nuestros datos de características, y la respuesta es si se contrató o no a personas. Entonces sigamos adelante y corremos eso bastante rápido ahora para mostrarlo. No quiero que me den demasiados detalles. ¿ Qué está pasando aquí? Básicamente, mostrar datos gráficos es un poco complicado. Basta con considerar este código repetitivo sobre cómo hacer esto. Es necesario entender cómo funciona el gráfico en archivos dot en todas esas cosas, pero no es importante. Básicamente, esta es la necesidad de Cody para mostrar realmente el resultado final de un árbol de decisiones. Entonces sigamos adelante y corramos eso. Y ahí lo tenemos. ¿ Qué tan guay es eso? Tenemos un diagrama de flujo real aquí. Ahora déjame mostrarte cómo leerlo para que se coma escenario. Tenemos una decisión. Entonces recuerda, la
mayoría de nuestros datos es sí. No, va a ser cero o uno. Entonces el punto de decisión aquí está empleado menos de 10.0.5, lo que significa que si tenemos un valor laboral de cero No, vamos a ir a la izquierda. El empleo es uno. Sí, nos vamos a ir. Correcto. Entonces donde anteriormente empleaban, si no, van a la izquierda? En caso afirmativo, vaya. Correcto. Y resulta que en mis datos de muestra, todos los que actualmente están empleados en realidad consiguieron una oferta de trabajo. Por lo que puedo decir muy rápidamente, si actualmente
estás empleado, Sí, Sí,vale la pena traer. Lo vamos a seguir hasta este nivel aquí. ¿ Cómo interpreta esto? El puntaje de Gini es básicamente una medida de entropía que lo está usando cada paso. Recuerda, conforme vamos bajando, el algoritmo está tratando de minimizar la cantidad de entropía y las muestras airean el número
restante de muestras que básicamente no han sido seccionadas por un decisión. Forma de leer las notas finales de la hoja aquí. Esta columna de valor. Entonces eso les dice a estas alturas tenemos cero candidatos que no fueron contratados y cinco que fueron contratados. Entonces la forma de interpretar esto es si se empleaba era una. Voy a ir a la derecha, es
decir que actualmente están empleados. Y esto me lleva a un mundo donde todo el mundo consiguió una oferta de trabajo. Entonces eso significa que debo contratar a esta persona. De acuerdo, Ahora, digamos que nosotros esta persona no tenemos trabajo actualmente. Lo siguiente que veremos es que tienen una pasantía? caso afirmativo, entonces estamos en un punto en el que un artista capacita datos, todo el mundo consiguió una oferta de trabajo. Entonces en ese punto, podemos decir que nuestra entropía ahora es cero porque todos están locos y todos consiguieron una oferta en ese momento. No obstante, si seguimos bajando, estamos en un punto aquí ahora donde la entropía es de 0.0.32 está cada vez más baja. Eso es bueno. Entonces a continuación vamos a ver cuánta experiencia tienen tienen tienen menos de un año de experiencia. Y si el caso es que sí tienen alguna experiencia y han llegado tan lejos ahí bastante bien, No hay decisión superior. Entonces terminamos en este punto donde tenemos cero entropía. Pero las tres muestras restantes en nuestro set de entrenamiento no fueron contratadas. De acuerdo, tenemos tres sin contrataciones y cero contrataciones, pero si tienen menos experiencia que ahí, probablemente recién salido de la universidad, todavía valdría la pena
mirarlos. El último aspecto que veremos es si fueron o no a una escuela de primer nivel, y de ser así, terminan siendo una buena predicción por ser más alta. Y si no, terminan siendo un no más alto porque terminamos con un candidato que cayó en esa
categoría que era un no mayor y cero que eran más altos. En tanto que en este caso tenemos cero no hay contrataciones y uno más alto, por lo que se puede ver sólo seguimos yendo hasta llegar a una entrada de cero, si es posible para cada caso. Ahora digamos que queremos usar un bosque aleatorio. Ya sabes, nos preocupa que podamos estar más ajustando nuestros datos de entrenamiento. En realidad es muy fácil crear un clasificador de bosque aleatorio de árboles de decisión múltiples. Entonces para hacer eso, podemos usar los mismos datos que creamos antes otra vez. Solo necesitas tu X e y vector, el conjunto de características y el llámenlo que estás tratando de predecir, y solo vamos a hacer que un clasificador de bosque aleatorio también esté disponible desde el aprendizaje psíquico y todo lo que necesitas para pasarlo es cómo muchos árboles ¿quieres en tu bosque? Entonces hagamos 10 árboles en nuestro bosque aleatorio. Entonces podemos encajar a eso al modelo, y no tienes que caminar por los árboles a mano. Y cuando estás lidiando con un bosque aleatorio, realmente no
puedes hacer eso de todos modos. Entonces, en cambio, vamos a usar la función de predicción en el modelo en el clasificador que hicimos. Vamos a pasar en una lista de todas las diferentes características para un candidato dado para el que
queremos predecir empleo. Entonces, si recuerdas esto, mapas a estas columnas. Años experiencia empleado empleadores anteriores, nivel de educación, top a tu escuela e internado interpretado como valores numéricos. Por lo que queremos predecir el empleo de desempleados veterano de 10 años. Podemos hacer eso o queremos pronosticar el empleo de un veterano desempleado de 10 años. Podríamos hacer eso, y bastante seguro obtenemos un resultado. Entonces en este caso en particular, terminamos con una decisión más alta sobre ambos. Pero lo interesante es que hay un componente aleatorio a eso, por lo que en realidad no obtienes el mismo resultado cada vez. mayoría de las ocasiones, el desempleado no recibe una oferta de trabajo, y si sigues manejando esto, verás que suele ser el caso. Pero la naturaleza aleatoria del embolsado de bootstrap agregando él es uno de esos árboles significa que no vas a obtener el mismo resultado cada vez. Entonces tal vez 10 no son suficientes árboles. Entonces de todos modos, buena lección para aprender ahí para una actividad. Si quieres volver atrás y jugar con este Mesereau play input data. Adelante y edita ese archivo CSB del que empezamos y crea un universo alternativo donde es topsy turvy world. todos a los que le di una oferta de trabajo ahora no le dan una y viceversa. Vea lo que eso le hace a su decisión Árbol despedido por ahí y vea qué puede hacer e intente interpretar los resultados. Así que diviértete un poco con él. Esto es algo interesante. Creo que esto es realmente genial, así que eso son árboles de decisión y bosques aleatorios. Entonces eso es árboles de decisión, uno de los bits más interesantes del aprendizaje automático. En mi opinión, siempre
pienso que es bastante genial solo generar un diagrama de flujo fuera de la nada así,
así que ojalá lo encuentres útil. Sigamos adelante
39. Aprendizaje de Ensemble: Entonces, cuando hablamos de bosques aleatorios, ese fue un ejemplo de aprendizaje de conjuntos, donde en realidad estamos combinando y múltiples modelos juntos para llegar a un
mejor resultado del que cualquier modelo individual pudiera llegar. Entonces vamos a aprender de eso un poco más de profundidad. Hablemos de ensemble aprendiendo un poco más. Ya hemos cubierto esto un poco, pero hay más de una forma de hacerlo, así que solo quiero cubrirlo. Algunas de las técnicas básicas que existen para el aprendizaje de conjuntos es una especie de
tema importante , pero será una conferencia corta porque las ideas son bastante básicas. Por lo que recuerda al azar para nosotros. Teníamos, ah, manojo de árboles de decisión que estaban usando diferentes sub muestras de los datos de entrada y diferentes conjuntos de atributos en los que se ramificaría. Y todos votaron sobre el resultado final cuando intentabas clasificar algo al final. Entonces ese es un ejemplo de aprendizaje de conjuntos. Otro ejemplo, cuando estábamos hablando de K significa clustering, tuvimos la idea de quizá usar diferentes modelos de medios K con diferentes Iniciales aleatorias Centrowitz y dejar que todos voten sobre el resultado final también, también un ejemplo de aprendizaje de conjuntos. Básicamente, la idea es que tienes más de un modelo, y podría ser del mismo tipo de modelo. Podrían ser diferentes tipos de modelos, pero los ejecutas todos de tu lado de los datos de entrenamiento, y todos votan sobre el resultado final para lo que sea que estés tratando de predecir. Y muchas veces encontrarás que este conjunto de diferentes modelos produce mejores resultados que cualquier modelo individual podría por sí solo. Un buen ejemplo de hace unos años fue el Premio Netflix. Por lo que Netflix corrió un concurso donde ofrecieron. Creo que fue un $1,000,000 para cualquier investigador que pudiera superar su algoritmo de
recomendación de películas existente y los que uno eran enfoques conjuntos, donde en realidad corrieron múltiples. Recomendar sus algoritmos a la vez y dejar que todos voten sobre el resultado final. Por lo que el aprendizaje conjunto puede ser una herramienta muy poderosa pero sencilla para aumentar la calidad de sus resultados
finales y el aprendizaje automático. Ahora, los bosques
aleatorios volvieron a utilizar una técnica llamada embolsado, que es la abreviatura de agregación bootstrap, que es otro término elegante para un concepto simple. Todo lo que significa es que tomamos sub muestras aleatorias de nuestros datos de capacitación y las alimentamos en diferentes versiones del mismo modelo y dejamos que todos voten sobre el resultado final. Entonces si recuerdas, Random Forest tomó muchos árboles de decisión diferentes que usan una muestra aleatoria diferente de los datos de
entrenamiento para entrenar, y luego todos se juntaron al final de la votación sobre el resultado final. De acuerdo, así que eso es embolsar. Impulsar es un centro comercial alterno, y la idea ahí es que empieces el modelo. Pero cada modelo posterior impulsa los atributos que abordan las áreas que fueron mal clasificadas por el modelo anterior. Entonces tomas una prueba de tren de carrera en un modelo, él se da cuenta, ¿cuáles son los atributos que básicamente se está equivocando? Y luego impulsas esos atributos y modelos posteriores con la esperanza de que esos
centros comerciales posteriores les presten más atención y los hagan bien. Entonces esa es la idea general detrás de impulsar. Ya
sabes, corres un modelo, descifras sus puntos débiles, amplificas el enfoque en esos puntos débiles débiles a medida que vas y sigues construyendo cada vez más modelos que siguen refinando ese modelo en base a las debilidades del anterior uno a otro técnica. Y esto es una especie de lo que hizo el ganador del Premio Netflix se llamó un cubo de modelos donde podrías tener modelos completamente diferentes que tratan de predecir algo. A lo mejor estoy usando medios K y un árbol de decisiones y regresión. Puedo ejecutar los tres modelos juntos en un conjunto de datos de entrenamiento y dejar que todos voten sobre el resultado final de la clasificación cuando estoy tratando de predecir algo. Y tal vez eso sería mejor que relajar a cualquiera de esos modelos de manera aislada. De acuerdo, apilamiento, misma idea. Entonces ya
sabes, ejecutas múltiples modelos en los datos combinaron los resultados de alguna manera. Para que conozcas la sutil diferencia ahí, entre cubo de modelos y cubeta de apilamiento de modelos, básicamente
eliges el modelo que gana, por lo que ejecutarías prueba entrenada. ¿ Encuentra el modelo que mejor funcione para tus datos y usa ese modelo? Dónde está apilamiento combinará los resultados de todos esos modelos juntos para llegar a unos resultados
finales. Ahora existe todo un campo de investigación sobre el aprendizaje de conjuntos que trata de encontrar las
formas óptimas de hacer el aprendizaje de conjuntos. Y si quieres encontrar sonido inteligente. Por lo general eso implica usar mucho la palabra bahías, que verás en la diapositiva. Por lo que existen algunos métodos muy avanzados de hacer aprendizaje de conjuntos. Pero todos ellos tienen puntos débiles. Y creo que esta es una lección más en que siempre debes usar la técnica más simple que te funcione bien. Entonces todas estas son técnicas muy complicadas, así que realmente no puedo meterme en el alcance de este curso. Pero al final del día, es difícil superar solo técnicas simples de las que ya hemos hablado. Entonces en teoría, hay algo llamado el clasificador óptimo de Bays que siempre será el mejor. Pero es poco práctico. Ya sabes que es prohibitivo computacional hacerlo. La gente ha tratado de hacer variaciones del otoño base un clasificador para hacerlo más práctico, como el promedio de anuncios de parámetro de Beijing. Pero sigue siendo varios por encima de ajuste, y a menudo se supera por el respaldo, que es la misma idea detrás del azar. Para nosotros, solo para volver a muestrear los datos varias veces estamos en diferentes modelos y dejar que todos voten sobre el resultado final. Resulta que eso funciona igual de bien, y es mucho más sencillo. Por último, hay algo llamado margarita y combinación de modelos que intenta resolver todas las deficiencias de las abejas, clasificador
óptimo y promedio ocupado y parámetro promedio. Pero al final del día, no
hace mucho mejor que simplemente cruzar validando contra una combinación de modelos contra, ya
sabes, apilar básicamente. Entonces de nuevo, ya
sabes, estas son técnicas muy complejas que son muy difíciles de usar en la práctica. Estás mejor con las más simples de las que hemos hablado con más detalle. Pero quieres sonido inteligente y usa mucho la palabra días. Es bueno estar familiarizado con estas técnicas, al
menos saber cuáles son. Entonces eso es aprender ensemble otra vez. El quitarle es que las técnicas simples como bootstrap, agregando o embolsando o potenciando o apilando o cubeta de modelos, o generalmente, las elecciones correctas. Hay algunas técnicas mucho más fantasiosas por ahí, pero son en gran medida teóricas, Pero al menos ya sabes de ellas ahora, todos modos. Ensemble learning siempre una buena idea para probar, ya
sabes, se ha comprobado una y otra vez que producirá mejores resultados que cualquier
modelo individual , así que definitivamente considéralo. A pesar de que es más trabajo, obtendrás mejores resultados como resultado de usar el aprendizaje de conjuntos
40. [[Actividad] XGBoost: Entonces ahora que hemos hablado de impulsar y hemos hablado de árboles de decisión en este curso. Juntemos esos conceptos y hablemos de XGBoost, que posiblemente es los algoritmos de aprendizaje automático más potentes que existen hoy en día. Capítulo tan importante aquí, XGBoost significa árboles potenciados en gradiente extremo. Ahora recuerda, impulsar es un método de conjunto. La idea es que tomemos un modelo y tengamos múltiples versiones de ese modelo encadenadas juntas. Entonces lo que pasa es que cada árbol dentro de nuestro esquema de potenciación aquí va a impulsar los atributos que conducen a malas clasificaciones del árbol anterior. Entonces básicamente tenemos múltiples árboles solo estamos construyendo uno encima del otro para corregir los errores del árbol anterior antes que él. Y resulta que esta idea bastante simple es realmente, realmente increíble. Xgboost gana rutinariamente competencias Kaggle. Es muy fácil de usar. Es muy eficiente computacionalmente. Por lo que hace una muy buena opción para que un algoritmo comience desde cualquiera que sea tu problema, ya sea clasificación o regresión, hay una muy buena probabilidad de que xgBoost vaya a demostrar ser el mejor algoritmo para tratar realmente de hacer un modelo para sus datos y hacer predicciones precisas basadas en ese modelo. Y es realmente fácil de usar. Es decir, es, es casi inquietante lo fácil que es debajo del capó tiene un montón de características realmente geniales que lo hacen tan bueno. La facilidad es algo llamado potenciamiento regularizado. Entonces esto es lo que lo diferencia de otros métodos de árbol potenciados por ahí. regularización es algo que evita el sobreajuste. Por lo que asegura que el modelo con el que terminamos esté generalizado y no esté realmente sobreajustado al conjunto de datos en el que lo entrenaste. Hablaremos de regularización con más detalle más adelante en el curso. Pero bajo el capó utiliza la regularización L1 y L2, que nuevamente hablaremos más después. Otra característica realmente genial es que XGBoost puede manejar los valores que faltan automáticamente. Por lo que automáticamente descubrirá la mejor manera de manejar los valores que faltan en sus datos. No tienes que pensar demasiado en ello. Esa es una característica realmente genial porque, ya sabes, lidiar con valores faltantes e imputar esos valores faltantes puede ser una gran parte de tu trabajo como científico de datos. Pero XGBoost simplemente hace que suceda. También se puede ejecutar en paralelo. Entonces esa es la clave de su eficiencia. En realidad puede aprovechar todos los núcleos de su CPU o incluso aprovechar un clúster de computadoras. Se puede ejecutar en paralelo a través de múltiples hilos. Y esto también significa que puedes usarlo para big data, para datasets grandes, no necesariamente cabré en una máquina. Entonces no sólo XGBoost son realmente algoritmo potente y preciso para conjuntos de datos pequeños. También escala bien. Entonces, ¿qué no es de amar al respecto, verdad? Otra característica agradable es que puedes hacer validación cruzada en cada iteración. Todavía no hemos hablado demasiado de validación cruzada. Pero la idea es que se pueda evaluar el rendimiento de este algoritmo de XGBoost en cada paso de su entrenamiento. Y eso te permite hacer cosas como decir, Bueno, en realidad no estoy viendo mucho más beneficio de más iteraciones. Entonces voy a seguir adelante y detener esta iteración temprano. O en realidad puedo encontrar el número óptimo de iteraciones ya que lo estoy entrenando. Entonces como puedo monitorear la precisión de mi modelo ya que itera y averiguar cuándo debo detenerlo y encontrar ese punto óptimo con bastante facilidad. También apoya la capacitación incremental. A lo que quiero decir con eso es que en realidad se puede detener el entrenamiento de un modelo XGBoost y luego guardarlo y volver a recogerlo más tarde. Entonces. Si realmente quieres dividir la capacitación a lo largo un periodo de tiempo o a través de múltiples trabajos por lotes. Esa es una posibilidad también con XGBoost. Además, te permite enchufar tus propios objetivos de optimización. Esto lo hace muy flexible en la naturaleza. Entonces, cualquiera que sea el problema que tengas, si puedes describirlo en términos de algo que quieras optimizar, probablemente
puedas conseguir que XGBoost trabaje en ello. Y finalmente utiliza una característica llamada poda de árbol. Entonces a diferencia de los árboles de decisión normales donde simplemente deja de ramificarse una vez que deja de cantar, beneficio de hacerlo, como que toma un enfoque diferente aquí, en realidad
va a ir muy profundo por defecto y luego tratar de podar ese árbol hacia atrás para que generalmente da como resultado árboles más profundos, pero árboles más altamente optimizados. Y eso es parte de la clave de su éxito. Usar XGBoost es ridículamente fácil de instalar. Simplemente escribe pip instalar XGBoost desde tu Anaconda Prompt. Y una vez instalado, solo puedes empezar a usarlo. También ofrece interfaces en la interfaz de línea de comandos para C plus, que es en lo que está escrito de forma nativa, también para el lenguaje R Julia, y tiene una interfaz JVM. Por lo que puedes usar XGBoost de manera muy eficiente dentro de programas como Java o Scala y Spark usando Scala por ejemplo. Por lo que no solo está hecho para cuadernos scikit-learn y Python. Es más general que eso. Y como tal, tiene su propia interfaz. Por lo que realmente no está hecho específicamente para scikit-learn. Por lo que las cosas son un poco diferentes cuando estás usando XGBoost dentro de scikit-aprenderla dentro de un cuaderno. La principal diferencia es que utiliza algo llamado estructura de datos de
matriz D para contener la entidad y los datos etiquetados. Pero usarlo es muy fácil y es una forma muy fácil crear una de esas estructuras de matriz d a partir de una matriz NumPy. Entonces en la práctica, no es gran cosa. Y pasarás todos los parámetros para XGBoost como diccionario gigante y hablaremos de eso en un segundo. Una vez que hayas hecho eso, todo lo que tienes que hacer lo que se llama tren en el modelo y luego llamar a predecir en el modelo entrenado para hacer predicciones a partir de él. Es realmente, realmente fácil. El duro es, es afinar todos esos hiperparámetros de XGBoost. Entonces hay un montón de perillas y diales y XGBoost. Y para obtener los mejores resultados, es necesario elegir la configuración adecuada. Y muchas veces eso sólo se hace a través de la experimentación. Algo va a ser bastante sencillo. Por ejemplo, puedes elegir tu potenciador, tus prioridades. Un árbol para problemas de clasificación son lineales para problemas de regresión. Y también necesitas elegir tu tipo de función objetiva. Entonces por ejemplo, podría elegir softmax si solo quiero elegir una de muchas clasificaciones y elegir la mejor clasificación para cualquier cosa dada. O podría decir que quiero prob multi soft que me
dé probabilidades reales para cada clasificación. Entonces eso podría permitirme potencialmente obtener una lista de clasificaciones probables, más de una por cada cosa que estoy tratando de predecir. Más allá de eso, el resto necesita aprenderse a través de la experimentación. Por lo que eta es probablemente el parámetro principal, la perilla más grande que tienes en XGBoost, si lo deseas. Se puede pensar en eso como tasas de aprendizaje. Por lo que va a ajustar los pesos en cada paso del entrenamiento. Y el valor por defecto de eso va a ser 0.3. Y muchas veces encontrarás que en la práctica, bajar eso un poco a, apuntar o incluso más bajo a menudo producirá mejores resultados. Entonces eso es lo principal con lo que quieres empezar a retocar. Una vez que intentas afinar el rendimiento de tu modelo XGBoost. Algunos otros parámetros importantes o una profundidad máxima que va a ser la profundidad máxima del árbol. Y obviamente si eso es demasiado pequeño, no
vas a poder crear un modelo muy preciso, pero si es demasiado grande, podrías terminar sobre el ajuste. Por lo que afinación eso puede ser algo muy importante para tratar de salir bien. También hay uno llamado Min weight infantil. Esto también se puede usar para controlar el sobreajuste, asegurándose de que su modelo no sea demasiado específico para los datos en los que lo entrenó. Pero si lo pones demasiado alto, terminarás bajo ajuste. Por lo que necesitas conseguir el equilibrio adecuado en eso también. Hay un gran número de otros parámetros y XGBoost también. Pero estos son los principales con los que quieres jugar y experimentar. Y de nuevo, a veces solo necesitas experimentar para averiguar qué combinación de valores funciona mejor. Dentro de un cuaderno Python, puedes usar herramientas como GridSearchCV para probar automáticamente y array de diferentes valores para estos parámetros y averiguar automáticamente cuál es el correcto. O si estás usando un sistema más grande como AWS, SagMaker, tendrá cosas como trabajos de ajuste automático de hiperparámetros que
puedes configurarlo para tratar de encontrar aquí la combinación correcta de parámetros. Por lo que afinando estos solo jinete clave para obtener el mejor rendimiento de XGBoost. Pero como verás, realmente no tienes que pensar demasiado duro para sacar buenos resultados de ello. Así que recuerda, XGBoost es casi todo lo que necesitas saber para el aprendizaje automático en estos días en términos prácticos. Para problemas sencillos de clasificación o regresión, probabilidades son que vas a obtener los mejores resultados de XGBoost y usar su realmente fácil. Entonces con eso, veámoslo realmente en acción. Lo vamos a tirar al conjunto de datos de Iris. Este es un conjunto de datos común utilizado con fines educativos. Es solo un conjunto de datos de un ramo de flores y
miden la longitud y el ancho tanto de los pétalos como de los sépalos. El sépalos es sólo un tipo específico de pedal. Creo que es el del fondo de la flor del iris. Y en base a esas mediciones de los pétalos, no
estamos tratando de predecir a qué subespecie de virus pertenece esa flor en realidad. Y como veremos, XGBoost es extremadamente bueno en esto. Entonces vamos a sumergirnos y darle una oportunidad. Entonces juguemos con XGBoost. Empezaremos por plantear nuestro prompt de Anaconda siempre es así. Iré a mi menú de inicio aquí e iré
al Anaconda Prompt o en Mac o Linux, traeré la terminal. Lo primero que tenemos que hacer es cd en donde se almacenan los materiales de nuestro curso. Para mí, eso va a ser de colon CDC contrasta curso ML. Y antes de encender el Cuaderno Jupyter, necesitamos instalar primero el propio XGBoost. Entonces ya he hecho eso, pero probablemente no lo hayas hecho. Así que adelante y teclea pip instalar XGBoost para encargarse de eso. Para mí, no va a hacer nada porque ya lo he instalado. Pero para ti debería ser salir por ahí y descargar e instalar la última versión de XGBoost. Una vez hecho eso, podemos escribir en cuaderno de Júpiter, Júpiter con
yUna vez que estemos aquí, adelante y encuentra el XGBoost, sin libro y abre eso. Y empecemos. Entonces, de nuevo, usar XGBoost es realmente fácil. Aquí no hay mucho que mirar porque no hay mucho que hacer. Es realmente fácil de usar y simplemente funciona. Entonces ya lo habíamos instalado, pero como recordatorio, así lo instalarías si no lo hicieras ya. Y de nuevo, vamos a estar experimentando con el conjunto de datos de Iris. La idea de esto es que tenemos un conjunto de datos de flores donde tenemos mediciones tanto de los pétalos como de sépalos, que es solo un tipo especial de pétalos, la longitud y anchura de cada uno. Entonces para cada flor, vamos a tener cuatro medidas para atributos o características, si se quiere, la longitud y anchura de los pétalos y la longitud y anchura de los sépalos. Y lo que necesitamos hacer es predecir qué subespecie de flor se basa en esas mediciones. Y luego resulta que hay tres subespecies de flores de iris, setosa, versicolor y virginica. Adelante y cargemos esos datos. Afortunadamente, eso ya está incorporado en scikit-learn. Por lo que sólo teníamos que decir load underscore iris para cargar eso. Y aquí podemos explorar los parámetros y características de esos datos. Entonces haremos la forma data.dat para averiguar qué hay exactamente en él, para tratar de entender lo que hay ahí dentro. Adelante y pulsa Shift Enter ahí para ejecutar realmente eso. Y podemos ver que esto consiste en un 150 muestras, por lo que aquí solo hay unas 150 flores en nuestro conjunto de datos. Cada, cada flor tiene cuatro características, la longitud y el ancho del pétalo, para luego vincularlos con el sépalo. Y un posible blanco nombres. Las categorías reales que estamos tratando de predecir las etiquetas son setosa, versicolor y virginica. Entonces, comencemos dividiendo esos datos
tanto en el conjunto de datos de capacitación como en un conjunto de datos de prueba. Aquí la idea es que queremos asegurarnos de que solo estamos entrenando nuestro modelo basado en nuestros datos de entrenamiento. Y luego vamos a dejar de lado el 20% de nuestros datos para evaluar realmente el modelo con. Entonces queremos asegurarnos de que estamos manteniendo estos datos de prueba a
un lado y no entrenando la fecha en ella para que podamos decir, Ok modelo, ok, xgBoost modelo. ¿ Qué tan bien te va? Predigo subespecies para flores que nunca habías visto antes. Por lo que esto asegura que no estemos entrenando en. La respuesta es que no somos como hacer trampa si estás bien, cierto, así que la idea es que vamos a dejar de lado el 20% de nuestros datos para fines de prueba, entrenar el modelo y el 80 por ciento restante, luego evaluar el modelo en base a esos datos que se retuvo. Entonces eso es lo que está haciendo la división de pruebas de tren, es simplemente dividir al azar esos datos. De esa manera pasamos en los datos reales de la entidad, los datos etiquetados. Y decimos que queremos reservar 20 por ciento de los datos para pruebas. Y podemos darle un estado aleatorio específico para asegurarnos que obtenemos los mismos resultados cada vez que ejecutamos esto. Eso entrará en un montón de diferentes matrices aquí, x es básicamente por convención los datos de la característica, en este caso las longitudes y anchuras de los pétalos y sépalos asentados. Y por convención se refiere a los datos etiquetados. Entonces eso va a ser lo subespecie que es. Entonces lo que esto significa es que los datos de entidades, las mediciones reales de los pétalos van a entrar en el tren x para el conjunto de datos de capacitación y X para el conjunto de datos de prueba. Y las etiquetas, las respuestas, si se quiere, de qué subespecie es, entraremos en por qué el subrayado entrenan para los datos de entrenamiento y y la prueba de subrayado para los datos de prueba. Adelante y corremos eso antes de que me olvide. Y ahora podemos cargar el propio XGBoost. Entonces como dijimos, XGBoost es un poco peculiar y que hay que usar estas cosas de matriz d en lugar de simplemente usar matrices numpy rectas. Pero como puedes ver aquí, es realmente fácil crearlos a partir de una matriz NumPy. Entonces vamos a decir que todos los datos de entrenamiento van a ser una matriz D que consiste en los datos de la función de entrenamiento, las mediciones reales, y los datos etiquetados, la subespecie real. Y hacemos lo mismo para los datos de prueba. Por lo que básicamente encarnamos todas las características y datos de
etiqueta tanto para el entrenamiento como para las pruebas en estos dos objetos de matriz d. Adelante y Shift Enter para ejecutar eso. A continuación, necesitamos definir nuestros valores de hiperparámetro. Y como dijimos, esta es a menudo la parte más difícil de todo el asunto es tratar encontrar los valores correctos de estos ajustes, si se quiere. Y así empezaremos con una conjetura. Entonces digamos que vamos a empezar con una profundidad máxima de nuestros árboles de cuatro. Eta comenzará con la tasa de aprendizaje por defecto de 0.3. Y de nuevo, por lo general quieres ir un poco más bajo en eso en todo caso, nuestra función objetiva será Softmax. Softmax solo significa que queremos mirar la clasificación más probable para cada flor. Entonces, en contraste, podríamos usar soft prompt para obtener las probabilidades reales asociadas a cada subespecie individual. Pero sólo me interesa una respuesta por flor, así que quiero que escoja automáticamente el mejor valor de clasificación, y eso es lo que hace softmax. Se fija la clasificación con la máxima probabilidad. Y vamos a especificar el número de clasificaciones que tenemos, en este caso tres, porque sólo hay tres subespecies para elegir. Lo tuyo, tenemos que adivinar aquí en sintonía es el número de épocas o iteraciones, si lo llamarás como quieras. Básicamente, ¿cuántas veces vamos a ejecutar realmente este algoritmo? Entonces con ese Shift Enter y luego podremos entrenar a nuestro modelo con una sola línea de código. Simplemente es así de fácil. Entonces al decir XGBoost dot train, simplemente
pasamos en ese diccionario parámetros, los datos de entrenamiento reales, ese es ese objeto de matriz d. Y cuántas épocas queremos atropellarlo. Adelante y Turno Entrar. Y se puede ver que ya está hecho. Como dijimos, XGBoost es realmente, muy rápido. Por lo que ahora solo podemos hacer predicciones basadas en ese modelo de tren. Entonces sigamos adelante y llamemos a predecir pasar en esos datos de prueba que retuvimos, ¿verdad? Entonces recuerda que tomamos el 20% de nuestro conjunto de datos, lo dejamos a un lado para que el modelo nunca lo viera mientras entrenaba. Y ahora vamos a evaluar qué tan bien predice las flores que nunca antes se había visto. Y si imprimimos esas predicciones, podemos ver que está imprimiendo los números de categoría de cada flor individual en ese conjunto de datos de prueba. Entonces olvidé a qué corresponden estos en realidad. Creo que dos significa una virginica, por ejemplo, ¿verdad? Por lo que estas son las predicciones reales de subespecies para cada punto de datos en los datos de prueba que el modelo nunca vio antes. Veamos qué tan bien lo hizo en realidad. Por lo que solo voy a llamar a puntaje
de subrayado de precisión del paquete de métricas scikit-learn ahí, pasaré en los valores correctos reales conocidos los cuales van a estar en Y y a pruebas de puntuación, esos son los correctos clasificaciones que conocemos y los valores pronosticados. Y vamos a comparar lo bien que realmente coinciden. Y mira eso. En realidad es perfecto. Eso no se ve muy a menudo. Es decir, acabamos de adivinar los hiperparámetros correctos para XGBoost. Y hasta sólo adivinar, sacamos resultados perfectos de ello. Es decir, obviamente esos son excepcionalmente como que normalmente no vas a conseguir una precisión del 100 por ciento, pero wow, eso es un rendimiento increíble aquí. Ahora normalmente es una actividad práctica. Habría intentado mejorar la precisión jugando con los hiperparámetros aún más, pero no se puede mejorar en un 100 por ciento. Entonces, en cambio, lo que quiero que hagas es intentar que este modelo sea más eficiente. En realidad podría salirse con menos épocas o iteraciones, realidad
podría salirse con la suya con unos árboles más pequeños bajando el parámetro de profundidad máxima. Por lo que intenta optimizar la simplicidad de este modelo y por lo tanto su rendimiento y ver lo sencillo que puedes hacerlo antes de perder realmente precisión. Así que juega con eso y toma una idea de cómo esos hiperparámetros afectan la precisión real de tus resultados. Pero sí, eso es la inacción de XGBoost. Como puedes ver, produce resultados impresionantes. No es difícil de usar. Debe ser tu algoritmo go-to. Y muchos casos.
41. Descripción de las máquinas de vectores de apoyo (SVM): Por último, vamos a hablar de máquinas vectoriales de soporte, que es una forma muy avanzada de agrupar o clasificar datos dimensionales superiores. Entonces, ¿qué pasa si tienes múltiples características que quieres predecir con base en SPM podría ser una herramienta
muy poderosa para hacer eso, y los resultados podrían ser aterradores. Bien. Es muy complicado bajo el capó, pero las cosas importantes entendiendo cuándo usarlo y cómo funciona a un alto nivel. Entonces vamos a cubrir eso ahora. Hablemos de máquinas vectoriales de soporte, y esta es una palabra elegante para lo que en realidad es un concepto de fantasía, pero afortunadamente, es bastante fácil de usar. Lo importante es saber para qué hace y para qué sirve. Por lo que apoyar máquinas vectoriales. Funciona bien para clasificar datos dimensionales superiores, y con eso me refiero a muchas características diferentes. Por lo que es fácil usar algo como, Ya
sabes, K significa agrupar datos que tienen dos dimensiones,ya
sabes, ya
sabes, tal vez la edad en un eje y los ingresos en otro. ¿ Y si tengo muchas, muchas características diferentes que estoy intentando? Teoh Predict basado en que vamos a soportar máquinas vectoriales podría ser una buena forma de hacerlo, matemáticamente. Lo que puede hacer es encontrar estos vectores de soporte de dimensiones superiores. Ahí es donde obtiene su nombre, que definen estos planos dimensionales superiores que dividen los datos en distintos clústeres. Y obviamente los métodos se ponen bastante raros bastante rápido con todo esto. Afortunadamente, el paquete aprendido psíquico lo hará todo por ti sin tener que meterte realmente en él tú mismo bajo el capó. necesario entender, sin embargo, que utiliza algo llamado el truco del Coronel para encontrar realmente esos vectores de apoyo. Y hay diferentes kernels que puedes usar para hacer esto de diferentes maneras. Todo suena muy elegante. Pero de nuevo, el punto principal es que necesitas usar SPM, Zahra Buena opción. Si tienes datos dimensionales más altos con muchas características diferentes, y hay diferentes kernels que puedes usar que tienen costos computacionales variables y podrían ser mejores para el problema que nos ocupa. Y también quiero señalar que se trata de una técnica de aprendizaje supervisada, así que en realidad lo vamos a entrenar en un conjunto de datos de entrenamiento, y podemos usar eso para hacer predicciones para, ya
sabes, futuros datos no vistos o datos de prueba. Por lo que es un poco diferente a K significa clustering. Y que K significa fue completamente sin supervisión con soporte máquina Vector. Se trata de una formación basada en datos reales de entrenamiento donde se tiene la respuesta de la
clasificación correcta para algún conjunto de datos de los que puede aprender. De acuerdo, entonces S PM es útil para la clasificación, ya
sabes, agrupar si quieres. Pero es técnica supervisada. Está bien, ten eso en cuenta. Entonces un ejemplo que a menudo lo ves fue el apoyo. SPM está usando algo llamado clasificaciones vectoriales de soporte, y el ejemplo típico utiliza el conjunto de datos irlandés. Por lo que uno de estos conjuntos de datos de muestra que viene con psique aprende, se llama el Conjunto de Datos Irlandés, y lo que es es una clasificación de diferentes flores, diferentes observaciones de diferentes flores de iris y sus especies. Y la idea es clasificar estos utilizando información sobre la longitud y anchura del pedal en cada flor y la longitud y anchura de la CEPAL de cada flor. Y una CEPAL al parecer es una pequeña estructura de soporte debajo del pedal. Eso
tampoco lo sabía hasta ahora, tampoco lo sabía hasta ahora, pero tienes cuatro dimensiones de atributos. Ahí tienes la longitud y con del pedal y la longitud y el ancho de una CEPAL, y puedes usar ese dedo del pie. Predecir la especie de un iris, dada esa información. Entonces aquí hay un ejemplo de hacer eso con SBC. Básicamente, tenemos varios con y longitud flexible proyectados hasta dos dimensiones, por lo que realmente podemos visualizarlo. Y con diferentes kernels, podrías obtener resultados diferentes. Por lo que SBC con un kernel lineal produce algo como esto, resulta, y luego hay un método SBC lineal también. También el kernel lineal. Produce un resultado así, y también puedes usar kernels polinomios o kernels más fantasiosos que podrían proyectarse hasta curvas en dos dimensiones. Entonces podrías hacer algunas clasificaciones bastante sofisticadas de esta manera, ¿
verdad? Entonces eso es un ejemplo de nuevo, Estos tienen costos computacionales cada vez mayores, y pueden producir, ya
sabes, relaciones
más complejas. Pero de nuevo, es un caso en el que demasiada complejidad puede arrojar resultados engañosos. Por lo que hay que tener cuidado y realmente usar la prueba entrenada cuando corresponda. Ya que estamos haciendo aprendizaje supervisado, en realidad
se pueden hacer pruebas de tren y encontrar el modelo adecuado que funcione. O tal vez es un acercamiento de conjunto correcto. Es necesario llegar al coronel adecuado para la tarea que nos ocupa. Y para cosas como el polinomio SBC, ¿cuál es el polinomio de grado correcto para usar? Ya sabes, incluso cosas como SBC lineal tendrán diferentes parámetros asociados con ellos para los que podría necesitar optimizar, por lo que tendrá más sentido con un ejemplo real. Vamos a sumergirnos en algún código python real y ver cómo funciona.
42. Uso de SVM para hacer Cluster: Juguemos con máquinas vectoriales de soporte. Abre el cuaderno S V C en los materiales de tu curso y afortunadamente, es mucho más fácil usar máquinas vectoriales de soporte que entender cómo funcionan. Entonces para este ejemplo, volvamos a los mismos datos de muestra de clustering que creamos para nuestra K significa
conferencia de clustering . Simplemente tenemos esta función de datos de clúster de caja aquí otra vez, vamos a poner en una semilla aleatoria consistente para que veas los mismos resultados que veo aquí . Pasaremos en un determinado número de clústeres que queremos y un número de puntos por cluster será computado por un sobre K. Así que básicamente, estamos pasando en cuántos clusters quieres y cuántos puntos totales queremos distribuir entre ellos. Aquí creamos entonces nuestros rayos X e y aquí X contendrán datos de características que serán dos
puntos D que consisten en ingresos y edades que el aire generaron y fabricaron aleatoriamente. Y por qué son etiquetas representarán los clústeres con los que se asocian estos puntos. Entonces, por cada clúster que queremos crear se escogerá un OID central de ingresos aleatorios en un grand y ocho Central había seleccionado aleatoriamente entre 20 y 70 años y 220,000 dólares. Y luego por cada punto por ese clúster, crearemos un punto ficticio muestreado aleatoriamente con una distribución normal para un
ingreso y edad dados alrededor de esos Centrowitz. Esos se agregarán a nuestra matriz ex característica y luego elevarán el clúster real. El número dos es por qué la matriz de etiquetas convertirá esos de nuevo en tarta entumecida, levantará y los devolverá. Muy bien, así que ahora realmente prepararemos nuestros datos aquí así que en realidad llamaremos, crearemos Clustered Data. Vamos a pedir 100 puntos divididos en cinco cúmulos diferentes, y yo función lo haré por nosotros. Y trazar con qué vuelve. Entonces solo diremos que queremos crear una gráfica de ocho por seis aquí figura, y haremos una gráfica de dispersión con un color correlacionado con la etiqueta real
asociada a ella que se asegurará de que cada clúster obtenga su propio color luego trazará eso. Ahora resulta que para que el dedo del pie del SBC funcione bien, en algunos núcleos, especialmente el poli Coronel, necesitamos escalar esos datos a un rango normalmente distribuido entre uno negativo y uno. De lo contrario las soluciones podrían nunca converger. Por lo que también vamos a escalar el declarado hacia abajo al rango negativo Oneto uno aquí. Y para ello, planteando algo llamado Min Max Scaler que sale del módulo de pre procesamiento de psíquico Aprender. Y sólo diremos que queremos arreglar todas las características en el rayo X, que contiene todos los ingresos y edades al rango. Negativo 1 a 1 aplicará esa transformación a nuestros datos de entidad, y luego trazaremos los datos de escala resultantes también. Ahora, si alguna vez quisiste volver al rango de datos original, también
hay una función de transformación inversa en el escalador Min Max que puedes usar para retroceder en la otra dirección. Pero para este ejemplo, no
tendremos que hacer eso de todos modos. Sigamos adelante y ejecutemos estos antes de que nos olvidemos, así que volveré al bloque de definición de funciones aquí y ejecutaré ese turno. Entra y luego en bloque para cambiar, entra de nuevo y puedes ver aquí la trama de nuestros resultados no calificados, donde los ingresos variaron de 20,000 a 200,000 más o menos alguna ranura valoran su y nuestros rangos aire aproximadamente de 30 a 70 años para el acceso a la edad. Entonces, básicamente, nuestros datos de características consisten en ingresos en el eje X y edades en el eje Y año después escalarlo, se ve exactamente igual. Excepto que los números reales se han reducido al rango Negativo Oneto uno en ambos ejes. Entonces eso está preparado nuestros datos para ser amigables con S V C. Ahora solo tenemos que aplicar realmente spc, lo cual es increíblemente fácil. Todo lo que tenemos que hacer es importar el paquete SPM desde psique aprende y llame a SPM comprado spc Especifique el coronel que desea. Empezaremos con un núcleo lineal simple. El principal parámetro hiper que importa aquí es C, que es por defecto un punto. Ah, eso funciona bien y le pediremos que se ajuste a nuestra característica de una matriz etiquetada y R. Entonces básicamente diciendo encajar con nuestra matriz de todos los dos puntos D de edades e ingresos y todas nuestras etiquetas
de qué clusters conocemos aquellos a los que se asignan originalmente para que
capaciten a nuestro modelo SPC. Adelante y corremos. Eso fue realmente rápido. Entonces echemos un vistazo a los resultados que vamos a hacer aquí es crear una trama donde
realmente podamos visualizar los rangos dentro de este espacio de dos D de edades e ingresos que son
cosas modelo correlaciona con clústeres dados, y al mismo tiempo trazaremos los resultados reales de qué clusters que piensa que cada punto
individual está en este pozo,
así que para construir este gráfico, primero
necesitamos construir una matriz de dos D muy densa
en la que realmente podamos crear predicciones para que podamos en realidad trazar lo que son esos clústeres en cada punto de este espacio. Para ello, estamos llamando rejilla de malla en tarta entumecida, diciendo que queremos una cuadrícula de puntos de muestra aquí que oscilen entre uno negativo y uno
tanto en el eje x e Y a un espaciado de apenas 0.1 separados entre sí. Entonces esto es lo suficientemente cerca que va a parecer un rango continuo de color Cuando
realmente trazamos esto, entonces
necesitamos convertir el resultado de malla gran melodía, carrera de
árbitro. Podemos usarlos con una predicción de clasificación y luego necesitamos convertir eso
a su vez en una lista de dos puntos de edad de ingreso D. Por lo que la función Raval aquí solo está convirtiendo esto de nuevo a los rayos de tarta entumecidos y el
subrayado np dot c . Ver guiones bajos taquigrafía para can Katyn ocho. Eso dice, voy a tomar todos estos valores X y todos estos valores y y puedo archivarlos juntos en una lista de puntos que tienen x y x y x y etcétera. Entonces ahora que tengo esa lista de puntos de muestra, puedo pasar eso a predecir. Ahora, sólo ah, para aclarar un punto de confusión aquí, X e Y aquí pueden corresponder a los ejes X e Y. Por lo que N p X va a terminar siendo todos los datos de ingresos y MP y serán todos los
datos de edad . Está bien, Así que no dejes que eso te confunda cuando hablamos de por qué, en este contexto, estoy hablando del eje y, no de los datos de la etiqueta. ¿ Por qué? Entonces tenemos estos esta matriz de características que vamos a pasar a predecir, y eso nos va a devolver etiquetas pronosticadas, que son los números de clúster reales para cada punto dentro de este espacio. Entonces sólo tenemos que planearlo otra vez. Haremos una cifra ocho por seis. Reformaremos esos resultados para asegurarnos de que coincida con la dimensión X de nuestra trama, y luego llamaremos Contour F. Esto básicamente pasará por cada punto que creamos en esa rejilla de malla y tomaremos sus etiquetas que eran pronosticado. Entonces estas son las etiquetas predictivas, no las etiquetas reales, y las trazan usando cualquier mapa de color que queramos usar asociado a esos valores. Y después de eso, en realidad
haremos una trama de dispersión que va a trazar los puntos originales que siguen viviendo en nuestra matriz X mayúscula. Vuelven a tener datos de características, eso es ingreso y edad, y los colorearemos en base a los clústeres originales reales llamando a Why, como tipo float para convertir esas etiquetas originales de nuevo a valores de color para la trama. Entonces sigamos adelante y corremos eso y veamos cómo se ve. Toma un poco de tiempo crear esas muchas predicciones, pero no demasiado tiempo. Y aquí se puede ver lo que pasó. Entonces recuerda lo que estamos haciendo. Estaba trazando los rangos reales de predicciones como su color de fondo, Así que estamos usando un kernel lineal. Por lo que tenemos líneas rectas delineando cada región donde cree que estos clústeres corresponden. Entonces básicamente cualquier cosa en este triángulo va a ser un modelo para estar en un solo clúster. Cualquier cosa que esté en un fondo rojo será otro clúster. Y estamos trazando encima de eso,
los clústeres verdaderos originales a partir de cuando realmente creamos los datos. Ahora, estos clústeres sí se superponen hasta cierto punto, por lo que realmente no va a ser posible ni realista esperar realmente que cualquier algoritmo todo se
ponga al 100% en esto. Se puede ver que sí, señor Parejas, por ejemplo, tenemos esta característica azul aquí que está apareciendo es un color diferente al resto de
los que estaban deberían estar en el mismo clúster. Escuchar los colores de fondo no necesariamente se correlacionan con un cuatro gramos. Se puede ver cuando un punto no coincide con sus vecinos a su alrededor. Para el resto de ese clúster, eso probablemente va a ser un resultado incorrecto. También, tenemos este punto morado aquí para el este cluster que parecía tener ah colado en esta región
roja aquí que realmente pertenece a este otro cluster aquí. Entonces un par de puntos que se equivocaron pero realmente no pueden culparlo demasiado por eso. Thea Clusters sí, de hecho, se superponen ahora. También puedes usar la función de predicción en el modelo de tren para hacer predicciones para
nuevos puntos específicos que el modelo no ha visto antes. Ese es todo el punto de todo esto. Entonces en este ejemplo en particular, estamos llamando a s V c dot Predecir predecir un clúster para alguien con un ingreso de $200,000 a los 40 años. Y resulta que las tierras y el clúster número tres con nuestro modelo y para alguien con 50.000 dólares al día 65 que terminó en el clúster número dos ahora sabemos que tenemos que escalar esos números para nosotros antes de que realmente podamos hacer una predicción utilizándolos. Entonces recuerda que antes de entrenar a este modelo, bajamos todos nuestros insumos usando hombres Max scaler. Entonces tenemos que usar ese mismo escalador que llamamos escalar y usar eso para transformar nuestros datos de
entrada cuando estamos tratando de hacer predicciones para nuevos puntos individuales también, ,
tan entonces,
tanimportante no olvidar ese paso. Es muy fácil de hacer, y lo he hecho yo mismo. Pero con eso, te
desafiaré a extender esto y para tu actividad aquí, prueba diferentes kernels, así que lineal es solo uno de ellos. Ve y busca la documentación en psíquica Aprende on line para el modelo SPC, que en sí es un buen ejercicio porque así puedo contestar muchas de tus propias preguntas de esa manera y averiguar cuáles son las otras posibles opciones de coronel. A ver si puedes encontrar uno mejor. Cuando te metes en kernels no lineales. A lo mejor esos lo conf el estado un poco mejor, en realidad, y hacen un mejor trabajo en ello. Entonces solo haz algo de experimentación. Pruebe diferentes kernels. Vea qué efecto tiene eso en las formas de los clústeres y las regiones que para encontrarlos podría encontrarlo interesante y también vea qué efecto tiene en el tiempo de ejecución. Algunos de estos son más complicados que otros, y algunos de ellos requieren más recurso computacional es de otro, así que eso también es un intercambio. Tienes que hacer conscientemente, también. Además, es posible que desee juguetear con algunos de los hiper parámetros asociados a estos diferentes modelos. Estarán documentados en la documentación en
psique, aprendió para cada tipo de kernel. Muchos de ellos tienen muy muchos parámetros diferentes, y solo hay que experimentar para encontrar los parámetros que mejor funcionen. Entonces juega con eso también. Hyper, afinación de
parámetros, parte
muy importante del aprendizaje automático. Entonces ve a ensuciarte las manos si quieres, y mira si podrías hacer un mejor trabajo usando un tipo de coronel diferente.
43. Filtering colaborativo de usuarios: Hablemos de mi área personal de pericia. Recomendar sistemas er. Entonces sistemas que pueden recomendar cosas a la gente en base a lo que hicieron todos los demás. Mira algunos ejemplos de esto de un par de maneras para hacerlo específicamente a técnicas llamadas filtrado colaborativo basado en usuarios y basado en ítems. Entonces, vamos a sumergirnos. Yo quiero hablar de un tema que es cercano y querido a mi corazón. Recomendar sus sistemas. Si recuerdas, realidad pasé la mayor parte de mi carrera en amazon dot com e imdb dot com, y mucho de lo que hice ahí fue desarrollar sistemas recomendados, cosas como personas que compraron,
también compraron o recomendaron para tú y cosas que hicieron recomendaciones de películas para la gente. Entonces esto es algo de lo que conozco mucho personalmente, y espero compartir algo de ese conocimiento con ustedes. Entonces, ¿a qué nos referimos con recomendar sus sistemas? Bueno, como dije, Amazon es un gran ejemplo y uno con el que estoy muy familiarizado. Entonces si vas a su sección de recomendaciones aquí, puedes ver que en realidad te recomendará cosas que te podrían interesar
comprar en base a tu comportamiento pasado en el sitio y que podrían incluir cosas que te califiquen o cosas que compraste, y entre otras señales de que podría usar este pozo pueden entrar en los detalles porque me van a cazar y, ya
sabes, me
hacen cosas malas. Pero es bastante guay. Es bastante bueno,
también, también, y también se podría pensar en la gente que compró. También se compró característica en Amazon es una forma de recomendar er, sistema. La diferencia es que las recomendaciones que estás viendo aquí se basan en todo tu
comportamiento pasado , mientras que las personas que compraron también compraron o las personas que vieron también ven cosas como esas
solo están basadas en lo que estás viendo en este momento, o la cosa que estás pensando en comprar en este momento y mostrarte cosas que son similares a ella. También te podría interesar. Resulta
que lo que estás haciendo en este momento es probablemente la señal más fuerte de tu interés de todos modos. Otros ejemplos de Netflix. Por lo que tienen diversas características que intentan recomendar películas nuevas u otras películas que aún no has visto. partir de las películas que te gustaron o veías en el pasado también, Entonces lo desglosan Por John Run Tienen una especie de giro diferente en las cosas donde tratan de identificar los géneros o los tipos de películas que creen que estás disfrutando el más, y te muestran más resultados de esos géneros. Entonces ese es otro ejemplo de un sistema recomendado en acción. Y todo el punto de ello es ayudarte a descubrir cosas de las que quizás no habrías
sabido antes. Entonces es bastante guay. Ya sabes, da películas o libros o música o lo que sea una oportunidad de ser descubierta por personas que quizás no hubieran oído hablar de ello antes. Entonces, ya
sabes, no sólo es una tecnología genial, también como
que nivela un poco el campo de juego y ayuda a que nuevos objetos sean descubiertos por las masas. Por lo que juega un papel muy importante en la sociedad actual. Al menos me gustaría pensar que sí. Entonces hay algunas formas de hacer esto. Hablemos de recomendar cosas basadas en tu comportamiento pasado. Una técnica se llama filtrado colaborativo basado en el usuario, y así es como funciona. Filtrado colaborativo, por cierto, solo un nombre elegante por decir recomendar cosas basadas en la combinación de lo que hiciste, lo que todos los demás hicieron Ok, entonces es mirar tu comportamiento y comparar eso con el comportamiento de todos los demás para llegar Las cosas que podrían ser interesantes para ti de las que aún no has oído hablar. Entonces la idea aquí es que construimos una matriz de todo lo que cada usuario que he
comprado o visto o calificado alguna vez , o lo que sea una señal de interés de la que quieras basar este sistema. Entonces básicamente terminan con una fila para cada usuario en mi sistema. Y esa fila contiene todas las cosas que hicieron que podrían indicar algún tipo de interés por un producto determinado. Entonces imagina una mesa. Tengo usuarios para la Rosa y cada columna es un artículo. De acuerdo, eso podría ser una película. Ah, producto. Cualquiera que sea una página Web que pueda. Esto se puede usar para muchas cosas diferentes. Entonces uso esa matriz para computar la similitud entre diferentes usuarios. Por lo que básicamente comercio trato cada fila de esto como un vector, y puedo computar la similitud entre cada vector de usuarios en función de su comportamiento. Entonces ya sabes, a los usuarios que les gustaban en su mayoría las mismas cosas serían muy similares entre sí, y luego puedo ordenar esto por esas puntuaciones de similitud. Entonces si puedo encontrar a todos los usuarios similares a ti en base a su comportamiento pasado, entonces
puedo encontrar a los usuarios más similares a mí y luego recomendar cosas que les gustaron que aún no
miré. De acuerdo, ya sabes, veamos un ejemplo real, y tendrá un poco más de sentido. Entonces digamos que esta simpática dama aquí vio Star Wars y el Imperio contraataca, y amaba a ambos. Por lo que tenemos un vector de usuario aquí de esta dama Me gustó, dio calificación de cinco estrellas más específicamente a Star Wars, y el Imperio contraataca. Entonces digamos que viene el señor Edgy Mohawk Man y sólo vio Star Wars. Eso es lo único que ha visto de lo que no sabe. El Imperio ataca todavía. De alguna manera vive en algún extraño universo donde no sabe que en realidad hay muchas
,
muchas , películas de Star Wars creciendo al crecer cada año, hecho, pero podemos decir, Bueno, este tipo es en realidad bastante similar a esta otra dama porque ambos disfrutaron
mucho de Star Wars , Así que hay similitud. El puntaje probablemente sea bastante bueno, y podemos decir, OK, bueno, ¿qué ha disfrutado esta señora que aún no ha visto? Y el imperio ataca a éste. luego podamos tomar esa información que estos dos usuarios airean similar en base a su disfrute de Star Wars. Encuentra que a esta señora también le gustó Empire ataca. Y esa podría ser una buena recomendación para el señor Edgy Mohawk Man. Y podemos seguir adelante y recomendarlo. El Imperio ataca y probablemente le encantará porque, en mi opinión, realidad
es una película mejor. Pero no voy a meterme en ah G curso contigo aquí. Ahora, desafortunadamente, Clara Filter basado en
usuarios tiene algunas limitaciones. Cuando pensamos en las relaciones y recomendamos cosas basadas en las relaciones entre los artículos y las personas en lo que no tendemos, nuestra mente tiende a ir en las relaciones entre las personas. Por lo que queremos encontrar personas que sean similares a ti y recomendarles cosas que les gustaron tipo de lo intuitivo que hacer. Pero no es lo mejor que se puede hacer. Un problema es que las personas son volubles, sus gustos siempre están cambiando. Entonces tal vez esa linda dama en las diapositivas anteriores tuvo una especie de breve fase de
cine de acción de ciencia ficción mientras pasaba y se lo superaba. Y tal vez más tarde en su vida, empezó a meterse más en, ya
sabes, dramas o películas de romance o columnas de Rahm, ¿
verdad? Entonces, ¿qué pasaría si mi mohawk nerviosa terminara con una alta similitud con ella? ¿ Simplemente basado en su anterior periodo SciFi? Y terminamos recomendándole comedias románticas. En consecuencia, eso sería malo, ¿verdad? Es decir, hay cierta protección contra eso en cuanto a cómo calculamos los puntajes de similitud para empezar. Pero sigue contaminando nuestros datos que los gustos de las personas pueden cambiar con el tiempo. Por lo que comparar personas con personas no siempre es algo sencillo de hacer porque la gente cambia. El otro problema es que suele haber mucha más gente que cosas en tu sistema. Por lo que siete mil millones de personas en el mundo y contando. Probablemente no sean siete mil millones de películas en el mundo ni siete mil millones de artículos los que podrías estar recomendando fuera de tu catálogo. Por lo que el problema computacional de encontrar todas las similitudes entre todos los usuarios en su sistema es probablemente mucho mayor que el problema encontrando similitudes entre los ítems en su sistema. Entonces, al enfocar el sistema en los usuarios, estás haciendo que tu problema computacional sea mucho más difícil de lo que podría necesitar porque
tienes muchos usuarios, al
menos esperemos que lo hagas si estás trabajando para una empresa exitosa. El otro problema es que la gente hace cosas malas. Existe un incentivo económico muy real para asegurarte de que tu producto o tu película o lo que sea,
se recomiende a la gente. Y hay gente que intenta ganar el sistema para que eso suceda para su nueva
película o su nuevo producto o su nuevo libro o lo que sea. Y cuando estás basando esto en las relaciones con los usuarios, es bastante fácil fabricar personas falsas en el sistema creando un nuevo usuario y
haciéndoles hacer una secuencia de eventos que sabes le gustan muchos artículos populares y luego le gusta tu elemento a escribir. A esto se le llama ataque de chelín, y queremos que el dedo del pie idealmente tenga un sistema que pueda lidiar con eso. Se realizan investigaciones en torno a cómo detectar y evitar estos ataques de bombardeo en el filtrado de
colaboración de base de usuarios . Pero un enfoque aún mejor sería usar un enfoque totalmente diferente en su totalidad que
no sea tan susceptible a jugar con el sistema, y hablaremos de eso en nuestra próxima conferencia. Hay una manera de pisar esto sobre su cabeza y en realidad hacerlo mejor de lo habitual. Elevar el filtrado colaborativo. Entonces eso es filtrado colaborativo basado en usuarios Nuevamente, un concepto sencillo. Te fijas en las similitudes entre los usuarios en función de su comportamiento y te recomendamos cosas que disfrutó un usuario que era similar a ti que aún no has visto. Ahora tiene sí tiene sus limitaciones, como hablamos. Entonces hablemos de voltear todo el asunto en su cabeza con una técnica llamada basada en ítems Cloud creció filtrando a continuación.
44. Filtering de elementos: Por lo tanto, tratemos de abordar algunas de las deficiencias en el filtrado Cloudera basado en usuarios con una técnica llamada filtrado colaborativo basado en ítems, y veremos cómo eso podría ser más poderoso. En realidad es una de las técnicas que Amazon realmente usa bajo el capó, y han hablado de esto públicamente, así que te puedo decir eso. Pero veamos por qué es una idea tan grande. Por eso hablamos sobre el filtrado colaborativo basado en usuarios donde te recomendamos artículos basados en lo que a personas similares a ti les gustó que aún no has visto o experimentado. Y hablamos de algunos de los problemas con el filtrado colaborativo base de usuarios. Entonces, ¿y si le volteamos en la cabeza? Y en lugar de basar nuestras recomendaciones en las relaciones entre las personas, basamos en las relaciones entre los ítems, y eso es el filtrado colaborativo basado en ítems. Por lo que esto dibuja algunas ideas. Por una parte, hablamos de que la gente es voluble. Sus gustos pueden cambiar con el tiempo, por lo que comparar una persona con otra en función de su comportamiento pasado se vuelve bastante complicado. Ya sabes, personas tienen diferentes fases donde tienen intereses diferentes, y es posible que no estés comparando las personas que están en la misma fase entre sí, pero un ítem siempre lo será. Sea lo que sea, Una película siempre será una película. Nunca va a cambiar. Star Wars siempre será Star Wars bien, hasta que George Lucas juegue un poco con ella. Pero en su mayor parte, los artículos no cambian tanto como la gente. Entonces sabemos que estas relaciones son más permanentes. Y hay más de una comparación directa que puedes hacer a la hora de calcular similitud entre elementos, porque no cambian con el tiempo. La otra ventaja es que generalmente hay menos cosas que estás tratando recomendar que haya gente a la que estás recomendando. Entonces de nuevo, siete mil millones de personas en el mundo probablemente no estés ofreciendo siete mil millones de cosas en tu página web. Recomendarles para que pueda ahorrar mucho recurso computacional es evaluando las relaciones entre los elementos en lugar de los usuarios, porque probablemente tendrá menos elementos de los que tiene usuarios en su sistema. Y eso significa que puedes ejecutar tus recomendaciones con más frecuencia, hacer que el más actual esté más actualizado mejor. Puedes usar algoritmos más complicados porque tienes menos relaciones para computar, y eso es algo bueno. También es más difícil jugar al sistema. Así que hablamos de lo fácil que es ganar un enfoque de filtrado colaborativo basado en el usuario
simplemente creando algunos usuarios falsos como un montón de cosas populares. Y luego lo que estás tratando de promover, con nube de filtrado basada en elementos que se vuelve mucho más difícil. Tienes que jugar al sistema para que piense que hay relaciones entre artículos. Y como probablemente no tengas la capacidad de crear artículos falsos con lazos falsos con otros artículos basados en muchos,
muchos otros usuarios, muchos otros usuarios, es mucho más difícil para Gaiman sistema de filtrado de colaboración basado en artículos, que es un buen cosa. Si bien estoy en el tema de jugar con el sistema, otra cosa importante es asegurarme de que la gente esté votando con su dinero. Por lo que una técnica general para evitar ataques de Schilling o personas que tratan de ganar tu sistema de
recomendación er, asegúrate de que el comportamiento que lo estás basando fuera de su basado en que la gente realmente gaste dinero por lo que siempre estás tipo de conseguir mejores y más confiables resultados cuando basaste recomendaciones en lo que la gente realmente compró en lugar de lo que vieron o sabes, lo que hicieron clic Ok, Muy bien. Entonces hablemos de cómo funciona el filtrado de Claverie basado en ítem. Es muy similar al filtrado colaborativo basado en usuarios, pero en lugar de los usuarios estaban mirando elementos. Entonces volvamos al ejemplo de las recomendaciones de películas. Lo primero que haríamos es encontrar cada par de películas, cada emparejamiento de películas que sea visto por la misma persona. Entonces pasamos y encontramos cada película que fue vista por personas idénticas. Y luego medimos la similitud de todas aquellas personas que vieron esa película entre sí . Entonces por este medio podemos calcular similitudes entre dos películas diferentes en base a las calificaciones de las personas que vieron ambas películas. Por lo que tengo un par de películas. De acuerdo, tal vez Star Wars en el Imperio ataca. Encuentro una lista de todos los que vieron ambas películas comparan sus calificaciones entre
sí . Y si son similares a lo que puedo decir, estas dos películas se airan similares porque fueron calificadas de manera similar por personas que las vieron a ambos . OK, esa es la idea general aquí. Esa es una forma de hacerlo. Hay más de una forma de hacerlo, y entonces podría simplemente ordenar todo por la película y luego por la fuerza de similitud de todas las películas similares a ella. Y ahí están mis resultados para personas a las que les gustó también les gustaron las personas que calificaron esta altamente ulcerada, esto altamente y así sucesivamente y así sucesivamente. Y como dije, esa es sólo una forma de hacerlo. Entonces esa es una especie de paso uno de filtrado colaborativo basado en ítem. En primer lugar, encuentro relaciones entre películas basadas en las relaciones de las personas que lavaron cada par de películas dado. Tendrás más sentido cuando pasemos por el ejemplo. Entonces, por ejemplo, digamos que nuestra linda jovencita aquí vio Star Wars e Empire ataca y como ambos, así que leyendo ambas cinco estrellas o algo así. Ahora viene el señor Edgy Mohawk Man, quien también vio Star Wars en The Empire Strikes Back y también como ambos. Entonces en este punto, digamos
debilitar, hay una relación. Hay una similitud entre Star Wars y el Imperio ataca basado en estos dos usuarios a los que les gustan ambas películas. Entonces lo que vamos a hacer es mirar cada par de películas. Tenemos un par de Star Wars e imperio ataca y luego miramos a todos los usuarios que , así, los
vieron a ambos, que son estos dos tipos. Y si a ambos les gustan, entonces podemos decir que son similares el uno al otro o si a ambos les disgustaban, podemos decir que son similares, ¿
verdad? Por lo que sólo estamos viendo la puntuación de similitud de estos dos usuarios comportamiento relacionado con estas dos películas en este par de películas. Por lo que viene el señor Bigote, ella leñador, hombre
hipster, y él mira El Imperio ataca, y él vive en algún extraño mundo donde quiere que el Imperio ataca de nuevo pero no tenía ni idea que Star Wars existió la primera película. Bueno, eso está bien. Computamos una relación entre el Empire Strikes Back y Star Wars basada en el comportamiento de estas dos personas. Por lo que sabemos que estas dos películas se airen similares entre sí. Por lo que dado que el señor Hipster Man como el Imperio ataca, podemos decir con buena confianza que también le gustaría Star Wars, y luego podemos recomendarle eso de nuevo a él como su recomendación de top movie. Por lo que puedes ver que terminas con resultados muy similares al final pero hemos especie de volteado
todo el asunto en su cabeza. Entonces, en lugar de enfocar el sistema en las relaciones entre, personas las estaban enfocando en las relaciones entre los ítems. Y esas relaciones siguen basadas en el comportamiento agregado de todas las personas que miraban. Um, pero fundamentalmente, estamos viendo las relaciones entre artículos y no las relaciones entre personas. Lo tengo. Está bien, así que hagámoslo. En realidad tenemos algún código python que usará pandas y todas las otras diversas herramientas a
nuestra disposición para crear recomendaciones de películas con una cantidad sorprendentemente pequeña de código. Entonces lo primero que vamos a hacer es mostrarte el filtrado colaborativo basado en ítems en práctica, por lo que vamos a acumular personas que vieron. También observaba. Básicamente, ya
sabes, gente que calificó las cosas muy bien también calificó esta cosa muy bien. Entonces construyendo estas relaciones de película para películas y la vamos a basar en datos reales que obtuvimos del proyecto de líneas de cine. Entonces si tienes una lente de película dot org, en realidad
es una película abierta. Recomendar sistema er allí, donde la gente puede calificar películas y obtener recomendaciones para nuevas películas, y hacen que todos los datos subyacentes estén disponibles públicamente para investigadores como nosotros. Por lo que en realidad vamos a usar algunos datos de calificaciones de películas riel. Está un poco anticuado. Tiene como 10 años, así que ten eso en cuenta, pero son datos reales de comportamiento con los que vamos a estar trabajando finalmente aquí. Y usaremos eso para computar similitudes entre películas. Y esos datos en sí mismos son útiles. Ya sabes, puedes usar eso para decir a la gente que le gustaba también ¿verdad? Entonces digamos que estoy mirando una página web para una película que puedo ahí y después y allá. Diga, si te gusta esta película, dado que la estás mirando, probablemente
te interese. También te podrían gustar estas películas, y esa es una forma de un sistema recomendado ahí mismo. A pesar de que ni siquiera sabemos quién eres ahora, es un real es datos del mundo real. Entonces vamos a encontrarnos con algunos problemas del mundo real con él. Nuestro conjunto inicial de resultados no va a quedar bien, así que vamos a pasar un poco de tiempo extra tratando de averiguar por qué, que es mucho. En lo que pasas tu tiempo haciendo es un científico de datos. Corregir esos problemas y volver de nuevo hasta que obtengamos resultados. Eso tiene sentido. Y por último, bueno, realidad hacer filtrado colaborativo basado en ítems de usuario en su totalidad, donde en realidad recomendamos películas a individuos basados en su propio comportamiento. Entonces hagámoslo. Empecemos. Entonces ese es el filtrado colaborativo basado en ítems. Una idea maravillosa pensada en gente mucho más inteligente que yo. Pero, ya
sabes, sí tuvo sus orígenes en Amazon, lo cual es algo genial. Como puede ver, aborda muchas deficiencias del filtrado colaborativo basado en el usuario, y funciona muy bien. Entonces pongámoslo en práctica y comencemos a escribir algún código python para que suceda .
45. Encontrar Similitudes de película: Entonces vamos a aplicar el concepto de filtrado Claverie basado en ítem para empezar con
similitudes de película . Averigua qué películas Air similar a otras películas en particular intentará averiguar
qué películas Air similar a Star Wars en función de los datos de calificación de los usuarios. Y ya veremos si salimos de ella. Vamos a sumergirnos. De acuerdo, Así que sigamos adelante y en realidad calculemos la primera mitad del filtrado Collaborate basado en ítem, que es encontrar similitudes entre los elementos. En este caso, vamos a estar buscando similitudes entre películas basadas en el comportamiento del usuario, y vamos a estar usando algunos datos de calificación de películas riel del proyecto de lentes de grupo. Si vas a las líneas de grupo dot org que en realidad pone públicamente a disposición de los investigadores como nosotros rial película ratings datos de personas reales que están usando el
sitio web de trabajo de la lente de película hija para calificar películas y obtener recomendaciones de vuelta para nuevas películas que que quieren ver. Por lo que hemos incluido los archivos de datos que necesitas del conjunto de datos de planes de grupo con los materiales del
curso, y lo primero que tenemos que hacer es importar esos a un marco de datos de pandas, y realmente vamos a ver todo el poder de los pandas en este ejemplo, es cosas bastante cool. Entonces lo primero que vamos a hacer es importar el archivo de datos u dot. Eso es parte del conjunto de datos de líneas de película. Y ese es un archivo delimitado por tabulaciones que contiene cada calificación en el conjunto de datos. Entonces la forma en que funciona esto es tan incluso hubo llamadas leer Ver SV on Pandas debilitar especificar un separador
diferente a una coma. En este caso, es un tabulador. Entonces básicamente estamos diciendo, Toma la 1ª 3 columnas en el archivo de datos u dot e importado a un nuevo marco de datos con tres columnas. El usuario i d. la pelicula I d. Y la calificación. Entonces con lo que terminamos aquí es el marco de datos que tiene una fila para cada usuario I D.
Que identifican a alguna persona. Y luego por cada película que calificaron, tenemos la película I D. Qué es ésta? Una nueva taquigrafía milagrosa para una película dada. Entonces Star Wars podría ser película 53 o algo así, y están calificando, ya
sabes, 1 a 5 estrellas. Entonces tenemos aquí una base de datos, un marco de datos de cada usuario, y cada película lo califican. De acuerdo, Ahora queremos poder trabajar con títulos de películas para que realmente podamos interpretar estos resultados más intuitiva. Entonces vamos a usar sus nombres legibles por humanos en su lugar. Si estás usando un conjunto de datos verdaderamente masivo, dirías eso hasta el final porque sí quieres estar trabajando con números. Son más compactos el mayor tiempo posible, pero con el propósito de ejemplo, en la enseñanza se mantendrán los títulos alrededor para que puedas ver qué está pasando. Por lo que hay un archivo de datos separado con el estatus de movieland que llamó You Don Item, y es Piper Limited, y las 2 primeras columnas que importamos serán la película I D y el título de esa película. Entonces ahora tenemos que Los marcos de datos son llamadas, tiene todas las calificaciones de los usuarios y las llamadas M tiene todos los títulos para cada película I D. Y podemos usar esta mágica función de fusión en pandas para machacarlo por completo. Con lo que terminamos, es algo así. Fui bastante rápido, así que terminamos con un nuevo marco de datos que contiene al usuario I D y la calificación para cada película que el usuario calificó y tenemos tanto una película I D como el título que podemos leer y ver qué es realmente. Por lo que la forma de leer esto es utilizar su I. D. Número 308 Leer una historia de juguete cuatro Estrellas Usuario I D al 87 Radio Toy Story, cinco estrellas y así sucesivamente y así sucesivamente. Y si fuéramos a seguir mirando cada vez más del estado de marco, vemos diferentes clasificaciones para diferentes películas a medida que lo pasamos ahora, entra
la verdadera magia de los Pandas. Entonces lo que realmente queremos es mirar las relaciones entre películas basadas en todos los usuarios que vieron cada par de películas. Por lo que necesitamos al final de matriz de cada película y de cada usuario y todas las calificaciones que cada usuario dio a cada película y el comando de tabla pivot en bragas. Ven a hacer eso por nosotros. Básicamente puede construir una nueva tabla a partir de un marco de datos dado prácticamente de cualquier manera que lo
desee . Entonces lo que estamos diciendo aquí, lleve nuestro marco de datos de lecturas aquí arriba, y quiero crear un nuevo marco de datos llamado clasificaciones de películas, y quiero que el índice del mismo sea el usuario i d s. Así que tendremos Ah, ro para cada usuario i d. Y voy a tener cada columna b los títulos de películas. Entonces voy a tener una columna por cada título que encuentre en ese marco de datos y el Sur. Cada celda contendrá el valor de calificación si existe. Entonces sigamos adelante y hagamos eso. Y terminamos con un nuevo marco de datos que se parece a este tipo de increíble cómo eso acaba de
ponerlo todo junto para nosotros ahora estos n a n valores que representa no un número. Y es justo como los pandas indican un valor faltante. Entonces la forma de interpretar esto es el usuario I D uno, por ejemplo, no vi la película ganada 900 pero el usuario yo d uno sí vi 101 Dalmaciones y la leí a estrellas. Tiene razón. Ganó también vio a 12 hombres enojados y lo calificó cinco estrellas, pero no vio la película Dos días en el Valle, por ejemplo. De acuerdo, entonces con lo que terminamos aquí es una matriz escasa,
básicamente, básicamente, que contiene a cada usuario y cada película y en cada intersección donde un usuario calificó una película. Hay un valor de calificación. De acuerdo, así que puedes ver ahora podemos extraer muy fácilmente vectores de cada película que Air User vio . Y también podemos extraer vectores de cada usuario que calificó dada película, que es lo que queremos. Entonces eso es útil tanto para el usuario como para el ítem Clavier filtra derecho Si quiero encontrar relaciones entre usuarios, podría mirar las correlaciones entre estos usuarios rose. Pero si quiero encontrar correlaciones entre películas para el filtrado colaborativo basado en ítem, puedo mirar las correlaciones entre columnas en función del comportamiento del usuario. De acuerdo, entonces aquí es donde entra en juego el rial volteando cosas en la cabeza para
las similitudes basadas en el usuario versus artículo . Ahora vamos con el filtrado colaborativo basado en ítem, por lo que queremos extraer columnas. Entonces hagámoslo a continuación. Adelante y extraigamos a todos los usuarios que calificaron Star Wars, y podemos ver que la mayoría de las personas de hecho lo han visto y leído. Star Wars y a todos les gustó. Entonces al menos en esta pequeña muestra que tomamos de la cabeza del marco de datos, por lo que terminamos con un conjunto resultante aquí de ID de usuario y sus calificaciones para Star Wars. Y es un derechazo. Tres no calificaron Star Wars, por ejemplo, así que teníamos un valor no numérico que indicaba un valor faltante allí. Pero eso está bien. Ya sabes, queremos asegurarnos de que conservamos esos valores faltantes para poder comparar directamente columnas de películas diferentes, diferentes. Entonces, ¿cómo hacemos eso? Bueno, Pandas sigue haciéndolo fácil para nosotros y tiene un núcleo con función aquí que podemos usar y que en realidad va a seguir adelante y correlacionar una columna dada con cada otra columna del marco de
datos y calcular las puntuaciones de correlación y Devuélvanos eso. Entonces con lo que vamos a hacer se escuchan temas núcleo con en todo el marco de datos de calificaciones de película. Esa es toda una matriz de calificaciones de usuarios y películas correlacionadas con solo la columna de
Lecturas de Star Wars . Vamos a luego dejar caer todos los resultados faltantes con drop in a para que solo nos deje con ítems que en realidad tenían una correlación. Ya sabes dónde había más de una persona que lo vio, y vamos a crear un nuevo marco de datos basado en los resultados y ver los 10 primeros resultados. Entonces de nuevo, solo para recapitular, vamos a construir la correlación entre Star Wars y cada otra película drop todo el y un valor no un número para que solo tengamos similitudes de película que realmente existen donde más de una persona lo calificaron. Y vamos a construir un nuevo marco de datos a partir de los resultados y mirar los 10 primeros resultados . Y aquí estamos. Por lo que terminamos con este resultado de correlación partituras entre cada película individual para Star Wars. Y se puede ver, por ejemplo, un puntaje sorprendentemente alto de correlaciones con la película Hasta que estuviste tú. Una correlación negativa, en realidad, con la película 1 900 una correlación muy débil con 101 Dalmaciones. Entonces ahora todo lo que debemos hacer es ordenar esto por puntuación de similitud, y deberíamos tener la película top simboliza para Star Wars, ¿
verdad? Vayamos a hacer eso. Simplemente llame orden en el marco de datos resultante. A Ken Pandas lo hace realmente fácil, y podemos decir que ascendente es igual a falso para que realmente lo ordenen en orden inverso por correlación Score. Entonces hagámoslo. De acuerdo, Así que las guerras de las galaxias salieron bastante cerca de la cima porque Star Wars es similar a sí misma. Pero, ¿qué son todas estas otras cosas? ¿ Qué diablos? Hombre de toda velocidad del año fuera el forajido. Estas son todo lo que sabes, películas
bastante oscuras que la mayoría de ellas ni siquiera he oído hablar. Y sin embargo tienen correlaciones perfectas con Star Wars. Eso es algo raro. Entonces obviamente estamos haciendo algo mal aquí. ¿ Qué podría ser? Bueno, hablemos de eso en nuestra próxima conferencia. Resulta que hay una explicación perfectamente razonable, y esta es una buena lección y por qué siempre necesitas examinar tus resultados cuando termines con datos con cualquier tipo de tarea de ciencia de datos. Cuestiona los resultados porque muchas veces hay algo que te perdiste. Podría haber algo que necesites limpiar en tus datos. Eso podría ser algo que hiciste mal. También debes lucir siempre escépticamente. Tus resultados no sólo los toman en la fe. ¿ De acuerdo? Si lo haces te vas a meter en problemas por nuestra para realmente presentar estas como recomendaciones a la gente que le gusta Star Wars, me despedirían, no me despidan, atención, los resultados . Entonces vamos a sumergirnos en lo que salió mal en nuestra próxima conferencia. Entonces ese es nuestro filtrado colaborativo inicial basado en crack y artículos y encontrar una película. Similitudes basadas en el comportamiento del usuario y los resultados iniciales realmente no son tan grandes. Pero resulta que hay una explicación perfectamente racional de por qué, una
manera perfectamente sencilla de dar cuenta de ello. Entonces vamos a sumergirnos en lo que salió mal y arreglarlo.
46. Mejora de los resultados de las resultados de las resultados: Entonces, como recuerdan, nuestros resultados iniciales para una película similar a Star Wars, usando técnicas de filtrado colaborativo basadas en ítems no salieron tan bien. Entonces vamos a averiguar por qué y a ver si podemos hacer al respecto. Entonces descubramos qué salió mal con nuestras similitudes cinematográficas. Ahí pasamos por todo este emocionante trabajo a muy fácilmente con pandas. Compute puntajes de correlación entre películas en base a sus vectores de calificaciones de usuario y los resultados que obtuvimos tipo de succión. Así que sólo recuerda, buscamos películas que sean similares a Star Wars usando esa técnica, y terminamos con un montón de recomendaciones extrañas en la parte superior. Eso tuvo una correlación perfecta, y la mayoría son películas muy oscuras. Entonces, ¿qué crees que podría estar pasando ahí? Bueno, una cosa que podría tener sentido es, digamos que tenemos mucha gente que ve Star Wars y alguna otra película oscura. Ya sabes, terminamos con una buena correlación entre quién a estas dos películas porque están atadas juntas por Star Wars. Pero al final del día, ¿realmente queremos basar nuestras recomendaciones en el comportamiento de, ya
sabes, una o dos personas que ven alguna película oscura. Probablemente no. O sea, sí, las dos personas en el mundo o lo que sea que vean la película a toda velocidad y a ambos les gustó además de Star Wars. A lo mejor esa es una buena recomendación para ellos, pero probablemente no sea una buena recomendación para el resto del mundo. Ya sabes, necesitamos tener algún tipo de nivel de confianza en nuestras similitudes haciendo cumplir algún
límite mínimo de cuántas personas vieron una película determinada. Ya sabes, no
podemos hacer un juicio de que una película dada sea buena para espaciar sobre el comportamiento de una o dos personas. Entonces tratemos de poner en acción esa visión aquí. Entonces lo que vamos a hacer es echar un vistazo, tratar de identificar las películas que en realidad no fueron calificadas por mucha gente en esto. Sólo tírelos, acuerdo y a ver qué obtenemos. Entonces para hacer eso, vamos a tomar nuestro marco de datos de calificaciones originales, y vamos a decir grupo por título otra vez. Pandas tiene todo tipo de magia en él, y esto básicamente criptará construir un nuevo marco de datos que agrupa todas las filas para un título dado en una fila, y podemos decir que queremos agregar específicamente en la calificación y queremos mostrar tanto el tamaño, el número de calificaciones de cada película como la media puntuación la media de esa película. Entonces cuando hacemos eso, cuando era algo así. Entonces esto nos está diciendo, por ejemplo, para la película 101 Dalmaciones, 109 personas calificaron esa película, y su calificación promedio fue de 2.9 estrellas. Entonces no tan grande de una anotación. ¿ En serio? Entonces ya lo sabes. Si solo miramos este dato, podemos decir OK, bueno, dijo
Película, considero oscuro como 1 87 tenía 41 valoraciones, pero 101 Dalmaciones. Ya he oído hablar de eso. Ya sabes, 12 hombres enojados de los que he oído hablar. Eso parece que hay una especie de valor de corte natural en alrededor de 100 calificaciones donde tal vez ese es el valor mágico donde las cosas empiezan a tener sentido. Entonces sigamos adelante y deshagamos de las películas calificadas por menos de 100 personas. Y sí, ya
sabes, estoy haciendo esto de manera intuitiva en este punto, como hablaremos más adelante. Hay más formas principales de hacer esto. Podríamos realmente experimentar. Entrenas experimentos de pruebas en diferentes valores de umbral para encontrar el que realmente rinde mejor. Pero inicialmente, solo
usemos nuestro sentido común y filtremos películas que fueron recibidas por menos de 100 personas. Nuevamente, Pandas hace que eso sea realmente fácil de hacer. Por lo que podríamos decir sólo películas populares. Se va a construir un nuevo marco de datos mirando las estadísticas de las películas, y sólo vamos a tomar a Rose digna. El tamaño de la calificación es mayor o igual a 100 y entonces voy a ordenar eso por una
calificación media sólo por diversión,
para ver las películas más valoradas, ampliamente vistas. Ya sabes, estoy recibiendo esta advertencia ahora. Desde que originalmente creé este curso, entró
una nueva versión de Panis. Podrías simplemente usar valores de guión bajo sort allí, y funcionará igual de bien, sin advertir. Vete y terminamos con esto. Entonces, ya
sabes, tenemos básicamente aquí una lista de películas que fueron allanadas por más de 100 personas ordenadas por su puntuación media de calificación, y esto en sí mismo es un sistema er recomiendo películas populares altamente calificadas. Un afeitarse cerca al parecer fue una película realmente buena, y mucha gente la lavó, y de verdad les gustó. Por lo que de nuevo, se
trata de un conjunto de datos muy antiguo de finales de los noventa. Entonces, aunque no lo estés, podría no estar familiarizado con la película un afeitado cercano podría valer la pena volver atrás y redescubrir añadido a tu Netflix aquí, sea cual sea la Lista de Schindler's. No es una gran sorpresa ahí que aparezca en la parte superior de la mayoría de las listas de mejores películas El
pantalón equivocado . Otro ejemplo de una película oscura que al parecer era realmente buena. Y también fue bastante popular. Por lo que ya hay algunos descubrimientos interesantes ahí. Con sólo hacer eso, Así es que las cosas se ven un poco mejor ahora. Entonces sigamos adelante y básicamente hagamos nuestro nuevo marco de datos de las películas de recomendaciones de Star Wars similares a Star Wars, donde sólo lo basamos en películas que aparecen en este nuevo marco de datos. Por lo que vamos a utilizar la operación conjunta para seguir adelante y unirnos a nuestro marco de datos de películas originales, similares a este nuevo marco de datos de películas de Onley que tienen más de 100 calificaciones. De acuerdo, entonces creamos un nuevo marco de datos basado en películas similares donde extraemos la
columna Similaridad . Únete a eso con nuestras estadísticas de películas. State of Frame, que es nuestra popular película State of Frame, y veremos los resultados de combine y ahí vamos. Por lo que ahora sólo hemos restringido a películas que fueron calificadas por más de 100 personas. El marcador de similitud con Star Wars. Entonces ahora todo lo que tenemos que hacer es ordenar eso mejor. Vuelve a recibir esa advertencia. Sí, te
permite ordenar valores en lugar de ordenar ordenados inversos, y solo vamos a echar un vistazo a los primeros 15 resultados. Y, oye, esto empieza a verse un poco mejor. Por lo que Star Wars sale en la cima porque es similar a sí misma. Imperio ataca. Es el número dos, gire a la
derecha los ojos de chorro Número tres Raiders del Arca Perdida. Número cuatro. Sabes que aún no es perfecto, pero estos tienen mucho más sentido, ¿
verdad? Por lo que esperarías que las tres películas de Star Wars de la trilogía original fueran similares entre sí. El estado al que se remonta antes de que salgan las siguientes tres películas y Raiders of the Lost Ark, también un Ruby muy similar a Star Wars con estilo, es el número cuatro. Por lo que estoy empezando a sentirme un poco mejor con estos resultados reales. Todavía hay margen de mejora. Pero, hey, tenemos algunos resultados que tienen sentido. A quienes ahora, idealmente, también
filtraríamos Star Wars. No quieres estar viendo similitudes con la película misma de la que empezaste, pero preocúpate por eso más adelante. Entonces si quieres jugar este poquito más como dije, 100 fue palabra de un corte arbitrario para el mínimo número de calificaciones. Si sí quieres experimentar con diferentes valores cortados, te animo a volver atrás y hacerlo Ve qué hace eso a los resultados. Ya sabes, puedes ver aquí que los resultados que realmente nos gustan tuvieron en realidad mucho más de 100 calificaciones en común. Entonces con Austin Powers entrando ahí bastante alto con solo 130 calificaciones, así que tal vez cientos no es lo suficientemente alto. Pinocho atrapado en el 101 no muy similar a Star Wars, por lo que quizá quieras considerar un umbral aún más alto ahí y ver qué hace. Así que ten en cuenta Este es un conjunto de datos muy pequeño y
limitado que utilizamos para fines de experimentación, y está basado en datos muy antiguos aquí, sólo va a ver películas antiguas. Entonces, ya
sabes, interpretar estos resultados de manera intuitiva podría ser un poco desafiante como resultado, pero no malos resultados. Por lo tanto, sigamos adelante y realmente hagamos filtrado colaborativo basado en elementos de soplado completo. Te recomendamos usuario recomendar películas a las personas que usen un sistema más completo lo harán a continuación , así que eso se ve mucho mejor. Siempre necesitas trabajar. Cuidado con las relaciones espurias, así que hay cierta cantidad de confianza o apoyo que debes tener. Cuando estás mirando las relaciones en los datos y al hacer cumplir ese umbral mínimo de soporte, terminamos con resultados mucho mejores y más razonables. Tan buena lección para aprender Ahí. Llevémoslo al siguiente nivel y en realidad hagamos nube o filtrado basado en elementos completos y generamos recomendaciones para todo un usuario basado en toda su historia. Y podemos construir un sistema que pudiera hacer eso para cualquier usuario de nuestro conjunto de datos. Eso lo haremos a continuación
47. Hacer recomendaciones de película a personas: De acuerdo, construyamos en realidad un completo sistema recomiendo er que pueda mirar toda la
información de comportamiento de todos ¿Y qué películas? Lo leen en cada película y lo usan para producir realmente las mejores películas de recomendación para cualquier usuario dado en nuestro conjunto de datos algo increíble, y te sorprenderás de lo simple que es. Vámonos. De acuerdo, pongámoslo todo juntos y en realidad hagamos filtrado de colaboración basado en ítem completo donde podamos recomendar películas para cualquier usuario basado en todo el comportamiento de lo que todos calificaron cada película. ¿ Qué tan increíble es eso? Lo que es realmente asombroso es lo simples que hacen que haga los pandas. Entonces vamos a caminar a través de él. De acuerdo, así que empecemos importando el conjunto de datos de lentes de película que tenemos de nuevo. Estamos usando un subconjunto de la misma que solo contiene 100 mil calificaciones por ahora. Pero hay conjuntos de datos más grandes que puedes obtener del grupo Lynn Stott o subir a millones de calificaciones si estás tan inclinado. Ten en cuenta, sin embargo, cuando empieces a lidiar con ese big data realmente, vas a estar empujando los límites de lo que puedes hacer en una sola máquina en lo que los pandas pueden manejar. Entonces, ya
sabes, sí
tengo otros cursos de técnicas como chispa y mapa reducir que pueden manejar recomendaciones a
escala mucho mayor . Entonces si tienes curiosidad, ve a revisar esos. Pero por ahora, trabajemos con esto. Entonces al igual que antes, vamos a importar el archivo de datos u dot que contiene todas las clasificaciones individuales para cada usuario qué película allanaron. Y luego vamos a empatar eso junto con el título de la película para que no sólo trabajemos con la nueva película de Miracle. I DS. Adelante y haz eso, y terminamos con esta forma de marco de datos para leer esto. Por ejemplo, el usuario I D 308 calificó Toy Story cuatro estrellas y el usuario I D 66 calificó
Toy Story tres estrellas, y esto contendría cada calificación para cada usuario por cada película y de nuevo, igual que antes, usamos el maravilloso comando tabla pivot y pandas para construir un nuevo marco de datos. En base a esa información donde el índice cada fila es el usuario, i D. Y las columnas estaban conformadas por todos los títulos de películas únicos en mi conjunto de datos, y cada celda contiene una lectura. Entonces, con lo que terminamos es esta matriz escasa de matriz increíblemente útil que contiene usuarios para cada fila y películas para cada columna. Y tenemos básicamente cada calificación de usuario para cada película en esta matriz. Por lo que el usuario I D uno, por ejemplo, dio dos estrellas a 101 Dalmaciones. Y otra vez, todos estos Entei termina. No un número es representar datos faltantes, por lo que eso solo indica, por ejemplo, el usuario i D uno no calificó la película ganó 900. De acuerdo, entonces otra vez, muy útil el dedo del pie de la naturaleza tiene. Si estuviéramos haciendo filtrado colaborativo basado en usuarios, podríamos calcular correlaciones entre usuarios entre cada usuario individual de vector de calificación para encontrar usuarios similares. Y como estamos haciendo basado en ítem, filtrado
colaborativo eran más relaciones entre los estudiantes entre las columnas. Entonces como hacer una puntuación de correlación entre dos columnas cualquiera que nos dé una
puntuación de correlación para un par de películas dado. Entonces, ¿cómo hacemos eso? Resulta que los pandas hacen que eso sea increíblemente fácil de hacer también. Tiene una función básica incorporada que en realidad computará la puntuación de correlación para cada menoscabo de
llamada que se encuentra en toda la matriz. Es casi como si estuvieran pensando en nosotros, Así que sigamos adelante y corremos eso. Es algo bastante computacional, caro de hacer. Por lo que tomará un momento volver realmente con un resultado. Pero ahí lo tenemos. Entonces, ¿qué tenemos aquí? Tenemos aquí, un nuevo marco de datos donde cada película está en la fila y en la columna para que podamos ver la intersección de dos películas dadas y encontrar su puntuación de correlación entre sí
en base a este dato de calificación de usuario que teníamos aparecen originariamente? ¿ Qué tan guay es eso? Entonces, por ejemplo, la película 101 Dalmaciones está perfectamente correlacionada consigo misma, por
supuesto, porque tiene vectores idénticos de clasificación de usuarios. Pero si nos fijamos en 101 Dalmaciones relación con la película 12 Hombres Angry, es una puntuación de correlación mucho menor porque esas películas aire bastante disímiles, tiene
sentido, verdad. Entonces tengo esta maravillosa matriz ahora que me dará la puntuación de similitud de dos
películas cualquiera entre sí. Es algo increíble y muy útil para lo que vamos a estar haciendo ahora. Al igual que antes, tenemos que lidiar con resultados espurios, así que no quiero estar mirando relaciones que estén basadas en una pequeña cantidad de
información de comportamiento . Por lo que resulta que la función central de pandas en realidad tiene algunos parámetros que le puedes dar . Una es el método de puntuación de correlación real que desea utilizar. Entonces voy a decir Usar correlación de Pearson. Pero también tiene un parámetro de periodos de hombres lo puedes dar, y eso básicamente dice, solo
quiero que consideres puntuaciones de correlación que están respaldadas por, al
menos en este ejemplo, 100 personas que calificaron ambas películas y eso eliminará estas relaciones espurias que se basan en sólo un puñado de personas un poco diferentes a lo que hicimos. Y el ítem similitudes ejercitan donde acabamos de tirar cualquier película que fuera allanada por menos de 100 personas. Lo que estamos haciendo aquí es tirar similitudes de cine donde menos de 100 personas calificaron ambas películas. De acuerdo, entonces se puede ver ahora que tenemos mucho más en extremos y la matriz resultante. De hecho, incluso las películas a las que era similar a ellas se echan. Entonces, por ejemplo, la película 1 900 fue presumiblemente vista por menos de 100 personas, lo que sólo se tira enteramente 101. Dalmaciones, sin embargo, sobrevive con un puntaje de correlación de uno, y en realidad no hay películas en esta pequeña muestra del día se establece que son diferentes entre sí que tenían 100 personas en común que veían ambos. Pero hay suficientes películas que sobreviven para obtener resultados significativos. Entonces qué, hacemos bien estos datos, lo que queremos hacer es recomendar películas para la gente. Entonces la forma en que hacemos eso al ver todas las calificaciones se dieron, persona encuentra películas similares a las cosas que calificaron, y esas son candidatos o recomendaciones a esa persona. Entonces empecemos por crear una persona falsa para crear recomendaciones para Así que en realidad he agregado un usuario falso I. D. Número cero a la línea de película Status dijo que estamos procesando a mano, y ese tipo de representa alguien como yo que amaba Star Wars y el Imperio ataca pero odiaba las películas Gone With the Wind. Entonces esto representa a alguien que realmente ama Star Wars pero no le gusta el viejo estilo sobre los dramas
románticos. De acuerdo, así que le di una calificación de cinco estrellas a Empire Strikes de vuelta en Star Wars y una empieza a leer a
Lo que se lleva el viento. Entonces voy a tratar de encontrar recomendaciones para este usuario ficticio. Entonces, ¿cómo hago eso? Bueno, empecemos por crear una serie llamada Candidatos SIM, y voy a ir a través de cada película que la califique. Entonces para I y Rain cero a través del número de calificaciones que tengo en mis calificaciones, voy a sumar películas similares a las que puntué. Entonces voy a tomar esa matriz core State of Frame, esa mágica que tiene todas las similitudes de película. Voy a crear una matriz de correlación con mi caída de calificaciones, cualquier valor que falte. Y luego voy a escalar esa puntuación de correlación resultante por lo bien que califiqué esa película . Entonces la idea aquí es que voy a pasar por todas las similitudes para el Imperio
ataca , por ejemplo, y los escalaré todos por cinco porque realmente me gustó el Imperio ataca. Pero cuando pase por ahí y consiga las similitudes por ido con el viento, sólo
voy a escalar esos por uno porque no me gustó Gone with the Wind. Entonces esto le dará más fuerza a las películas que es similar a las películas que me gustaron y menos fuerza a similares dos películas que son similares a las que no me gustaron. De acuerdo, así que acabo de pasar y construir esta lista de candidatos de recomendación de similitud candidatos. Si vas a ordenar los resultados y a sacarlo, Vamos a ver qué obtenemos. Oye, esos no se ven muy mal, ¿verdad? Entonces obviamente el Imperio ataca de nuevo en Star Wars salen en la cima porque me gustan esas películas explícitamente. Ya los observaba y calificaba de ellos, pero burbujeando hasta la cima de la lista ha vuelto al Jet I, que esperaríamos, y a los Raiders del Arca Perdida. Entonces, empecemos a refinar un poco más estos resultados. Estamos viendo que estamos recuperando valores duplicados, Así que si tenemos una película que fuera similar a más de una película que califiqué, volverá más de una vez en los resultados. Por lo que queremos combinar esos juntos. Entonces si de hecho tengo el mismo regreso de película de los Jedi, por ejemplo, con similar tanto a Star Wars como al Imperio ataca. A lo mejor eso debería sumarse juntos en unas recomendaciones combinadas, más fuertes. Marcar. Adelante y hagamos eso. Vamos a utilizar el grupo por mando otra vez para agrupar todos los caminos que son para la misma película, y ahí vamos a resumir. Correlación puntúa y mira los resultados. Oye, esto se ve realmente bien. Por lo que el regreso del Jedi sale camino arriba, como debería, con un marcador de siete Raiders del Arca Perdida, un segundo cercano y cinco. Y luego empezamos a llegar a Indiana Jones y Last Crusade y algunas películas más. Puente sobre el Río Kwai Volver al futuro del Sting. Estas son todas películas que en realidad disfrutaría viendo. Ya sabes, en realidad
me gustan las películas de Disney de la vieja escuela, también. Entonces no es tan loco como podría parecer. Entonces lo último que tenemos que hacer es filtrar las películas que ya he calificado porque no accede a recomendar películas que ya has visto para poder dejar caer cualquier fila que suceda estar en mis calificaciones originales. El vistazo de Siri a los 10 primeros resultados. Ahí lo tenemos. Devolver el jet. Vuelvo rayos del Arca Perdida. Indiana Jones Todos los mejores resultados para mi usuario ficticio, y todos tienen sentido ver algunas películas amigables para la familia. Ya sabes, Cenicienta estaba DevOS Dumbo arrastrándose? Probablemente basado en la presencia de Gone with the wind ahi adentro, pesar de que se ponderó palabra sigue ahí dentro. Todavía se está contando, y ahí tenemos nuestros resultados. Entonces ahí lo tienes Bastante cool. En realidad hemos generado resultados, recomendaciones para dar usuario, y podríamos hacerlo para cualquier usuario en todo nuestro marco de datos. Así que adelante, juega eso si quieres seguir, quiero hablar de cómo puedes ensuciarte las manos poco mawr y jugar con estos resultados tratando de tratar de mejorarlos. Muy bien, estoy bastante emocionado por estos resultados hasta ahora. En realidad se ven realmente razonables. hay espacio para la mejora obstante, y ese va a ser mi reto para ustedes en nuestra próxima conferencia. Hablaremos de algunas maneras en las que realmente podrías extender y construir sobre este
cuaderno python y en realidad hacer mejores recomendaciones de películas que las que te di para empezar . Entonces hay un poco de arte a esto. Ya sabes, necesitas seguir iterando y probando diferentes ideas y diferentes técnicas hasta
obtener mejores y mejores resultados. Y se puede hacer esto casi para siempre. Es decir, hice toda una carrera con ello, así que no espero que pases el siguiente que sabes, 10 años tratando de refinar esto como lo hice yo. Pero hay algunas cosas sencillas que puedes hacer, así que hablemos de eso.
48. Mejora los resultados del recomendador: por lo que como ejercicio, quiero desafiarte a ir y hacer esas recomendaciones aún mejor. Entonces hablemos de algunas ideas que tengo, y tal vez tengas algunas propias a eso. En realidad puedes probar y experimentar, ensuciarte las manos e intentar hacer mejores recomendaciones de película. De acuerdo, entonces hay mucho margen para mejorar. Aún así, en estos resultados de recomendación, entonces se puede ver que hay una especie de arte para ello. Hay muchas decisiones que tomamos sobre cómo los resultados de las diferentes recomendaciones se
basan en tu calificación de ese ítem del que venía, o qué umbral quieres elegir para el número mínimo de personas que calificaron a
películas dadas . Por lo que hay muchas cosas que puedes modificar muchos algoritmos diferentes que puedes probar, y puedes divertirte mucho tratando de hacer mejores recomendaciones de películas fuera del sistema. Entonces si te sientes a la altura, te reto a que vayas y hagas justamente eso. Entonces, aquí hay algunas ideas sobre cómo podrías realmente tratar de mejorar los resultados en esto en
esta conferencia, por lo que solo puedes seguir adelante y jugar con el ítem basado en archivo de notebook cf dot i python y jugar con él. Entonces, por ejemplo, vimos que el método de correlación en realidad tenía algunos parámetros para el cálculo de Correlación comp YouTube. Usamos Pearson en nuestro ejemplo, pero hay otros que puedes buscar y probar. Ve lo que hace a tus resultados. Utilizamos un valor de periodo mínimo de 100. A lo mejor es demasiado alto. A lo mejor es demasiado bajo. Simplemente lo elegimos arbitrariamente. ¿ Qué pasa si juegas con eso con ese valor? Si bajara eso, por ejemplo, esperaría que viera algunas películas nuevas. lo mejor nunca oíste hablar,
pero tal vez sea una buena recomendación para esa persona, o si lo subas más alto, verías que no sabes nada más que éxitos de taquilla. Por lo que a veces hay que pensar en cuál es el resultado que quieres fuera de una recomiendo su sistema. ¿ Hay un buen equilibrio que tener entre mostrar a la gente películas de las que han oído hablar de una película que se mueve de la que no han oído hablar? Cuán importante es el descubrimiento de nuevas películas para estas personas versus tener confianza en el sistema
recomendado al ver muchas películas que han escuchado. Entonces de nuevo, hay una especie de arte a eso. También podemos mejorar sobre el hecho de que vimos muchas películas en los resultados que fueron similares a Gone With the Wind, pesar de que no me gustó Gone with the Wind. Ya sabes, esperábamos esos resultados más bajos que las películas de similitudes que disfruté. Pero tal vez esas películas en realidad deberían ser penalizadas si odiaba tanto a Gone with the Wind . A lo mejor las similitudes con Gone With the Wind, como El mago de Oz, realidad
deberían ser penalizadas y, ya
sabes, bajadas en su puntuación en lugar de elevarlo todo. Entonces esa es otra simple modificación que podrías hacer y jugar con ella. Probablemente haya algunos valores atípicos en nuestro conjunto de datos de calificación de usuarios. ¿ Y si nuestro dedo del pie tira a la gente que allanó alguna ridícula cantidad de películas, tal vez lo estén sesgando todo? En realidad podrías intentar identificar a esos usuarios y tirarlos como otra idea. Y si de verdad quieres un gran proyecto, si de verdad quieres hundir tus dientes en esta materia, realidad
podrías evaluar los resultados de esta recomendación pero recomendó motor
mediante el uso de las técnicas de prueba entrenada. Entonces, ¿qué pasa si en lugar de tener una puntuación de recomendación arbitraria que resume la correlación, las
puntuaciones de cada película individual en realidad escalaron eso a una calificación predicha para cada película
dada. Entonces si la salida de mi sistema er recomiendo fuera película y mi calificación predicha para esa película en un sistema de prueba de tren, realidad podría tratar de averiguar ¿Qué tan bien predigo las películas que ese usuario tiene de hecho , visto y leerlo antes? De acuerdo, así que podría, como, lado algunos de los datos de calificaciones y ver qué tan bien mi sistema recomendado es capaz predecir. Las calificaciones de los usuarios fueron esas películas, y esa sería una forma cuantitativa y principal de medir el error de esto. Recomendar su motor. Pero de nuevo, hay un poco más de un arte que de una ciencia a esto. A pesar de que el Premio Netflix realmente usó esa área, métrica llamada Route Me significa errores al cuadrado. Lo que solían ser bastante particular es que realmente una medida de un buen
sistema er recomiendo . Básicamente, estás midiendo la capacidad de tu sistema de recomendación er para predecir las calificaciones de películas que una persona ya veía, pero no es el propósito de un motor recomendado para recomendar películas que una persona no ha vistos que pudieran disfrutar? Hay dos cosas diferentes. Entonces, desafortunadamente, no es muy fácil medir lo que realmente quieres estar midiendo. Por lo que a veces sí tienes que ir con tu instinto de tripa y la forma correcta de medir los resultados de una recomendación. Su motor es medir los resultados que intentas promover a través de él. A lo mejor estoy tratando de que la gente vea más películas o grandes películas nuevas más alto o compre más cosas. Ejecutar experimentos controlados reales en un sitio web real sería la forma correcta de optimizar
para eso, a diferencia de usar pruebas entrenadas. Entonces, ya
sabes, fui a un poco más de detalle allá de lo que probablemente debería tener. Pero la lección es, siempre se
puede pensar en estas cosas en blanco y negro. Ya sabes, a veces realmente no se puede medir las cosas de manera directa
y cuantitativa, y hay que usar un poco de sentido común, y este es un ejemplo de eso. En fin, aquí te dejamos algunas ideas sobre cómo volver atrás y mejorar los resultados de este
motor recomiendo er que escribimos. Así que por favor siéntete libre de jugar con él. A ver si puedes mejorarlo. De todas formas que desees y divertirte un poco con él. Esta es en realidad una parte muy interesante del curso, así que espero que lo disfruten. Entonces ve a intentarlo. A ver si puedes mejorar nuestros resultados iniciales. Ahí. Ahí hay algunas ideas sencillas para tratar de mejorar esas recomendaciones y algunas mucho más complicadas también. Ahora bien, no
hay respuesta correcta o incorrecta. No te voy a pedir que entregues tu trabajo, y no voy a revisar tu trabajo. Ya sabes, solo
tienes que jugar con él y familiarizarte con él y experimentar y ver qué resultados obtienes. Ese es el punto completo solo para familiarizarte con el uso de python para este tipo de cosas y familiarizarte más con los conceptos detrás del filtrado colaborativo basado en elementos. Así que diviértete un poco con él. ¿ A ver qué se me ocurre? Si se te ocurre algunos resultados realmente buenos, asegúrate de publicar esos para que todos nuestros otros alumnos vean en las discusiones aquí me gustaría ver lo que
se te ocurre. Así que ten en ello
49. K-Nearest-Neighbors: conceptos: Hablemos de unas cuantas técnicas más de minería de datos y aprendizaje automático que la gente esperará que conozcas. Empezaremos con uno realmente simple llamado K vecinos más cercanos Air Cannon para abreviar. Y te vas a sorprender de lo simple que puede ser una buena
técnica supervisada de aprendizaje automático . Echemos un vistazo. Así que hablemos de algunas técnicas de aprendizaje automático de minería de datos más que los empleadores esperan que
sepas de algunas más que aún no hemos cubierto. uno de los más simples se le llama K vecinos más cercanos, así que empecemos con eso. Suena fantasía, pero en realidad es una de las técnicas más simples que hay por ahí. La idea es, digamos que tienes una trama de dispersión y puedes calcular la distancia entre dos puntos cualquiera en esa trama Skylar, ¿
verdad? Entonces la idea de K vecinos más cercanos es Digamos que tienes un montón de datos que
ya has clasificado, que puedes entrenar el sistema si tengo un nuevo punto de datos. Todo lo que hago es mirar a los K vecinos más cercanos en base a esa métrica de distancia y dejar que todos voten sobre la clasificación de ese nuevo punto. Entonces tomemos ejemplo aquí. Imaginemos que esta trama de dispersión aquí está tramando películas, y tal vez los Cuadrados Azules representan películas de ciencia ficción, y los triángulos rojos representan películas de drama. De acuerdo, y tal vez esto sea tramar calificaciones versus popularidad o cualquier otra cosa que puedas soñar. Por lo que tenemos algún tipo de distancia que podemos mantener computación en base a la calificación y popularidad entre dos puntos cualquiera en la trama de dispersión. Digamos que llega un nuevo punto en una nueva película que no conocemos al John R. Four. Pero podríamos hacer es decir, Fijemos K 23 y llevemos a los tres vecinos más cercanos a este punto en la trama de dispersión. Todos pueden entonces votar las clasificaciones para que vean si tomo los tres
Vecinos más cercanos K's tres. Tengo que dramatizar películas y una película de ciencia ficción, y luego les dejaría todos votos y elegiríamos la desclasificación del drama para este nuevo punto basado en eso esos tres vecinos más cercanos. Ahora bien, si ampliara este círculo para incluir a cinco vecinos más cercanos K de cinco, obtengo una respuesta diferente. Entonces en ese caso, recojo tres ciencia-ficción en películas dramáticas Si dejo que todos voten, acabaría con una clasificación de ciencia ficción en su lugar, para que puedas ver la elección de K puede ser muy importante. Quieres asegurarte de que sea lo suficientemente pequeño para que no tengas que ir demasiado lejos y convertirte en Empieza recoger a tus vecinos relevantes, pero tiene que ser lo suficientemente grande como para y cerrar los puntos de datos suficientes para obtener una muestra significativa
con tanta frecuencia tendrás que utilizar prueba entrenada o una técnica similar para determinar realmente cuál es perdonado el valor
correcto de K. Conjunto de datos. Pero al final del día tienes que empezar tu intuición y trabajar desde ahí. Eso es todo lo que hay a ello. Es sólo así de sencillo. Entonces a pesar de que es una técnica muy sencilla, ¿cómo le va? Está literalmente tomando a los vecinos más cercanos DK en una trama de dispersión y dejando que todos voten en la clasificación. califica a un aprendizaje supervisado porque está utilizando los datos de capacitación de un conjunto de puntos
conocidos y clasificaciones conocidas para informar la clasificación de un nuevo punto. Pero hagamos algo un poco más complicado con él y realmente juguemos con películas solo basadas en sus metadatos. Entonces vamos a ver si realmente podemos descifrar los vecinos más cercanos de una película basada sólo
en los valores intrínsecos de esas películas de que las calificaciones para el John o la información para ella . Entonces, en teoría, podríamos recrear algo similar a los clientes que miraban. También lavar, Ya
sabes, esta es una captura de pantalla de amazon dot com. Simplemente usando caña vecinos más cercanos y podría llevarlo un paso más allá. Una vez identificadas las películas que son similares a una película dada basada en el
algoritmo K vecinos más cercanos , puedo dejar que todos voten por una calificación predicha para esa película. Entonces eso es lo que vamos a hacer en nuestro siguiente ejemplo. Vamos a llegar a ella. Por lo que ahí tienes los conceptos de Can y K vecinos más cercanos. Adelante y aplicémoslo a un ejemplo de encontrar realmente películas que sean similares entre sí y usar esas películas vecinas más cercanas para predecir la calificación de otra película que no hemos visto antes.
50. Usar KNN para pregar una clasificación para una película: bien, realidad
vamos a tomar la idea simple de los vecinos más cercanos de Cayenne NK y aplicarlo a un problema más complicado. Y eso es predecir la calificación de una película, dado justamente su género e información de lectura. Así que vamos a sumergirnos y hacer eso Vamos a divertirnos un poco con K y N y en realidad tratemos de predecir calificaciones de
películas solo en base al algoritmo K vecinos más cercanos y a ver dónde llegamos. Entonces si quieres seguir adelante,
adelante y abre la libreta de Python de alto cañón y puedes jugar conmigo. Es lo que vamos a hacer es definir una métrica de distancia entre películas solo en base a sus metadatos y por metadatos, solo yo y la información que es intrínseca a la información de la película asociada a la película. Específicamente, vamos a ver las clasificaciones de género de la película. Cada película de nuestro conjunto de datos de Lens de película tiene información adicional sobre a qué
pertenece John o Is it , y una película puede pertenecer a más de un género. A dibujados están siendo algo así como ciencia ficción o drama o comedia. Ya sabes qué tienes películas animadas, y también veremos la popularidad general de la película dada por el número de
personas que la asaltaron. Y también conocemos la calificación promedio de cada película. Por lo que puedo combinar toda esta información juntos para básicamente crear una métrica de distancia entre dos películas solo en base a información de calificación y john o información. Entonces veamos qué obtenemos. Por lo que usamos de nuevo pandas para hacer la vida sencilla. Y si estás siguiendo de nuevo, asegúrate de cambiar el camino al conjunto de datos de las líneas de película a donde sea que lo instalaste, lo que casi seguramente no será lo que hay en este cuaderno python. Entonces, adelante y cámbiate eso. Si vas a seguir como antes, solo
vamos a importar el archivo de datos de calificaciones reales en sí mismo, que es que puntes datos usando la función read See SV y Pandas, donde hasta que realmente tenga una pestaña, delimitada o no, una coma. Y vamos a importar las primeras 3 columnas, que representan al usuario I d película I D y la calificación para cada calificación de película individual en nuestro conjunto de
datos. Entonces vamos adelante y corremos eso y miramos la parte superior de la misma. Podemos ver que está funcionando. Terminamos con un marco de datos que tiene al usuario I. D. Idea de
película y calificación, por ejemplo, usuario I D película calificada I D 50 que creo es Star Wars, cinco estrellas y así sucesivamente y así sucesivamente. Entonces si quieres obtener información agregada sobre las calificaciones alcanzan película, eso es lo siguiente que tenemos que averiguar. Entonces vamos a usar el grupo por función en Pandas para agrupar realmente todo por
ideas de cine . Entonces vamos a combinar todas las calificaciones alcanzan película individual, y vamos a poner el número de calificaciones y el puntaje promedio de calificación que significan para cada película. Entonces vamos a seguir adelante y hacer que eso regrese bastante rápido. Entonces esto nos da otro marco de datos que nos dice, por ejemplo, película I D uno tenía 452 calificaciones, que es una medida de su popularidad. Cuántas personas realmente lo vieron y lo asaltaron y una puntuación media de revisión de 3.8. Por lo que 14 52 personas vieron película I D uno, y le dieron una revisión promedio de 3.87 lo cual es bastante bueno Ahora. El número bruto de calificaciones ¿no nos resulta tan útil? Es decir, no lo
sé, 452 significa que es popular o no. Entonces normalizar que lo que vamos a hacer es básicamente medir que contra el número máximo y mínimo de calificaciones llegan a película. Y podríamos hacer eso usando esta pequeña función lambda aquí para poder aplicar una función a todo
un marco de datos De esta manera y lo vamos a hacer es usar las funciones NUM Pie Min y Max para encontrar el número máximo de calificaciones en el número mínimo de calificaciones encontradas en todo el conjunto
de datos. Por lo que tomaremos la película más popular de la película menos popular y encontraremos ahí la gama y normalizaremos todo contra esa gama. Entonces lo que esto nos da, lo
ejecutamos. Básicamente es una medida de popularidad para cada película en una escala de 0 a 1. Por lo que un marcador de cero aquí significaría que nadie lo vio. Es la película menos popular, y una puntuación de una significaría que todo el mundo la viera. Es la película más popular donde específicamente es la más popular, la película que más gente veía. De acuerdo, entonces tenemos una medida de popularidad cinematográfica ahora que podemos usar para nuestra distancia. Métrico. Siguiente. Extractos de la información de Jonás. Por lo que resulta que hay un archivo de ítem de Utah que no sólo contiene los nombres de las películas, sino también todos los géneros a los que pertenece cada película. Por lo que este pedacito de código pasará en realidad. Cada línea de ti punto elemento están haciendo esto de la manera difícil que no estamos usando. Sabes que cualquier disfunciones de pan solo iban a usar directamente una pitón esta vez otra vez, Asegúrate de cambiar esa ruta a donde sea que instalaras esta información. Entonces abriremos nuestro archivo de ítem you dot, y luego alfabetizaremos a través de cada línea del archivo una a la vez, Russ, despojamos la nueva línea al final y la dividiremos en base a la tubería. Los limitadores en este archivo y extraeremos la película I D. El nombre de la película y todos los campos de género individuales. Entonces básicamente hay un montón de ceros y unos en 19 campos diferentes en el
alcance de los datos de origen . Uno de esos campos representa un género dado, así que veamos cómo se ve eso, y construiremos un diccionario de python al final que mapea la película I DS a sus nombres, géneros, y luego también volveremos a doblar en nuestra información de calificación. Por lo que habremos nombrado popularidad de género en una escala 01 y la calificación promedio. Entonces eso es lo que hace este pequeño fragmento de código. Corremos eso y solo para ver con qué terminamos, podemos extraer el valor para la película I. D. Uno, que pasa a ser Toy Story. I'll Pixar película de 1995 de la que probablemente hayas oído hablar, y lo que tenemos en nuestro diccionario es para entrada. Un movimiento el I D Won. El nombre es Toy Story. Esta es una lista de todos los géneros donde un cero indica que no forma parte de ese género, y uno indica que es parte de ese género. Y hay un archivo de datos en el conjunto de datos de lentes de película que te dirá a qué corresponde en realidad cada uno de estos John o Fields. Pero para nuestros propósitos, realidad no
es importante, ¿verdad? Solo estamos tratando de medir la distancia entre películas en función de sus géneros, Así que todo lo que importa matemáticamente es lo similar que es este vector de géneros a otra película . De acuerdo, los reales Jonah son ellos mismos. No es importante. Simplemente queremos ver qué tan iguales o diferentes son dos películas. Y ahí, John o clasificaciones de costos. Entonces tienes a ese John Reist. Tenemos la puntuación de popularidad que calculamos, y tenemos ahí la calificación media o media para Toy Story. Entonces sigamos adelante y imaginemos cómo combinar toda esta información en conjunto en una
métrica de distancia . Por lo que confinamos a los K vecinos más cercanos para una historia de juguete, por ejemplo. Entonces he computado bastante arbitrariamente esta función de distancia que toma dos película I DS y computa una puntuación de distancia entre los dos. Y vamos a basar esto en primer lugar en la similitud, utilizando una métrica de similitud de signo co entre los dos John Reflectors. Entonces, como dije, sólo
vamos a tomar la lista de géneros para cada película y ver lo similares que son entre sí otra vez. Un cero indica que no forma parte de ese género. Uno indica que lo es. Después compararemos las puntuaciones de popularidad y solo tomaremos la diferencia cruda valor absoluto de la diferencia entre esos dos puntajes de popularidad y usaremos eso hacia la
métrica de distancia también, y usaremos esa información por sí sola para definir la distancia entre dos películas. Entonces, por ejemplo, si fuéramos a computar la distancia entre las ideas de cine dos y cuatro, esta función devolvería alguna función de distancia basada en Lee en la popularidad de esa película y en los géneros de esos películas. De acuerdo, así que imagina que es una trama de dispersión, si se quiere, volver a nuestro ejemplo original en las diapositivas donde un acceso podría ser una medida de
similitud de género basada en métrica co sign, el otro el acceso podría ser popularidad. De acuerdo, solo
estamos encontrando la distancia entre estas dos cosas. Entonces para este ejemplo, donde estamos tratando de calcular la distancia usando nuestra métrica de distancia entre las películas dos y cuatro, terminamos con una puntuación de 40.8. Y recuerda, una A distancia lejana significa que no es similar, verdad. Queremos a los vecinos más cercanos con menor distancia. Por lo que un puntaje de 0.8 número bastante alto en una escala de 0 a 1. Entonces eso me está diciendo que estas películas realmente no son similares. Simplemente hacemos un rápido chequeo de cordura y vemos cuáles son realmente estas películas. Resulta que son las películas GoldenEye y Get Shorty, las
cuales son películas bastante jodidamente diferentes. Ya sabes que tienes a James Bond aventura de acción aquí en una película de comedia y no muy similar en absoluto. En realidad son comparables en términos de popularidad. Pero la
diferencia de John R. lo hizo en. De acuerdo, entonces vamos a ponerlo todo junto a continuación. Vamos a enderezar un poco de código para realmente tomar alguna película dada I D y en realidad encontrar a los K vecinos más cercanos. Entonces todo lo que tenemos que hacer es calcular la distancia entre Toy Story y todas las demás películas
de nuestro diccionario de películas y ordenar los resultados en función de su puntuación de distancia. Y eso es lo que hace este pequeño fragmento de código Aquí. Tómate un momento para envolverte la cabeza alrededor de él. Es bastante sencillo, pero como decimos,
tenemos una pequeña función get neighbor que se llevará la película que nos interesa y los K vecinos que queremos encontrarte analfabetos a través de cada película que tenemos. Si no lo es, si en realidad es una película diferente a cuando estamos mirando, se calculará esa puntuación de distancia desde antes de un bolígrafo, eso a la lista de resultados que tenemos ordenar ese resultado y luego vamos a arrancar la K mejores resultados. De acuerdo, entonces en este ejemplo, tenemos que llevar el Rosset K a 10. Encuentra a los 10 vecinos más cercanos. Encontraremos a los 10 vecinos más cercanos usando get vecinos, y luego alfabetizaremos a través de todos estos 10 vecinos más cercanos y calcularemos la
calificación promedio para cada uno de cada vecino. Y esa calificación promedio nos informará de nuestra predicción de lectura para la película en cuestión . Y como efecto secundario, también
obtenemos a los 10 vecinos más cercanos en base a nuestra función de distancia, que podríamos llamar películas similares. Por lo que esa información en sí es útil. Volviendo a eso. Los clientes que vieron también vieron ejemplo. Si quieres hacer una característica similar que solo se basó en esta métrica de distancia y no datos
reales de comportamiento, este podría ser un lugar razonable para empezar, ¿
verdad? Entonces sigamos adelante y ejecutemos esto y veamos si terminamos con y los resultados no son tan irrazonables. Entonces estamos usando como ejemplo de la película Toy Story, que es película I. D. Uno y con lo que volvimos para el top 10 vecinos más cercanos son, ah, bastante buena selección de comedia y Niños de las películas. Por lo que dado que la historia de juguetes es una comedia popular y Películas infantiles. Tenemos un montón de otras comedia popular y películas infantiles, así que parece funcionar. No tuvimos que usar un montón de algoritmos de filtrado colaborativo de lujo. Estos resultados no son tan malos. Y si solo queremos predecir uso Cannon para predecir la calificación, donde estamos pensando en una lectura son las clasificaciones. En este ejemplo, terminamos con una calificación predicha de 3.34 que en realidad no es tan diferente de la calificación
real de esa película, que era de 3.87 Así que no genial. Eso tampoco está mal. decir, Esdecir,en realidad funciona sorprendentemente bien, dado lo sencillo que es este algoritmo. La mayor parte de la complejidad en este ejemplo fue solo en determinar nuestra métrica de distancia y, ya
sabes, intencionalmente nos
pusimos un poco de fantasía ahí solo para mantenerlo interesante, pero podrías hacer cualquier otra cosa que quisieras. Entonces si quieres juguetear con esto, definitivamente
te animo a hacerlo. Nuestra elección de 10 para K estaba completamente fuera de la nada. me lo acabo de hacer. ¿ Cómo lo harías? ¿ Cómo responde esto a los diferentes valores K? Obtienes mejores resultados con un valor mayor de K o con un valor menor K No importa, ¿
puedes? En realidad, y yo? Si realmente quieres dedo del pie hacer amore ejercicio involucrado, en realidad
podrías intentar implicar prueba de tren para realmente encontrar el Valor K que de manera más óptima puede predecir la calificación de una película dada basada en kn n n, y puedes usar simplemente diferente métricas de distancia. Yo como que hice eso para así jugar alrededor de la métrica de distancia tal vez pueda usar diferentes fuentes de información o manera las cosas de manera diferente podrían ser algo interesante de hacer. A lo mejor la popularidad no es realmente tan importante como la información de Jonah. O tal vez sea al revés. Vea a qué impacto tiene algún resultado. Así que adelante y límpiate con estos algoritmos metido con co. Y corre con él y ve qué puedes conseguir. Y si sí encuentras una manera significativa de mejorar en esta cuota que con tus compañeros de clase, eso es puede terminar en acción. Entonces un concepto muy simple, pero en realidad puede ser bastante poderoso. Entonces ahí lo tienes, y ahí lo tienes. Películas similares simplemente basadas en el género y la popularidad y nada más funciona sorprendentemente bien. Y usamos el concepto de puede terminar realmente usar a esos vecinos más cercanos para predecir una calificación para una nueva película, y eso en realidad funcionó bastante bien, también. Entonces eso es K y la inacción. Técnica muy simple, pero a menudo funciona bastante malditamente bien.
51. Reducción de dimensiones de dimensión, análisis principal de componentes: todo bien. Hora de conseguir todo trippy. Vamos a hablar de mayores dimensiones y reducción de dimensionalidad. Suena aterrador. Hay algunas matemáticas de fantasía involucradas, pero conceptualmente, no
es tan difícil de entender como se podría pensar. Entonces hablemos de reducción de dimensionalidad y análisis de componentes principales. A continuación, hablemos de la maldición de la dimensionalidad. Sonando muy dramático. Por lo general, cuando la gente habla de esto, están hablando de una técnica llamada análisis de componentes principales y una
técnica específica llamada descomposición de valor singular. RSVP'd. Por lo que PC y S V. T. S V. D son los temas de esta conferencia. Vamos a sumergirnos en ello. Entonces, ¿cuál es la maldición de la dimensionalidad? Bueno, se pueden pensar muchos problemas en tener muchas dimensiones diferentes. Entonces, por ejemplo, cuando estábamos haciendo recomendaciones de películas, teníamos atributos de varias películas, y cada película individual podía pensarse en su propia dimensión en ese espacio de datos. Entonces si tienes muchas películas, eso son muchas dimensiones, y realmente no puedes envolver la cabeza alrededor de más de tres,
verdad, verdad, porque eso es lo que crecimos para evolucionar dentro. O es posible que tengas algún tipo de datos que tenga muchas características diferentes que te importan. En un momento, veremos un ejemplo de flores que queremos clasificar y que las clasificaciones apuestan en
base a cuatro medidas diferentes de las flores y esas cuatro características diferentes. Esas cuatro mediciones diferentes pueden representar cuatro dimensiones, que nuevamente es muy difícil de visualizar. Por lo que existen técnicas de reducción de dimensionalidad para encontrar una manera de reducir la
información dimensional superior en información dimensional inferior. Y no sólo eso puede hacer que sea más fácil mirar y clasificar las cosas, sino que tiene que ser útil para cosas como comprimir datos. Por lo que al preservar la cantidad máxima de varianza mientras reducimos el número de dimensiones, representaban de forma más compacta un conjunto de datos mientras aún trataban de preservar la varianza en ese conjunto de datos. Por lo que la aplicación muy común de la reducción de dimensionalidad no es sólo para la visualización sino también para la compresión y para la extracción de características. Hablaremos de eso un poco más en un momento. Un ejemplo muy simple de reducción de dimensionalidad se puede pensar en su K significa clustering . Así que sabes, por ejemplo, podrías empezar con muchos puntos que representan muchas dimensiones diferentes en un conjunto de datos . Pero en última instancia podemos reducir eso a k diferente Centrowitz y tu distancia a los centralizados. Entonces esa es una forma de tipo de datos hirviendo hasta una representación dimensional inferior. Pero generalmente cuando la gente habla de reducción de dimensionalidad, están hablando de una técnica llamada análisis de componentes principales. Y esta es una técnica mucho más elegante. Se mete en algunas matemáticas bastante involucradas, pero a un nivel alto. Todo lo que necesitas saber es que se necesita un espacio de datos dimensional mayor, y encuentra planos dentro de ese espacio de datos en dimensiones superiores. Y estos planos de mayor dimensión aire llamados hiper planos. Y están definidas por cosas llamadas vectores Eigen, y tomas tantos aviones como quieras dimensiones. Al final, proyecta esos datos en esos hiper planos, y esos se convierten en los nuevos ejes en tu espacio de datos de menor dimensión. Ya sabes, a menos que estés familiarizado con las matemáticas dimensionales superiores y lo pensaras antes, eso va a ser difícil envolverte la cabeza. Pero al final del día significa que estamos eligiendo planos en un espacio dimensional más alto que aún preservan la mayor varianza en nuestros datos y proyectan los datos sobre esos planos
dimensionales superiores que luego traemos a un espacio dimensional inferior. Vale, ya
sabes, quiero decir, realmente no
tienes que entender todas las matemáticas para usarla. El punto importante es que es una forma muy de principios de reducir un conjunto de datos a un espacio dimensional
inferior al tiempo que conserva la varianza dentro de él. Hablamos de la compresión de imágenes es una aplicación de esto. Entonces ya sabes, si quiero reducir la dimensionalidad en una imagen, podría usar PC A para reducirla a su esencia. El reconocimiento facial es otro ejemplo. Entonces si tengo ah, conjunto de
datos de caras, ya
sabes, tal vez la cada cara representa 1/3 dimensión de dos imágenes D y quiero reducirlo. SPD y el análisis de componentes principales podrían ser una forma de identificar las características que realmente cuentan en una cara por lo que podría terminar enfocándose más en los ojos. Y la boca, por ejemplo, es características importantes que son necesarias para preservar la varianza dentro de ese conjunto de datos. Entonces es que puede producir algunos resultados muy interesantes y muy útiles que recién surgieron forma natural de los datos, lo cual es un poco cool para hacerlo. En realidad, vamos a usar un ejemplo más simple, usando lo que se llama el conjunto de estado IRA. Y este es un conjunto de datos que se incluye con el aprendizaje psíquico. Se usa bastante comúnmente en ejemplos, y aquí está la idea detrás de él. Entonces, ¿qué? En realidad Iris tiene dos tipos diferentes de pedales en su flor una vez llamada pedal, que son,ya
sabes, ya
sabes, los pétalos de flores con los que estás familiarizado. Y también tiene algo llamado CEPAL,
que es una especie de este conjunto inferior de pedales de apoyo en la flor. Y podemos tomar un montón de virus en diferentes especies de virus y medir el
alargar del pedal y la longitud de la CEPAL. Y con así en conjunto, la longitud y anchura del pedal en el alargar con de la CEPAL son cuatro
mediciones diferentes que corresponden a cuatro dimensiones diferentes en nuestro conjunto de datos. Y quiero usar eso para clasificar a qué especie e Iris podrían pertenecer. Ahora, P. C. A. Nos
permitirá visualizar que está en dos dimensiones en lugar de cuatro, vez que conserva la varianza en ese conjunto de datos. Entonces vamos a ver qué tan bien funciona eso y en realidad escribir algún código python para hacer de PC un pase en el conjunto de datos irlandés. Entonces Esos son los conceptos de reducción de dimensionalidad, análisis de componentes
principales y valor singular. Descomposición todas las grandes palabras de fantasía. Y sin embargo es una especie de cosa elegante. Ya sabes, estamos tratando de reducir,
reducir espacios dimensionales más altos a espacios dimensionales más pequeños de una manera que preserve sus variantes. Afortunadamente, psíquico aprendido nos hace extremadamente fáciles de hacer, como tres líneas de código es todo lo que necesitas para aplicar realmente PC A. Así que hagamos que eso suceda.
52. Ejemplo de PCA con el conjunto de datos de datos de Iris: Entonces vamos a aplicar. El análisis de componentes principales al conjunto de datos irlandés es un conjunto de datos de cuatro dimensiones que vamos a reducir a dos dimensiones, y vamos a ver que en realidad todavía podemos preservar la mayor parte de la información en ese conjunto de
datos incluso por tirando a la basura la mitad de las dimensiones. Es cosas bastante cool. Es bastante sencillo de,
Así que vamos a sumergirnos. Muy bien, hagamos algún análisis de componentes principales y curemos la maldición de la dimensionalidad. Por lo que en realidad es muy fácil de hacer usando psíquico aprender como de costumbre y de nuevo PC esa técnica de reducción de
dimensionalidad. Suena muy ciencia ficción. E cómo todo esto habla de dimensiones superiores, pero sólo para hacerlo más concreto y real de nuevo. Ah, aplicaciones
comunes compresión de imágenes. Entonces piensas en una fotografía en blanco y negro, una imagen de una imagen en blanco y negro como tres dimensiones, donde tienes con tu X y tu eje Y de altura, y luego cada celda individual tiene algún valor de brillo en una escala de 0 a 1 que ya sabes , es negro dedo del pie blanco o algún valor en el medio. Por lo que serían datos tridimensionales. Ya sabes que tienes que dimensiones espaciales y luego una dimensión de brillo e intensidad. Además de eso, si estuvieras muerto a todavía eso abajo por decir dos dimensiones solas, esa sería una imagen comprimida. Y si hicieras eso en una técnica que preservara lo mejor
posible la varianza en esa imagen , aún
podrías reconstruir la imagen sin mucha pérdida en teoría. Entonces eso es la reducción de dimensionalidad , ya
sabes, destilada hasta un ejemplo práctico. Ahora vamos a usar un ejemplo diferente aquí, usando el conjunto de datos irlandés y psíquico aprendido incluye esto. Todo esto es un conjunto de datos de diversas mediciones de flores del iris y la
clasificación de especies para cada iris en ese conjunto de datos. Y tiene también, como dije, antes de la medida de longitud y anchura tanto del pétalo como del flexible para cada
espécimen de iris . Por lo que entre la longitud y anchura del pedal y la longitud y anchura de la CEPAL, tenemos cuatro dimensiones de ah datos de características de información. En nuestro conjunto de datos, queríamos todavía eso hasta algo que realmente podemos mirar y entender, porque tu mente no trata muy bien cuatro dimensiones,
pero puedes mirar dos dimensiones en un pedazo de papel con bastante facilidad. Entonces sigamos adelante y cargemos eso. Aquí hay una práctica función de iris de carga dandy incorporada en psiquis. Aprendió que solo cargará eso para ti sin trabajo adicional, por lo que solo puedes enfocarte en la parte interesante. Y si echamos un vistazo a cómo se ve ese conjunto de datos, puede ver que estamos extrayendo la forma de ese conjunto de datos, lo que significa cuántos puntos de datos tenemos en él 150. Y cuántas características o cuántas dimensiones tiene ese conjunto de datos, y eso son cuatro. Por lo que contamos con 100 ejemplares de 50 iris en nuestro conjunto de datos con cuatro dimensiones de información. Nuevamente, esa es la longitud y anchura del flexible en el alargo, con del pedal para un total de cuatro características, que podemos pensar en sus cuatro dimensiones. Y también podemos imprimir la lista de nombres de objetivos en el conjunto de estados, que son las clasificaciones, y podemos ver que cada iris pertenece a una de tres especies diferentes, Sentosa versus Color o Virgin Icka. Entonces ese es el dato que estamos trabajando con 150 ejemplares IRA clasificados en una de tres especies, y tenemos cuatro características asociadas con cada iris siendo la longitud y anchura del pedal en la longitud y anchura del flexible. Entonces veamos lo fácil que es PC A, pesar de que es una técnica muy complicada bajo el capó. Hacerlo son solo unas pocas líneas de código asignadas a todo el conjunto de estado IRA, y lo
vamos a llamar X. Entonces crearemos
una PC, un modelo, y vamos a decir y componentes iguales a dos. Por lo que queremos dimensiones. Vamos a ir de 4 a 2. Vamos a usar iguales blanqueados. Es cierto, eso significa que vamos a normalizar todos los datos y asegurarnos de que todo sea agradable y comparable. Normalmente, querrás hacer eso para obtener buenos resultados, y luego ajustaremos el PC un modelo a nuestros datos irlandeses Set X, y luego podremos usar ese modelo. Entonces, también, transformar esos datos establecidos en dos dimensiones en. Vamos a seguir adelante y hacer que eso pasó bastante rápido. Entonces piensa en lo que acaba de pasar ahí. En realidad creamos un PC un modelo para reducir cuatro dimensiones a dos. Y lo hizo al elegir vectores de cuatro dimensiones para crear hiper planos alrededor para
proyectar esos datos de duda de cuatro dimensiones hasta dos dimensiones, y en realidad se puede ver cuáles son esos vectores de cuatro dimensiones. Esos vectores Eigen imprimiendo los componentes reales de PCs OPC A significa análisis de
componentes principales . Esos componentes principales son los i n vectores que elegimos para definir nuestros planos. De acuerdo, y en realidad puedes mirar esos valores aquí. No va a significar mucho para ti porque de todos modos no se puede imagina realmente para las dimensiones. Pero sólo para que puedas ver que en realidad está haciendo algo con componentes principales. Entonces vamos a tener ah, evaluemos nuestros resultados. El PC a model nos devuelve algo llamado la relación de varianza explicada, y básicamente eso te dice cuánto de la varianza en los datos cuatro dimensionales originales se conservó ya que lo reduje a dos dimensiones. Entonces sigamos adelante y echemos un vistazo a eso. Lo que te da de vuelta es en realidad ah, lista de dos artículos para las dos dimensiones que conservamos. Entonces esto me está diciendo que en la primera dimensión realmente puedo preservar el 92% de la varianza en los datos. Y la segunda dimensión sólo me dio un 5% adicional de variantes. Y si cumbre juntas, estas dos dimensiones en las que proyecté mis datos hacia abajo en aún conservados más del 97% de la varianza en los datos de origen, por lo que cuatro dimensiones no eran realmente necesarias para capturar toda la información en estos datos fue bastante interesante. Es cosas bastante cool. Entonces si lo piensas, ¿qué crees que podría ser? Bueno, tal vez este tamaño general de la flor tenga alguna relación con la especie en su centro. A lo mejor, es la relación de longitud a anchura para el pedal y el flexible. Ya sabes, algunas de estas cosas probablemente se muevan juntas en concierto entre sí para una especie dada o tamaño general perdonado de una flor. Entonces tal vez haya relaciones entre estas cuatro dimensiones que PC A está extrayendo por sí sola. Es bonito, bastante cool y bastante poderoso. Vayamos y visualicemos esto. Entonces todo el punto de reducir esto a dos dimensiones es que eso para que pudiéramos hacer una bonita parcela de dispersión tooty de la misma. Por lo menos ese es nuestro objetivo para este pequeño ejemplo de aquí. Entonces vamos a un poco de Matt trama poco de magia aquí para hacer eso. Aquí está pasando algún tipo de cosas de lujo que al menos debería mencionar. Entonces vamos a hacer es crear una lista de colores rojo, verde y azul. Vamos a crear una lista de objetivo I ds. Por lo que el valor 01 en ellos después de las diferentes especies IRA a tres especies diferentes que tenemos. Y lo que vamos a hacer es comprimir todo esto con los nombres reales de cada especie. Entonces esta pequeña línea aquí para veo etiqueta en zip target ideas,
colores, iris, iris, nombres de
objetivos significa que vamos a analfabetizar a través de las tres diferentes especies IRA. Y a medida que
vayamos, vamos a tener tanto el índice para esa especie ah, color asociado a ella como el nombre real de etiqueta legible humana para esa especie. Entonces tomaremos una especie a la vez y trazaremos en nuestra parcela de dispersión solo para esa especie con un color dado y la etiqueta dada que la gente luego agrega en nuestra leyenda y muestra los resultados, y esto es con lo que terminamos. Entonces ese es nuestro dato de iris de cuatro dimensiones proyectado hasta dos dimensiones. Cosas bastante interesantes que puedes ver. Todavía son cúmulos juntos bastante bien. Ya sabes, tienes a todos los negros vírgenes sentados juntos por aquí. Todo el color de los versos está sentado en medio de este brindis está muy fuera de lado aquí, y es realmente difícil imaginar qué representan los valores reales de los mismos. Pero el punto importante es que hemos proyectado 40 datos hacia abajo a dos D y de tal manera que
aún conservamos la varianza. Y aún podemos ver delineaciones claras entre estas dos entre estas tres especies un
poco intermitente mezclado pasando ahí dentro. No es perfecto, ya
sabes. Pero en general fue bastante efectivo. Entonces si quieres jugar con este pequeño recorte de pedacitos de las relaciones de varianza explicadas , realidad
capturamos la mayoría de los rodamientos en una sola dimensión. Ya sabes, tal vez el tamaño general de las flores todo lo que realmente importa y clasificarlo, y se podría especificar eso con una característica. Así que adelante y modifique los resultados. Si te sientes a la altura. A ver si puedes salirte con dos dimensiones o una dimensión en lugar de dos. Entonces ve a cambiar eso y componentes dedo del pie uno y ve qué tipo de relación diversa se obtiene. Lo que pasa es que tiene sentido, así que juega con él, familiarízate con él, y eso es la reducción de dimensionalidad, análisis de componentes
principales y el valor singular. Descomposición todo en acción. muy, Términosmuy,
muy fantásticos. Y, ya
sabes, para ser justos, son algunas matemáticas bastante lujosas bajo el capó. Pero como puedes ver, es una técnica muy poderosa. Y con el aprendizaje psíquico, no
es difícil aplicar, así que mantén eso en tu cofre de herramientas. Por lo que ahí lo tienes, un conjunto de datos de cuatro dimensiones de información de harina se redujo a dos dimensiones que
ambos podemos visualizar fácilmente y también todavía ver delineaciones claras entre las clasificaciones que estaban interesadas en So PC A funciona realmente bien en este ejemplo, y de nuevo, es una herramienta útil para cosas como la compresión o la extracción de características o el reconocimiento
facial también. Por lo tanto, mantén eso en tu caja de herramientas. No, está ahí para ti.
53. Almacen de datos, ETL y ELT: continuación, vamos a hablar un poco sobre el almacenamiento de datos, y este es un campo que realmente ha sido levantado recientemente por el advenimiento de Hadoop y algunas técnicas de
big data y cloud computing. Entonces hay muchas palabras de zumbido grandes ahí, pero conceptos que son importantes para que entiendas. Entonces, sumémonos y exploremos estos conceptos. Hablemos de E, L T y E. T. L y data warehousing. En general, esto es más de, ah, concepto, a diferencia de unas técnicas prácticas específicas, que vamos a hablar de ello conceptualmente. Pero es algo que es probable que surja en el escenario de una entrevista de trabajo. Entonces, asegurémonos de entender estos conceptos. Empecemos hablando de data warehousing en general. Entonces, ¿qué es un almacén de datos? Bueno, básicamente
es una base de datos gigante que contiene información de muchas fuentes diferentes y las une para ti. Entonces, por ejemplo, tal vez trabajas en una gran empresa de comercio electrónico, y podrían tener un sistema de pedidos que alimenta información sobre las cosas que la gente compró en tu almacén de datos. Y también podría tener información de registros del servidor Web que se ingieren en el
almacén de datos un oleaje, y esto le permitiría atar la información de navegación en el sitio web con lo que gente finalmente ordenó. Por ejemplo, tal vez podría también la información italiana de sus sistemas de atención al cliente y medir si existe una relación entre el comportamiento de navegación y lo felices que están los clientes al final del día. Por lo que un data warehouse tiene el reto de tomar datos de muchas fuentes diferentes, transformándolos en algún tipo de esquema que nos permita consultar estas diferentes
fuentes de datos simultáneamente. Y nos permite hacer insights a través del análisis de datos utilizando estas fuentes de datos dispares. Por lo que las grandes corporaciones y organizaciones tienen este tipo de cosas bastante comúnmente esto. Nos estamos metiendo en el concepto de big data aquí, ¿verdad? Y puedes tener una base de datos Oracle gigante, por ejemplo, que contenga todas estas cosas. Ya sabes, tal vez está particionado de alguna manera y replicado y todo tipo de complejidad ahí. Y solo podrías consultar eso a través del lenguaje de consulta estructurado de secuela o a través de herramientas. Herramientas gráficas como Tableau es una muy popular en estos días, y eso es lo que hace un analista de datos. Consultan grandes conjuntos de datos usando cosas como tableau. Esa es la diferencia entre un analista de datos en un científico de datos. En realidad podría estar escribiendo código para proporcionar para realizar o técnicas avanzadas sobre datos que bordean en un I, a diferencia de sólo usar herramientas para extraer gráficos y relaciones de un almacén de datos . Y es un problema muy complicado. Ya sabes, En Amazon, teníamos todo un departamento para data warehousing que se encargó de estas cosas a tiempo completo, y nunca tuvieron suficiente gente, te
puedo decir que es un gran trabajo, ya
sabes, hay muchos retos en hacer data Warehousing uno es la normalización de datos. Por lo que hay que averiguar cómo a todos los campos en estos diferentes datos. Las fuentes realmente se relacionan entre sí. ¿ Y cómo me aseguro de que una columna en una fuente de datos sea comparable a una columna de otra fuente de datos y tenga el mismo conjunto de datos a la misma escala utilizando la misma terminología? ¿ Cómo trato con los datos que faltan? ¿ Cómo trato con datos corruptos o, ya
sabes, datos de atípicos o de robots y cosas así? Todos retos muy grandes. Mantener esos datos alimenta también un problema muy grande. Mucho puede salir mal cuando estás importando toda esta información a tu data warehouse, especialmente. Tenemos una transformación muy grande que necesita suceder para llevar los datos brutos seguros de Weblogs a una tabla de base de datos de estructura real que podría importarse a su
almacén de datos . escalado también podría volverse complicado cuando se trata de un almacén de datos monolítico. Ya sabes, eventualmente tus datos serán tan grandes que hubo transformaciones mismas comienzan a convertirse en un problema, y esto comienza a meterse en todo lo de E l T vs CTL. Entonces hablemos primero de E. T. L fue eso de sentido para extraer, transformar y cargar. Y ahí es donde la forma convencional de hacer data warehousing. Entonces básicamente, primero extraes los datos que quieres de los sistemas operativos que quieres. Entonces, por ejemplo, podría extraer todos los registros Web de nuestros servidores Web cada día que necesito transformar
toda esa información en una tabla de base de datos estructura real que puedo importar a mi
almacén de datos . Por lo que esa etapa de transformación podría pasar por cada línea de la de esos registros de servidor Web extraer transformar eso en una tabla nacional donde estoy arrancando de cada
línea Weblog webs . Ya sabes, cosas como la Sesión I D y qué página miraban y a qué hora era y cuál era la referencia. Y cosas así. Y puedo organizar eso en una estructura tabular que luego puedo cargar en el propio
almacén de datos como una tabla real en la base de datos. Entonces, a medida que los datos se hacen cada vez más grandes, ese paso de transformación puede convertirse en un problema real. Ya sabes, piensa en cuánto trabajo de procesamiento se requiere para pasar por todos los logs de la Web como Google o Amazon o cualquier sitio web grande, y transformar eso en algo que una base de datos pueda ingerir. Eso en sí se convierte en un reto de escalabilidad y algo que puede introducir, ya
sabes, problemas de
estabilidad a toda la tubería de data warehouse. Entonces ahí es donde
entra el concepto de E. L. T. L.
T., y como que le voltea todo en la cabeza. Dice. Bueno, ¿y si no usamos una instancia enorme de oráculo? ¿ Y si, en cambio, utilizamos algunas de estas técnicas más nuevas que nos permitan tener una base de datos más distribuida sobre un clúster de Hadoop y que nos permita tomar el poder de estas bases de datos distribuidas. Ya sabes, estas cosas construidas sobre Hadoop como alto para chispa o un mapa reducen y usan eso para realmente hacer la transformación después de que se haya cargado. Entonces la idea aquí es que vamos a extraer la información que queremos, como hacíamos antes,ya
sabes, ya
sabes digamos, de un conjunto de registros del servidor Web. Pero luego vamos a cargar eso directamente en nuestro repositorio de datos, y vamos a usar el poder del propio repositorio para realmente hacer la transformación en su lugar. Entonces la idea aquí es en lugar de hacer un proceso offline para transformar mis weblogs como ejemplo en un formato estructurado, solo
voy a chupar esos como archivos de texto sin procesar y pasar por ellos una línea a la vez, usando el poder de algo así como Hadoop para realmente transformar esos en un formato más estructurado que luego puedo consultar a través de toda mi solución de data warehouse. Entonces cosas como colmena te permiten alojar una base de datos masiva en un clúster de Hadoop. Y hay cosas como una secuela de chispa que te permite también hacer. La consulta está en una secuela muy como almacén de datos de manera similar en un almacén de datos que en
realidad se distribuye en un clúster de Hadoop. También hay distribuir no data stores de secuela, segundo equerry usando chispa y mapa reducir. Y la idea de tres es que en lugar de usar una base de datos monolítica para un almacén de datos, tu lugar usa algo construido encima de Hadoop o algún tipo de clúster que
en realidad no sólo puede escalar el procesamiento y consulta de esos datos, sino también escalar la transformación de esos datos. Entonces de nuevo, primero extrajo datos crudos. Pero luego lo vamos a cargar en el sistema de data warehouse como está, y luego usar la potencia del data warehouse, que podría construirse en Hadoop para hacer esa transformación como tercer paso. Entonces puedo consultar las cosas juntas. Entonces es un proyecto muy grande, tema
muy grande. Ya sabes, almacenamiento de
datos es toda una disciplina y de sí misma. Y vamos a hablar de chispas amore en este curso para muy pronto. Que es una forma de manejar esta cosa. Eso es algo llamado secuela de Spark, en particular, eso es relevante. También, cosas como hive map reducen las técnicas de big data en general que son más modernas que podemos cubrir, y hay otros cursos que ofrezco en chispa y mapa reducir. Eso te dará más visión de esta casa de un curso gratuito sobre conceptos básicos del big data. Se puede echar un vistazo, um, pero hay mucho que aprender sobre su. Entonces de nuevo, el concepto global, sin embargo, es si te mueves de una base de datos monolítica construida sobre Oracle o mi secuela a una de estas bases de datos distribuidas más modernas construidas sobre Hadoop. Puedes tomar esa etapa de transformación y realmente hacerlo después de haber cargado en los datos sin procesar a diferencia de antes. Y eso puede terminar siendo más simple y más escalado y aprovechando la potencia de los clústeres
informáticos grandes que están disponibles en la actualidad. Entonces eso es E T. L vs CLT. Algo así como la forma heredada de hacerlo. Antes, teníamos muchos clústeres por todo el lugar y la computación basada en la nube frente a una forma que tiene
sentido hoy cuando sí tenemos grandes nubes de computación disponibles para transformar grandes conjuntos de datos. Ese es el concepto. Entonces otra vez, e t l tipo de la vieja escuela forma de hacerlo. Transformas un montón de datos fuera de línea antes de importarlos y cargarlos en un almacén de
datos gigante . datos monolítica. Pero las técnicas de hoy con bases de datos basadas en la nube y Hadoop y colmena y chispa y mapa reducen en realidad puedes hacerlo un poco más eficientemente y tomar el poder de un clúster para realmente hacer ese paso de transformación después de haber cargado los datos brutos en su almacén de datos. Entonces esto realmente está cambiando el campo. Es importante que lo conozcas de nuevo. Hay mucho más que aprender sobre este tema, así que los animo a explorar más sobre este tema. Pero ese es el concepto básico, y ahora ya sabes de qué está hablando la gente cuando hablan de E T l vs E L T.
54. Aprendizaje por refuerzo: Nuestra siguiente parada es divertida. Aprendizaje de refuerzo, y en realidad podemos usar esta idea con un ejemplo de Pac Man. En realidad podemos crear un agente Pacman poco inteligente que pueda jugar el juego Pac Man realmente bien por sí mismo. Y te sorprenderás de lo simple que es la técnica para construir los smarts detrás de este inteligente Pac Man. Echemos un vistazo. Hablemos de aprendizaje de refuerzo. Esto es una especie de, ah, poco concepto
divertido aquí se puede pensar en términos del juego Pac Man, uno de mis favoritos de todos los tiempos. Entonces la idea detrás del aprendizaje de refuerzo es que tienes algún tipo de agente en este caso , Pacman, que explora algún tipo de espacio. Y en nuestro ejemplo, ese espacio será el laberinto en el que está Pac Man. Y según
va, aprende el valor de los diferentes cambios de estado dentro de diferentes condiciones. Entonces, por ejemplo, aquí el estado de Pac Man podría definirse por el hecho de que tiene un fantasma al sur y un muro al oeste y espacios vacíos al norte y al este, y eso podría definir el estado actual de Pac Man y los cambios de estado que puede tomar
sería moverse en una dirección determinada, y luego puedo aprender el valor de ir en cierta dirección. Entonces, por ejemplo, si me trasladara al norte, realmente no pasaría
nada. No hay recompensa real asociada a eso. Pero si me moviera hacia el sur, me destruiría el fantasma, y eso será un valor negativo. Por lo que a medida que voy y exploro todo este espacio, puedo construir un conjunto de todos los estados posibles que Pacman transmite y los valores asociados con mover una dirección determinada en cada uno de esos estados. Y eso es aprendizaje de refuerzo. Entonces a medida que explora todo este espacio, afina los valores de recompensa para un estado dado, y luego puede usar esos valores de recompensa de tiendas para elegir la mejor decisión a tomar, dado un conjunto actual de condiciones. Por lo que además de Pac Man, ese también es un juego llamado ratón gato. Ese es un ejemplo que usar comúnmente que se verá más adelante. Y el beneficio de esta técnica es que una vez que hayas explorado todo el conjunto de posibles estados en los que puede estar tu agente, puedes tener muy rápidamente un muy buen rendimiento cuando ejecutas diferentes iteraciones de esto. Entonces ya sabes, básicamente
puedes hacer un PacMan inteligente ejecutando refuerzo, aprendiendo y dejándolo explorar los valores de las diferentes decisiones que pueden tomar en diferentes estados y luego almacenando esa información a muy rápidamente tomar la decisión correcta , dado un estado futuro que ve en un conjunto desconocido de condiciones. Por lo que una implementación muy específica del aprendizaje de refuerzo se llama Q learning y esto formaliza lo que acabamos de hablar un poco más. Entonces de nuevo, se empieza con un conjunto de estados ambientales que vamos a llamar a eso s y posibles Estados Aire. Ya sabes, las condiciones circundantes de los agentes. Así está ahí Ah, fantasma a mi lado. ¿ Hay una pastilla de poder frente a mí? Cosas así y tengo un conjunto de posibles acciones que puedo tomar en esos estados. Vamos a llamar a ese conjunto de acciones A y en el caso de Pac Man, hace posibles acciones se mueven arriba, abajo, izquierda o derecha, y luego tenemos un valor para cada par de acciones estatales que llamará Q. Eso es por eso que lo llamamos Q learning Así que para cada estado, ya
sabes, un determinado conjunto de condiciones que rodean a Pacman dada acción tendrá un valor. P. Por lo que subir podría tener un valor dado. Que mover hacia abajo podría tener un valor Q negativo si significa encontrarse con fantasma, por ejemplo, así que empezamos con un valor Q de cero para cada estado posible en el que podría estar Pac Man. Y mientras Pacman explora asombro como le suceden cosas malas a Pac Man, reducimos el valor Q para el estado en el que estaba Pac Man en el tiempo. De acuerdo, entonces si Pac Man termina siendo comido por un fantasma, penalizamos lo que sea que hiciera en ese estado actual. Y como le pasen cosas buenas a Pac Man mientras come una píldora de poder o come un fantasma aumentará el valor Q por esa acción para el estado en el que se encontraba. De acuerdo, y entonces lo que podemos hacer es usar esos valores Q para informar a las futuras elecciones de Pac Man y una especie de construir un pequeño agente inteligente que pueda funcionar de manera óptima y hacer una voluntad perfecta. Pacman. Entonces volviendo a un verdadero ejemplo aquí algunas acciones estatales aquí, Pac Man, podríamos definir el estado actual de Pac Man por el hecho de que tiene un muro hacia Occidente, espacio
vacío al norte y este de Ghost hacia el sur, y podemos ver las acciones que puede tomar. Sabes que en realidad no puede moverse a la izquierda en absoluto, pero puede moverse hacia arriba, hacia abajo o hacia la derecha, y podemos asignarle valor a todas esas acciones. Entonces al subir o a la derecha, nada realmente pasa en absoluto. No hay píldora de poder ni puntos que consumir, pero si se va a la izquierda, ese definitivamente es un valor negativo. Por lo que se puede decir, para el estado, dado por las condiciones actuales que Pac Man está rodeado de moverse hacia abajo sería una muy mala opción. Debe haber un valor Q negativo para esa izquierda en movimiento simplemente no se puede hacer todo y moverse hacia arriba o hacia la derecha o simplemente neutral. Por lo que el valor clave seguiría siendo cero para esas opciones de acción para ese estado dado. Ahora, también
puedes mirar un poco hacia adelante para que sea aún más inteligente, Agente. Por lo que en realidad estoy a dos pasos de conseguir una pastilla de poder aquí. Entonces como Pac Man iba a explorar este estado, si yo fuera a golpear el caso de comer esa píldora de poder en el siguiente estado. En realidad podría factorizar eso en el Valle Q para el estado anterior. Y ya sabes, si solo tienes algún tipo de factor de descuento basado en lo lejos que estás a tiempo, cuántos pasos de distancia estás, puedes factorizar eso todo en conjunto. Entonces esa es una forma de construir en realidad un poco de memoria en el sistema. Entonces el valor Q que experimenté cuando consumí esa píldora de poder en realidad podría dar un impulso a los valles que anteriores que me encontré en el camino. Entonces esa es una forma de hacerte aprender aún mejor. Entonces un problema con eso tenemos en el aprendizaje de refuerzo es el problema de exploración. ¿ Cómo me aseguro de que cubro eficientemente todos los diferentes estados y acciones dentro esos estados durante la fase de exploración? Así que especie de los enfoques ingenuos para elegir siempre la acción para un estado dado con el valle que
más alto que he computado hasta ahora. Y si hay un empate, solo elige al azar por lo que inicialmente, todos mis valles de cue podrían ser cero, y yo solo escogeré acciones que aleatorias que primero y a medida que empiezo a obtener información sobre mejores valores de cue para un dadas acciones y dados estados, empezaré a usar esas a medida que vaya. Pero eso termina siendo bastante ineficiente, y en realidad puedo extrañar mucho pasado de esa manera si solo me ataba a este rígido algoritmo de elegir siempre el mejor Q Valley que han computado hasta ahora. Entonces una mejor manera de introducir un poco de variación aleatoria en mis acciones mientras estoy explorando. Por lo que llamamos a eso término de Epsilon. Entonces tenemos algo de valor que hago rodar un dado. Tengo un número aleatorio, y si termina siendo menor en este valor de Epsilon, realidad no
sigo el valor Q más alto. Yo no hago lo que tiene sentido. Simplemente tomo un camino al azar para probarlo y ver qué pasa. Y eso me permite explorar una gama mucho más amplia de posibilidades,
una gama mucho más amplia de acciones para una gama más amplia de estados de manera más eficiente durante esa etapa de
exploración. Entonces lo que acabamos de hacer se puede describir en términos matemáticos muy fantásticos , ya
sabes, conceptualmente es bastante simple exploro algún conjunto de acciones que podría tomar para un determinado conjunto de estados. Yo uso eso para informar a las recompensas asociadas con la acción dada para conjunto dado de estados. Y después de que se haga esa exploración, puedo usar esa información esos valores Q para navegar inteligentemente por un
laberinto completamente nuevo , por ejemplo. De acuerdo, pero esto también se puede llamar un proceso de decisión de Markov, así que puedo, ah, mucha ciencia de datos solo está asignando nombres fantásticos, intimidantes, conceptos
simples. Y hay una tonelada de eso en el aprendizaje de refuerzo. Entonces si buscas la definición de los procesos de decisión de Markov, es un marco matemático para el modelado, decisiones, la toma de decisiones. ¿ Qué acción tomamos, dado un conjunto de posibilidades para determinado estado en situaciones donde los resultados aire parcialmente aleatorio tipo de como nuestra caducidad aleatoria ahí, y en parte bajo el control de un tomador de decisiones, el tomador de decisiones siendo nuestros Q valores que computamos? Por lo que los procesos de decisión M DPS Markov son una forma elegante de describir nuestro algoritmo de exploración que acabamos de describir para un aprendizaje de refuerzo, y la notación es incluso estados similares o aún describe su S y S. Prime es el siguiente afirmar que nos encontramos. Tenemos funciones de transición de estado que se definen como pieza de un estado perdonado de SNS prime, y tenemos nuestros valores Q son básicamente representantes o función de recompensa, por lo que a son algún valor para un sns prime dado. Por lo que pasar de un estado a otro ha dado reciente recompensa asociada a él, y pasar de un estado a otro está definido por una función de transición de estado. Entonces otra vez describiendo lo que acabamos de hacer. Sólo una notación matemática y él más fantasioso sonando palabra Markov procesos de decisión. Y si quieres sonar aún más inteligente, también
puedes llamar a un proceso de decisión de Markov por otro nombre. Un discreto proceso de control estocástico del tiempo. Vaca santa. Eso suena inteligente, pero el concepto en sí es lo mismo que acabamos de describir. Por lo que aún más palabras de fantasía programación dinámica se pueden utilizar para describir. Lo que acabamos de hacer está bien, wow, eso suena como computadoras de inteligencia artificial, programarse ellos mismos, Terminator dos, cosas de
Skynet. Pero no, es justo lo que acabamos de hacer. Entonces si buscas la definición de programación dinámica, es un método para resolver un problema complejo, como crear un hombre Pac inteligente. Eso es un bastante complicado y resulta al dividirlo en una colección de
sub problemas más simples . Entonces, por ejemplo, ¿cuál es la acción óptima a tomar para un estado dado en el que podría estar Pac Man? Hay muchos estados diferentes en los que podría encontrarse Pac Man. Pero cada uno de esos estados representa un sub problema más simple donde hay un conjunto limitado de opciones que podría hacer. Y hay una respuesta correcta para la mejor jugada para hacer y almacenar sus soluciones. Esas soluciones siendo los valores Q que asocié con cada acción posible en cada estado, idealmente usando una estructura de datos basada en memoria. Bueno, por
supuesto, necesito almacenar esos valores Q y asociarlos con el estado de alguna manera la derecha la próxima vez ocurra
el mismo sub problema la próxima vez que Pac Man esté en un estado dado que tengo un conjunto de valores
Q. Cuatro. En lugar de volver a computar su solución cuando simplemente busca hacia arriba, la solución previamente calculada que el valor Q ya tiene desde la etapa de exploración, ahorrando
así tiempo de cómputación a expensas de un modesto espacio de almacenamiento de expansión. Eso es exactamente lo que acabamos de hacer con el aprendizaje de refuerzo. Tenemos una fase de exploración complicada que encuentra las recompensas óptimas ID asociado con cada acción estado perdonado y fue, tenemos esa tabla de la acción correcta para tomar estado perdonado. Podemos usar eso muy rápidamente para que nuestro Pacman se mueva de una manera óptima y todo un
laberinto nuevo que no ha visto antes. Por lo que el aprendizaje de refuerzo también es una forma de programación dinámica. Wow. Entonces, para recapitular, podrías hacer un agente inteligente de PacMan solo tener su semi aleatoriamente explorar diferentes opciones de movimiento dadas diferentes condiciones donde esas elecciones o acciones, esas condiciones o estados, hacemos un seguimiento de la recompensa de penalización asociada a cada acción o estado a medida que vamos y en realidad
podemos descontar, ya
sabes, retrocediendo múltiples pasos si quieres hacerlo aún mejor. Y luego almacenamos esos valores Q que terminamos asociando con cada estado. Y podemos usar eso para informar sus futuras elecciones para que pudiéramos entrar en un maíz completamente nuevo y tener un pacman realmente inteligente que pueda evitar a los fantasmas y comerlo con bastante eficacia todos los suyos. Concepto bastante sencillo. Muy poderoso, sin embargo, Y también puedes decir que entiendes un montón de términos de fantasía porque todo se llama lo
mismo. Que el aprendizaje, refuerzo, aprendizaje El proceso de decisión de Markov es la programación dinámica todo atado en el mismo concepto. Entonces creo que es bastante genial que en realidad puedas hacer una especie de
Pacman artificialmente inteligente a través de una técnica tan simple, y realmente funciona. Si quieres ir a mirarlo con más detalle, aquí te dejamos algunos ejemplos que puedes ver. Tiene un código fuente real con el que puedes mirar y potencialmente jugar. Por lo que hay una caja de herramientas de proceso de decisión de Python Markov que conoces y la envuelve. En toda esa terminología de la que hablamos, hay un ejemplo. Se puede ver un ejemplo de trabajo del juego del gato y el ratón, que es similar, y en realidad hay un ejemplo de Pacman que también puedes ver en línea. Eso vincula más directamente de lo que estábamos hablando, así que siéntete libre de explorar estos enlaces y aprender aún más al respecto. Pero eso es el aprendizaje de refuerzo en pocas palabras. Entonces eso es refuerzo. Aprender de manera más general, es una técnica útil para construir un agente que pueda navegar a su paso por un posible conjunto
diferente de estados que tienen un conjunto de acciones que podrían estar asociadas con cada estado . Por lo que hemos hablado de ello mayormente en el contexto de un juego de laberinto. Pero piensas de manera más amplia. Y siempre que tengas una situación en la que necesites predecir el comportamiento de algo, dado un conjunto de condiciones actuales y un conjunto de acciones que pueden tomar refuerzo, aprendizaje y Q learning podría ser una forma de hacerlo, así que ten eso en mente.
55. Paso a mano con Q-Learning: por lo que refuerzo El aprendizaje se ha vuelto mucho más popular en los últimos años ya que la emoción por el aprendizaje
automático en general ha crecido. Y afortunadamente, hay un nuevo paquete llamado Open Ai Jim. Eso hace que sea bastante fácil para ti configurar casos de prueba para el aprendizaje de refuerzo. Entonces, en realidad hagamos algunas manos sobre la práctica usándola. En primer lugar, sin embargo, necesitamos instalar a Jim. Entonces para hacer eso, ve a tu prompt de anaconda en Windows o tu terminal en Lennox o Mac OS y simplemente escribe pip Instalar Jim. Asegúrate de controlar Ver fuera de cuaderno de Júpiter. Si eso sigue funcionando primero, claro. Y Jim en realidad funciona mejor en máquinas Lenox que en Windows. Las máquinas te permitirán hacer cosas como el espacio de juego, los invasores y el entrenamiento, cómo jugar a los invasores del espacio y doom o las cosas gráficas de video gamey en Windows. Va a ser más limitado porque no tiene el acceso al sistema gráfico, pero como verás, aún
podemos usarlo. Está bien, así que tenemos al menos la versión de huesos desnudos de Jim instalada aquí. Adelante y empecemos nuestro cuaderno. Júpiter un cuaderno y por supuesto, ya
estoy en la carpeta del curso ML donde están mis materiales del curso, y busca el cuaderno de aprendizaje Q. Ahí está. Y veamos si funciona. De acuerdo, entonces con lo que vamos a jugar aquí es con lo que se llama el problema del taxi tendrá más sentido cuando lo veamos aquí. Pero básicamente estamos modelando un taxi auto conducido que puede recoger pasajeros en uno de un conjunto de ubicaciones fijas, dejarlos en otro lugar y tratar de llegar en la menor cantidad de tiempo evitando obstáculos. Entonces básicamente vamos a entrenar a nuestro taxi sobre cómo conseguir pasajeros de un punto a otro de la manera más rápida posible, utilizando el aprendizaje de refuerzo. Entonces empecemos importando el ambiente que necesitamos importará el paquete de gimnasio que
acabamos de instalar y al azar nos daremos una semilla aleatoria consistente. Por lo que cada vez obtenemos los mismos resultados, y haremos que nuestro entorno llamado Taxi V a eso solo contenga especie de las reglas de este juego, si se quiere, sobre cómo funciona todo. Llamaremos a eso calles modelo resultantes y luego lo renderizaremos. Podemos visualizar cómo se ve este entorno,
así que sigamos adelante y cambiemos Entrar y ahí lo tenemos. Entonces aquí te explicamos cómo interpretar lo que estás viendo aquí. Básicamente las letras RGB y por qué son qué corresponsal? Rojo, verde, azul y amarillo o algo así. Lo que quieras. Esos airean las ubicaciones válidas de pick up y drop off. Por lo que un pasajero puede optar por ser recogido en cualquiera de esos lugares que puedan optar por ser dejados un día. Esas ubicaciones son taxi necesita aprender a conseguirlas de un punto a otro lo rápido posible. Ahora bien, cualquiera que sea la letra sea coloreada, azul es donde necesitamos recoger a alguien y cada vez que la letra es coloreada en Magenta indica a dónde quiere ir ese pasajero. Vale, entonces recuerda que la letra azul es de donde venimos. Las letras magenta a donde vamos. Entonces en este caso, nuestros clientes siendo recogidos en B y quieren ir a G. Ahora esas líneas sólidas representan muros, por lo que el taxi no puede cruzar esas líneas. Eso es como,ya
sabes, ya
sabes, el borde de la carretera ahí o lo que sea. Y el rectángulo relleno que ah anaranjado Plaza Amarilla es en realidad el taxi en sí. Eso representa donde está ahora el taxi, cuando está vacío, será amarillo. Y cuando está verde, eso significa que es, llevar a un pasajero. Entonces tenemos este pequeño juego como taxi virtual aquí, y necesitamos entrenar a nuestro taxi. Cómo el dedo del pie juega el juego. Entonces tenemos un poco de mundo aquí, y lo hemos llamado calles. Es básicamente una grilla de cinco por cinco, y podemos definir el estado de este mundo en cualquier momento, con apenas unas cosas donde está el taxi, que es una de 25 ubicaciones posibles cuál es el destino actual, que es uno de los cuatro posibilidades y donde se encuentra el pasajero, que es de cinco posibilidades. En realidad, podría ser ya sea uno de los destinos o dentro del taxi por posibilidad 1/5. Entonces en total, eso funciona a 500 posibles estados que podrían describir nuestro mundo en cualquier momento dado. Ese es un número manejable ahí ahora para cada posible estado, cada uno de esos cinco estados. Son seis posibles acciones asociadas a ese estado, y necesitamos saber cuál de esas acciones tiene sentido para cada estado, ¿
verdad? Por lo que para cada estado, podemos movernos hacia el sureste, oeste hacia el norte. Podríamos recoger a un pasajero o podríamos dejar al pasajero. Entonces como nuestro taxi virtual aquí está explorando este entorno y aprendiendo al respecto, necesitamos básicamente asociar recompensas y sanciones ya que hace las cosas ya que aplica diferentes acciones a estos diferentes estados. Entonces los definiremos así. Si nuestro taxi dejó con éxito a alguien de donde pertenece, te
daremos una recompensa de 20 puntos. Si das un paso de tiempo mientras conduces un pasajero pero no lo dejas caer, obtienes una penalización de un punto negativo que servirá para asegurarte de que recompensemos el camino más
corto a lo largo del tiempo. Y si haces algo malo, como recoger o dejar caer en un lugar ilegal, eso te da una penalización negativa de 10 puntos para que no tenga ningún smarts incorporado para saber lo que sabes antes de tiempo, donde te se les permite recoger y dejar a los pasajeros. Tiene que aprender eso, también. Y en cuanto a las paredes van bien, sí, sabe de las paredes. Simplemente no permitimos que eso suceda en absoluto. No se puede cruzar el muro pase lo que pase. Eso es físicamente imposible. Muy bien, así que empecemos con un estado inicial. Nuestro estado inicial aquí solo será con un taxi en la ubicación x dos y ¿por qué tres? El pasajero será una ubicación de recogida número dos, y el destino será en la ubicación ceros. Encodificamos ese estado como la ubicación del taxi, la A a tres pasajeros y la ubicación de destino. Estableceremos nuestras calles, quedaremos en eso y lo renderizaremos para poder visualizarlo de nuevo. Y ahí lo tienes. Ordenar los taxis en esa ubicación inicial a tres. El lugar inicial de recogida de pasajeros indicado por la letra Azul es ubicación a, y quieren ir a Ubicación cero, cual es coloreada en magenta. Entonces básicamente quieres dedo del pie. Nuestro taxi está empezando de nuevo por aquí. Tiene que recoger a un pasajero aquí abajo, y quiero dejarlos ahí arriba. Muy bien, echemos un vistazo a nuestra tabla de recompensas iniciales para ese estado inicial. Entonces, ¿cómo interpretas en realidad la mesa de recompensas aquí ahora? Cada rosa va a corresponder a una acción potencial en este estado? Como dijimos, existen seis acciones potenciales para cada estado para que puedan moverse hacia el sur, norte, oriente o poniente, recoger o caer y los cuatro valores en cada fila o las probabilidades asignadas a esa acción y luego el siguiente estado que resulta de esa acción. llevó
a cabo la recompensa por esa acción y si esa acción indicaba una caída exitosa . Entonces, por ejemplo, podemos ver que trasladarnos al norte desde este estado nos pondría en el estado número 368. Se incurriría en una pena de negativa por apenas tomar un paso temporal. Y no da como resultado una caída exitosa e inicialmente son las probabilidades son todos un punto. Ah, porque aún no hemos aprendido nada. Vamos a ocuparnos de eso. Entonces, en realidad hagamos algo que aprendiendo aquí como hablamos de las diapositivas. Lo primero que tenemos que hacer es capacitar a nuestro modelo. Por lo que a un nivel alto, vamos a entrenar 10 mil carreras de taxis simuladas y por cada corrida atravesará el tiempo con un 10% de probabilidad de solo hacer un paso exploratorio aleatorio en lugar de usar los
valores Q aprendidos para guiar nuestras acciones. Entonces básicamente tenemos un factor de exploración del 10% aquí que estamos usando para hacer la
fase de aprendizaje rápidamente, caminar por el código aquí. Ah, empezamos definiendo una tabla que, que es una pira entumecida, A y que contiene ah dos matriz D que representa cada estado y acción posible dentro nuestro espacio virtual aquí e inicializar. ¿ Esos valores Q son todo el cero? Tenemos algunos hiper parámetros aquí es,
bueno, bueno, la tasa de aprendizaje. Eso es básicamente lo rápido que tratamos de aprender factor de descuento. Todos estos pipa en esa ecuación de aprendizaje Q que miramos en las diapositivas y nuestra tasa de
exploración, que, como dijimos es del 10% y el número de bloques F que iban a entrenar sobre sus 10,000. Entonces vamos por encima de las 10 mil carreras de taxis. Aquí restablecemos nuestro campo de juego virtual, y si bien no estamos bien, primero, dibuja un número aleatorio entre cero y uno. Si ese número es menos tasa de caducidad central, que es 10.1, entonces en realidad solo exploraremos una acción aleatoria. De lo contrario, nos limitaremos a ir con el valor Q más alto asociado a las acciones que
tenemos a nuestra disposición . De acuerdo, entonces ya que la exploración es 0.1, eso es básicamente un 10% de probabilidad de que un número aleatorio sea menor que ese en cuyo caso solo
elegimos una acción de muestra aleatoria. De lo contrario, vamos con el valor Q máximo disponible para las acciones que tenemos a la mano. Entonces llamamos ST Starts pisó, en realidad aplicamos esa acción que nos devuelve el siguiente estado que resulta de esa acción . El premio resultante, ya sea que terminemos o no en ese punto en el que dejamos con éxito a nuestro pasajero y algo más de información también. En ese punto, necesitamos realmente hacer la ecuación de aprendizaje Q. Esta es básicamente la versión de código de la ecuación que miramos en las diapositivas. Apenas estaban echando un vistazo al valor Q actual de Thea que uno del siguiente estado y luego computando el nuevo valor Q, basado en la ecuación de aprendizaje Q que toma en
cuenta la tasa de aprendizaje y el factor de descuento . Y luego asignamos la tabla Q para ese estado dado en acción al recién aprendido valor Q , y ponemos nuestro estado al siguiente estado y lo hacemos todo de nuevo hasta que realmente terminemos y en realidad nos bajamos para un pasajero y lo haré completar una sola corrida del taxi, y luego lo hacemos 10 mil veces,
así que esto podría tardar un poco de, Ah, un poco de tiempo en correr. Vamos a probarlo en realidad. Pincharemos aquí y cambiaremos, entraremos y solo miraremos cómo se va. Qué lástima que tardara unos segundos. Eso es bastante impresionante, ¿verdad? Está bien, así que veamos qué tenemos. Por lo que ahora deberíamos haber construido una tabla de valores Q que podamos utilizar rápidamente para determinar la siguiente acción
óptima para cualquier estado dado. Entonces echemos un vistazo. Echemos un vistazo a la linda mesa para nuestro estado inicial de donde empezamos. Por lo que aquí se puede ver que el valor Q más bajo corresponde a la acción. Aquí está bastante cerca, pero corresponde a la acción. Ve al oeste, resulta, así que eso tiene sentido. Si miras hacia atrás nuestro estado inicial, Uh, sí, quiero decir, queremos ir por ese camino, ¿
verdad? Entonces, como, queremos recoger a nuestro tipo alrededor de esta pared como la única dirección que tiene sentido es ir al oeste. Por lo que parece que funcionó hasta ahora. Eso es bastante guay. Está bien, así que vamos a verlo en acción. Algo genial de open ei Jim es que tipo de te permite animar lo que está pasando, y es realmente divertido de ver. Entonces lo que vamos a hacer en este bloque de código, realidad
es simular Ah, 10 viajes diferentes aquí en cada paso lo harán, para cada viaje se restablecerá el estado de las calles, y sólo vamos a caminar por él un paso a la vez, aplicando cualquier acción que aprendimos de esa tabla aprender que. Entonces no hay aprendizaje que tenga que suceder aquí, y que ya hemos aprendido la acción óptima para cada estado posible que pudiéramos tener en este mundo. Podemos guiar muy rápidamente a nuestro taxi por cualquier situación dada en absoluto. Entonces ese es realmente el poder de Q learning. Ya sabes, una vez que hayas aprendido que la tabla Q realmente potenciando una IA para pasar por tu
entorno virtual es súper rápido y súper simple, Y la parte realmente divertida aquí es que podríamos llamar a ST Stop renderizado, en realidad animan a ese taxi moviéndose a medida que avanzamos. Entonces veamos. Ahí va, recogiendo a nuestra pasajera abajo a ah, por qué ubicación lo recogió y lo entregó a G cool y estamos en el viaje número tres ahora recogiendo de nuevo a su pasajero. Está en la caja verde ahora. Está en el taxi y lo dejaron con éxito, comenzando de nuevo, recogiendo a un pasajero en la ubicación azul y bajando a Magenta lo más rápido
posible . Esto es realmente divertido. Entonces otra vez, cogimos a un pastor a g, y ahora lo dejamos ahí abajo. ¿ Por qué comenzó? Tomó un camino realmente rápido. Entonces esto en realidad parece funcionar. Chicos, ¿qué guay es eso? Por lo que en realidad hemos entrenado un taxi virtual de cómo encontrar el camino más rápido entre dos puntos
cualquiera para recoger a un pasajero y dejarlo en un lugar dado. tan divertidas. Hemos enseñado a un pequeño vehículo virtual cómo navegar por este mundo por su cuenta. Eso son cosas divertidas, chicos. Simplemente puedes ver esto para siempre. Pero de todos modos, si quieres jugar con esto, Samora definitivamente te desafía a hacerlo. Eso intenta modificar este pequeño bloque experimental aquí arriba para hacer un seguimiento del número total de veces pasos que toma para realmente conseguir a través de los 10 viajes. Y eso en realidad será una métrica útil en cuanto a lo bueno que es nuestro sistema básicamente si
pasa por esos 10 viajes en la mínima cantidad de tiempo, eso implica que está haciendo un trabajo realmente bueno, ¿
verdad? Por lo que si realmente quieres muestrear a lo largo de un mayor número de viajes, puedes quitar esa función de sueño ahí para que funcione más rápido, y eso te permitirá atropellar más muestras más rápidamente. Por lo que una vez que tengas esa métrica en lugar de cuántos pasos toma para atravesar esos viajes , podrías empezar a jugar con esos hiper parámetros. Así que intenta ver qué tan bajo puedes hacer que el número de caja F vaya antes de que el modelo empiece a sufrir . ¿ De verdad necesito 10,000 pasos de entrenamiento? ¿ Se puede llegar a un mejor Valle para la tasa de aprendizaje o el factor de descuento o los factores de
caducidad para que la capacitación sea aún más eficiente? ¿ Esos factores pueden influir en las épocas tan maney? En realidad necesitas obtener un buen resultado. Por lo que estas cosas airean buenas para obtener una sensación intuitiva y ver cómo esos valores influyen en tu modelo resultante. El índice de exploración en particular va a ser interesante con el que experimentar. Entonces si solo tienes tiempo para jugar con un valor. Yo recomendaría esa. Ese es un pequeño ejemplo divertido, ¿eh? Entonces eso es que aprender en acción capacitando a un taxi virtual. Y ahora realmente has aplicado el aprendizaje de refuerzo en un ejemplo real.
56. Comprender una matriz de confusión: Algo que podrías encontrar es el concepto de matrices de confusión. Entonces vamos a sumergirnos en qué se trata todo eso. ¿ Para qué sirve la matriz de confusión? Bueno, la cosa es que a veces la precisión no cuenta toda la historia y una matriz de confusión puede
ayudarte a entender los resultados más matizados de tu modelo. Por ejemplo, una prueba para una enfermedad rara podría ser 99.9% precisa solo adivinar, no, todo el tiempo digo que no la tienes. Un modelo que hace eso se vería en papel para tener muy alta precisión, pero en realidad, es peor que inútil, ¿verdad? Por lo que hay que entender con un caso como este, lo importante que es un verdadero positivo o verdadero negativo. Cuán importante es un falso positivo o falso negativo para lo que estás tratando de lograr. Y poder medir qué tan bueno es tu modelo que cada uno de esos casos. Y una matriz de confusión es solo una forma de ilustrar esos matices en la precisión de tu modelo. Uno podría verse así. Este es el formato general de la misma. Entonces imagina que tenemos una situación binaria en la que solo estamos prediciendo sí o no. Al igual que tengo esta enfermedad o no tengo esta enfermedad de identificación o doy positivo para este medicamento, ¿verdad? No den positivo para este medicamento. Esta imagen tiene un gabinete o esta imagen no tiene un gabinete. Este es el formato de cómo se vería. Entonces se ve que en las filas tenemos
valores pronosticados y en las columnas tenemos valores reales. Así que pasa por ello. Si predijimos que algo es cierto y realmente lo es, entonces eso es un verdadero positivo. Si predijimos que sí, pero en realidad es no, en realidad negativo. Eso será un falso positivo si lo predecimos, no, pero en realidad es sí y eso es un falso negativo. Y si predijimos que no y en realidad es no, eso es un verdadero negativo. Es decir, se pone un poco confuso, pero si piensas en lo que todo esto tiene sentido, ¿verdad? Una matriz de confusión real, estas celdas contendrán números reales de la frecuencia con su modelo realmente hizo eso en su conjunto de datos de pruebas. Por lo que ten en cuenta también que hay que poner atención a las etiquetas. No hay convención real sobre cómo se ordena esto. A veces verás predicciones aquí arriba y los valores reales por aquí. No solo saltes en asumir que una matriz de confusión dada es de cierto formato. Presta atención a cómo se etiqueta y asegúrate de entender lo que te está diciendo antes de sacar conclusiones de ello. Algo más que vale la pena señalar aquí es que tú sordo típicamente quieres tener la mayoría de tus valores aquí y aquí, ¿verdad? Entonces la diagonal aquí, si tu matriz de confusión es donde deberían estar la mayoría de tus resultados, es donde vive la precisión, ¿verdad? Entonces aquí es donde tengo un verdadero positivo. Aquí es donde tengo un verdadero negativo. Quieres que esos sean buenos números grandes y falsos negativos y falsos positivos sean números comparablemente bajos esperemos, ¿verdad? Por lo que un modelo preciso tendría números altos a lo largo de este valor diagonal aquí. Vamos a enchufar algunos números reales para ver cómo podría parecer eso. Entonces digamos que tengo un modelo de aprendizaje automático que está tratando averiguar si una imagen contiene una imagen de un gato o no. Si predijéramos que a tenía un gato y realmente sí tenía un gato que había estado 50 veces en mi set de pruebas. Pero a veces predije que era una capital, no
era un gato, era un perro o un pez o algo así. Y eso no han 5 veces, predijeron que eso no era de cuenta, pero realmente no era un gato. Eso había sido 10 veces este ejemplo. Y si dije que no era un gato adentro, realmente no era un gato que había sido un 100 veces en este caso. Entonces Así es justo como interpretas una matriz de confusión. Y hablaremos sobre cómo hacer métricas de estos datos que sean más útiles para el análisis. En breve. ocasiones verás matrices de confusión en un formato diferente donde realmente sumamos cosas en cada fila y columna también. Entonces eso es algo que podrías ver de vez en cuando. Todo eso es sumar cuántos nodos reales tenemos, cuántos sí reales tenemos, cuántos pronosticamos no tenemos y cómo predijo que sí como tenemos en total. Entonces sólo para que ya hayas visto ese formato antes, Así es como se ve. La parte interna de la misma sin embargo es justo la misma matriz de confusión que miramos antes. Y de nuevo, recordad, las cosas pueden
voltearse hasta donde están los valores pronosticados y los valores reales. Así que asegúrate de prestar atención a las etiquetas en estas cosas. Y ya sabes, ¿qué puedo decir? Las matrices de confusión pueden ser confusas. En ocasiones también las verás en este tipo de formato. Entonces tal vez tenemos aquí un modelo de clasificación multiclase para imaginar que
tenemos un sistema de reconocimiento de escritura a mano que está tratando de identificar a alguien escribiendo los valores del 0 al nueve. Entonces una matriz de confusión más complicada podría verse así, donde en lugar de solo sí, ninguna respuesta es que en realidad tenemos múltiples clasificaciones, pero funciona de la misma manera. Por lo que aquí hemos predicho etiquetas en este eje y etiquetas verdaderas en este eje. Entonces estamos diciendo que si predije algo era un cinco y realmente era un cinco, bueno ese tono de azul corresponde a algún número aquí. Entonces dos cosas que son diferentes en este ejemplo. En primer lugar, tenemos más de sí, no hay opciones aquí tenemos clasificación múltiple, por lo que nuestra matriz de confusión es más grande. Vamos a sumergirnos en otro ejemplo ahí solo para conducir ese hogar. Por lo que a veces predije que era uno, pero en realidad era un ocho que tiene una especie de azul más claro ahí. A lo mejor eso sucedió, ya sabes, 20 o más veces en este ejemplo. Y también estamos usando lo que se llama mapa de fuego. Entonces, en lugar de simplemente mostrar números en estas celdas individuales, estamos mapeando esos números a columnas donde la oscuridad de ese color corresponde a lo alto de un número que es. Esperarías ver una especie de línea oscura bajando por la diagonal aquí representando una buena precisión en verdaderos positivos y verdaderos negativos. Y algunos colores más moderados, más claros afuera aquí idealmente. Pero ese color se mapeará a un valor real y solo hace que sea fácil visualizar cómo se presenta tu matriz de confusión. Muy bien, tengan sentido, chicos, De eso se trata una matriz de confusión. Y puede ser un poco confuso, pero sólo mira un poco estos ejemplos y debería tener sentido para ti.
57. Medir Classifiers (Precisión, memorar: Hablemos de algunas métricas que puedes derivar de una matriz de confusión. Entonces volvamos a visitar a nuestro amigo la matriz de confusión otra vez, en este ejemplo particular de uno, tenemos valores reales bajando las columnas y valores pronosticados a través de las filas. Eso puede ser diferente. Pero en este formato, tenemos el número de verdaderos positivos en la esquina superior izquierda. El número de verdaderos negativos en la esquina inferior derecha, el número de falsos negativos en la esquina inferior izquierda, y el número de falsos positivos en la esquina superior derecha. ¿ De acuerdo? Así que asegúrate de entender dónde están tus verdaderos positivos y negativos,
dónde están tus falsos positivos y negativos cuando estás empezando a mirar una matriz de confusión. Y de nuevo, puede variar en función del diseño de la propia matriz de confusión. Empecemos con el recuerdo. Por lo que recordar se calcula como los verdaderos positivos sobre los verdaderos positivos más los falsos negativos. Deberías memorizar esto seriamente. Es necesario saber esto. Va también por otros nombres sólo para hacer las cosas más confusas. Por lo que también se conoce como sensibilidad, verdadera tasa positiva e integridad. Y la integridad tipo de escucha se remonta a su uso original en el mundo de la recuperación de información. Entonces es una buena opción de métrica cuando te importan mucho los falsos negativos, vale, así que la detección de fraudes es un gran ejemplo de donde podrías estar enfocando en recordar, porque un falso negativo en el mundo del fraude significa que algo fue fraude, pero no lo identificas como fraude. Tenías una transacción fraudulenta que fue señalada como estar perfectamente bien, ese es el peor resultado posible en su sistema que se supone que está detectando fraude, ¿verdad? Se quiere estar errando del lado de los falsos positivos y falsos negativos en ese caso. Así que recuerda, buena opción simétrica cuando te importan los falsos negativos. La detección de fraude siendo un ejemplo de eso, es verdaderos positivos sobre verdaderos positivos más falsos negativos. Hagámoslo real de un ejemplo aquí. Entonces en este ejemplo particular de una matriz de confusión, de nuevo, recuerdo es verdaderos positivos sobre verdaderos positivos más falsos negativos. Acabamos de tapar los valores de esta matriz de confusión. En este trazado particular, dos positivos serán cinco, falsos negativos serán 10. Entonces solo decimos 5 sobre 5 más 10, que es 5 sobre 15 o 1 tercio o 33.3,
33, 33 por ciento, ¿verdad? Entonces eso es recordar. Recuerda un compañero en el crimen es la precisión, y la precisión se computa como verdaderos positivos sobre verdaderos positivos más falsos positivos. Esto también pasa por otros nombres, incluyendo la tasa positiva correcta o el porcentaje de resultados relevantes. Por lo que esta es una medida de relevancia en el mundo de la recuperación de información. ¿ Cuándo debes preocuparte por la precisión? Bueno, es una métrica importante cuando te importan los falsos positivos. Algunos ejemplos serían exámenes médicos o pruebas de drogas. No quieres decir que alguien, ya
sabes, de cocaína o algo cuando no lo están, eso tendría efectos realmente malos en su vida y carrera y esas cosas, ¿verdad? Entonces otra vez, la precisión cuando te importan los falsos positivos, más que los falsos negativos. Las pruebas de drogas siendo un ejemplo clásico de eso. Nuevamente, se computa como verdaderos positivos sobre verdaderos positivos más falsos positivos. Y de nuevo, nos sumergimos en un ejemplo aquí. En esta matriz de confusión particular, los verdaderos positivos serán cinco, los falsos positivos en este ejemplo o 20. Por lo que la precisión se calcula como cinco sobre 25, que es de 20 por ciento. También hay otras métricas. Por ejemplo, la especificidad, que son los verdaderos negativos sobre los verdaderos negativos más los falsos positivos. También conocido como la verdadera tasa negativa. También la puntuación F1 es algo muy común que se utiliza. Eso es dos veces los verdaderos positivos sobre 2 veces los verdaderos positivos más los falsos positivos más los falsos negativos. También puedes calcularlo como dos veces los tiempos de precisión recuerdan más de 2, sobre la precisión. Recordar de cualquier manera funciona. Matemáticamente, es la media armónica de precisión y sensibilidad. Entonces si te importa la precisión y recordar,
recordar , recordar, recordar y sensibilidad son lo mismo. La puntuación F1 es una métrica que equilibra los dos. Si sabes que a tu modelo no solo le importa la precisión solo y quieres capturar tanto la precisión como el recuerdo. puntaje F1 puede ser una forma de hacerlo. Pero en el mundo real, probablemente
te vas a preocupar por la precisión o recordar más que el otro. Por lo que realmente vale la pena pensar en lo que más te importa. Usar puntaje F1, en mi opinión, es un poco de atajo, un poco de pereza. También RMSE se utiliza a menudo como métrica. Es solo una medida recta de precisión y es exactamente lo que suena, la raíz significa error cuadrado. Por lo que solo sumas todos los errores al cuadrado de cada predicción a partir de su verdadero valor real y tomas la raíz cuadrada de la misma. Eso es todo. Por lo que sólo le importan las respuestas correctas e incorrectas. No entra en los matices de la precisión y el recuerdo. Entonces si todo lo que te importa es la precisión, RMSE es una métrica común utilizada para eso. Otra forma de evaluar tus modelos es la curva ROC, que significa curva característica de funcionamiento del receptor. Y lo que hace es trazar su tasa positiva verdadera o su revocación frente a su tasa de falsos positivos en diversos ajustes de umbral en su modelo. Entonces, al elegir diferentes umbrales de elegir entre verdadero y falso, se veía esa curva? Básicamente la forma de interpretar una curva ROC es que
quieres que esté por encima de la línea diagonal ahí. Por lo que la curva ideal sería sólo un punto en la esquina superior izquierda, solo un gran ángulo a la derecha donde el, donde todo está en ese lado superior izquierdo de la gráfica, si se quiere, a la izquierda de esa línea diagonal. Por lo que cuanto más doblada o curva ROC esté hacia esa esquina superior izquierda, mejor. Es así como interpretas estas cosas. También podemos hablar del área bajo la curva, que es el área bajo la curva ROC, exactamente como suena. Por lo que en realidad puedes interpretar ese valor como la probabilidad de que un clasificador
clasifique una instancia positiva elegida aleatoriamente más alta que una negativa elegida aleatoriamente. Entonces un AUC de 0.5 sería lo que
esperarías ver si estuvieras en esa línea diagonal, ¿verdad? Entonces si realmente tuvieras el área debajo esa línea diagonal donde las cosas no son mejores que al azar. Eso resulta ser un área de 0.5, ¿verdad? Entonces eso tiene sentido. Entonces si ves un AUC de 0.5 o inferior, Eso es inútil o peor que inútil. El clasificador perfecto tendría un área bajo la curva y AUC de 1. Ese sería de nuevo ese caso perfecto donde la curva es justo así de derecha, un ángulo recto con un 1 a 01 allá arriba en la esquina superior izquierda. Eso incluiría toda el área, esa gráfica entera, que funciona a uno. Por lo que AUC puede ser una métrica útil para comparar diferentes clasificadores juntos. ¿ Dónde están cuanto mayor sea el valor, mejor? Entonces ahí lo tienes. Algunas métricas comunes para evaluar el recuerdo de precisión de los clasificadores , puntuación
F1, ROC y AUC son las importantes a recordar.
58. Prede / comercio de Varianza: en esta siguiente sección, vamos a hablar de los retos de lidiar con los datos del mundo real y algunas de las peculiares con las que podrías encontrarte. Entonces, comencemos hablando del sesgo de las variantes. Trade off Simplemente una especie de forma más basada en principios de hablar de las diferentes formas en que podría encajar
sobre los datos bajo ajuste y cómo todo en se relaciona entre sí. Echemos un vistazo. Por lo que uno de los retos básicos que enfrentamos al tratar con datos del mundo real es
sobreadecuar frente a debajo de adecuar sus regresiones a esos datos o a sus modelos de sus predicciones. Y cuando hablamos de bajo ajuste y sobreajuste, a menudo
podemos hablar de eso en el contexto del sesgo y la varianza y las
compensaciones de varianza de sesgo . Entonces hablemos de lo que eso significa. Por lo que conceptualmente sesgo y varianza aire bastante simples sesgos justo lo lejos que estás de los valores correctos. Entonces, ¿qué tan buenas son tus predicciones en general al predecir el valor general correcto para tomar la media de todas tus predicciones? ¿ Son más o menos del lugar correcto? ¿ O tus errores son todos sesgados consistentemente en una dirección u otra? Si Así entonces tus predicciones aire sesgadas en cierta dirección. La varianza es solo una medida de cuán dispersas están tus predicciones. Entonces si tus predicciones se airean por todo el lugar, esa es una alta varianza. Pero si están muy bien enfocados en cuáles son los valores correctos,
o incluso el valor incorrecto en el caso de un sesgo alto que tu varianza es pequeña. Entonces, echemos un vistazo a estos ejemplos aquí. Imaginemos que este tablero de dardos representa un montón de predicciones estaban haciendo donde el valor
real que estamos tratando de predecir está en el centro del ojo de toro. Por lo que comenzando en la esquina superior izquierda, se
puede ver que nuestros puntos están todos dispersos por el centro. Por lo que en general sabes el significado. El error sale a ser,ya
sabes, ya
sabes, bastante cerca de la realidad del dedo del pie. Nuestro sesgo. En realidad es muy bajo porque nuestras predicciones están todas alrededor del mismo punto correcto. No obstante, tenemos varianza muy alta porque estos puntos están dispersos por todo el lugar. Por lo que este es un ejemplo de bajo sesgo y alta varianza. Si pasamos a este a la esquina superior derecha, vemos aquí que son puntos, todos
están sesgados consistentemente desde donde deberían estar hasta el Noroeste aquí. Entonces este es un ejemplo de alto sesgo en nuestras predicciones donde están constantemente apagados por
cierta cantidad, y tenemos baja varianza porque todos están agrupados fuertemente alrededor de este punto equivocado. Pero al menos están muy unidos, así que estamos siendo consistentes. Nuestras predicciones y eso es baja varianza. Pero los sesgos altos así de nuevo, esto es alto sesgo. Baja varianza este ejemplo. En la esquina inferior izquierda, se
puede ver que nuestras predicciones están dispersas alrededor del punto medio equivocado. Entonces tenemos un alto sesgo, todo sesgado a algún lugar Donde no debería estar. Pero nuestra varianza también es alta, por lo que esa es una especie de lo peor de ambos mundos. Aquí tenemos un alto sesgo y una alta varianza en este ejemplo. Y finalmente, en un mundo maravilloso, perfecto, tendríamos un ejemplo, como la imagen inferior derecha aquí, donde tenemos un sesgo bajo, donde todo centrado alrededor de donde debería estar y baja varianza, donde las cosas están todas agrupadas bastante fuertemente alrededor de donde deberían estar. Entonces, en un mundo perfecto, eso es con lo que terminas. Pero en realidad, a menudo se
necesita elegir entre uno u otro Así que echemos un vistazo a este ejemplo un poco de una forma diferente de pensar del sesgo y la varianza aquí. Entonces aquí tenemos una línea recta y se puede pensar en eso como estar teniendo unas variantes muy bajas respecto a estas observaciones. De acuerdo, entonces no hay muchas variantes en esta línea baja varianza para el sesgo. Ya sabes, el error desde cada punto individual. En realidad es alto. De acuerdo, ahora contrasta eso con esto sobre datos ajustados aquí donde especie de que nos salimos de nuestro camino para encajar estas observaciones. Esta línea tiene alta varianza pero bajo sesgo porque cada punto individual está bastante cerca donde debería estar. Entonces esto un ejemplo de donde lo canjeamos, varianza por sesgo. Ahora, al final del día, no
estás fuera a simplemente reducir el sesgo o simplemente reducir variantes. Quieres reducir el error, ¿verdad? Eso es lo que realmente importa. Y resulta que puedes expresar error como una función de sesgo y varianza, por lo que el error es igual para comprar un cuadrado más variantes. Por lo que estas 10 cosas ambas contribuyen al error general con sesgo realmente contribuyendo más, pero ten en cuenta, es área que realmente quieres minimizar, no el sesgo o la variante específica y excesivamente compleja. El modelo probablemente terminará teniendo una varianza alta y un sesgo bajo, mientras que un modelo de dos simples tendrá baja varianza y alta pero sesgo. Pero ambos podrían terminar teniendo términos de error similares al final del día. Por lo que sólo tienes que encontrar el medio feliz adecuado de estas dos cosas cuando estás tratando encajar tus datos y hablaremos de algunas formas más principales de realmente evitar
sobreajuste en nuestras próximas conferencias. Pero es solo el concepto de sesgo y varianza lo que quiero atravesar porque la gente sí habla de ello. Se espera que sepas lo que significa si volvemos eso a algunos conceptos anteriores . En este curso. Por ejemplo, en K vecinos más cercanos, si aumentamos el valor de K, iniciamos dedo del pie extendidos por nuestro barrio que estaban promediando a través para alertar a un área más grande . Entonces eso tiene el efecto de disminuir variantes porque estamos suavizando las cosas sobre un espacio más grande, pero podría aumentar nuestro sesgo porque vamos a estar recogiendo una población más grande que puede ser cada vez menos relevante al punto desde que empezamos. Entonces al suavizar puede y sobre un mayor número de vecinos, podemos disminuir la varianza porque estamos suavizando las cosas sobre más valores. Pero podríamos estar introduciendo sesgos porque estamos introduciendo cada vez más puntos que son menos a menos que estén relacionados con el punto que empezamos con árboles de decisión y otros ejemplos. Entonces sabemos que una sola decisión arbolan proto sobre el ajuste, por lo que eso podría implicar que tiene una alta varianza. Pero los bosques aleatorios buscan comerciar parte de esa varianza para la reducción de sesgos. Y lo hace al tener múltiples árboles que son aleatoriamente variantes y promedia todas las
soluciones ahí juntas. Así que algo así como cuando promedio las cosas fuera. Al aumentar K y K y N, podemos promediar los resultados de un árbol de decisión mediante el uso de más de un árbol de decisión utilizando bosques aleatorios. Idea similar. Entonces esa es la idea básica de la varianza de sesgos en el tradeoff de varianza de sesgos. Espero que tenga poco sentido. Sigamos adelante. Entonces eso es sesgado. Diversos intercambios, Ya
sabes, nuevo, a veces está la decisión que tienes que tomar entre cuán precisos en general
son tus valores y qué tan extendidos o cuán fuertemente agrupados están. Entonces ese es el sesgo variance trade off y ambos contribuyen al error general, que es lo que realmente te importa minimizar, así que ten en cuenta esos términos.
59. Validación de K-Fold: Anteriormente en el curso, hablamos de la prueba de trenes como una buena forma de prevenir el sobreajuste y en realidad predecir, medir qué tan bien puede funcionar tu modelo con los datos. Nunca se había visto antes. Podemos llevar eso al siguiente nivel con una técnica llamada k-fold cross-validation. Y hablaremos de eso a continuación es una herramienta importante en tu cofre de herramientas para combatir el sobreajuste. Entonces hablemos de otra poderosa herramienta en tu arsenal para
luchar contra el sobreajuste, la validación cruzada K-fold. Y tal vez recuerden que hablamos de prueba de tren antes en este curso sobre una buena forma de pelear también por el ajuste. validación cruzada K-fold hace que la prueba de tren sea aún mejor. Entonces, aprendamos cómo funciona eso. Entonces si recuerdas de la prueba de tren, la idea era que dividimos todos nuestros datos que estamos construyendo
un modelo de aprendizaje automático basado en en dos segmentos,
un conjunto de datos de capacitación y un conjunto de datos de prueba. La idea es que capacitemos a nuestro modelo utilizando sólo los datos de nuestro conjunto de datos de capacitación. Y luego evaluamos su rendimiento utilizando los datos que
reservamos para un conjunto de datos de prueba que
nos impide sobreajustarnos a los datos que tenemos porque estamos probando el modelo contra datos que nunca antes se había visto. No obstante, capacitado aún tiene sus limitaciones. Todavía podrías terminar por ajustarte a tu división específica de prueba de tren. A lo mejor tu conjunto de datos de capacitación no es realmente representativo de todo el conjunto de datos y demasiadas cosas terminaron en tu conjunto de datos de capacitación que sesga las cosas. Entonces ahí es donde entra la validación cruzada k-fold. Toma prueba de tren y lo patea una muesca. Entonces la idea, aunque suene complicada, es bastante simple. En lugar de dividir nuestros datos en dos cubos, uno para entrenamiento y otro para pruebas. Lo dividimos en k cubos. Para cada cubo, usaremos ese cubo como nuestro conjunto de datos de prueba, y usamos los datos restantes como nuestros datos de capacitación. A continuación, medimos la puntuación de
error r cuadrado resultante de usar ese cubo como nuestros datos de prueba. Después pasamos al siguiente de nuestros cubos K y lo usamos como nuestros datos de prueba y
los k restantes menos 1 cubos como nuestros datos de entrenamiento y volvemos a medir el error. Seguimos haciendo esto hasta que hayamos intentado usar todos los cubos k como nuestro conjunto de pruebas. Y acabamos de promediar todas las puntuaciones R cuadradas con las que terminamos para obtener una medida más robusta de la precisión de nuestro modelo. Y eso es todo lo que es. La validación cruzada K-fold es una forma más robusta de hacer la prueba de tren, y esa es una forma de hacerlo. Hay otras variaciones al respecto. Por ejemplo, podrías reservar un cubo como tus datos de prueba y luego entrenar contra los cubos individuales restantes y promediar esos puntajes juntos. Pero la técnica descrita en esta diapositiva es cómo lo hace scikit-learn, y con eso vamos a jugar a continuación. Por lo que afortunadamente, scikit-learn hace que esto sea muy fácil de
hacer y es incluso más fácil que hacer la prueba normal de tren. Es extremadamente simple hacer la validación cruzada k-fold, por lo que también puedes hacerlo. Ahora la forma en que todo esto funciona en prácticas, tendrás un modelo que estás tratando de afinar y tendrás diferentes variaciones de ese modelo o diferentes parámetros que tal vez quieras ajustarlo. Por ejemplo, el grado de polinomio para un ajuste polinomio. Entonces la idea es probar diferentes valores de tu modelo. Diferentes variaciones, médanlas todas usando validación cruzada
k-fold y encuentre la que minimice el error contra su conjunto de datos de prueba. Y esa es una especie de punto dulce ahí. Por lo que en la práctica, desea utilizar validación cruzada
k-fold para medir la precisión de su modelo contra un conjunto de datos de prueba. Y sólo sigue refinando ese modelo. Sigue probando diferentes valores dentro de él, sigue probando diferentes variaciones de ese modelo o tal vez incluso modelos diferentes por completo hasta que encuentres la técnica que reduce el error de los más usando la validación cruzada k-fold. Vamos a sumergirnos en un ejemplo y ver cómo funciona. Vamos a volver a aplicar esto a nuestro conjunto de datos de Iris, revisitando SVC. Y jugaremos con la validación cruzada k-fold y veremos lo sencillo que es. En realidad pongamos en práctica la validación cruzada k-fold y train-test aquí, usando algún código Python real, verás que en realidad es muy fácil de usar, cual es algo bueno porque esta es una técnica que deberías ser utilizando para medir la precisión, la efectividad de sus modelos y el aprendizaje supervisado. Así que adelante y abre el k-fold cruzado validación sin libro y sigue adelante si se quiere. Y vamos a volver a ver el conjunto de datos de Iris. De nuevo, recuerda que introdujimos esto cuando hablamos de reducción de dimensionalidad. Y solo para refrescar tu memoria, el conjunto de datos de Iris contiene un conjunto de 150 mediciones de flores de iris. Cada flor tiene una longitud y anchura de su pedal y una longitud y anchura de su sépalo. Y entonces también sabemos a cuál de las tres especies diferentes de iris pertenece cada flor. Entonces el reto aquí es crear un modelo que pueda predecir con éxito la especie de flor de iris apenas dada la longitud y anchura de su pétalo y sépalo. Está bien. Entonces sigamos adelante y hagamos eso. Vamos a utilizar el modelo SVC. Si recuerdas de nuevo, Eso es solo una forma de clasificar datos Eso es bastante robusto. Ahí hay una conferencia sobre eso si necesitas ir refresca tu memoria. Entonces lo que vamos a hacer es usar la biblioteca de validación cruzada de scikit-learn. Y vamos a empezar por sólo hacer una división convencional de prueba de tren. Tan sólo una sola prueba de tren dividirse y ver cómo va a funcionar eso. Para ello, tenemos una función dividida de prueba de tren que lo hace bastante fácil. Entonces la forma en que esto funciona es que podemos alimentar, entrenar, probar, dividir, un conjunto de datos de características. Los datos de punto de iris solo contienen todas las mediciones reales de cada flor. Y Iris dot target, que es básicamente lo que estamos tratando de predecir. Por lo que en este caso, contiene todas las especies para cada flor. Y nuestro tamaño de prueba aquí dice, qué porcentaje queremos entrenar versus pruebas. Por lo que 0.4 significa que vamos a extraer el 40% de esos datos de forma aleatoria para fines de pruebas y usted 60% para fines de entrenamiento. Y lo que esto nos devuelve es para conjuntos de datos, básicamente una capacitación a
un conjunto de datos de capacitación y un conjunto de datos de prueba tanto para los datos de entidad como para los datos de destino. Por lo que x train termina conteniendo el 60% de nuestras mediciones de iris y la prueba X contiene el 40% de las mediciones utilizadas para probar los resultados de nuestro modelo. Y tren y prueba de y contienen las especies reales para cada uno de esos segmentos. Entonces vamos a seguir adelante y construir un modelo SVC para predecir especies de Iris dadas sus mediciones aquí. Y verás que estamos construyendo eso sólo usando los datos de entrenamiento. Por lo que vamos a encajar este modelo SVC usando un kernel lineal
usando sólo los datos de la función de entrenamiento y los datos de objetivo de datos de especies de entrenamiento. Y vamos a llamar a ese modelo CLF. Ahora podemos llamar a la función de puntuación en CLF para solo medir su rendimiento contra nuestro conjunto de datos de prueba. Entonces vamos a marcar este modelo contra los datos de prueba que
reservamos para las mediciones del iris y la especie de prueba Iris y ver qué tan bien lo hace. Y resulta que le va muy bien. A lo largo del 96% del tiempo nuestro modelo es capaz de
predecir correctamente la especie de un iris que nunca había visto antes, sólo en base a las mediciones del iris. Entonces eso es bastante guay. Pero este es un conjunto de datos bastante pequeño, un 150 flores, si recuerdo bien, Así que sólo estamos usando el 60% de un 150 flores para entrenamiento y sólo el 40% de un 150 flores para las pruebas. Estos son todavía números bastante pequeños, por lo que. Podríamos aún estar sobreajustados a nuestra división específica de pruebas de trenes que hicimos. Entonces usemos la validación cruzada k-fold para protegernos contra eso. Y resulta que usar la validación cruzada k-fold, pesar de que es una técnica más robusta, en realidad
es aún más fácil de usar que la prueba de tren. Entonces eso es bastante guay. Entonces veamos cómo funciona eso. Entonces ya tenemos un modelo, el modelo SVC que definimos para esta predicción. Y todo lo que necesitas hacer es llamar a la puntuación de Val cruzada en el paquete de validación cruzada. Entonces lo pasas en un modelo de un tipo dado y todo el conjunto de datos que tienes. Entonces esto es todos mis datos de características y todos mis datos objetivo, todas las mediciones, todas las especies. Y vamos a decir, quiero un pliegues de validación cruzada de cinco. Y eso significa que en realidad va a usar cinco conjuntos de datos de entrenamiento diferentes, ¿de acuerdo? Al tiempo que reservaba uno para las pruebas. Básicamente lo va a ejecutar cinco veces. Y eso es todo lo que necesitamos hacer que
evaluará automáticamente nuestro modelo contra todo el conjunto de datos, dividirá cinco formas diferentes y nos devuelva los resultados individuales. Entonces si imprimimos la salida de
eso, nos devuelve una lista de la métrica de error real de cada una de esas iteraciones, cada uno de esos pliegues. Y podemos promediar esos juntos para obtener una métrica de error general basada en la validación cruzada k-fold. Y cuando hacemos esto a través de cinco pliegues, podemos ver que nuestros resultados son incluso mejores de lo que pensábamos 98 por ciento de precisión. Entonces eso es bastante guay. De hecho, en un par de carreras tuvimos una precisión perfecta. Cosas tan bastante asombrosas. Entonces vamos a ver si podemos hacerlo aún mejor. Estamos usando un kernel lineal aquí. ¿ Y si usamos un núcleo polinomio? Y Dios, aún más fantasioso, ¿eso será sobreajustado o en realidad se ajustará mejor a los datos que tenemos? Un poco depende de si realmente hay una relación lineal o
una relación polinomial entre estas mediciones de pétalos y la especie real o no. Entonces probemos eso. Simplemente volveremos a ejecutar todo esto usando la misma técnica, pero esta vez vamos a usar un kernel polinomio y haremos lo mismo, se ajustará eso a nuestro conjunto de datos de capacitación. ¿ Y realmente importa? Te lo ajustamos en este caso, porque cross Val score solo seguirá reejecutándolo por ti. Y resulta que películas un ajuste polinomio, terminamos con una puntuación general que es incluso menor que nuestras carreras originales. Entonces esto nos dice que el núcleo polinomio probablemente está sobreajustando. Cuando usamos la validación cruzada k-fold, ésta revuelta revela en una puntuación más baja real que con nuestro núcleo lineal. Y el punto importante aquí es que si solo usamos una sola división de prueba de tren, nos fuimos nos dimos cuenta de que en realidad habríamos obtenido el mismo resultado si acabamos de hacer una sola división de prueba de tren aquí como lo hicimos en el kernel lineal. Por lo que podríamos inadvertidamente estar sobreajustando nuestros datos allí y
ni siquiera haber sabido que si no hubiéramos utilizado la validación cruzada k-fold. Tan buen ejemplo aquí de donde k-fold viene al rescate y advierte que tienes exceso de ajuste donde una sola división de prueba de tren inquilino podría no haber cogido eso. Por lo tanto, mantén eso en tu cofre de herramientas. Quieres jugar con esto un poco más. Adelante y prueba diferentes grados. Entonces lo intentamos. En realidad se puede especificar un número diferente de grados. El valor predeterminado es de tres grados para el núcleo polinomio. Pero puedes probar diferente, puedes intentarlo. ¿Eso le va mejor? Si bajas a uno que se degrada básicamente a un núcleo lineal, ¿verdad? Entonces tal vez todavía haya una relación polinomial y tal vez sea sólo un polinomio de segundo grado. Así que ve a averiguarlo, pruébalo y a ver qué recuperas. Entonces ve a jugar con eso. Eso es k-fold validación cruzada. Eso es k-fold validación cruzada. Como puedes ver, es muy fácil de usar gracias a scikit-learn. Entonces úsalo. Es una manera importante de medir qué tan bueno es tu modelo de una manera muy robusta.
60. Limpieza y normalización de datos: Ahora bien, esta es una de las más simples, pero sin embargo podría ser la conferencia más importante de todo este curso. Vamos a hablar de limpiar tus datos de entrada, que vas a gastar mucho de tu tiempo haciendo y lo bien que limpias tus datos de entrada y entiendes que tus datos de entrada sin procesar van a tener un impacto enorme en la calidad de tus resultados, tal vez aún más que qué modelo eliges o qué tan bien afinas tus modelos. Por lo tanto, presta atención. Esto es algo importante. Entonces hablemos de una verdad inconveniente de la ciencia de datos. Y eso es lo que pasas la mayor parte de tu tiempo, en realidad, solo limpiando y preparando tus datos y en realidad relativamente poco de ellos analizándolos y probando nuevos algoritmos. Por lo que no es tan glamuroso como la gente podría hacer que fuera todo el tiempo. Pero esto es algo extremadamente importante a lo que prestar atención, por lo que hay muchas cosas diferentes que podrías encontrar en los datos de datos brutos que entran en ti solo los datos crudos van a estar muy sucios. Se va a contaminar en mayo de diferentes maneras. Y si no lo lidias. Va a sesgar tus resultados, y en última instancia terminará en tu negocio tomando las decisiones equivocadas. Y si sabes lo que vuelve que cometiste un error donde ingeriste un montón de
datos malos y no dio cuenta de ello no limpió esos datos. Y lo que le dijiste a tu negocio era hacer algo basado en esos resultados que más tarde
resulta estar completamente equivocado. Vas a estar en muchos problemas, así que presta atención. Hay un montón de diferentes tipos de problemas India a los que hay que tener cuidado. Uno está fuera mentirosos. Entonces tal vez tengas, ya
sabes, gente que se está comportando de manera extraña en tus datos. Y cuando cavas en
ellos, resultan ser, ya
sabes, datos que no deberías estar mirando en primer lugar. Un buen ejemplo sería si estás mirando datos de registro Web y ves una sesión I d. que sigue volviendo una y otra vez, sigue haciendo algo a un ritmo ridículo que un humano nunca podría hacer. Pero probablemente estés viendo que hay un robot, ya
sabes, un guión que se está ejecutando en algún lugar para realmente raspar tu sitio web, o incluso podría ser algún tipo de ataque malicioso. Pero en todo caso, no
quieres que esos datos de comportamiento informen a tus modelos Eso está destinado a predecir el comportamiento de los seres humanos reales usando tu sitio web. Por lo que vigilar los valores atípicos es una forma de identificar tipos de datos que tal vez quieras
eliminar si tu modelo, cuando lo estás construyendo datos faltantes, ¿qué haces cuando la fecha simplemente no está ahí? ¿ Volviendo al ejemplo de un weblog? Podría tener un referente en esa línea o quizá no. ¿ Qué haces si no está ahí? ¿ Crea una nueva A clasificaciones por faltantes o no especificadas? ¿ O arrojas esa línea por completo? Tienes que pensar en qué es lo correcto hacer. ¿ Hay datos maliciosos como hablamos? Podría haber gente tratando de jugar a tu sistema. Podría haber gente tratando de engañar al sistema, y no quieres que esa gente se salga con la suya. Digamos que estás haciendo un sistema er de recomendación. Podría haber gente por ahí tratando de fabricar datos de comportamiento en o simplemente para promocionar su nuevo artículo. ¿ Verdad? Por lo que necesitas estar al pendiente de ese tipo de cosas Y asegúrate de que estás identificando estos ataques de bombardeo u otro tipo de ataques a tus datos de entrada y filtrándolos de los resultados. Y no dejes que ganen datos erróneos. ¿ Y si hay como un software? Pero en algún lugar de algún sistema, eso es sólo escribir los valores equivocados en algún conjunto de situaciones. Puede suceder, desafortunadamente, no
es una buena manera para que sepas de eso, Pero si ves datos que solo se ven pescados o los resultados no tienen sentido para ti, cavar lo suficientemente profundamente puede a veces descubrir un subyacente bug que está causando que en primer lugar se escriban los
datos equivocados. A lo mejor las cosas no se están combinando adecuadamente en algún momento. A lo mejor no se están llevando a cabo sesiones a lo largo de toda la sesión. La gente podría estar dejando caer su sesión i D y obteniendo nuevas ideas de sesión a medida que pasan por un sitio web, por ejemplo, datos
irrelevantes. Ya sabes, muy sencillo. Aquí uno puede ser tu único interés interesado en datos de gente de la ciudad de Nueva York o algo así. Por alguna razón. En ese caso, todos los datos de personas del resto del mundo son irrelevantes. Lo que estás tratando de averiguar y lo primero que querías fue simplemente tirar todos esos datos manera y restringir tus datos. Blanquearlo hasta los datos que realmente te importan. Datos inconsistentes. Este es un problema enorme. Está bien. Por ejemplo, en direcciones, las personas pueden escribir la misma dirección de muchas maneras diferentes. Podrían abreviar calle o podrían no abreviar Calle. Podrían no poner calle al final del nombre de la calle en absoluto. Podrían combinar líneas juntas de diferentes maneras. Podrían deletrear las cosas de manera diferente. Podrían usar un código postal en los
EE. UU. EE O un código postal más cuatro en EU Podrían tener un país en él. Podrían no tener un país en ello. Necesitas averiguar de alguna manera cuáles son las variaciones que ves, ¿
Y cómo puedo normalizarlas todas juntas? A lo mejor estoy viendo datos sobre películas y una película podría tener nombres diferentes en diferentes países o un libro podría tener nombres diferentes en diferentes países, pero significan lo mismo. Por lo que necesitas encontrar necesitas buscar estas cosas donde necesitas normalizar tus datos, donde los mismos datos se pueden representar de muchas maneras diferentes, y necesitas combinarlos para obtener los resultados correctos. De acuerdo, formatear eso también puede ser un problema. Las cosas podrían estar formateadas de manera inconsistente. Tomemos el ejemplo de fechas en EU siempre hacemos mes, día año. Pero en otros países podrían hacer día,
mes, año, año, ¿quién sabe? Pero hay que ser necesario estar al tanto de estas diferencias de formato pueden ser números de teléfono. Tener paréntesis alrededor del código de área. A lo mejor no lo hacen. A lo mejor tienen guiones entre cada sección de los números. A lo mejor no lo hacen. A lo mejor los números del Seguro Social tienen guiones. A lo mejor no lo hacen. Estas son todas las cosas que hay que tener cuidado. Y debes asegurarte de que las variaciones en el formato no sean tratadas como
entidades diferentes o clasificaciones diferentes durante tu procesamiento. Por lo que muchas cosas que tener cuidado. Y eso es sólo ah, eso son sólo los principales a tener en cuenta. De acuerdo, recuerda basura en basura fuera. Tu modelo es tan bueno como el día que le das, y esto es extremadamente, extremadamente cierto. Sabes que podrías tener un modelo muy simple que funciona muy bien si le das una gran cantidad de datos limpios y en realidad podría superar a un modelo complejo en un
conjunto de datos más sucio . Entonces, ya
sabes, asegurarte de tener suficientes datos y datos de alta calidad suele ser la mayor parte de la batalla. Te sorprendería lo sencillos que
son algunos de los algoritmos más exitosos utilizados en el mundo real . Y sólo hay éxito en virtud de la calidad de los datos que entran en ella y la cantidad de datos que entran en ella. Ya
sabes, no siempre se necesitan técnicas de fantasía para obtener buenos resultados. A menudo, la calidad y cantidad de sus datos cuenta tanto como cualquier otra cosa. Y siempre cuestiona tus resultados. Ya
sabes, no quieres volver a entrar, buscar anomalías y tus datos de entrada. Justo cuando obtienes un resultado que no te gusta, sabes que introducirá un sesgo no intencional en tus resultados,
donde tus resultados líderes que te gustan o esperas, pasan por incuestionables, ¿
verdad? Quieres cuestionar las cosas todo el tiempo para asegurarte de que siempre estás buscando estas cosas porque aunque encuentres un resultado que te guste. Si resulta que está mal, sigue siendo incorrecto. Todavía va a estar informando a tu empresa en la dirección equivocada, y eso podría volver a morderte más tarde. Entonces a modo de ejemplo, tengo un sitio web llamado No Hate News. No es ganancia, así que no estoy tratando de ganar dinero contándote al respecto. Pero digamos que solo quiero encontrar las páginas más populares en este sitio web que poseo. Eso suena como un problema bastante simple, ¿
no? Simplemente debería poder ir a través de mis registros Web y contar cuántos hits tiene cada página y ordenarlos bien. ¿ Qué tan difícil puede ser? Bueno, resulta que es muy difícil. Así que vamos a sumergirnos en este ejemplo y ver por qué y ver algunos ejemplos de
limpieza de datos del mundo real que tiene que suceder. Entonces veamos lo importante que puede ser la limpieza de datos. Tenemos una tarea muy sencilla por delante. Encuentra las páginas de vista superiores en un sitio web muy pequeño. ¿ Qué tan difícil puede ser? Bueno, nos sumergimos en eso a continuación y veremos lo difícil que es
61. Limpieza de datos de registros web: Por lo que vamos a mostrar la importancia de limpiar tus datos. Tener algunos datos de registro Web de un pequeño sitio web que poseo, y sólo vamos a tratar de encontrar las mejores páginas vistas en ese sitio web. Suena bastante simple, pero como verás, realidad
es bastante desafiante. Entonces pasemos por un ejemplo sencillo. En realidad, no
es tan sencillo donde solo quiero descifrar Las páginas Web vistas superiores en mi página web. Suena bastante fácil, ¿
no? Bueno, vamos a ver. Entonces si quieres seguir a lo largo de las páginas principales I Cuaderno Python es el que estamos trabajando desde aquí. Y empecemos así en realidad tener un registro de acceso que tomé de mi sitio web real. Es un registro de acceso http riel de Apache, y eso está en los materiales de tu curso. Entonces fui y saqué este pequeño fragmento de código de Internet que analizará una línea de logline de
acceso Apache en un montón de campos. Por lo que contiene cosas como el host y el usuario y la hora y las solicitudes
y el estado de la página real , y se refieren, y el agente de usuario, lo que
significa qué navegador realmente se usópara ver esta página. Entonces esto se acumula se llamó expresión regular, y estamos usando la biblioteca Ari para usarla. Y ese es básicamente un lenguaje muy poderoso para hacer coincidencia de patrones en una
cuerda grande . Por lo que al usar esta expresión regular, en realidad
podemos aplicar eso a cada línea de nuestro registro de acceso y agrupar automáticamente los bits de datos,
los bits de información en esa línea de inicio de sesión de acceso en estos diferentes campos. De acuerdo, así que si quieres jugar aquí, asegúrate de actualizar el camino para mover el registro de acceso a donde hayas guardado los
materiales del curso para este curso y sigamos adelante y ejecutemos esto. Muy bien, entonces tenemos una ruta a nuestro archivo de datos. Entonces lo obvio que hay que hacer aquí, sólo
vamos a batir un pequeño guión que cuente cada uno. Usted es l que nos encontramos con que se solicitó y mantiene cuenta de cuántas veces se solicitó. Entonces podemos ordenar esa lista y conseguir nuestras primeras páginas ¿verdad? Suena bastante simple. Entonces vamos a construir un pequeño diccionario de python aquí llamado sus cuentas, y vamos a abrir nuestro archivo de registro y para cada línea, vamos a aplicar nuestra expresión regular. Y si realmente vuelve con un partido exitoso para el patrón que estamos tratando de
igualar , diremos:
OK, OK, esto parece una línea decente en nuestro registro de acceso. Extraigamos el campo de solicitud de él, que es la solicitud http real. Qué Página realmente está siendo solicitada por el navegador dividió eso en sus tres componentes. Un concurso consiste en, ah, acción como conseguir nuestro puesto, el año real L que se solicita y el protocolo que se está utilizando. Entonces dada esa información dividida, podemos entonces sólo ver si que eres yo ya existe en mi diccionario. Si es así, incrementaré el recuento de cuántas veces se ha encontrado Europa por uno. De lo contrario, presentaré una nueva entrada de diccionario. Para eso, tu Ellen lo inicializa al valor de uno. Hago eso por cada línea en el registro, ordeno los resultados en reversa, ordeno numéricamente e imprimo. Entonces sigamos adelante y corramos eso. Ups. Terminamos con este gran error viejo aquí, y nos está diciendo que necesitamos más de un valor para impactar. Entonces al parecer estamos recibiendo algunos campos de solicitud que no contienen una acción al año sobre un protocolo. Contiene algo más. A ver qué está pasando ahí. Entonces si imprimimos todas las solicitudes que no contienen tres ítems, podemos ver lo que realmente está apareciendo aquí. Entonces vamos a hacer Aquí hay un pequeño fragmento de código similar, pero en realidad vamos a hacer eso. Dividir en el campo de solicitud e imprimir casos donde no obtenemos los tres campos esperados y ver qué hay realmente ahí dentro. Es decir, así que un montón de campos vacíos, ese es nuestro primer problema. Pero entonces tenemos esto se siente seguir, sólo basura. Ya sabes, quién sabe de dónde vino eso. Es claramente datos erróneos, así que Ok, bien. Modificemos nuestro script en realidad solo arrojará cualquier línea que no tenga los
tres campos esperados en la solicitud. Y eso parece algo legítimo que hacer, porque esto sí, de hecho, tiene datos completamente inútiles dentro de ella. No es que nos estemos perdiendo nada aquí haciendo ese tan bien script modificador. Para ello, hemos introducido esto si los campos de prestamos son iguales a tres leones antes de que realmente intente
procesarlo , y vamos a correr eso Hey, tenemos un resultado, pero esto realmente no se parece a la parte superior páginas en mi página web. Recuerda, este es un sitio de noticias. Por lo que estamos recibiendo gran parte de los hits de archivos PHP. Eso son, ya
sabes, guiones
PERL. ¿ Qué está pasando? Hay resultado superior Es este xml rpc dot script PHP y luego WP log in dot PHP seguido la página principal. Por lo que no muy útiles robots puntan texto en montón de archivos XML. Ya sabes, cuando miré esto más tarde, resultó que mi leve estaba en realidad bajo un ataque malicioso. Alguien estaba tratando de entrar en él, y este script XML RPC era la forma en que intentaban adivinar mis contraseñas, y estaban tratando de iniciar sesión usando el script de inicio de sesión, y afortunadamente, los
apagué antes en realidad podrían llegar a este sitio web. Pero este fue un ejemplo de datos maliciosos que se introducen en mi flujo de datos que tengo que filtrar. Entonces, ya
sabes, al mirar ese debilitar, ver que no sólo fue ese ataque malicioso, ya
sabes, mirar archivos PHP, sino que también estaba tratando de ejecutar cosas. Por lo que no era sólo hacer una solicitud de get. Estaba haciendo una solicitud de post sobre el guión. En realidad tratar de ejecutar código en mi sitio web. Ahora sé que los datos que me importan ustedes saben, en el espíritu de lo que estoy tratando de descifrar, es que la gente obteniendo páginas Web de mi sitio web. Entonces una cosa legítima que yo haga es filtrar cualquier cosa que no sea una petición get
de estas pérdidas. Hagamos ese nido. Entonces vamos a revisar de nuevo si tenemos tres campos en nuestro campo de solicitud, y luego también vamos a comprobar si la acción es conseguir. Y si no lo es, sólo
vamos a ignorar esa línea por completo. Entonces deberíamos estar acercándonos a lo que queremos ahora. Y, sí, esto está empezando a parecer más razonable, pero todavía no pasa realmente un cheque arenoso. Este es un sitio web de noticias. La gente va a ella a leer noticias, y ¿de verdad están leyendo a mi pequeño bloguero en ello? Eso sólo tiene un par de artículos? Yo no lo creo. Eso parece un poco raro, así que vamos a bucear un poco y ver quién está realmente mirando esas páginas blawg. si realmente entraras a ese archivo y lo examinaras a mano, verías que muchas de estas solicitudes de Blawg en realidad no tienen ningún agente de usuario en TEM . Simplemente tienen un usuario. Agente de Dash, que es altamente inusual por un ser humano real con un navegador real, estaba tratando de conseguir esta página. Diría algo como Mozilla o Internet Explorer o algo así, ¿
verdad? ¿ O cromo? Por lo que parece que esto estas solicita aire proveniente de alguna especie de raspador otra vez, tráfico
potencialmente malicioso que no está identificando a quién es ISS. Entonces OK, tal vez deberíamos estar mirando a los agentes de usuario para ver si estos son humanos reales haciendo solicitudes o no. Adelante e imprimamos todos los diferentes agentes de usuario que se estaban encontrando. Entonces en el mismo espíritu del código que en realidad resumió el diferente tú o de lo contrario estamos viendo. Podemos mirar a todos los diferentes agentes de usuario que estábamos viendo y ordenarlos por el usuario más popular Agents strings en este registro y se puede ver la mayor parte de ella luce legítimo, así que sabes que es al menos si es un raspador, y en este caso, en
realidad no fue ataque malicioso, pero en realidad estaban fingiendo ser un navegador legítimo. Pero este agente de usuario de dash aparece mucho para, así que no sé qué es eso, pero sé que no es un navegador natural. Un verdadero navegador, ya
sabes, se vería algo más parecido a esto. La otra cosa que estoy viendo es mucho tráfico de arañas de webcrawler. Entonces por do es un buscador en China. Google te compró aviso, arrastrando la página. Um, ya
sabes, creo que vi a Yandex aquí para, ya
sabes, buscador
ruso. Por lo que nuestros datos están siendo contaminados por una gran cantidad de rastreadores que solo están tratando de minar nuestro sitio web con fines de motor de búsqueda. Y otra vez que el tráfico no debería contar para el propósito previsto de mi análisis de ver qué páginas están mirando los seres humanos reales en mi página web. Todos estos son scripts automatizados. Está bien, así que esto se pone un poco complicado. Ya sabes, no
hay realmente buena manera de identificar arañas o robots solo basados en la cadena del usuario solo, Pero podemos al menos tomarle una grieta legítima y filtrar cualquier cosa que tenga la palabra botnet o cualquier cosa desde mi enchufe de cobro que pudiera estar solicitando páginas con anticipación también. Y también despojaremos a nuestro amigo sencillo guión. Por lo que una vez más vamos a afinar nuestro script para, además de todo lo demás despojar y un agente de usuario que se veían pescados y lo que
obtenemos . Está bien, así que aquí nosotros Oh ho, esto está empezando a parecer más razonable para las primeras 2 entradas. La página principal es más popular, lo que se esperaría. Orlando Headlines también es popular porque uso este sitio web más que nadie, y vivo en Orlando. Pero luego nos dieron un montón de cosas que no son páginas blancas en absoluto. Manojo de scripts de gran parte de archivos CSS. Esas no son páginas Web. Por lo que de nuevo, podría simplemente aplicar algún conocimiento sobre mi sitio donde resulta que sé que todas las páginas
legítimas en mi sitio Justin con una barra en su euro. Entonces sigamos adelante y modifiquemos esto de nuevo para despojar cualquier cosa que no termine con una barra . Por último, estamos obteniendo algunos resultados que parecen tener sentido. Por lo que parece que la página superior solicitada a seres humanos reales en mi pequeño sitio de
noticias no odio es la página principal, seguida de titulares de Orlando seguidos de World News seguido de los cómics que el clima en la pantalla sobre. Por lo que esto empieza a parecer más legítimo. Si fueras a cavar aún más profundo, sin embargo, ves que aún hay problemas con este análisis. Por ejemplo, esas páginas de alimentación el aire siguen viniendo de robots solo tratando de obtener datos X RSS de mi sitio web . Entonces esta es una gran parábola y cómo un análisis aparentemente simple requiere una enorme cantidad de pre procesamiento y limpieza de los datos fuente antes de obtener resultados que tengan algún sentido. Y de nuevo, asegúrate de que las cosas que estás haciendo para limpiar tus datos en el camino o con principios y
no eres solo problemas de cereza que no coincidan con tus nociones preconcebidas. Por lo que siempre cuestiona tus resultados. Siempre mira los datos de tu fuente y busca cosas raras que hay en ella. Está bien. Si quieres,
como,enviar como, un mensaje de esto un poco más, puedes resolver ese problema de alimentación. Adelante y despoja cosas que incluyen feed, porque sabemos que eso no es una página Web real y solo para familiarizarse con el código o ir a mirar un poco más de cerca la ley, ya
sabes, ganar algunos entendiendo de dónde vienen realmente esas páginas de feed. Y tal vez haya una forma aún mejor y más robusta de identificar ese tráfico como una clase
más grande. Entonces siéntete libre de meterte con eso. Pero espero que hayas aprendido tu lección. Limpieza de datos enormemente importante, y te va a llevar mucho tiempo. Entonces es bastante sorprendente lo difícil que fue obtener algunos resultados razonables en la simple pregunta como, ¿Cuáles son las primeras páginas de mi página web? Y te puedes imaginar si tanto trabajo tuviera que ir a limpiar los datos para un
problema tan sencillo . Piensa en todas las formas matizadas en que los datos sucios podrían realmente impactar los resultados de problemas más complejos y algoritmos complejos. Muy importante entender sus datos de origen. Míralo. Mira una muestra representativa de la misma. Asegúrate de entender lo que viene a tu sistema y siempre cuestiona tus resultados y vuelve a atarlo a los datos originales de origen para ver de dónde
vienenlos resultados cuestionables vienen
62. Normalización de datos numéricos: Esta es una conferencia muy rápida. Solo quiero recordarte que a veces necesitas normalizarte o blanco en tus datos
entrando en un algoritmo. Por lo que solo tienes que mantener eso en la parte posterior de tu cabeza porque a veces afectará la calidad de tus resultados. Si no haces tan real conferencia rápida aquí. Solo quiero recordarles la importancia a veces de normalizar sus datos, asegurándose de que sus diversos datos de entidad de entrada estén en la misma escala y sean comparables. Y a veces importa, y a veces no. Pero sólo hay que ser consciente de cuándo lo hace. Por lo que a veces los centros comerciales se basarán en varios atributos numéricos diferentes. Recuerda, al igual que los modelos multivariantes. Ya sabes, podríamos tener diferentes atributos de un auto que estamos viendo, y podrían no ser mediciones directamente comparables o, por ejemplo, si estamos viendo relaciones entre edades e ingresos. Las edades podrían oscilar entre 0 y 100 pero los ingresos y los dólares podrían oscilar entre cero
y miles de millones, y dependiendo de la moneda, podría ser un rango aún mayor. Algunas modelos están de acuerdo con eso. Ya sabes, si lo estás haciendo como una regresión, normalmente eso no es gran cosa, pero otros modelos no funcionan tan bien a menos que esos valores bajen el aire para nosotros a una escala
común. Entonces si no tienes cuidado, puedes terminar con algunos atributos contando más que otros. A lo mejor los ingresos terminarían contando mucho más que la edad si estuvieras tratando de tratar esos dos valores como valores comparables en tu modelo, por lo que eso puede emitir también un sesgo y los atributos que también pueden ser un problema. Entonces tal vez usted un conjunto de sus datos está sesgado. Ya sabes, a
veces necesitas normalizar las cosas versus el rango real visto para ese conjunto de valores , y no solo para,
ah, ah, cero a lo que sea el máximo sea la escala. Y sabes que no hay una regla fija en cuanto a cuándo no debes hacer no debería hacer este tipo de normalización. Pero todo lo que puedo decir es, siempre lee la documentación para cualquier técnica que estés usando. Entonces, por ejemplo, en
psique, aprende su implementación de PC tiene un blanco y opción que normalizará automáticamente tus datos para ti. Probablemente deberías usar eso, y también tiene algunos módulos de preprocesamiento disponibles que se normalizarán y escalarán de las cosas para ti automáticamente. Un oleaje, ya
sabes. Estar al tanto, también, de los datos textuales que en realidad deberían representarse numéricamente ordenadamente. Entonces si tienes datos de sí o no, es posible que necesites convertir ese dedo del pie uno o cero y hacerlo en un asunto consistente. Entonces otra vez, sólo lee la documentación. La mayoría de las técnicas sí funcionan bien con crudos unos datos normalizados. Pero antes de empezar a usar un nuevo dato, una nueva técnica por primera vez, basta con leer la documentación y entender si las entradas deben escalarse o normalizarse o blanquearse primero, y si es así, secular probablemente te hará muy fácil hacerlo por lo que solo tienes que recordar hacerlo . No olvides volver a los resultados de Scalea cuando hayas terminado,
si estás escalando los datos de entrada. Por lo que si quieres poder interpretar los resultados que obtienes, a veces necesitas escalarlos de nuevo a su rango original una vez que hayas terminado. Entonces si estás escalando las cosas y tal vez incluso sesgándolas hacia una cierta cantidad antes introducirlas en un modelo, asegúrate de no haberlas calificado e imparcial antes de presentar realmente esos resultados a alguien o de lo contrario ellos no tendrá ningún sentido. De acuerdo, así que sólo un pequeño recordatorio. Un poco de parábola si siempre comprobarás para ver si debes normalizarla. Blanquee sus datos antes de pasarlos a un modelo dado. Por lo que ningún ejercicio asociado a esta conferencia es sólo algo que quiero que recuerden. Solo estoy tratando de conducir el punto a casa. Algunos algoritmos requieren blanquear una normalización. Algunos no siempre leen la documentación. Si sí necesitas normalizar los datos entrando en un algoritmo, normalmente te lo dirá y hará que sea muy fácil hacerlo. Por lo que sólo ten en cuenta eso.
63. Detectar Outliers: A veces su mundo real a los datos contendrá valores atípicos, y podrían ser valores atípicos legítimos. Podrían ser causados por personas reales, y no por algún tipo de tráfico malicioso o datos falsos, y tendrás que decidir cómo vas a lidiar con ellos. Por lo que a veces es apropiado quitarlos. A veces no lo es. Asegúrate de tomar esa decisión de manera responsable. Entonces, por ejemplo, si estoy haciendo filtrado colaborativo y estoy tratando de hacer recomendaciones de películas o algo por el estilo, podrías tener algunos usuarios de potencia que han visto cada película alguna vez realizada y calificado cada película alguna vez hecha. Y podrían terminar teniendo una influencia desmesurada en las recomendaciones para todos los demás. Y realmente no quieres que un puñado de personas tenga tanto poder en tu sistema. Entonces eso podría ser un ejemplo de dónde sería algo legítimo filtrar un atípico e identificarlos por cómo Maney califica realmente han puesto en el sistema. O tal vez un atípico sería alguien que no tenga suficientes calificaciones. O podríamos estar viendo datos de registro Web como vimos en nuestro ejemplo anterior, donde estamos haciendo valores atípicos de limpieza de datos podrían estar diciéndote que hay algo muy mal con tus datos para empezar. Podría ser tráfico malicioso. Podrían ser bots u otros agentes que deban descartarse que no representan
seres humanos reales que intentas modelar. Pero si alguien realmente quería, digamos el ingreso promedio promedio en Estados Unidos y no el medio, específicamente
quieren el medio. No deberías simplemente tirar a los multimillonarios del país sólo porque no te
gustan . El hecho es ahí miles de millones de dólares van a empujar esa cantidad media hacia arriba, aunque no mueva mucho la mediana. Entonces, no mezcles tus números tirando a los mentirosos sino a lo largo de fuera mentirosos. Si no es consistente con lo que intentas modelar en primer lugar ahora, ¿cómo identificamos a los mentirosos? Bueno, ¿recuerdas a nuestro viejo amigo desviación estándar? Eso lo cubrimos muy temprano en este curso. Se trata de una herramienta muy útil para detectar valores atípicos de una manera muy de principios. Se calcula la desviación estándar de un conjunto de datos que debe tener una
distribución más o menos normal . Y si ves un punto de datos que está fuera de una o dos desviaciones estándar, ahí tienes un valor atípico. Recuerda, hablamos de los diagramas de caja y bigotes a, y esos también tienen una forma construida de detectar y visualizar a los mentirosos. Y esos definen los valores atípicos como que yacen fuera 1.5 el rango inter cuartil. Entonces, ¿qué múltiplo eliges? Bueno, como
que tienes que usar el sentido común. No hay una regla dura y rápida en cuanto a lo que es un atípico. Tienes que mirar tus datos y tipo de globo ocular. Mira la distribución. Mira la historia Graham. A ver si hay cosas reales que te sobresalen son valores atípicos obvios y entender lo que son antes de que simplemente las tires. Entonces, veamos algún código de ejemplo y veamos cómo podrías hacer eso en la práctica. Si quieres seguir
adelante, vuelve al cuaderno de valores atípicos en los materiales de tu curso y vamos a volver a visitar nuestro ejemplo de datos de distribución de ingresos. Entonces como antes, vamos a usar n p punto aleatorio para crear una distribución normal centrada alrededor de $27,000 al año con una desviación estándar de $15,000 creará 10,000 de estos ingresos normalmente distribuidos y ahora solo un lío. Las cosas van un poco bien, a través de un multimillonario en la mezcla. May Jeff Bezos, quien quiera imaginar esto sólo dependerá que a la lista de los datos de ingresos que tenemos Ahora se puede ver que esto mete las cosas con bastante rapidez, incluso sólo tratando de visualizar estos datos. Entonces son estudiantes. Tratamos de trazar un graham de historia de estos datos. Vemos que todos los llamados ya saben, gente
normal que están ganando alrededor de 27.000 dólares al año aquí abajo en este gran pico aquí y
aquí fuera, mil millones de
dólares. Tenemos un único punto de datos que ni siquiera se puede ver, pero ya ha estropeado nuestra capacidad de visualizar incluso estos datos para que un multimillonario terminara apretando a todos los demás en esta sola línea diminuta de nuestra historia. Graham y también sesgaron bastante significativamente nuestra media. Entonces sigamos adelante y ejecutemos esto para realmente obtener esos datos en el sistema aquí. Si computas el medio, veremos que no son 27,000 dólares en absoluto. Es más como $127,000 sólo por ese atípico. Entonces es muy importante en el caso como este cavar en remolque ¿qué está causando tus atípicos y entender de dónde vienen? Quieres asegurarte de que si estás tirando datos a la basura, es justificable. Está basado en algo de principios, ¿verdad? Entonces si el propósito de este análisis era realmente entender los ingresos de citar unquote americanos
típicos, filtrar ese puñado de multimillonarios parecería algo legítimo que hacer, Sólo
quieres asegurarte de que eres transparente, que hiciste eso cuando estás presentando tus datos Ahora hay algo un poco más robusto que podrías hacer en el solo dicho, Si eres multimillonario, te
voy a echar. Podríamos decir, por ejemplo, cualquier cosa más allá de dos desviaciones estándar del valor de la mediana en el conjunto de datos se definirá como un valor atípico, y podemos elegir cualquier valor de desviación estándar que queramos allí. Entonces aquí hay una pequeña función que nos da cuenta de eso. Yo lo llamé rechazar valores atípicos. Comienza por computar la mediana de un conjunto de datos y la desviación estándar de ese conjunto de datos , y esta pequeña línea de código aquí sólo comprueba si soplan o no dos
desviaciones estándar de la mediana o por encima de dos estándar desviaciones de la mediana y devuelve el conjunto de datos del
filtro que los arroja a todos. Entonces llamamos a Filtrado igual, rechazamos ingresos de valores atípicos, y eso solo aplica esa función de filtro a todo el conjunto de datos y devuelve el
conjunto filtrado en su lugar. Podríamos entonces trazar ese conjunto de datos de filtro, y veremos si funciona. Suficientemente, sí. Y lo bonito aquí es que no me gusta a lo largo de un montón de datos, ¿
verdad? Por lo que todavía tenemos una linda limpia curva de campana aquí, pero nuestro multimillonario se ha ido sin tener que escribir ninguna lógica especial que diga, si haces más de un $1,000.000.000 que vale la pena echarte fuera en su lugar, es basado en un múltiplo de desviaciones estándar, que es un poco más de una cosa de principio para Dio y nuestra media será, bueno, más significativa ahora también. Adelante y ejecutemos esto antes de que me olvide. Entonces ahora si calculamos la media del conjunto de datos filtrados que está de vuelta cerca de $27,000 tus resultados serán un poco diferentes por la aleatoriedad involucrada. Pero sí filtramos con éxito son multimillonarios sin tener que codificar duro un
caso especial para ellos. Solo somos manera muy de principios rechazando los valores atípicos más allá de dos desviaciones estándar de la mediana. Eso es, ah, cosa
razonable de hacer. Entonces aquí está la actividad, si quieres jugar con esto algunos más en lugar de un solo aliado multimillonario, o agregar varios mentirosos generados aleatoriamente a los datos, ya
sabes, elige un rango de valores ahí y solo tirarlos ahí dentro. Experimentar con diferentes valores del múltiplo, la desviación estándar para identificar esos valores atípicos y ver qué efecto tiene en los
resultados finales . Es solo, ah, oportunidad de ponerte las manos en esto y jugar un poco más directamente, si quieres. Entonces dale un tiro a eso si quieres, y luego vamos a seguir adelante
64. Ingeniería de funciones y el Curse la dimensionalidad: Vamos a sumergirnos en el mundo de la ingeniería de características, en el mundo del machine learning. ¿ Qué es la ingeniería de características de todos modos? Bueno, básicamente es el proceso de aplicar lo que sabes de tus datos para especie de recortar las características que estás usando o tal vez crear nuevas características o transformar las características que tienes. A lo que me refiero con característica también. Esos son los atributos de tus datos de entrenamiento que las cosas que estás entrenando, tu ancho de modelo. Tomemos un ejemplo. Entonces digamos que estamos tratando de predecir cuánto dinero gana la gente en base a diversos atributos de la gente. Entonces tus rasgos en ese caso podrían ser la edad de una persona, su altura, su peso, su dirección, qué tipo de auto manejan, cualquier número de cosas, ¿verdad? Algunas de esas cosas van a ser relevantes para las cosas que estás tratando de predecir y algunas de ellas no lo serán. Por lo que el proceso de ingeniería de características es en parte, sólo seleccionar qué características son importantes para lo que estoy
tratando de predecir y elegir esas características sabiamente. Muchas veces necesitas transformar esas características de alguna manera también. A lo mejor los datos brutos no son útiles para este modelo específico que estás usando. A lo mejor las cosas necesitan normalizarse o escalarse de alguna manera, están codificadas de alguna manera específica. A menudo tendrás cosas como datos faltantes. En el mundo real, muchas veces no tienes datos completos para cada punto de datos. Y la forma en que elijas lidiar con eso puede influir
mucho en la calidad del modelo resultante que tienes. También a veces quieres crear nuevas características a partir de las existentes que tienes. Quizás las tendencias numéricas en los datos que tienes para una característica dada estén mejor representadas al tomar el registro de ahí, el cuadrado de la misma o algo así. O tal vez estés mejor tomando varias características y
combinándolas matemáticamente en una para reducir tu dimensionalidad. De esto se trata la ingeniería de características. No puedes simplemente tomar todos los datos que tienes y arrojarlos a esta gran tolva de aprendizaje automático y esperar que salgan cosas buenas en el otro extremo. Este es realmente el arte del aprendizaje automático. Aquí es donde se aplica tu pericia para realmente obtener buenos resultados de ella. No es solo un proceso mecánico donde sigues estos pasos, tomas todos los datos que tienes, lo
arrojas a este algoritmo y ves qué predicciones haces. Eso es lo que separa a los buenos practicantes del aprendizaje automático de los malos. Los que realmente pueden hacer la ingeniería de características son los que son los más exitosos y valiosos en el mercado de trabajo, por supuesto. Y esto no son cosas que generalmente se enseñan, ¿verdad? Entonces esto es en gran parte un montón de cosas que se aprenden a través de la experiencia y realidad estar ahí fuera en el mundo real y practicando el aprendizaje automático. ¿ Por qué es importante la ingeniería de características en primer lugar? Bueno, se trata de la maldición de la dimensionalidad. ¿A qué nos referimos con eso? Bueno, como dije, no se
puede simplemente lanzar cada característica que se tiene a la máquina y esperar que sucedan cosas buenas. Demasiadas características en realidad pueden ser muy problemáticas por algunas razones diferentes. En primer lugar es que al menos un dato escaso. Entonces nuevamente, volvamos al ejemplo de tratar de entrenar un modelo sobre atributos de las personas. Hay cientos de atributos sobre una persona a la que se podría llegar, ¿verdad? Como dijimos, edad, altura, peso, ¿qué auto conduces? ¿ Cuánto dinero ganas? ¿Dónde vives? ¿Quién sabe? ¿ A dónde fuiste a la universidad? El listado sigue y sigue y sigue. Y en realidad puedes imaginar a cada persona como un vector en el espacio dimensional de todas estas características. De acuerdo, así que quédate conmigo aquí. Imagínese, por ejemplo, que la única característica que tenemos es la edad de una persona. Podrías representar a una persona por un vector a lo largo de un solo eje de edad, derecha, pasando de 0 a un 100 o lo que sea. Ahora lanzamos en otra dimensión, dicen su altura. Tenemos otra dimensión y otro eje al que tenemos este vector señalando que codifica tanto su edad en un eje como su altura en otro, ¿verdad? Entonces ahora tenemos un vector bidimensional tirado allí una tercera dimensión, digamos cuánto dinero ganan. Ahora tenemos un vector en tres dimensiones donde una dimensión es su edad, una dimensión es su altura, una dimensión es la cantidad de dinero que ganan. Y a medida que seguimos agregando cada vez más dimensiones, el espacio disponible con el que tenemos que trabajar solo sigue explotando, ¿verdad? Esto es lo que llamamos la maldición de la dimensionalidad. Entonces, cuantas más características tengas, mayor será
el espacio en el que podemos encontrar una solución está dentro. Y tener un gran espacio
en el que tratar de encontrar la solución adecuada sólo hace que sea mucho más difícil encontrar esa solución óptima. Por lo que cuantas más características tenga, más escasos serán sus datos dentro de ese espacio de solución. Y cuanto más difícil es encontrar realmente la mejor solución. Por lo que es mejor que hierva esas características hasta las que más importan, eso le dará menos datos escasos y hará que sea mucho más fácil encontrar la solución correcta. Además, solo desde el punto de vista del rendimiento, imagina intentar crear una red neuronal que tenga entradas para cada una de esas características codificadas de la manera que necesite, ¿verdad? Esta red neuronal tendría que ser masiva, extremadamente ancha en la parte inferior, probablemente extremadamente profunda también para encontrar realmente todas
las relaciones entre estas muchas características. Y sólo va a ser ridículamente difícil conseguir que eso converja en cualquier cosa. Por lo que una gran parte del éxito en el aprendizaje automático no es solo usar el algoritmo, no solo limpiar tus datos, sino también elegir los datos que estás usando en primer lugar. Y de eso se trata la ingeniería de características. Nuevamente, mucho de esto se reduce al conocimiento de dominio y especie de usar tu sentido común sobre lo que funcionará y lo que uno haría hacia mejorar tu modelo y simplemente experimentar con cosas diferentes. ¿ Qué hace un efecto y qué no, qué ayuda, qué duele las cosas? Entonces, mucho de esto solo va de ida y vuelta con ¿esta característica ayuda a las cosas? No. Está bien. No lo vamos a usar. ¿ Esta característica ayuda a las cosas? No. Está bien. Prueba otra cosa. Ahora no siempre hay que adivinar para ser justos, hay algunas formas más de principios de hacer la reducción de dimensionalidad. Por lo que uno de ellos se llama PCA Análisis de Componentes Principales. Pca es una forma de tomar todas esas dimensiones más altas, todas esas características diferentes que tienes y destilarlas hacia abajo en un menor número de características a un menor número de dimensiones. Y trata de hacerlo de una manera que preserve la información lo mejor posible. Entonces, quiero decir, si tienes suficiente poder computacional para usar realmente PCA en un gran conjunto de características que es una forma más de principios de destilarlo hasta las características que realmente importan. Y las características con las que terminas no son en realidad cosas en las que puedes poner una etiqueta. Solo son características creadas artificialmente que capturan la esencia de las características con las que empezaste. K-means clustering es otra forma de hacer esto. Lo bueno es que ambas son técnicas no supervisadas, así que en realidad no tienes que entrenarlas en nada. Simplemente puedes lanzar los datos de características que tienes cualquiera de estos algoritmos y se hervirá si lo deseas, un conjunto más pequeño de dimensiones que funcionará igual de bien, ojalá de cerca también. Pero de nuevo, más características no es mejor. Eso lleva a lo que llamamos la maldición de la dimensionalidad. Y esa es una de las principales razones por las que queremos hacer ingeniería de características. Y una de las principales cosas que vas a estar haciendo en ese proceso.
65. Técnicas de imputación para perder: Por lo que una gran parte de la ingeniería de características es la imputación de datos faltantes. ¿ Qué haces cuando a tus datos le faltan elementos de datos? Esto es lo que sucede en el mundo real. Por cada observación que tengas, va a
haber algunos puntos de datos faltantes más que probables. Bueno, es solución simple se llama simplemente reemplazo medio. La idea es que si tienes unos atributos o características faltantes dentro de una de las filas de tus datos, solo reemplácelo por la media de toda la columna. Y recuerda, estamos hablando de columnas, no de filas aquí. Se quiere tomar la media de todas las demás observaciones de esa misma característica, realmente no tiene sentido tomar la media de todas las demás características para esa fila, ¿verdad? Entonces el reemplazo medio es todo sobre tomar la media de esa columna y reemplazar todos los valores vacíos por esa media. Por lo que es fascina fácil. Esos son algunos de los positivos de este enfoque. Tampoco afecta la media o el tamaño de la muestra de
su conjunto de datos general porque simplemente está reemplazando los datos que faltan por la media. No afectará la media general de todo el conjunto de datos, lo cual puede ser agradable. Ahora, un matiz es que si tienes muchos valores atípicos en tu conjunto de datos, que también es algo con lo que tienes que lidiar a la hora de preparar tus datos. Es posible que encuentres que la mediana es en realidad una mejor opción que la media. Entonces si tienes un conjunto de datos de un montón de personas y tal vez una de esas columnas como ingreso. Y algunas personas no reportan sus ingresos porque piensan que es sensible. Podrías tener a tu medio sesgado por un puñado de millonarios y multimillonarios en tu conjunto de datos. Entonces si te refieres a imputación y esa es una especie de situación en la que tienes valores atípicos. Es posible que termines con un valor excesivamente alto o demasiado bajo que estás usando para reemplazo. Entonces si tienes valores atípicos que están sesgando a tu media, es posible que quieras pensar en usar la mediana en su lugar. Eso será menos sensible a esos valores atípicos. Pero en términos generales, no es la mejor opción para la imputación. En primer lugar, sólo funciona a nivel de columna. Entonces, si hay correlaciones entre otras características en su conjunto de datos, no
va a retomar en esas. Entonces si hay una relación entre digamos, edad e ingresos, esa relación se va a perder totalmente. Entonces puedes terminar diciendo que un niño de 10 años está ganando, ya sabes, 50 mil dólares al año porque ese es el medio de tu conjunto de datos, pero realmente no tiene sentido, ¿verdad? Es decir, un joven de 15 años no estaría ganando tanto dinero todavía. Entonces es un enfoque muy ingenuo desde ese punto de vista. El otro tema es que realmente no se puede usar en características categóricas. ¿ Cómo se toma la media de una pieza categórica de datos que simplemente no tiene sentido, verdad? A pesar de que podría usar el valor más frecuente que aparece la categoría más comúnmente vista sería algo razonable de hacer en ese caso,
es una especie de en el mismo espíritu es el reemplazo medio, pero no realmente lo mismo. En general aunque no va a ser un método muy preciso. Es un intento muy mandado de jamón de hacer imputación. Entonces, aunque es rápido y fácil y tiene algunas ventajas en la práctica. Si alguien te está pidiendo decir en un examen de certificación, ¿cuál es la mejor manera de hacer la imputación de datos? Reemplazo medio probablemente ¿no es así? También probablemente no sea solo dejar caer las filas que faltan. Aunque como hemos visto a veces eso es algo razonable de hacer. Si tienes suficientes datos de tal manera que soltar unas cuantas filas no
importa si no tienes demasiadas filas que contienen datos faltantes. Bueno, no suena tan irrazonable. La otra cosa también es que quieres asegurarte de que
dejar caer a la Rosetta tener datos faltantes no sesgue tu conjunto de datos. Y alguna, de alguna manera, si hay una relación real entre
qué filas faltan datos y algún otro atributo de esas observaciones. Por ejemplo, digamos que estamos viendo los ingresos. Otra vez. Podría haber una situación en la que las personas que tienen ingresos
muy altos o muy bajos tengan más probabilidades de no denunciarlo. Por lo que al eliminar o dejar caer todas esas observaciones, en realidad
estás eliminando a mucha gente que tiene ingresos
muy altos o bajos de tu modelo. Y eso podría tener un efecto muy malo en la precisión del modelo con el que terminas. Entonces quieres asegurarte de que si vas a soltar datos, que no va a sesgar el conjunto de datos de alguna manera como subproducto, ¿verdad? Por lo que es una cosa muy rápida y fácil de hacer. Probablemente la cosa más rápida y fácil de hacer. Literalmente puedes hacer esto en una línea de código en Python, pero probablemente nunca sea el mejor enfoque. Entonces de nuevo, si un examen te está preguntando ¿cuál es la mejor manera de imputar datos faltantes? Dejar caer datos probablemente no es la respuesta correcta. Casi cualquier cosa va a ser mejor. A lo mejor podrías simplemente sustituir un campo similar, ¿verdad? Es decir, esa también sería una forma sencilla de hacerlo. Por ejemplo, podría tener un conjunto de datos de opiniones de clientes en películas, ¿verdad? A lo mejor si tengo un resumen de revisión y una revisión de texto completo también, tendría más sentido simplemente tomar el resumen de revisión y copiar eso en el texto completo para las personas que dejaron el texto completo en blanco. A modo de ejemplo, casi cualquier cosa es mejor que simplemente dejar caer datos. Pero en el mundo real, si solo estás tratando de hacer algo rápido y sucio y algo así como empieza a experimentar con algunos datos solo para empezar a jugar con él. Puede ser algo razonable de hacer. Simplemente no dejaría eso en su lugar para la producción necesariamente. Lo que probablemente realmente quieres hacer en producción es usar aprendizaje
automático en sí mismo para imputar que te faltan datos en tu entrenamiento de aprendizaje automático. Entonces es una especie de cosa de Meta. Existen diferentes formas de hacer esto. uno se le llama KNN, que significa k vecinos más cercanos. Y si tienes alguna experiencia con el aprendizaje automático, probablemente
sepas lo que ya es eso. La idea general es encontrar el k donde k es algún número de la rosa más similar a las que estás mirando que tiene datos faltantes y acaba promediar juntos los valores de esas filas más similares. Por lo que te puedes imaginar tener algún tipo de métrica de distancia entre cada fila. A lo mejor es solo la distancia euclidiana entre las características normalizadas dentro de cada fila o algo así. Y si encuentras las, digamos, 10 filas más cercanas que son más parecidas a la que faltan datos. Simplemente puedes tomar el promedio de esa característica de esas diez filas más similares e imputar el valor de eso. Para que eso aproveche las relaciones entre
las otras características de su conjunto de datos, lo cual es algo bueno. Un problema con eso sin embargo, es que esa idea asume que tienes datos
numéricos que estás tratando de imputar y no datos categóricos. Es difícil tomar el promedio de una categoría, pero hay formas de hacerlo con las técnicas como la distancia de martillo. Pero N generalmente es un mejor ajuste para los datos numéricos, no categórico. Si tienes datos categóricos, probablemente
te sirvan mejor desarrollando realmente un modelo de aprendizaje profundo. Las redes neuronales son grandes en hacer problemas de categorización. Entonces la idea sería construir realmente un modelo de aprendizaje automático para imputar los datos para tu modelo de aprendizaje automático, ¿verdad? Es una especie de ciclo ahí. Y eso funciona realmente bien para datos categóricos. Realmente bien, es difícil ser aprendizaje profundo en estos días. No obstante, por supuesto que es complicado. También hay mucho código involucrado en mucha afinación. Pero es difícil ser los resultados si realmente tienes un modelo de aprendizaje profundo que trate predecir lo
que falta una entidad basada en otras características de tu conjunto de datos. Eso va a funcionar. Mucho trabajo, mucho esfuerzo computacional, pero te va a dar los mejores resultados. También puede simplemente hacer una regresión múltiple en las otras características que están en su conjunto de datos. Eso también es algo totalmente razonable de hacer. Y tres regresiones, puede encontrar relaciones
lineales o no lineales entre su entidad faltante y las demás características que están en su conjunto de datos. Y existe una técnica muy avanzada a lo largo de estas líneas llamada ratones, que representa una imputación múltiple por ecuaciones encadenadas. Es un poco el estado del arte en este espacio ahora mismo por imputar datos faltantes. Entonces, está bien, y finalmente, probablemente la mejor manera de lidiar con los datos que faltan es simplemente obtener más datos. Entonces si tienes un montón de filas que tienen datos faltantes, tal vez solo tienes que esforzarte más para obtener datos más completos de las personas. Y es difícil estar solo obteniendo más datos reales para que simplemente no tengas que preocuparte por todas las carreteras que tenían datos faltantes. Nuevamente, desea tener cuidado de que si está cayendo datos, que no esté sesgando su conjunto de datos de alguna manera. Pero realmente la mejor manera de
lidiar con no tener suficientes datos es a medida que solo obtienes más de ellos, a veces solo tienes que volver atrás y averiguar de dónde
venían esos datos y recolectar más datos de mejor calidad. Y así cuanto más datos de calidad tengas entrando en tu sistema, mejores serán los resultados que obtendrás. Y si bien las técnicas de imputación son una forma de encubrir temas donde simplemente no tienes suficientes datos y no puedes obtener más de ellos. Siempre es una buena idea simplemente obtener más y mejores datos si puedes.
66. Manejar datos desequilibrados y SMOTE: Otro problema en el mundo de la ingeniería de características es el manejo de datos desequilibrados. ¿ A qué nos referimos con eso? Bueno, supongamos que tenemos una gran discrepancia entre nuestros casos positivos y negativos en nuestros datos de entrenamiento. Entonces un ejemplo común está en el mundo de la detección de fraudes. El fraude real es bastante raro, ¿verdad? Por lo que la mayoría de tus datos de entrenamiento van a contener filas de entrenamiento que no son fraudulentas. Esto puede llevar a dificultades para construir
realmente un modelo que pueda identificar el fraude porque tenía tan pocos puntos de datos de los que aprender en comparación con todos los puntos de datos no fraudulentos. Entonces es muy fácil para una modelo decir, vale, bueno, ya que el fraude en realidad solo ocurre como el 0.01% del tiempo, solo
voy a predecir que no es fraude todo el tiempo. Y oye, mi precisión es impresionante ahora, ¿verdad? Entonces, si tienes un conjunto de datos desequilibrado como ese, puedes terminar en una situación como esa en la que tienes un modelo de aprendizaje automático que parece que tiene una alta precisión, pero solo es adivinar que no cada vez. Y eso no es útil, ¿verdad? Por lo que hay formas de lidiar con esto en la ingeniería de características. Ahora, antes que nada, no dejes que la terminología te confunda. Esto en realidad es algo que me colgaron mucho al principio cuando digo casos positivos y negativos, no
estoy hablando de buenos y malos, así que no confundáis positivo y negativo con un positivo, un desenlace negativo. Positivo simplemente significa, ¿es esto lo que estoy probando? ¿Es eso lo que pasó? Entonces eso podría ser fraude, ¿verdad? Entonces si yo, si mi modelo está tratando de detectar fraude, entonces el fraude es el caso positivo. A pesar de que el fraude es algo muy negativo. Recuerda, positivo es justo lo que estás tratando de detectar, sea lo que sea que sea. Entonces golpea eso en tu cabeza porque si
sigues confundiendo lo positivo y lo negativo con juicios morales. Ahora de qué se trata en esto, en este contexto, esto es principalmente un problema con las redes neuronales por cierto. Entonces es un problema real que si tienes un conjunto de datos desequilibrado como este, probablemente no va a aprender lo correcto y tenemos que lidiar con eso de alguna manera. ¿ Cuál es una forma de lidiar con ello? solo sobremuestreo es una solución simple. Entonces solo toma muestras de tu clase minoritaria. En este ejemplo de fraude, basta con tomar más de esas muestras que se
sabe que son fraude y copiarlas una y otra vez. Hacer un ejército de clones, si se quiere, de sus casos de prueba fraudulentos. Y se puede hacer eso al azar. Se pensaría que eso en realidad no ayudaría, pero sí con una red neuronal. Entonces eso es algo muy sencillo que puedes hacer. Simplemente fabrica más de tu caso minoritario haciendo copias de otras muestras de ese caso minoritario. El otro camino se puede ir como submuestreo. Entonces, en lugar de crear más de tus casos minoritarios, quita los mayoritarios. Entonces, en el caso del fraude, estaríamos hablando de solo eliminar algunos de esos casos no fraudulentos para equilibrarlo un poco más. No obstante, tirar datos a la basura no suele ser la respuesta correcta. Es decir, ¿por qué alguna vez querrías hacer eso? Estás descartando información, ¿verdad? Entonces el único momento en que el submuestreo podría tener sentido es si
específicamente estás tratando de evitar algún problema de escalado con tu entrenamiento, ¿verdad? A lo mejor solo tienes más datos de los que puedes manejar y el hardware que te dan. Y si tienes demasiados datos para procesar y manejar realmente, bien, tirar parte del caso mayoritario podría ser algo razonable de hacer, pero la mejor solución sería obtener más potencia computacional, ¿no? Y en realidad escalar esto en un clúster o algo así. Por lo que el submuestreo, por lo general no es el mejor enfoque. Algo que es incluso mejor que submuestreo o el sobremuestreo es algo llamado ahumado. Y esto es algo que podrías ver representa
una técnica de sobremuestreo de minoría sintética, una
especie de acrónimo creativo. Lo que hace es que genera artificialmente nuevas muestras de la clase minoritaria usando vecinos más cercanos. Entonces al igual que hablamos de usar KNN para imputación, misma idea aquí. Estamos ejecutando k-vecinos más cercanos en cada muestra de la clase minoritaria. Y luego creamos nuevas muestras a partir de esos resultados de KNN tomando la media de esos vecinos. Entonces en lugar de solo, ya sabes, hacer
ingenuamente copias de otros casos de prueba para la clase minoritaria. En realidad estamos fabricando unos nuevos basados en promedios de otras muestras y fabricándolos de esa manera funciona bastante bien. Por lo que ambos genera nuevas muestras. Y bajo muestras la clase mayoritaria de estiércol, que es bueno. Entonces esto es mejor que simplemente sobremuestrear haciendo copias porque en realidad está fabricando nuevos puntos de datos que tienen alguna base en la realidad todavía. Entonces recuerda, si estás tratando con datos
desequilibrados, ahumado es una muy buena opción. Un enfoque más simple para es simplemente ajustar los umbrales cuando realmente estás haciendo inferencias y realmente aplicando tu modelo a los datos que tienes. Entonces cuando estás haciendo predicciones para una clasificación, digamos fraude o no fraude, vas a tener algún tipo de umbral de probabilidad a la que dices, Vale, esto probablemente sea fraude. La mayoría de los modelos de aprendizaje automático, por lo que acaba de generar un fraude o no un fraude. En realidad te dará algún tipo de probabilidad de que sea fraude o no fraude. Y tienes que elegir un umbral de probabilidad en el que dices, Vale, esto probablemente sea fraude, merece alguna investigación. Entonces si tienes demasiados falsos positivos, cuando arreglamos eso, Es sólo aumentar ese umbral, ¿verdad? Por lo que eso está garantizado para reducir tu tasa de falsos positivos, pero viene a costa de más falsos negativos. Entonces antes de hacer algo como esto, que pensar en el impacto que tendrá ese umbral. Entonces si elevo mi umbral, eso significa que voy a tener menos cosas reales que están señaladas como fraude, eso significa que echo de menos alguna transacción fraudulenta real sehr, pero no voy a estar molestando a mis clientes tanto diciendo, Oye, vuelo esto como fraude, apago tu tarjeta de crédito. En realidad podría querer el efecto contrario, ¿verdad? A lo mejor quiero ser aún más liberal y cuando estoy señalando como fraude, así que bajaría ese umbral para realmente conseguir más casos de fraude que estén señalados. Y el fraude podría ser un caso en el que es mejor adivinar mal si no es fraude que al revés, ¿verdad? Por lo que debes pensar en el costo de un falso positivo versus un falso negativo y elegir tus umbrales en consecuencia.
67. Estanque, transforma, codificar y Shuffling: Pasemos rápidamente por algunas otras técnicas que podrías usar en el proceso de ingeniería de características. uno se le llama binning. El ID aquí es solo para tomar sus datos numéricos y transformarlos en datos
categóricos agrupando estos valores juntos en función de rangos de valores. Entonces como ejemplo, tal vez tengo las edades de las personas en mi conjunto de datos. Podría poner a todos en sus 20 años en un cubo,
cada uno sus 30 en otro cubo y así sucesivamente y así sucesivamente. Eso sería un ejemplo de binning donde solo estoy poniendo a todos en un rango dado en una categoría determinada. Entonces en lugar de decir que tenemos que entrenar basándonos en el hecho de que tienes 22 y tres meses de edad. Yo sólo voy a meterte en la prohibición de los 20 años de edad, cierto. Por lo que he cambiado ese número de 22, sea lo que sea, en una categoría de 20 algosos. Entonces eso es todo pujar es. ¿ Por qué querrías hacer eso? Bueno, hay algunas razones. Una es que a veces estás, tienes cierta incertidumbre en tus mediciones. Entonces tal vez tus mediciones no sean exactamente precisas y en realidad no estás agregando ninguna información diciendo que esta persona tiene 22.37 años frente a 22.38 años. A lo mejor algunas personas recordarían el cumpleaños equivocado
o algo así, o les preguntas en días diferentes y como resultado tienes valores diferentes. Por lo que el binning es una forma de encubrir con precisión en tus mediciones. Esa es una forma de ti, esa es una razón. Otra razón podría ser que realmente quieres usar un modelo que funcione con datos categóricos en lugar de datos numéricos. Eso es algo cuestionable de estar haciendo porque
básicamente estás tirando algo de información por binning, ¿verdad? Entonces si estás haciendo eso, deberías pensar mucho en por qué estás haciendo eso. El único motivo realmente legítimo para hacer esto es si hay incertidumbre o errores en tus mediciones subyacentes reales de los que estás tratando de deshacerte. Ahora también hay algo llamado rango de cuantiles que debes entender. El aspecto bonito del binning de cuantiles es que a categoriza tus datos por su lugar en la distribución de datos. Por lo que asegura que cada uno de sus bins tenga un número igual de muestras dentro de ellos. Por lo que con los cuantiles flexión, me aseguro de tener mis datos distribuidos tal manera que tenga el mismo número de muestras en cada sido resultante. A veces eso es algo útil hacerlo recuerda, rango de
cuantiles tendrá tamaños pares en cada bin. Otra cosa que podríamos hacer es transformar nuestros datos. Aplicar algún tipo de función a nuestra característica es hacerla más adecuada para nuestros algoritmos. Entonces, por ejemplo, si tienes datos de entidad que tengan una tendencia exponencial dentro de ella, eso podría beneficiarse de hacer una transformación logarítmica en ella para hacer que esos datos se vean más lineales. Eso podría ayudar a tu modelo y realmente encontrar tendencias reales en él. En ocasiones, los modelos tienen dificultades con la entrada de datos no lineales en él. Un ejemplo del mundo real es YouTube. Publicaron un artículo sobre cómo funcionan sus recomendaciones, lo cual es una gran lectura por cierto, hay una referencia a eso en la diapositiva aquí. Tienen una sección completa sobre ingeniería de características ahí que podría resultar útil. Y una cosa que hacen es por cualquier salida numérica que tengan, ya
sabes, por ejemplo, ¿cuánto tiempo ha pasado desde que viste el video? También se alimentan en la plaza de eso y la raíz cuadrada de la misma. Y la idea ahí es que puedan aprender funciones
súper y sub lineales en los datos subyacentes de esa manera. Entonces no solo están lanzando, los valores
crudos también están lanzando en la plaza y la raíz cuadrada
solo para, solo para tener cuidado y ver si en realidad
son tendencias no lineales ahí que deberían estar recogiendo. Encontraron eso, que en realidad Mejorar sus resultados. Entonces ese es un ejemplo de transformación de datos. No necesariamente está reemplazando los datos con una transformación. A veces realmente estás creando una nueva característica a partir de la transformación de una existente. Eso es lo que está pasando aquí. Por lo que se están alimentando tanto en la característica original x como en x cuadrada como en la raíz cuadrada de x Puedes ver en esta gráfica aquí por qué tal vez quieras hacer eso. Entonces si estoy empezando con una función de x aquí y la línea verde, se
puede ver que al tomar el LN, el logaritmo de eso, termino con una relación lineal en su lugar, lo que podría ser más fácil para que las millas suban. También podría borrar eso a una potencia superior, lo que en realidad empeoraría las cosas en este caso,
pero, pero, a veces más datos es mejor. De nuevo, estamos hablando de la maldición de la dimensionalidad, así que hay un límite para eso, pero de eso se trata la ingeniería de características. Tratar de encontrar ese equilibrio entre tener suficiente información y demasiada información. Otra cosa muy común que harás mientras preparas tus datos es la codificación. Y esto se ve mucho en el mundo del deep learning. Por lo que muchas veces tu modelo requerirá un tipo de entrada muy específico y
tienes que transformar tus datos y codificarlos en el formato que tu modelo requiere. Un ejemplo muy común se llama codificación one-hot. De acuerdo, Así que asegúrate de entender cómo funciona esto. La idea es que creara un cubo para cada categoría que tengo. Y básicamente tengo una que representa eso, esa categoría existe y es 0 que representa que no es esa categoría. Veamos este cuadro como ejemplo. Digamos que estoy construyendo un modelo de aprendizaje profundo que trata de hacer reconocimiento de
escritura a mano a las personas dibujando los números del 0 al nueve. Este es un ejemplo muy común que veremos más adelante. Entonces para codificar de un solo caliente esta información. Sé que esto representa el número ocho y para representar eso de una manera codificada de un solo caliente, básicamente tengo 10 cubos diferentes por cada dígito posible que, eso podría representar 0, 1, 2, 3, 4, 5, 6. 7, 8, ó 9. Ahora suelo empezar a contar a 0 aquí. Entonces puedes ver aquí que en la novena ranura
ahí, hay una que representa el número ocho. Y cada otra ranura que hay tiene un 0 que representa que no es esa categoría. Eso es todo una codificación de un solo caliente es. Entonces otra vez, si tuviera uno en esa primera ranura, eso representaría el número 0. Si tuviera uno en la segunda ranura que representara el número uno y así sucesivamente y así sucesivamente. Hacemos esto porque en el aprendizaje profundo, las neuronas generalmente están encendidas o apagadas, están activadas o no están activadas. Por lo que no puedo simplemente alimentar en el número ocho son el número uno en una neurona de entrada y esperar que funcione. No es así como funcionan estas cosas. En cambio, necesito tener este esquema de codificación de un solo caliente donde cada valor de entrenamiento que etiqueta, realidad va a ser alimentado en 10 neuronas de entrada diferentes eran solo una de ellas representa la categoría real que tengo. También podemos hablarte de escalar en la normalización de tus datos. Nuevamente, casi todos los modelos requieren esto también. Muchos modelos prefieren que sus datos de características se distribuyan normalmente alrededor de 0. Y esto también es cierto en la mayoría de las redes neuronales y de aprendizaje profundo. Y como mínimo, mayoría de los modelos requerirán que sus datos de entidad estén al menos escalados a valores comparables. Es decir, hay modelos por ahí que no les importan tanto, como árboles de decisión, pero la mayoría de ellos serán sensibles a la escala de sus datos de entrada. De lo contrario, si tienes características que tienen magnitudes más
grandes aún terminan teniendo más peso en tu modelo del que deberían. Volviendo al ejemplo de la gente, si estoy tratando de entrenar un sistema basado en sus ingresos, que podría ser algún número muy grande como, ya sabes, 50000 y también su edad, que es un número relativamente pequeño como 30 ó 40. No estaba normalizando esos datos abajo a rangos comparables antes de entrenar en él, que los ingresos tendrían un impacto mucho mayor en el modelo que sus edades. Y eso va a resultar en un modelo que no hace un muy buen trabajo. Ahora es muy fácil hacer esto, sobre todo con scikit-learn en Python, tiene un módulo de preprocesador que te ayuda con este tipo de cosas. Tiene algo llamado minmax scalar que lo hará por ti muy fácilmente. Lo único que tienes que recordar es volver a escalar los resultados si lo que estás prediciendo, no son solo categorías y datos numéricos reales. Entonces, a veces si estás prediciendo algo, tienes que asegurarte de volver a aplicar esa escala y revertir para realmente obtener un resultado significativo de tu modelo al final del día. Por último, hablaremos de barajar. Muchos algoritmos se benefician al barajar tus datos de entrenamiento. De lo contrario, a veces hay una especie de señal residual en tus datos de entrenamiento que resulta del orden en el que se recolectaron esos datos. Por lo que quieres asegurarte de que estás eliminando cualquier subproducto de cómo se recolectaron realmente los datos barajándolos y
simplemente aleatorizando el orden que se alimenta en tu modelo. Tan a menudo eso marca una diferencia en la calidad también. Hay muchas historias que he visto donde alguien obtuvo un resultado realmente malo de su modelo de aprendizaje automático, pero simplemente barajando la entrada y las cosas se pusieron mucho mejor. Entonces no olvides hacer eso también. Y ese es el mundo de la ingeniería de largometrajes en pocas palabras.
68. Notas de instalación importante: manera. - ninguna De
ningunamanera, manera, - De
ninguna manera.
69. Instalación de chispa parte 1: en lo que va de este curso, hemos hablado de muchas técnicas generales de minería de datos y aprendizaje automático que
puedes usar tu carrera en ciencias de datos. Pero todos se han estado ejecutando en tu escritorio. Y como tal, ya
sabes, solo
puedes ejecutar tantos datos como una sola máquina puede procesar usando algunas de estas
técnicas usando python y psíquico aprender y lo que no ahora todo el mundo habla de big data, y ya sabes lo que son. Podría estar trabajando para una empresa que sí, tiene big data para procesar big data, lo que significa que en realidad no se puede controlar todo. En realidad no se puede pelearlo todo en un solo sistema que se necesita para calcular realmente. uso de ese recurso es de toda una nube. Es un clúster de recursos informáticos, y ahí es donde entra Apache Spark. Entonces en esta siguiente sección, voy a configurar para que te configures usando Apache Spark y te mostraré algunos ejemplos de usar
realmente Apache Spark para resolver algunos de los mismos problemas que resolvimos usando una sola computadora en el pasado en este curso. Pero lo primero que tenemos que hacer es configurar chispas en tu computadora, así que vamos a guiarte a través de cómo hacer eso. El próximo par de conferencias. Es algo bastante sencillo, pero hay unos cuantos gouaches, así que no te saltes por estas conferencias. Hay algunas cosas a las que debes prestar especial atención para que la chispa funcione con éxito, especialmente en un sistema de ventanas. Y de nuevo, vamos a estar desarrollando estos ejemplos sólo usando tu propia computadora. Pero los mismos ejemplos pueden escalar hasta que realmente se ejecuten en un clúster de Hadoop más adelante, si así lo desea. Entonces, empecemos. Muy bien, vamos a configurar Apache Spark en tu sistema para que realmente puedas sumergirte y empezar
a jugar con él. Una herramienta muy poderosa para administrar big data y hacer machine learning en grandes conjuntos de datos. Ahora vamos a estar ejecutando esto solo en tu propio escritorio por ahora durante este curso, Pero los mismos programas que iban a escribir en esta sección podrían ejecutarse en un clúster de
Hadoop real . Entonces, si tomas los mismos scripts que estaban escribiendo y ejecutándose localmente en tu escritorio y chispa modo independiente, puedes tomar esos mismos scripts y ejecutarlos desde el nodo Maestro de un real que hace clúster y luego dejarlo escalar hasta todo el poder de un clúster y proceso de Hadoop. Conjuntos de datos masivos de esa manera. Entonces, a pesar de que vamos a configurar las cosas para que se ejecuten localmente en tu propia computadora, ten en cuenta que los mismos conceptos que hacemos se escalarán hasta ejecutarse en un clúster
también . Ahora conseguir que se instale chispa en las ventanas implica varios pasos que te guiarán por aquí. Y solo voy a asumir que estás en Windows, porque la mayoría de la gente toma este curso en casa. Hablaremos un poco de tratar con otros sistemas operativos en un momento. Pero aquí, los pasos básicos. Entonces si ya estás familiarizado con, sabes, instalar cosas y lidiar con variables de entorno en tu computadora, entonces solo puedes tomar esta pequeña hoja de tramposos y salir y hacerlo. Pero te guiaré a través de ella un paso a la vez. En los próximos videos, cosas que debes hacer necesitas instalar primero a J. D. K. Eso es un trabajo,
un kit de desarrollo para que solo puedas ir a Dio Sons Website y no descargues eso y instalado si es necesario. Necesitamos el J. D. K porque a pesar de que vamos a estar desarrollando y pitón durante este curso que se traduce bajo el capó al código de Scalia, que es lo que se desarrolla chispa en nativamente y Scalia, a su vez, corre encima del intérprete de Java. Por lo que para poder ejecutar código python, necesitas un sistema de Scala, cual se instalará por defecto con la mejor parte de Smarck. Y también necesitamos Java. El trabajo es intérprete para ejecutar realmente ese código académico. Entonces es como este pastel de capa de tecnología. Obviamente solo eres pitón, Pero si has ido a este punto en el curso, ya
tienes un entorno python configurado. Y afortunadamente, chispa. El sitio Web de Apache pone a disposición versiones preconstruidas de Spark que se acabarán de la caja que están pre compiladas para que las damas hagan versión para que no tengas que construir nada. Simplemente puedes descargar eso a tu computadora y pegarlo en el lugar correcto y ser bueno para ir en su mayor parte. Entonces tenemos algunas cosas de configuración que cuidar. Entonces una cosa que queremos hacer es ajustar nuestro nivel de advertencia, para que no tengamos un montón de lapso de advertencia cuando ejecutemos nuestros trabajos y caminaremos por cómo hacerlo. Básicamente, necesitas cambiar el nombre de uno de los archivos de propiedades y luego ajustar el error, configurándolo dentro de él. Y luego decidimos algunas variables de entorno para asegurarnos de que realmente puedas ejecutar chispa desde cualquier lugar desde cualquier camino que pudieras tener. Por lo que vamos a agregar un ambiente de hogar chispa, variable señalando a donde instalaste chispa, y luego añadiremos Spark home Slash been a tu ruta del sistema para que cuando corras chispa , envíes o pastel o cualquiera que sea el comando de chispa que necesites, sabremos dónde encontrarlo. Por último, en Windows, hay una cosa más que tenemos que hacer. Tenemos que estudiar Hadoop Home Variable. Está bien, porque va a esperar encontrar un poco de Hadoop, aunque no estés usando Hadoop en tu sistema independiente, y luego necesitamos instalar un archivo llamado Win You tills dot eggs e to ese path, y hay un enlace para ganar. Tú labras punto xy dentro del recurso es para esta conferencia para que pueda llegar eso ahí. Entonces si quieres pasearlo con más detalle, podemos hacer esa nota rápida sobre instalar chispa en otros sistemas operativos por lo que básicamente
se aplicarán los mismos pasos . La principal diferencia va a ser y cómo configura las variables de entorno en su sistema tal manera que se aplicarán automáticamente cada vez que inicie sesión. Entonces eso es tipo de variar de O esto s. Mac OS no es diferente de varios sabores de Linux. Entonces vas a tener que estar al menos un poco familiarizado con el uso de un
símbolo del sistema de terminal UNIX y cómo manipular tu entorno para hacer eso. Pero ya sabes, mayoría de los usuarios de Mac OS o Lennox que estaban haciendo desarrollo ya tienen esos fundamentos bajo su cinturón. Y por supuesto, no
vas a necesitar cuando muelas huevos de punto e si no estás en Windows. Entonces esas son las principales diferencias para instalar en diferentes sistemas operativos está bien, empecemos realmente instalando un J. D. K. Así que te guiaré por eso muy rápido y luego en nuestra próxima conferencia, pasará por todos los demás detalles de conseguir configurar con chispa. Entonces, como mencioné antes la chispa corre encima de vieira, que a su vez se ejecuta en la parte superior del entorno Java. Entonces si no tienes ya trabajo un kit de desarrollo instalado en tu sistema, necesitarás ir por uno y solo caminar por eso de verdad rápidamente. Sólo tienes que ir a tu buscador favorito y buscar J. D. K. caso de subir. Simplemente toma el más reciente que confinaste, y eso debería redirigirte a ti, el sitio web de Oracle. Y solo quieres seleccionar la versión que sea adecuada para tu sistema. Entonces en Windows, voy a aceptar el acuerdo de licencia. Voy a buscar la versión de Windows X 64 en mi ejemplo. Por lo que estoy ejecutando una versión de 64 bits de windows. Adelante y baje eso. Viene y 100 87 megabytes después. Deberíamos tener algo que podamos instalar, así que nada especial aquí. Ya sabes que es solo tu instalador estándar, pero ese es el paso uno para conseguir java olvidando la chispa instalada en la parte superior corriendo en tu sistema. Ahora en nuestra próxima conferencia seguirá adelante y hablará de los pasos restantes los cuales están instalando chispa en sí y luego todos los archivos de configuración asociados y también un poco extra gotcha y windows. El archivo de salida de punto cuando se labra que necesita ser instalado en un lugar especial. Por lo que estamos llegando, y esta descarga también está llegando. Se da click en eso. Ella sólo te guiará a través de un instalador estándar para el kit de desarrollo Java SC. Así que solo adelante y probablemente está bien. Simplemente fue aceptar todos los incumplimientos y dejar que haga lo suyo, y eso es todo lo que hay. Entonces pasemos a los siguientes pasos. Está bien, estamos en camino de conseguir que se configure chispa en tu computadora. Tenemos una instalación de J. D. K. Ese es el paso uno. Entonces pasemos a los pasos restantes en la próxima conferencia.
70. Instalación de chispa parte 2: todo bien. Hay un montón de pequeños detalles niggly que necesitamos trabajar para conseguir chispa realmente puesta en marcha y funcionando en tu escritorio en modo independiente. Así que vamos a pasar por todos ellos y sacarlo del camino. Entonces, hasta el momento, hemos instalado Python. Hemos instalado Java la necesidad de instalar la chispa en sí misma la próxima semana. Por lo que volver a una nueva pestaña del navegador aquí acaba de decir a punto chispa Apache dot o GTA y haga clic en el botón de chispa de descarga amigable
grande. De acuerdo, ahora, este curso ha sido probado con encendido 2.1 punto uno. Entonces, ya
sabes, dada la elección cualquier cosa más allá de 2.0, debería funcionar bien. Pero ahí es donde estamos hoy. Asegúrate de obtener una versión pre construida, ¿de acuerdo? Y sólo vamos a hacer unas descargas directas. Por lo que todos estos valores por defecto aire perfectamente bien. Adelante y descarga ese paquete. Ahora, lo que está descargando es un archivo T GZ que suena para tar y Jesus. Entonces otra vez, chispa, Ya
sabes, ventanas es una especie de última hora con chispa, bastante honestamente. Y en windows, no
vas a tener una utilidad incorporada para descomprimir realmente el archivo t gz. Por lo que es posible que necesites instalar uno. Si ya no tienes uno, el que uso se llama rugido del viento. Y puedes recoger eso de un sitio web llamado Raw o nuestros labs dot com igual que eso. Y sólo tienes que ir a la página de descargas si lo necesitas y descargar el instalador para wind rar 32 bit o 64 bit, dependiendo de tu sistema operativo, y eso te permitirá descomprimir realmente. Teague Archivos fáciles en Windows si lo necesitas. Así que golpea, pausa y ve instala eso si es necesario. Si no, volvamos a revisar nuestra descarga de chispa Apache. Aquí. Parece que bajó. Entonces voy a seguir adelante y mostrar eso en mi carpeta Descargas y vamos a seguir adelante y
hacer click derecho sobre eso y extraerlo a una carpeta de mi elección Nuevamente. Winrow está haciendo esto por mí en este punto, acuerdo, así que ahora debería tener una carpeta asociada a ese paquete. Cierto, ahí está. Abramos eso, está
bien. Y hay chispa en sí, así que necesito instalar eso en algún lugar donde lo voy a recordar. No quieres dejarlo en tu carpeta de descargas, obviamente. Entonces sigamos adelante y abramos aquí una nueva ventana Explorador de archivos, y voy a ir a mi unidad C y voy a crear una carpeta nueva y vamos a llamarla chispa. Por lo que mi instalación de chispa va a vivir bajo C colon backs última chispa otra vez. Agradable y fácil de recordar. Abre eso. Voy a ir en el control A para seleccionar todo en el control de distribución de chispas. Ver, para copiarlo de nuevo a donde quiero ponerlo en ver chispa y controlar V para pegarlo. Está bien, ahora, una cosita que tenemos que hacer aquí. Abre la carpeta con donde instalamos Sparked to y renombrado Log for Jadot properties dot template tal que solo te quitas la plantilla. Por lo que solo se debe registrar para propiedades Jadot en su lugar. Sí, seguro que quiero cambiarlo. Y ahora puedo abrir eso si es necesario. Derecha, haga clic ahí y diga abrir con y seleccionar teclado de palabras. Y lo que quiero hacer es cambiar esta línea aquí donde dice información de categoría de ruta. Yo quiero cambiar eso a error. Y eso sólo va a eliminar el desorden de toda la ley expandir que se imprime cuando
corro cosas. Entonces cambia eso de en errores fotográficos. Guárdalo y cierra tu editor. De acuerdo, entonces ahora ¿dónde estamos? Esto es un poco agotador. Hemos instalado python. Hemos instalado Java. Hemos instalado chispa. Ahora, lo
siguiente que tenemos que hacer es instalar algo que engañe a tu PC para
que piense que su dupe existe. Y de nuevo, este paso sólo es necesario en ventanas. Por lo que puedes saltarte este paso si estás en la caballa Lennix. Pero por las pocas personas de ventanas, quiero que vayan a este enlace aquí. Deberían encontrarnos en. El recurso está asociado a esta conferencia sobre plataformas que tiene tal cosa. Pero si quieres, solo
puedes teclear este enlace en ti a mano, ¿de acuerdo? Y si descargas eso, eso te dará una copia de ah, pequeño horno de snippet ejecutar herbal. Eso podría usarse para engañar a chispa para que piense que en realidad tienes a Hadoop. Ahora, como vamos a estar ejecutando nuestros guiones solo localmente en nuestro escritorio, no
es gran cosa. No tenemos que tener un dupe instalado de verdad. Es sólo que de nuevo se pone por ahí otra peculiaridad de correr chispa en las ventanas. Entonces ahora que tenemos eso, vamos a mostrar ese control, Ver, para copiarlo de mi carpeta de descargas y vamos a nuestra unidad C y crear un lugar
para que viva. Por lo que voy a volver a crear una carpeta nueva. Lo vamos a llamar ganar, ustedes tills, y voy a abrir eso cuando ustedes tills carpeta yo hice y crear otra carpeta dentro de ella llamada Been. Y dentro de esa carpeta bin voy a pegar ese archivo que acabo de descargar. De acuerdo, este siguiente paso solo se requiere en algunos sistemas, pero solo para estar seguros, abre un símbolo del sistema en windows para que puedas hacerlo yendo a tu menú de inicio y bajando al Comando del sistema Windows pronta. Y a partir de aquí, quiero que tecleen CD C colon victoria en barra inversa. You tills slash backslash había sido cual es donde nos pegamos nuestro viento util detuvo E X archivos Si haces un d i r. deberías ver que ahí y ahora teclea en lo siguiente cuando labras punto t X, c c h m o d espacio 777, trasera TMP barra inclinada contraria colmena y eso Solo asegúrate de que todos los permisos de archivo que
necesitas para ejecutar realmente chispa con éxito estén en su lugar sin ningún error. Entonces puedes cerrar ese símbolo del sistema Ahora que terminaste con ese paso. Wow, ya casi
terminamos, creíamos o no. Ahora lo último que necesitamos para configurar alguna variable de entorno. Por lo que todo el software sabe dónde encontrarnos. Entonces para hacer
eso, está cerca de este navegador. Sal de todo esto voy a hacer clic derecho en mi icono de Windows y otra vez en diferentes sistemas operativos. Establecerás variables de entorno de diferentes maneras, pero en Windows lo haces a través de tu panel de control y haciendo clic en sistema y sistema de seguridad y luego configuración avanzada del sistema. Y a partir de aquí se hace clic en variables de entorno. Por lo que necesitamos armar unos cuantos aquí. Empecemos. Entonces voy a presionar el nuevo botón para mis variables de entorno de usuario, y empezaré definiendo uno para un hogar de guiones bajos chispa. Y ese va a ser el directorio instalado chispa en el que es C colon chispa de barra trasera. De acuerdo, Siguiente crea otro. A éste se le va a llamar Java subrayado home. Y ahí es donde instalé el J. D. K. Y eso va a ser C colon barra contracorriente J d k Y finalmente, necesito armar un hogar dupe. Ahí sería donde pondría el estudio de ganadora Util, ver archivo. Y eso será sólo el colon C. La barra inversa te ganan labros así como eso. Y por fin necesito actualizar mi camino. Por lo que voy a dar click en la variable de entorno path hit, edit y voy a añadir una nueva ruta. Va a ser por ciento signo, chispa subrayado Inicio por ciento signo barra contraria estado Voy a agregar otro uno por ciento signo Java subrayado Inicio porcentaje Firmar barra atrás Ha estado bien. ¿ Quién? Creo que eso es todo.
71. Introducción: Empecemos con una visión general de alto nivel de Apache Spark y de qué se trata, de
qué sirve para cómo funciona. Vamos a sumergirnos. Permítanme darles una breve visión general de
alto nivel de lo que se trata la chispa Apache. Introducción civil de todo el concepto. Entonces, ¿qué es chispa? Bueno, si vas al sitio web de chispas, te
dan una respuesta ondulada de mano de muy alto nivel. Un motor rápido y general para el procesamiento de datos a gran escala. Se rebanan. Se dice. Hace tu colada. Bueno, realidad
no, pero es un marco para escribir trabajos o scripts que pueden procesar cantidades muy grandes de datos. Y gestiona distribuir ese procesamiento a través de un clúster de computación para ti así que básicamente chispa funciona al permitirte cargar tus datos en estos grandes objetos llamados almacenes de datos distribuidos
resilientes RTG y puede realizar automáticamente operaciones que transformar y crear acciones basadas en esos RTG, que se podría pensar. Es como grandes marcos de datos, básicamente, y la belleza de ello es que la chispa difundirá de forma automática y óptima ese procesamiento entre todo un clúster de computadoras. Si tienes uno disponible por lo que ya no te limitas a lo que puedes hacer en una sola máquina o en la memoria de una sola máquina. De hecho, se puede extender eso hacia fuera a todas las capacidades de procesamiento y memoria que está disponible para un clúster de máquinas. Y en esta época, la informática es bastante barata. En realidad puedes rentar tiempo en un clúster a través de cosas como el mapa elástico de Amazon, reducir el servicio y simplemente rentar algún tiempo en todo un clúster de computadoras por solo unos dólares y ejecutar tu trabajo que no podías ejecutar en tu propio escritorio. Entonces, ¿cómo es escalable? Bueno, es un poco más específico aquí y cómo funciona todo. Entonces la forma en que funciona es que escribes un programa de conductores. Es solo un pequeño guión que se parece a cualquier otro script de python, realidad, Y usa la biblioteca de chispas para realmente correcto. Eres tu script con y dentro de esa biblioteca que defines se llamaba contexto chispa,
que es una especie del objeto de ruta en el que trabajas cuando estás desarrollando y chispa,
y a partir de ahí, el tipo de marco de chispa toma el control y distribuye cosas para ti. Entonces si estás corriendo en modo independiente en tu propia computadora como vamos a estar haciendo en estas próximas conferencias. Todo solo se queda ahí en tu computadora, obviamente. Pero si lo haces se está ejecutando en una chispa de gestor de clústeres y descifrar eso y
aprovecharlo automáticamente , Spark en realidad tiene sus propios gestores de clústeres integrados. En realidad puedes usarlo por sí mismo sin siquiera tener instalado un dupe. Pero si tienes un clúster de Hadoop disponible para ti, también puede usar eso. Por lo que Hadoop es más que reductores de mapa, en realidad un componente de un do llamado un hilo que simplemente se está separando. Toda la pieza de gestión de clústeres de Hadoop y Spark una interfaz con patio realmente usó eso para distribuir de manera óptima. Los componentes de su procesamiento entre el recurso está disponible para ese clúster de Hadoop . Y así, dentro de un clúster, podría
tener tareas ejecutoras individuales que se están ejecutando, y estas podrían estar ejecutándose en diferentes equipos. Podrían estar ejecutándose en diferentes núcleos de una misma computadora, y ellos entre sí en efectivo individual y sus propias tareas individuales que ejecutan y el programa de
conductor que chispa contexto en el gestor de clústeres trabajan juntos para coordinar todos este esfuerzo y devolverte el resultado final. La belleza de la misma es. Todo lo que tienes que hacer es escribir este pequeño guión aquí que utiliza un contexto de chispa para describir
a un alto nivel el procesamiento que quieres hacer sobre estos datos y chispa trabajando junto con el gestor de clústeres que estás usando, descubra cómo para difundir eso y distribuir, para que no tengas que preocuparte por todos esos detalles bien, hasta que no funcione. Obviamente, tal vez
tengas que hacer algunos problemas para averiguar si tienes suficientes recursos disponibles para la tarea que nos ocupa. Pero en teoría, todo
es sólo magia. Ahora. ¿ Cuál es el gran problema de Spark? Es decir, hay tecnologías similares como mapa reduce que han existido más tiempo. Smart es rápido, sin embargo, y en el sitio web afirman que la chispa es hasta 100 veces más rápida que la reducción de mapa cuando se ejecuta un trabajo en memoria o 10 veces más rápido en disco. Por supuesto, las palabras clave aquí están a la altura de su kilometraje puede variar. No creo que alguna vez haya visto algo realmente correr tanto más rápido que lo producido desde, um, bien elaborado mapa bonitos co. En realidad todavía puede ser bastante maldito eficiente. Pero diré que Spark sí facilita muchas operaciones comunes. Ya sabes, mapa reduce te obliga a descomponer realmente las cosas en mapeadores y reductores. Donde desató es un poco más alto de nivel, por lo que no tienes que pensar siempre tanto en hacer lo correcto con Spark. Y parte de eso lleva a otra razón por la que chispas mercado tan rápido. Cuenta con un ingeniero Dag dirigió una chatarra ciclista. Eso es difícil de decir. A dirigido una gráfica cíclica. Diga eso 10 veces rápido. Y si bien esa es otra palabra de fantasía, ¿qué significa? Lo que significa es que la forma en que funciona Spark es que escribes un script que describe cómo procesar tus datos y podrías tener en RTD. Eso es básicamente como un marco de datos, y podrías hacer algún tipo de transformación sobre él o algún tipo de acción sobre él. Pero en realidad no pasa nada hasta que realmente realizas en acción sobre esos datos. Entonces lo que pasa en ese punto es chispa dirá OK, entonces este es el resultado final que quieres en estos datos. ¿ Cuáles son todas las demás cosas que tenía que hacer para llegar a este punto y cuál es la
manera óptima del dedo del pie? Diseñar esa estrategia para llegar a ese punto. Por lo que bajo el capó descubrirá la mejor manera de dividir ese procesamiento y distribuir esa información para obtener el resultado final que estás buscando. Entonces la visión clave aquí es que la chispa espera hasta que le digas que realmente produzca un resultado . Y sólo en ese momento va realmente y se da cuenta de cómo producir ese resultado. Entonces es una especie de, Ah, concepto
genial ahí, y esa es la clave de mucha de su eficiencia. inteligente, Tecnologíainteligente,
muy caliente, relativamente joven. Por lo que todavía está muy emergiendo y cambiando rápidamente. Pero mucha gente grande lo está usando. lo que Amazon, por ejemplo, se afirma que están utilizando en eBay, grupo de Laboratorios de Propulsión Jet de la
NASA en el asesor de viajes Yahoo y muchos, muchos otros. Seguro que hay mucho usándolo que no lo confiesa. Pero si vas a la página wiki de Spark Apache aquí, esa es en realidad una lista que puedes buscar de grandes empresas conocidas que están usando chispa para resolver problemas de datos del mundo
real. Entonces si te preocupa que te estés metiendo en el borde sangrante aquí. No temas. Estás en muy buena compañía con algunas personas muy grandes que están usando chispa en la producción para resolver problemas reales, y es bastante bastante estable en este punto. Tampoco es tan difícil. Tienes tu elección de programación en Python, Java o Scalia, y todos están construidos alrededor del mismo concepto que acabo de describir antes. El resiliente a distribuido conjunto de datos RTD para abreviar, y hablaremos de eso con mucho más detalle en las próximas conferencias. Spark en realidad tiene muchos componentes diferentes que se construye de Así que hay un núcleo de chispa que te permite hacer mucho. Ya sabes, puedes hacer prácticamente cualquier cosa que puedas soñar solo usando funciones de núcleo de chispa solo. Es decir, tengo un curso donde hago todo un sistema er recomiendo solo usando chispa o pero
hay estas otras cosas construidas encima de chispa que también son útiles. Por ejemplo, streaming de
chispas es una biblioteca que te permite procesar datos en tiempo real para que los datos puedan estar fluyendo hacia un servidor, digamos
continuamente desde Weblogs, y la transmisión de chispas puede ayudarte a procesar esos datos en tiempo real a medida que vas para siempre Sparks iguales, te
permite realmente tratar los datos como una base de datos de secuela y en realidad emitir consultas de secuela sobre ella. Lo cual es algo genial si estás familiarizado con la secuela Ya Ml Live es donde nos vamos
a centrar en esta sección. Entonces esa es en realidad una biblioteca de aprendizaje automático que te permite realizar algoritmos comunes de
aprendizaje automático con chispa debajo del capó para distribuir realmente ese procesamiento a través de un clúster para que puedas realizar el aprendizaje automático en conjuntos de datos mucho más grandes de lo que podrías tener de otra manera. Y por último, gráficos. Eso no es para hacerte saber, lindos gráficos y gráficos que se refiere a la gráfica en el,ya
sabes, ya
sabes, sentido de la teoría de
redes. Entonces piensa en una red social, por ejemplo. Ese es un ejemplo de gráfico. Y los gráficos apenas tienen algunas funciones que llevaron a analizar las propiedades de una gráfica de información. Ahora sí consigo algo de flak, a veces sobre usar python cuando estoy enseñando a la gente sobre Apache Spark. Pero ahora hay un método para mi locura. Es cierto que mucha gente usa Kala cuando están escribiendo código de chispa porque en
eso se desarrolla la chispa de forma nativa. Entonces estás incurriendo un poco de sobrecarga por una chispa forzosa para traducir tu
código python a Scala y luego a, ya
sabes, comandos de intérprete de
Java al final del día, pero pitones mucho más fáciles, y no necesitas compilar cosas. Administrar dependencias es mucho más fácil, por lo que puedes liberar enfocar tu tiempo en los algoritmos y en lo que estás haciendo y menos en las minutia de realmente conseguir que se construya en ejecución y compilación y todas esas tonterías. Además, obviamente este curso se ha centrado en Python hasta ahora, y tiene sentido seguir usando lo que hemos aprendido y apegarnos a python. A lo largo de estas conferencias, Sin embargo, diré que si fueras a hacer alguna programación chispa en el mundo real, hay una buena posibilidad de que la gente esté usando Scalia. obstante, Noobstante,no te preocupes demasiado por ello, porque en pastel en chispa python y código vieira y algunos que se ven muy similares porque
todo está alrededor del mismo concepto RTD. La sintaxis es muy ligeramente diferente, pero no es tan diferente. Entonces ya sabes, si puedes averiguar cómo se hace cómo hacer chispa usando python, aprender a usarlo en Scala no es un gran salto, serio? Entonces vamos a ver algunos ejemplos y sumérgete. Entonces esos son los conceptos básicos de chispa en sí y por qué es tan grande y cómo es tan poderoso al permitirte ejecutar algoritmos de aprendizaje automático en conjuntos de datos muy grandes o cualquier algoritmo, ¿
Realmente? Entonces hablemos un poco más de detalle sobre cómo hace eso y el resiliente
data store distribuido a continuación.
72. Spark y el conjunto de datos distribuido con sello Resilient (RDD): Vamos a profundizar un poco más en cómo funciona Spark. Vamos a hablar del data store resiliente a distribuido conocido como nuestro DDS. Es una especie de núcleo que usas una vez que programas
y chispas, y tendremos algunos fragmentos de código para tratar de hacerlo real. Entonces echemos un vistazo. Entonces te vamos a dar una especie de curso acelerado en Apache Spark aquí. Hay mucha más profundidad de la que vamos a cubrir en estas próximas conferencias, pero sólo voy a darles lo básico. Necesitas entender realmente lo que está pasando en estos ejemplos y ojalá que
empieces y apuntes en la dirección correcta. Por lo que la pieza más fundamental de chispa se llama el conjunto de datos resiliente a distribuidos en nuestro d. D. Y este va a ser el objeto que utilizas para realmente cargar y transformar y obtener las respuestas que quieras de la datos que intentas procesar. Por lo que muy importante entenderlo es que representa un conjunto de datos resiliente, distribuido, por lo que es un conjunto de datos. Al final del día. Es solo un montón de filas de información que pueden contener casi cualquier cosa. Pero la clave es el están en la primera D, por lo que es resistente en esa chispa. Asegúrate de que si estás ejecutando esto en un clúster y uno de esos clústeres baja, puede recuperarse automáticamente de eso y volver a intentarlo. Ahora que la resiliencia sólo va tan lejos recordarte si no tienes suficiente recurso está disponible para el trabajo que estás tratando de ejecutar. Todavía fallará, ya
sabes, y tendrás que correr a más. El recurso es a ello, y sólo hay tantas cosas de las que se pueden recuperar. Es decir, hay un límite a cuántas veces reintentará una tarea determinada, pero sí hace su mejor esfuerzo para asegurarse de que ante un
clúster inestable o inestable o una red inestable, seguirá
haciéndose hacer todo lo posible para correr hasta la finalización. Y obviamente se distribuye. Todo el punto de usar chispa es que se puede utilizar para problemas de big data donde
realmente se puede distribuir el procesamiento a través de toda la CPU y potencia de memoria de un clúster de computadoras, y eso podría distribuirse horizontalmente. Buscando era muchas computadoras. Como quieras a un problema dado. Cuanto mayor es el problema, más computadoras Realmente no hay dedo del pie límite superior lo que puedes hacer ahí ahora siempre
comienzas tus guiones de chispa obteniendo un objeto de contexto chispa, y este es el objeto que especie de encarna las agallas de la chispa. Es lo que te va a dar tus rgds para procesar. Entonces es lo que genera los objetos que utilizas en tu procesamiento. Ya
sabes, en realidad no piensas mucho en el contexto de chispa cuando realmente estás escribiendo programas de
chispa, pero es una especie del sustrato que los está ejecutando para ti bajo el capó. Si estás corriendo en el shell de chispa de forma inter activa, tiene un objeto SC ya disponible para ti que puedes usar para crear RTG y otras cosas. Pero en un script independiente, tendrás que crear ese contexto chispa explícitamente, y tendrás que prestar atención a los parámetros que usas porque en realidad puedes decirle al contexto chispa cómo quieres que se distribuya eso. ¿ Debo aprovechar cada núcleo que tengo disponible para mí debería estar ejecutando en un clúster o simplemente de forma independiente en mi computadora local? Entonces ahí es donde configuras una especie de los ajustes fundamentales de cómo funciona el brillo. Entonces veamos algunos pequeños fragmentos de código de realmente crear RTG, y creo que tendrá un poco más de sentido. Entonces aquí hay un ejemplo muy sencillo. Si solo quiero hacer un RTD de un avión viejo lista de Python, puedo llamar a la Función Paralizada y Spark, y eso convertirá una lista de cosas en este caso, solo los números 1234 en un objeto RTD llamado entumecimiento para que sea el más simple caso de crear un RDD a partir de son lista codificada duro de cosas y que se podría venir de cualquier lugar. Tampoco tiene que estar codificado duro. Pero sabes que ese tipo derrota el propósito del big data, ¿
verdad? Es decir, si tengo que cargar todo el conjunto de datos en la memoria antes de poder crear un ya d a partir de él , ¿cuál es el punto? Por lo que también puedo cargar un rdd desde un archivo de texto, y eso podría ser en cualquier lugar. Entonces en este ejemplo, tal vez tenga algún archivo de texto gigante. Eso es, ya
sabes, toda
la enciclopedia o algo así. Y estoy leyendo eso desde mi disco local en este ejemplo, pero eso realmente convertirá cada línea de ese archivo de texto en su propia fila en un r d d Así que se
puede pensar en el RTD es una base de datos de Rose, y en ese ejemplo, cargará mi archivo de texto en un RTD donde cada línea, cada fila contiene una línea de texto, y luego puedo hacer más procesamiento que RTD para analizar o, ya
sabes, romper los er delimitadores en esos datos. Pero de ahí empiezo. Recuerda cuando hablamos de E T l y E L t Así que este es un buen ejemplo de donde realmente podrías estar cargando datos brutos en un sistema y haciendo la transformación en el sistema mismo que utilizabas para consultar tus datos para que pudieras tomar raw archivos de texto que no se han procesado todo y utilizan el poder de chispa. En realidad transforma esos en datos más estructurados. También puede hablar con cosas como colmenas. Entonces si tienes, sabes, un alto existente de base de datos configurado en tu empresa, puedes crear un alto de contexto que esté basado en tu contexto chispa. ¿ Y qué tan genial es esto? En realidad puedes crear un RTD en este caso llamado Rose que se genera al
ejecutar realmente una consulta de secuela en tu base de datos de colmena. Entonces ese es un ejemplo de crear también un RDD. Y también hay más formas de crear RTG. Puedes crearlos a partir de conexiones J. D. D.
BC Entonces, básicamente, cualquier base de datos que admita J DBC también puede hablar,
chispear y tener rgds creados a partir de ella. Cassandra H. Base. La última búsqueda también archivos en formato Jason. Ver archivos de secuencia de formato SV, archivos de
objeto y montón de otros archivos comprimidos como Orc o lo que te tienen. No quiero meterme en los detalles de todos aquellos que puedas, ya
sabes, ir a buscar un libro y buscar esos si es necesario. Pero el punto es,
es muy fácil crear un ya D a partir de datos dondequiera que esté. Ya sea en un file system local o en un data store distribuido es llamar la atención sobre eso nuevamente. Aparecen Estoy cargando desde un archivo local usando el sistema File Earl, pero también podría usar s tres. Y si quiero una anfitriona presentándolo en un cubo distribuido de Amazon s tres o H DFS si quiero referirme
a datos que se almacenan en un clúster H DFS distribuido que eso significa Hadoop sistema de archivos
distribuido. Si no estás familiarizado con H DFS, cuando estás tratando con big data y estás trabajando con un clúster de Hadoop, generalmente ahí es donde vivirán tus datos. Por lo que de nuevo, RTD solo una forma de cargar y mantener cantidades muy grandes de datos y realizar un seguimiento de todo a la vez, pero conceptualmente dentro de su script. Y RTD es sólo un objeto que contiene un montón de datos. Y hay que pensar en la escala porque chispa hace eso por ti. Ahora hay dos tipos diferentes de clases de cosas que puedes hacer en nuestro DDS. Una vez que las
tengas, puedes hacer transformaciones, y puedes hacer acción. Entonces hablemos primero de transformaciones, para que las transformaciones sean exactamente lo que suena. Es una forma de tomar un rdd y transformar cada fila en ese RTD a algún nuevo valor
basado en alguna función que brindes, por lo que mapa y plano son los que verás con más frecuencia. Ambos tomarán cualquier función que puedas soñar que le llevará a su entrada un
RTD roven , y dará salida a una fila transformada. Entonces, por ejemplo, podría
tomar entrada sin procesar de algún archivo Ver SV y su operación de mapa podría tomar esa
entrada y separarla en campos individuales basados en lo común el limitador y
devolver una lista de python, por ejemplo, que tiene esos datos en un formato más estructurado en el que se puede realizar un procesamiento posterior sobre. Y puedes encadenar operaciones de mapas juntas para que la salida de un mapa pueda terminar creando un nuevo RTD que luego haces otra transformación sobre y así sucesivamente y así sucesivamente y de nuevo. El clave está chispeando distribuir esas transformaciones a través del clúster por lo que podría tomar parte de tu RTD y transformarlo en una máquina y otra parte de ti ya en la
transformación en otra. Como dije, el mapa y el plano plano son la transformación más común para ver. La única diferencia es que difieren en ese mapa solo te permitirá generar un valor por cada fila donde sea plana. Mapa permitirá que el realmente emita múltiples nuevas rosas para una rosa dada, lo que en realidad puedes crear un RTD más grande o un RTD más pequeño de lo que empezaste con el uso
del mapa plano . Además, filtro se puede usar si lo que quieres hacer es simplemente crear una función booleana que diga, Debe conservarse este Roby o no? ¿ Sí o no? Y también hubo algunas transformaciones menos utilizadas,
como distintas, como distintas, que solo regresarán a valores apestosos dentro de tu muestra RTD que tomas una
muestra aleatoria de ella. Y luego puedes realizar operaciones de intersección como Unidad Una intersección, restar o incluso producir cada combinación cartesiana que existe dentro de un RTD. Aquí tienes un pequeño ejemplo de cómo podría funcionar. Entonces digamos que creé un RDD justo de la lista. 1234 Puedo llamar entonces RTD dot map con una función lambda de X que toma en cada fila cada valor de ese RTD lo llama X, y luego se aplica a la función. X veces x dos cuadrados it Así que la salida de esto si yo fuera entonces recoger la salida de esta RTD sería 149 y seis porque tomaría cada entrada individual que RTD y la cuadrara y pondría eso en una nueva RTD. De acuerdo, tiene
sentido ahora si no recuerdas cuáles son las funciones Lambda. Hablamos de un poco antes en este curso, pero como refresco, la función Lambda es sólo una taquigrafía para definir una función en línea. Entonces Lambda X Colon X Times X es exactamente lo mismo que definir una función separada que llamamos Square It que devuelve X Times X y decir rdd dot map cuadrarlo. Por lo que es solo una mano corta para funciones muy simples que quieres pasar. Se trata de una transformación elimina la necesidad de realmente declarar esto como una
función separada con nombre propio. Y sabes que esa es toda la función de Ah, esa es toda la idea de la programación funcional. Por lo que podrías decir que ahora entiendes la programación funcional, por cierto. Pero en realidad, es solo notación abreviada para definir una función en línea como parte de los parámetros a una función de
mapa o cualquier transformación, para el caso. También puedes realizar acciones en RTD, por lo que cuando quieras realmente obtener resultados, puedes llamar a coleccionar en un R D D. Y eso te devolverá un simple objeto python viejo que puedes, luego se arreglo e imprime los resultados, o guárdalos en un archivo o lo que quieras hacer. También puedes llamar a contar, lo que lo obligará a ir realmente a contar. ¿ Cuántas entradas? Aaron, el RTD en este punto, conteo por valor te dará un desglose de cuántas veces cada valor único dentro de que ya ocurre. Y también puedes muestrear desde el Arditti usando take, que te llevará saber, algún número aleatorio de entradas del Ártico a tu parte superior, lo que te dará las primeras entradas en eso ya. Si solo quieres echar un vistazo a lo que hay ahí para fines de depuración,
la acción más poderosa se reduce,
y eso en la acción más poderosa se reduce, realidad te permitirá combinar valores juntos para el mismo valor de clave común. Por lo que también puedes usar RTG en el contexto de los datos de valor clave, y la función reducida te permite definir una forma de combinar juntos todos los valores para una clave dada. Por lo que muy similar y espíritu un mapa producir. Por lo que usar reducir reduce, sabes básicamente la operación analógica análoga a un reductor y mapear reducir y mapear es análogo a los mapeadores, por lo que a menudo es muy sencillo tomar realmente un mapa, reducir trabajo y convertido a chispa mediante el uso de estas funciones. Recuerda, también, que en realidad no pasa nada en chispa hasta que llamas a una acción. Entonces una vez
que llamas a uno de esos métodos de acción, ahí es cuando Spark se apaga y hace su magia con gráficos dirigidos un cíclicos y en realidad computa la forma óptima de obtener la respuesta que quieres. Pero recuerda, nada realmente ocurre hasta que ocurra esa acción. Por lo que eso a veces puede dispararte cuando estás escribiendo guiones de Sparks porque es posible que tengas un poco de declaración de impresión ahí y es posible que esperes obtener una respuesta ahí, pero en realidad no aparece hasta que la acción realmente se realiza. Entonces vamos a entrar en algunos. Hablemos un poco más de Ml lib siguiente, y para entrar en más detalles sobre cómo funciona esto conceptualmente, para que eso sea chispa uno, uno en una en pocas palabras. Esos son los conceptos básicos que necesitas para la programación de chispas. Básicamente, lo que es un rdd y una de las cosas que puedes hacer a un RTD y Una vez que obtienes esos conceptos que y puedes escribir algunas partes chispa código hacia arriba. A continuación, hablaremos de ML lib y algunas características específicas y chispa que te permiten hacer algoritmos de
aprendizaje automático usando chispa.
73. Introducción a MLLib: por lo que, afortunadamente, no
tienes que hacer las cosas de la manera difícil y chispear cuando estás haciendo aprendizaje automático. Tiene un componente incorporado llamado ml lib que vive encima del núcleo de chispa, y esto hace que sea muy fácil realizar algoritmos complejos de aprendizaje automático utilizando conjuntos de
datos masivos y distribuyendo ese procesamiento a través de todo un clúster de computadoras. Cosas tan emocionantes. Aprendamos más sobre lo que puede hacer. Una cosa más que necesito cubrir antes de empezar a sumergirnos en algún código real. Y en ese punto, cosas como mucho más sentido es ml ebb, y ese es un componente construido encima de la chispa para el aprendizaje automático, la biblioteca de aprendizaje automático. Por lo que obviamente eso es muy relevante para este curso. Entonces, donde algunas de las cosas que ml lib puede hacer bien, una es la extracción de características, por lo que una cosa que puede hacer a escala es la frecuencia de término y las frecuencias de documentos inversas cosas, y eso es útil para crear, por ejemplo, índices de búsqueda. Y en realidad vamos a pasar por un ejemplo de eso en unas pocas conferencias a partir de ahora. Entonces la clave de nuevo es que puede hacer esto en todo el clúster usando conjuntos de datos masivos para que lo sepas, podrías hacer tu propio motor de búsqueda para la Web con esto potencialmente, también ofrece, ya
sabes, tu estadísticas básicas funciones pruebas Chai Square, Pearson o Spearman, Correlación y algunas cosas más simples como hombres y Max, media y varianza de esos aire terriblemente emocionantes en y de sí mismos. Pero lo que es emocionante es que en realidad se podrían computar las variantes o la media o lo que sea, o la puntuación de correlación a través de un conjunto de datos masivo y en realidad rompería esos datos
configurados en varios trozos corren a través de todo un clúster de necesario. Entonces, aunque algunas de estas operaciones no sean terriblemente sexys, lo que tiene de sexy es una escala en la que puede operar. También puede soportar cosas como la regresión lineal y la regresión logística. Entonces si necesitas ajustar una función a un conjunto masivo de datos y usar eso para predicciones, también
puedes hacerlo. También es compatible con máquina vectorial de soporte, Así que estamos entrando en algunos de los algoritmos más ah de fantasía aquí. Algunas de las cosas más avanzadas en que dos pueden escalar hasta conjuntos de datos masivos usando chispas , un l lib. Había un clasificador ingenuo de Bayes construido en labios de Emma. ¿ Recuerdas ese clasificador de spam que construimos hace unas conferencias? En realidad podrías hacer eso para todo un sistema de correo electrónico usando chispa y escalar eso hasta donde quieras tomar árboles, una de mis cosas favoritas en el aprendizaje automático que, también, es compatible con chispa en voluntad en realidad tener un ejemplo de eso más adelante. En este curso, K significa clustering. Además, haz un ejemplo de eso más adelante en el curso, y puedes hacer clustering. Usar K significa usar conjuntos de datos masivos usando chispa una lib ML, incluso componente principal Out analysis y S VD. Podemos hacerlo con chispa también, y tendremos un ejemplo de eso también. Y por último, hay un algoritmo de recomendaciones incorporado llamado mínimos cuadrados alternos que está
integrado en NL lib. Personalmente, he tenido una especie de resultados mixtos con él. Ya sabes, es un poco demasiado de una caja negra para mi gusto, pero soy una especie de recomiendo su sistema snob. Entonces toma eso con un grano de sal. Usar ML live suele ser bastante sencillo. Ya sabes, solo
hay algunas funciones de biblioteca a las que necesitas llamar. Introduce algunos tipos de datos nuevos, sin embargo, que necesitas saber de uno es un vector y un ejemplo de un vector. ¿ Recuerdas cuando estábamos haciendo similitudes de películas y recomendaciones de películas? Por ejemplo, un vector podría ser una lista de todas las películas en un determinado usuario calificado bien y la diferencia entre un factor escaso en un vector denso. Entonces digamos que hemos recordado, hay muchas, muchas películas en el mundo, y un vector denso representaría en realidad datos para cada película que ese usuario vio, ya sea que realmente vio el Así, por ejemplo, digamos que tengo un usuario que mira Toy Story. Obviamente, guardaría su calificación para Toy Story, pero si no miraran la película Star Wars, en realidad
guardaría el hecho de que no hay un número. Ya sabes que no hay valor. Ahí faltan datos para Star Wars, así que terminamos ocupando espacio para todos estos puntos de datos faltantes con un vector denso, un factor escaso. Onley almacena los datos que existen, por lo que no desperdician ningún espacio de memoria en los datos que faltan. OK, entonces es una forma más compacta de representar un vector internamente pero obviamente eso introduce cierta complejidad mientras se procesa. Entonces es una buena manera de ahorrar memoria Si sabes que tus vectores van a tener muchos datos
faltantes en ellos. También hay un tipo de datos de punto etiquetado que aparece. Y eso es justo lo que suena, un punto que tiene algún tipo de etiqueta asociada a ella que transmite el significado de estos datos en términos legibles por humanos. Y hay un tipo de datos de calificación que encontrarás si estás usando recomendaciones con labio
ML. Por lo que sabes que en realidad puede tomar en una calificación que represente un 1 a 5 o 1 a 10 cualquiera que sea lectura de
estrellas que pueda tener una persona y usar eso para informar
automáticamente las recomendaciones de productos . Entonces creo que finalmente tienes todo lo que necesitas para empezar aquí. Vamos a sumergirnos y en realidad miremos algún código lib de riel ml y lo ejecutemos. Y entonces tendrá mucho más sentido. Por lo que eso es ml lib hace que sea muy fácil realizar algoritmos complicados de aprendizaje automático potencialmente en conjuntos de datos muy grandes y distribuir ese procesamiento en todo un clúster . Como dije antes, chispa sigue siendo joven y está creciendo todos los días, Así que espero que estas capacidades sigan expandiéndose y evolucionando a medida que pasa el tiempo. Cosas geniales. En realidad pongamos Ah, ensuciémonos las manos y escribe en el código suave y en realidad hagamos algo de
aprendizaje automático real usando chispa arriba a continuación.
74. Árboles de decisión en Spark: Entonces hagámoslo real. Echemos un vistazo a algún código de chispa real para hacer un árbol de decisiones usando ML live que
en realidad puede escalar hasta un clúster si lo quisieras. En realidad es bastante simple. Echemos un vistazo. Entonces juguemos con chispa un ml lib. Abre tu prompter anaconda tu terminal dependiendo de tu sistema operativo. Y por cierto, si lo hiciste, solo instala una chispa. Recuerda, establecemos algunas variables de entorno, por lo que necesitarás cerrar y volver a abrir tu prompt de anaconda si tienes una abierta ya para recogerlas. Muy bien, así que veamos el en nuestra carpeta de materiales del curso, como siempre lo hacemos. Y aquí dentro hay un par de scripts de Python que podemos usar con chispa. Ahora, a diferencia de antes, realidad
podemos ejecutar esto en un cuaderno. Eso en vez de simplemente ir a usar lo que sea un editor de texto, tenemos que mirar estos archivos y tipo de pasar por lo que están haciendo. También podemos usar Spider Ese es el editor de Python que viene con Anaconda. Entonces solo adelante y teclea en araña con por qué y nosotros para que eso suba y aquí estamos. Así que adelante, golpea el icono abierto y navega a tu curso materiales CNL curso. Y queremos el guión chispa decisión tree dot p y Muy bien, Así que vamos a caminar por lo que está pasando aquí? ¿ Deberíamos? Ahora, nuevo, no
estamos usando un cuaderno de pitón ojo esta vez. En realidad solo estamos usando un script python independiente. De ahí la extensión de punto p y en lugar de i p y N b En realidad
es posible ejecutar código de chispa dentro de un cuaderno, pero implica aún más pasos de configuración. Y creo que ya hemos hecho suficiente de eso por ahora, solo por correr un par de ejemplos de chispas aquí. Entonces, solo mantengamos esto como un guión independiente en el mundo real. lo general, la forma en que ejecutarás esto en un clúster será. Copiarás el guión a la nota maestra de ese clúster, y hay un guión llamado Spark Dash Submit que viene con Spark, que en realidad interpretará ese guión y lo destruyó a lo largo del resto del clúster para ti. Entonces esa es realmente la forma en que querrías hacerlo en el mundo real de todos modos, Tú Es posible arrancarlo con un cuaderno, pero es solo un poco más de problemas de los que quiero lidiar ahora mismo. De todos modos, pasemos por lo que está haciendo este guión. Su eso lo suficientemente simple. Esto puede ser nuevo para ti, así que voy a pasar por todo un poco despacio. Empezamos importando todos los paquetes que necesitamos, por
supuesto, y necesitamos algunas cosas de M l live. Obviamente, si vamos a estar haciendo M l love code, necesitamos un algo llamado punto Etiquetado y el propio árbol de decisión de Emma Live, de
los cuales hablamos antes. Y prácticamente todos los guiones de chispa también van a importar contexto de parque de conferencias chispas . También vamos a importante array de num pastel, que permite usar la raza de tarta entumecida ya que estamos manipulando nuestros datos y preparándolos aquí. Ahora, ten en cuenta que la chispa no va a hacer mágicamente todo de ninguna tarta y
psique aprenda un distribuible y paralizado a través de un clúster. Si llamas pyre numb, psíquico aprender funciones dentro de este guión, solo va a estar ejecutándolo dentro del específico saber que esto se está ejecutando por lo que no
va a distribuir automáticamente ese trabajo a través de tu clúster para ti. Tienes que estar usando las funciones reales dentro de ml live para que eso suceda. Por lo tanto, ten eso en cuenta. Sí, aún
puedes usar tarta entumecida. Es como si aprendiera aquí pero esos métodos no se distribuirán. Si quieres aprendizaje automático distribuido, tienes que apegarte a lo que hay en em. L vivo. Está bien. Entonces, para dar inicio a un guión chispa para nosotros, necesitamos toe configurar un contexto chispa, que es el entorno en el que estamos corriendo chispa dentro. Y eso básicamente se ocupa de todos los detalles niggly de cómo distribuir realmente estas cosas y cómo dedo del pie organizar el orden en el que las cosas se ejecutan ensambladas de nuevo
juntas a través de tu clúster. El bello de la chispa es que hace todo ese pensamiento por ti. No tienes que preocuparte por eso. Parte de ello sí configuró un contexto chispa. No obstante, necesitamos primero un objeto de configuración. Y lo que está pasando aquí es que estamos enviando el nuevo set de chispas con objeto Master local significa que sólo vamos a estar ejecutándolo en nuestro PC local para este ejemplo porque no
tengo un clúster a mano. Si estuvieras corriendo en un clúster real, cambiarías eso por otra cosa. Y también vamos a establecer un nombre de aplicación para que cuando veas esto y la
consola de chispa , si tuviéramos uno corriendo lo verías referido es ese nombre. Entonces con eso, configuramos nuestro contexto de chispa y saltaremos estas funciones por ahora, volveremos a ellas y cuando realmente los llamemos y si bajamos por debajo de estas funciones, empiezas a llegar a las líneas reales de código que en realidad se ejecutará aquí. Por lo que empezamos cargando nuestros datos brutos del pasado. Archivo CSP de inicio superior. Esto lo vimos antes en nuestro ejemplo de árbol de decisiones. Adelante y abramos eso para refrescarnos sobre cómo se ve. Entonces si ustedes dos son materiales del curso, deberíamos encontrarlo aquí, pasadas llantas en CSB. Abramos eso y esto se abrirá en Excel para mí. Por lo que va a hacer que todo parezca una tabla bonita, pesar de que es solo un archivo de valor separado por comas. Entonces de nuevo, tenemos nuestra estructura. Aquí está la primera línea son los encabezamientos para las columnas reales aquí. Entonces nuestra primera fila nos dice lo que significan estas columnas. Años de experiencia, estén o no empleados. Anterior número de empleadores, nivel de educación. Entonces y así sucesivamente. Y como antes, aquí
tenemos muchos datos que necesitan ser convertidos en datos numéricos. Al igual que cualquier algoritmo de aprendizaje automático. Trata mejor con los números y con las letras. Entonces vamos a tener que transformar estos sabios y termina en los unos y ceros. Y estos bs Ph. D. Y M s niveles de educación tendrán que convertirse en un nuevo milagro. Datos orginales en su lugar. Entonces eso es lo que estamos tratando aquí. Volvamos a nuestro guión. Muy bien, Entonces lo primero que tenemos que hacer es despojar a ese hetero porque esa no es realmente información
útil para los algoritmos. Correcto. Entonces para hacer eso, el truco que estamos haciendo es este. Decimos head r es igual a punto de datos en bruto primero. Entonces qué pasó cuando lo llamamos archivo de texto s punto C. ¿ Está cargada cada fila individual de eso? Ver archivo SV en un rdd llamado datos raw. De acuerdo, entonces ahora tenemos un ya llamado dato raw que solo contiene nada más que las cadenas sin procesar, separadas por
comas de cada fila de esos datos. Lo que estamos haciendo aquí es extraer la primera fila de esos datos, que va a ser nuestro hetero que sólo contiene los nombres de las columnas. Y entonces podemos llamar de
nuevo a la función de filtro en nuestros datos brutos ya d con una función lambda . Esta es una función en línea. Básicamente, eso dice que mientras el camino dado no sea igual, el hetero la preservará. Entonces al hacer esto, básicamente
hacemos una copia de datos sin procesar que en realidad filtra ese primer hetero. Y decimos eso en un nuevo dato crudo. Entonces básicamente, tenemos un dato crudo ya en este punto donde ese primero tenía una fila se ha filtrado. Ahora bien, este es un buen momento como cualquiera para mencionar que en el código de chispa moderno, hay algo llamado conjunto de datos en lugar de un rdd, y que tiende a usarse más ampliamente thes days porque tiene un rendimiento ligeramente mejor en algunas instancias, bueno, tiene mucho mejor rendimiento en alguna instancia Depende. ¿ Cómo lo estás usando? Y también te permite simplemente ejecutar secuela contra los datos justo en su lugar. Entonces debido a esas comodidades, la gente está migrando mawr hacia el uso de conjuntos de datos en lugar de ya DS. Básicamente es una estructura de nivel superior, pero en este caso, realmente no
hace una gran diferencia. Por lo que podemos usar nuestro trabajo liberal DDS ml básicamente de la misma manera con él. Um, entonces nos vamos a quedar con los RTG por ahora. Es Mi forma de verlo es, si tienes una solución simple y una solución más complicada y no hay gran diferencia de
rendimiento, quédate con la solución simple. Entonces me voy a quedar con rgds aquí. Pero para que lo sepas, cuando hoy hablas con la gente sobre chispa, probablemente
van a estar trabajando con conjuntos de datos o marcos de datos en lugar de rgds. mismo concepto general solo tiene más funcionalidad. Muy bien, entonces ahora necesitamos dividir en realidad nuestros valores separados por comas en campos reales aquí. Y para hacer eso, vamos a llamar a una función de mapa y sólo vamos a una función lambda un poco en línea aquí otra vez, que las llamadas se dividen en la línea real usando la coma que tomará cada fila de datos y lo
dividirá arriba basado en los comentarios en campos individuales de la lista. Por lo que tenemos una nueva RTD llamada See SV Data, donde realmente hemos estructurado algo esos datos. En realidad hemos sacado las comas en lugar de solo un valor que contiene una gran coma, lista
separada de cosas. Tenemos una carretera que contiene campos individuales que estaban interesados. Ahora necesitamos convertir realmente esos campos a lo que queremos, por lo que llamaremos a un mapa con una función real en este punto llamada Crear puntos etiquetados. Entonces pasemos a esa función y veamos qué hace. Muy bien, Así que crear puntos de etiqueta toma en una lista de campos que vinieron de datos de RCs V después separarlo en base a los comentarios, y los convierte en el formato que realmente necesitamos para entrenar nuestro árbol de decisiones. Entonces lo primero que hacemos es convertir los primeros campos, lo que representa tres años de experiencia en un entero. En lugar de una cadena, tomaremos el campo empleado y llamaremos a nuestra función binaria en él, por lo que Fields one va a ser una sensación que contiene ya sea la letra posterior Por qué o terminar derecho comunica donde no están. Actualmente están empleados. La función binaria solo dice, Si es mentira, devuelve una más. Devolver cero. Por lo que esta función se va a llamar cada vez en cada fila para convertir eso. ¿ Por qué, a uno o un fin a un cero? Pero caso recuerde, aprendizaje
automático generalmente quiere números, no cadenas o letras. Siempre que sea posible, convertiremos el número anterior de empleadores a un entero de una cadena el
nivel educativo . Llamaremos a esta función de educación de mapa en ese campo y que acaba de convertir B S, M s y PH. D a los valores orginales 12 y tres. Y sólo volveremos a llamar a la función binaria para conversar con sabios y termina en si venían de una escuela de nivel superior donde tenían una pasantía previa y los
datos de etiqueta final de si fueron contratados o no de sabios y termina dos ceros y unos. Y como recordarán, Ml Lib quiere puntos etiquetados como su entrada. Entonces vamos a devolver una estructura de puntos etiquetada que contiene con etiqueta, que es el campo superior seguido de todos los datos de entidad, que será una matriz que contiene los años de experiencia donde no están, están empleados patrones anteriores, así sucesivamente y así sucesivamente. Por lo que el punto de etiqueta contiene la etiqueta, que es lo que estamos tratando de descubrir, si deben o no contratarse y luego las características, que son todas las diferentes características de cada persona que podrían influir en si o no serían contratados o no. Muy bien, entonces en este punto, si vuelves a bajar a donde se llamaba esto, tenemos una nueva RTD llamada datos de entrenamiento que contiene todos nuestros datos de trading,
convertidos en datos numéricos y finalmente convertidos en puntos etiquetados, que es lo que NL espera. Tan impresionante. Ahora podemos empezar a jugar con ml lib. Entonces vamos a crear un conjunto de candidatos de prueba con los que realmente probar esto, y este ejemplo acaba de configurar una persona aquí. Por lo que vamos a configurar una matriz que contenga información que represente 10 años de experiencia
previa. Actualmente se encuentran empleados. Tenían tres empleadores anteriores que actualmente cuentan con una licenciatura B. No son de una escuela de primer nivel y no hicieron una pasantía. De acuerdo, así que hemos configurado este falso candidato de prueba para ver si realmente podemos hacer una predicción sobre esta nueva persona que no hemos visto antes. Una vez que nuestro árbol de decisiones ha sido creado, y luego tomamos ese candidato de prueba y creamos un RDD fuera de él para que realmente podamos alimentarlo en chispa usando la función paralizada que acaba de convertir esta matriz de candidatos de prueba, que es realmente solo un candidato a una RTD llamada datos de prueba. A continuación, realmente
tomaremos nuestra decisión. Clasificador de árbol lo llamará modelo. Y solo podemos llamar Árbol de decisión que viene del clasificador de tren biblioteca ml Lib pasando en nuestros datos de entrenamiento ya D que contiene todos los datos de entrenamiento etiquetados y un montón de hiper parámetros. Aquí. Clases NUM indica que sólo tenemos dos clases en las que estamos tratando de ordenar a la gente en si son contratadas o no, sí o no. Eso son dos clases diferentes. También tenemos que pasar en una matriz a encontrar cuáles de son características aire categórico en naturaleza . Y entonces podemos especificar cómo se construye el propio árbol de decisión real con qué función de
impureza, su profundidad máxima y el número máximo de Ben. Está bien. Una vez que tengamos ese modelo capacitado, en realidad
podemos usarlo para hacer predicciones. Entonces vamos a hacer eso. Simplemente llamaremos al modelo Doc Predict, dados nuestros datos de prueba RTD que contiene a nuestro candidato de prueba, e imprimiremos los resultados de eso. Simplemente imprimiremos el resultado real de esa predicción. Y aquí está el punto importante aquí. Entonces en este punto, realidad
estamos diciendo que quiero llamar a las predicciones dot collect. En realidad quiero recuperar algo de Spark dándome una respuesta. No es hasta este punto que la chispa realmente hace algo. Entonces todo lo que ha estado ocurriendo hasta este punto es que se ha
ido construyendo una gráfica dirigida un cíclico de todas las cosas que la chispa necesita hacer para producir esto. Esa respuesta a gran escala. Una vez que realmente digo que quiero un resultado, quiero una respuesta. Volverá atrás y,
como,
instruirá como, la forma óptima de ponerlo todo junto y la forma óptima de distribuirlo . Si yo estuviera en un cluster y en ese punto se apagara y empezara a chuparse y a producir una respuesta para mí así que en realidad imprimirá nuestra última predicción superior, y también imprimimos el modelo en sí. Hay una práctica para depurar el método de cadena en el modelo de árbol de decisión que nos permitirá una especie de entender lo que está pasando dentro del árbol de decisiones y qué
decisiones está tomando en base a qué criterios. Entonces con eso, podemos intentarlo ahora de nuevo, con chispeado, necesitamos correr eso realmente dentro del propio entorno de chispa. No puedo simplemente correr esto desde dentro de Spider, al
menos no sin hacer un montón de pasos adicionales de configuración. Entonces cerremos una araña o al menos minimizamos esto por ahora. Y si volvemos a nuestro prompt de anaconda, en realidad
es abrir uno nuevo, ¿eh? Volver a Anaconda Anaconda. Pronta. Esto asegurará que donde tengamos anacondas entorno python disponible para nosotros nuevamente se CD a nuestros materiales del curso. Y ahora lo que podemos hacer es escribir en chispa dash submit, seguido de ese nombre de guión, que se desató árbol de decisión punto p y Ahora el guión de envío de punto chispa es parte de la chispa misma. Esto es lo que realmente toma el guión en decide cómo distribuirlo y en realidad alimentarlo al motor de chispa. ¿ Qué es? Entra y ve qué pasa. Entonces si instalaste Sparks con éxito, debería estar viendo algo como esto. Y ahí lo tenemos. Muy bien, Así que para nuestro usuario de pruebas ahí, en realidad predijimos que contrataríamos a esa persona. Y también tenemos el propio árbol de decisión real impreso aquí. Ahora, en realidad no
podemos obviamente hacer una representación
bonita, bastante gráfica como lo hicimos antes, porque solo estamos en una consola de comandos aquí, Pero todavía se puede interpretar esto. Entonces básicamente, dice si característica uno en cero. Entonces la forma de interpretar eso es, si miramos atrás aquí nuestros datos fuente, si empezamos a contar a cero característica, se emplearía
101. ¿ De acuerdo? Y recuerda, nos convertimos. ¿ Por qué? Un dedo del pie extremo uno y cero. Entonces dice, básicamente, si no estás empleado si la característica uno que se emplea está en el conjunto cero, que contiene un valor único de cero. Entonces, para datos categóricos, verás esa sintaxis en, ya
sabes, corchetes
rizados y cualesquiera que sean las categorías. Está bien, Entonces si no estás empleado, y si la característica cinco también es cero. Entonces 012345 Eso es una pasantía. Entonces si estás desempleado, no
hiciste una pasantía. Y, ah, eso dice, si tienes menos de medio año de experiencia, básicamente no tienes experiencia y solo tienes una licenciatura en ciencias. No te contrataremos. Es lo que es la predicción, y puedes pasar y averiguar el resto de la estructura aquí si quieres. Pero así es como lees estas cosas. Básicamente cool. Entonces ahí lo tienes, un árbol de decisiones real corriendo dentro de Apache Spark. Y aunque eso parece una especie de forma enrevesada de hacer las cosas en una sola computadora , quiero decir que es la belleza es que si realmente fueras a ejecutar esto en la nota maestra de un
verdadero clúster de Hadoop o un verdadero cúmulo de chispas, simplemente funcionaría. En realidad distribuiría ese trabajo a lo largo de todo el clúster. ¿ Qué tan guay es eso? Por lo que en realidad podrías alimentarte en un conjunto masivo de datos de entrenamiento y un conjunto masivo de personas para las que quieras hacer predicciones,
y podría distribuir eso a lo largo de todo un clúster y devolverte resultados, sin importar cómo big que el conjunto de datos podría ser. Entonces eso es lo que realmente es emocionante de esto. Ya sabes, podrías imaginar un mundo donde estás trabajando para alguna enorme empresa o alguna empresa que produce, ya
sabes, contratando software de reclutamiento, y en realidad podrías ejecutar esto en escala masiva a través de un número masivo de personas. Dejaré de lado las preocupaciones éticas de hacer realmente algo como esto en el
mundo real , donde solo estás tratando de hervir a la gente en un número y alimentarla en un modelo. Es decir, obviamente, yo realmente no querría que las decisiones de contratación de rial se basaran sólo en eso solo. Ese no sería un mundo en el que quiera vivir. Pero por el bien de la ilustración, así funcionaría para que tengamos una decisión árboles en chispa corriendo de verdad. Y ahí lo tienes un árbol de decisiones real construido usando chispa una lib ML que realmente funciona y en realidad tiene sentido cosas bastante impresionantes para que puedas ver que es bastante fácil de hacer, y puedes escalarlo hasta tan grande de un conjunto de datos como puedas imaginar si tener un clúster
lo suficientemente grande, así que ahí lo tienes
75. K-Means de Clustering en Spark: siguiente. Tomemos nuestro K significa clustering ejemplo que usamos anteriormente en este curso y resolverlo esta vez usando chispa y ml lib y verás que es solo un ZZ, tal vez incluso más fácil. Entonces de nuevo desde Spider, abramos un archivo aquí, y nuestros materiales del curso esta vez navegarán a nuestra ubicación material del curso, por
supuesto, bajo el curso CML, y esta vez queremos el guión. Spark K significa no p sabio seguir adelante y abrir eso. Y como antes, vamos a tomar un ejemplo que hicimos antes en el curso en una sola PC usando sólo aprendizaje
psíquico y en realidad haremos lo mismo usando Apache Spark Así que en realidad podríamos escalar esto a todo un clúster. Entonces pasemos por este código. De acuerdo, así que de nuevo, algunas cosas de calderería vamos a importar el paquete K significa del paquete de clustering ml lib . Vamos al rayo importante y al azar de num pastel porque de nuevo somos libres de usar lo que quieras. Este es un script de pitón al final del día, y Emma en vivo muchas veces no requiere ninguna tarta. Ningún umpire planteado como insumo. Vamos a importar la función de raíz cuadrada y el material de boilerplate habitual que necesitamos para encender contexto de chispa de conferencia prácticamente cada vez desde Pie Spark. También vamos a importar la función de escala de psiquis. Así se aprende otra vez. OK, ¿consigues que aprendió, siempre y cuando te asegures de que esté instalado en cada máquina en la que vas a estar ejecutando este trabajo. Y tampoco asumas que psíquico aprendido se escalará mágicamente solo porque lo
estás ejecutando en chispa. Pero como solo lo estoy usando para la función de escalado, está bien. Está bien, sigamos adelante y arreglemos las cosas, así que voy a mandar una variable global K 25 Así que voy a correr. K significa agrupar en este ejemplo con un k A cinco con cinco clústeres diferentes, y voy a seguir adelante y configurar una tos chispa local simplemente corriendo en mi propio escritorio de Dios. Establezca el nombre de mi aplicación para chispar K significa y cree un objeto de contexto chispa que luego
pueda usar para crear rtgs que se ejecuten en mi máquina local. Nos saltaremos más allá de esta función por ahora, vamos a la primera línea de código que se ejecute. Lo primero que vamos a hacer es crear RTD paralizando en algunos datos falsos que estoy creando. Y eso es lo que hace esta función de datos agrupados. Básicamente, le
estoy diciendo que cree 100 puntos de datos agrupados alrededor de K Central Lloyds, y esto es prácticamente idéntico al código que miramos cuando jugamos con K significa clustering antes en el curso. Entonces si quieres un refresco, adelante y retrocede y mira esa conferencia. Pero básicamente lo que vamos a hacer es crear un montón de Centrowitz aleatorio alrededor del cual
normalmente distribuimos algunos datos de edad e ingresos. Entonces lo que estamos haciendo es tratar de agrupar a las personas en función de su edad
e ingresos, y estamos fabricando algunos puntos de datos para hacerlo. Muy bien, así que eso devuelve una matriz de tarta entumecida de nuestros datos falsos. Ahora lo otro que estamos haciendo, así que una vez que ese resultado regrese de crear datos agrupados, estoy llamando a escala en él, y eso asegurará que mi edad sea y los ingresos se airen en escalas comparables. Recuerda, mi conferencia está diciendo que hay que recordar sobre la normalización de datos. Este es uno de esos ejemplos donde es importante. Entonces estamos normalizando esos datos con escala para que obtengamos buenos resultados de los medios K. Y finalmente paralizamos la lista resultante de arrays en un r d d d usando paralizado. Por lo que ahora nuestros datos RTD contienen todos nuestros datos falsos. Todo lo que tenemos que hacer esto es aún más fácil que una llamada de árbol de decisión k significa tren de punto en nuestros datos de
entrenamiento, pasando el número de clústeres que queremos nuestro valor K par de parámetros que ponen un
encuadernado superior a cuánto procesamiento va a hacer. Dígale que use el modo de inicialización predeterminado de K significa donde simplemente escogemos aleatoriamente nuestros roids centrales
iniciales para nuestros clústeres antes de empezar a iterar sobre ellos. Y regresa el modelo que podemos usar. Vamos a llamar a ese clúster. Está bien, ahora podemos jugar con eso. Entonces, empecemos imprimiendo las asignaciones de clúster para cada uno de nuestros puntos. Entonces vamos a tomar nuestros datos originales y mapearlos es decir, transformarlos usando esta función lambda. Esta función sólo va a transformar cada punto en el número de clúster que se predice a partir de nuestro modelo. De acuerdo, entonces otra vez. Simplemente estamos tomando nuestro RTD de puntos de datos. Estamos llamando a los clústeres. Predecir para averiguar a qué tipo de medios arcanos de cluster se los está asignando. Y sólo vamos a poner los resultados en nuestro resultado rdd. Ahora, una cosa que quiero señalar aquí es esta llamada en efectivo aquí. Entonces algo importante cuando estás haciendo Spark es en cualquier momento te vas a calmar o de una acción en RTD, es importante cobrarlo primero porque recuerda, cuando llamas en acción a RTD, se
dispara chispa y cifras fuera el DAG adelante y cómo dedo del pie de manera óptima llegar a ese resultado y se apagará y en realidad ejecutará todo para obtener ese resultado. Entonces si llamo a diferentes acciones sobre la misma RTD en realidad terminará evaluando esa RTD dos veces. Y si quieres evitar todo ese trabajo extra, puedes cobrar tu RTD para asegurarte de que no lo vuelva a computar más de una vez. Entonces al hacer eso, nos aseguramos de que estas dos operaciones posteriores hagan lo correcto. Entonces para obtener un resultado real de este resultado, se utilizó
RTD o Borgoña contar por valor y Lo que eso hará es devolvernos un rdd que tenga cuántos puntos, Aaron cada cluster. OK, así que recuerda resultado que RTD ha mapeado cada punto individual al clúster con el que terminó. Entonces ahora podemos usar el recuento por valor para solo contar cuántos valores vemos para cada
clúster dado I d y podemos imprimir esa lista y en realidad podemos mirar los resultados crudos de eso son tediosos. Bueno, esa llamada cobrará en él y eso me devolverá cada
asignación de clúster de puntos y podemos imprimirlos todos. Ahora bien, ¿cómo medimos? ¿ Qué tan buenos son los clústeres? Bueno, una métrica para eso se llama pero dentro de suma establecida de errores al cuadrado. Wow, eso suena a fantasía. Es un término tan grande. Necesitamos una abreviatura para ello. Ws SSC Todo lo que es, veríamos la distancia desde cada punto hasta su centralmente la final centralmente en cada clúster Tome el cuadrado de ese error y resumirlo para todo el conjunto de datos. De acuerdo, entonces es solo una medida de lo lejos que está cada punto de su OID central. Obviamente. Ya sabes, si hay mucho error en nuestro modelo, entonces tenderán a estar muy separados de lo central. Es que podría implicar que necesitamos un mayor sobre el valor de K, por ejemplo. Entonces seguiremos adelante y calcularemos que Valium lo imprima. ¿ Cómo hacer eso? Definimos esta función de error que computa el error cuadrado para cada punto. Simplemente toma la distancia desde el punto hasta el centro central de OID de cada clúster y lo
resume. Entonces para hacer eso, estamos tomando nuestros datos fuente llamando a esa función lambda en ella que en realidad computa el aire desde su punto central central. Y entonces podemos encadenar distintas operaciones juntas aquí. Por lo que estamos llamando a mapa para calcular primero el aire para cada punto. De acuerdo, y luego para obtener un total final que represente todo el conjunto de datos estaban llamando a reducir en ese resultado. Entonces estamos haciendo mapa de puntos de datos para computar el aire para cada punto y luego punto reducido para tomar todos esos errores y agregarlos todos juntos. Y eso es lo que hace esta pequeña tierra reducida una función. Esta es básicamente una forma elegante de decir quiero que sumes todo en esta RTD en un solo resultado final. De acuerdo, Así que reduzca. Tomaremos todo el rdd dos cosas a la vez y las combinaremos usando cualquier función que proporcione. Entonces la función que estoy brindando aquí es tomar los dos caminos que estoy combinando juntos y solo sumarlos. Y si lo hacemos a lo largo de cada entrada de la RTD, teníamos al día con el total resumido final, podría
parecer una forma un poco enrevesada de sólo sumar un montón de valores. Pero al hacerlo de esta manera, somos capaces de asegurarnos de que realmente podemos distribuir esta operación si es necesario. Ya sabes, en realidad
podríamos terminar computando la suma de esta pieza de los datos aquí en esta máquina y una suma de una pieza diferente sobre esta otra máquina. Y luego toma esas dos sumas y combínalas en un resultado final. Correcto,
Entonces, ¿ves cómo funciona eso? Esta función reducida es decir, ¿Cómo llevo alguno a valores,ya
sabes, ya
sabes, resultados
intermedios de esta operación y los combino juntos. Está bien. Por lo que de nuevo, siéntete libre de tomarte un momento y mirar esto un poco más si quieres hundirte. Aquí no pasa nada realmente elegante. Pero hay algunos puntos importantes. Introdujimos el uso del dinero en efectivo. Si quieres asegurarte de que no hagas cálculos de re innecesarios en RTD que
vas a usar más de una vez, presentamos el uso de la función reducida, y tenemos un par de interesantes funciones de mapeador. Aquí un oleaje. Por lo que hay mucho de qué aprender en este ejemplo, pero al final del día, sólo
va a u K significa clustering. Entonces sigamos adelante y corramos para que como antes se abra en Anaconda te avise a ti o a tu terminal en otras plataformas. Vamos a CD a nuestro curso. Los materiales son y tecleemos en culo desatado Enviar chispa K significa stop ey y solo deja que eso funcione y veamos qué pasa. Y tenemos un resultado. Muy cool. Muy bien, entonces es como si primero tuviéramos un recuento por valor aquí, donde solo está mostrando cuántos de cada punto se asignaron a cada clúster, y estos sí parecen bastante distribuidos uniformemente. Teníamos 20 puntos, categoriza cluster dos y 20 0 23 20 y 17. Entonces esa es buena señal, porque sí creamos un número par de puntos diferentes en nuestros datos fabricados contra los que
intentábamos entrenar. ¿ Verdad? Y si vuelves a mirar las asignaciones de clúster reales, si recuerdas cómo generamos los datos para empezar, realidad sí
generamos un clúster a la vez. Entonces es una buena señal de que estos aire por completo tenemos todos los dos, todos los ceros, todos los unos, todos los tres. Y, ya
sabes, empieza a confundirse un poco con las fuerzas de uno tirado ahí en medio. Una pareja más una vez ahí por lo que no siempre lo hizo bien. Algunos de estos cúmulos estaban un poco superpuestos, al parecer. Y finalmente conseguimos una métrica W s s S e, en realidad calculando lo bueno que es de 20.3. Enfriar. Por lo que funcionó. En realidad sí lo hicimos. K significa clustering usando Apache chispa distribuida potencialmente a través de un clúster si tuviéramos uno tan genial. Y si quieres desafiar para ti mismo para sumergirte aún más profundamente, aquí
hay algunas cosas. Puedes intentar que solo intentemos aumentar o disminuir el valor de K. Uno de los grandes retos y K significa clustering es elegir el valor correcto. De acuerdo, entonces a ver qué impacto tiene eso. Obviamente, hay un valor real de K aquí con el que generamos los datos y será informativo ver qué hace tener el valor incorrecto de K a tus resultados. Además, ¿qué pasa si no normalizas los datos de entrada antes de agruparlos? ¿ Afecta eso la calidad de este algoritmo? ¿ Y qué pasa si cambias las aceleraciones de tema o los parámetros de ejecución? El hiper primarios, si se quiere, en el llegó y significa algoritmo en sí. Así que ve a jugar por ahí que podrían esas cosas para intentar y verte para llegar a. Ahí lo tienes. K significa clustering hecho en chispa un ml lib Cosas bastante simples. Y la belleza de esto es que en realidad podrías a través de un conjunto de datos grande, masivo y
real en él. Y si fueras a ejecutar eso en un clúster, realidad lo tallaría para ti y distribuiría todo ese procesamiento automáticamente. Y seguiría funcionando muy bien. Bastante impresionante. Pasemos a un ejemplo aún más fresco
76. TF / IDF: lo que nuestro ejemplo final de ML live va a ser usando algo llamado término frecuencia frecuencia inversa de documento o T F I D E F, que es el bloque de construcción fundamental de muchos algoritmos de búsqueda. Entonces primero, hablemos de los conceptos de T F I D E f. Y cómo podríamos ir a usar eso para resolver un problema de búsqueda. Nuestro ejercicio final con Apache Spark an ML live va a ser sobre frecuencia de término inverso frecuencia de
documento. Eso es lo que t F I D F F F F F Como de costumbre. Suena complicado, pero no es tan complicado como suena y lo que realmente vamos a hacer con T f I. pero no es tan complicado como suena y lo que realmente vamos a hacer con T f I.
F.
Es crear un motor de búsqueda rudimentario para Wikipedia usando Apache Spark y ML live. F. ¿ Qué tan impresionante es eso? Entonces, empecemos. T f i D E f stands frecuencia de retorno una frecuencia de documento inversa. Y estas son básicamente dos métricas que están estrechamente interrelacionadas para hacer búsqueda y averiguar la relevancia de una palabra dada a un documento dado un cuerpo más grande de documentos. Entonces, por ejemplo, cada artículo en Wikipedia podría tener una frecuencia de término asociada a ella cada página del Inter. ¿ Qué Internet podría tener una frecuencia de término asociada a ella? Por cada palabra que aparece en ese documento? Suena fantasía. Pero como verás, es un concepto bastante sencillo. Todos los términos de frecuencia significa es la frecuencia con la que ocurre una palabra dada en un documento dado. Entonces dentro de una página Web dentro de un artículo de Wikipedia dentro de uno lo que sea, ¿qué tan común es una palabra dada dentro de ese documento? Ya sabes, ¿cuál es la proporción de esa tasa de ocurrencia de palabras a lo largo de todas las palabras de ese documento? Eso es todo. Eso es todo. El término frecuencia es la frecuencia del documento, misma idea nombrada poco poco confusamente. Pero todo lo que es es la frecuencia de esa palabra en todo el corpus de documentos. Entonces, ¿con qué frecuencia ocurre esta palabra a lo largo de todos los documentos que tengo todas las páginas
Web, todos los artículos en Wikipedia. De acuerdo, así que ya sabes, por ejemplo, palabras
comunes como un o el tendrían una frecuencia de documento muy alta, y yo esperaría que también tuvieran una frecuencia de término muy alta. Pero eso no significa necesariamente que sean relevantes para un documento dado. Se podría ver a dónde vamos con esto. Entonces digamos que tenemos una frecuencia de término muy alta y una frecuencia de documento muy baja para una palabra
dada. El ratio de estas dos cosas me puede dar una medida de la relevancia de esa palabra para el documento. Entonces si veo una palabra que ocurre es muy a menudo en un documento dado, pero no muy a menudo en el espacio general de documentos que sé que esta palabra probablemente transmite algún significado especial a este documento en particular, podría re transmitir lo que este documento se trata en realidad. Entonces esa es idea de TF. Simplemente representa la frecuencia de los términos tiempos de frecuencia inversa de los documentos, que es sólo una forma elegante de decir la frecuencia del término sobre la frecuencia del documento, lo cual es sólo una forma extravagante de decir, ¿Con qué frecuencia ocurre esta palabra en este documento en comparación con la frecuencia con que ocurre en todo el cuerpo de documentos? Eso es todo. T f I D f. Significa que es así de simple. Entonces en la práctica hay unos pequeños deseos nuevos es a cómo usamos esto. Por ejemplo, utilizamos el registro real de la frecuencia del documento inverso en lugar del valor bruto, y eso se debe a que las frecuencias de palabras en realidad tienden a distribuirse exponencialmente. Por lo que al tomar el registro, terminamos con una espera ligeramente mejor de palabras, dada su popularidad general y son algunas limitaciones a este enfoque. Obviamente, una es que básicamente asumimos que un documento no es más que una bolsa llena de palabras. Asumimos que no hay relaciones entre las propias palabras. Y obviamente ese no siempre es el caso. Y en realidad analizarlos puede ser una buena parte del trabajo porque hay que lidiar con cosas como sinónimos y varios tiempos de palabras. Abreviaturas, capitalizaciones, errores ortográficos. Ya sabes, esto vuelve a la idea de limpiar tus datos. Ser una gran parte de tu trabajo son los científicos de datos, y es especialmente cierto cuando estás tratando con cosas de procesamiento del lenguaje natural. Afortunadamente, hay algunas bibliotecas bibliotecarias por ahí que te pueden ayudar con esto, pero es un problema real, y afectará la calidad de tus resultados. Otro truco de implementación que usamos con T F I. D. F. Es en lugar de realmente almacenar palabras de cadena reales con sus frecuencias de término y frecuencias de
documentos inversas para ahorrar espacio y hacer las cosas más eficientes, en realidad mapeamos cada palabra a un valor numérico un valor hash, lo
llamamos. Entonces la idea es que tenemos alguna función que puede tomar cualquier palabra, especie de mirar sus letras y asignar eso de alguna manera bastante bien distribuida a un conjunto de números en algún rango. Entonces de esa manera, en lugar de llamar, ya
sabes, usando la palabra representada que podría tener un valor hash de 10. Y podemos referirnos a la palabra representantes 10 de ahora en adelante. Ahora bien, si el espacio de tus valores hash no es lo suficientemente grande, podrías terminar con palabras diferentes siendo representadas por el mismo número, que suena peor que ISS. Pero, ya
sabes, quieres asegurarte de que tienes un espacio hash bastante grande, por lo que es poco probable que eso suceda. A esos se les llama colisiones de hash. Pueden causar problemas. Pero, ya
sabes, en realidad, solo
hay tantas palabras que la gente usa en el idioma inglés comúnmente, para que puedas salirte con la tuya con 100 mil o menos y estar
bien, de acuerdo, y obviamente haciéndolo. Esta esa escala es la parte difícil. Ya sabes, si quieres hacer esto sobre toda Wikipedia, entonces vas a tener que ejecutar esto en un clúster. Pero por el bien del argumento, solo
vamos a ejecutar esto en nuestro propio escritorio por ahora, usando una pequeña muestra de datos de Wikipedia. Entonces, ¿cómo convertimos eso en un problema de búsqueda real? Entonces una vez que tenemos t f i D E f, tenemos esta medida de cada palabra relevancia a cada documento. ¿ Qué hacemos con él? Bueno, una cosa que podrías hacer es computar idea de TF por cada palabra que nos encontramos en todo el cuerpo de documentos que tenemos. Y entonces digamos que queremos buscar un término dado palabra. Digamos que queremos buscar qué artículo de Wikipedia en mi conjunto de artículos de Wikipedia es más relevante para Gettysburg. Podría ordenar todos los documentos por su puntaje T f I. D F para Gettysburg y sólo tomar los mejores resultados. Y esos son mis resultados de búsqueda para Gettysburg. Eso es todo. Sólo busca. Toma tu palabra de búsqueda. Computar. T f I D f. Tome los mejores resultados. Qué documentos tienen la puntuación T f I D F más alta. Eso es todo. Obviamente, en el mundo real, hay mucho más que buscar que eso. Google, obviamente como ejércitos de personas que trabajan en este problema, y es mucho más complicado en la práctica. Pero esto realmente te dará un algoritmo de motor de búsqueda en funcionamiento que realmente produce resultados
razonables. Entonces sigamos adelante y sumémonos y veamos cómo funciona todo. Entonces ahí tienes los conceptos de T F I D E f. otra de esas cosas que suena realmente elegante, pero una vez que lo entiendes, en realidad es bastante simple. Entonces vamos a seguir adelante y convertir eso en código fuente real y un ejecutarlo en nuestra próxima conferencia.
77. Busca Wikipedia con Spark: Esto podría ser lo más cool que hacemos en todo este curso. Vamos a construir un algoritmo de búsqueda de trabajo real para una pieza de Wikipedia usando Apache Spark y ML lib, y lo vamos a hacer todo en menos de 50 líneas de código. Bastante impresionante. Entonces sigamos adelante y abramos esto en Spider o cualquier texto Senador que quieras usar, verdad, e iremos a nuestra carpeta de materiales del curso y abriremos el guión T f I D e f dot p y. Y hablemos de esto y aquí lo tenemos ahora dar un paso atrás por un momento y dejarlo hundir
que en realidad estaban creando un algoritmo de búsqueda en funcionamiento, junto con algunos ejemplos de usarlo en menos de 50 líneas de código aquí. Y es escalable. Podría ejecutar esto en un clúster. Es algo increíble. Está bien, así que pasemos por esto. En realidad es bastante sencillo, está
bien. Empezaremos importando las bibliotecas de contexto de la barra de conferencia chispa que necesitamos para cualquier script de
chispa que ejecutemos en Python. Y luego vamos a importar hashing TF y I d. F. Entonces esto es lo que computa las frecuencias de término y las frecuencias de documentos inversas. Dentro de nuestros documentos, comenzaremos con nuestro material de chispa calderilla que crea una configuración de chispa local y un contexto de chispa creado a partir de aquello a partir del cual podremos entonces crear nuestro RTD inicial un contexto redondo a spar para crear un RTD de subconjunto dash small deuda dot tsv Así que esto es valores
separados por tabuladores y representa una pequeña muestra de artículos de Wikipedia. Entonces eso me devuelve un RTD donde cada documento está en cada línea de la RTD. Por lo que este archivo TSV contiene un documento completo de Wikipedia en cada línea, y sé que cada uno de esos documentos se ha dividido en campos tabulares que tienen varios bits de metadatos sobre cada artículo. Entonces lo siguiente que voy a hacer es dividirlos. Entonces voy a dividir cada documento de Art H basado en sus er delimitados por tabuladores en una lista de
python y crear un nuevo RTD de campos que en lugar de datos de entrada sin procesar, ahora contiene listas de python de cada campo en esos datos de entrada. Y por último, mira lo que está pasando aquí. Sanel, voy a mapear esa toma de datos en cada lista de campos extraer el campo número tres, lo que por casualidad sé es el cuerpo del artículo en sí. El texto real del artículo y yo a su vez voy a dividir eso en base a espacios. Entonces lo que esto hace es extraer el cuerpo del texto de cada artículo de Wikipedia y lo
divide en una lista de palabras. De acuerdo, entonces mis nuevos documentos RDD tiene una entrada por cada documento y cada entrada en ese RTD contiene una lista de palabras que aparecen en ese documento ahora. Entonces en realidad sabemos cómo llamar a estos documentos más adelante, cuando estemos evaluando los resultados, también
voy a crear un nuevo RTD que almacene los nombres de los documentos. Y todo lo que hace es tomar esos mismos campos rdd y utiliza la función snap para extraer el nombre del documento, que por casualidad sé es infield número uno. Por lo que tengo que rtgs documentos que contienen listas de palabras que aparecen en cada
documento y nombres de documentos que contienen el nombre de cada documento. Y sé que estos están en el mismo orden, así que en realidad los puedo combinar juntos más adelante para buscar el nombre de un documento dado . Ahora sucede la magia, así que lo primero que vamos a hacer es crear un objeto TF hash, y vamos a pasar en un parámetro de 100,000. Esto significa que voy a hash cada palabra en uno de los 100 mil valores numéricos. Entonces en lugar de representar las palabras internamente como cadenas, lo
cual es muy ineficiente , va a probar Teoh lo más uniformemente posible, distribuir cada palabra a un valor hash único, y le estoy dando hasta 100,000 valores hash para elegir. Entonces, básicamente, esto es mapear palabras dos números al final del día, ¿de acuerdo? Y voy a llamar a transform on hashing TF con mi RTD real de documentos. Entonces lo que eso va a hacer es tomar mi lista de palabras en cada documento y convertirla en una lista de valores hash, una lista de números que representan cada palabra en su lugar. De acuerdo, y esto en realidad se representa como un vector escaso en este punto para ahorrar aún más espacio. Entonces no sólo hemos convertido todas nuestras palabras dos números, sino que también hemos despojado de cualquier dato que falte. Entonces en el caso de que una palabra no aparezca en un documento donde no estés almacenando el hecho que
esa palabra no aparezca explícitamente ahorra aún más espacio ahora para realmente computar la puntuación T f I D F para cada palabra en cada documento. El primer efectivo este TF rdd porque sabemos que lo vamos a usar más de una vez. Y usamos I d. F con una frecuencia de doc min de dos. Significa que vamos a ignorar cualquier palabra que no aparezca al menos dos veces call fit en TF y luego transformar eso en t f. Y con lo que terminamos aquí es un arty de la T f I D E f puntaje para cada palabra en cada documento. De acuerdo, así que intentemos poner eso en uso. Vamos ah, tratar de buscar el mejor artículo para la palabra Gettysburg. Si no estás familiarizado con nosotros historia, ahí es donde Abraham Lincoln dio un famoso discurso para que podamos transformar la palabra Gettysburg en su valor hash. De acuerdo, eso es lo que hace este trozo de código. Después extraeremos una puntuación T f i. D f para ese valor hash en un nuevo RTD para cada documento. Entonces lo que esto hace es extraer el puntaje T f i. D f para Gettysburg del valor hash que mapea para cada documento y almacena que en este Gettysburg relevancia rdd. Después combinamos eso con el nombre del documento para poder ver los resultados e imprimir la respuesta. Entonces vamos a correr eso y a ver qué pasa. De acuerdo, así que para ejecutar esto, necesitamos traer otra anaconda apoyos que hacer y vamos a CD a nuestros materiales del curso son y solo escribir tipo en guión chispa Enviar T f I d f punto p y y dejemos que este chug se vaya. Entonces, sí, ahora mismo, en realidad
va a estar analizando un subconjunto de datos de Wikipedia, y va a tratar de encontrar la mejor coincidencia de documento para el término de búsqueda Gettysburg. Ya viene con una respuesta, y ya está hecho. Y la respuesta es que Abraham Lincoln realmente funciona. Chicos, eso es impresionante. Entonces, sí, quiero decir, T f i d f en acción ahí. En realidad creamos nuestro propio mini buscador aquí con, ya
sabes, menos y 50 líneas de código. La mayoría de esos comentarios de aire, ten en cuenta, quiero decir, el código real en sí era como tal vez 20 líneas y con sólo ese poco de código ml live es tan poderoso que fue capaz de construir un motor de búsqueda entero que podría descubra que el artículo para Abraham Lincoln es el mejor partido para alguien que busca información sobre Gettysburg, Al menos en el subconjunto de Wikipedia que le dimos. Creo que eso es algo impresionante. Entonces, sí, quiero decir. Y lo que es aún más fresco es que si tuviera todo el corpus de Wikipedia, podría, con muy pocas modificaciones, ejecutar el mismo script exacto en un clúster y recuperar resultados sobre todo el
conjunto de datos de Wikipedia . Ya sabes, es escalable en esa medida. Cosas tan bonitas. T F I D E f Inacción en chispa. Y en realidad hicimos nuestro propio pequeño motor de búsqueda muy fácilmente. Eso es asombroso. Y ahí lo tienes, un algoritmo de búsqueda de trabajo real para un pedacito de Wikipedia usando chispa y ml lib y T f I. D E f. Y la belleza es que en realidad podríamos escalar eso hasta toda Wikipedia si quisiéramos a. Si tuviéramos un clúster lo suficientemente grande como para ejecutarlo Ahora acabamos de tocar algunas de las capacidades de Apache Spark. Seguro que tienes muchas preguntas. Hay mucho, mucho más en ello. De hecho, tengo todo un curso sobre Apache Spark, así que hay mucho de lo que podemos hablar. Si sí quieres conocer más sobre la chispa Apache, salta a la última pareja de conferencias en este curso donde hablamos de dónde aprender mawr , a
dónde ir a continuación y hay algunos saltando fuera de lugar. Está ahí para que vayas a explorar y aprendas más sobre chispa porque es un tema grande. Pero ojalá tengamos tu interés ahí arriba y chispeen, y puedas ver cómo se podría aplicar para resolver pero pueden ser problemas bastante complicados de
aprendizaje automático de una manera distribuida. Entonces es una herramienta muy importante, y quiero asegurarme de que no pases por este curso de ciencia de datos, con al menos sin al menos conocer los conceptos de cómo se puede aplicar chispa a los
problemas de big data . Entonces cuando necesites ir más allá de lo que una computadora puede hacer, recuerda, chispa está a tu disposición
78. Usar la API de de DataFrame de Spark para MLLib: Por lo que en julio de 2016 liberación de chispa desató dos puntos. Ah, y hablemos de lo que es nuevo y qué nuevas capacidades existen en ml en vivo ahora. Entonces lo principal fue desatado 2.0, es que están moviendo a la gente cada vez más hacia marcos de datos y conjuntos de datos, conjuntos datos y marcos de datos. Tipo de aire usado indistintamente en algún momento. Técnicamente, un marco de datos es un conjunto de datos de objetos de roe. Son como rgds. Pero la única diferencia es que mientras que un RTD solo contiene datos no estructurados, cada Roven rdd puede contener prácticamente cualquier cosa. Un conjunto de datos tiene un esquema definido al mismo. Por lo que un conjunto de datos sabe de antemano exactamente qué columnas de información existe en cada rove de esa pequeña RTD de ese conjunto de datos y qué tipos son esos. Entonces, debido a que sabe de la estructura real de esos datos dijeron de antemano, puede optimizar las cosas de manera más eficiente. También nos permite pensar en el contenido de este conjunto de datos como una pequeña mini base de datos. Bueno, en realidad una base de datos muy grande. Si está en un clúster derecho, y eso significa que podemos hacer cosas como problemas consultas de secuela en él por lo que esto crea un AP I de mayor nivel con el que podemos consultar y analizar conjuntos de datos grandes y
masivos en un clúster de chispas. Entonces es cosas bastante cool. Es más rápido. Tiene más oportunidades de optimización, y tiene un nivel superior. AP I. Eso a menudo es más fácil trabajar con ahora adelante y desató límites 2.0 ML empujando
marcos de datos como su primaria a p I. Así que este es el camino del futuro aquí. Entonces echemos un vistazo a cómo funciona. Entonces he ido adelante y abro la chispa Regresión lineal P Y archivo. Caminemos un poquito por aquí. Entonces ya ves, por una cosa, estamos usando ML en lugar de ml live, y ese es el nuevo marco de datos basado en ojos AP ahí dentro. Entonces para en este ejemplo, donde vamos a usar implementar regresión lineal y regresión lineal es solo una forma de ajustar una línea a un conjunto de datos. Entonces lo que vamos a hacer este ejercicio es tomar un montón de datos fabricados que tenemos en dos dimensiones y tratar de encajar una línea con un modelo lineal y lo que vamos a hacer en realidad es separar nuestros datos en dos conjuntos, uno para construir el modelo y uno para evaluar el modelo. Y vamos a comparar lo bien que hace este modelo lineal, en realidad prediciendo valores reales. Entonces para hacer eso, primer lugar, en encendido a si vas a estar haciendo cosas con la interfaz de Spark Sequel y usando
conjuntos de datos , tienes que estar usando un objeto de sesión de chispa en lugar de un contexto de chispa. Entonces para armar uno, haces algo como esto, puedes decir chispa. Ese va a ser el nombre de nuestra configuración de constructor de sesión chispa. Ahora, este bit solo es necesario en windows on en sparked 2.0, tipo de funciona alrededor de un pequeño bug que tienen que ser honestos. Por lo tanto, si estás en windows, asegúrate de tener una carpeta temporal C. Si quieres ejecutar esto, ve a crear eso ahora si es necesario. Si no estás en Windows, puedes eliminar todo ese bit aquí que he resaltado OK, porque no va a ser necesario y no va a funcionar dado app, nombre y get o create. Ahora bien, esto es interesante porque una vez que creas una sesión de chispa, si termina inesperadamente, en realidad
puede recuperarse de eso la próxima vez que la ejecutes. Entonces si tenemos un director de punto de control, en realidad
puedes reiniciar donde lo dejó usando, obtener o crear. Muy bien, ahora vamos a usar este archivo de texto de punto de regresión que he incluido con los
materiales del curso y todo lo que es un archivo de texto que tiene valores comunes y
limitados de dos columnas, y son solo dos columnas de datos correlacionados más o menos aleatoriamente linealmente, y puede representar cuando lo desee. Imaginemos que representa alturas y pesos, por ejemplo. Por lo que la primera columna represento alturas. La segunda columna podría representar pesos. Por lo que en el lingle del machine Learning, hablamos de etiquetas y características donde las etiquetas se airen. general lo que estás tratando de predecir y las entidades son un conjunto de atributos conocidos de los datos que solían hacer una predicción de Así en este ejemplo, tal vez alturas o las etiquetas y las entidades son los pesos May. Estamos tratando de predecir alturas en función de tu peso. Podría ser cualquier cosa. No importa. Todo esto se normaliza hacia abajo para gustar los datos entre uno negativo y uno, por lo que no hay un significado real a la escala de datos en ningún lugar. Puedes fingir que significa cualquier cosa que quieras. ¿ En serio? Entonces para hacer esto, para usar esto con ml que necesitamos transformar nuestros datos en las expectativas formateadas. Entonces lo primero que vamos a hacer es dividir esos datos con esta función de mapa que apenas divide cada línea en dos valores distintos en una lista. Y entonces vamos a mapear eso al formato que m l esperaría. Entonces eso va a ser una etiqueta de punto flotante y luego un vector denso de los datos de entidad. Ahora, en este caso, sólo
tenemos un poco de fecha característica del peso. Entonces tenemos un vector que sólo tiene una cosa en él. Pero aunque sea solo una cosa, el modelo de regresión lineal M l Lib requiere allí un vector denso. De acuerdo, esto es como un punto etiquetado en el AP más viejo pero tienes que hacerlo de la manera difícil aquí. Ahora, a
continuación necesitamos realmente asignar nombres a esas columnas. Entonces aquí está la sintaxis para hacer eso. Vamos a decirle a ml live que estas dos columnas en mi RTD resultante aquí realmente corresponden a la etiqueta elite y a las características. Y entonces puedo convertir ese RTD en un objeto de marco de datos. Entonces, en este punto, tengo un marco de datos real o, si se quiere, un conjunto de datos que contiene dos columnas, etiqueta y entidades donde la etiqueta es una altura de punto flotante y la columna de entidades es una denso vector de pesos de punto flotante. Y ese es el formato requerido por ml, lib y ML. Podría ser bastante exigente con estas cosas. Por lo que es importante que prestes atención a estos formatos. De acuerdo, ahora, como dije, vamos a dividir nuestros datos y 1/2 así que vamos a hacer una división de 50 50 entre los datos de entrenamiento
y los datos de prueba. Entonces esto vuelve a los marcos de datos, uno que voy a usar para realmente crear mi modelo en uno de eso voy a usar para evaluar mi modelo. A continuación crearé mi modelo de regresión lineal real con algunos parámetros estándar aquí que he establecido. Vamos a llamar a eso lor regresión lineal, y luego ajustaré ese modelo al conjunto de datos que guardé a un lado para entrenar el marco de datos de
trading. Y eso me devuelve un modelo que puedo usar para hacer predicciones. Entonces sigamos adelante y hagamos eso. Llamaré modelo de punto transformado pruebas de punto con F testy y cuando eso va a hacer es predecir las alturas en función de los pesos en mis datos de pruebas. De acuerdo, entonces el conjunto de datos de prueba, en realidad
tengo las etiquetas no,
las alturas correctas reales, y esto va a agregar una nueva columna a ese marco de datos llamado predicciones que tiene el predictivo valores basados en ese modelo lineal, voy a hacer un par de cosas con esto, así que voy a cobrar los resultados, y ahora podría simplemente extraerlos y compararlos juntos. Así que saquemos la columna de predicción solo usando punto Seleccionar, Igual que no secearías. Y entonces realmente voy a transformar ese marco de datos y sacar el RTD de él y usarlo para mapearlo a sólo una llana vieja, ya de llena de alturas de punto flotante y alturas de 40 puntos, en este caso, ¿
verdad? Entonces estas son las alturas pronosticadas, y luego vamos a llegar a las alturas reales desde la columna de la etiqueta, y luego podemos sentarlo de nuevo juntos y simplemente imprimirlos uno al lado del otro y ver qué tan bien lo hace ahora, te importa, esta es una especie de forma enrevesada de hacerlo. Hice esto para ser más consistente con el ejemplo anterior, pero un enfoque más simple sería simplemente seleccionar la predicción y etiquetar juntos en un solo RTD que mapee esas dos columnas juntas. Y entonces no los visito. Pero de cualquier manera funciona. Veamos si funciona, así que para ejecutar esto de nuevo se abrirá un prompt anaconda que hacer, y veremos el a nuestra carpeta material del curso y vamos a teclear. Desatado como somete chispa regresión lineal punto p y y dejar que haga lo suyo. Por lo que de nuevo estamos usando la nueva interfaz ML. Eso es basado en marcos de datos, y por cierto, para usar Scalia en lugar de python, probablemente
usarías conjuntos de datos en lugar de marcos de datos, solo terminología diferente ahí y ahí tenemos los resultados. Entonces tenemos aquí Cada resultado aquí es el valor predictivo, seguido del valor real. Se puede ver que en general, están bastante cerca. O sea, no
es perfecto, pero ah, el modelo al menos hizo algo razonable Así que eso es todo. Eso es genial. Entonces, sí, acabamos de hacer una regresión lineal usando chispas Nuevo M L A p. Lo haré relativamente nuevo o 2016. Es Ah, ya
sabes, sabes, han pasado
varios años desde entonces, pero esta sigue siendo una especie de la forma en que el futuro que están empujando a la gente hacia otra RTD sigue funcionando. Pero, um, el marco de datos basado E p. I es una especie de donde están concentrando sus esfuerzos en estos días, así que vale la pena entenderlo. Ahí lo tienes. ML inacción en chispa.
79. Deploying de modelos a la producción: La pregunta que a menudo me hago es que todo está bien y bien entrenar a estos modelos y desplegarlos dentro de un Júpiter y cuaderno. Pero, ¿cómo usaría estos modelos en el mundo real cómo conectar realmente la salida de estos modelos de estos modelos de aprendizaje automático a una aplicación real, como una aplicación de teléfono móvil o un sitio web o algo así? Bueno, ese es todo el mundo de sí mismo. Ya sabes, nos estamos metiendo en el mundo de diseñar sistemas más grandes aquí, pero te daré alguna orientación de alto nivel de todos modos. Ahora, obviamente sois aplicaciones externas no van a estar ejecutando cuadernos Júpiter y consiguiendo sus resultados de esa manera. nivel local, lo que necesitamos hacer es separar el proceso de capacitación y afinar nuestro modelo del proceso de hacer realmente predicciones basadas en ese modelo. Entonces el parque de entrenamiento y yo se hará fuera de línea, derecha debilita, haz eso dentro de nuestro cuaderno. O podemos exportar un script Python independiente que se ejecute periódicamente, tal vez para recoger nuevos datos de entrenamiento a medida que entra. A lo mejor se está ejecutando incluso en algún tipo de entorno de streaming, pero todo eso puede suceder en el back-end, ya
sabes, Todavía puedes usar tus nuevos cuadernos de libros para eso si quieres refinarlo. Pero entonces cuando realmente tienes un modelo entrenado, recuerda, sólo
tenemos ah, modelo como un clasificador que está sentado ahí en psíquico aprendió ese punto, y todo lo que tenemos que hacer es llamar a predecir sobre él para realmente conseguir un resultado. Por lo que es posible realmente exportar ese modelo a un archivo y ejecutar ese modelo en un
servicio Web . Por lo que la idea sería empujar el modelo hacia fuera a una flota de servicios Web. Ya sabes, esto podría ser como algo en la nube en algún lugar donde solo se está ejecutando. Un conjunto distribuido de servicios eran, Ojalá no tengas que cuidar los propios servidores reales, y todo lo que hace el servicio es responder a las solicitudes de servicio Web sobre arresto o alguna otra interfaz. Eso dice, Aquí están los datos de la característica que quiero una predicción para Dame una predicción y ese modelo pre entrenado que se despliega a ese servicio Web completo puede entonces proporcionar rápidamente ese resultado de vuelta a gran escala y de esperemos bajo latencia y altas tasas de transacción de manera confiable . Por lo que su aplicación llamaría al servicio Web que en realidad solo genera predicciones basadas en el modelo, pero el modelo en sí se crea fuera de línea, y luego los resultados de ese modelo, el modelo en sí, es empujado al servicio Web. Hablemos de algunos ejemplos más específicos aquí para que sea riel. Digamos que estás usando Google Cloud Services de una manera que podrías hacer esto muy fácilmente. Es solo para usar el método de lib trabajo externo de SK aprendido aquí. Con eso, solo
puedes decir job lib dot dump con cualquiera que sea tu modelo. Conoces algún clasificador, que podría ser cualquier cosa, ¿verdad? Ah, K significa que incluso puedes, como, tener un clasificador de aprendizaje profundo ahí dentro. Si nos quieres bien y psíquico aprendido puede volcar eso a un archivo después de que haya sido entrenado . Simplemente le das un nombre de archivo. Y para Google Cloud, quiere
que se llame modelo dot job lip. Entonces estás subiendo el modelo de punto resultante Job Live, que contiene el modelo en sí al almacenamiento de Google Cloud, y de ahí solo podría decir que esto se va a ejecutar dentro del marco de aprendizaje psíquico, y sabrá qué hacer con él. En ese punto, solo
puedes atar un motor de nube ml en él. El cloud de Google. Motor Mm L. Y eso expondrá arresto un p I que puedes llamar para hacer predicciones en tiempo real
en base a ese modelo que subiste a la Nube de Google. A ver cómo funciona eso. Entonces básicamente, entrenarías a tu clasificador fuera de línea en un cuaderno o lo que
sea, como quieras hacerlo. Exporta ese clasificador a un archivo, sube ese archivo al almacenamiento de Google Cloud, y luego el motor ML de Google Cloud podría en realidad interactuar con eso con tus aplicaciones sobre arresto, una p I. Y si tú no sé qué arresto es un P I, es básicamente el mismo protocolo que usas para mirar sitios web. Entonces cuando vas a tu navegador Web y dices, quiero mirar a esta chica que esta enviando un descanso get request a un servidor en algún lugar que diga, quiero obtener los resultados de esta chica y se lo devuelva de la misma manera exacta tu aplicación diría, quiero obtener una predicción para este conjunto de características y devuélvemelo, por favor. Mismo mecanismo exacto. Podrías llegar a ser mucho más complicado Digamos que usar los servicios web de Amazon y
quieres construir todo un sistema de extremo a extremo que haga recomendaciones de productos. Una forma de hacerlo en AWS sería si se cuenta con una flota de servidores que estén generando
datos de pedidos . Ya sabes, si realmente estás monitoreando los servidores donde la gente está haciendo pedidos, podríamos tener ah servicio llamado kinesis data firehose funcionando encima de esos servidores que es, alimentando esos datos de registro información en Amazon tiene tres almacenamiento. Y a partir de ahí, el mapa elástico de
Amazon produce un servicio podría estar consumiendo esos datos de ley de s tres. A lo mejor que contiene toda la información de compra o toda la información de vista o toda la información de
calificaciones para las cosas que queremos recomendar. Y en Amazon mapa elástico reducir. Podríamos estar ejecutando Apache chispa en todo un clúster que está consumiendo esos datos de S tres y creando predicciones creando recomendaciones basadas en esos datos. Ahora, en este caso, no
voy a empujar el modelo real en sí hacia Ah, un servicio Web. Simplemente voy a empujar los resultados de la misma. Entonces lo que podría hacer es pre generar recomendaciones para cada usuario antes de tiempo. Entonces después de consumir todos los últimos datos de S tres todos los últimos datos de compra o estado de
calificación o lo que sea que tengas que trabajar. Puedo apagarme y usar Apache Spark para generar artículos recomendados pronosticados que la gente podría gustar para cada usuario de mi sistema. Podría entonces publicar eso a algo como Amazon Dynamodb, que es simplemente una base de datos sin secuela que me permitirá asociar muy rápidamente una lista de identificadores de ítems con una lista de identificadores de usuario, y eso será una muy rápida forma de mirar hacia arriba. ¿ Qué artículos debo recomendar para un usuario determinado? Entonces tomo la salida del modelo, y publiqué la salida a algo más escalable. Al igual que dinamodb. Dynamodb es escalable horizontalmente por lo que puede manejar tasas de transacción muy altas a muy baja latencia. Entonces, para exponer eso al mundo exterior, podría usar algo como AWS lambda, que es su funcionalidad de lis de servidor que solo te permite escribir funciones muy simples que
accederían a esa base de datos de dynamodb usuario perdonado y recuperar los resultados de vuelta para alguna aplicación. Y no lo hace en tal asunto que no tengas que preocuparte por aprovisionar realmente capacidad
del servidor para ejecutarse. Que AWS se encargue de todo eso por ti. Ante eso,
podrías tener algo llamado la puerta de enlace Amazon e p I, que en realidad proporcionaría la interfaz de descanso con la que tu lapse móvil o sitios web hablarían realmente para recuperar esos datos. Entonces, mirándolo desde la otra dirección, su aplicación cliente podría decir que quiero obtener recomendaciones para este usuario. Yo d. Diría Ok. Amazon E P I Gateway, dame recomendaciones para este usuario. D a través de alguna consulta de descanso detrás de bambalinas que transferiría esa solicitud a aws Lambda, que de nuevo tiene que ser escalable. Lambda diría, Vale, voy a tomar esto y ejecutar un poco de código JavaScript o algo también. Recuperar las ideas de ítem reales y dynamodb para ese usuario i D. Y eso fue todo pre generado por Apache Spark corriendo en EMR creando recomendaciones fuera de Amazon tiene tres. Entonces esta es una forma más complicada de que sea más un ejemplo de tipo de cosas que podrías ver en el mundo real. Ya sabes, estos sistemas sí tienden a complicarse bastante porque parece que empiezas a lidiar con escala
masiva. Necesitas lidiar con una nube en algún momento, y tienes que lidiar con tecnologías como Apache Spark que pueden escalar hasta
conjuntos de datos masivos . Entonces esto es lo que tipo de, ah, ejemplo
más avanzado, si se quiere, pero uno muy real de cómo podría realmente implementar algo así en el
mundo real otra vez. El clave es que la generación real del modelo es separada de la vending de los datos , los resultados de éste. Entonces en la fila superior ahí, ese es el proceso de construir realmente las recomendaciones por sí mismas. Pero luego empujamos las recomendaciones reales hacia abajo a algo que es más escalable a dynamodb, frente por en Lambda, que en última instancia es enfrentado por Amazon E P I gateway. Y entonces tenemos un sistema de extremo a extremo que realmente puede manejar ventilar los resultados de nuestro modelo a escala masiva. También hay otras formas de hacerlo. Podrías simplemente escribir tu propio servicio Web si quisieras usar matraz o algo así, o cualquier marco de servicio Web que te guste. Entonces tendrías que aprovisionar obviamente tus propios servidores y mantenerlos, cual no es muy divertido. Es decir, por
eso la gente usa servicios como AWS y Google Cloud y Azure en estos días. Um, también, todos pueden entrar con una plataforma. Todos estos proveedores de nube tienden a tener sus propios sistemas y tecnologías para hacer machine learning estos días así que a continuación aquí se muestra como una lista parcial de los servicios de AWS que están disponibles en el espacio de aprendizaje automático en este momento, para ejemplo. Entonces, ya
sabes, si solo quieres hacer reconocimiento de voz o reconocimiento de imagen, cuentan con servicios que están disponibles fuera del estante. Eso sólo hará eso por ti. Y obviamente puedes integrarlos muy fácilmente con otros servicios de AWS para construir
sistemas más grandes como los que hemos estado viendo aquí así que algo a considerar también, aunque siempre va a ser una buena idea especie de prototipo de nuevas ideas off line en un cuaderno o algo así. Pero en última instancia, la forma en que los implementas para un sistema más grande podría ser muy diferente. Entonces espero que eso te dé una especie de, ah, idea de
alto nivel de cómo podrías realmente ir a exponer tus modelos a un
sistema del mundo real otra vez. El conocimiento clave es separar la generación del modelo en sí en sus resultados del
problema de servir realmente esos resultados a una enorme flota de consumidores de esos datos,
ya sea que vaya con los servicios de AWS o Google Cloud o haga rodar los suyos propios o utilice Microsoft Azure, quiero decir, esos son todos los temas de cursos enteros propios. Al igual que no puedo cubrir eso y mucha profundidad ahora mismo. Pero al menos eso te da un punto de partida de dónde explorar si estás en posición de intentar desplegar estos resultados en algún lugar real.
80. Conceptos de prueba de A/B: Si trabajas como científicos de datos en una empresa Web, probablemente se
te pida que dediques algún tiempo analizando los resultados de las pruebas de una B. Estos son básicamente experimentos controlados en un sitio web para medir el impacto de un
cambio dado . Entonces hablemos de lo que son las pruebas B y cómo funcionan. Hablemos de una prueba B. Si vas a ser científico de datos en una gran empresa Web de tecnología, esto es algo en lo que definitivamente vas a estar involucrado porque la gente necesita ejecutar experimentos para probar cosas diferentes en un sitio web y medir los resultados de la misma. Y eso en realidad no es un sencillo como la mayoría de la gente piensa que es. Entonces hablemos de lo que son las pruebas B y cuáles son los retos que las rodean. Entonces, ¿qué es una prueba A B? Bueno, es un experimento controlado que normalmente diriges un sitio web. decir, Esdecir,podría aplicarse también a otros contextos, pero normalmente estamos hablando de un sitio web, y lo que estamos tratando de hacer es probar el rendimiento de algún cambio en ese sitio web versus la forma en que era antes. Por lo que básicamente tienes un conjunto de control de personas que ven el viejo sitio web y un grupo de prueba de personas que ven el cambio al sitio web. Y la idea es medir la diferencia de comportamiento entre estos dos grupos y utilizar datos realmente decidan si este cambio fue beneficioso o no. Entonces, por ejemplo, soy dueño de un negocio que tiene un sitio web. Nosotros licenciamos software a la gente, y en este momento tengo un bonito, amable botón naranja en el que la gente hace clic en donde quieren comprar una licencia. A lo mejor sería Azul. ¿ Cómo lo sé? Quiero decir intuitivamente. A lo mejor eso podría llamar la atención de su gente más o intuitivamente. A lo mejor la gente está más acostumbrada a ver botones de compra naranja, y rápidamente era probable que haga clic en eso. Podría gastar eso de cualquier manera, ¿verdad? Entonces mis propios sesgos internos o preconcepciones realmente no importan. Lo que importa es cómo la gente reacciona realmente a este cambio en mi sitio web real, y eso es lo que hace una prueba de la Marina. En realidad va a dividir a la gente en algunas personas, ver el botón naranja. Algunas personas ven el botón azul, y luego puedo medir el comportamiento entre estos dos grupos y cómo podrían diferir y tomar mi decisión sobre qué color. Mis botones deberían estar basados en esos datos. Podrías probar todo tipo de cosas dentro de una prueba B. Hablamos de cambios de diseño, para que conozcas el color de un botón, la colocación de un botón, el diseño de una página. ¿ Qué tienes? Podría ser todo un flujo U Y. Entonces tal vez en realidad estás cambiando la forma en que funciona tu canalización de compras y cómo la gente echa un vistazo en tu sitio web, y en realidad puedes medir el efecto de esos cambios algorítmicos. Volvamos al ejemplo de hacer recomendaciones de películas. A lo mejor quiero probar un algoritmo versus otro. Y en lugar de depender de las métricas de error y de mi capacidad para hacer prueba de tren, sabes lo que realmente me importa es conducir compras o alquileres o lo que sea en este sitio web. Y tal vez la prueba podría hacerme llamar directamente medir directamente el impacto de este algoritmo en el resultado final que realmente me importa, y no solo mi capacidad para predecir películas que otras personas ya han visto. Cambios en los precios. Este se pone un poco polémico. Ya sabes, en teoría, realidad
puedes experimentar con diferentes puntos de precio usando una prueba A B y ver si realmente aumenta el volumen para compensar la diferencia de precio o lo que sea. Pero usa esa con precaución. Si los clientes atrapan ganan que otras personas están obteniendo mejores precios y son por ninguna buena razón. No van a estar muy contentos contigo. Así que ten en cuenta hacer experimentos de precios puede tener una reacción negativa, y no quieres estar en esa situación. Cualquier otra cosa que pudieras soñar. De verdad. Cualquier cambio que impacta la forma en que los usuarios interactúan con tu sitio vale la pena probar. A lo mejor es incluso, ya
sabes, hacer que el sitio web sea más rápido o podría ser cualquier cosa. Entonces, lo primero que debes averiguar cuando estás diseñando un experimento en un sitio web es ¿para qué estás tratando de optimizar? ¿ Qué es lo que realmente quieres conducir con este cambio? Y esto no siempre es algo muy obvio, ¿verdad? A lo mejor es la cantidad que la gente gasta la cantidad de ingresos. OK, bueno, hablamos de los problemas con las variantes en el uso de la cantidad gastada, pero si tienes suficientes datos, todavía
puedes llegar a la convergencia sobre esa métrica. Ya sabes, muchas
veces, pero tal vez eso no es para lo que realmente quieres optimizar? A lo mejor en realidad estás vendiendo algunos artículos que una pérdida intencionalmente solo para capturar
cuota de mercado . O, ya
sabes, hay más complejidad que entra en tu estrategia de precios que solo
ingresos de primera línea . A lo mejor lo que realmente quieres medir es el beneficio. Y eso podría ser algo muy complicado de medir porque muchas cosas cortan en cuánto dinero podría ganar un producto determinado. Y esas cosas podrían no ser siempre obvias. Y de nuevo, si has perdido líderes, este experimento descartará el efecto que se supone que tienen esos aires. Entonces, resumen, hay
que hablar con los dueños de negocios del área que se está probando y averiguar qué es
lo que están tratando de optimizar para qué se están midiendo? Cual es su éxito medido en qué aire Ahí, ya
sabes, indicadores
clave de desempeño o como lo quieran los NBA para llamarlo y asegurarnos de que estamos midiendo lo que realmente les importa. De acuerdo, tal vez solo te importa conducir clics publicitarios en tu sitio web o pedir cantidades para reducir variantes. A lo mejor la gente está de acuerdo con eso, y sabes que puedes medir más de una cosa a la vez para que no tengas que escoger una. En realidad se puede informar sobre el efecto de muchas cosas diferentes. Ingresos, clics de
ganancias, vistas de
anuncios. Y si todas estas cosas se mueven en la dirección correcta juntas, esa es una señal muy fuerte de que este cambio tuvo un impacto positivo en más de una manera, ¿
verdad? Entonces, ¿por qué limitarte a una métrica? Tan solo asegúrate de saber cuál es el que más importa y cuáles serán tus criterios para el éxito de este experimento con anticipación. Otra cosa a tener cuidado con nosotros atribuyendo conversiones a un cambio aguas abajo. Entonces si la acción que estás tratando de conducir no ocurre de inmediato en que el usuario experimente lo que estás probando, las cosas se ponen un poco dudosas. Entonces digamos que cambio el color del botón en la página. Un usuario luego va a la Página B y hace algo más y en última instancia comprar algo de pagado. Ver bien, ¿quién recibe crédito por esa compra? ¿ Es la página A o la Página B o algo así? En el medio? ¿ Puedo descontar el crédito por esa conversión? ¿ Dependiendo de cuántos clics tomara esa persona para llegar a la acción de conversión? ¿ Simplemente descarto cualquier conversión, media acción. Eso no sucede inmediatamente después de ver ese cambio. Estas son cosas complicadas. Y, ya
sabes, es muy fácil producir resultados engañosos fudging cómo cuentas estas diferentes distancias entre la conversión y el cambio que estás midiendo. Por lo tanto, ten eso en cuenta, también. Otra cosa que necesitas internalizar realmente es que la varianza es tu enemigo cuando estás ejecutando una prueba A B. Entonces un error muy común que cometen las personas que no saben con qué están lidiando la ciencia de datos es que pondrán una prueba en una página en una Web. Ya sabes, botón
azul versus botón naranja, sea lo que sea, ejecútalo por una semana y toma la cantidad media gastada de cada uno de esos grupos. Y dicen: Pasar por alto a la gente con el botón azul en promedio, gastó un dólar más que la gente con el botón naranja. El azul es impresionante. Me encanta el azul. Voy a poner azul por todo el sitio Web ahora, Pero de hecho, todo lo que pudieron haber estado viendo fue solo variación aleatoria en las compras. Ya sabes, no
tenían una muestra lo suficientemente grande porque la gente no tiende a comprar mucho. Sabes que obtienen mucho uso, pero probablemente tengas muchas compras en tu página web en comparación. Y probablemente sea mucha varianza en esos montos de compra porque diferentes productos cuestan diferentes cantidades, por lo que muy fácilmente podrías terminar tomando la decisión equivocada que termina costando
dinero a tu empresa a largo plazo en lugar de ganar dinero de tu empresa. Si no entiendes el efecto de las variantes en estos resultados, y en breve hablaremos de algunas formas principales de medir y contabilizar eso. Y asegúrate de que necesitas asegurarte de que tus dueños de negocios entiendan que este es un efecto
importante que necesitas cuantificar y entender antes de tomar decisiones empresariales tras una prueba A B o cualquier experimento que ejecutes en la Web ahora, a veces necesitas elegir una métrica de conversión que tenga menos varianza. Ya sabes, podría ser que los números en tu página web solo significan que tendrías que ejecutar un experimento durante años para obtener unos resultados significativos basados en algo como ingresos o cantidad gastada. Entonces, a veces si estás mirando más de una métrica como orden, cantidad, orden, cantidad que tiene menos varianza asociada a ella. Y así podrías ver una señal sobre cantidad de pedido antes de ver una señal sobre ingresos, por ejemplo, y al final del día, termina siendo una llamada de juicio. Ya sabes, si ves un alza importante en cantidades de orden y tal vez una lista no tan significativa en ingresos, entonces tienes que decir, Bueno, creo que podría haber algo real que sea beneficioso pasando aquí. Pero al final del día, lo único que las estadísticas y
el tamaño de los datos Comptel eres probabilidades de que, en efecto ,
Israel ,
ya
sabes, realmente depende de ti decidir si es o no realmente al final del día. Entonces hablemos de cómo hacer esto con más detalle. Entonces eso es una introducción a las pruebas a B. El quitarle la llave ahí solo está mirando las diferencias, y los medios no es suficiente. Cuando intentas evaluar los resultados de un experimento, también
debes tener en cuenta las variantes. Entonces vamos a entrar en algunos ejemplos en nuestra próxima conferencia de cómo realmente se miden los efectos de la varianza usando la estadística T y las métricas de valor P
81. Tests y valores de T: Entonces, ¿cómo sé si un cambio resultante de una prueba A B Israel si en realidad es un
resultado realmente de lo que cambié o facist variación aleatoria? Bueno, hay un par de herramientas estadísticas a nuestra disposición llamadas estadística T y el
valor P . Entonces, aprendamos más sobre cuáles son esos y cómo pueden ayudarte a determinar si un experimento es bueno o no. Entonces, como dije en nuestra conferencia anterior varia a tu enemigo cuando estás corriendo en una prueba B. Entonces, ¿cómo contabilizamos eso? Bueno, hay algunas herramientas estadísticas a nuestra disposición, llamadas test tes a la estadística T más específicamente, y el valor P, que permite cuantificar el efecto de las variantes en nuestros resultados y tomar una decisión que toma en cuenta esas variantes. Entonces el punto es averiguar si un resultado es real o no. ¿ Fue esto sólo el resultado de una varianza aleatoria que es inherente a los datos mismos? O estamos viendo un cambio real, estadísticamente significativo en el comportamiento entre nuestro grupo control en nuestras
pruebas T del grupo de prueba y valores P, o una forma de calcular eso y recordar de nuevo. Estadísticamente significativo no tiene realmente un significado específico. Al final del día, tiene
que ser un llamado de juicio. Tienes que escoger algún valor de probabilidad que vas a aceptar de un resultado siendo riel o no. Pero siempre va a haber una posibilidad de que siga siendo resultado de una variación aleatoria, y tienes que asegurarte de que tus stakeholders entiendan eso. Entonces, empecemos con la estadística T. Ellison lo era. Una prueba T es básicamente una medida de la diferencia de comportamiento entre estos dos conjuntos entre su grupo de control y tratamiento expresado en unidades de error estándar. Por lo que se basa en el error estándar, que da cuenta de la varianza inherente a los datos mismos. Entonces al normalizar todo por ese error estándar, obtenemos alguna medida del cambio en el comportamiento entre estos dos grupos que toma en cuenta esa varianza. Por lo que la forma de interpretar una estadística T es en un alto valor de té significa que probablemente haya una
diferencia real entre estos dos conjuntos de pasos. Hay un valor lo T significa no tanto. Entonces tienes que decidir. ¿ Sabes qué es ah umbral estás dispuesto a aceptar? Y el signo de la estadística T te dirá si es una cadena positiva o negativa. Entonces si estás comparando tu control, tu grupo de tratamiento y terminas con una estadística T negativa, eso implica que este es un mal cambio. Si ese valor absoluto de esa estadística T es grande, ¿qué tan grande es grande? Bueno, eso es discutible. En breve veremos algunos ejemplos. Esto sí asume que se tiene una distribución normal del comportamiento. Y cuando hablamos de cosas como la cantidad que la gente gasta en un sitio web, eso suele ser una suposición decente. tiende a haber una distribución normal de cuánto gasta la gente, sin embargo, su brazo o versiones refinadas de estadística T que tal vez quieras mirar para otras situaciones
específicas. Por ejemplo, hay algo llamado prueba exacta de Fisher. Cuando estás hablando, haz clic a través de tarifas E test cuando estás hablando de transacciones por usuario, como cuántas páginas Web vieron? Y la prueba cuadrada Chai, que a menudo es relevante para cuando estás buscando cantidades de pedidos? Por lo que a veces querrás mirar a todas estas estadísticas se les dio experimento y elegir la que realmente se ajuste a lo que estás tratando de hacer mejor. Ahora es mucho más fácil hablar de valores P que de estadísticas T, ya que no hay que pensar en cuántas desviaciones estándar estamos hablando. ¿ Y qué significa el valor real? El valor P es un poco más fácil de entender para las personas, que hace que sea una mejor herramienta para que comuniques los resultados de un experimento a las partes interesadas en tu negocio. Por lo que el valor P es básicamente la probabilidad de que este experimento satisfaga la
hipótesis nula . Esa es la probabilidad de que no haya diferencia real entre el
comportamiento de control y tratamientos . Por lo que un valor P bajo significa que hay una baja probabilidad de que no tenga efecto, una
especie de doble negativo pasando ahí. Entonces es un poco contraintuitivo, pero al final del día, solo
tienes que entender que un valor P bajo significa que hay una alta probabilidad de que tu cambio tuviera un efecto real. Entonces lo que se quiere ver o estadística de dientes altos y un valor p bajo, y eso implicará unos resultados significativos. Ahora, antes de iniciar tu experimento, necesitas decidir cuál será tu umbral de éxito, Ya
sabes, decidir eso con las personas a cargo del negocio. Entonces, ¿qué valor P estás dispuesto a aceptar como medida de éxito? ¿ Es 1%? ¿ Es 5%? Y de nuevo, esta es básicamente la probabilidad de que no haya efecto riel que sea solo resultado de varianza
aleatoria. Es sólo una llamada de juicio al final del día. Muchas veces la gente usa 1%. En ocasiones usan el 5% de su sentimiento un poco más arriesgado. Pero siempre va a haber esa posibilidad de que tu resultado fuera solo datos aleatorios espurios que entraron. Pero puedes elegir la probabilidad de que estés dispuesto a aceptar como bastante probable que este sea un efecto real que vale la pena lanzarse a la producción. Entonces, cuando tu experimento haya terminado y hablaremos de cuándo declaras que un experimento ha terminado, quieres medir tu valor P. Si es menor que el umbral que decidas, entonces puedes rechazar la hipótesis nula y puedes decir,
bueno, bueno, hay una alta probabilidad de que este cambio produzca un riel resultados positivos o negativos. Es un resultado positivo del que puedes rodar ese cambio a todo el sitio, y ya no es un experimento. Es parte de tu página web que esperemos que te haga más y más dinero a medida que pasa el tiempo. Y si es un resultado negativo, quieres deshacerte de él antes de que te cueste más dinero. Entonces recuerda esto un costo real para correr en una prueba B cuando tu experimento tiene
resultados negativos , por lo que no quieres ejecutarlo por mucho tiempo porque hay una posibilidad de que puedas estar perdiendo dinero . Y es por ello que se quiere monitorear diariamente los resultados de un experimento. Entonces si hay indicios tempranos de que un cambio está haciendo un impacto horrible en la página web , tal vez haya un error en ella o algo que sea horrible. Puedes tirar del tapón de él prematuramente si es necesario, y limitar el daño. Entonces vayamos a un ejemplo real y veamos cómo podrías medir las estadísticas T y los valores P usando python arriba a continuación. Entonces esa es la prueba T, la estadística T y las herramientas útiles del valor P para determinar si un resultado es
realmente o un resultado de variación aleatoria. Entonces a continuación vamos a sumergirnos en algunos ejemplos reales y ensuciarnos las manos con algún código python y calculemos estas cosas.
82. Paso a mano con tests: fabricemos algunos datos experimentales y utilizamos la estadística T y el valor P para determinar si un determinado resultado experimental es o no un efecto real. De acuerdo, vamos a ensuciarnos las manos con algunas pruebas T realmente iban a fabricar algunos datos
experimentales falsos y ejecutar estadísticas T y valles P sobre ellos y ver cómo funciona y
cómo calcularlo en Python. Entonces, empecemos fabricando aquí algunos datos. Imaginemos que estamos realizando una prueba A B en un sitio web y hemos asignado aleatoriamente a nuestros usuarios en dos grupos, Grupo A y el Grupo B y el Grupo A va a ser Nuestros sujetos de prueba son grupo de tratamiento y Grupo B será nuestro control. Básicamente, la forma en que el sitio web solía ser así en este ejemplo son el tratamiento Grupo va a tener un comportamiento de compra distribuida
aleatoriamente donde gastan en promedio $25 por transacción, soportan desviación de cinco y 10,000 muestras. ¿ Dónde está la forma en que solía tener el sitio web una media de 26 dólares por transacción, con la misma desviación estándar y tamaño de muestra. Entonces básicamente estamos viendo un experimento que tuvo un resultado negativo aquí y todo lo que
tienes que hacer para descifrar la estadística T y el valor P se usa así de útil. Dandy Stats Stock T Prueba Método final De Sai Pie Es solo así de simple. Entonces lo que haces es pasarlo en tu grupo de tratamiento en tu grupo control y
desencadena tu estadística T, que en este caso es negativa. 13. El negativo indica que se trata de un cambio negativo. Esto fue algo malo, y el valor P es muy, muy pequeño. Entonces eso implica que hay una probabilidad extremadamente baja de que este cambio sea sólo resultado de la casualidad aleatoria. Entonces recuerda, para declarar significación, necesitamos ver ah, alto valor del té estadístico T y un valor P bajo. Y eso es exactamente lo que estamos viendo aquí. Estamos viendo negativo 13 que es un valor absoluto muy hi, la estadística T negativa, que
indica que eso es algo malo y un valor P extremadamente pequeño diciéndonos que
prácticamente no hay posibilidad de que esto sea solo resultado de aleatorio variación. Entonces si vieras estos resultados en el mundo real, tirarías del enchufe de este experimento tan pronto como pudieras. De acuerdo, así que sólo es un cheque de arena. Sigamos adelante y cambiemos las cosas para que en realidad no haya diferencia de cambio de riel entre estos dos grupos. Entonces voy a cambiar Grupo B.
El grupo control en este es el caso de ser el mismo que un tratamiento donde la media es 25 la desviación
estándar que no cambia en el tamaño de la muestra de la cadena solar. Entonces si vas adelante y corres eso tienes que ver que nuestra prueba T termina por estar por debajo de una ahora . Entonces recuerdas esto es en términos de desviación estándar, así que eso implica, Bueno, probablemente no
haya un cambio real ahí. Debe tener un valor P mucho mayor así como más del 30%. Ahora, estos aires siguen siendo relativamente altos números ish. Entonces ya sabes, puedes ver que la variación aleatoria puede ser una especie de cosa insidiosa. Es por ello que hay que decidir con anticipación. ¿ Cuál es un límite aceptable para el valor P aquí? Ya sabes, podrías mirar esto después del hecho y decir, 30% probabilidades de que sea, ya
sabes, eso no es tan malo. Podemos convivir con eso. Pero no, quiero decir en realidad, en la práctica, quieres ver valles P que están por debajo del 5% idealmente por debajo del 1% y un valor del 30% significa que
en realidad no es tan fuerte de un resultado. Entonces no lo justifiquen después del hecho. Entra en tu experimento a saber cuál es tu umbral. Hagamos algunos cambios aquí, y, ya
sabes, nuevo, estamos creando estos conjuntos bajo las mismas condiciones. Veamos si realmente obtenemos una diferencia en el comportamiento al aumentar el tamaño de la muestra, así que vamos a pasar de 210,000 muestras. Aquí se puede ver que en realidad el valor P se volvió un poco más bajo y la prueba T un
poco más grande, pero aún no tiene que declarar una diferencia real. Entonces ya
sabes, esperarías ese Teoh. En realidad va en la dirección. No esperarías que saliera bien un poco interesante, pero aún hay valores altos otra vez. Es sólo la varianza aleatoria efectiva, y podría tener más de un efecto en que te des cuenta, especialmente en un sitio web. Cuando estás hablando de cantidades de pedidos. Vamos Ah, vamos en realidad a un 1,000,000. ¿ Qué es eso? Bueno, ahora estamos de vuelta debajo de uno para la estadística T y nuestros valores alrededor del 35%. Entonces, quiero decir, estamos viendo este tipo de, como fluctúan un poco en cualquiera de las direcciones a medida que aumentamos el tamaño de la muestra. Esto significa que pasar de 10 mil muestras, 200 mil a 1 millón no va a cambiar tu resultado al final del día. Ya sabes, eso es y ejecutar experimentos como este es una buena manera de obtener una buena sensación de tripa en cuanto al tiempo que podría necesitar para ejecutar un experimento, ¿
para cuántas muestras realmente toma para obtener un resultado significativo? Y si sabes algo sobre la distribución de tus datos con anticipación, en realidad
puedes ejecutar este tipo de modelos. Ahora bien, esto es un cheque de cordura. Si realmente tuviéramos que comparar el conjunto con sí mismo, esto se llama a una prueba, y hablaremos de eso más adelante. Deberíamos ver una estadística T de cero y un valor P de un punto. Ah, porque de hecho no hay diferencia alguna entre estos conjuntos. Ahora, si fueras a ejecutar eso usando datos reales del sitio web donde sabes que estás mirando a las mismas personas
exactas y viste un valor diferente que indica que hay un problema en el sistema mismo que ejecuta tus pruebas. Correcto. Está bien. Entonces, ya
sabes, al final del día, como dije, todo
es una llamada de juicio. Así que adelante y juega con esto. Ya sabes, ve qué efecto tienen las diferentes desviaciones estándar en los conjuntos de datos iniciales o diferentes diferencias en las medias y tipo de obtener una idea sobre diferentes tamaños de muestra. Entonces solo quiero que te sumerjas,
juegues con estos diferentes conjuntos de datos y en realidad los ejecutes y veas cuál es el efecto en la estadística T en el valor P. Y ojalá eso te dé una sensación amore tripa de cómo interpretar estos resultados. Pero
de nuevo, lo importante a entender que estás buscando una estadística T grande y un pequeño
valor p valores P probablemente va a ser lo que quieres comunicar al negocio. Y recuerda, menor es mejor para el valor p. Se quiere ver eso en los dígitos sencillos,ya
sabes, ya
sabes, idealmente por debajo del 1% antes de declarar la victoria. De acuerdo, hablemos de unas pruebas B y más en nuestra próxima conferencia. Por lo que ahí lo tienes CYP. Hago que sea realmente fácil computar estadísticas T y valores P para un determinado conjunto de datos, por lo que puedes comparar muy fácilmente el comportamiento entre tus grupos de control y tratamiento y medir cuál es la probabilidad de que ese efecto sea riel o simplemente un resultado de variación aleatoria. Así que asegúrate de que te estás centrando en esas métricas, y estás midiendo la métrica de conversión que te importa cuando estás haciendo esas comparaciones.
83. Determinar cuánto tiempo corre un experimento: Entonces, ¿por cuánto tiempo corres un experimento? ¿ Cuánto tiempo se tarda en obtener realmente resultados? ¿ En qué momento te rindes? Hablemos de eso a continuación. Esta va a ser una conferencia muy rápida. Yo solo quiero pasar un par de minutos hablando de cómo decidir cuándo
termina un experimento . Entonces si alguien de tu empresa ha desarrollado un nuevo experimento un nuevo cambio que quiere probar, tiene un interés creado en ver que eso tenga éxito. Ya sabes, ponen mucho trabajo a tiempo, y quieren que sea exitoso y tal vez se hayan ido semanas. Y aún no has alcanzado un desenlace significativo sobre esto en este experimento, positivo o negativo, ya
sabes, van a querer seguir ejecutándolo casi indefinidamente con la esperanza de que
eventualmente muestre un resultado positivo. Depende de ti del dedo del pie. Dibuja la línea en cuanto tiempo estás dispuesto a ejecutar este experimento. Entonces, ¿cómo sé cuándo terminé de ejecutar una prueba A B? decir, Esdecir,no siempre es sencillo predecir cuánto tiempo tardará antes de que puedas lograr un resultado
significativo, pero Obviamente, si has logrado resultados significativos, sabes tu valor P ha ido por debajo del 1% o 5% de cualquier umbral que hayas elegido tu hecho . Y ya sabes, en ese punto puedes tirar del enchufe en el experimento en ya sea desplegar el cambio más ampliamente o quitarlo porque en realidad estaba teniendo un efecto negativo. Siempre puedes decirle a la gente que regrese y vuelva a intentarlo. Ya sabes, usaron lo que aprendieron del experimento para tal vez volver a intentarlo con algunos cambios. Y sabes que eso está bien. Suaviza un poco el golpe, pero lo otro que podría suceder es que simplemente no es conversión en absoluto. Y si no estás viendo ninguna tendencia a lo largo del tiempo en el valor P, probablemente
sea una buena señal de que no vas a ver que esto converja en cualquier momento. Eso no va a tener suficiente impacto en el comportamiento para incluso ser mensurable, no importa cuánto tiempo lo ejecutes. Entonces lo que quieres hacer es la trama cotidiana en un experimento perdonado gráfico, el valor P, la estadística T, lo que sea que estés usando para medir el éxito de este experimento, y si estás viendo sabes algo luce prometedor. Verás que los valores de P empiezan a bajar con el tiempo. Por lo que cuantos más datos obtenga, más significativos deberían estar obteniendo tus resultados. Ahora bien, si ves en cambio una línea plana o una línea que está por todo el lugar, ese tipo de te dice que P Valley no va a ninguna parte. Y no importa cuánto tiempo corras este experimento. Simplemente no va a pasar. Entonces debes estar de acuerdo de frente en que en el caso en que no estés viendo ninguna tendencia en
los valores P , ¿para qué es el más largo estás dispuesto a ejecutar este experimento? ¿ Son dos semanas? ¿ Es un mes? Ten en cuenta que tener más de un experimento corriendo de un lado a la vez puede confluir tus resultados. Por lo que el tiempo dedicado a experimentos es una mercancía valiosa. No se puede hacer más tiempo en el mundo por lo que sólo se puede ejecutar realmente sus muchos experimentos ya que se tiene tiempo para ejecutarlos con el dado un año. Entonces, si pasas demasiado tiempo ejecutando un experimento que realmente no tiene posibilidades de converger en un resultado, esa es una oportunidad que has perdido para ejecutar otro experimento potencialmente más valioso durante ese tiempo que estabas desperdiciando en esta otra. Por lo que es importante trazar la línea en las longitudes de los experimentos porque el tiempo es una
mercancía muy preciosa . Cuando estás ejecutando un test B en un sitio web, al
menos mientras tengas más ideas y tengas tiempo, lo cual ojalá sea el caso, y eso es todo. Ya sabes, es una parábola poco sobre asegurarte de entrar con límites superiores acordados y cuánto tiempo vas a pasar las pruebas y el experimento dado. Y si no estás viendo tendencias en el valor P que parecen alentadoras, es hora de tirar del enchufe en ese punto. Entonces recuerda, el tiempo es una mercancía preciosa. Cuando estás experimentando en un sitio web, solo
puedes ejecutar tantos experimentos a la vez, generalmente uno y el tiempo que desperdicias tratando de esperar un resultado que nunca vendrá en un experimento. Esta vez, podrías haber pasado probando un experimento que en realidad sí hizo una diferencia positiva. Entonces elige sabiamente tus límites de tiempo.
84. Prueba de A/B: un punto importante que quiero hacer es que los resultados de una prueba A B, incluso cuando los mides de una manera de principios. Usar valores P no es evangelio. Hay muchos efectos que en realidad pueden sesgar los resultados de tu experimento y provocar
que tomes la decisión equivocada. Así que vamos a pasar por algunos de esos y que sepas cómo cuidarlos. Entonces hablemos de unos gouaches con unas pruebas B. Ya sabes, suena realmente oficial decir que hay un valor P de 1% lo que significa que solo hay un 1% de probabilidad que un experimento dado se deba a resultados espurios o variación aleatoria. Pero todavía no es el ser todo y terminar todo de medir el éxito para un experimento. Hay muchas cosas que pueden sesgar o confluir tus resultados de las que debes estar al tanto. Entonces aunque veas un valor P que luce muy alentador, tu Web, tu experimento aún podría estar mintiéndote, y necesitas entender las cosas que podrían hacer que eso suceda Así que no tomas las decisiones
equivocadas. Recuerda, correlación no implica causalidad, incluso con un experimento bien diseñado, Todo lo que puedes decir es que hay alguna probabilidad de que este efecto haya sido causado por este cambio que hiciste. Al final del día, siempre va a
haber una posibilidad de que no hubiera un efecto real o incluso podrías estar midiendo el efecto equivocado. Todavía podría ser casualidad aleatoria podría haber algo más pasando. Es su deber asegurarse de que los dueños de negocios entiendan que estos
resultados experimentales necesitan ser interpretados. Necesitan ser una pieza de su decisión, ¿verdad? No puede ser el ser todo y acabar con todo eso. Basaron la decisión en porque hay espacio para el error en los resultados y hay cosas que pueden sesgar esos resultados al final del día. Si hay algún objetivo empresarial más grande para este cambio más allá, ya
sabes, simplemente impulsando ingresos a corto plazo que también hay que tener en cuenta. Un problema son los efectos de novedad, por lo que especie del talón de Aquiles de una prueba A B es el corto plazo sobre el que
tienden a correr bien, y esto provoca un par de problemas. En primer lugar, si hay efectos a largo plazo a este cambio, no los vas a medir. Pero también hay cierto efecto. Es sólo algo siendo diferente en la página web. Entonces tal vez tus clientes están acostumbrados a ver botones naranjas todo el tiempo, y ese botón azul aparece y llama su atención sólo porque es diferente. Pero a medida que entran nuevos clientes que nunca han visto tu sitio web antes, no
se dan cuenta de que está siendo diferente en horas extras. Incluso tus viejos clientes se acostumbran al nuevo botón azul, y bien podría ser que si hicieras la misma prueba un año después, no
habría diferencia. O tal vez habría al revés. Ya sabes, pude ver muy fácilmente una situación en la que pruebas botón naranja versus botón azul, y en las primeras 2 semanas gana el botón azul. La gente compra más porque se sintieron más atraídos por él porque es diferente. Pero pasa un año. Probablemente podría ejecutar otro laboratorio Web que ponga ese botón azul contra un botón naranja, y el botón naranja volvería a ganar simplemente porque el botón naranja es diferente y es nuevo y atrapa la atención de la gente sólo por esa razón solo. Entonces por esa razón, si tienes,
ah, ah, cambio eso es algo controvertido. Es una buena idea volver a ejecutar ese experimento más adelante y ver si realmente puedes replicar sus resultados. Esa es realmente la única forma que conozco de dedo para dar cuenta de efectos de novedad. En realidad lo mides de nuevo cuando ya no es novedoso, cuando ya no es sólo un cambio que la atención de mi gente de receptor simplemente porque es diferente y esto es que realmente no puedo subestimar la importancia de entender esto. Esto realmente podría sesgar muchos resultados. Te sesga a atribuir cambios positivos a cosas que realmente no lo merecen. Ya sabes, ser diferente en sí mismo no es una virtud, al
menos no en este contexto. Otro problema. Efectos estacionales. Entonces, de nuevo, si estás ejecutando un experimento sobre Navidad, la
gente no tiende a comportarse igual durante Navidad como lo hace el resto del año. Ya sabes, definitivamente
gastan su dinero de manera diferente durante esa temporada, están pasando más tiempo con sus familias en casa. Podrían ser un poco los sacaron del trabajo, por lo que la gente tiene un marco mental diferente. Podría incluso estar involucrado con el clima. Ya sabes, durante el verano, gente se comporta de manera diferente porque hace calor fuera. Ya sabes, son amables. Se sienten como los de Lee, ya sea de vacaciones con más frecuencia. A lo mejor si haces tu experimento durante el tiempo de una terrible tormenta en una zona altamente poblada que también podría sesgar tus resultados. Por lo que de nuevo, sólo sé consciente de posibles efectos estacionales vacaciones o una grande de la que estar al tanto. Y siempre toma tu experiencia con un grano de sal si se ejecutan durante un periodo de tiempo que se sabe que tiene estacionalidad, y puedes determinar esto cuantitativamente mirando realmente la métrica que estás
tratando de medir como una éxito. Métrica, ya
sea Cualquiera que llames tu métrica de conversión y mira su comportamiento durante el mismo periodo de
tiempo del año pasado, hay fluctuaciones estacionales de fluctuaciones que ves cada año? Y si es así, quieres tratar de evitar correr tu experimento durante uno de esos picos o valles. Otro tema potencial que puede esquiar resultados es el sesgo de selección, por lo que es muy importante que los clientes fueran asignados aleatoriamente a tu control, tus grupos de tratamiento, eres a o a tu grupo B, correcto, Pero hay formas sutiles en las que esa asignación aleatoria podría no ser aleatoria después de todo. Por ejemplo, digamos que su hashing sus ideas de cliente para colocarlos en un cubo u otro . A lo mejor hay algún sesgo sutil de vibra entre cómo esa función hash afecta a las personas con clientes más
bajas vs ideas de clientes más altas. Y eso podría tener el efecto de poner a todos tus clientes de largo tiempo o leales en el grupo de
control y a tus clientes más nuevos que no te conocen tan bien dentro de tu
grupo de tratamiento . Y lo que terminas midiendo es solo una diferencia en el comportamiento entre los clientes antiguos y los
nuevos como resultado. Por lo que es muy importante auditar sus sistemas para asegurarse de que no haya sesgo de selección en la asignación
real de personas al control del grupo de tratamiento. También debes asegurarte de que ese es Simon sea pegajoso, así que si estás midiendo el efecto de un cambio a lo largo de toda una sesión, sabes que quieres medir. Vieron un cambio en la página A, pero sobre ver impagada, en realidad
hicieron una conversión. Tienes que asegurarte de que no estén cambiando de grupo entre esos clics, Así que debes asegurarte de que dentro de una sesión determinada las personas permanezcan en el mismo grupo, y cómo definir una sesión puede volverse algo nebulosa también. Ahora, todos
estos son temas con los que usar un marco establecido fuera de la plataforma como
los experimentos de Google se optimizan Lee o uno de esos chicos puede ayudar. Ya sabes que no estás reinventando la rueda en todos estos problemas, pero si tu empresa sí tiene, ah, solución de
cosecha propia en casa porque no se sienten cómodos con compartir esos datos con empresas
externas, ya sabes que vale la pena auditarlo. Si hay o no selección, sesgo o no. Una forma de hacerlo es ejecutar lo que se llama en una prueba. Entonces si realmente realizas un experimento donde no hay diferencia entre el tratamiento y control, no
deberías ver una diferencia en el resultado final, ¿
verdad? Ya sabes, no debería
haber ningún tipo de cambio en el comportamiento cuando estás comparando esas dos cosas, por lo que una prueba podría ser una buena forma de probar. Eres un marco B en sí mismo al asegurarte de que no haya sesgos inherentes ni otros problemas. Por ejemplo, fuga de
sesión y qué? No es que necesites abordar. Otro gran problema es la contaminación de datos. Por lo que hablamos largamente sobre la importancia de limpiar tus datos de entrada, y es especialmente importante en el contexto de una prueba de Marina. ¿ Qué pasaría si tuvieras algún robot, algún rastreador malicioso que se está arrastrando por tu sitio web todo el tiempo? Ya sabes, haciendo alguna cantidad antinatural de transacciones, y ese robot termina por conseguir que cualquiera sea asignado al tratamiento del control. Esa sola persona, ese robot, ni siquiera una persona podría sesgar los resultados de tu experimento. Por lo que es muy importante estudiar la entrada que va a tu arma a tu experimento y buscar valores atípicos y analizar cuáles son esos valores atípicos. ¿ Deberían excluirse? ¿ En realidad estás dejando que algunos robots se filtren en tus mediciones? ¿ Y están sesgando los resultados de tu experimento? Este es un problema
muy, muy común y algo de lo que hay que conocer. Ahí afuera hay robots maliciosos que son personas que intentan hackear tu sitio web. Ahí afuera hay, ya
sabes, ya
sabes,raspadores
benignos. Simplemente están tratando de rastrear tu sitio web en busca de motores de búsqueda o lo que no. Ya sabes, hay todo tipo de comportamiento extraño pasando en un sitio web, y necesitas filtrar esos y realmente conseguir a las personas que realmente son tus clientes y no estos scripts automatizados. Y eso es que podría ser un problema muy desafiante, en realidad. Otra razón más para usar marcos fuera de la plataforma como Google analytics o lo que sea, si puedes. Muy bien, y hablamos brevemente sobre los errores de atribución. Ya sabes, si realmente estás usando el comportamiento descendente a partir de un cambio que se
mete en un área gris ,necesitas entender cómo realmente estás contando esas conversiones como una función de , la
distancia del cosa que cambiaste y, ya
sabes, acuerdo con tus partes interesadas de negocios en cuanto a cómo vas a medir esos efectos de los que también debes estar al tanto. Si estás ejecutando múltiples experimentos que una vez, ¿entrarán en conflicto entre sí? Existe un flujo de página en el que alguien podría realmente encontrarse con dos experimentos diferentes en la misma sesión? Si es así, eso va a ser un problema, y básicamente tienes que aplicar tu juicio en cuanto a si estos cambios realmente podrían interferir entre sí de alguna manera significativa y realmente afectar el comportamiento de los clientes de alguna manera significativa. Muy bien, así de nuevo, muy. Es necesario tomar estos resultados con un grano de sal. Hay un montón de cosas que podrían obtener resultados de esquí, y hay que estar al tanto de,
um, um, así que solo estar al tanto de ellas y asegúrate de que tus dueños de negocios también estén al tanto de las limitaciones de las pruebas a B y estarás bien. Entonces recuerda que la naturaleza a corto plazo de una prueba A B lo somete a muchas limitaciones. Podrías estar solo viendo efectos de novedad o efectos estacionales y qué no. Entonces si no estás en una posición en la que realmente puedas dedicar una cantidad muy larga de tiempo a un experimento, necesitas tomar esos resultados con un grano de sal e idealmente volver a probarlos más adelante durante un periodo de tiempo diferente.