From 20727d12c2389a45dda3c3e0e7687672620c3070 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 14:36:09 +0300 Subject: [PATCH 001/234] main readme translated --- translations/README.ru.md | 110 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 translations/README.ru.md diff --git a/translations/README.ru.md b/translations/README.ru.md new file mode 100644 index 00000000..ddaf5af8 --- /dev/null +++ b/translations/README.ru.md @@ -0,0 +1,110 @@ +# Наука о данных для начинающих - Учебный план + +[![GitHub license](https://img.shields.io/github/license/microsoft/Data-Science-For-Beginners.svg)](https://github.com/microsoft/Data-Science-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/pulls/) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) + +[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Data-Science-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Data-Science-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/Data-Science-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Data-Science-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/Data-Science-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Data-Science-For-Beginners/stargazers/) + +Команда Azure Cloud Advocates от компании Microsoft рада представить вам десятинедельный учебный курс по науке о данным, разбитый на 20 уроков. Каждый урок содержит вступительный и проверочный тесты, инструкции для прохождения, решение и домашнее задание. Мы выбрали методику проектно-ориентированного обучения как проверенный способ освоения новых навыков. Она помогает Вам учиться в процессе работы над проектом. + +**Выражаем благодарность нашим авторам:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer). + +**🙏 Отдельная благодарность 🙏 нашей команде авторов Microsoft Student Ambassador и редакторам,** в особенности [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Rohit Yadav](https://www.linkedin.com/in/rty2423), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Sheena Narula](https://www.linkedin.com/in/sheena-narula-n/), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), Yogendrasingh Pawar, Max Blum, Samridhi Sharma, Tauqeer Ahmad, Aaryan Arora, ChhailBihari Dubey + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Title.png)| +|:---:| +| Data Science For Beginners - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + + +# Начало работы + +> **Дорогие учителя**, мы [добавили наши рекомендации](for-teachers.md) по работе с курсом. Мы будем рады получить ваши отзывы [на нашем форуме](https://github.com/microsoft/Data-Science-For-Beginners/discussions)! + +> **Дорогие студенты**, для самостоятельного прохождения курса сделайте форк всего репозитория, выполните задания самостоятельно, начиная со вступительных тестов, а после прочтения лекции, выполните оставшуюся часть урока. Постарайтесь достигнуть понимания при выполнении заданий и избегайте копирования решения, несмотря на то, что решение доступно в папке `/solutions` для каждого мини-проекта. Отличной идеей также является организовать учебную группу со своими друзьями и пройти этот курс вместе. Для дальнейшего обучения мы рекомендуем портал [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa). + + + + +## О методике обучения + +Мы выбрали два ключевых пункта при разработке данного учебного курса: проектоориентированность и частая проверка знаний. К концу занятий учащиеся изучат основные принципы науки о данных, среди которых этические аспекты работы с данными, подготовку данных, различные способы обработки данных, визуализация данных, анализ данных, примеры практического использования науки о данных и многое другое. + +В дополнение к этому, незначительные тесты перед началом урока поможет мотивировать учеников к изучению темы, а заключительный тест проверит усвоение материала. Мы постарались сделать данный курс гибким и нескучным, поэтому вы можете пройти его полностью или только некоторые разделы. По мере прохождения десятинедельного курса, проекты будут становиться всё сложнее. + +> Ознакомьтесь с нашими [правилами поведения](CODE_OF_CONDUCT.md), [сотрудничества](CONTRIBUTING.md), [перевода](TRANSLATIONS.md). Мы приветствуем конструктивную критику. + +## Каждый урок включает в себя: + +- Небольшой скетч (необязательно) +- Вспомогательное видео (необязательно) +- Вступительный тест +- Учебный материал +- Пошаговую инструкцию для выполнения проекта (для проектно-ориентированных уроков) +- Проверку знаний +- Задачу для выполнения +- Дополнительные материалы +- Домашнее задание +- Проверочный тест + +> **О тестах**: Все тесты Вы можете найти [в этом приложении](https://red-water-0103e7a0f.azurestaticapps.net/), их всего 40 по три вопроса в каждом. Ссылки на них находятся внутри уроков, однако приложение не может быть запущено локально. Следуйте инструкциям в папке `quiz-app`. Постепенно тесты будут локализованы. + +## Содержание уроков + + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Roadmap.png)| +|:---:| +| Data Science For Beginners: Roadmap - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + + +| Номер урока | Тема | Раздел | Цели | Ссылка | Автор | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | Что такое наука о данных | [Введение](1-Introduction/README.md) | Изучить основные понятия науки о данных и её связь с искусственным интеллектом, машинным обучением и большими данными. | [урок](1-Introduction/01-defining-data-science/README.md) [видео](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| 02 | Этика и наука о данных | [Введение](1-Introduction/README.md) | Этические аспекты в области науки о данных. | [урок](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| 03 | Что такое данные | [Введение](1-Introduction/README.md) | Классификация данных и их источники. | [урок](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 04 | Введение в статистику и теорию вероятности | [Введение](1-Introduction/README.md) | Вероятностные и статистические приёмы для изучения данных.| [урок](1-Introduction/04-stats-and-probability/README.md) [видео](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 05 | Работа с реляционными данными | [Работа с данными](2-Working-With-Data/README.md) | Введение в реляционные данные, основы изучения и анализа реляционных данных при помощи структурированного языка запросов, также известного как SQL (произносится “си-квел”). | [урок](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| 06 | Работа с NoSQL данными | [Работа с данными](2-Working-With-Data/README.md) | Введение в нереляционные данные, их разнообразие и основы работы с документоориентированными базами данных. | [урок](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| +| 07 | Работа с языком программирования Python | [Работа с данными](2-Working-With-Data/README.md) | Основы использования языка Python при исследовании данных на примере библиотеки Pandas. Рекомендуется предварительно познакомиться с Python. | [урок](2-Working-With-Data/07-python/README.md) [видео](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | Подготовка данных | [Работа с данными](2-Working-With-Data/README.md) | Методы очистки и трансформации данных для работы с пропусками, ошибками и неполными данными. | [урок](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | Визуализация количественных данных | [Визуализация данных](3-Data-Visualization/README.md) | Использование библиотеки Matplotlib для визуализации данных о разнообразии птиц 🦆 | [урок](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | Визуализация распределения данных | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация наблюдений и трендов на временнóм интервале | [урок](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | Визуализация пропорций | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация дискретных и сгруппированных процентных соотношений. | [урок](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | Визуализация связей | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация связей и корреляций между наборами данных и их переменными. | [урок](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | Выразительная визуализация | [Визуализация данных](3-Data-Visualization/README.md) | Методы и инструкция для построения визуализации для эффективного решения проблем и получения инсайтов. | [урок](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | Введение в жизненный цикл проекта в области науки о данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Введение в жизненный цикл проекта в области науки о данных и его первый этап получения и извлечения данных. | [урок](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | Анализ данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сосредоточен на методах анализа данных. | [урок](4-Data-Science-Lifecycle/15-Analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | Взаимодействие | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сфокусирован на презентацию инсайтов в данных в виде, легком для понимания лицам, принимающим решения. | [урок](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Данная серия уроков знакомит с применением облачных технологии в науке о данных и его преимуществах. | [урок](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 18 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Обучение моделей с минимальным использованием программирования. |[урок](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 19 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Развёртывание моделей с использованием Azure Machine Learning Studio. | [урок](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 20 | Наука о данных на практике | [На практике](6-Data-Science-In-Wild/README.md) | Проекты в области науки о данных на практике. | [урок](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | + +## Оффлайн доступ + +Вы можете запустить данную документацию используя [Docsify](https://docsify.js.org/#/). Сделайте форк данного репозитория, [установите Docsify](https://docsify.js.org/#/quickstart) на Вашем компьютере, и затем введите команду `docsify serve` в корневом разделе репозитория. Веб-сайт будет доступен на порте 3000 Вашей локальной машины: `localhost:3000`. + + +> Отмечаем, что Docsify не поддерживает Jupyter-ноутбуки. Для работы с ними используйте VS Code с запуском ядра Python. + +## PDF файлы + +PDF файлы всех уроков Вы можете найти [здесь](https://microsoft.github.io/Data-Science-For-Beginners/pdf/readme.pdf). + +## Ищем помощников! + +Если вы хотите поучаствовать в перевода курса, прочтите нашу [инструкцию по переводу](TRANSLATIONS.md). + +## Другие учебные курсы + +Наша команда разрабатывает и другие курсы. Познакомьтесь с ними: + +- [Машинное обучение для начинающих](https://aka.ms/ml-beginners) +- [Интернет вещей для начинающих](https://aka.ms/iot-beginners) +- [Веб-разработка для начинающих](https://aka.ms/webdev-beginners) From 9cfcd091539a60f70810511c628d00fe67051520 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 14:56:22 +0300 Subject: [PATCH 002/234] picture bug fixed --- translations/README.ru.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/README.ru.md b/translations/README.ru.md index ddaf5af8..a8e91f34 100644 --- a/translations/README.ru.md +++ b/translations/README.ru.md @@ -16,7 +16,7 @@ **🙏 Отдельная благодарность 🙏 нашей команде авторов Microsoft Student Ambassador и редакторам,** в особенности [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Rohit Yadav](https://www.linkedin.com/in/rty2423), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Sheena Narula](https://www.linkedin.com/in/sheena-narula-n/), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), Yogendrasingh Pawar, Max Blum, Samridhi Sharma, Tauqeer Ahmad, Aaryan Arora, ChhailBihari Dubey -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Title.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../sketchnotes/00-Title.png)| |:---:| | Data Science For Beginners - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | @@ -58,7 +58,7 @@ ## Содержание уроков -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Roadmap.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../sketchnotes/00-Roadmap.png)| |:---:| | Data Science For Beginners: Roadmap - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | From 89f7d6ef1c88444465f13998d91c197473c62149 Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 7 Oct 2021 09:15:59 -0300 Subject: [PATCH 003/234] Translated the Base README.md to pt-br --- translations/README.pt-br.md | 106 +++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 translations/README.pt-br.md diff --git a/translations/README.pt-br.md b/translations/README.pt-br.md new file mode 100644 index 00000000..06100182 --- /dev/null +++ b/translations/README.pt-br.md @@ -0,0 +1,106 @@ +# Ciência de Dados para Iniciantes - Um Currículo + +[![GitHub license](https://img.shields.io/github/license/microsoft/Data-Science-For-Beginners.svg)](https://github.com/microsoft/Data-Science-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/pulls/) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) + +[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Data-Science-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Data-Science-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/Data-Science-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Data-Science-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/Data-Science-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Data-Science-For-Beginners/stargazers/) + +Consultores da Azure Cloud na Microsoft estão felizes em oferecer um currículo de 10 semanas com 20 aulas sobre Ciência de Dados. Cada aula inclui quizzes pré e pós aula, instruções sobre como completar cada aula, uma solução, e uma tarefa. Nossa pedagogia baseada em projetos permite que você aprenda enquanto constrói, uma maneira comprovada para novas habilidades "grudarem". + +**Muito obrigado aos nossos autores:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer). + +**🙏 Agradecimentos especiais 🙏 para nossos autores, revisores e contribuidores de conteúdo Estudantes Embaixadores da Microsoft,** notavelmente [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Rohit Yadav](https://www.linkedin.com/in/rty2423), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Sheena Narula](https://www.linkedin.com/in/sheena-narula-n/), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), Yogendrasingh Pawar, Max Blum, Samridhi Sharma, Tauqeer Ahmad, Aaryan Arora, ChhailBihari Dubey + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Title.png)| +|:---:| +| Ciência de Dados para Iniciantes - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + + +# Primeiros Passos + +> **Professores**, nós [incluímos algumas sugestões](for-teachers.md) em como usar esse currículo. Nós adoraríamos ouvir o seu feedback [no nosso fórum de discussão](https://github.com/microsoft/Data-Science-For-Beginners/discussions)! + +> **Estudantes**, para usar esse currículo por conta própria, dê fork nesse repositório, complete os exercícios por sua conta, começando com um quiz pré aula, então leia a aula completando o resto das atividades. Tente criar os projetos compreendendo as aulas ao invés de copiar o código da solução; no entanto o código está disponível na pasta /solutions em cada aula baseada em projeto. Outra ideia seria formar um grupo de estudo com seus amigos e ler o conteúdo juntos. Para mais estudos, nós recomendamos [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa). + + + +## Pedagogia + +Nós escolhemos dois princípios pedagógicos enquanto construíamos esse currículo: garantir que seja baseado em projeto e que possua quizzes frequentes. Ao final dessa séries, estudandes terão aprendido o básico dos princípios de ciência de dados, incluindo conceitos éticos, preparação dos dados, maneiras diferentes de trabalhar com os dados, visualização de dados, análise de dados, casos de uso de ciência de dados no mundo real, e mais. + +Além do mais, um quiz com valor baixo antes da aula define a intenção do estudante em relação a aprendizagem de um tópico, enquanto um segundo quiz depois da aula garante uma retenção maior. Esse currículo foi desenhado para ser flexível e divertido e pode ser pego inteiro ou em partes. Os projetos começam pequeno e começam a ficar mais complexos no final do ciclo de 10 semanas. + +> Encontre nossos guias de [Código de Conduta](CODE_OF_CONDUCT.md), [Contribuindo](CONTRIBUTING.md), [Tradução](TRANSLATIONS.md). Nós agradecemos seu feedback construtivo! + +## Cada aula inclui: + +- Nota de esboço opcional +- Vídeo suplementar opcional +- Quiz de aquecimento pré-aula +- Aula escrita +- Para aulas baseadas em projetos, guias passo-a-passo sobre como construir o projeto +- Verificação de conhecimento +- Um desafio +- Leituras suplementares +- Tarefa +- Quiz pós-aula + +> **Nota sobre os quizzes**: Todos os quizzes estão [aqui](https://red-water-0103e7a0f.azurestaticapps.net/), para 40 quizzes de três questões cada. Os links deles estão dentro de cada aula mas o "quiz-app" pode ser executado localmente; siga as intruções na pasta `quiz-app`. Eles estão gradualmente localizados. + +## Tarefas + + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Roadmap.png)| +|:---:| +| Ciência de Dados para Iniciantes: Roadmap - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + + +| Número da Aula | Tópico | Agrupamento de Aulas | Objetivos de Apredizados | Link da Aula | Autor | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | Definindo Ciência de Dados | [Introdução](1-Introduction/README.md) | Aprenda os conceitos básicos por trás de ciência de dados e como se relaciona com inteligência artificial, aprendizado de máquina, e big data. | [aula](1-Introduction/01-defining-data-science/README.md) [vídeo](https://youtu.be/pqqsm5reGvs) | [Dmitry](http://soshnikov.com) | +| 02 | Ética de Ciência de Dados | [Introdução](1-Introduction/README.md) | Conceitos da Ética de Ciência de Dados, Desafios e Frameworks. | [aula](1-introdução/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| 03 | Definindo Dados | [Introdução](1-Introduction/README.md) | Como dados são classificados e sua fontes de origem comuns. | [aula](1-introdução/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 04 | Introdução à Probabilidade e Estatística | [Introdução](1-introdução/README.md) | As técnicas matemáticas de probabilidade e estatísca para enteder dados. | [aula](1-introdução/04-stats-and-probability/README.md) [vídeo](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 05 | Trabalhando com Dados Relacionais | [Trabalhando com Dados](2-Working-With-Data/README.md) | Introdução à dados relacionais e o básico de exploração e análise de dados relacionais com Linguagem de Consulta Estruturada (Structured Query Language), também conhecida como SQL (pronunciada “see-quell”). | [aula](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| 06 | Trabalhando com Dados NoSQL | [Trabalhando com Dados](2-Working-With-Data/README.md) | Introdução à dados não relacionais, seus variados tipos e o básico de exploração e análise de bancos de dados de documentos. | [aula](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| +| 07 | Trabalhando com Python | [Trabalhando com Dados](2-Working-With-Data/README.md) | Básico de Python para exploração de dados com bibliotecas como o Pandas. Compreensão fundamental de Python é recomendado. | [aula](2-Working-With-Data/07-python/README.md) [vídeo](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | Preparação dos Dados | [Trabalhando com Dados](2-Working-With-Data/README.md) | Tópicos sobre técnicas de dados para limpar e transformas os dados para lidar com desafios de dados ausentes, inacurados, ou incompletos. | [aula](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | Visualizando Quantidades | [Visualização de Dados](3-Data-Visualization/README.md) | Aprenda a como usar o Matplotlib para visualizar dados sobre pássaros 🦆 | [aula](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | Visualizando Distribuições de Dados | [Visualização de Dados](3-Data-Visualization/README.md) | Visualizando observações e tendências dentro de um itnervalo. | [aula](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | Visualizando Proporções | [Visualização de Dados](3-Data-Visualization/README.md) | Visualizando porcentagens discretas e agrupadas. | [aula](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | Visualizandos Relações | [Visualização de Dados](3-Data-Visualization/README.md) | Visualizando conexões e correlações entre sets de dados e suas variáveis. | [aula](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | Visualizações Significativas | [Visualização de Dados](3-Data-Visualization/README.md) | Técnicas e orientação para fazer suas visualizações valiosas para resolver problemas efetivamente e intuições. | [aula](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | Introdução ao ciclo de Ciência de Dados | [Ciclo de Vida](4-Data-Science-Lifecycle/README.md) | Introdução ao ciclo de vida de ciência de dados e seu primeiro passo de adquirir e extrair dados. | [aula](4-Data-Science-Lifecycle/14-introdução/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | Análise | [Ciclo de Vida](4-Data-Science-Lifecycle/README.md) | Essa fase do ciclo de vida de ciência de dados foca nas técnicas de análise dados. | [aula](4-Data-Science-Lifecycle/15-Analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | Comunicação | [Ciclo de Vida](4-Data-Science-Lifecycle/README.md) | Essa fase do ciclo de vida de ciência de dados foca em apresentar as intuições dos dados de uma forma que fique fácil para tomadores de decisão entenderem. | [aula](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | Ciẽncia de Dados na Nuvem | [Dados na Nuvem](5-Data-Science-In-Cloud/README.md) | Esse compilado de aula introdiz ciência de dados na nuvem e seus benefícios. | [aula](5-Data-Science-In-Cloud/17-introdução/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) e [Maud](https://twitter.com/maudstweets) | +| 18 | Ciẽncia de Dados na Nuvem | [Dados na Nuvem](5-Data-Science-In-Cloud/README.md) | Treinando modelos usando ferramentas de Low Code. |[aula](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) e [Maud](https://twitter.com/maudstweets) | +| 19 | Ciẽncia de Dados na Nuvem | [Dados na Nuvem](5-Data-Science-In-Cloud/README.md) | Implantando modelos com Azure Machine Learning Studio. | [aula](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) e [Maud](https://twitter.com/maudstweets) | +| 20 | Ciência de Dados na Selva | [Na Selva](6-Data-Science-In-Wild/README.md) | Projetos de Ciência de Dados no mundo real. | [aula](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | +## Acesso offline + +Você pode executar essa documentação offline usando [Docsify](https://docsify.js.org/#/). Dê fork nesse repositório, [instale Docsify](https://docsify.js.org/#/quickstart) na sua máquina local e depois, na pasta raíz desse repositório, digite `docsify serve`. O website vai usar a porta 3000 no seu localhost: `localhost:3000`. + +> Note, notebooks não serão renderizados via Docsify, então quando precisar rodas um notebook, faça isso separadamente no VS Code rodando um kernel Python. +## PDF + +Um PDF com todas as aulas podem ser encontrados [aqui](https://microsoft.github.io/Data-Science-For-Beginners/pdf/readme.pdf) + +## Procura-se Ajuda! + +Se você quer traduzir tudo ou parte do currículo, por favor siga o nosso guia de [Tradução](TRANSLATIONS.md) guia. + +## Outros Currículos + +Nosso time produz outros currículos! Confira: + +- [Aprendizado de Máquina para Iniciantes](https://aka.ms/ml-beginners) +- [IoT para Iniciantes](https://aka.ms/iot-beginners) +- [Desenvolvimento Web para Iniciantes](https://aka.ms/webdev-beginners) From 6d0b978baeb9f582e84c19ce514645de6c254019 Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 7 Oct 2021 09:26:44 -0300 Subject: [PATCH 004/234] Translated Introduction Base README and path fixes --- 1-Introduction/translations/README.pt-br.md | 17 +++++++++++++++++ translations/README.pt-br.md | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 1-Introduction/translations/README.pt-br.md diff --git a/1-Introduction/translations/README.pt-br.md b/1-Introduction/translations/README.pt-br.md new file mode 100644 index 00000000..ecba7b04 --- /dev/null +++ b/1-Introduction/translations/README.pt-br.md @@ -0,0 +1,17 @@ +# Introdução a Ciência de Dados + +![dados em ação](../images/data.jpg) +> Foto por Stephen Dawson em Unsplash + +Nessas aulas, você irá descobrir como Ciência de Dados é definida e aprender sobre considerações éticas que devem ser consideradas por um cientista de dado. Você também irá aprender como dados são definidos e um pouco sobre estatística e probabilidade, os principais domínios acadêmicos da Ciência de Dados. + +### Tópicos + +1. [Definindo Ciência de Dados](01-defining-data-science/README.md) +2. [Ética da Ciência de Dados](02-ethics/README.md) +3. [Definindo Dados](03-defining-data/README.md) +4. [Introdução a Estatística e Probabilidade](04-stats-and-probability/README.md) + +### Cŕeditos + +Essas aulas foram escritas com ❤️ por [Nitya Narasimhan](https://twitter.com/nitya) e [Dmitry Soshnikov](https://twitter.com/shwars). diff --git a/translations/README.pt-br.md b/translations/README.pt-br.md index 06100182..aa5b1ad4 100644 --- a/translations/README.pt-br.md +++ b/translations/README.pt-br.md @@ -16,7 +16,7 @@ Consultores da Azure Cloud na Microsoft estão felizes em oferecer um currículo **🙏 Agradecimentos especiais 🙏 para nossos autores, revisores e contribuidores de conteúdo Estudantes Embaixadores da Microsoft,** notavelmente [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Rohit Yadav](https://www.linkedin.com/in/rty2423), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Sheena Narula](https://www.linkedin.com/in/sheena-narula-n/), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), Yogendrasingh Pawar, Max Blum, Samridhi Sharma, Tauqeer Ahmad, Aaryan Arora, ChhailBihari Dubey -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Title.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../sketchnotes/00-Title.png)| |:---:| | Ciência de Dados para Iniciantes - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | @@ -57,7 +57,7 @@ Além do mais, um quiz com valor baixo antes da aula define a intenção do estu ## Tarefas -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Roadmap.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../sketchnotes/00-Roadmap.png)| |:---:| | Ciência de Dados para Iniciantes: Roadmap - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | From d802b3066fe0653ce931d8891e0eff2bbe195615 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 16:07:06 +0300 Subject: [PATCH 005/234] 1-base readme translated --- 1-Introduction/translations/README.ru.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 1-Introduction/translations/README.ru.md diff --git a/1-Introduction/translations/README.ru.md b/1-Introduction/translations/README.ru.md new file mode 100644 index 00000000..abff417a --- /dev/null +++ b/1-Introduction/translations/README.ru.md @@ -0,0 +1,17 @@ +# Введение в науку о данных + +![data in action](../images/data.jpg) +> Photo by Stephen Dawson on Unsplash + +Пройдя данные уроки Вы узнаете, что такое наука о данных и изучите этические аспекты, которые должен учитывать каждый дата сайентист. Вы также узнаете, что такое данные и немного познакомитесь со статистикой и теорией вероятности, центральной областью науки о данных. + +### Разделы + +1. [Что такое наука о данных](01-defining-data-science/README.md) +2. [Этика и наука о данных](02-ethics/README.md) +3. [Что такое данные](03-defining-data/README.md) +4. [Введение в статистику и теорию вероятности](04-stats-and-probability/README.md) + +### Благодарности + +Данные уроки были написаны с ❤️ [Nitya Narasimhan](https://twitter.com/nitya) и [Dmitry Soshnikov](https://twitter.com/shwars). From 791bd227c15aa3441bf5822bb48fd23b26bb6906 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 16:36:02 +0300 Subject: [PATCH 006/234] 2-base readme translated --- 2-Working-With-Data/translations/README.ru.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 2-Working-With-Data/translations/README.ru.md diff --git a/2-Working-With-Data/translations/README.ru.md b/2-Working-With-Data/translations/README.ru.md new file mode 100644 index 00000000..0d0e865f --- /dev/null +++ b/2-Working-With-Data/translations/README.ru.md @@ -0,0 +1,17 @@ +# Работа с данными + +![data love](../images/data-love.jpg) +> Photo by Alexander Sinn on Unsplash + +На этих уроках Вы изучите способы управления данными, методы работы с ними и как данные могут быть использованы в приложениях. Вы познакомитесь с реляционными и нереляционными базами данных и с тем, как они хранят данные. Вы овладеете основами обработки данных при помощи языка программирования Python. + +### Разделы + +1. [Реляционные базы данных](05-relational-databases/README.md) +2. [Нереляционные базы данных](06-non-relational/README.md) +3. [Работа с языком программирования Python](07-python/README.md) +4. [Подготовка данных](08-data-preparation/README.md) + +### Благодарности + +Данные уроки были написаны с ❤️ [Christopher Harrison](https://twitter.com/geektrainer), [Dmitry Soshnikov](https://twitter.com/shwars) и [Jasmine Greenaway](https://twitter.com/paladique) From ce9f44685c477ab0aaca90a98b5b627583c158fd Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 17:50:48 +0300 Subject: [PATCH 007/234] 3-base readme translated --- 3-Data-Visualization/translations/README.md | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 3-Data-Visualization/translations/README.md diff --git a/3-Data-Visualization/translations/README.md b/3-Data-Visualization/translations/README.md new file mode 100644 index 00000000..f2ae42be --- /dev/null +++ b/3-Data-Visualization/translations/README.md @@ -0,0 +1,29 @@ +# Визуализация данных + +![a bee on a lavender flower](../images/bee.jpg) +> Photo by Jenna Lee on Unsplash + + +Визуализация данных - это одна из важнейших задач дата сайентиста. Одним графиком можно заменить тысячу слов. Именно визуализация может помочь Вам распознать все особенности Ваших данных, такие как всплески, выбросы, группы, тренды и др., и понять, какую историю хранят в себе Ваши данные. + +В этих пяти уроках Вам предлагается исследовать природные данные и создать красивую визуализацию с использованием различных инструментов. + +### Разделы + +1. [Визуализация количественных данных](09-visualization-quantities/README.md) +1. [Визуализация распределения данных](10-visualization-distributions/README.md) +1. [Визуализация пропорций](11-visualization-proportions/README.md) +1. [Визуализация связей](12-visualization-relationships/README.md) +1. [Выразительная визуализация](13-meaningful-visualizations/README.md) + +### Благодарности + +Данные уроки были написаны с 🌸 [Джен Лупер](https://twitter.com/jenlooper). + +🍯 Данные о производстве мёда в США хранятся в проекте Джессики Ли на портале [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). [Данные](https://usda.library.cornell.edu/concern/publications/rn301137d) были получены от [министерства сельского хозяйства США](https://www.nass.usda.gov/About_NASS/index.php). + +🍄 Данные о разнообразии грибов выложены при содействии Хаттерас Дантон и также хранятся на портале [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset). Данный датасет содержит экземпляры 23 видов Агариковых (Пластинчатых) грибов семейства Шампиньоновые. Грибы были нарисованы в книге "The Audubon Society Field Guide to North American Mushrooms" в 1981 году. Данный датасет был передан репозиторию UCI ML в 1987 году. + +🦆 Данные о разнообразии птиц Миннесоты расположены на портале [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) и были собраны с сайта [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) Ханной Коллинс. + +Все датасеты распространяются по лицензии [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). \ No newline at end of file From 69fbc7cd2ee95c23634acb36eff5fed7005fab55 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 18:02:23 +0300 Subject: [PATCH 008/234] naming bug fixed --- 3-Data-Visualization/translations/{README.md => README.ru.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 3-Data-Visualization/translations/{README.md => README.ru.md} (100%) diff --git a/3-Data-Visualization/translations/README.md b/3-Data-Visualization/translations/README.ru.md similarity index 100% rename from 3-Data-Visualization/translations/README.md rename to 3-Data-Visualization/translations/README.ru.md From f8256d292c8cafaa714b4fa94b1b29b1c3855d3d Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 18:17:11 +0300 Subject: [PATCH 009/234] 4-base readme translated, base readme improved --- .../translations/README.ru.md | 16 ++++++++++++++++ translations/README.ru.md | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 4-Data-Science-Lifecycle/translations/README.ru.md diff --git a/4-Data-Science-Lifecycle/translations/README.ru.md b/4-Data-Science-Lifecycle/translations/README.ru.md new file mode 100644 index 00000000..cf05568e --- /dev/null +++ b/4-Data-Science-Lifecycle/translations/README.ru.md @@ -0,0 +1,16 @@ +# Введение в жизненный цикл проекта в области науки о данных + +![communication](../images/communication.jpg) +> Photo by Headway on Unsplash + +В данных уроках вы познакомитесь с этапами жизненного циклы проекта в области науки о данных, включая анализ данных и взаимодействие на их основе. + +### Разделы + +1. [Введение в жизненный цикл проекта в области науки о данных](14-Introduction/README.md) +2. [Анализ данных](15-Analyzing/README.md) +3. [Взаимодействие на основе данных](16-communication/README.md) + +### Благодарности + +Данные уроки были написаны с ❤️ [Jalen McGee](https://twitter.com/JalenMCG) и [Jasmine Greenaway](https://twitter.com/paladique) diff --git a/translations/README.ru.md b/translations/README.ru.md index a8e91f34..04991d13 100644 --- a/translations/README.ru.md +++ b/translations/README.ru.md @@ -80,7 +80,7 @@ | 13 | Выразительная визуализация | [Визуализация данных](3-Data-Visualization/README.md) | Методы и инструкция для построения визуализации для эффективного решения проблем и получения инсайтов. | [урок](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | | 14 | Введение в жизненный цикл проекта в области науки о данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Введение в жизненный цикл проекта в области науки о данных и его первый этап получения и извлечения данных. | [урок](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | | 15 | Анализ данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сосредоточен на методах анализа данных. | [урок](4-Data-Science-Lifecycle/15-Analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | -| 16 | Взаимодействие | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сфокусирован на презентацию инсайтов в данных в виде, легком для понимания лицам, принимающим решения. | [урок](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 16 | Взаимодействие на основе данных| [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сфокусирован на презентацию инсайтов в данных в виде, легком для понимания лицам, принимающим решения. | [урок](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | | 17 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Данная серия уроков знакомит с применением облачных технологии в науке о данных и его преимуществах. | [урок](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | | 18 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Обучение моделей с минимальным использованием программирования. |[урок](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | | 19 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Развёртывание моделей с использованием Azure Machine Learning Studio. | [урок](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | From 7e3c9eb01744fc0db76bbf1bde3fd5f50a721d7e Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 19:26:48 +0300 Subject: [PATCH 010/234] 5-base readme translated --- .../translations/README.ru.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 5-Data-Science-In-Cloud/translations/README.ru.md diff --git a/5-Data-Science-In-Cloud/translations/README.ru.md b/5-Data-Science-In-Cloud/translations/README.ru.md new file mode 100644 index 00000000..cade9559 --- /dev/null +++ b/5-Data-Science-In-Cloud/translations/README.ru.md @@ -0,0 +1,22 @@ +# Наука о данных в облачной инфраструктуре + +![cloud-picture](../images/cloud-picture.jpg) + +> Photo by [Jelleke Vanooteghem](https://unsplash.com/@ilumire) from [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape) + +Когда приходит время анализировать по-настоящему большие данные, использование облачных технологий может обеспечить неоспоримое преимущество. В следующих трёх уроках вы узнаете, что такое облачная инфраструктура и чем она может быть полезна. Для этого мы исследуем набор данных о сердечной недостаточности и построим модель оценки вероятности появления данной болезни. Мы применим все преимущества облачных технологий для тренировки, развёртывания и использования модели в двумя способами. Первый спосои - это использование только пользовательского интерфейса с минимальным применением программирования, второй - использование инструмента под названием Azure Machine Learning Software Developer Kit (Azure ML SDK). + +![project-schema](../19-Azure/images/project-schema.PNG) + +### Разделы + +1. [Преимущества облачной инфраструктуры для науки о данных.](17-Introduction/README.md) +2. [Наука о данных в облачной инфраструктуре: подходы с минимальным использованием программирования и без него.](18-Low-Code/README.md) +3. [Наука о данных в облачной инфраструктуре: применение Azure ML SDK](19-Azure/README.md) + +### Благодарности +Данные уроки были написаны с ☁️ и 💕 [Maud Levy](https://twitter.com/maudstweets) and [Tiffany Souterre](https://twitter.com/TiffanySouterre) + + +Данные для прогнозирования сердечной недостаточности были собраны [ +Larxel](https://www.kaggle.com/andrewmvd) и хранятся на портале [Kaggle](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data). Датасет распространятеся по лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/) From 2c198fac816fe75f652b41d8ff9ec72caba87917 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 19:27:21 +0300 Subject: [PATCH 011/234] naming bug fixed, translation updated --- README.md | 6 +++--- translations/README.ru.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4843d1f8..b2b03ed8 100644 --- a/README.md +++ b/README.md @@ -80,9 +80,9 @@ In addition, a low-stakes quiz before a class sets the intention of the student | 14 | Introduction to the Data Science lifecycle | [Lifecycle](4-Data-Science-Lifecycle/README.md) | Introduction to the data science lifecycle and its first step of acquiring and extracting data. | [lesson](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | | 15 | Analyzing | [Lifecycle](4-Data-Science-Lifecycle/README.md) | This phase of the data science lifecycle focuses on techniques to analyze data. | [lesson](4-Data-Science-Lifecycle/15-Analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | | 16 | Communication | [Lifecycle](4-Data-Science-Lifecycle/README.md) | This phase of the data science lifecycle focuses on presenting the insights from the data in a way that makes it easier for decision makers to understand. | [lesson](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | -| 17 | Data Science in the Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | This series of lessons introduces data science in the cloud and its benefits. | [lesson](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | -| 18 | Data Science in the Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Training models using Low Code tools. |[lesson](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | -| 19 | Data Science in the Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Deploying models with Azure Machine Learning Studio. | [lesson](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 17 | Why use Cloud for Data Science? | [Cloud Data](5-Data-Science-In-Cloud/README.md) | This series of lessons introduces data science in the cloud and its benefits. | [lesson](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 18 | Data Science in the Cloud: The "Low code/No code" way | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Training models using Low Code tools. |[lesson](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 19 | Data Science in the Cloud: The "Azure ML SDK" way | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Deploying models with Azure Machine Learning Studio. | [lesson](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | | 20 | Data Science in the Wild | [In the Wild](6-Data-Science-In-Wild/README.md) | Data science driven projects in the real world. | [lesson](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | ## Offline access diff --git a/translations/README.ru.md b/translations/README.ru.md index 04991d13..56aeb7cc 100644 --- a/translations/README.ru.md +++ b/translations/README.ru.md @@ -81,9 +81,9 @@ | 14 | Введение в жизненный цикл проекта в области науки о данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Введение в жизненный цикл проекта в области науки о данных и его первый этап получения и извлечения данных. | [урок](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | | 15 | Анализ данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сосредоточен на методах анализа данных. | [урок](4-Data-Science-Lifecycle/15-Analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | | 16 | Взаимодействие на основе данных| [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сфокусирован на презентацию инсайтов в данных в виде, легком для понимания лицам, принимающим решения. | [урок](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | -| 17 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Данная серия уроков знакомит с применением облачных технологии в науке о данных и его преимуществах. | [урок](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | -| 18 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Обучение моделей с минимальным использованием программирования. |[урок](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | -| 19 | Наука о данных в облачной инфраструктуре | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Развёртывание моделей с использованием Azure Machine Learning Studio. | [урок](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 17 | Преимущества облачной инфраструктуры для науки о данных. | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Данная серия уроков знакомит с применением облачных технологии в науке о данных и его преимуществах. | [урок](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 18 | Наука о данных в облачной инфраструктуре: подходы с минимальным использованием программирования и без него. | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Обучение моделей с минимальным использованием программирования. |[урок](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 19 | Наука о данных в облачной инфраструктуре: применение Azure ML SDK | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Развёртывание моделей с использованием Azure Machine Learning Studio. | [урок](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | | 20 | Наука о данных на практике | [На практике](6-Data-Science-In-Wild/README.md) | Проекты в области науки о данных на практике. | [урок](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | ## Оффлайн доступ From ad0fc0ab250117e47c2fddfc737c66b3f081ed84 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 7 Oct 2021 19:30:47 +0300 Subject: [PATCH 012/234] 6-base readme translated --- 6-Data-Science-In-Wild/translations/README.ru.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 6-Data-Science-In-Wild/translations/README.ru.md diff --git a/6-Data-Science-In-Wild/translations/README.ru.md b/6-Data-Science-In-Wild/translations/README.ru.md new file mode 100644 index 00000000..235ab191 --- /dev/null +++ b/6-Data-Science-In-Wild/translations/README.ru.md @@ -0,0 +1,11 @@ +# Наука о данных на практике + +Примеры реального использования науки о данных в приложениях во многих отраслях. + +### Разделы + +1. [Наука о данных на практике](20-Real-World-Examples/README.md) + +### Благодарности + +Написано с ❤️ [Nitya Narasimhan](https://twitter.com/nitya) From 53f9296d65e2dcb1ebacf8e05565585de2e97dd2 Mon Sep 17 00:00:00 2001 From: Izael Date: Fri, 8 Oct 2021 09:08:05 -0300 Subject: [PATCH 013/234] Translated 1-01 Defining Data Science --- .../translations/README.pt-br.md | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 1-Introduction/01-defining-data-science/translations/README.pt-br.md diff --git a/1-Introduction/01-defining-data-science/translations/README.pt-br.md b/1-Introduction/01-defining-data-science/translations/README.pt-br.md new file mode 100644 index 00000000..b0c065a9 --- /dev/null +++ b/1-Introduction/01-defining-data-science/translations/README.pt-br.md @@ -0,0 +1,165 @@ +# Definindo Ciências de Dados + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/01-Definitions.png)| +|:---:| +|Definindo Ciências de Dados - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + +--- + +[![Definindo Ciências de Dados](../images/video-def-ds.png)](https://youtu.be/pqqsm5reGvs) + +## [Quiz pré-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) + +## O que são Dados? +Na nossa vida cotidiana, nós estamos constantemente cercados por dados. O texto que você está lendo agora é um dado, a lista de telefones dos seus amigos no seu celular é um dado, assim como o horário atual mostrado no seu relógio. Como seres humanos, nós operamos naturalmente com dados. contando o dinheiro que temos ou escrevendo cartas para os nossos amigos. + +No entanto, os dados se tornaram muito mais críticos com a criação de computadores. O papel principal dos computadores é realizar computações, mas eles precisam de dados para operar sobre. Portanto, nós precisamos entender como os computadores armazenam e processam dados. + +Com o surgimento da Internet, o papel dos computadores como dispositivos de manipulação de dados aumentou. Se você parar para pensar, agora nós usamos computadores cada vez mais para processamento de dados e comunicação, ao invés de cálculos reais. Quando escrevemos um e-mail para um amigo ou procuramos por alguma informação na Internet - nós estamos essencialmente criando, armazenando, transmitindo, e manipulando dados. +> Você consegue se lembrar da última vez que usou computadores para de fato computar algo? + +## O que é Ciência de Dados? + +Na [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Ciência de Dados** é definido como *um campo científico que utiliza métodos científicos para extrair conhecimento e insights de dados estruturados e não estruturados, e aplicar esse conhecimento e insights acionáveis de dados em uma ampla gama de domínios de aplicativos*. + +Essa definição destaca os seguintes aspectos importantes da ciência de dados: + +* O principal objetivo da ciência de dados é **extrair conhecimento** dos dados, em outras palavras - **entender** os dados, encontrar alguma relação escondida e construir um **modelo**. +* Ciência de dados utiliza **métodos científicos**, como probabilidade e estatística. Na verdade, quando o termo *ciência de dados* foi introduzido pela primeira vez, algumas pessoas argumentaram que ciência de dados é apenas um nome chique para estatística. Hoje em dia ficou mais evidente que esse campo é muito mais amplo. +* Conhecimento adquirido deve ser aplicado para produzir algum **insights acionável**. +* Nós devemos ser capazes de operar tanto nos dados **estruturados** quanto nos **não estruturados**. Nós voltaremos a discutir diferentes tipos de dados mais para a frente no curso. +* **Domínio de aplicação** é um conceito importante, e cientistas de dados frequentemente precisam de pelo menos algum grau de perícia no domínio do problema. + +> Outro importante aspecto da Ciência de Dados é que ela estuda como os dados podem ser coletados, armazenados e operados por meio de computadores. Enquanto estatística nos fornece fundações matemáticas, ciência de dados aplica conceitos matemáticos para de fato desenhar percepções a partir dos dados. + +Uma das formas (atribuída a [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) para olhar para ciência de dados é considerar que ela é um paradigma separado da ciência: +* **Empírico**, onde nos baseamos majoritariamente nas observações e resultados dos experimentos +* **Teórico**, onde novos conceitos surgem a partir de conhecimentos cientificos já existentes +* **Computacional**, onde nós descobrimos novos princípios baseado em algum experimento computacional +* **Orientado por Dados**, baseado na descoberta de relações e padrões nos dados + +## Outros Campos Relacionados + +Já que dados são um conceito difundido, a ciência de dados em si também é um campo amplo, abrangendo muitas outras disciplinas relacionadas. + +
+
Banco de Dados
+
+A coisa mais óbvia a considerar é **como armazenar** os dados, ex. como estruturá-los de uma forma que permite um processamento rápido. Existem diferentes tipos de banco de dados que armazenam dados estruturados e não estruturados, que nós vamos considerar nesse curso. +
+
Big Data
+
+Frequentemente precisamos armazenar e processar quantidades muito grandes de dados com estruturas relativamente simples. Existem algumas abordagens e ferramentas especiais para armazenar esses dados de uma forma distribuída em um cluster de computer, e processá-los de forma eficiente. +
+
Aprendizado de Máquina
+
+Uma das maneiras de entender dados é **construir um modelo** que será capaz de predizer o resultado esperado. Ser capaz de aprender esses modelos a partir de dados é a área estudada em **aprendizado de máquina**. Você talvez queira olhar o nosso Currículo de Aprendizado de Máquina para Iniciantes para ir mais a fundo nessa área. +
+
Inteligência Artificial
+
+Como aprendizado de máquina, inteligência artificial também se baseia em dados, e envolve construir modelos de alta complexidade que irão exibir um comportamento similar ao dos seres humanos. Além disso, métodos de IA frequentemente nos permite transformar dados não estruturados (ex. linguagem natural) em dados estruturados extraindo algumas percepções. +
+
Visualização
+
+Vastas quantidades de dados são incompreensíveis para o ser humano, mas uma vez que criamos visualizações úteis - nós podemos começar a dar muito mais sentido aos dados, e desenhar algumas conclusões. Portanto, é importante conhecer várias formas de visualizar informação - algo que vamos cobrir na Seção 3 do nosso curso. Áreas relacionadas também incluem **Infográficos**, e **Interação Humano-Computador** no geral. +
+
+ +## Tipos de Dados + +Como nós já mencionamos - dados estão em todos os lugares, nós só precisamos coletá-los da maneira certa! É útil distinguir entre dados **estruturados** e **não estruturados**. Os primeiros são tipicamente representados em alguma forma bem estruturado, frequentemente como uma ou várias tabelas, enquanto o segundo é apenas uma coleção de arquivos. Algumas vezes nós também podemos falar de dados **semi estruturados**, que possuem alguma estrutura que pode variar muito. + +| Estruturado | Semi-estruturado | Não estruturado | +|----------- |-----------------|--------------| +| Lista de pessoas com seus números de telefones | Páginas da Wikipédia com links | Texto da Encyclopædia Britannica | +| Temperatura de todos os quartos de um prédio a cada minuto nos últimos 20 anos | Coleções de artigos cientificos em formato JSON com autores, datas de publicação, e abstract | Compartilhamento de arquivos com documentos corporativos | +| Dados para idades e gêneros de todas as pessoas entrando em um prédio | Páginas da Internet | Feed de vídeo bruto da câmera de vigilância | + +## Onde conseguir Dados + +Existem muitas fontes possíveis de dados, e será impossível listar todas elas. No entanto, vamos mencionar alguns dos lugares típicos onde você pode obter dados: + +* **Estruturado** + - **Internet das Coisas**, incluindo dados de diferentes sensores, como sensores de temperatura ou de pressão, fornece muitos dados úteis. Por exemplo, se um escritório de um prédio é equipado com sensores IoT, nós podemos automaticamente controlar o aquecimento e a iluminação com o objetivo de minimizar custos. + - **Pesquisas** que podemos fazer para os usuários depois de uma compra, ou visitar um web site. + - **Análise de comportamento** pode, por exemplo, nos ajudar a entender o quão longe um usuário vai dentro de um site, e qual tipicamente é a razão para deixar um site. +* **Não estruturado** + - **Textos** podem ser uma fonte rica de insights, começando da **pontuação geral de sentimento** (sentiment score), até a extração de palavras chaves e até algum significado semântico. + - **Imagens** ou **Vídeo**. Um vídeo de uma câmera de vigilância pode ser usado para estimar o tráfico na rua, e informar as pessoas sobre possíveis engarrafamentos. + - **Logs** de servidores web pode ser usado para entender quais páginas do nosso site são mais visitadas, e por quanto tempo. +* Semi-estruturado + - Grafos das **Redes Sociais** podem ser uma boa fonte de dados sobre a personalidade do usuário e a eficácia potencial em espalhar informações. + - Quando nós temos um monte de fotos de uma festa, nós podemos tentar extrair dados sobre **Dinâmicas de Grupo** construindo um grafo de pessoas tirando fotos umas das outras. + +Conhecendo as diferentes fontes possíveis de dados, você pode tentar pensar sobre diferentes cenários onde técnicas de ciência de dados podem ser aplicadas para conhecer a situação melhor, e melhorar o processo de negócio. + +## O que você pode fazer com Dados + +Em Ciência de Dados, nós focamos em seguir os passos da jornada dos dados: + +
+
1) Aquisição de Dados
+
+Primeiro passo é coletar os dados. Enquanto em muitos casos isso pode ser um processo direto, como dados vindo para um banco de dados a partir de uma aplicação web, algumas vezes nós precisamos usar técnicas especiais. Por exemplo, dados de sensores de IoT podem ser muito pesados, e é uma boa prática usar buffering endpoints como Hub de IoT para coletar todos os dados antes de processá-los. +
+
2) Armazenamento de Dados
+
+Armazenar os dados pode ser desafiador, especialmente se estamos falando de big data. Enquanto decide como armazenar os dados, faz sentido antecipar a forma como você gostaria de consultá-los mais tarde. Existem diversas formas de como os dados podem ser armazenados: +
    +
  • Bancos de dados relacionais armazenam uma coleção de tabelas, e utilizam uma linguagem especial chamada SQL para consultá-los. Tipicamente, tabelas seriam conectadas umas às outras usando algum schema. Em vários casas nós precisamos converter os dados da forma original para ajustar al schema.
  • +
  • Bancos de dados NoSQL, como CosmosDB, não impõe schema nos dados, e permite o armazenamento de dados mais complexos, como por exemplo, documentos hierárquicos JSON ou grafos. No entanto, bancos de dados NoSQL não possuem a capacidade rica de consulta do SQL, e não podem impor integridade referencial entre os dados.
  • +
  • Armazenamento em Data Lake é usado para grandes coleções de dados na forma bruta. Data lakes são frequentemente usados para big data, onde todos não podem se encaixar em uma máquina, e precisam ser armazenados e processados por um cluster. Parquet é o formato de dado que é frequentemente usado em conjunção com big data.
  • +
+
+
3) Processamento de Dados
+
+Esse é a parte mais emocionante da jornada dos dados, que envolve processar os dados de sua forma original para a forma que pode ser usada para visualização/treinamento do modelo. Quando lidando com dados não estruturados como textos ou imagens, nós podemos precisar de algumas técnicas de IA para extrair **features** dos dados, convertendo-os então para a forma estruturada. +
+
4) Visualização / Percepções Humanas
+
+Frequentemente para entender os dados precisamos visualizar eles. Tendo várias técnicas de visualização diferentes na nossa caixa de ferramentas, nós podemos encontrar a visualização certa para termos um insight. Frequentemente, cientistas de dados precisam "brincar com dos dados", visualizando-os várias vezes e procurando alguma relação. Também, nós podemos usar algumas técnicas de estatísticas para testar alguma hipótese ou provar uma correlação entre pedaços diferentes de dados. +
+
5) Treinando modelos preditivos
+
+Já que o maior objetivo da ciência de dados é ser capaz de tomar decisões baseadas em dados, nós podemos querer usar técnicas de Aprendizando de Máquina para construir modelos preditivos que serão capazes de resolver nosso problema. +
+
+ +Claro, dependendo dos dados em si alguns passos podem ser ignorados (ex., quando já temos os dados em nosso banco de dados, ou quando não precisamos treinar o modelo), ou repetidos várias vezes (como processamento de dados). + +## Digitalização e Transformação Digital + +Na última década, muitos negócios começaram a entender a importância dos dados para fazer uma decisão de negócio. Para aplicar os princípios da ciência de dados para gerenciar um negócio é necessário coletar alguns dados, ex. transformar de alguma forma processos de negócio em formato digital. Isso é conhecido como **digitalização**, seguido pelo uso técnicas de ciência de dados para guiar as decisões frequentemente leva a um aumento significante da produtividade (ou mesmo pivô de negócios), chamado de **transformação digital**. + +Vamos considerar um exemplo. Suponha que temos um curso de ciência de dados (como esse), que é feito online pelos estudantes, e que queremos usar ciência de dados para melhorá-lo. Como podemos fazer isso? + +Nós podemos começar pensando "o que pode ser digitalizado?". A maneira mais simples seria medir o tempo que cada estudante leva para completar cada módulo, e o conhecimento obtido (ex. dando questões de múltipla escolha no final de cada módulo). Tendo a média que todos os estudantes levam para completar, nós podemos descobrir quais módulos causam mais problemas para os estudantes, e trabalhar para simplificá-los. + +> Você pode argumentar que essa abordagem não é ideal, pois os módulos podem ter tamanhos diferentes. Provavelmente seria mais justo dividir o tempo pelo tamanho do módulo (em número de caracteres), e comparar esses valores. + +Quando começamos a analisar os resultados das questões de múltipla escolha, nós podemos tentar descobrir conceitos específicos que os estudantes não entendem muito bem, e melhorar o conteúdo. Para fazer isso nós precisamos fazer questões de uma forma que cada questão mapeia para um certo conteúdo ou conhecimento. + +Se nós quiséssemos complicar ainda mais, nós podemos "plotar" o tempo levado para cada módulo em relação à categoria de idade de cada estudante. Nós podemos descobrir que alguma categoria de idade leva um tempo inapropriadamente longo para completar o módulo, ou os estudantes que abandonam em um certo ponto. Isso pode nos ajudar a fornecer recomendações de idade para o módulo, e minimizar a insatisfação das pessoas para expectativas erradas. + +## 🚀 Desafio + +Nesse desafio, nós vamos tentar encontrar conceitos relevantes para a área de Ciência de Dados olhando textos. Nós vamos pegar um artigo da Wikipedia sobre Ciência de Dados, baixar e processar o texto, e então construir uma nuvem de palavras como essa: + +![Nuvem de Palavras para Ciência de Dados](../images/ds_wordcloud.png) + +Visite [`notebook.ipynb`](notebook.ipynb) para ler o código. Você também pode rodar esse código, e ver como ele performa toda a transformação de dados em tempo real. + +> Se você não sabe como rodar códigos no Jupyter Notebook, dê uma olhada [nesse artigo](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + + + +## [Quiz pós-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/1) + +## Tarefas + +* **Tarefa 1**: Modifique o código acima para descobrir conceitos relacionados para as áreas de **Big Data** e **Aprendizado de Máquina** +* **Tarefa 2**: [Pense Sobre Cenários de Ciência de Dados](assignment.md) + +## Créditos + +Essa aula foi autorado com ♥️ por [Dmitry Soshnikov](http://soshnikov.com) From f8f376498d8e331e7db425f329ceee9a3db3960d Mon Sep 17 00:00:00 2001 From: Kaushal Joshi <53049546+joshi-kaushal@users.noreply.github.com> Date: Sat, 9 Oct 2021 21:55:29 +0530 Subject: [PATCH 014/234] Updared README.hi.md - 1 --- .../03-defining-data/translations/README.hi.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 1-Introduction/03-defining-data/translations/README.hi.md diff --git a/1-Introduction/03-defining-data/translations/README.hi.md b/1-Introduction/03-defining-data/translations/README.hi.md new file mode 100644 index 00000000..ef6b2932 --- /dev/null +++ b/1-Introduction/03-defining-data/translations/README.hi.md @@ -0,0 +1,18 @@ +# डेटा का अवलोकन +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs।dev) ](../../sketchnotes/03-DefiningData.png)| +|:---:| +|Defining Data - _Sketchnote by [@nitya](https://twitter।com/nitya)_ | + +डेटा मतलब तथ्य, माहिती और अनुभव है जिनका इस्तमाल करके नए खोज और सूचित निर्णयोंका समर्थन किया जाता है। + +डेटा पॉइंट यह डेटासेट का सबसे छोटा प्रमाण है। डेटासेट यह एक डेटा पॉइंट्स का बड़ा संग्रह होता है। डेटासेट बोहोत सारे अलगअलग प्रकार और स्ट्रक्चर का होता है, और बोहोत बार किसी स्त्रोतपे आधारित होता है। उदाहरण के लिए, किसी कम्पनी की कमाई स्प्रेडशीट मैं सेव्ह की हो सकती है मगर प्रति घंटे के दिल की धकड़न की गति [JSON](https://stackoverflow।com/questions/383692/what-is-json-and-what-is-it-used-for/383699#383699) रूप मैं हो सकती है। डेटा वैज्ञानिकोकेलिए अलग अलग प्रकार के डेटा और डेटासेट के साथ काम करना आम बात होती है। + +यह पाठ डेटा को उसके स्त्रोत के हिसाब से पहचानने और वर्गीकृत करने पे केंद्रित है। + +## [पाठ के पाहिले की परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) + +## डेटा का वर्णन कैसे किया जाता है +**अपक्व डेटा** ऐसे प्रकार का डेटा होता जो उसके स्त्रोत से आते वक्त जिस अवस्था मैं था वैसे ही है और उसका विश्लेषण या वर्गीकरण नहीं किया गया है। ऐसे डेटासेट से जरूरी जानकारी निकलने के लिए उसे ऐसे प्रकार मे लाना आवश्यक है जो इंसान समज सके और जिस टैकनोलजीका उपयोग डेटा के विश्लेषण मे किया जाएगा उसको भी समज आये। डेटाबेस का स्ट्रक्चर हमे बताती है की डेटा किस प्रकार से वर्गीकृत किया गया है और उसका वर्गीकरण कैसे किया जाता है। डेटा का वर्गीकरण संरचित, मिश्र संरचित और असंरचित प्रकार मै किया जा सकता है। संरचना के प्रकार डेटा के स्त्रोत के अनुसार बदल सकते है मगर आखिर मै इन तीनो मैं से एक प्रकार के हो सकते है। + +### परिमाणात्मक डेटा +परिमाणात्मक डेटा मतलब डेटासेट मे उपलब्ध होने वाला ऐसा संख्यात्मक डेटा जिसका इस्तमाल विश्लेषण,मापन और गणितीय चीजोंकेलिए हो सकता है। परिमाणात्मक डेटा के यह कुछ उदाहरण है: देश की जनसंख्या, इंसान की ऊंचाई या कंपनी की तिमाही कमाई। थोड़े अधिक विश्लेषण के बाद परिणामात्मक डेटा से मौसम के अनुसार वायु गुणवत्ता सूचकांक(Air Quality Index) के बदलाव पता करना या फिर किसी सामान्य कार्यदिवस पर भीड़भाड़ वाले घंटे के ट्रैफिक की संभावना का अनुमान लगना मुमकिन है From 50f11531a5d9f0128264d320dd15fa2eb8b78d8d Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sun, 10 Oct 2021 00:29:27 -0300 Subject: [PATCH 015/234] Create README.pt-br.md --- .../translations/README.pt-br.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 3-Data-Visualization/translations/README.pt-br.md diff --git a/3-Data-Visualization/translations/README.pt-br.md b/3-Data-Visualization/translations/README.pt-br.md new file mode 100644 index 00000000..1437ecf3 --- /dev/null +++ b/3-Data-Visualization/translations/README.pt-br.md @@ -0,0 +1,31 @@ +# Visualizações + +![a bee on a lavender flower](./../images/bee.jpg) +> Foto por Jenna Lee em Unsplash + +Visualizar dados é uma das tarefas mais importantes de um cientista de dados. Imagens valem mais que 1000 palavras, e uma visualização pode te ajudar a identificar todo tipo de partes interessantes dos seus dados, como picos, outliers, agrupamentos, tendências, e mais, que podem te ajudar a entender a história que seus dados estão tentando contar. + +Nessas cinco aulas, você irá explorar dados vindos da natureza e criar visualizações bonitas e interessantes usando várias técnicas. + +### Tópicos + +1. [Visualizando quantidades](09-visualization-quantities/README.md) +1. [Visualizando distribuições](10-visualization-distributions/README.md) +1. [Visualizando proporções](11-visualization-proportions/README.md) +1. [Visualizando relações](12-visualization-relationships/README.md) +1. [Criando visualizações relevantes](13-meaningful-visualizations/README.md) + +### Créditos + +Essas aulas foram escritas com 🌸 por [Jen Looper](https://twitter.com/jenlooper) + +🍯 Dados de produção de mel nos EUA são provenientes do projeto de Jessica Li no [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). Os [dados](https://usda.library.cornell.edu/concern/publications/rn301137d) são provenientes do [Departamento de Agricultura dos Estados Unidos](https://www.nass.usda.gov/About_NASS/index.php). + +🍄 Dados dos cogumelos também são provenientes do [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) revisados por Hatteras Dunton. Esse dataset inclui descrições de amostras hipotéticas que correspondem a 23 espécies de cogumelos lamelados das famílias Agaricus e Lepiota. Mushroom drawn from The Audubon Society Field Guide to North American Mushrooms (1981). Esse dataset foi doado para UCI ML 27 em 1987. + +🦆 Dados de pássaros de Minnesota também são provenientes do [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) raspados (web scraping) da [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) por Hannah Collins. + +Todos esses datasets estão licensiados sob [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). + + + From 70f6cfb2c6d9f3aab7376e7502132b15f89219ce Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sun, 10 Oct 2021 00:52:09 -0300 Subject: [PATCH 016/234] Create README.pt-br.md Translation is not completed yet. --- .../translations/README.pt-br.md | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md new file mode 100644 index 00000000..afa601e3 --- /dev/null +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md @@ -0,0 +1,204 @@ +# Visualizando Quantidades + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| Visualizando quantidades - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + +Nessa aula você irá explorar como usar uma das muitas bibliotecas disponíveis de Python para aprender a criar visualizações interessantes relacionadas ao conceito de quantidade. Usando um dataset já limpo sobre pássaros de Minnesota, você pode aprender muitos fatos interessantes sobre a fauna selvagem local. +## [Quiz pré-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/16) + +## Observar envergadura de asa com Matplotlib + +Uma biblioteca excelente para criar gráficos simples e sofisticados de diversos tipos é o [Matplotlib](https://matplotlib.org/stable/index.html). Em geral, o processo de plotar dados com essas bibliotecas inclui identificar as partes do seu dataframe que você quer focar, utilizando quaisquer transformações necessárias nestes dados, atribuindo seus valores dos eixos x e y, decidindo qual tipo de gráfico mostrar, e então mostrando o gráfico. O Matplotlib oferece uma grande variedade de visualizações, mas, nesta aula, iremos focar nos mais apropriados para visualizar quantidade: gráfico de linha, gráfico de dispersão e gráfico de barra. + +> ✅ Use the best chart to suit your data's structure and the story you want to tell. +> - To analyze trends over time: line +> - To compare values: bar, column, pie, scatterplot +> - To show how parts relate to a whole: pie +> - To show distribution of data: scatterplot, bar +> - To show trends: line, column +> - To show relationships between values: line, scatterplot, bubble + +If you have a dataset and need to discover how much of a given item is included, one of the first tasks you have at hand will be to inspect its values. + +✅ There are very good 'cheat sheets' available for Matplotlib [here](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-1.png) and [here](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-2.png). + +## Build a line plot about bird wingspan values + +Open the `notebook.ipynb` file at the root of this lesson folder and add a cell. + +> Note: the data is stored in the root of this repo in the `/data` folder. + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +This data is a mix of text and numbers: + + +| | Name | ScientificName | Category | Order | Family | Genus | ConservationStatus | MinLength | MaxLength | MinBodyMass | MaxBodyMass | MinWingspan | MaxWingspan | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | Black-bellied whistling-duck | Dendrocygna autumnalis | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | Fulvous whistling-duck | Dendrocygna bicolor | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | Snow goose | Anser caerulescens | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | Ross's goose | Anser rossii | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | Greater white-fronted goose | Anser albifrons | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +Let's start by plotting some of the numeric data using a basic line plot. Suppose you wanted a view of the maximum wingspan for these interesting birds. + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![Max Wingspan](images/max-wingspan.png) + +What do you notice immediately? There seems to be at least one outlier - that's quite a wingspan! A 2300 centimeter wingspan equals 23 meters - are there Pterodactyls roaming Minnesota? Let's investigate. + +While you could do a quick sort in Excel to find those outliers, which are probably typos, continue the visualization process by working from within the plot. + +Add labels to the x-axis to show what kind of birds are in question: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![wingspan with labels](images/max-wingspan-labels.png) + +Even with the rotation of the labels set to 45 degrees, there are too many to read. Let's try a different strategy: label only those outliers and set the labels within the chart. You can use a scatter chart to make more room for the labeling: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` +What's going on here? You used `tick_params` to hide the bottom labels and then created a loop over your birds dataset. Plotting the chart with small round blue dots by using `bo`, you checked for any bird with a maximum wingspan over 500 and displayed their label next to the dot if so. You offset the labels a little on the y axis (`y * (1 - 0.05)`) and used the bird name as a label. + +What did you discover? + +![outliers](images/labeled-wingspan.png) +## Filter your data + +Both the Bald Eagle and the Prairie Falcon, while probably very large birds, appear to be mislabeled, with an extra `0` added to their maximum wingspan. It's unlikely that you'll meet a Bald Eagle with a 25 meter wingspan, but if so, please let us know! Let's create a new dataframe without those two outliers: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +By filtering out outliers, your data is now more cohesive and understandable. + +![scatterplot of wingspans](images/scatterplot-wingspan.png) + +Now that we have a cleaner dataset at least in terms of wingspan, let's discover more about these birds. + +While line and scatter plots can display information about data values and their distributions, we want to think about the values inherent in this dataset. You could create visualizations to answer the following questions about quantity: + +> How many categories of birds are there, and what are their numbers? +> How many birds are extinct, endangered, rare, or common? +> How many are there of the various genus and orders in Linnaeus's terminology? +## Explore bar charts + +Bar charts are practical when you need to show groupings of data. Let's explore the categories of birds that exist in this dataset to see which is the most common by number. + +In the notebook file, create a basic bar chart + +✅ Note, you can either filter out the two outlier birds we identified in the previous section, edit the typo in their wingspan, or leave them in for these exercises which do not depend on wingspan values. + +If you want to create a bar chart, you can select the data you want to focus on. Bar charts can be created from raw data: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![full data as a bar chart](images/full-data-bar.png) + +This bar chart, however, is unreadable because there is too much non-grouped data. You need to select only the data that you want to plot, so let's look at the length of birds based on their category. + +Filter your data to include only the bird's category. + +✅ Notice that that you use Pandas to manage the data, and then let Matplotlib do the charting. + +Since there are many categories, you can display this chart vertically and tweak its height to account for all the data: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![category and length](images/category-counts.png) + +This bar chart shows a good view of the number of birds in each category. In a blink of an eye, you see that the largest number of birds in this region are in the Ducks/Geese/Waterfowl category. Minnesota is the 'land of 10,000 lakes' so this isn't surprising! + +✅ Try some other counts on this dataset. Does anything surprise you? + +## Comparing data + +You can try different comparisons of grouped data by creating new axes. Try a comparison of the MaxLength of a bird, based on its category: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![comparing data](images/category-length.png) + +Nothing is surprising here: hummingbirds have the least MaxLength compared to Pelicans or Geese. It's good when data makes logical sense! + +You can create more interesting visualizations of bar charts by superimposing data. Let's superimpose Minimum and Maximum Length on a given bird category: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +In this plot, you can see the range per bird category of the Minimum Length and Maximum length. You can safely say that, given this data, the bigger the bird, the larger its length range. Fascinating! + +![superimposed values](images/superimposed.png) + +## 🚀 Challenge + +This bird dataset offers a wealth of information about different types of birds within a particular ecosystem. Search around the internet and see if you can find other bird-oriented datasets. Practice building charts and graphs around these birds to discover facts you didn't realize. +## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/17) + +## Review & Self Study + +This first lesson has given you some information about how to use Matplotlib to visualize quantities. Do some research around other ways to work with datasets for visualization. [Plotly](https://github.com/plotly/plotly.py) is one that we won't cover in these lessons, so take a look at what it can offer. +## Assignment + +[Lines, Scatters, and Bars](assignment.md) From 02921e0c97393b1d8004cc3b21afbf52d376da7b Mon Sep 17 00:00:00 2001 From: Kaushal Joshi <53049546+joshi-kaushal@users.noreply.github.com> Date: Sun, 10 Oct 2021 22:30:49 +0530 Subject: [PATCH 017/234] Updared README.hi.md - 2 --- 1-Introduction/03-defining-data/translations/README.hi.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/1-Introduction/03-defining-data/translations/README.hi.md b/1-Introduction/03-defining-data/translations/README.hi.md index ef6b2932..49c16833 100644 --- a/1-Introduction/03-defining-data/translations/README.hi.md +++ b/1-Introduction/03-defining-data/translations/README.hi.md @@ -1,5 +1,5 @@ # डेटा का अवलोकन -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs।dev) ](../../sketchnotes/03-DefiningData.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs।dev) ](../../../sketchnotes/03-DefiningData.png)| |:---:| |Defining Data - _Sketchnote by [@nitya](https://twitter।com/nitya)_ | @@ -16,3 +16,7 @@ ### परिमाणात्मक डेटा परिमाणात्मक डेटा मतलब डेटासेट मे उपलब्ध होने वाला ऐसा संख्यात्मक डेटा जिसका इस्तमाल विश्लेषण,मापन और गणितीय चीजोंकेलिए हो सकता है। परिमाणात्मक डेटा के यह कुछ उदाहरण है: देश की जनसंख्या, इंसान की ऊंचाई या कंपनी की तिमाही कमाई। थोड़े अधिक विश्लेषण के बाद परिणामात्मक डेटा से मौसम के अनुसार वायु गुणवत्ता सूचकांक(Air Quality Index) के बदलाव पता करना या फिर किसी सामान्य कार्यदिवस पर भीड़भाड़ वाले घंटे के ट्रैफिक की संभावना का अनुमान लगना मुमकिन है + +### गुणात्मक डेटा +गुणात्मक डेटा, जिसे वर्गीकृत देता भी कहा जाता है, यह एक डेटा का ऐसा प्रकार है जिसे परिमाणात्मक डेटा की तरह वस्तुनिष्ठ तरहसे मापा नहीं जा सकता। यह आम तौर पर अलग अलग प्रकार का आत्मनिष्ठ डेटा होता है जिस से किसी उत्पादन या प्रक्रिया की गुणवत्ता। कभी कभार गुणात्मक डेटा सांखिक स्वरुपमैं होके भी गणितीय कारणों के लिए इस्तमल नहीं किया जा सकता, जैसे की फोन नंबर या समय। +गुणात्मक डेटा के यह कुछ उदाहरण हो सकते है: विडिओकी टिप्पणियाँ, आपके करीबी दोस्त के गाड़ी के पसंदिता रंग का नमूना बनाना। गुणात्मक डेटा का इस्तमाल करके ग्राहकोंको कोनसा उत्पादन सबसे ज्यादा पसंद आ रहा है या फिर नौकरी आवेदन के रिज्यूमे मैं सबसे ज्यादा इस्तमाल होने वाले शब्द ढूंढ़ना। From 4ff6ee6b2ece8e2bd337d6b2020256b5ee8ea918 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sun, 10 Oct 2021 15:15:00 -0300 Subject: [PATCH 018/234] Add translations up to 'filter your data' section --- .../translations/README.pt-br.md | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md index afa601e3..e777ac07 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md @@ -11,23 +11,24 @@ Nessa aula você irá explorar como usar uma das muitas bibliotecas disponíveis Uma biblioteca excelente para criar gráficos simples e sofisticados de diversos tipos é o [Matplotlib](https://matplotlib.org/stable/index.html). Em geral, o processo de plotar dados com essas bibliotecas inclui identificar as partes do seu dataframe que você quer focar, utilizando quaisquer transformações necessárias nestes dados, atribuindo seus valores dos eixos x e y, decidindo qual tipo de gráfico mostrar, e então mostrando o gráfico. O Matplotlib oferece uma grande variedade de visualizações, mas, nesta aula, iremos focar nos mais apropriados para visualizar quantidade: gráfico de linha, gráfico de dispersão e gráfico de barra. -> ✅ Use the best chart to suit your data's structure and the story you want to tell. -> - To analyze trends over time: line -> - To compare values: bar, column, pie, scatterplot -> - To show how parts relate to a whole: pie -> - To show distribution of data: scatterplot, bar -> - To show trends: line, column -> - To show relationships between values: line, scatterplot, bubble +> ✅ Use o melhor gráfico para se adaptar a estrutura dos dados e a história que você quer contar. +> - Para analisar tendências ao longo do tempo: linha +> - Para comparar valores: barra, coluna, pizza, dispersão +> - Para mostrar como as partes se relacionam com o todo: pizza +> - Para mostrar a distrivuição dos dados: dispersão, barra +> - Para mostrar tendências: linha, coluna +> - Para mostrar relações entre valores: linha, dispersão, bolha -If you have a dataset and need to discover how much of a given item is included, one of the first tasks you have at hand will be to inspect its values. +Se você tem um dataset e precisa descobrir quanto de um dado item está presente, uma das primeiras coisas que você precisará fazer é examinar seus valores. -✅ There are very good 'cheat sheets' available for Matplotlib [here](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-1.png) and [here](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-2.png). -## Build a line plot about bird wingspan values +✅ Existem dicas ('cheat sheets') muito boas disponíveis para o Matplotlib [aqui](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-1.png) e [aqui](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-2.png). -Open the `notebook.ipynb` file at the root of this lesson folder and add a cell. +## Construir um gráfico de linhas sobre os valores de envergadura de pássaros -> Note: the data is stored in the root of this repo in the `/data` folder. +Abra o arquivo `notebook.ipynb` na raiz da pasta dessa aula e adicione uma célula. + +> Nota: os dados estão armazenados na raiz deste repositório na pasta `/data`. ```python import pandas as pd @@ -35,7 +36,7 @@ import matplotlib.pyplot as plt birds = pd.read_csv('../../data/birds.csv') birds.head() ``` -This data is a mix of text and numbers: +Esses dados são uma mistura de texto e números: | | Name | ScientificName | Category | Order | Family | Genus | ConservationStatus | MinLength | MaxLength | MinBodyMass | MaxBodyMass | MinWingspan | MaxWingspan | @@ -46,19 +47,19 @@ This data is a mix of text and numbers: | 3 | Ross's goose | Anser rossii | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | | 4 | Greater white-fronted goose | Anser albifrons | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | -Let's start by plotting some of the numeric data using a basic line plot. Suppose you wanted a view of the maximum wingspan for these interesting birds. +Vamos começar plotando alguns dados numéricos com um simples gráfico de linhas. Suponha que você quer uma visualização da envergadura máxima desses pássaros interessantes. ```python wingspan = birds['MaxWingspan'] wingspan.plot() ``` -![Max Wingspan](images/max-wingspan.png) +![Envergadura máxima](images/max-wingspan.png) -What do you notice immediately? There seems to be at least one outlier - that's quite a wingspan! A 2300 centimeter wingspan equals 23 meters - are there Pterodactyls roaming Minnesota? Let's investigate. +O que é possível perceber imediatamente? Aparentemente existe pelo menos um outlier - e que envergadura! Uma envergadura de 2300 centímetros equivale a 23 metros - têm pterodáctilos voando em Minnesota? Vamos investigar. -While you could do a quick sort in Excel to find those outliers, which are probably typos, continue the visualization process by working from within the plot. +Você poderia fazer uma ordenação rápida no Excel para encontrar esses outliers, que provavelmente são erros de digitação. No entanto, vamos continuar o processo de visualização trabalhando no gráfico. -Add labels to the x-axis to show what kind of birds are in question: +Adicione labels (identificadores) no eixo x para mostrar quais tipos de pássaros estão sendo analisados: ``` plt.title('Max Wingspan in Centimeters') @@ -72,9 +73,9 @@ plt.plot(x, y) plt.show() ``` -![wingspan with labels](images/max-wingspan-labels.png) +![Envergadura com labels (identificadores)](images/max-wingspan-labels.png) -Even with the rotation of the labels set to 45 degrees, there are too many to read. Let's try a different strategy: label only those outliers and set the labels within the chart. You can use a scatter chart to make more room for the labeling: +Mesmo com a rotação das labels em 45 graus, existem muitos para ler. Vamos tentar outra estratégia: identificar somente os outliers e colocar as labels dentro do gráfico. Você pode usarj um gráfico de dispersão para abrir mais espaço para identificação: ```python plt.title('Max Wingspan in Centimeters') @@ -90,12 +91,14 @@ for i in range(len(birds)): plt.show() ``` -What's going on here? You used `tick_params` to hide the bottom labels and then created a loop over your birds dataset. Plotting the chart with small round blue dots by using `bo`, you checked for any bird with a maximum wingspan over 500 and displayed their label next to the dot if so. You offset the labels a little on the y axis (`y * (1 - 0.05)`) and used the bird name as a label. -What did you discover? +O que aconteceu aqui? Você usou `tick_params` para esconder as labels debaixo e entrão criou um loop sobre o dataset dos paśsaros. Depois, plotou o gráfico com pequenos círculos azuis usando `bo` e procurou por pássaros com envergadura maior que 500 e, se sim, exibiu a label ao lado do círculo. Você ajustou as labels no eixo y (`y * (1 - 0.05)`) e usou o nome do pássaro como label. + +O que você descobriu? ![outliers](images/labeled-wingspan.png) -## Filter your data + +## Filtrar seus dados Both the Bald Eagle and the Prairie Falcon, while probably very large birds, appear to be mislabeled, with an extra `0` added to their maximum wingspan. It's unlikely that you'll meet a Bald Eagle with a 25 meter wingspan, but if so, please let us know! Let's create a new dataframe without those two outliers: From 3b8aefd5fb937b705dd6783fc4ae5b2a9905d81f Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sun, 10 Oct 2021 15:18:07 -0300 Subject: [PATCH 019/234] update images path --- .../translations/README.pt-br.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md index e777ac07..9e620a8e 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md @@ -1,6 +1,6 @@ # Visualizando Quantidades -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/09-Visualizing-Quantities.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/09-Visualizing-Quantities.png)| |:---:| | Visualizando quantidades - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | @@ -53,7 +53,7 @@ Vamos começar plotando alguns dados numéricos com um simples gráfico de linha wingspan = birds['MaxWingspan'] wingspan.plot() ``` -![Envergadura máxima](images/max-wingspan.png) +![Envergadura máxima](../images/max-wingspan.png) O que é possível perceber imediatamente? Aparentemente existe pelo menos um outlier - e que envergadura! Uma envergadura de 2300 centímetros equivale a 23 metros - têm pterodáctilos voando em Minnesota? Vamos investigar. @@ -73,7 +73,7 @@ plt.plot(x, y) plt.show() ``` -![Envergadura com labels (identificadores)](images/max-wingspan-labels.png) +![Envergadura com labels (identificadores)](../images/max-wingspan-labels.png) Mesmo com a rotação das labels em 45 graus, existem muitos para ler. Vamos tentar outra estratégia: identificar somente os outliers e colocar as labels dentro do gráfico. Você pode usarj um gráfico de dispersão para abrir mais espaço para identificação: @@ -96,7 +96,7 @@ O que aconteceu aqui? Você usou `tick_params` para esconder as labels debaixo e O que você descobriu? -![outliers](images/labeled-wingspan.png) +![outliers](../images/labeled-wingspan.png) ## Filtrar seus dados @@ -117,7 +117,7 @@ plt.show() By filtering out outliers, your data is now more cohesive and understandable. -![scatterplot of wingspans](images/scatterplot-wingspan.png) +![scatterplot of wingspans](../images/scatterplot-wingspan.png) Now that we have a cleaner dataset at least in terms of wingspan, let's discover more about these birds. @@ -143,7 +143,7 @@ birds.plot(x='Category', title='Birds of Minnesota') ``` -![full data as a bar chart](images/full-data-bar.png) +![full data as a bar chart](../images/full-data-bar.png) This bar chart, however, is unreadable because there is too much non-grouped data. You need to select only the data that you want to plot, so let's look at the length of birds based on their category. @@ -158,7 +158,7 @@ category_count = birds.value_counts(birds['Category'].values, sort=True) plt.rcParams['figure.figsize'] = [6, 12] category_count.plot.barh() ``` -![category and length](images/category-counts.png) +![category and length](../images/category-counts.png) This bar chart shows a good view of the number of birds in each category. In a blink of an eye, you see that the largest number of birds in this region are in the Ducks/Geese/Waterfowl category. Minnesota is the 'land of 10,000 lakes' so this isn't surprising! @@ -174,7 +174,7 @@ plt.barh(y=birds['Category'], width=maxlength) plt.rcParams['figure.figsize'] = [6, 12] plt.show() ``` -![comparing data](images/category-length.png) +![comparing data](../images/category-length.png) Nothing is surprising here: hummingbirds have the least MaxLength compared to Pelicans or Geese. It's good when data makes logical sense! @@ -192,7 +192,7 @@ plt.show() ``` In this plot, you can see the range per bird category of the Minimum Length and Maximum length. You can safely say that, given this data, the bigger the bird, the larger its length range. Fascinating! -![superimposed values](images/superimposed.png) +![superimposed values](../images/superimposed.png) ## 🚀 Challenge From 3d4a7c588acd16954bc1ad2b0214baea1aad453c Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sun, 10 Oct 2021 21:31:03 -0300 Subject: [PATCH 020/234] Fully translated text Fix links afterwards (link to the translated files, after they are created) --- .../translations/README.pt-br.md | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md index 9e620a8e..90838098 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md @@ -100,7 +100,7 @@ O que você descobriu? ## Filtrar seus dados -Both the Bald Eagle and the Prairie Falcon, while probably very large birds, appear to be mislabeled, with an extra `0` added to their maximum wingspan. It's unlikely that you'll meet a Bald Eagle with a 25 meter wingspan, but if so, please let us know! Let's create a new dataframe without those two outliers: +Apesar de grandes, tanto a Bald Eagle e o Prairie Falcon parecem ter valores errados, com um `0` a mais na envergadura máxima. É imporvável que você encontra uma Bald Eagle com envergadura de 25 metros, mas, se encontrar, por favor nos diga! Agora, vamos criar um novo dataframe sem esses dois outliers: ```python plt.title('Max Wingspan in Centimeters') @@ -115,26 +115,27 @@ for i in range(len(birds)): plt.show() ``` -By filtering out outliers, your data is now more cohesive and understandable. +Ao remover esses outliers, seus dados ficaram mais coesos e compreensíveis. -![scatterplot of wingspans](../images/scatterplot-wingspan.png) +![Dispersão das envergaduras](../images/scatterplot-wingspan.png) -Now that we have a cleaner dataset at least in terms of wingspan, let's discover more about these birds. +Agora que temos um dataset mais limpo ao menos em termos de envergadura, vamos aprender mais sobre esses pássaros -While line and scatter plots can display information about data values and their distributions, we want to think about the values inherent in this dataset. You could create visualizations to answer the following questions about quantity: +Enquanto gráficos de linha e dispersão conseguem mostrar informações sobre valores e suas distribuições, nós queremos pensar sobre os valores intrínsecos a esse dataset. Você poderia criar visualizações para responder as seguintes perguntas sobre quantidade: -> How many categories of birds are there, and what are their numbers? -> How many birds are extinct, endangered, rare, or common? -> How many are there of the various genus and orders in Linnaeus's terminology? -## Explore bar charts +> Quantas categorias de pássaros existem, e quais são seus números? +> Quantos pássaros estão extintos, em risco de extinção, raros ou comuns? +> Quantos gêneros e ordens da taxonomia de Lineu (nome científico) existem no dataset? -Bar charts are practical when you need to show groupings of data. Let's explore the categories of birds that exist in this dataset to see which is the most common by number. +## Explorar gráfico de barras -In the notebook file, create a basic bar chart +Gráfico de barras são práticos quando se precisa mostrar agrupamentos de dados. Vamos explorar as categorias de pássaros que existem nesse dataset para obrservar qual é o mais comum em quantidade. -✅ Note, you can either filter out the two outlier birds we identified in the previous section, edit the typo in their wingspan, or leave them in for these exercises which do not depend on wingspan values. +No arquivo notebook, crie um gráfico de barras simples -If you want to create a bar chart, you can select the data you want to focus on. Bar charts can be created from raw data: +✅ Note que, você pode remover os dois pássaros outliers que foram identificados anteriormente, editar o erro de digitação na envergadura ou deixá-los nesses exercícios que não dependem dos valores da envergadura. + +Se você quer criar um gráfico de barras, você pode selecionar os dados que quer focar. Gráfico de barras pode ser criado a partir de dados brutos: ```python birds.plot(x='Category', @@ -145,13 +146,13 @@ birds.plot(x='Category', ``` ![full data as a bar chart](../images/full-data-bar.png) -This bar chart, however, is unreadable because there is too much non-grouped data. You need to select only the data that you want to plot, so let's look at the length of birds based on their category. +No entanto, esse gráfico de barras é ilegível porque existem muitos dados não agrupados. Você precisa selecionar somente os dados que quer plotar, então vamos olhar o comprimento de pássaros com base na sua categoria. -Filter your data to include only the bird's category. +Filtre os dados para incluir somente a categoria do pássaro. -✅ Notice that that you use Pandas to manage the data, and then let Matplotlib do the charting. +✅ Note que você usa o Pandas para lidar com os dados, e deixa a criação de gráficos para o Matplotlib. -Since there are many categories, you can display this chart vertically and tweak its height to account for all the data: +Já que existem muitas categorias, você pode mostrar esse gráfico verticalmente e ajustar sua altura para acomodar todos os dados: ```python category_count = birds.value_counts(birds['Category'].values, sort=True) @@ -160,13 +161,13 @@ category_count.plot.barh() ``` ![category and length](../images/category-counts.png) -This bar chart shows a good view of the number of birds in each category. In a blink of an eye, you see that the largest number of birds in this region are in the Ducks/Geese/Waterfowl category. Minnesota is the 'land of 10,000 lakes' so this isn't surprising! +Esse gráfico de barras mostra uma boa visão do número de pássaros em cada categoria. Em um piscar de olhos, você vê que a maior quantidade de pássaros nessa região pertence à categoria de Ducks/Geese/Waterfowl (patos/gansos/cisnes). Minnesota é 'a terra de 10.000 lagos', então isso não é surpreendente! -✅ Try some other counts on this dataset. Does anything surprise you? +✅ Tente contar outras quantidades nesse dataset. Algo te surpreende? -## Comparing data +## Comparando dados -You can try different comparisons of grouped data by creating new axes. Try a comparison of the MaxLength of a bird, based on its category: +Você pode tentar diferentes comparações de dados agrupados criando novos eixos. Tente comparar o comprimento máximo de um pássaro, baseado na sua categoria: ```python maxlength = birds['MaxLength'] @@ -176,9 +177,9 @@ plt.show() ``` ![comparing data](../images/category-length.png) -Nothing is surprising here: hummingbirds have the least MaxLength compared to Pelicans or Geese. It's good when data makes logical sense! +Nada é surpreendente aqui: hummingbirds (beija-flores) tem o menor comprimento comparados com pelicans (pelicanos) ou geese (gansos). É muito bom quando os dados fazem sentido! -You can create more interesting visualizations of bar charts by superimposing data. Let's superimpose Minimum and Maximum Length on a given bird category: +Você pode criar visualizações mais interessantes de gráficos de barras ao sobrepor dados. Vamos sobrepor o comprimento mínimo e máximo de uma dada categoria de pássaros: ```python minLength = birds['MinLength'] @@ -190,18 +191,21 @@ plt.barh(category, minLength) plt.show() ``` -In this plot, you can see the range per bird category of the Minimum Length and Maximum length. You can safely say that, given this data, the bigger the bird, the larger its length range. Fascinating! + +Nesse gráfico, você pode ver o intervalo de comprimento mínimo e máximo por categoria de pássaro. Você pode seguramente dizer, a partir desses dados, que quanto maior o pássaro, maior seu intervalo de comprimento. Fascinante! ![superimposed values](../images/superimposed.png) -## 🚀 Challenge +## 🚀 Desafio + +Esse dataset de pássaros oferece uma riqueza de informações sobre os diferentes tipos de pássaros de um ecossistema particular. Tente achar na internet outros datasets com dados sobre pássaros. Pratique construir gráficos sobre esses pássaros e tente descobrir fatos que você ainda não havia percebido. + +## [Quiz pós-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/17) -This bird dataset offers a wealth of information about different types of birds within a particular ecosystem. Search around the internet and see if you can find other bird-oriented datasets. Practice building charts and graphs around these birds to discover facts you didn't realize. -## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/17) +## Revisão e autoestudo -## Review & Self Study +Essa primeira aula lhe deu informações sobre como usar o Matplotlib para visualizar quantidades. Procure por outras formas de trabalhar com dataset para visualização. [Plotly](https://github.com/plotly/plotly.py) é uma que não será abordada nas aulas, então dê uma olhada no que ela pode oferecer. -This first lesson has given you some information about how to use Matplotlib to visualize quantities. Do some research around other ways to work with datasets for visualization. [Plotly](https://github.com/plotly/plotly.py) is one that we won't cover in these lessons, so take a look at what it can offer. -## Assignment +## Tarefa [Lines, Scatters, and Bars](assignment.md) From ce293650bddd05f67f9b44b2b1aa047e234f8764 Mon Sep 17 00:00:00 2001 From: Izael Date: Mon, 11 Oct 2021 10:25:55 -0300 Subject: [PATCH 021/234] Translated Introduction -> Ethics to PT-BR --- .../02-ethics/translations/RAEDME.pt-br.md | 262 ++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 1-Introduction/02-ethics/translations/RAEDME.pt-br.md diff --git a/1-Introduction/02-ethics/translations/RAEDME.pt-br.md b/1-Introduction/02-ethics/translations/RAEDME.pt-br.md new file mode 100644 index 00000000..ec921d8f --- /dev/null +++ b/1-Introduction/02-ethics/translations/RAEDME.pt-br.md @@ -0,0 +1,262 @@ +# Introdução a Ética de Dados + +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/02-Ethics.png)| +|:---:| +| Ética em Ciência de Dados - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + +--- + +Nós somos todos cidadãos dos dados vivendo em um mundo de dados. + +Tendências do mercado nos mostram que até 2022, 1 em 3 grandes organizações irá comprar e vender seus dados através de [Marketplaces e Exchanges](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/) online. Como **Desenvolvedores de Aplicativos**, nós vamos achar mais fácil e mais barato integrar insights baseados em dados e automações baseadas em algoritmos nas experiências diárias dos usuário. Mas conforme IA se torna mais difundida, nós também vamos precisar entender os danos potenciais causado pelo uso desses algoritmos [como uma arma](https://www.youtube.com/watch?v=TQHs8SA1qpk). + +Tendências também indicam que nós vamos criar e consumir mais de [180 zettabytes](https://www.statista.com/statistics/871513/worldwide-data-created/) de dados em 2025. Como **Cientistas de Dados**, isso nos dará níveis de acesso sem precedentes à dados pessoais. Isso significa que poderemos construir perfis comportamentais dos usuário e influenciar tomadas de decisão de uma forma que crie a [ilusão da livre escolha](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) enquanto potencialmente direcionando os usuários na direção do resultado que nós preferimos. Isso também levanta questões mais amplas sobre privacidade dos dados e proteção dos usuários. + +Ética dos dados é agora um _guarda-corpos necessário_ para ciẽncia de dados e engenharia, nos ajudando a minimizar potenciais danos e consequências não intencionas das nossas ações realizadas com base em dados. O [Gartner Hype Cycle for AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) identifica tendências relevantes ná ética digital, IAs responsáveis, e governanças de IA como principais impulsionadores para grandes mega tendências sobre _democratização_ e _industrialização_ da IA. + +![Gartner's Hype Cycle for AI - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +Nessa aula, nós vamos explorar a área fascinante de ética dos dados - desde conceitos essenciais e desafios, para estudos de caso e conceitos de IA aplicados como governança - isso ajuda a estabelecer a cultura da ética nos times e organizações que trabalham com dados e IA. + + + + +## [Quiz pré aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/2) 🎯 + +## Definição Básica + +Vamos começar entendendo o básico da terminologia. + +A palavra "ética" vem da [palavra Grega "ethikos"](https://en.wikipedia.org/wiki/Ethics) (e sua raíz "ethos") que significa _caráter ou natureza moral_. + +**Ética** é sobre os valores e princípios morais compartilhados que governam o nosso comportamento em sociedade. Ética é baseada não nas leis mas nas normas amplamente aceitas sobre o que é "certo vs. errado". No entanto, considerações éticas podem influenciar iniciativas de governança corporativa e regulamentações governamentais que criam mais incentivos para conformidade (compliance). + +**Ética de Dados** é uma [nova ramificação da ética](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) que "estuda e avalia problemas morais relacionados a _dados, algoritmos e práticas correspondentes_". Aqui, **"dados"** focam nas ações relacionadas a geração, gravação, curadoria, disseminação de processamento, compartilhamento, e uso, **"algoritmos"** focam em IA, agentes, aprendizado de máquina, e robôs, e **"práticas"** focam em tópicos como inovação responsável, programação, hacking e códigos de ética. + +**Ética Aplicada** é a [aplicação prática de considerações morais](https://en.wikipedia.org/wiki/Applied_ethics). É o processo de investigar ativamente problemáticas éticas no contexto de _ações do mundo real, produtos e processos_, e tomar medidas corretivas para fazer com que esses permanecam alianhados com o nossos valores éticos definidos. + +**Cultura Ética** é sobre [operacionalizar a ética aplicada](https://hbr.org/2019/05/how-to-design-an-ethical-organization) para garantir que nossos princípios e práticas éticas sejam adotados de maneira consistente e escalável em toda a organização. Culturas éticas de sucesso definem princípios éticos em toda a organização, fornecem incentivos significativos para consistência, e reinforça as normas éticas encorajando e amplificando comportmentos desejados em todos os níveis da organização. + + +## Conceitos Éticos + +Nessa seção, nós vamos discutir conceitos como **valores compartilhados** (princípios) e **desafios éticos** (problemas) para a ética de dados - e explorar **estudos de caso** que ajudam você a entender esses conceitos em contextos do mundo real. + +### 1. Princípios Éticos + +Toda estratégia de ética de dados começa definindo _pricípios éticos_ - os "valores compartilhados" que descrevem comportamentos aceitáveis, e guia ações complacentes, nos nossos dados e nos projetos de IA. Você pode definir eles individualmente ou com um time. No entando, a maioria das grandes organizações descreve eles em uma declaração de missão ou de estrutura de _IA ética_ que é definida em níveis corporativos e aplicadas consistentemente em todos os times. + +**Exemplo:** a declaração de missão da [IA responsável](https://www.microsoft.com/pt-br/ai/responsible-ai?activetab=pivot1:primaryr6) da Microsoft afirma: _"Estamos comprometidos com o avanço da AI impulsionados por princípios éticos que colocam as pessoas em primeiro lugar."_ - identificando 6 princípios éticos na estrutura abaixo: + +![IA Responśavel na Microsoft](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +Vamos explorar brevemente esses princípios. _Transparência_ e _responsabilidade_ são valores fundamentais nos quais outros princípios construíram sobre - então vamos começar aí: + +* [**Responsabilidade**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) torna os profissionais _responsáveis_ pelos seus dados e operações da IA, e conformidade (compliance) com esses princípios éticos. +* [**Transparência**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) garante que os dados e as ações da IA são _compreesíveis_ (interpretáveis) para os usuários, explicando o que e o porquê por trás de cada decisão. +* [**Justiça**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - foca em garantir que a IA _trate_ todas as pessoas de forma justa, abordando quaisquer preconceitos sociotécnicos implícitos ou sistêmicos nos dados e sistemas. +* [**Confiabilidade e Segurança**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - garante que a IA comporte de maneira _consistente_ com os valores definidos, minimizando potenciais danos ou consequências não pretendidas. +* [**Segurança e Privacidade**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - é sobre compreender as linhagem dos dados, e fornecer _privacidade de dados e proteções relacionadas_ aos usuários. +* [**Inclusão**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - é sobre projetar soluções de IA com intenção, adaptando elas para atender uma _vasta game de necessidades humanas_ & capacidades. + +> 🚨 Pense sobre qual poderia ser a frase de missão da sua ética de dados. Explore estruturas éticas de IA de outras organizações - aqui estão alguns exemplos da [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles), e [Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). Quais valores compartilhados vocês tem em comum? Como esses princípios se relacionam ao produto de IA ou à indústria na qual eles operam? + +### 2. Desafios de Ética + +Uma vez que nossos princípios éticos estão definidos, o próximo passo é avaliar nossos dados e ações da IA para ver se eles estão alinhados com aqueles valores compartilhados. Pense sobre suas ações em duas categorias: _coleção de dados_ e _design de algoritmo_. + +Com coleções dados, ações irão, provavelmente, envolver **dados pessoais** ou informação pessoalmente identificável (do Inglês, personally identifiable information, ou PII) para indivíduos vivos identificáveis. Isso inclui [itens diversos de dados não pessoais](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) que _coletivamente_ identificam um indivíduo. Desafios éticos podem estar relacionados à _privacidade dos dados_, _qualidade dos dados_, e tópicos relacionados como _consentimento informado_ e _direitos de propriedades intelectuais_ para os usuários. + +Com o design de algoritmo, as ações envolverão coleta e curadoria dos **datasets**, e então o uso deles para treinar e implantar **modelos de dados** que predizem resultados ou automatizam decisões em contextos do mundo real. Desafios éticos podem surgir de _vieses do dataset_ (biases), problemas com a _qualidade de dados_, _injustiça_, e _má representação_ nos algoritmos - incluindo alguns problemas que são sistêmicos na natureza. + +Em ambos os casos, desafios de ética destacam áreas onde nossas ações podem conflitar com nossos valores compartilhados. Para detectar, mitigar, minimizar, ou eliminar, essas preocupações - nós precisamos perguntar questões morais de "sim ou não" relacionadas as nossas ações, e então tomar uma ação corretiva conforme necessário. Vamos olhar alguns desafios éticos e as questões morais que eles levantam: + + +#### 2.1 Propriedade de Dados + +A coleta de dados geralmente envolve dados pessoais que podem identificar os titulares dos dados. [Propriedade de dados](https://permission.io/blog/data-ownership) é sobre o _controle_ e [_direitos dos usuários_](https://permission.io/blog/data-ownership) relacionados à criação, processamento, e disseminação dos dados. + +As questões morais que precisamos nos perguntar são: + * Quem detêm/possui os dados? (usuário ou organização) + * Quais direitos os titulares dos dados tem? (ex: acesso, apagar, portabilidade) + * Quais direitos as organizações tem? (ex: retificar reviews maliciosas de usuários) + +#### 2.2 Consentimento Informado + +[Consentimento Informado](https://legaldictionary.net/informed-consent/) define o ato dos usuários aceitar uma ação (como a coleta de dados) com um _compreendimento total_ de fatos relevantes incluindo propósito, potenciais riscos, e alternativas. + +Questões a se explorar aqui são: + * O usuário (titular dos dados) deu permissão para a captação e uso dos dados? + * O usuário entendeu o propósito para o qual aqueles dados foram coletados? + * O usuário entendeu os potenciais riscos de sua participação? + +#### 2.3 Propriedade Intelectual + +[Propriedade intelectual](https://en.wikipedia.org/wiki/Intellectual_property) se refere a criações intangíveis que foram resultados das iniciativas humanas, que podem _ter valor econômico_ para indivíduos ou negócios. + +Questões a se explorar aqui são: + * Os dados coletados tem valor econômicos para um usuário ou negócio? + * O **usuário** tem propriedade intelectual aqui? + * As **organizações** tem propriedade intelectual aqui? + * Se esses direitos existem, como estamos protejendo eles? + +#### 2.4 Privacidade de Dados + +[Privacidade de dados](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) ou privacidade da informação se refere a preservação da privacidade do usuário e proteção da identidade do usuário com relação as informações de indentificação pessoal. + +Questões a se explorar aqui são: + * Os dados (pessoais) dos usuários estão protegidos contra hacks e vazamentos? + * Os dados do usuário são acessíveis somente a usuários e contextos autorizados? + * A anonimidade do usuário são preservados quando os dados são compartilhados ou disseminados? + * Um usuário podem ser desindentificado de datasets anônimos? + + +#### 2.5 Direito a Ser Esquecido + +o [Direito a Ser Esquecido](https://en.wikipedia.org/wiki/Right_to_be_forgotten) ou [Direito de Apagar](https://www.gdpreu.org/right-to-be-forgotten/) fornecem proteções de dados adicionais para os usuários. Especificamente, dá aos usuários o direito de pedir deleção ou remoção dos dados pessoais das buscas da Internet e outros locais, _sobre circunstâncias específicas_ - permitindo a eles um novo começo online sem que as ações passadas sejam colocadas contra eles. + +Questões a se explorar aqui são: + * O sistema permite que os titulares dos dados peçam o apagamento dos mesmos? + * A retirada do consentimento do usuário deve acionar um apagamento automático? + * Dados foram colocados sem o consentimento ou por meios ilegais? + * Estamos de acordo com regulações governamentais para a privacidade de dados? + + +#### 2.6 Viéses dos Datasets + +Dataset ou [Viéses da Coleção](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) é sobre selecionar um subset de dados _não representativos_ para o desenvolvimento de um algoritmo, criando potenciais injustiças nos resultados para grupos diversos. Os tipos de viéses incluem seleção ou viés da amostra, viés voluntário, e viés do instrumento. + +Questões a se explorar aqui são: + * Recrutamos um conjunto representativo de titulares de dados? + * Nós testamos nossos datasets colecionados ou com curadoria para diversos viéses? + * Nós podemos mitigar ou remover quaisquer viéses descobertos? + +#### 2.7 Qualidade de Dados + +[Qualidade de Dados](https://lakefs.io/data-quality-testing/) procura pela validade do dataset com curadoria usado para desenvolver nossos algoritmos, checando para ver se recursos e registros atendem os requisitos para o nível de acurácia e consistência necessários para o propósito da nossa IA. + +Questões a se explorar aqui são: + * Nós coletamos _features_ válidos para nosso caso de uso? + * Os dados foram coletados _consistentemente_ em diversas fontes de dados? + * O dataset é _completo_ para diversas condições e cenários? + * As informações capturadas refletem _com precisão_ a realidade? + +#### 2.8 Justiça do Algoritmo + +[Justiça do Algoritmo](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) checa para ver se o design do algoritmo discrimina sistematicamente subgrupos específicos dos titulares dos dados levando a [potenciais danos](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) em _alocação_ (onde recursos são negados ou detidos daquele grupo) e _qualidade de serviço_ (onde IA não é tão acurada para alguns subgrupos quanto é para outros). + +Questões a se explorar aqui são: + * Nós avaliamos a acurácia do modelo para diversos subgrupos e condições? + * Nós examinamos o sistema em busca de danos potenciais (ex. estereótipos)? + * Nós podemos revisar os dados ou retreinar os modelos para mitigar danos identificados? + +Explore recursos como [Checklist de Justiça de IA](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) para saber mais. + +#### 2.9 Má Representação + +[Má Representação dos Dados](https://www.sciencedirect.com/topics/computer-science/misrepresentation) é sobre perguntar se nós estamos comunicando insights de dados honestamente relatados de uma maneira enganosa para suportar uma narrativa desejada. + +Questões a se explorar aqui são: + * Estamos relatando dados completos ou inacurados? + * Estamos visualizando dados de uma maneira que conduz a uma conclusão errada? + * Estamos usando técnicas estatísticas seletivas para manipular os resultados? + * Existem explicações alternativas que podem oferecer uma conclusão diferente? + +#### 2.10 Livre Escolha +A [Ilusão da Livre Escolha](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) ocorre quando as "arquiteturas de escolha" do sistema utiliza algoritmos de tomada de decisão para incentivar as pessoas a obterem um resultado preferido enquanto parece lhe dar opções e controle. Esses [dark patterns](https://www.darkpatterns.org/) podem causar danos sociais e econômicos aos usuários. Já que as decisões do usuário impactam perfis de comportamento, essas ações potencialmente conduzem as escolhas futuras que podem aplificar ou extender o impacto desses danos. + +Questões a se explorar aqui são: + * O usuário entende as implicações de fazer aquela escolha? + * O usuário estava ciente das escolhas (alternativas) e dos prós e contras de cada uma? + * O usuário pode reverter um escolha automatizada ou influenciada depois? + +### 3. Estudo de Casos + +Para colocar esses desafios éticos em contextos do mundo real, ajuda olhar para estudo de casos que destacam potenciais danos e consequências para indivíduos e sociedade, quando essas violações éticas são negligenciadas. + +Aqui estão alguns exemplos: + +| Desafios de Éticas | Estudo de Caso | +|--- |--- | +| **Consentimento Informado** | 1972 - [Tuskegee Syphillis Study](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - Homens afro-americanos que participaram no estudo foram prometidos cuidados médicos livres de custo _mas foram enganados_ pelos pesquisadores que não informaram os participantes de seus diagnósticos ou sobre a avaliabilidade de tratamentos. Muitos participantes morreram e parceiros e ciranças foram afetados; oe studo durou por 40 anos. | +| **Privacidade de Dados** | 2007 - O [Netflix data prize](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) forneceu a pesquisadores _10M de avaliações anônimas de filmes de 50K clientes_ para ajudar a melhorar os algoritmos de recomendação. No entanto, os pesquisadores conseguiram correlacionar os dados anônimos com dados de identificação pessoal em _datasets externos_ (ex. comentários no IMDb) - "desanonimizando" efetivamente alguns assinates da Netflix.| +| **Viéses dos Datasets** | 2013 - A Cidade de Boston [desenvolveu Street Bump](https://www.boston.gov/transportation/street-bump), um aplicativo que deixa os usuários relatarem burcos nas ruas, dando à cidade melhores dados rodoviários para encontrar e consertar problemas. No entanto, [pessoas que faziam parte de grupos de baixa renda tinham menos acesso a carros e celulares](https://hbr.org/2013/04/the-hidden-biases-in-big-data), fazendo com que os seus problema rodoviários fossem invisíveis nesse aplicativo. Desenvolvedores trabalharm com acadêmicos para questões de _acesso equitativo e divisões digitais_ para justiça. | +| **Justiça do Algoritmo** | 2018 - [O Gender Shades Study do MIT](http://gendershades.org/overview.html) avaliou a acurácia de produtos de IA de classificação de gêneros, expondo lacunas na acurácia para mulheres e pessoas não brancas. Um [Apple Card de 2019](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) parece oferecer menos créditos para mulheres do que oferece para homens. Ambos ilustraram questões de viés algorítmico levando a danos socioeconômicos.| +| **Má Representação de Dados** | 2020 - O [Departamento de Sáude Pública da Georgia (Georgia Department of Public Health) liberou gráficos da COVID-19](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) que aparentam a levar os cidadãos a conclusões errôneas sobre as tendências em casos confirmados em uma ordem não cronológica no eixo x. Isso ilustra a má representação atráves de truques de visualização. | +| **Ilusão da Livre Escolha** | 2020 - Aplicativo de aprendizado [ABCmouse pagou $10M para resolver uma reclamação do FTC](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) onde os pais foram enganados a pagar assinaturas que eles não podiam cancelar. Isso ilustra "dark patterns" em arquiteturas de escolha, onde usuários foram direcionados a escolhas potencialmente prejudiciais. | +| **Privacidade de Dados & Direitos do Usuário** | 2021 - [Violação de Dados do facebook](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) expôs dados de mais de 530M de usuários, resultando em um acordo de $5B com o FTC (Federal Trade Commission). No entanto, o Facebook se recusou a notificar os usuários sobre a violação dos dados violando os direitos dos usuários de transparência e acesso de dados. | + +Gostaria de explorar mais estudos de caso? Confira: +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - dilemas éticos em indústrias diversas. +* [Data Science Ethics course](https://www.coursera.org/learn/data-science-ethics#syllabus) - estudos de caso marcantes explorados. +* [Where things have gone wrong](https://deon.drivendata.org/examples/) - checklists da deon com exemplos + +> 🚨 Pense sobre estudos de caso que você ja viu - você ja experienciou, ou foi afetado por, um desafio ético similar em sua vida? Voce consegue pensar em pelo menos um estudo de caso que ilustre um ou mais desafios éticos que discutimos nessa seção? + +## Ética aplicada + +Nós falamos sobre conceitos de éticas, desafios, e casos de estudo em contextos do mundo real. Mas como nós começamos a _aplicar_ esses princípios éticos em nossos projetos? E como nós _operacionalizamos_ essas práticas para melhor governância? Vamos explorar algumas soluções do mundo real: + +### 1. Códigos Profissionais + +Códigos Profisionais oferecem uma opção para organizações para "incentivar" membros a apoiar os princípios éticos e frase de missão. Códigos são _diretrizes morais_ para comportamento profissional, ajudando funcionários ou membros a tomar decisões que alinhem com os princípios da sua organização. Eles são tão bons quanto a conformidade voluntária dos membros; no entanto, muitas organizações oferecem recompensas e penalidades adicionais para motivar a conformidade dos membros. + +Exemplos incluem: + + * [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) Código de Ética + * [Data Science Association](http://datascienceassn.org/code-of-conduct.html) Código de Conduta (criado em 2013) + * [ACM Code of Ethics and Professional Conduct](https://www.acm.org/code-of-ethics) (desde 1993) + +> 🚨 Você faz parte de uma organização profissional de engenharia ou de ciências de dados? Explore o site deles para ver se eles definem um código de ética profissional. O que diz sobre os princípios éticos deles? Como eles estão "incentivando" os membros a seguir o código? + +### 2. Checklists de Éticas + +Enquanto códigos profissionais definem _comportamentos ético_ requiridos de seus praticantes, eles [tem limitações conhecidas](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) na execução, particularmente em projetos de larga escala. Ao invés disso, muitos experts em Ciência de Dados [defendem as checklists](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), que podem **conectar princípios a práticas** de maneiras para determinísticas e acionáveis. + +Checklists convertem as questões em tarefas de "sim/não" que podem ser operacionalizadas, permitindo eles serem rastreados como parte dos fluxos de trabalho de liberação de produtos padrão. + +Exemplos incluem: + * [Deon](https://deon.drivendata.org/) - uma checklist de propósito gerak criado a partir de [recomendações da insústria](https://deon.drivendata.org/#checklist-citations) com uma ferramenta de linha de comando para fácil integração. + * [Privacy Audit Checklist](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - fornece orientação geral para práticas de manipulação de informação a partir de perspectivas de exposição legal e social. + * [AI Fairness Checklist](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - criado por praticantes de IA para apoiar a adoção e integração de verificações de justiça dentro dos ciclos de desenvolvimento de IA. + * [22 questions for ethics in data and AI](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - estrutura mais aberto-fechado, estrturado para exploração inicial de problemas éticos em contextos de design, implementação, e organizacional. + +### 3. Regulações Éticas + +Ética é sobre definir valores compartilhados e fazer a coisa certa _voluntariamente_. **Compliance (Conformidade)** é sobre _seguir a lei_ se e onde definida. **Governância** abrange amplamente todos as formas de como as organizações operam para garantir princípios éticos e cumprir as leis estabelecidas. + +Hoje, governância assume duas formas dentro das organizações. Primeira, é sobre definir princípios de **IA ética** e estabelecer práticas para operacionalizar a adoção em todos os projetos de IA na organização. Segundo, trata-se de cumprir com todos os **regulamentos de proteção de dados** para as regiões em que operam. + +Exemplos de proteção de dados e regulamentos de privacidade: + + * `1974`, [US Privacy Act](https://www.justice.gov/opcl/privacy-act-1974) - regula a coleta, o uso, e divulgação de informações pessoais por parte do _governo federal_. + * `1996`, [US Health Insurance Portability & Accountability Act (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - protege dados de sáude pessoais. + * `1998`, [US Children's Online Privacy Protection Act (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - protege a privacidade de dados de crianças menores de 13 anos de idade. + * `2018`, [General Data Protection Regulation (GDPR)](https://gdpr-info.eu/) - fornece direitos aos usuário, proteção de dados, e privacidade. + * `2018`, [California Consumer Privacy Act (CCPA)](https://www.oag.ca.gov/privacy/ccpa) dá aos consumidores mais _direitos_ sobre seus dados (pessoais). + * `2021`, [A Lei de Proteção de Informação Pessoal](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) da China acabou de ser passado, criando uma das regulações de privacidade de dados online mais forte do mundo. + +> 🚨 A GDPR (General Data Protection Regulation) da União Europia continua sendo umas das regulações de privacidade de dados mais influentes hoje em dia. Você sabia que a mesma também define [8 direitos dos usuário](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) para proteger a privacidade dos cidadãos e dados pessoais? Saiba mais sobre o que são e porque eles importam. + + +### 4. Cultura Ética + +Note que existe uma lacuna intangível entre _compliance_ (fazer o suficiente para cumprir a "a carta da lei") e abordar [problemas sistêmicos](https://www.coursera.org/learn/data-science-ethics/home/week/4) (como ossificação, assimetria informacional, e injustiça distribucional) que podem acelerar o uso da IA como uma arma. + +Este último requere [abordagens colaborativas para definir culturas éticas](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) que constrói conexões emocionais e valores compartilhados consistentes _em todas as organizações_ na indústria. Isso requere mais [culturas de ética de dados formalizadas](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) nas organizações - permitindo _qualquer um_ a [puxar o cordão Andom](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (para aumentar as preocupações éticas mais cedo no processo) e fazendo _avaliações éticas_ (ex. na contratação) um critério fundamental na formação de times em projetos de IA. + +--- +## [Quiz pós aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/3) 🎯 +## Revisão e Autoestudo + +Cursos e livros ajudam a entender os conceitos essencias da ética, enquanto estudos de caso e ferramentas ajudam com práticas da ética aplicado em contextos do mundo real. Aqui estão alguns recursos para começar. + +* [Machine Learning For Beginners](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - aula sobre Justiça, da Microsoft. +* [Principles of Responsible AI](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - programa de aprendizado gratuito da Microsoft Learn. +* [Ethics and Data Science](https://resources.oreilly.com/examples/0636920203964) - O'Reilly EBook (M. Loukides, H. Mason et. al) +* [Data Science Ethics](https://www.coursera.org/learn/data-science-ethics#syllabus) - curso online da Universidade de Michigan. +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - estudos de caso da Universidade do Texas. + +# Tarefa + +[Escreva um Caso de Uso de Ética de Dados](assignment.md) From 27898fa02ffa2479953ada0d367509a1ac0be629 Mon Sep 17 00:00:00 2001 From: Izael Date: Mon, 11 Oct 2021 12:00:53 -0300 Subject: [PATCH 022/234] Translated Introduction -> Defining Data to PT-BR --- .../translations/README.pt-br.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 1-Introduction/03-defining-data/translations/README.pt-br.md diff --git a/1-Introduction/03-defining-data/translations/README.pt-br.md b/1-Introduction/03-defining-data/translations/README.pt-br.md new file mode 100644 index 00000000..f76deed3 --- /dev/null +++ b/1-Introduction/03-defining-data/translations/README.pt-br.md @@ -0,0 +1,67 @@ +# Definindo Dados + +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/03-DefiningData.png)| +|:---:| +|Definindo Dados - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + +Dados são fatos, informações, observações e medidas que são usadas para fazer descobertas e apoiar decisões informadas. Um ponto de dado é uma unidade única dentro de um dataset, que é uma coleção de pontos de dados. Datasets podem vir em diferentes formatos e estruturas, e normalmente será baseado em sua fonte, ou de onde os dados vieram. Por exemplo, os ganhos mensais de uma empresa podem estar em uma planilha mas a frequência cardíaca (por hora) de um smartwatch pode estar em formato [JSON](https://stackoverflow.com/a/383699). É comum para cientistas de dados terem que trabalhar com diferentes tupos de dados em um dataset. + +Essa aula irá focar em identificar e classificar dados baseados em sua características e fontes. + +## [Quiz Pré Aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) +## Como Dados são Descritos +**Dados Brutos (Raw data)** são dados que vieram em seu estado inicial de sua fonte e não foram analisados ou organizados. Para entender o que está acontecendo com um conjunto de dados, é necessário organizar os dados em uma formato que possa ser entendido pelos humanos e também pela tecnologia que pode ser usada para analisar os mesmos. A estrutura do dataset descreve como estão organizados e pode ser classificada em estruturada, não estruturada e semi estruturada. Esses tipos de estruturas irão variar, dependendo da fonte mas irão ultimamente se encaixar nessas categorias. + +### Dados Qualitativos +Dados qualitativos, também conhecidos como dados categóricos são dados que não podem ser medidos objetivamente como observações de dados quantitativos. São geralmente vários formatos de dados subjetivos que coletam a qualidade de algo, como um produto ou processo. Algumas vezes, dados qualitativos são numéricos e tipicamente não seriam usados matematicamente, como números de telefones e marcas de tempo. Alguns exemplos de dados qualitativos são: comentários de vídeos, a marca e modelo de um carro e a cor favorita do seu melhor amigo. Dados qualitativos podem ser usados para entender quais produtos os consumidores mais gostam ou identificar palavras-chaves populares em cúrriculos para aplicação em uma vaga de trabalho. + +### Dados Estruturados +Dados estruturados são dados que estão organizados em linhas e colunas, onde cada linha tem a mesma quantidade de colunas. Colunas representam um valor de um tipo particular e são identificadas com um nome descrevendo o que aquele valor representa, enquanto cada linha contém o valor. Colunas geralmente vão possuir um conjunto específico de regras e restrições nesses valores, para garantir que os valores representam precisamente a coluna. Por exemplo, imagine uma planilha de clientes onde cada linha deve ter um número de telefone e o mesmo nunca pode conter caractéres alfabéticos. Podem existir regras aplicadas na coluna do número de telefone para garantir que nunca esteja vazio e contenha apenas números. + +Um benefício de dados estruturados é que podem ser organizados de uma forma que pode ser relacionada a um outro dado estruturado. No entanto, devido ao fato dos dados serem feitos para serem organizados de uma forma específica, fazer mudanças na estrutura em geral pode requerer muito esforço. Por exemplo, adicionar uma coluna de email na planilha de clientes que não pode ser vazia, significa que você terá que decidir como você irá adicionar os valores nas linhas já existentes no dataset. + +Exemplos de dados estruturados: planilhas/spreadsheets, bancos de dados relacionais, números de telefone, extratos bancários + +### Dados Não Estruturados +Dados não estruturados tipicamente não podem ser categorizado em linhas e colunas e não possuem um formato ou um conjunto de regras a ser seguido. Devido ao fato de dados não estruturados possuirem menos restrições na sua estrutura é mais fácil adicionar novas informações quando comparados com um dataset estruturado. Se um sensor que coleta dados de pressão bariométrica a cada 2 minutos recebeu uma atualização que agora permite que o mesmo meça e grave a temperatura, não é preciso alterar os dados já existentes se eles são não estruturados. No entanto, isso pode fazer com que a análise ou investigação desses dados leve mais tempo. Por exemplo, um cientista que quer descobrir a temperatura média do mês passado a partir dos dados do sensor, mas descobre que o sensor gravou um "e" em alguns dados gravados indicando que estava quebrado ao invés de um número típico, o que significa que os dados estão incompletos. + +Exemplos de dados não estruturados: arquivos de texto, mensagens de texto, arquivo de vídeo + +### Dados Semi Estruturados +Dados semi estruturados possui recursos que o fazem ser uma combinação de dados estruturados e não estruturados. Tipicamente não está em conformidade com linhas e colunas mas estão organizados de uma forma que são considerados estruturados e podem seguir um formato fizo ou um conjunto de regras. A estrutura pode variar entre as fontes, desde uma hierarquia bem definida até algo mais flexível que permite uma fácil integração de novas informação. Metadados são indicadores que ajudam a decidir como os dados são organizados e armazenados e terão vários nomes, baseado no tipo de dado. Alguns nomes comuns para metadados são tags, elementos, entidades e atributos. Por exemplo, uma mensaem de email típica terá um assunto, corpo e um conjunto de recipientes e podem ser organizados por quem ou quando foi mandado. + +Exemplos de dados não estruturados: HTML, arquivos CSV, JavaScript Object Notation (JSON) + +## Fontes de Dados + +Uma fonte de dados é o local inicial onde os dados foram gerados, ou onde "vivem" e irá variar com base em como e quando foram coletados. Dados gerados por seus usuários são conhecidos como dados primários enquanto dados secundários vem de uma fonte que coletou os dados para uso geral. Por exemplo, um grupo de cientistas fazendo observações em uma floresta tropical seriam considerados dados primários e se eles decidirem compartilhar com outros cientistas seriam considerados dados secundários para aqueles que usarem. + +Banco de dados são fontes comuns e dependem de um sistema de gerenciamente de banco de dados para hospedar e manter os dados onde usuários usam comandos chamados de "queries" para explorar os dados. Arquivos como fonte de dados podem ser aúdio, imagens, e arquivos de vídeo assim como planilhas como o Excel. Fontes da internet são lugares comuns para hospedar dados, onde banco de dados e arquivos podem ser encontrados. Application programming interfaces, ou APIs, permitem programadores a criarem formas de compartilhar dados com usuários externos através da interet, enquanto processos de "web scraping" extrai dados de uma página da web. As [tarefas em Trabalhando com Dados](/2-Working-With) focam em como usar várias fontes de dados. + +## Conclusão + +Nessa aula nós aprendemos: + +- O que são dados +- Como dados são descritos +- Como dados são classificados e categorizados +- Onde os dados podem ser encontrados + +## 🚀 Desafio + +O Kaggle é uma excelente fonte para datasets abertos. Use a [ferramenta de busca de dataset](https://www.kaggle.com/datasets) para encontrar alguns datasets interessantes e classificar de três a cinco datasets com esses critérios: + +- Os dados são quantitativos ou qualitativos? +- Os dados são estruturados, não estruturados, ou semi estruturados? + +## [Quiz Pós Aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) + + + +## Revisão e Auto Estudo + +- Essa unidade do Microsoft Lean, entitulada [Classifique seus Dados (Classify your Data)](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) tem uma análise detalhada de dados estruturados, semi estruturados, e não estruturados. + +## Tarefa + +[Classificando Datasets](assignment.md) From f111820331016bd613d680c365f61c9b0fdc8401 Mon Sep 17 00:00:00 2001 From: Kaushal Joshi <53049546+joshi-kaushal@users.noreply.github.com> Date: Tue, 12 Oct 2021 18:24:32 +0530 Subject: [PATCH 023/234] Updared README.hi.md - 3 --- .../translations/README.hi.md | 61 ++++++++++++++++--- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/1-Introduction/03-defining-data/translations/README.hi.md b/1-Introduction/03-defining-data/translations/README.hi.md index 49c16833..e4f41811 100644 --- a/1-Introduction/03-defining-data/translations/README.hi.md +++ b/1-Introduction/03-defining-data/translations/README.hi.md @@ -1,22 +1,69 @@ # डेटा का अवलोकन -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs।dev) ](../../../sketchnotes/03-DefiningData.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/03-DefiningData.png)| |:---:| -|Defining Data - _Sketchnote by [@nitya](https://twitter।com/nitya)_ | +|डेटा का अवलोकन - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | डेटा मतलब तथ्य, माहिती और अनुभव है जिनका इस्तमाल करके नए खोज और सूचित निर्णयोंका समर्थन किया जाता है। -डेटा पॉइंट यह डेटासेट का सबसे छोटा प्रमाण है। डेटासेट यह एक डेटा पॉइंट्स का बड़ा संग्रह होता है। डेटासेट बोहोत सारे अलगअलग प्रकार और स्ट्रक्चर का होता है, और बोहोत बार किसी स्त्रोतपे आधारित होता है। उदाहरण के लिए, किसी कम्पनी की कमाई स्प्रेडशीट मैं सेव्ह की हो सकती है मगर प्रति घंटे के दिल की धकड़न की गति [JSON](https://stackoverflow।com/questions/383692/what-is-json-and-what-is-it-used-for/383699#383699) रूप मैं हो सकती है। डेटा वैज्ञानिकोकेलिए अलग अलग प्रकार के डेटा और डेटासेट के साथ काम करना आम बात होती है। +डेटा पॉइंट यह डेटासेट का सबसे छोटा प्रमाण है। डेटासेट यह एक डेटा पॉइंट्स का बड़ा संग्रह होता है। डेटासेट बोहोत सारे अलगअलग प्रकार और संरचनाका होता है, और बोहोत बार किसी स्त्रोतपे आधारित होता है। उदाहरण के लिए, किसी कम्पनी की कमाई स्प्रेडशीट मैं जतन की हो सकती है मगर प्रति घंटे के दिल की धकड़न की गति [JSON](https://stackoverflow।com/questions/383692/what-is-json-and-what-is-it-used-for/383699#383699) रूप मैं हो सकती है। डेटा वैज्ञानिकोकेलिए अलग अलग प्रकार के डेटा और डेटासेट के साथ काम करना आम बात होती है। यह पाठ डेटा को उसके स्त्रोत के हिसाब से पहचानने और वर्गीकृत करने पे केंद्रित है। ## [पाठ के पाहिले की परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) ## डेटा का वर्णन कैसे किया जाता है -**अपक्व डेटा** ऐसे प्रकार का डेटा होता जो उसके स्त्रोत से आते वक्त जिस अवस्था मैं था वैसे ही है और उसका विश्लेषण या वर्गीकरण नहीं किया गया है। ऐसे डेटासेट से जरूरी जानकारी निकलने के लिए उसे ऐसे प्रकार मे लाना आवश्यक है जो इंसान समज सके और जिस टैकनोलजीका उपयोग डेटा के विश्लेषण मे किया जाएगा उसको भी समज आये। डेटाबेस का स्ट्रक्चर हमे बताती है की डेटा किस प्रकार से वर्गीकृत किया गया है और उसका वर्गीकरण कैसे किया जाता है। डेटा का वर्गीकरण संरचित, मिश्र संरचित और असंरचित प्रकार मै किया जा सकता है। संरचना के प्रकार डेटा के स्त्रोत के अनुसार बदल सकते है मगर आखिर मै इन तीनो मैं से एक प्रकार के हो सकते है। +**अपक्व डेटा** ऐसे प्रकार का डेटा होता जो उसके स्त्रोत से आते वक्त जिस अवस्था मैं था वैसे ही है और उसका विश्लेषण या वर्गीकरण नहीं किया गया है। ऐसे डेटासेट से जरूरी जानकारी निकलने के लिए उसे ऐसे प्रकार मे लाना आवश्यक है जो इंसान समज सके और जिस टैकनोलजीका उपयोग डेटा के विश्लेषण मे किया जाएगा उसको भी समज आये। डेटाबेसकी संरचना हमे बताती है की डेटा किस प्रकार से वर्गीकृत किया गया है और उसका संरचित, मिश्र संरचित और असंरचित प्रकार मै वर्गीकरण कैसे किया जाता है। संरचना के प्रकार डेटा के स्त्रोत के अनुसार बदल सकते है मगर आखिर मै इन तीनो मैं से एक प्रकार के हो सकते है। ### परिमाणात्मक डेटा -परिमाणात्मक डेटा मतलब डेटासेट मे उपलब्ध होने वाला ऐसा संख्यात्मक डेटा जिसका इस्तमाल विश्लेषण,मापन और गणितीय चीजोंकेलिए हो सकता है। परिमाणात्मक डेटा के यह कुछ उदाहरण है: देश की जनसंख्या, इंसान की ऊंचाई या कंपनी की तिमाही कमाई। थोड़े अधिक विश्लेषण के बाद परिणामात्मक डेटा से मौसम के अनुसार वायु गुणवत्ता सूचकांक(Air Quality Index) के बदलाव पता करना या फिर किसी सामान्य कार्यदिवस पर भीड़भाड़ वाले घंटे के ट्रैफिक की संभावना का अनुमान लगना मुमकिन है +परिमाणात्मक डेटा मतलब डेटासेट मे उपलब्ध होने वाला ऐसा संख्यात्मक डेटा जिसका इस्तमाल विश्लेषण,मापन और गणितीय चीजोंकेलिए हो सकता है। परिमाणात्मक डेटा के यह कुछ उदाहरण है: देश की जनसंख्या, इंसान की ऊंचाई या कंपनी की तिमाही कमाई। थोड़े अधिक विश्लेषण के बाद परिणामात्मक डेटा से मौसम के अनुसार वायु गुणवत्ता सूचकांक(Air Quality Index) के बदलाव पता करना या फिर किसी सामान्य कार्यदिवस पर भीड़भाड़ वाले घंटे के ट्रैफिक की संभावना का अनुमान लगना मुमकिन है. ### गुणात्मक डेटा -गुणात्मक डेटा, जिसे वर्गीकृत देता भी कहा जाता है, यह एक डेटा का ऐसा प्रकार है जिसे परिमाणात्मक डेटा की तरह वस्तुनिष्ठ तरहसे मापा नहीं जा सकता। यह आम तौर पर अलग अलग प्रकार का आत्मनिष्ठ डेटा होता है जिस से किसी उत्पादन या प्रक्रिया की गुणवत्ता। कभी कभार गुणात्मक डेटा सांखिक स्वरुपमैं होके भी गणितीय कारणों के लिए इस्तमल नहीं किया जा सकता, जैसे की फोन नंबर या समय। -गुणात्मक डेटा के यह कुछ उदाहरण हो सकते है: विडिओकी टिप्पणियाँ, आपके करीबी दोस्त के गाड़ी के पसंदिता रंग का नमूना बनाना। गुणात्मक डेटा का इस्तमाल करके ग्राहकोंको कोनसा उत्पादन सबसे ज्यादा पसंद आ रहा है या फिर नौकरी आवेदन के रिज्यूमे मैं सबसे ज्यादा इस्तमाल होने वाले शब्द ढूंढ़ना। +गुणात्मक डेटा, जिसे वर्गीकृत डेटा भी कहा जाता है, यह एक डेटा का ऐसा प्रकार है जिसे परिमाणात्मक डेटा की तरह वस्तुनिष्ठ तरहसे नापा नहीं जा सकता। यह आम तौर पर अलग अलग प्रकार का आत्मनिष्ठ डेटा होता है जिस से किसी उत्पादन या प्रक्रिया की गुणवत्ता। कभी कभार गुणात्मक डेटा सांखिक स्वरुपमैं होके भी गणितीय कारणों के लिए इस्तमल नहीं किया जा सकता, जैसे की फोन नंबर या समय। गुणात्मक डेटा के यह कुछ उदाहरण हो सकते है: विडिओकी टिप्पणियाँ, आपके करीबी दोस्त के गाड़ी के पसंदिता रंग का नमूना बनाना। गुणात्मक डेटा का इस्तमाल करके ग्राहकोंको कोनसा उत्पादन सबसे ज्यादा पसंद आ रहा है या फिर नौकरी आवेदन के रिज्यूमे मैं सबसे ज्यादा इस्तमाल होने वाले शब्द ढूंढ़ना। + +### संरचित डेटा +संरचित डेटा वह डेटा है जो पंक्तियों और स्तंभों में संगठित होता है, जिसके हर पंक्तिमे समान स्तंभ होते है. हर स्तंभ एक विशिष्ट प्रकार के मूल्य को बताता है और उस मूल्यको दर्शाने वाले अनाम के साथ जाना जाता है. जबकी पंक्तियाँ मे वास्तविक मूल्य होते है। हर मूल्य सही स्तम्भ का प्रतिनिधित्व करते है की नहीं ये निश्चित करने के लिए स्तंभमे अक्सर मूल्यों पर नियमोंका प्रतिबन्ध लगा रहता है. उदाहरणार्थ कल्पना कीजिये ग्राहकोंकी जानकारी होने वाला एक स्प्रेडशीट फ़ाइल जीके हर पंक्तिमे फोन क्रमांक होना जरुरी है और फोन क्रमांकमे कभीभी वर्ण या व्यंजन नहीं रहते। तो फिर फोन क्रमांक के स्तंभ पर ऐसा नियम लगा होना चाहिए जिससे ये निश्चित हो की बह कभीभी खाली नहीं है और उसमें सिर्फ आकड़े ही है. + +सरंचित डेटा का यह फायदा है की उसे स्तंभ और पंक्तियोंमे वर्गीकृत किया जा सकता है. तथापि, डेटा को एक विशिष्ट प्रकार मै वर्गीकृत करने के लिए आयोजित किये जाने के बजह से पुरे संरचना मे बदल करना बोहोत मुश्किल का काम होता है. जैसे की ग्राहकोंके जानकारी वाले स्प्रेडशीट फ़ाइलमे अगर हमें ईमेल आयडी खाली ना होने वाला नया स्तंभ जोड़ना हो तो हमे ये पता करना होगा की पहिलेसे जो मूल्य इस डेटासेट मे है उनका क्या होगा. + +संरचित डेटा के यह कुछ उदाहरण है: स्प्रेडशीट, रिलेशनल डेटाबेस, फोन नंबर, बैंक स्टेटमेंट + +### असंरचित डेटा +असंरचित डेटा आम तौर पर स्तंभ और पांक्तोयोंमे वर्गीकृत नहीं किया जा सकता और किसी नियमोंसे बंधित भी नहीं रहता। संरचित डेटा के तुलना से असंरचित डेटा मैं कम नियम होने के कारण उसमे नया डेटा डालना बोहोत आसान होता है। अगर कोही सेंसर जो तापमानमापक के प्रेशर का दबाव हर दो मिनिट बाद दर्ज करता है, जिसके बजह से वह तापमान को मापके दर्ज कर सकता है, तो उसे असंरचित डेटा होने के कारण डेटाबेसमे पहिलेसे होने वाले डेटा को बदलने की आवश्यकता नहीं है। तथापि, ऐसे डेटा का विश्लेषण और जांच करने को ज्यादा समय लग सकता है। +जैसे की, एक वैज्ञानिक जिसे सेंसर के डेटा से पिछले महीने के तापमान का औसत ढूंढ़ना हो, मगर वो देखता है की सेंसर ने कुछ जगह आधेअधूरे डेटा को दर्ज करने के लिए आम क्रमांक के बजाय 'e' दर्ज किया है, जिसका मतलब है की डेटा अधूरा है। +असंरचित डेटा के उदाहरण: टेक्स्ट फ़ाइलें, टेक्स्ट मेसेजेस, विडिओ फ़ाइलें। + +### मिश्र संरचित डेटा + +मिश्र संरचित डेटा के ऐसे कुछ गन है जिसके बजह से उसे संरचित और असंरचित डेटा का मिश्रण कहा जा सकता है. वह हमेशा स्तंभ और पंक्तियोंके अनुरूप नहीं रहता मगर ऐसे तरह संयोजित किया गया होता है की उसे संरचित कहा जा सकता है और शायद किसी ठराविक नियमोंका पालन भी कर है। डेटा की संरचना उसके स्त्रोत के ऊपर निर्भर होती है जैसे की स्पष्ट अनुक्रम या फिर थोडा लचीला जिसमे नया डेटा जोड़ना आसान हो. मेटाडाटा ऐसे संकेतक होते है जिनसे डेटा का संयोजन और संग्रहीत करने मे सहायता होती है, और उन्हें डेटा के प्रकार के अनुरूप नाम भी दिए जा सकते है. मेटाडेटाके आम उदाहरण है: टैग्स, एलिमेंट्स, एंटिटीज और एट्रीब्यूट्स. उदाहरणार्थ: एक सामान्य ईमेल को उसका विषय, मायना, और प्राप्तकर्ताओंकी सूची होगी और किसको कब भेजना है उसके हिसाब से संयोजित किया जा सकता है। + +मिश्र संरचित डेटा के उदाहरण: एचटीएमएल, सीइसव्ही फाइलें, जेसन(JSON) + +### डेटा के स्त्रोत + +डेटा का स्त्रोत मतलब मतलब वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुवा था, और हमेशा कहा और कब जमा किया था इसके ऊपर आधारित रहेगा। उपयोगकर्ताके द्वारा निर्माण किये हुवे डेटा को प्रार्थमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य काम के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावनमे टिप्पणियों और सूचि कमा कर रहे है तो वोप्रार्थमिक डेटा होगा और अगर उन्होंने उस डेटा को बाकि के वैज्ञनिकोके साथ बाँटना चाहा तो वो गौण डेटा कहलाया जायेगा। + +## डेटा के स्त्रोत + +डेटा का स्त्रोत मतलब मतलब वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुवा था, और हमेशा कहा और कब जमा किया था इसके ऊपर आधारित रहेगा। उपयोगकर्ताके द्वारा निर्माण किये हुवे डेटा को प्रार्थमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य काम के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावनमे टिप्पणियों और सूचि कमा कर रहे है तो वोप्रार्थमिक डेटा होगा और अगर उन्होंने उस डेटा को बाकि के वैज्ञनिकोके साथ बाँटना चाहा तो वो गौण डेटा कहलाया जायेगा। + +डेटाबेस यह एक सामान्य स्त्रोत है और वह होस्टिंग और डेटाबेस मेंटेनन्स सिस्टिम निर्भर होता है। डेटाबेस मेंटेनन्स सिस्टिममे उपयोगकर्ता कमांड्स जिन्हें क्वेरीज़ कहा जाता है इस्तमाल करके डेटाबेस का डेटा खोज सकते है. डेटा स्त्रोत फ़ाइल स्वरुप मे हो तो आवाज, चित्र, वीडियो, स्प्रेडशीट ऐसे प्रकार मे हो सकता है। आंतरजाल के स्त्रोत डेटा होस्ट करने के बोहोत आम तरीका है। यहां डेटाबेस तथा फाइलें खोजी जा सकती है। अप्लीकेशन प्रोगरामिंग इंटरफेस, जिन्हे 'एपीआय'(API) के नाम से जाना जाता है, उसकी मद्त से प्रोग्रामर्स डेटाको बहार के उपयोगकर्ताओको आंतरजाल द्वारा इस्तमाल करने के लिए भेज सकते है. जबकि वेब स्क्रैपिंग नामक प्रक्रियासे आंतरजाल के वेब पेज का डेटा अलग किया जा सकता है. [डेटा के साथ काम करना](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data) यह पथ अलग अलग डेटा का इस्तमाल करनेपर ध्यान देता है.. + +## निष्कर्ष +यह पथ मे हमने पढ़ा की: +- डेटा क्या होता है +- डेटा का वर्णन कैसे किया जाता है +- डेटा का वर्गीकरण कैसे किया जाता है +- डेटा कहा मिलता है + +## 🚀 चुनौती +Kaggle यह के मुफ्त के डेटाबेस का बोहोत अच्छा स्त्रोत है. [सर्च टूल ](https://www.kaggle.com/datasets) का इस्तमाल करके कुछ मजेदार डेटासेट ढूंढे और उनमेसे तीन-चार डेटाबेस का ऐसे वर्गीकरण कीजिए: +- डेटा परिमाणात्मक है या गुणात्मक? +- डेटा संरचित, असंरचित या फिर मिश्र संरचित है? + +## [पाठ के बाद वाली परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) + +## समीक्षा और स्वअध्ययन +- माइक्रोसॉफ्ट लर्न का [Classify your data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) पाठ संरचित, असंरचित और मिश्र संरचित डेटा के बारे मे और अच्छेसे बताता है। + +## अभ्यास +[डेटा का वर्गीकरण](../assignment.md) From 9f8b29749a2320db81c215116e837d41a6905030 Mon Sep 17 00:00:00 2001 From: Kaushal Joshi <53049546+joshi-kaushal@users.noreply.github.com> Date: Tue, 12 Oct 2021 18:27:45 +0530 Subject: [PATCH 024/234] Updated README.hi.md - 4 --- 1-Introduction/03-defining-data/translations/README.hi.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/1-Introduction/03-defining-data/translations/README.hi.md b/1-Introduction/03-defining-data/translations/README.hi.md index e4f41811..34f3f0e8 100644 --- a/1-Introduction/03-defining-data/translations/README.hi.md +++ b/1-Introduction/03-defining-data/translations/README.hi.md @@ -5,7 +5,7 @@ डेटा मतलब तथ्य, माहिती और अनुभव है जिनका इस्तमाल करके नए खोज और सूचित निर्णयोंका समर्थन किया जाता है। -डेटा पॉइंट यह डेटासेट का सबसे छोटा प्रमाण है। डेटासेट यह एक डेटा पॉइंट्स का बड़ा संग्रह होता है। डेटासेट बोहोत सारे अलगअलग प्रकार और संरचनाका होता है, और बोहोत बार किसी स्त्रोतपे आधारित होता है। उदाहरण के लिए, किसी कम्पनी की कमाई स्प्रेडशीट मैं जतन की हो सकती है मगर प्रति घंटे के दिल की धकड़न की गति [JSON](https://stackoverflow।com/questions/383692/what-is-json-and-what-is-it-used-for/383699#383699) रूप मैं हो सकती है। डेटा वैज्ञानिकोकेलिए अलग अलग प्रकार के डेटा और डेटासेट के साथ काम करना आम बात होती है। +डेटा पॉइंट यह डेटासेट का सबसे छोटा प्रमाण है। डेटासेट यह एक डेटा पॉइंट्स का बड़ा संग्रह होता है। डेटासेट बोहोत सारे अलगअलग प्रकार और संरचनाका होता है, और बोहोत बार किसी स्त्रोतपे आधारित होता है। उदाहरण के लिए, किसी कम्पनी की कमाई स्प्रेडशीट मैं जतन की हो सकती है मगर प्रति घंटे के दिल की धकड़न की गति [JSON](https://stackoverflow.com/questions/383692/what-is-json-and-what-is-it-used-for/383699#383699) रूप मैं हो सकती है। डेटा वैज्ञानिकोकेलिए अलग अलग प्रकार के डेटा और डेटासेट के साथ काम करना आम बात होती है। यह पाठ डेटा को उसके स्त्रोत के हिसाब से पहचानने और वर्गीकृत करने पे केंद्रित है। @@ -43,11 +43,9 @@ डेटा का स्त्रोत मतलब मतलब वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुवा था, और हमेशा कहा और कब जमा किया था इसके ऊपर आधारित रहेगा। उपयोगकर्ताके द्वारा निर्माण किये हुवे डेटा को प्रार्थमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य काम के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावनमे टिप्पणियों और सूचि कमा कर रहे है तो वोप्रार्थमिक डेटा होगा और अगर उन्होंने उस डेटा को बाकि के वैज्ञनिकोके साथ बाँटना चाहा तो वो गौण डेटा कहलाया जायेगा। ## डेटा के स्त्रोत - डेटा का स्त्रोत मतलब मतलब वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुवा था, और हमेशा कहा और कब जमा किया था इसके ऊपर आधारित रहेगा। उपयोगकर्ताके द्वारा निर्माण किये हुवे डेटा को प्रार्थमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य काम के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावनमे टिप्पणियों और सूचि कमा कर रहे है तो वोप्रार्थमिक डेटा होगा और अगर उन्होंने उस डेटा को बाकि के वैज्ञनिकोके साथ बाँटना चाहा तो वो गौण डेटा कहलाया जायेगा। -डेटाबेस यह एक सामान्य स्त्रोत है और वह होस्टिंग और डेटाबेस मेंटेनन्स सिस्टिम निर्भर होता है। डेटाबेस मेंटेनन्स सिस्टिममे उपयोगकर्ता कमांड्स जिन्हें क्वेरीज़ कहा जाता है इस्तमाल करके डेटाबेस का डेटा खोज सकते है. डेटा स्त्रोत फ़ाइल स्वरुप मे हो तो आवाज, चित्र, वीडियो, स्प्रेडशीट ऐसे प्रकार मे हो सकता है। आंतरजाल के स्त्रोत डेटा होस्ट करने के बोहोत आम तरीका है। यहां डेटाबेस तथा फाइलें खोजी जा सकती है। अप्लीकेशन प्रोगरामिंग इंटरफेस, जिन्हे 'एपीआय'(API) के नाम से जाना जाता है, उसकी मद्त से प्रोग्रामर्स डेटाको बहार के उपयोगकर्ताओको आंतरजाल द्वारा इस्तमाल करने के लिए भेज सकते है. जबकि वेब स्क्रैपिंग नामक प्रक्रियासे आंतरजाल के वेब पेज का डेटा अलग किया जा सकता है. [डेटा के साथ काम करना](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data) यह पथ अलग अलग डेटा का इस्तमाल करनेपर ध्यान देता है.. - +डेटाबेस यह एक सामान्य स्त्रोत है और वह होस्टिंग और डेटाबेस मेंटेनन्स सिस्टिम निर्भर होता है। डेटाबेस मेंटेनन्स सिस्टिममे उपयोगकर्ता कमांड्स जिन्हें क्वेरीज़ कहा जाता है इस्तमाल करके डेटाबेस का डेटा खोज सकते है। डेटा स्त्रोत फ़ाइल स्वरुप मे हो तो आवाज, चित्र, वीडियो, स्प्रेडशीट ऐसे प्रकार मे हो सकता है। आंतरजाल के स्त्रोत डेटा होस्ट करने के बोहोत आम तरीका है। यहां डेटाबेस तथा फाइलें खोजी जा सकती है।अप्लीकेशन प्रोगरामिंग इंटरफेस, जिन्हे 'एपीआय'(API) के नाम से जाना जाता है, उसकी मद्त से प्रोग्रामर्स डेटाको बहार के उपयोगकर्ताओको आंतरजाल द्वारा इस्तमाल करने के लिए भेज सकते है। जबकि वेब स्क्रैपिंग नामक प्रक्रियासे आंतरजाल के वेब पेज का डेटा अलग किया जा सकता है। [डेटा के साथ काम करना](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data) यह पथ अलग अलग डेटा का इस्तमाल करनेपर ध्यान देता है। ## निष्कर्ष यह पथ मे हमने पढ़ा की: - डेटा क्या होता है @@ -56,7 +54,7 @@ - डेटा कहा मिलता है ## 🚀 चुनौती -Kaggle यह के मुफ्त के डेटाबेस का बोहोत अच्छा स्त्रोत है. [सर्च टूल ](https://www.kaggle.com/datasets) का इस्तमाल करके कुछ मजेदार डेटासेट ढूंढे और उनमेसे तीन-चार डेटाबेस का ऐसे वर्गीकरण कीजिए: +Kaggle यह के मुफ्त के डेटाबेस का बोहोत अच्छा स्त्रोत है। [सर्च टूल ](https://www.kaggle.com/datasets) का इस्तमाल करके कुछ मजेदार डेटासेट ढूंढे और उनमेसे तीन-चार डेटाबेस का ऐसे वर्गीकरण कीजिए: - डेटा परिमाणात्मक है या गुणात्मक? - डेटा संरचित, असंरचित या फिर मिश्र संरचित है? From 1858ea407d55d5174a949adbcd93b9c7a0d97de8 Mon Sep 17 00:00:00 2001 From: Kaushal Joshi <53049546+joshi-kaushal@users.noreply.github.com> Date: Wed, 13 Oct 2021 00:54:24 +0530 Subject: [PATCH 025/234] README.hi.md: Proof reading - 1 --- .../translations/README.hi.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/1-Introduction/03-defining-data/translations/README.hi.md b/1-Introduction/03-defining-data/translations/README.hi.md index 34f3f0e8..e21a638d 100644 --- a/1-Introduction/03-defining-data/translations/README.hi.md +++ b/1-Introduction/03-defining-data/translations/README.hi.md @@ -3,34 +3,34 @@ |:---:| |डेटा का अवलोकन - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | -डेटा मतलब तथ्य, माहिती और अनुभव है जिनका इस्तमाल करके नए खोज और सूचित निर्णयोंका समर्थन किया जाता है। +डेटा मतलब तथ्य, ज्ञान और अनुभव है जिनका इस्तेमाल करके नए खोज और सूचित निर्णयोंका समर्थन किया जाता है। -डेटा पॉइंट यह डेटासेट का सबसे छोटा प्रमाण है। डेटासेट यह एक डेटा पॉइंट्स का बड़ा संग्रह होता है। डेटासेट बोहोत सारे अलगअलग प्रकार और संरचनाका होता है, और बोहोत बार किसी स्त्रोतपे आधारित होता है। उदाहरण के लिए, किसी कम्पनी की कमाई स्प्रेडशीट मैं जतन की हो सकती है मगर प्रति घंटे के दिल की धकड़न की गति [JSON](https://stackoverflow.com/questions/383692/what-is-json-and-what-is-it-used-for/383699#383699) रूप मैं हो सकती है। डेटा वैज्ञानिकोकेलिए अलग अलग प्रकार के डेटा और डेटासेट के साथ काम करना आम बात होती है। +डेटा पॉइंट यह डेटासेट का सबसे छोटा प्रमाण है। डेटासेट यह एक डेटा पॉइंट्स का बड़ा संग्रह होता है। डेटासेट बहुत सारे अलगअलग प्रकार और संरचनाका होता है, और बहुत बार किसी स्त्रोत पे आधारित होता है। उदाहरण के लिए, किसी कम्पनी की कमाई स्प्रेडशीट मैं जतन की हो सकती है मगर प्रति घंटे के दिल की धकड़न की गति [JSON](https://stackoverflow.com/questions/383692/what-is-json-and-what-is-it-used-for/383699#383699) रूप मैं हो सकती है। डेटा वैज्ञानिकों केलिए अलग अलग प्रकार के डेटा और डेटासेट के साथ काम करना आम बात होती है। -यह पाठ डेटा को उसके स्त्रोत के हिसाब से पहचानने और वर्गीकृत करने पे केंद्रित है। +यह पाठ डेटा को उसके स्त्रोत के हिसाब से पहचानने और वर्गीकृत करने पर केंद्रित है। ## [पाठ के पाहिले की परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) ## डेटा का वर्णन कैसे किया जाता है -**अपक्व डेटा** ऐसे प्रकार का डेटा होता जो उसके स्त्रोत से आते वक्त जिस अवस्था मैं था वैसे ही है और उसका विश्लेषण या वर्गीकरण नहीं किया गया है। ऐसे डेटासेट से जरूरी जानकारी निकलने के लिए उसे ऐसे प्रकार मे लाना आवश्यक है जो इंसान समज सके और जिस टैकनोलजीका उपयोग डेटा के विश्लेषण मे किया जाएगा उसको भी समज आये। डेटाबेसकी संरचना हमे बताती है की डेटा किस प्रकार से वर्गीकृत किया गया है और उसका संरचित, मिश्र संरचित और असंरचित प्रकार मै वर्गीकरण कैसे किया जाता है। संरचना के प्रकार डेटा के स्त्रोत के अनुसार बदल सकते है मगर आखिर मै इन तीनो मैं से एक प्रकार के हो सकते है। +**अपरीपक्व डेटा** ऐसे प्रकार का डेटा होता जो उसके स्त्रोत से आते वक्त जिस अवस्था में था वैसे ही है और उसका विश्लेषण या वर्गीकरण नहीं किया गया है। ऐसे डेटासेट से जरूरी जानकारी निकलने के लिए उसे ऐसे प्रकार मे लाना आवश्यक है जो इंसान समझ सके और जिस तंत्रज्ञान का उपयोग डेटा के विश्लेषण में किया जाएगा उसको भी समझ आये। डेटाबेस की संरचना हमें बताती है कि डेटा किस प्रकार से वर्गीकृत किया गया है और उसका संरचित, मिश्र संरचित और असंरचित प्रकार में वर्गीकरण कैसे किया जाता है। संरचना के प्रकार डेटा के स्त्रोत के अनुसार बदल सकते हैं मगर आखिर में इन तीनों में से एक प्रकार के हो सकते हैं। ### परिमाणात्मक डेटा -परिमाणात्मक डेटा मतलब डेटासेट मे उपलब्ध होने वाला ऐसा संख्यात्मक डेटा जिसका इस्तमाल विश्लेषण,मापन और गणितीय चीजोंकेलिए हो सकता है। परिमाणात्मक डेटा के यह कुछ उदाहरण है: देश की जनसंख्या, इंसान की ऊंचाई या कंपनी की तिमाही कमाई। थोड़े अधिक विश्लेषण के बाद परिणामात्मक डेटा से मौसम के अनुसार वायु गुणवत्ता सूचकांक(Air Quality Index) के बदलाव पता करना या फिर किसी सामान्य कार्यदिवस पर भीड़भाड़ वाले घंटे के ट्रैफिक की संभावना का अनुमान लगना मुमकिन है. +परिमाणात्मक डेटा मतलब डेटासेट में उपलब्ध होने वाला ऐसा संख्यात्मक डेटा जिसका उपयोग विश्लेषण, मापन और गणितीय चीजों के लिए हो सकता है। परिमाणात्मक डेटा के यह कुछ उदाहरण हैं: देश की जनसंख्या, इंसान की कद या कंपनी की तिमाही कमाई। थोडे अधिक विश्लेषण बाद डेटा की परिस्थिति के अनुसार वायुगुणवत्ता सूचकांक का बदलाव पता करना या फिर किसी सामान्य दिन पर व्यस्त ट्रैफिक की संभावना का अनुमान लगाना मुमकिन है। ### गुणात्मक डेटा -गुणात्मक डेटा, जिसे वर्गीकृत डेटा भी कहा जाता है, यह एक डेटा का ऐसा प्रकार है जिसे परिमाणात्मक डेटा की तरह वस्तुनिष्ठ तरहसे नापा नहीं जा सकता। यह आम तौर पर अलग अलग प्रकार का आत्मनिष्ठ डेटा होता है जिस से किसी उत्पादन या प्रक्रिया की गुणवत्ता। कभी कभार गुणात्मक डेटा सांखिक स्वरुपमैं होके भी गणितीय कारणों के लिए इस्तमल नहीं किया जा सकता, जैसे की फोन नंबर या समय। गुणात्मक डेटा के यह कुछ उदाहरण हो सकते है: विडिओकी टिप्पणियाँ, आपके करीबी दोस्त के गाड़ी के पसंदिता रंग का नमूना बनाना। गुणात्मक डेटा का इस्तमाल करके ग्राहकोंको कोनसा उत्पादन सबसे ज्यादा पसंद आ रहा है या फिर नौकरी आवेदन के रिज्यूमे मैं सबसे ज्यादा इस्तमाल होने वाले शब्द ढूंढ़ना। +गुणात्मक डेटा, जिसे वर्गीकृत डेटा भी कहा जाता है, यह एक डेटा का ऐसा प्रकार है जिसे परिमाणात्मक डेटा की तरह वस्तुनिष्ठ तरह से नापा नहीं जा सकता। यह आम तौर पर अलग अलग प्रकार का आत्मनिष्ठ डेटा होता है जैसे से किसी उत्पादन या प्रक्रिया की गुणवत्ता। कभी कभी गुणात्मक डेटा सांख्यिक स्वरुप में हो के भी गणितीय कारणों के लिए इस्तेमाल नहीं किया जा सकता, जैसे की फोन नंबर या समय। गुणात्मक डेटा के यह कुछ उदाहरण हो सकते है: विडियो की टिप्पणियाँ, किसी गाड़ी का मॉडल या आपके प्रीय दोस्त का पसंदिदा रंग। गुणात्मक डेटा का इस्तेमाल करके ग्राहकौं को कोनसा उत्पादन सबसे ज्यादा पसंद आता है या फिर नौकरी आवेदन के रिज्यूमे में सबसे ज्यादा इस्तेमाल होने वाले शब्द ढूंढ़ना। ### संरचित डेटा -संरचित डेटा वह डेटा है जो पंक्तियों और स्तंभों में संगठित होता है, जिसके हर पंक्तिमे समान स्तंभ होते है. हर स्तंभ एक विशिष्ट प्रकार के मूल्य को बताता है और उस मूल्यको दर्शाने वाले अनाम के साथ जाना जाता है. जबकी पंक्तियाँ मे वास्तविक मूल्य होते है। हर मूल्य सही स्तम्भ का प्रतिनिधित्व करते है की नहीं ये निश्चित करने के लिए स्तंभमे अक्सर मूल्यों पर नियमोंका प्रतिबन्ध लगा रहता है. उदाहरणार्थ कल्पना कीजिये ग्राहकोंकी जानकारी होने वाला एक स्प्रेडशीट फ़ाइल जीके हर पंक्तिमे फोन क्रमांक होना जरुरी है और फोन क्रमांकमे कभीभी वर्ण या व्यंजन नहीं रहते। तो फिर फोन क्रमांक के स्तंभ पर ऐसा नियम लगा होना चाहिए जिससे ये निश्चित हो की बह कभीभी खाली नहीं है और उसमें सिर्फ आकड़े ही है. +संरचित डेटा वह डेटा है जो पंक्तियों और स्तंभों में संगठित होता है, जिसके हर पंक्ति में समान स्तंभ होते है। हर स्तंभ एक विशिष्ट प्रकार के मूल्य को बताता है और उस मूल्य को दर्शाने वाले नाम के साथ जाना जाता है। जबकि पंक्तियौं में वास्तविक मूल्य होते है। हर मूल्य सही स्तंभ का प्रतिनिधित्व करते हैं कि नहीं ये निश्चित करने के लिए स्तंभ में अक्सर मूल्यों पर नियमों का प्रतिबन्ध लगा रहता है। उदाहरणार्थ कल्पना कीजिये ग्राहकों की जानकारी होने वाला एक स्प्रेडशीट फ़ाइल जिसके हर पंक्ति में फोन नंबर होना जरुरी है और फोन नंबर में कभी भी अक्षर नहीं रहते। तो फिर फोन नंबर के स्तंभ पर ऐसा नियम लगा होना चाहिए जिससे यह निश्चित हो कि वह कभी भी खाली नहीं रहता है और उसमें सिर्फ आँकडे ही है । -सरंचित डेटा का यह फायदा है की उसे स्तंभ और पंक्तियोंमे वर्गीकृत किया जा सकता है. तथापि, डेटा को एक विशिष्ट प्रकार मै वर्गीकृत करने के लिए आयोजित किये जाने के बजह से पुरे संरचना मे बदल करना बोहोत मुश्किल का काम होता है. जैसे की ग्राहकोंके जानकारी वाले स्प्रेडशीट फ़ाइलमे अगर हमें ईमेल आयडी खाली ना होने वाला नया स्तंभ जोड़ना हो तो हमे ये पता करना होगा की पहिलेसे जो मूल्य इस डेटासेट मे है उनका क्या होगा. +सरंचित डेटा का यह फायदा है की उसे स्तंभ और पंक्तियों में संयोजित किया जा सकता है। तथापि, डेटा को एक विशिष्ट प्रकार में संयोजित करने के लिए आयोजित किये जाने के वजह से पुरे संरचना में बदल करना बहुत मुश्किल काम होता है। जैसे की ग्राहकों के जानकारी वाले स्प्रेडशीट फ़ाइलमें अगर हमें ईमेल आयडी खाली ना होने वाला नया स्तंभ जोड़ना हो, तो हमे ये पता करना होगा की पहिले से जो मूल्य इस डेटासेट में है उनका क्या होगा? -संरचित डेटा के यह कुछ उदाहरण है: स्प्रेडशीट, रिलेशनल डेटाबेस, फोन नंबर, बैंक स्टेटमेंट +संरचित डेटा के यह कुछ उदाहरण हैं: स्प्रेडशीट, रिलेशनल डेटाबेस, फोन नंबर एवं बैंक स्टेटमेंट । ### असंरचित डेटा -असंरचित डेटा आम तौर पर स्तंभ और पांक्तोयोंमे वर्गीकृत नहीं किया जा सकता और किसी नियमोंसे बंधित भी नहीं रहता। संरचित डेटा के तुलना से असंरचित डेटा मैं कम नियम होने के कारण उसमे नया डेटा डालना बोहोत आसान होता है। अगर कोही सेंसर जो तापमानमापक के प्रेशर का दबाव हर दो मिनिट बाद दर्ज करता है, जिसके बजह से वह तापमान को मापके दर्ज कर सकता है, तो उसे असंरचित डेटा होने के कारण डेटाबेसमे पहिलेसे होने वाले डेटा को बदलने की आवश्यकता नहीं है। तथापि, ऐसे डेटा का विश्लेषण और जांच करने को ज्यादा समय लग सकता है। -जैसे की, एक वैज्ञानिक जिसे सेंसर के डेटा से पिछले महीने के तापमान का औसत ढूंढ़ना हो, मगर वो देखता है की सेंसर ने कुछ जगह आधेअधूरे डेटा को दर्ज करने के लिए आम क्रमांक के बजाय 'e' दर्ज किया है, जिसका मतलब है की डेटा अधूरा है। -असंरचित डेटा के उदाहरण: टेक्स्ट फ़ाइलें, टेक्स्ट मेसेजेस, विडिओ फ़ाइलें। +असंरचित डेटा आम तौर पर स्तंभ और पंक्तियों में वर्गीकृत नहीं किया जा सकता और किसी नियमों से बंधित भी नहीं रहता। संरचित डेटा के तुलना में असंरचित डेटा में कम नियम होने के कारण उसमे नया डेटा जोडना बहुत आसान होता है। अगर कोई सेंसर जो बैरोमीटर के दबाव को हर दो मिनट के बाद दर्ज करता है, जिसकी वजह से वह दाब को माप के दर्ज कर सकता है, तो उसे असंरचित डेटा होने के कारण डेटाबेस में पहलेसे उपलब्ध डेटा को बदलने की आवश्यकता नहीं है। तथापि, ऐसे डेटा का विश्लेषण और जाँच करने में ज्यादा समय लग सकता है। +जैसे की, एक वैज्ञानिक जिसे सेंसर के डेटा से पिछले महीने के तापमान का औसत ढूंढ़ना हो, मगर वो देखता है की सेंसर ने कुछ जगह आधे अधूरे डेटा को दर्ज करने के लिए आम क्रमांक के विपरीत 'e' दर्ज किया है, जिसका मतलब है की डेटा अपूर्ण है। +असंरचित डेटा के उदाहरण: टेक्स्ट फ़ाइलें, टेक्स्ट मेसेजेस, विडियो फ़ाइलें। ### मिश्र संरचित डेटा @@ -45,7 +45,7 @@ ## डेटा के स्त्रोत डेटा का स्त्रोत मतलब मतलब वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुवा था, और हमेशा कहा और कब जमा किया था इसके ऊपर आधारित रहेगा। उपयोगकर्ताके द्वारा निर्माण किये हुवे डेटा को प्रार्थमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य काम के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावनमे टिप्पणियों और सूचि कमा कर रहे है तो वोप्रार्थमिक डेटा होगा और अगर उन्होंने उस डेटा को बाकि के वैज्ञनिकोके साथ बाँटना चाहा तो वो गौण डेटा कहलाया जायेगा। -डेटाबेस यह एक सामान्य स्त्रोत है और वह होस्टिंग और डेटाबेस मेंटेनन्स सिस्टिम निर्भर होता है। डेटाबेस मेंटेनन्स सिस्टिममे उपयोगकर्ता कमांड्स जिन्हें क्वेरीज़ कहा जाता है इस्तमाल करके डेटाबेस का डेटा खोज सकते है। डेटा स्त्रोत फ़ाइल स्वरुप मे हो तो आवाज, चित्र, वीडियो, स्प्रेडशीट ऐसे प्रकार मे हो सकता है। आंतरजाल के स्त्रोत डेटा होस्ट करने के बोहोत आम तरीका है। यहां डेटाबेस तथा फाइलें खोजी जा सकती है।अप्लीकेशन प्रोगरामिंग इंटरफेस, जिन्हे 'एपीआय'(API) के नाम से जाना जाता है, उसकी मद्त से प्रोग्रामर्स डेटाको बहार के उपयोगकर्ताओको आंतरजाल द्वारा इस्तमाल करने के लिए भेज सकते है। जबकि वेब स्क्रैपिंग नामक प्रक्रियासे आंतरजाल के वेब पेज का डेटा अलग किया जा सकता है। [डेटा के साथ काम करना](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data) यह पथ अलग अलग डेटा का इस्तमाल करनेपर ध्यान देता है। +डेटाबेस यह एक सामान्य स्त्रोत है और वह होस्टिंग और डेटाबेस मेंटेनन्स सिस्टिम निर्भर होता है। डेटाबेस मेंटेनन्स सिस्टिममे उपयोगकर्ता कमांड्स जिन्हें क्वेरीज़ कहा जाता है इस्तेमाल करके डेटाबेस का डेटा खोज सकते है। डेटा स्त्रोत फ़ाइल स्वरुप मे हो तो आवाज, चित्र, वीडियो, स्प्रेडशीट ऐसे प्रकार मे हो सकता है। आंतरजाल के स्त्रोत डेटा होस्ट करने के बहुत आम तरीका है। यहां डेटाबेस तथा फाइलें खोजी जा सकती है।अप्लीकेशन प्रोगरामिंग इंटरफेस, जिन्हे 'एपीआय'(API) के नाम से जाना जाता है, उसकी मद्त से प्रोग्रामर्स डेटाको बहार के उपयोगकर्ताओको आंतरजाल द्वारा इस्तेमाल करने के लिए भेज सकते है। जबकि वेब स्क्रैपिंग नामक प्रक्रियासे आंतरजाल के वेब पेज का डेटा अलग किया जा सकता है। [डेटा के साथ काम करना](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data) यह पथ अलग अलग डेटा का इस्तेमाल करनेपर ध्यान देता है। ## निष्कर्ष यह पथ मे हमने पढ़ा की: - डेटा क्या होता है @@ -54,7 +54,7 @@ - डेटा कहा मिलता है ## 🚀 चुनौती -Kaggle यह के मुफ्त के डेटाबेस का बोहोत अच्छा स्त्रोत है। [सर्च टूल ](https://www.kaggle.com/datasets) का इस्तमाल करके कुछ मजेदार डेटासेट ढूंढे और उनमेसे तीन-चार डेटाबेस का ऐसे वर्गीकरण कीजिए: +Kaggle यह के मुफ्त के डेटाबेस का बहुत अच्छा स्त्रोत है। [सर्च टूल ](https://www.kaggle.com/datasets) का इस्तेमाल करके कुछ मजेदार डेटासेट ढूंढे और उनमेसे तीन-चार डेटाबेस का ऐसे वर्गीकरण कीजिए: - डेटा परिमाणात्मक है या गुणात्मक? - डेटा संरचित, असंरचित या फिर मिश्र संरचित है? From 9ea38061baba033e3b4e9971f15cf017c36c2298 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Tue, 12 Oct 2021 18:15:07 -0300 Subject: [PATCH 026/234] Create assignment.pt-br.md --- .../translations/assignment.pt-br.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md diff --git a/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md new file mode 100644 index 00000000..fb5b62a3 --- /dev/null +++ b/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md @@ -0,0 +1,11 @@ +# Linhas, dispersão e barras + +## Instruções + +Nessa aula, você trabalhou com gráfico de linhas, dispersão e barras para mostrar fatos interessantes sobre esse dataset. Nessa tarefa, explore mais a fundo o dataset para descobrir algo sobre um dado tipo de pássaro. Por exemplo, crie um notebook que mostre visualizações de todos os fatos interessantes que encontrar sobre os Snow Geese (gansos-das-neves). Use os três tipos de gráficos mencionados anteriormente para contar uma história em seu notebook. + +## Rubrica + +Exemplar | Adequado | Precisa melhorar +--- | --- | -- | +O notebook foi apresentado com boas anotações, contação de histórias (storytelling) sólida e gráficos cativantes | O notebook não tem um desses elementos | O notebook não tem dois desses elementos From 373a22af6191bf4725eb05eb49b961f19b8d06eb Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Wed, 13 Oct 2021 00:41:05 -0300 Subject: [PATCH 027/234] Create README.pt-bt.md --- .../translations/README.pt-br.md | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md diff --git a/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md b/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md new file mode 100644 index 00000000..1ce0f827 --- /dev/null +++ b/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md @@ -0,0 +1,199 @@ +# Visualizando distribuições + +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| Visualizando distribuições - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + +Na aula anterior, você aprendeu fatos interessantes sobre um dataset de pássaros de Minnesota. Você encontrou dados incorretos ao visualizar outliers e olhou as diferenças entre categorias de pássaros com base no seu comprimento máximo. + +## [Quiz pré-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) +## Explore o dataset de pássaros + +Outra forma de explorar os dados é olhar para sua distribuição, ou como os dados estão organizados ao longo do eixo. Por exemplo, talvez você gostaria de aprender sobre a distribuição geral, nesse dataset, do máximo de envergadura (wingspan) ou máximo de massa corporal (body mass) dos pássaros de Minnesota. + +Vamos descobrir alguns fatos sobre as distribuições de dados nesse dataset. No arquivo _notebook.ipynb_ na raiz do diretório dessa aula, importe Pandas, Matplotlib, e seus dados: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` + +Geralmente, você pode olhar para a forma como os dados estão distribuídos usando um gráfico de dispersão (scatter plot) como fizemos na aula anterior: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` + +Isso nos dá uma visão geral da distribuição de comprimento de corpo por Ordem do pássaro, mas não é a forma ótima de mostrar a distribuição real. Essa tarefa geralmente é realizada usando um histograma. + +## Trabalhando com histogramas + +O Matplotlib oferece formas muito boas de visualizar distribuição dos dados usando histogramas. Esse tipo de gráfico é parecido com um gráfico de barras onde a distribuiçao pode ser vista por meio da subida e descida das barras. Para construir um histograma, você precisa de dados numéricos. Para construir um histograma, você pode plotar um gráfico definindo o tipo (kind) como 'hist' para histograma. Esse gráfico mostra a distribuição de massa corporal máxima (MaxBodyMass) para todo o intervalo numérico dos dados. Ao dividir um certo vetor de dados em intervalos (bins) menores, vemos a distribuição dos valores: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` + +![Distribuição de todo o dataset](images/dist1.png) + +Como você pode ver, a maior parte dos mais de 400 pássaros cai no intervalo de menos de 2000 para a massa corporal máxima. Obtenha mais conhecimento dos dados mudando o parâmetro de intervalo (`bins`) para um número maior, como 30: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` + +![Distribuição de todo o dataset com valores maiores de intervalo](images/dist2.png) + +Esse gráfico mostra a distribuição de forma mais detalhada. Um gráfico menos concentrado na esquerda pode ser criado garantindo que você só seleciona os dados dentro de um certo intervalo: + +Filtre seus dados para obter somente os pássaros que possuem menos de 60 de massa corporal, e mostre 40 intervalos (`bins`): + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![Histograma filtrado](images/dist3.png) + +✅ Tente outros filtros e pontos de dados (data points). Para ver a distribuição completa dos dados, remova o filtro `['MaxBodyMass']` para mostrar as distribuições com identificação. + +O histrograma também oferece algumas cores legais e identificadores (labels) melhorados: + +Crie um histograma 2D para comparar a relação entre duas distribuições. Vamos comparar massa corporal máxima vs. comprimento máximo (`MaxBodyMass` vs. `MaxLength`). O Matplotlib possui uma forma integrada de mostrar convergência usando cores mais vivas: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` + +Aparentemente, existe uma suposta correlação entre esses dois elementos ao longo de um eixo esperado, com um forte ponto de convergência: + +![Histrograma 2D](images/2D.png) + +Por definição, os histogramas funcionam para dados numéricos. E se você precisar ver distribuições de dados textuais? + +## Explore o dataset e busque por distribuições usando dados textuais + +Esse dataset também inclui informações relevantes sobre a categoria de pássaro e seu gênero, espécie e família, assim como seu status de conservação. Vamos explorar mais a fundo essa informação sobre conservação. Qual é a distribuição dos pássaros de acordo com seu status de conservação? + +> ✅ No dataset, são utilizados vários acrônimos para descrever o status de conservação. Esses acrônimos vêm da [IUCN Red List Categories](https://www.iucnredlist.org/), uma organização que cataloga os status das espécies. +> +> - CR: Critically Endangered (Criticamente em perigo) +> - EN: Endangered (Em perigo) +> - EX: Extinct (Extinto) +> - LC: Least Concern (Pouco preocupante) +> - NT: Near Threatened (Quase ameaçada) +> - VU: Vulnerable (Vulnerável) + +Esses são valores textuais, então será preciso transformá-los para criar um histograma. Usando o dataframe filteredBirds, mostre seu status de conservação juntamente com sua envergadura mínima (MinWingspan). O que você vê? + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Max Body Mass') +plt.legend(); +``` + +![Compilação envergadura e conservação](images/histogram-conservation.png) + +Aparentemente não existe uma correlação forte entre a envergadura mínima e o status de conservação. Teste outros elementos do dataset usando esse método. Você também pode tentar outros filtros. Você encontrou alguma correlação? + +## Gráfico de densidade (Estimativa de densidade kernel) + +Você pode ter percebido que até agora os histogramas são quebrados em degraus e não fluem de forma suave em uma curva. Para mostrar um gráfico de densidade mais 'fluido', você pode tentar usar a estimativa de densidade kernel (kde). + +Para trabalhar com gráficos de densidade, acostume-se com uma nova biblioteca de gráficos, [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html). + +Depois de carregar o Seaborn, tente um gráfico de densidade básico: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![Gráfico de densidade](images/density1.png) + +Você consegue ver como o gráfico reflete o anterior (de envergadura mínima); só é mais fluido/suave. De acordo com a documentação do Seaborn, "" +"Em comparação com o histograma, KDE pode produzir um gráfico que é menos confuso e mais legível, especialmente quando plotamos múltiplas distribuições. Mas pode potencialmente introduzir distorções se a distribuição usada é limitada ou não suave. Como um histograma, a qualidade da representação também depende na escolha de bons parâmetros suavizadores (smoothing parameters)." [créditos](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) Em outras palavras, dados discrepantes (outliers) vão fazer seus gráficos se comportarem mal, como sempre. + +Se você quer revisitar a linha irregular/dentada MaxBodyMass (massa corporal máxima) no segundo gráfico construído, você pode suavizá-la muito bem recriando o seguinte método: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![Linha suave massa corporal](images/density2.png) + +Se você quer uma linha suave, mas não tão suave, mude o parâmetro `bw_adjust`: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![Linha menos suave massa corporal](images/density3.png) + +✅ Leia sobre os parâmetros disponíveis para esse tipo de gráfico e experimente! + +Esse tipo de gráfico oferece visualizações bonitas e esclarecedoras. Com algumas linhas de código, por exemplo, você pode mostrar a densidade de massa corporal máxima por pássaro por Ordem: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![Massa corporal por Ordem](images/density4.png) + +Você também pode mapear a densidade de várias variáveis em um só gráfico. Teste usar o comprimento máximo (MaxLength) e mínimo (MinLength) de um pássaro comparado com seu status de conservação: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![Múltiplas densidades sobrepostas](images/multi.png) + +Talvez valha a pena pesquisar mais a fundo se o cluster de pássaros vulneráveis ('Vulnerable') de acordo com seus comprimentos tem significado ou não. + +## 🚀 Desafio + +Histogramas são um tipo mais sofisticado de gráfico em relação a simples gráficos de dispersão, barras ou linhas. Pesquise na internet bons exemplos de uso de histogramas. Como eles são usados, o que eles demonstram e em quais áreas ou campos de pesquisa eles são usados. + +## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/19) + +## Revisão e autoestudo + +Nessa aula, você usou o Matplotlib e começou a trabalhar com o Seaborn para mostrar gráficos mais avançados. Pesquise sobre o `kdeplot` no Seaborn, uma "curva de densidade de probabilidade contínua em uma ou mais dimensões". Leia a [documentação](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) para entender como funciona. + +## Tarefa + +[Use suas habilidades](assignment.md) From 1a44378334a819d17da9b1e938614a9d3b6aef1a Mon Sep 17 00:00:00 2001 From: Dhruv Krishna Vaid Date: Wed, 13 Oct 2021 11:46:51 +0530 Subject: [PATCH 028/234] Added Hindi translations --- .../17-Introduction/translations/README.hi.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md diff --git a/5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md b/5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md new file mode 100644 index 00000000..8b15fd41 --- /dev/null +++ b/5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md @@ -0,0 +1,100 @@ +# क्लाउड में डेटा साइंस का परिचय + +|![[(@sketchthedocs) द्वारा स्केचनोट](https://sketchthedocs.dev) ](../../../sketchnotes/17-DataScience-Cloud.png)| +|:---:| +| क्लाउड में डेटा साइंस: परिचय - _[@nitya](https://twitter.com/nitya) द्वारा स्केचनोट_ | + + +इस पाठ में, आप क्लाउड के मूलभूत सिद्धांतों को जानेंगे, फिर आप देखेंगे कि आपके डेटा साइंस परियोजनाओं को चलाने के लिए क्लाउड सेवाओं का उपयोग करना आपके लिए दिलचस्प क्यों हो सकता है और हम क्लाउड में चलने वाले डेटा साइंस प्रोजेक्ट के कुछ उदाहरण देखेंगे। + + +## [प्री-लेक्चर क्विज़](https://red-water-0103e7a0f.azurestaticapps.net/quiz/32) + + +## क्लाउड क्या है? + +क्लाउड, या क्लाउड कंप्यूटिंग, इंटरनेट पर एक बुनियादी ढांचे पर होस्ट की जाने वाली पे-एज़-यू-गो कंप्यूटिंग सेवाओं की एक विस्तृत श्रृंखला की डिलीवरी है। सेवाओं में स्टोरेज, डेटाबेस, नेटवर्किंग, सॉफ्टवेयर, एनालिटिक्स और इंटेलिजेंट सर्विसेज जैसे समाधान शामिल हैं। + +हम आम तौर पर पब्लिक, प्राइवेट और हाइब्रिड क्लाउड में ऐसे अंतर करते हैं: + +* पब्लिक क्लाउड: एक पब्लिक क्लाउड का स्वामित्व और संचालन तीसरे पक्ष के क्लाउड सेवा प्रदाता के पास होता है जो इंटरनेट पर अपने कंप्यूटिंग संसाधनों को जनता तक पहुंचाता है। +* प्राइवेट क्लाउड: एक ही व्यवसाय या संगठन द्वारा विशेष रूप से उपयोग किए जाने वाले क्लाउड कंप्यूटिंग संसाधनों को संदर्भित करता है, जिसमें सेवाओं और निजी नेटवर्क पर बनाए रखा गया इंफ्रास्ट्रक्चर होता है। +* हाइब्रिड क्लाउड: हाइब्रिड क्लाउड एक ऐसा सिस्टम है जो पब्लिक और प्राइवेट क्लाउड को जोड़ता है। उपयोगकर्ता ऑन-प्रिमाइसेस डेटासेंटर चुनते हैं, जिससे डेटा और एप्लिकेशन को एक या अधिक पब्लिक क्लाउड पर चला सकते हैं। + +अधिकांश क्लाउड कंप्यूटिंग सेवाएं तीन श्रेणियों में आती हैं: सर्विस के रूप में इंफ्रास्ट्रक्चर (IaaS), सर्विस के रूप में प्लेटफॉर्म (PaaS) और सर्विस के रूप में सॉफ्टवेयर (SaaS)। + +* सर्विस के रूप में इंफ्रास्ट्रक्चर (IaaS): उपयोगकर्ता आईटी इन्फ्रास्ट्रक्चर किराए पर लेते हैं जैसे सर्वर और वर्चुअल मशीन (VMs), स्टोरेज, नेटवर्क, ऑपरेटिंग सिस्टम। +* सर्विस के रूप में प्लेटफॉर्म (PaaS): उपयोगकर्ता सॉफ्टवेयर ऍप्लिकेशन्स के विकास, परीक्षण, वितरण और मैनेज करने के लिए एक वातावरण किराए पर लेते हैं। उपयोगकर्ताओं को विकास के लिए आवश्यक सर्वर के इंफ्रास्ट्रक्चर, स्टोरेज, नेटवर्क और डेटाबेस को स्थापित करने या प्रबंधित करने के बारे में चिंता करने की आवश्यकता नहीं है। +* सर्विस के रूप में सॉफ्टवेयर (SaaS): उपयोगकर्ताओं को आमतौर पर मांग और सदस्यता के आधार पर इंटरनेट पर सॉफ़्टवेयर एप्लिकेशन तक पहुंच प्राप्त होती है। उपयोगकर्ताओं को सॉफ़्टवेयर एप्लिकेशन की होस्टिंग और मैनेजिंग, बुनियादी इंफ्रास्ट्रक्चर या मेंटेनेंस, जैसे सॉफ़्टवेयर अपग्रेड और सुरक्षा पैचिंग के बारे में चिंता करने की आवश्यकता नहीं है। + +कुछ सबसे बड़े क्लाउड प्रदाता ऐमज़ॉन वेब सर्विसेस, गूगल क्लाउड प्लेटफॉर्म और माइक्रोसॉफ्ट अज़ूर हैं। +## डेटा साइंस के लिए क्लाउड क्यों चुनें? + +डेवलपर और आईटी पेशेवर कई कारणों से क्लाउड के साथ काम करना चुनते हैं, जिनमें निम्न शामिल हैं: + +* नवाचार: आप क्लाउड प्रदाताओं द्वारा बनाई गई नवीन सेवाओं को सीधे अपने ऐप्स में एकीकृत करके अपने एप्लिकेशन को सशक्त बना सकते हैं। +* लचक: आप केवल उन सेवाओं के लिए भुगतान करते हैं जिनकी आपको आवश्यकता है और आप सेवाओं की एक विस्तृत श्रृंखला से चुन सकते हैं। आप आमतौर पर अपनी उभरती जरूरतों के अनुसार अपनी सेवाओं का भुगतान और अनुकूलन करते हैं। +* बजट: आपको हार्डवेयर और सॉफ़्टवेयर खरीदने, साइट पर डेटासेंटर स्थापित करने और चलाने के लिए प्रारंभिक निवेश करने की आवश्यकता नहीं है और आप केवल उसी के लिए भुगतान करते हैं जिसका आपने उपयोग किया है। +* अनुमापकता: आपके संसाधन आपकी परियोजना की ज़रूरतों के अनुसार बड़े हो सकते हैं, जिसका अर्थ है कि आपके ऐप्स किसी भी समय बाहरी कारकों को अपनाकर, कम या ज्यादा कंप्यूटिंग शक्ति, स्टोरेज और बैंडविड्थ का उपयोग कर सकते हैं। +* उत्पादकता: आप उन कार्यों पर समय बिताने के बजाय, जिन्हें कोई अन्य व्यक्ति प्रबंधित कर सकता है, जैसे डेटासेंटर प्रबंधित करना, अपने व्यवसाय पर ध्यान केंद्रित कर सकते हैं। +* विश्वसनीयता: क्लाउड कम्प्यूटिंग आपके डेटा का लगातार बैकअप लेने के कई तरीके प्रदान करता है और आप संकट के समय में भी अपने व्यवसाय और सेवाओं को चालू रखने के लिए आपदा वसूली योजनाएँ स्थापित कर सकते हैं। +* सुरक्षा: आप उन नीतियों, तकनीकों और नियंत्रणों से लाभ उठा सकते हैं जो आपकी प्रोजेक्ट की सुरक्षा को मजबूत करती हैं। + +ये कुछ सबसे सामान्य कारण हैं जिनकी वजह से लोग क्लाउड सेवाओं का उपयोग करना चुनते हैं। अब जब हमें इस बात की बेहतर समझ है कि क्लाउड क्या है और इसके मुख्य लाभ क्या हैं, तो आइए डेटा के साथ काम करने वाले डेटा वैज्ञानिकों और डेवलपर्स की नौकरियों पर और अधिक विशेष रूप से देखें, और क्लाउड उन्हें कई चुनौतियों का सामना करने में कैसे मदद कर सकता है: + +* बड़ी मात्रा में डेटा स्टोर करना: बड़े सर्वरों को खरीदने, प्रबंधित करने और उनकी सुरक्षा करने के बजाय, आप अज़ूर कॉसमॉस डीबी , अज़ूर एसक्यूएल डेटाबेस और अज़ूर डेटा लेक स्टोरेज जैसे समाधानों के साथ अपने डेटा को सीधे क्लाउड में स्टोर कर सकते हैं। +* डेटा एकीकरण करना: डेटा एकीकरण डेटा साइंस का एक अनिवार्य हिस्सा है, जो आपको डेटा संग्रह से कार्रवाई करने के लिए संक्रमण करने देता है। क्लाउड में दी जाने वाली डेटा एकीकरण सेवाओं के साथ, आप डेटा फ़ैक्टरी के साथ विभिन्न स्रोतों से डेटा एकत्र, रूपांतरित और एकीकृत कर सकते हैं। +* डेटा प्रोसेसिंग: बड़ी मात्रा में डेटा को संसाधित करने के लिए बहुत अधिक कंप्यूटिंग शक्ति की आवश्यकता होती है, और हर किसी के पास इसके लिए पर्याप्त शक्तिशाली मशीनों तक पहुंच नहीं होती है, यही वजह है कि बहुत से लोग अपने समाधानों को चलाने और डिप्लॉय करने के लिए क्लाउड की विशाल कंप्यूटिंग शक्ति का सीधे उपयोग करना चुनते हैं। +* डेटा एनालिटिक्स सेवाओं का उपयोग करना: अज़ूर सिनेप्स एनालिटिक्स, अज़ूर स्ट्रीम एनालिटिक्स और अज़ूर डेटाब्रिक्स जैसी क्लाउड सेवाएं आपके डेटा को कार्रवाई योग्य अंतर्दृष्टि में बदलने में आपकी सहायता करती हैं। +* मशीन लर्निंग और डेटा इंटेलिजेंस सेवाओं का उपयोग करना: स्क्रैच से शुरू करने के बजाय, आप क्लाउड प्रदाता द्वारा पेश किए गए मशीन लर्निंग एल्गोरिदम का उपयोग अज़ूरएमएल जैसी सेवाओं के साथ कर सकते हैं। आप संज्ञानात्मक सेवाओं का भी उपयोग कर सकते हैं जैसे कि स्पीच-टू-टेक्स्ट, टेक्स्ट-टू-स्पीच, कंप्यूटर दृष्टि और बहुत कुछ। + +## क्लाउड में डेटा साइंस के उदाहरण + +आइए कुछ परिदृश्यों को देखकर इसे और अधिक मूर्त बनाते हैं। + +### रीयल-टाइम सोशल मीडिया भावना विश्लेषण +हम आमतौर पर मशीन लर्निंग से शुरू होने वाले लोगों द्वारा अध्ययन किए गए परिदृश्य से शुरू करेंगे: वास्तविक समय में सोशल मीडिया की भावना का विश्लेषण। + +मान लीजिए कि आप एक समाचार मीडिया वेबसाइट चलाते हैं और आप यह समझने के लिए लाइव डेटा का लाभ उठाना चाहते हैं कि आपके पाठकों की किस सामग्री में रुचि हो सकती है। इसके बारे में अधिक जानने के लिए, आप एक प्रोग्राम बना सकते हैं जो ट्विटर प्रकाशनों से डेटा का रीयल-टाइम भावना विश्लेषण करता है, उन विषयों पर जो आपके पाठकों के लिए प्रासंगिक हैं। + +आप जिन प्रमुख संकेतकों को देखेंगे, वे विशिष्ट विषयों (हैशटैग) और भावना पर ट्वीट्स की मात्रा है, जो विश्लेषिकी टूल का उपयोग करके स्थापित किया जाता है जो निर्दिष्ट विषयों के आसपास भावना विश्लेषण करते हैं। + +इस प्रोजेक्ट को बनाने के लिए आवश्यक स्टेप्स इस प्रकार हैं: + +* स्ट्रीमिंग इनपुट के लिए एक इवेंट हब बनाएं, जो ट्विटर से डेटा एकत्र करेगा +* ट्विटर क्लाइंट एप्लिकेशन को कॉन्फ़िगर करें और शुरू करें, जो ट्विटर स्ट्रीमिंग एपीआई को कॉल करेगा +* एक स्ट्रीम एनालिटिक्स जॉब बनाएं +* जॉब इनपुट और क्वेरी निर्दिष्ट करें +* आउटपुट सिंक बनाएं और जॉब आउटपुट निर्दिष्ट करें +* जॉब शुरू करें + +पूरी प्रक्रिया देखने के लिए [प्रलेखन](https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?WT.mc_id=academic-40229-cxa&ocid=AID30411099) देखें। + +### वैज्ञानिक कागजात विश्लेषण +आइए इस पाठ्यक्रम के लेखकों में से एक, [दिमित्री सोशनिकोव](http://soshnikov.com) द्वारा बनाई गई परियोजना का एक और उदाहरण लें। + +दिमित्री ने एक टूल बनाया जो कोविड पेपर्स का विश्लेषण करता है। इस परियोजना की समीक्षा करके, आप देखेंगे कि आप एक उपकरण कैसे बना सकते हैं जो वैज्ञानिक पत्रों से ज्ञान प्राप्त करता है, अंतर्दृष्टि प्राप्त करता है और शोधकर्ताओं को एक कुशल तरीके से कागजात के बड़े संग्रह के माध्यम से नेविगेट करने में मदद करता है। + +आइए इसके लिए उपयोग किए जाने वाले विभिन्न चरणों को देखें: +* [टेक्स्ट एनालिटिक्स फॉर हेल्थ](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health?WT.mc_id=academic-40229-cxa&ocid=AID3041109) के साथ जानकारी निकालना और प्री-प्रोसेस करना +* प्रसंस्करण को समानांतर रखने के लिए [अज़ूरएमएल](https://azure.microsoft.com/services/machine-learning?WT.mc_id=academic-40229-cxa&ocid=AID3041109) का उपयोग करना +* [कॉसमॉस डीबी](https://azure.microsoft.com/services/cosmos-db?WT.mc_id=academic-40229-cxa&ocid=AID3041109) के साथ जानकारी संग्रहीत करना और क्वेरी करना +* पावर बीआई का उपयोग करके डेटा अन्वेषण और विज़ुअलाइज़ेशन के लिए एक इंटरैक्टिव डैशबोर्ड बनाना + +पूरी प्रक्रिया देखने के लिए [दिमित्री के ब्लॉग](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) पर जाएँ। + +जैसा कि आप देख सकते हैं, हम डेटा साइंस का प्रदर्शन करने के लिए कई तरह से क्लाउड सेवाओं का लाभ उठा सकते हैं। +## पादटिप्पणी + +स्त्रोत: +* https://azure.microsoft.com/overview/what-is-cloud-computing?ocid=AID3041109 +* https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?ocid=AID3041109 +* https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ + +## पोस्ट-लेक्चर क्विज़ + +[पोस्ट-लेक्चर क्विज़](https://red-water-0103e7a0f.azurestaticapps.net/quiz/33) + +## असाइनमेंट + +[मार्केट रिसर्च](../assignment.md) From 5b06f6a5b3b825939bcaef61de572abd6c05afa7 Mon Sep 17 00:00:00 2001 From: Dhruv Krishna Vaid Date: Wed, 13 Oct 2021 12:53:19 +0530 Subject: [PATCH 029/234] Added assignment translation --- .../17-Introduction/translations/README.hi.md | 2 +- .../17-Introduction/translations/assignment.hi.md | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 5-Data-Science-In-Cloud/17-Introduction/translations/assignment.hi.md diff --git a/5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md b/5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md index 8b15fd41..e06add10 100644 --- a/5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md +++ b/5-Data-Science-In-Cloud/17-Introduction/translations/README.hi.md @@ -97,4 +97,4 @@ ## असाइनमेंट -[मार्केट रिसर्च](../assignment.md) +[मार्केट रिसर्च](./assignment.hi.md) diff --git a/5-Data-Science-In-Cloud/17-Introduction/translations/assignment.hi.md b/5-Data-Science-In-Cloud/17-Introduction/translations/assignment.hi.md new file mode 100644 index 00000000..8317d126 --- /dev/null +++ b/5-Data-Science-In-Cloud/17-Introduction/translations/assignment.hi.md @@ -0,0 +1,10 @@ +# मार्केट रिसर्च + +## निर्देश + +इस पाठ में आपने सीखा कि कई महत्वपूर्ण क्लाउड प्रदाता हैं। डेटा साइंटिस्ट को प्रत्येक क्या पेशकश कर सकता है, यह जानने के लिए कुछ मार्केट रिसर्च करें। क्या उनके सब्स्क्रिप्शन्स तुलनीय हैं? इनमें से तीन या अधिक क्लाउड प्रदाताओं की पेशकशों का वर्णन करने के लिए एक पेपर लिखें। +## स्कोर गाइड + +उदाहरणात्मक | पर्याप्त | सुधार की जरूरत है +--- | --- | -- | +एक पृष्ठ का पेपर तीन क्लाउड प्रदाताओं के डेटा विज्ञान प्रसाद का वर्णन करता है और उनके बीच अंतर करता है। | एक छोटा पेपर प्रस्तुत किया गया है। | विश्लेषण पूरा किए बिना एक पेपर प्रस्तुत किया गया है। \ No newline at end of file From 04452def0f1b64d9e2d0d658e6268527503753e6 Mon Sep 17 00:00:00 2001 From: Kaushal Joshi <53049546+joshi-kaushal@users.noreply.github.com> Date: Wed, 13 Oct 2021 17:57:09 +0530 Subject: [PATCH 030/234] README.hi.md translation completed --- .../translations/README.hi.md | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/1-Introduction/03-defining-data/translations/README.hi.md b/1-Introduction/03-defining-data/translations/README.hi.md index e21a638d..146ef592 100644 --- a/1-Introduction/03-defining-data/translations/README.hi.md +++ b/1-Introduction/03-defining-data/translations/README.hi.md @@ -9,7 +9,7 @@ यह पाठ डेटा को उसके स्त्रोत के हिसाब से पहचानने और वर्गीकृत करने पर केंद्रित है। -## [पाठ के पाहिले की परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) +## [पाठ के पूर्व की परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) ## डेटा का वर्णन कैसे किया जाता है **अपरीपक्व डेटा** ऐसे प्रकार का डेटा होता जो उसके स्त्रोत से आते वक्त जिस अवस्था में था वैसे ही है और उसका विश्लेषण या वर्गीकरण नहीं किया गया है। ऐसे डेटासेट से जरूरी जानकारी निकलने के लिए उसे ऐसे प्रकार मे लाना आवश्यक है जो इंसान समझ सके और जिस तंत्रज्ञान का उपयोग डेटा के विश्लेषण में किया जाएगा उसको भी समझ आये। डेटाबेस की संरचना हमें बताती है कि डेटा किस प्रकार से वर्गीकृत किया गया है और उसका संरचित, मिश्र संरचित और असंरचित प्रकार में वर्गीकरण कैसे किया जाता है। संरचना के प्रकार डेटा के स्त्रोत के अनुसार बदल सकते हैं मगर आखिर में इन तीनों में से एक प्रकार के हो सकते हैं। @@ -33,35 +33,31 @@ असंरचित डेटा के उदाहरण: टेक्स्ट फ़ाइलें, टेक्स्ट मेसेजेस, विडियो फ़ाइलें। ### मिश्र संरचित डेटा +मिश्र संरचित डेटा के ऐसे कुछ गुण है जिसकी वजह से उसे संरचित और असंरचित डेटा का मिश्रण कहा जा सकता हैं। वह हमेशा स्तंभ और पंक्तियों के अनुरूप नहीं रहता मगर ऐसे तरह संयोजित किया गया होता है कि उसे संरचित कहा जा सकता है और शायद अन्य निर्धारित नियमों का पालन भी करता है। डेटा की संरचना उसके स्त्रोत के ऊपर निर्भर होती है जैसे की स्पष्ट अनुक्रम या फिर थोडा परिवर्तनशील होता है जिसमे नया डेटा जोड़ना आसान हो। मेटाडेटा ऐसे संकेतांक होते हैं जिससे डेटा का संयोजन और संग्रह करना आसान होता है, और उन्हें डेटा के प्रकार के अनुरूप नाम भी दिए जा सकते हैं । मेटाडेटा के आम उदाहरण है: टैग्स, एलिमेंट्स, एंटिटीज और एट्रीब्यूट्स. +उदाहरणार्थ: एक सामान्य ईमेल को उसका विषय, मायना, और प्राप्तकर्ताओं की सूची होगी और किससे कब भेजना है उसके प्रमाण से संयोजित किया जा सकता है। -मिश्र संरचित डेटा के ऐसे कुछ गन है जिसके बजह से उसे संरचित और असंरचित डेटा का मिश्रण कहा जा सकता है. वह हमेशा स्तंभ और पंक्तियोंके अनुरूप नहीं रहता मगर ऐसे तरह संयोजित किया गया होता है की उसे संरचित कहा जा सकता है और शायद किसी ठराविक नियमोंका पालन भी कर है। डेटा की संरचना उसके स्त्रोत के ऊपर निर्भर होती है जैसे की स्पष्ट अनुक्रम या फिर थोडा लचीला जिसमे नया डेटा जोड़ना आसान हो. मेटाडाटा ऐसे संकेतक होते है जिनसे डेटा का संयोजन और संग्रहीत करने मे सहायता होती है, और उन्हें डेटा के प्रकार के अनुरूप नाम भी दिए जा सकते है. मेटाडेटाके आम उदाहरण है: टैग्स, एलिमेंट्स, एंटिटीज और एट्रीब्यूट्स. उदाहरणार्थ: एक सामान्य ईमेल को उसका विषय, मायना, और प्राप्तकर्ताओंकी सूची होगी और किसको कब भेजना है उसके हिसाब से संयोजित किया जा सकता है। - -मिश्र संरचित डेटा के उदाहरण: एचटीएमएल, सीइसव्ही फाइलें, जेसन(JSON) - -### डेटा के स्त्रोत - -डेटा का स्त्रोत मतलब मतलब वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुवा था, और हमेशा कहा और कब जमा किया था इसके ऊपर आधारित रहेगा। उपयोगकर्ताके द्वारा निर्माण किये हुवे डेटा को प्रार्थमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य काम के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावनमे टिप्पणियों और सूचि कमा कर रहे है तो वोप्रार्थमिक डेटा होगा और अगर उन्होंने उस डेटा को बाकि के वैज्ञनिकोके साथ बाँटना चाहा तो वो गौण डेटा कहलाया जायेगा। +मिश्र संरचित डेटा के उदाहरण: एचटीएमएल, सीइसवी फाइलें, जेसन(JSON) ## डेटा के स्त्रोत -डेटा का स्त्रोत मतलब मतलब वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुवा था, और हमेशा कहा और कब जमा किया था इसके ऊपर आधारित रहेगा। उपयोगकर्ताके द्वारा निर्माण किये हुवे डेटा को प्रार्थमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य काम के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावनमे टिप्पणियों और सूचि कमा कर रहे है तो वोप्रार्थमिक डेटा होगा और अगर उन्होंने उस डेटा को बाकि के वैज्ञनिकोके साथ बाँटना चाहा तो वो गौण डेटा कहलाया जायेगा। +डेटा का स्त्रोत, अर्थात वो जगह जहाँ डेटा सबसे पहिली बार निर्माण हुआ था, और हमेशा कहाँ और कब जमा किया था इसपर आधारित होगा। उपयोगकर्ता के द्वारा निर्माण किये हुए डेटा को प्राथमिक डेटा के नाम से पहचाना जाता है जबकि गौण डेटा ऐसे स्त्रोत से आता है जिसने सामान्य कार्य के लिए डेटा जमा किया था। उदाहरण के लिए, वैज्ञानिकों का समूह वर्षावन में टिप्पणियों और सूचि जमा कर रहे है तो वो प्राथमिक डेटा होगा और यदि उन्होंने उस डेटा को बाकि के वैज्ञनिको के साथ बाँटना चाहा तो वो वह गौण डेटा कहलाया जायेगा। -डेटाबेस यह एक सामान्य स्त्रोत है और वह होस्टिंग और डेटाबेस मेंटेनन्स सिस्टिम निर्भर होता है। डेटाबेस मेंटेनन्स सिस्टिममे उपयोगकर्ता कमांड्स जिन्हें क्वेरीज़ कहा जाता है इस्तेमाल करके डेटाबेस का डेटा खोज सकते है। डेटा स्त्रोत फ़ाइल स्वरुप मे हो तो आवाज, चित्र, वीडियो, स्प्रेडशीट ऐसे प्रकार मे हो सकता है। आंतरजाल के स्त्रोत डेटा होस्ट करने के बहुत आम तरीका है। यहां डेटाबेस तथा फाइलें खोजी जा सकती है।अप्लीकेशन प्रोगरामिंग इंटरफेस, जिन्हे 'एपीआय'(API) के नाम से जाना जाता है, उसकी मद्त से प्रोग्रामर्स डेटाको बहार के उपयोगकर्ताओको आंतरजाल द्वारा इस्तेमाल करने के लिए भेज सकते है। जबकि वेब स्क्रैपिंग नामक प्रक्रियासे आंतरजाल के वेब पेज का डेटा अलग किया जा सकता है। [डेटा के साथ काम करना](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data) यह पथ अलग अलग डेटा का इस्तेमाल करनेपर ध्यान देता है। +डेटाबेस यह एक सामान्य स्त्रोत है और वह होस्टिंग और डेटाबेस मेंटेनन्स सिस्टिम पर निर्भर होता है। डेटाबेस मेंटेनन्स सिस्टिम में उपयोगकर्ता कमांड्स, जिन्हें ‘क्वेरीज़’ कहा जाता है इस्तेमाल करके डेटाबेस का डेटा ढूंढ सकते हैं। डेटा स्त्रोत फ़ाइल स्वरुप में हो, तो आवाज, चित्र, वीडियो, स्प्रेडशीट ऐसे प्रकार में हो सकता है। अंतरजाल के स्त्रोत डेटा होस्ट करने का बहुत आम तरीका है। यहाँ डेटाबेस तथा फाइलें ढूंढी जा सकती है। एप्लीकेशन प्रोग्रामिंग इंटरफेस, जिन्हे 'एपीआय'(API) के नाम से जाना जाता है, उसकी मदद से प्रोग्रामर्स डेटा को बाहर के उपयोगकर्ताओं को अंतरजाल द्वारा इस्तेमाल करने के लिए भेज सकते हैं। जबकि वेब स्क्रैपिंग नामक प्रक्रिया से अंतरजाल के वेब पेज का डेटा अलग किया जा सकता है। [डेटा के साथ काम करना](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data) यह पाठ अलग अलग डेटा का इस्तेमाल करने पर ध्यान देता है। ## निष्कर्ष -यह पथ मे हमने पढ़ा की: +यह पाठ में हमने पढ़ा कि: - डेटा क्या होता है - डेटा का वर्णन कैसे किया जाता है - डेटा का वर्गीकरण कैसे किया जाता है - डेटा कहा मिलता है ## 🚀 चुनौती -Kaggle यह के मुफ्त के डेटाबेस का बहुत अच्छा स्त्रोत है। [सर्च टूल ](https://www.kaggle.com/datasets) का इस्तेमाल करके कुछ मजेदार डेटासेट ढूंढे और उनमेसे तीन-चार डेटाबेस का ऐसे वर्गीकरण कीजिए: -- डेटा परिमाणात्मक है या गुणात्मक? +Kaggle यह के मुक्त डेटाबेस का बहुत अच्छा स्त्रोत है। [सर्च टूल ](https://www.kaggle.com/datasets) का इस्तेमाल करके कुछ मजेदार डेटासेट ढूंढे और उनमे से तीन-चार डेटाबेस को ऐसे वर्गीकृत करे: +- डेटा परिमाणात्मक है या गुणात्मक है? - डेटा संरचित, असंरचित या फिर मिश्र संरचित है? -## [पाठ के बाद वाली परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) +## [पाठ के पश्चात परीक्षा](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) ## समीक्षा और स्वअध्ययन -- माइक्रोसॉफ्ट लर्न का [Classify your data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) पाठ संरचित, असंरचित और मिश्र संरचित डेटा के बारे मे और अच्छेसे बताता है। +- माइक्रोसॉफ्ट लर्न का [Classify your data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) पाठ संरचित, असंरचित और मिश्र संरचित डेटा के बारे में और अच्छे से बताता है। ## अभ्यास [डेटा का वर्गीकरण](../assignment.md) From 7af74e7186d0fc0253e309e54f117f7d6ced227b Mon Sep 17 00:00:00 2001 From: imsushant12 Date: Thu, 14 Oct 2021 00:36:30 +0530 Subject: [PATCH 031/234] Added hindi translation of all Vizualization base README --- .../assignment.hi.md | 10 ++ .../translations/README.hi.md | 168 ++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 3-Data-Visualization/13-meaningful-visualizations/assignment.hi.md create mode 100644 3-Data-Visualization/13-meaningful-visualizations/translations/README.hi.md diff --git a/3-Data-Visualization/13-meaningful-visualizations/assignment.hi.md b/3-Data-Visualization/13-meaningful-visualizations/assignment.hi.md new file mode 100644 index 00000000..26ab71ac --- /dev/null +++ b/3-Data-Visualization/13-meaningful-visualizations/assignment.hi.md @@ -0,0 +1,10 @@ +# अपना खुद का कस्टम दृश्य बनाएं + +## निर्देश + +एक सामाजिक नेटवर्क बनाने के लिए इस परियोजना में कोड नमूने का उपयोग करते हुए, अपने स्वयं के सामाजिक इंटरैक्शन के डेटा का मजाक उड़ाएं। आप सोशल मीडिया के अपने उपयोग को मैप कर सकते हैं या अपने परिवार के सदस्यों का आरेख बना सकते हैं। एक दिलचस्प वेब ऐप बनाएं जो सोशल नेटवर्क का एक अनूठा विज़ुअलाइज़ेशन दिखाता है। +## रूब्रिक + +अनुकरणीय | पर्याप्त | सुधार की जरूरत +--- | --- | -- | +एक गिटहब रेपो कोड के साथ प्रस्तुत किया जाता है जो ठीक से चलता है (इसे एक स्थिर वेब ऐप के रूप में तैनात करने का प्रयास करें) और परियोजना को समझाते हुए एक एनोटेट रीडमे है | रेपो ठीक से नहीं चलता है या अच्छी तरह से प्रलेखित नहीं है | रेपो ठीक से नहीं चलता है और अच्छी तरह से प्रलेखित नहीं है \ No newline at end of file diff --git a/3-Data-Visualization/13-meaningful-visualizations/translations/README.hi.md b/3-Data-Visualization/13-meaningful-visualizations/translations/README.hi.md new file mode 100644 index 00000000..82b0f217 --- /dev/null +++ b/3-Data-Visualization/13-meaningful-visualizations/translations/README.hi.md @@ -0,0 +1,168 @@ +# सार्थक विज़ुअलाइज़ेशन बनाना + +|![ सकेटच्नोते करने वाला [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| सार्थक विज़ुअलाइज़ेशन - _सकेटच्नोते करने वाला [@nitya](https://twitter.com/nitya)_ | + +> "यदि आप डेटा को काफी देर तक प्रताड़ित करते हैं, तो यह कुछ भी कबूल कर लेगा" - [रोनाल्ड कोसे](https://en.wikiquote.org/wiki/Ronald_Coase) + +एक डेटा वैज्ञानिक के बुनियादी कौशल में से एक सार्थक डेटा विज़ुअलाइज़ेशन बनाने की क्षमता है जो आपके सवालों के जवाब देने में मदद करता है। अपने डेटा की कल्पना करने से पहले, आपको यह सुनिश्चित करने की आवश्यकता है कि इसे साफ और तैयार किया गया है, जैसा कि आपने पिछले पाठों में किया था। उसके बाद, आप यह तय करना शुरू कर सकते हैं कि डेटा को सर्वोत्तम तरीके से कैसे प्रस्तुत किया जाए। + +इस पाठ में, आप समीक्षा करेंगे: + +1. सही चार्ट प्रकार कैसे चुनें +2. भ्रामक चार्टिंग से कैसे बचें +3. रंग के साथ कैसे काम करें +4. पठनीयता के लिए अपने चार्ट को कैसे स्टाइल करें +5. एनिमेटेड या 3डी चार्टिंग समाधान कैसे तैयार करें +6. क्रिएटिव विज़ुअलाइज़ेशन कैसे बनाएं + +## [व्याख्यान पूर्व प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/24) + +## सही चार्ट प्रकार चुनें + +पिछले पाठों में, आपने चार्टिंग के लिए Matplotlib और Seaborn का उपयोग करके सभी प्रकार के दिलचस्प डेटा विज़ुअलाइज़ेशन बनाने का प्रयोग किया था। सामान्य तौर पर, आप इस तालिका का उपयोग करके पूछे जाने वाले प्रश्न के लिए [सही प्रकार का चार्ट](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) चुन सकते हैं: + + +| आपको चाहिए: | आपको उपयोग करना चाहिए: | +| -------------------------- | ----------------------------- | +| समय के साथ डेटा रुझान दिखाएं | रेखा | +| श्रेणियों की तुलना करें | बार, पाई | +| योग की तुलना करें | पाई, स्टैक्ड बार | +| रिश्ते दिखाएँ | तितर बितर, रेखा, पहलू, दोहरी रेखा | +| वितरण दिखाएं | तितर बितर, हिस्टोग्राम, बॉक्स | +| अनुपात दिखाएँ | पाई, डोनट, वफ़ल | + +> ✅ आपके डेटा की बनावट के आधार पर, आपको इसका समर्थन करने के लिए दिए गए चार्ट को प्राप्त करने के लिए इसे टेक्स्ट से न्यूमेरिक में बदलने की आवश्यकता हो सकती है। + +## धोखे से बचें + +यहां तक ​​कि अगर एक डेटा वैज्ञानिक सही डेटा के लिए सही चार्ट चुनने के लिए सावधान है, तो ऐसे कई तरीके हैं जिनसे डेटा को एक बिंदु साबित करने के लिए प्रदर्शित किया जा सकता है, अक्सर डेटा को कम करने की कीमत पर। भ्रामक चार्ट और इन्फोग्राफिक्स के कई उदाहरण हैं! + +[![हाउ चार्ट्स लाइ बाय अल्बर्टो काहिरा](./images/tornado.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How चार्ट्स झूठ") + +> भ्रामक चार्ट के बारे में एक सम्मेलन वार्ता के लिए ऊपर की छवि पर क्लिक करें + +यह चार्ट दिनांक के आधार पर सत्य के विपरीत दिखाने के लिए X अक्ष को उलट देता है: + +![खराब चार्ट 1](images/bad-chart-1.png) + +[यह चार्ट](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) और भी भ्रामक है, क्योंकि यह निष्कर्ष निकालने के लिए सही है कि, समय के साथ, विभिन्न काउंटियों में COVID मामलों में गिरावट आई है। वास्तव में, यदि आप तिथियों को करीब से देखते हैं, तो आप पाते हैं कि उन्हें उस भ्रामक गिरावट की प्रवृत्ति देने के लिए पुनर्व्यवस्थित किया गया है। + +![खराब चार्ट 2](images/bad-chart-2.jpg) + +यह कुख्यात उदाहरण धोखा देने के लिए रंग और एक फ़्लिप वाई अक्ष का उपयोग करता है: यह निष्कर्ष निकालने के बजाय कि बंदूक के अनुकूल कानून के पारित होने के बाद बंदूक की मौत बढ़ गई, वास्तव में आंख को यह सोचने के लिए मूर्ख बनाया जाता है कि विपरीत सच है: + +![खराब चार्ट 3](images/bad-chart-3.jpg) + +यह अजीब चार्ट दिखाता है कि कैसे अनुपात में हेरफेर किया जा सकता है, उल्लसित प्रभाव के लिए: + +![खराब चार्ट 4](images/bad-chart-4.jpg) + +अतुलनीय की तुलना करना अभी तक एक और छायादार चाल है। एक [अद्भुत वेब साइट](https://tylervigen.com/spurious-correlations) सभी 'नकली सहसंबंध' के बारे में है जो मेन में तलाक की दर और मार्जरीन की खपत जैसी 'तथ्यों' से संबंधित चीजों को प्रदर्शित करती है। एक Reddit समूह डेटा का [बदसूरत उपयोग](https://www.reddit.com/r/dataisugly/top/?t=all) भी एकत्र करता है। + +यह समझना महत्वपूर्ण है कि भ्रामक चार्ट द्वारा आंख को कितनी आसानी से मूर्ख बनाया जा सकता है। भले ही डेटा वैज्ञानिक की मंशा अच्छी हो, लेकिन खराब प्रकार के चार्ट का चुनाव, जैसे कि बहुत अधिक श्रेणियां दिखाने वाला पाई चार्ट, भ्रामक हो सकता है। + +## रंग + +आपने ऊपर 'फ्लोरिडा गन हिंसा' चार्ट में देखा कि कैसे रंग चार्ट को अर्थ की एक अतिरिक्त परत प्रदान कर सकते हैं, विशेष रूप से वे जो मैटप्लोटलिब और सीबॉर्न जैसे पुस्तकालयों का उपयोग करके डिज़ाइन नहीं किए गए हैं जो विभिन्न सत्यापित रंग पुस्तकालयों और पट्टियों के साथ आते हैं। अगर आप हाथ से चार्ट बना रहे हैं, तो [रंग सिद्धांत](https://colormatters.com/color-and-design/basic-color-theory) का थोड़ा अध्ययन करें + +> ✅ चार्ट डिजाइन करते समय सावधान रहें, कि एक्सेसिबिलिटी विज़ुअलाइज़ेशन का एक महत्वपूर्ण पहलू है। आपके कुछ उपयोगकर्ता कलर ब्लाइंड हो सकते हैं - क्या आपका चार्ट दृष्टिबाधित उपयोगकर्ताओं के लिए अच्छा प्रदर्शन करता है? + +अपने चार्ट के लिए रंग चुनते समय सावधान रहें, क्योंकि रंग वह अर्थ बता सकता है जिसका आप इरादा नहीं कर सकते। ऊपर 'ऊंचाई' चार्ट में 'गुलाबी महिलाएं' एक विशिष्ट 'स्त्री' अर्थ व्यक्त करती हैं जो चार्ट की विचित्रता को जोड़ती है। + +जबकि [रंग अर्थ](https://colormatters.com/color-symbolism/the-meanings-of-colors) दुनिया के अलग-अलग हिस्सों में अलग-अलग हो सकते हैं, और उनकी छाया के अनुसार अर्थ में परिवर्तन होता है। सामान्यतया, रंग अर्थों में शामिल हैं: + +| रंग | अर्थ | +| ------ | ------------------- | +| लाल | शक्ति | +| नीला | भरोसा, वफादारी | +| पीला | खुशी, सावधानी | +| हरा | पारिस्थितिकी, भाग्य, ईर्ष्या | +| बैंगनी | खुशी | +| नारंगी | कंपन | + +यदि आपको कस्टम रंगों के साथ चार्ट बनाने का काम सौंपा गया है, तो सुनिश्चित करें कि आपके चार्ट दोनों पहुंच योग्य हैं और आपके द्वारा चुना गया रंग उस अर्थ से मेल खाता है जिसे आप व्यक्त करने का प्रयास कर रहे हैं। + +## पठनीयता के लिए अपने चार्ट को स्टाइल करना + +यदि चार्ट पढ़ने योग्य नहीं हैं तो वे अर्थपूर्ण नहीं हैं! अपने डेटा के साथ अच्छी तरह से स्केल करने के लिए अपने चार्ट की चौड़ाई और ऊंचाई को स्टाइल करने पर विचार करने के लिए कुछ समय निकालें। यदि एक चर (जैसे सभी ५० राज्यों) को प्रदर्शित करने की आवश्यकता है, तो यदि संभव हो तो उन्हें Y अक्ष पर लंबवत रूप से दिखाएं ताकि क्षैतिज-स्क्रॉलिंग चार्ट से बचा जा सके। + +अपनी कुल्हाड़ियों को लेबल करें, यदि आवश्यक हो तो एक किंवदंती प्रदान करें, और डेटा की बेहतर समझ के लिए टूलटिप्स प्रदान करें। + +यदि आपका डेटा X अक्ष पर टेक्स्टुअल और वर्बोज़ है, तो आप बेहतर पठनीयता के लिए टेक्स्ट को एंगल कर सकते हैं। [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) ३डी प्लॉटिंग की पेशकश करता है, अगर आप डेटा इसका समर्थन करते हैं। परिष्कृत डेटा विज़ुअलाइज़ेशन `mpl_toolkits.mplot3d` का उपयोग करके तैयार किया जा सकता है। + +![3d plots](images/3d.png) + +## एनिमेशन और 3डी चार्ट डिस्प्ले + +आज कुछ बेहतरीन डेटा विज़ुअलाइज़ेशन एनिमेटेड हैं। शर्ली वू ने डी3 के साथ अद्भुत काम किए हैं, जैसे '[फिल्म फूल](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', जहां प्रत्येक फूल एक फिल्म का एक दृश्य है। गार्जियन के लिए एक और उदाहरण 'बस्स्ड आउट' है, ग्रीन्सॉक और डी3 के साथ विज़ुअलाइज़ेशन के संयोजन के साथ एक इंटरैक्टिव अनुभव और एक स्क्रॉलीटेलिंग आलेख प्रारूप यह दिखाने के लिए कि एनवाईसी लोगों को शहर से बाहर निकालकर अपनी बेघर समस्या को कैसे संभालता है। + +![busing](images/busing.png) + +> "बस्स्ड आउट: हाउ अमेरिका मूव्स इट्स बेघर" से [अभिभावक](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). नादिह ब्रेमर और शर्ली वू द्वारा विज़ुअलाइज़ेशन + +हालांकि यह पाठ इन शक्तिशाली विज़ुअलाइज़ेशन लाइब्रेरी को सिखाने के लिए पर्याप्त नहीं है, फिर भी एक एनिमेटेड सोशल नेटवर्क के रूप में "डेंजरस लाइजन्स" पुस्तक के विज़ुअलाइज़ेशन को प्रदर्शित करने के लिए लाइब्रेरी का उपयोग करके Vue.js ऐप में D3 पर अपना हाथ आज़माएं। + +> "लेस लिआइसन्स डेंजरियस" एक पत्र-पत्रिका उपन्यास है, या पत्रों की एक श्रृंखला के रूप में प्रस्तुत उपन्यास है। 1782 में चोडरलोस डी लैक्लोस द्वारा लिखित, यह 18 वीं शताब्दी के अंत में फ्रांसीसी अभिजात वर्ग के दो द्वंद्वयुद्ध नायक, विकोमेट डी वालमोंट और मार्क्विस डी मेर्टुइल के शातिर, नैतिक रूप से दिवालिया सामाजिक युद्धाभ्यास की कहानी कहता है। दोनों अंत में अपने निधन से मिलते हैं लेकिन सामाजिक क्षति का एक बड़ा सौदा किए बिना नहीं। उपन्यास उनके मंडलियों में विभिन्न लोगों को लिखे गए पत्रों की एक श्रृंखला के रूप में सामने आता है, जो बदला लेने की साजिश रच रहा है या बस परेशानी पैदा कर रहा है। कथा के प्रमुख सरगनाओं को नेत्रहीन रूप से खोजने के लिए इन पत्रों का एक विज़ुअलाइज़ेशन बनाएं। + +आप एक वेब ऐप पूरा करेंगे जो इस सोशल नेटवर्क का एक एनिमेटेड दृश्य प्रदर्शित करेगा। यह एक पुस्तकालय का उपयोग करता है जिसे Vue.js और D3 का उपयोग करके [एक नेटवर्क का दृश्य](https://github.com/emiliorizzo/vue-d3-network) बनाने के लिए बनाया गया था। जब ऐप चल रहा हो, तो आप डेटा को इधर-उधर करने के लिए स्क्रीन पर चारों ओर नोड्स खींच सकते हैं। +![liaisons](images/liaisons.png) + +## प्रोजेक्ट: D3.js का उपयोग करके नेटवर्क दिखाने के लिए एक चार्ट बनाएं + +> इस पाठ फ़ोल्डर में एक `solution` फ़ोल्डर शामिल है जहां आप अपने संदर्भ के लिए पूर्ण परियोजना ढूंढ सकते हैं। + +1. स्टार्टर फोल्डर के रूट में README.md फाइल में दिए गए निर्देशों का पालन करें। सुनिश्चित करें कि आपके प्रोजेक्ट की निर्भरता स्थापित करने से पहले आपके मशीन पर NPM और Node.js चल रहे हैं। + +2. `starter/src` फ़ोल्डर खोलें। आपको एक `assets` फ़ोल्डर मिलेगा जहां आप उपन्यास के सभी अक्षरों वाली एक .json फ़ाइल ढूंढ सकते हैं, जिसमें 'से' और 'प्रेषक' लिखावट हो। + +3. विज़ुअलाइज़ेशन को सक्षम करने के लिए कोड को `components/Nodes.vue` में पूरा करें। `createLinks()` नामक विधि की तलाश करें और निम्नलिखित नेस्टेड लूप जोड़ें। + +अक्षरों के लिए 'से' और 'से' डेटा कैप्चर करने के लिए .json ऑब्जेक्ट के माध्यम से लूप करें और `links` ऑब्जेक्ट का निर्माण करें ताकि विज़ुअलाइज़ेशन लाइब्रेरी इसका उपभोग कर सके: + +```javascript +// अक्षरों के माध्यम से लूप + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +टर्मिनल से अपना ऐप चलाएं (एनपीएम रन सर्व करें) और विज़ुअलाइज़ेशन का आनंद लें! + +## चुनौती + +भ्रामक विज़ुअलाइज़ेशन खोजने के लिए इंटरनेट का भ्रमण करें. लेखक उपयोगकर्ता को कैसे मूर्ख बनाता है, और क्या यह जानबूझकर किया गया है? विज़ुअलाइज़ेशन को यह दिखाने के लिए सही करने का प्रयास करें कि उन्हें कैसा दिखना चाहिए। + +## [व्याख्यान के बाद प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/25) + +## समीक्षा और आत्म अध्ययन + +भ्रामक डेटा विज़ुअलाइज़ेशन के बारे में पढ़ने के लिए यहां कुछ लेख दिए गए हैं: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +ऐतिहासिक संपत्तियों और कलाकृतियों के लिए इन रुचि विज़ुअलाइज़ेशन पर एक नज़र डालें: + +https://handbook.pubpub.org/ + +इस लेख को देखें कि एनीमेशन आपके विज़ुअलाइज़ेशन को कैसे बढ़ा सकता है: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## कार्यभार + +[अपना खुद का कस्टम विज़ुअलाइज़ेशन बनाएं](assignment.hi.md) From c3c61fad96abe89eef51eed14ffbfa375f1ef0bf Mon Sep 17 00:00:00 2001 From: imsushant12 Date: Thu, 14 Oct 2021 00:43:30 +0530 Subject: [PATCH 032/234] Added hindi translation of all Vizualization base README --- 3-Data-Visualization/translations/README.hi.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/3-Data-Visualization/translations/README.hi.md b/3-Data-Visualization/translations/README.hi.md index 3d900203..67525567 100644 --- a/3-Data-Visualization/translations/README.hi.md +++ b/3-Data-Visualization/translations/README.hi.md @@ -11,11 +11,11 @@ इन पांच पाठों में, आप प्रकृति से प्राप्त डेटा का पता लगाएंगे और विभिन्न तकनीकों का उपयोग करके दिलचस्प और सुंदर विज़ुअलाइज़ेशन बनाएंगे। ### Topics -1. [विज़ुअलाइज़िंग मात्रा](09-visualization-quantities/README.md) -1. [विज़ुअलाइज़िंग वितरण](10-visualization-distributions/README.md) -1. [विज़ुअलाइज़िंग अनुपात](11-visualization-proportions/README.md) -1. [रिश्तों की कल्पना](12-visualization-relationships/README.md) -1. [सार्थक विज़ुअलाइज़ेशन बनाना](13-meaningful-visualizations/README.md) +1. [विज़ुअलाइज़िंग मात्रा](09-visualization-quantities/translations/README.hi.mdREADME.hi.md) +1. [विज़ुअलाइज़िंग वितरण](10-visualization-distributions/translations/README.hi.md) +1. [विज़ुअलाइज़िंग अनुपात](11-visualization-proportions/translations/README.hi.md) +1. [रिश्तों की कल्पना](12-visualization-relationships/translations/README.hi.md) +1. [सार्थक विज़ुअलाइज़ेशन बनाना](13-meaningful-visualizations/translations/README.hi.md) ### Credits From 6a4c5f01e308ae7fdfec3409225a509c6ad6c412 Mon Sep 17 00:00:00 2001 From: imsushant12 Date: Thu, 14 Oct 2021 00:44:05 +0530 Subject: [PATCH 033/234] Added hindi translation of all Vizualization base README --- .../translations/README.hi.md | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 3-Data-Visualization/09-visualization-quantities/translations/README.hi.md diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.hi.md b/3-Data-Visualization/09-visualization-quantities/translations/README.hi.md new file mode 100644 index 00000000..d0745bfc --- /dev/null +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.hi.md @@ -0,0 +1,204 @@ +# विज़ुअलाइज़िंग मात्रा + +|![ सकेटच्नोते करने वाला [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| विज़ुअलाइज़िंग मात्रा - _सकेटच्नोते करने वाला [@nitya](https://twitter.com/nitya)_ | + +इस पाठ में आप यह पता लगाएंगे कि मात्रा की अवधारणा के चारों ओर दिलचस्प विज़ुअलाइज़ेशन कैसे बनाएं, यह जानने के लिए कई उपलब्ध पायथन पुस्तकालयों में से एक का उपयोग कैसे करें। मिनेसोटा के पक्षियों के बारे में साफ किए गए डेटासेट का उपयोग करके, आप स्थानीय वन्यजीवों के बारे में कई रोचक तथ्य जान सकते हैं। +## [प्री-रीडिंग क्विज](https://red-water-0103e7a0f.azurestaticapps.net/quiz/16) + +## माटप्लोटलिब के साथ पंखों का निरीक्षण करें + +सरल और परिष्कृत दोनों प्रकार के प्लॉट और विभिन्न प्रकार के चार्ट बनाने के लिए एक उत्कृष्ट पुस्तकालय है [माटप्लोटलिब](https://matplotlib.org/stable/index.html)। सामान्य शब्दों में, इन पुस्तकालयों का उपयोग करके डेटा को प्लॉट करने की प्रक्रिया में आपके डेटाफ़्रेम के उन हिस्सों की पहचान करना शामिल है जिन्हें आप लक्षित करना चाहते हैं, उस डेटा पर कोई भी आवश्यक परिवर्तन करना, इसके x और y अक्ष मान निर्दिष्ट करना, यह तय करना कि किस प्रकार का प्लॉट दिखाना है, और फिर साजिश दिखा रहा है। माटप्लोटलिब विज़ुअलाइज़ेशन की एक विशाल विविधता प्रदान करता है, लेकिन इस पाठ के लिए, आइए उन पर ध्यान केंद्रित करें जो मात्रा को देखने के लिए सबसे उपयुक्त हैं: लाइन चार्ट, स्कैटरप्लॉट और बार प्लॉट। + +> ✅ अपने डेटा की संरचना और जो कहानी आप बताना चाहते हैं, उसके अनुरूप सर्वोत्तम चार्ट का उपयोग करें। +> - समय के साथ रुझानों का विश्लेषण करने के लिए: लाइन +> - मानों की तुलना करने के लिए: बार, कॉलम, पाई, स्कैटरप्लॉट +> - यह दिखाने के लिए कि भाग किस प्रकार संपूर्ण से संबंधित हैं: पाई +> - डेटा का वितरण दिखाने के लिए: स्कैटरप्लॉट, बार +> - रुझान दिखाने के लिए: लाइन, कॉलम +> - मानों के बीच संबंध दिखाने के लिए: लाइन, स्कैटरप्लॉट, बबल + +यदि आपके पास एक डेटासेट है और यह पता लगाने की आवश्यकता है कि किसी दिए गए आइटम में से कितना शामिल है, तो आपके पास सबसे पहले कार्यों में से एक इसके मूल्यों का निरीक्षण करना होगा। + +✅ माटप्लोटलिब के लिए बहुत अच्छी 'चीट शीट' उपलब्ध हैं [here](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-1.png) and [here](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-2.png). + +## बर्ड विंगस्पैन मूल्यों के बारे में एक लाइन प्लॉट बनाएं + +इस पाठ फ़ोल्डर के मूल में `नोटबुक.आईपीएनबी` फ़ाइल खोलें और एक सेल जोड़ें। + +> नोट: डेटा इस रेपो की जड़ में `/आंकड़े` फ़ोल्डर में संग्रहीत है। + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +यह डेटा टेक्स्ट और संख्याओं का मिश्रण है: + + +| | नाम | वैज्ञानिक नाम | श्रेणी | आदेश | परिवार | जाति | संरक्षण की स्थिति | न्यूनतम लंबाई | अधिकतम लंबाई | मिनबॉडीमास | मैक्सबॉडीमास | मिनविंगस्पैन | मैक्सविंगस्पैन | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | ब्लैक-बेल्ड सीटी-बतख | डेंड्रोसाइग्ना ऑटमलिस | बतख / गीज़ / जलपक्षी | अंसेरी फॉर्म्स | अनाटिडे | डेंड्रोसाइग्ना | एल सी | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | फुल्वस सीटी-बतख | डेंड्रोसाइग्ना बाइकलर | बतख / गीज़ / जलपक्षी | अंसेरी फॉर्म्स | अनाटिडे | डेंड्रोसाइग्ना | एल सी | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | हिम हंस | Anser caerulescens | बतख / गीज़ / जलपक्षी | अंसेरी फॉर्म्स | अनाटिडे | Anser | एल सी | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | रॉस हंस | Anser rossii | बतख / गीज़ / जलपक्षी | अंसेरी फॉर्म्स | अनाटिडे | Anser | एल सी | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | ग्रेटर व्हाइट-फ्रंटेड गूज | Anser albifrons | बतख / गीज़ / जलपक्षी | अंसेरी फॉर्म्स | अनाटिडे | Anser | एल सी | 64 | 81 | 1930 | 3310 | 130 | 165 | + +आइए बुनियादी लाइन प्लॉट का उपयोग करके कुछ संख्यात्मक डेटा को प्लॉट करके शुरू करें। मान लीजिए आप इन दिलचस्प पक्षियों के लिए अधिकतम पंखों का दृश्य चाहते हैं। + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![मैक्स विंगस्पैन](images/max-wingspan.png) + +आप तुरंत क्या नोटिस करते हैं? ऐसा लगता है कि कम से कम एक बाहरी है - वह काफी पंख है! एक २३०० सेंटीमीटर पंखों का फैलाव २३ मीटर के बराबर होता है - क्या मिनेसोटा में पटरोडैक्टाइल घूम रहे हैं? आइए जांच करते हैं। + +जबकि आप उन आउटलेर्स को खोजने के लिए एक्सेल में एक त्वरित सॉर्ट कर सकते हैं, जो शायद टाइपो हैं, प्लॉट के भीतर से काम करके विज़ुअलाइज़ेशन प्रक्रिया जारी रखें। + +प्रश्न में किस प्रकार के पक्षी हैं, यह दिखाने के लिए x-अक्ष में लेबल जोड़ें: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![लेबल के साथ विंगस्पैन](images/max-wingspan-labels.png) + +यहां तक ​​कि लेबल के रोटेशन को 45 डिग्री पर सेट करने के बाद भी, पढ़ने के लिए बहुत कुछ है। आइए एक अलग रणनीति का प्रयास करें: केवल उन आउटलेर्स को लेबल करें और चार्ट के भीतर लेबल सेट करें। लेबलिंग के लिए अधिक जगह बनाने के लिए आप स्कैटर चार्ट का उपयोग कर सकते हैं: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` +यहाँ क्या चल रहा है? आपने निचले लेबल को छिपाने के लिए `tick_params` का उपयोग किया और फिर अपने पक्षियों के डेटासेट पर एक लूप बनाया। 'बो' का उपयोग करके छोटे गोल नीले डॉट्स वाले चार्ट को प्लॉट करते हुए, आपने 500 से अधिक पंखों वाले किसी भी पक्षी की जाँच की और यदि ऐसा है तो डॉट के बगल में उनका लेबल प्रदर्शित किया। आप y अक्ष (`वाई * (1 - 0.05)`) पर लेबल को थोड़ा सा ऑफसेट करते हैं और एक लेबल के रूप में पक्षी के नाम का उपयोग करते हैं। + +आपने क्या खोजा? + +![बाहरी कारकों के कारण](images/labeled-wingspan.png) +## अपना डेटा फ़िल्टर करें + +बाल्ड ईगल और प्रेयरी फाल्कन दोनों, जबकि शायद बहुत बड़े पक्षी, गलत लेबल वाले प्रतीत होते हैं, उनके अधिकतम पंखों में अतिरिक्त `0` जोड़ा जाता है। यह संभावना नहीं है कि आप 25 मीटर पंखों वाले बाल्ड ईगल से मिलेंगे, लेकिन यदि ऐसा है, तो कृपया हमें बताएं! आइए उन दो आउटलेर्स के बिना एक नया डेटाफ़्रेम बनाएं: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +आउटलेर्स को फ़िल्टर करके, आपका डेटा अब अधिक सुसंगत और समझने योग्य है। + +![पंखों का बिखराव](images/scatterplot-wingspan.png) + +अब जबकि हमारे पास कम से कम पंखों के मामले में एक क्लीनर डेटासेट है, तो आइए इन पक्षियों के बारे में और जानें। + +जबकि लाइन और स्कैटर प्लॉट डेटा मानों और उनके वितरण के बारे में जानकारी प्रदर्शित कर सकते हैं, हम इस डेटासेट में निहित मूल्यों के बारे में सोचना चाहते हैं। आप मात्रा के बारे में निम्नलिखित प्रश्नों के उत्तर देने के लिए विज़ुअलाइज़ेशन बना सकते हैं: + +> पक्षियों की कितनी श्रेणियां हैं और उनकी संख्या क्या है? +> कितने पक्षी विलुप्त, संकटग्रस्त, दुर्लभ या सामान्य हैं? +> लिनिअस की शब्दावली में विभिन्न जीनस और आदेश कितने हैं? +## बार चार्ट का अन्वेषण करें + +बार चार्ट व्यावहारिक होते हैं जब आपको डेटा के समूह दिखाने की आवश्यकता होती है। आइए इस डेटासेट में मौजूद पक्षियों की श्रेणियों का पता लगाएं, यह देखने के लिए कि संख्या के हिसाब से कौन सा सबसे आम है। + +नोटबुक फ़ाइल में, एक मूल बार चार्ट बनाएं + +✅ ध्यान दें, आप या तो पिछले अनुभाग में पहचाने गए दो बाहरी पक्षियों को फ़िल्टर कर सकते हैं, उनके पंखों में टाइपो को संपादित कर सकते हैं, या उन्हें इन अभ्यासों के लिए छोड़ सकते हैं जो पंखों के मूल्यों पर निर्भर नहीं करते हैं। + +यदि आप एक बार चार्ट बनाना चाहते हैं, तो आप उस डेटा का चयन कर सकते हैं जिस पर आप ध्यान केंद्रित करना चाहते हैं। कच्चे डेटा से बार चार्ट बनाए जा सकते हैं: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![बार चार्ट के रूप में पूर्ण डेटा](images/full-data-bar.png) + +हालांकि, यह बार चार्ट अपठनीय है क्योंकि इसमें बहुत अधिक गैर-समूहीकृत डेटा है। आपको केवल उस डेटा का चयन करने की आवश्यकता है जिसे आप प्लॉट करना चाहते हैं, तो आइए उनकी श्रेणी के आधार पर पक्षियों की लंबाई देखें। + +केवल पक्षी की श्रेणी को शामिल करने के लिए अपना डेटा फ़िल्टर करें। + +✅ ध्यान दें कि आप डेटा को प्रबंधित करने के लिए पंडों का उपयोग करते हैं, और फिर माटप्लोटलिब को चार्टिंग करने दें। + +चूंकि कई श्रेणियां हैं, आप इस चार्ट को लंबवत रूप से प्रदर्शित कर सकते हैं और सभी डेटा के हिसाब से इसकी ऊंचाई को बदल सकते हैं: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![श्रेणी और लंबाई](images/category-counts.png) + +यह बार चार्ट प्रत्येक श्रेणी में पक्षियों की संख्या का एक अच्छा दृश्य दिखाता है। पलक झपकते ही, आप देखते हैं कि इस क्षेत्र में पक्षियों की सबसे बड़ी संख्या बतख/गीज़/जलपक्षी श्रेणी में है। मिनेसोटा '10,000 झीलों की भूमि' है इसलिए यह आश्चर्य की बात नहीं है! + +✅ इस डेटासेट पर कुछ और मायने रखने की कोशिश करें। क्या आपको कुछ आश्चर्य होता है? + +## डेटा की तुलना करना + +आप नए अक्ष बनाकर समूहीकृत डेटा की विभिन्न तुलनाओं को आज़मा सकते हैं। किसी पक्षी की श्रेणी के आधार पर उसकी अधिकतम लंबाई की तुलना करने का प्रयास करें: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![डेटा की तुलना करना](images/category-length.png) + +यहां कुछ भी आश्चर्य की बात नहीं है: हमिंगबर्ड में पेलिकन या गीज़ की तुलना में कम से कम अधिकतम लंबाई होती है। यह अच्छा है जब डेटा तार्किक समझ में आता है! + +आप डेटा को सुपरइम्पोज़ करके बार चार्ट के अधिक दिलचस्प विज़ुअलाइज़ेशन बना सकते हैं। आइए किसी दी गई पक्षी श्रेणी पर न्यूनतम और अधिकतम लंबाई को सुपरइम्पोज़ करें: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +इस प्लॉट में आप न्यूनतम लंबाई और अधिकतम लंबाई की प्रति पक्षी श्रेणी की सीमा देख सकते हैं। आप सुरक्षित रूप से कह सकते हैं कि, इस डेटा को देखते हुए, पक्षी जितना बड़ा होगा, उसकी लंबाई सीमा उतनी ही बड़ी होगी। चित्ताकर्षक! + +![superimposed values](images/superimposed.png) + +## 🚀 चुनौती + +यह पक्षी डेटासेट एक विशेष पारिस्थितिकी तंत्र के भीतर विभिन्न प्रकार के पक्षियों के बारे में जानकारी का खजाना प्रदान करता है। इंटरनेट के चारों ओर खोजें और देखें कि क्या आप अन्य पक्षी-उन्मुख डेटासेट पा सकते हैं। उन तथ्यों की खोज करने के लिए इन पक्षियों के चारों ओर चार्ट और ग्राफ़ बनाने का अभ्यास करें जिन्हें आपने महसूस नहीं किया है। +## [व्याख्यान के बाद प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/17) + +## समीक्षा और स्व अध्ययन + +इस पहले पाठ ने आपको मात्राओं की कल्पना करने के लिए Matplotlib का उपयोग करने के तरीके के बारे में कुछ जानकारी दी है। विज़ुअलाइज़ेशन के लिए डेटासेट के साथ काम करने के अन्य तरीकों के बारे में कुछ शोध करें। [प्लॉटली](https://github.com/plotly/plotly.py) प्वह है जिसे हम इन पाठों में शामिल नहीं करेंगे, इसलिए देखें कि यह क्या पेशकश कर सकता है। +## कार्यभार + +[लाइन्स, स्कैटर, और बार्स](assignment.md) From 378861982982ffff1f3c4731f75173fdbe530424 Mon Sep 17 00:00:00 2001 From: imsushant12 Date: Thu, 14 Oct 2021 00:44:31 +0530 Subject: [PATCH 034/234] Added hindi translation of all Vizualization base README --- .../translations/README.hi.md | 191 ++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 3-Data-Visualization/10-visualization-distributions/translations/README.hi.md diff --git a/3-Data-Visualization/10-visualization-distributions/translations/README.hi.md b/3-Data-Visualization/10-visualization-distributions/translations/README.hi.md new file mode 100644 index 00000000..161d4571 --- /dev/null +++ b/3-Data-Visualization/10-visualization-distributions/translations/README.hi.md @@ -0,0 +1,191 @@ +# विज़ुअलाइज़िंग वितरण + +|![ सकेटच्नोते करने वाला [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| विज़ुअलाइज़िंग वितरण - _सकेटच्नोते करने वाला [@nitya](https://twitter.com/nitya)_ | + +In the previous lesson, you learned some interesting facts about a dataset about the birds of Minnesota. You found some erroneous data by visualizing outliers and looked at the differences between bird categories by their maximum length. + +## [प्री-लेक्चर क्विज](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) +## पक्षियों के डेटासेट का अन्वेषण करें + +डेटा में खुदाई करने का दूसरा तरीका इसके वितरण को देखना है, या डेटा को एक अक्ष के साथ कैसे व्यवस्थित किया जाता है। शायद, उदाहरण के लिए, आप इस डेटासेट के सामान्य वितरण के बारे में जानना चाहेंगे, मिनेसोटा के पक्षियों के लिए अधिकतम पंख या अधिकतम शरीर द्रव्यमान। + +आइए इस डेटासेट में डेटा के वितरण के बारे में कुछ तथ्यों की खोज करें। इस पाठ फ़ोल्डर के मूल में _नोटबुक.आईपीएनबी_ फ़ाइल में, पांडा, मैटप्लोटलिब और अपना डेटा आयात करें: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` + +सामान्य तौर पर, आप देख सकते हैं कि स्कैटर प्लॉट का उपयोग करके डेटा कैसे वितरित किया जाता है, जैसा कि हमने पिछले पाठ में किया था: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` +यह प्रति पक्षी क्रम में शरीर की लंबाई के सामान्य वितरण का एक सिंहावलोकन देता है, लेकिन यह सही वितरण प्रदर्शित करने का सबसे अच्छा तरीका नहीं है। उस कार्य को आमतौर पर हिस्टोग्राम बनाकर नियंत्रित किया जाता है। +## हिस्टोग्राम के साथ काम करना + +माटप्लोटलिब हिस्टोग्राम का उपयोग करके डेटा वितरण की कल्पना करने के लिए बहुत अच्छे तरीके प्रदान करता है। इस प्रकार का चार्ट एक बार चार्ट की तरह होता है जहां वितरण को बार के ऊपर और नीचे के माध्यम से देखा जा सकता है। हिस्टोग्राम बनाने के लिए, आपको संख्यात्मक डेटा की आवश्यकता होती है। हिस्टोग्राम बनाने के लिए, आप हिस्टोग्राम के लिए 'इतिहास' के रूप में परिभाषित एक चार्ट तैयार कर सकते हैं। यह चार्ट संख्यात्मक डेटा की संपूर्ण डेटासेट की श्रेणी के लिए MaxBodyMass के वितरण को दर्शाता है। डेटा की सरणी को विभाजित करके इसे छोटे डिब्बे में दिया जाता है, यह डेटा के मूल्यों के वितरण को प्रदर्शित कर सकता है: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` +![संपूर्ण डेटासेट पर वितरण](images/dist1.png) + +जैसा कि आप देख सकते हैं, इस डेटासेट में 400+ पक्षी अपने मैक्स बॉडी मास के लिए 2000 से कम की सीमा में आते हैं। `बिन्स` पैरामीटर को अधिक संख्या में बदलकर डेटा में अधिक जानकारी प्राप्त करें, जैसे कुछ 30: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` +![बड़े डिब्बे परम के साथ संपूर्ण डेटासेट पर वितरण](images/dist2.png) + +यह चार्ट वितरण को कुछ अधिक बारीक तरीके से दिखाता है। यह सुनिश्चित करके कि आप केवल एक दी गई सीमा के भीतर डेटा का चयन करते हैं, बाईं ओर कम तिरछा एक चार्ट बनाया जा सकता है: + +केवल उन पक्षियों को प्राप्त करने के लिए अपना डेटा फ़िल्टर करें जिनके शरीर का द्रव्यमान 60 से कम है, और 40 `डिब्बे` दिखाएं: + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![फ़िल्टर्ड हिस्टोग्राम](images/dist3.png) + +✅ कुछ अन्य फ़िल्टर और डेटा बिंदु आज़माएं। डेटा का पूरा वितरण देखने के लिए, लेबल किए गए वितरण दिखाने के लिए `['मैक्सबॉडीमास']` फ़िल्टर को हटा दें। + +हिस्टोग्राम भी कोशिश करने के लिए कुछ अच्छे रंग और लेबलिंग संवर्द्धन प्रदान करता है: + +दो वितरणों के बीच संबंध की तुलना करने के लिए एक 2डी हिस्टोग्राम बनाएं। आइए `मैक्सबॉडीमास` बनाम `अधिकतम लंबाई` की तुलना करें। माटप्लोटलिब चमकीले रंगों का उपयोग करके अभिसरण दिखाने के लिए एक अंतर्निहित तरीका प्रदान करता है: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` +एक विशेष रूप से मजबूत अभिसरण बिंदु के साथ, एक अपेक्षित अक्ष के साथ इन दो तत्वों के बीच एक अपेक्षित सहसंबंध प्रतीत होता है: + +![2डी प्लॉट](images/2D.png) + +संख्यात्मक डेटा के लिए हिस्टोग्राम डिफ़ॉल्ट रूप से अच्छी तरह से काम करते हैं। क्या होगा यदि आपको टेक्स्ट डेटा के अनुसार वितरण देखने की आवश्यकता है? +## टेक्स्ट डेटा का उपयोग करके वितरण के लिए डेटासेट का अन्वेषण करें + +इस डेटासेट में पक्षी श्रेणी और उसके जीनस, प्रजातियों और परिवार के साथ-साथ इसके संरक्षण की स्थिति के बारे में अच्छी जानकारी भी शामिल है। आइए इस संरक्षण जानकारी में खुदाई करें। पक्षियों का वितरण उनकी संरक्षण स्थिति के अनुसार क्या है? + +> ✅ डेटासेट में, संरक्षण की स्थिति का वर्णन करने के लिए कई समरूपों का उपयोग किया जाता है। ये एक्रोनिम्स [IUCN रेड लिस्ट कैटेगरी](https://www.iucnredlist.org/) से आते हैं, जो एक संगठन है जो प्रजातियों की स्थिति को सूचीबद्ध करता है। +> +> - सीआर: गंभीर रूप से संकटग्रस्त +> - एन: लुप्तप्राय +> - पूर्व: विलुप्त +> - एलसी: कम से कम चिंता +> - एनटी: खतरे के पास +> - वीयू: कमजोर + +ये टेक्स्ट-आधारित मान हैं इसलिए आपको हिस्टोग्राम बनाने के लिए एक ट्रांसफ़ॉर्म करना होगा। फ़िल्टर्ड बर्ड्स डेटाफ़्रेम का उपयोग करते हुए, इसके न्यूनतम विंगस्पैन के साथ-साथ इसकी संरक्षण स्थिति प्रदर्शित करें। क्या देखती है? + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Max Body Mass') +plt.legend(); +``` + +![विंगस्पैन और संरक्षण संयोजन](images/histogram-conservation.png) + +न्यूनतम पंखों की अवधि और संरक्षण की स्थिति के बीच कोई अच्छा संबंध प्रतीत नहीं होता है। इस पद्धति का उपयोग करके डेटासेट के अन्य तत्वों का परीक्षण करें। आप अलग-अलग फ़िल्टर भी आज़मा सकते हैं। क्या आप कोई सहसंबंध पाते हैं? +## घनत्व भूखंड + +आपने देखा होगा कि अब तक हमने जिन आयतचित्रों को देखा है वे 'चरणबद्ध' हैं और एक चाप में सुचारू रूप से प्रवाहित नहीं होते हैं। एक आसान घनत्व चार्ट दिखाने के लिए, आप एक घनत्व प्लॉट आज़मा सकते हैं। + +घनत्व वाले भूखंडों के साथ काम करने के लिए, अपने आप को एक नई प्लॉटिंग लाइब्रेरी से परिचित कराएं, [सीबॉर्न](https://seaborn.pydata.org/generated/seaborn.kdeplot.html). + +सीबॉर्न लोड हो रहा है, एक बुनियादी घनत्व प्लॉट आज़माएं: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![घनत्व प्लॉट](images/density1.png) + +आप देख सकते हैं कि न्यूनतम विंगस्पैन डेटा के लिए प्लॉट पिछले वाले को कैसे गूँजता है; यह थोड़ा चिकना है। सीबॉर्न के दस्तावेज़ीकरण के अनुसार, "हिस्टोग्राम के सापेक्ष, केडीई एक ऐसे प्लॉट का निर्माण कर सकता है जो कम अव्यवस्थित और अधिक व्याख्या योग्य हो, विशेष रूप से कई वितरणों को चित्रित करते समय। लेकिन इसमें विकृतियों को पेश करने की क्षमता होती है यदि अंतर्निहित वितरण बाध्य है या सुचारू नहीं है। जैसे हिस्टोग्राम, प्रतिनिधित्व की गुणवत्ता भी अच्छे चौरसाई मापदंडों के चयन पर निर्भर करती है।" [स्रोत](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) दूसरे शब्दों में, आउटलेयर हमेशा की तरह आपके चार्ट को खराब व्यवहार करेंगे। + +यदि आप अपने द्वारा बनाए गए दूसरे चार्ट में उस दांतेदार मैक्सबॉडीमास लाइन को फिर से देखना चाहते हैं, तो आप इस पद्धति का उपयोग करके इसे फिर से बनाकर इसे बहुत अच्छी तरह से सुचारू कर सकते हैं: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![चिकनी बॉडीमास लाइन](images/density2.png) + +यदि आप एक चिकनी, लेकिन बहुत चिकनी रेखा नहीं चाहते हैं, तो `bw_adjust` पैरामीटर संपादित करें: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![कम चिकनी बॉडीमास लाइन](images/density3.png) + +✅ इस प्रकार के प्लॉट और प्रयोग के लिए उपलब्ध मापदंडों के बारे में पढ़ें! + +इस प्रकार का चार्ट खूबसूरती से व्याख्यात्मक दृश्य प्रस्तुत करता है। कोड की कुछ पंक्तियों के साथ, उदाहरण के लिए, आप प्रति पक्षी अधिकतम शरीर द्रव्यमान घनत्व दिखा सकते हैं: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![प्रति आदेश बॉडीमास](images/density4.png) + +आप एक चार्ट में कई चरों के घनत्व को भी मैप कर सकते हैं। किसी पक्षी की संरक्षण स्थिति की तुलना में उसकी अधिकतम लंबाई और न्यूनतम लंबाई को टेक्स्ट करें: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![एकाधिक घनत्व, आरोपित](images/multi.png) + +शायद यह शोध करने लायक है कि 'कमजोर' पक्षियों का समूह उनकी लंबाई के अनुसार सार्थक है या नहीं। + +## 🚀 चुनौती + +हिस्टोग्राम बुनियादी स्कैटरप्लॉट, बार चार्ट या लाइन चार्ट की तुलना में अधिक परिष्कृत प्रकार के चार्ट हैं। हिस्टोग्राम के उपयोग के अच्छे उदाहरण खोजने के लिए इंटरनेट पर खोज करें। उनका उपयोग कैसे किया जाता है, वे क्या प्रदर्शित करते हैं, और किन क्षेत्रों या पूछताछ के क्षेत्रों में उनका उपयोग किया जाता है? + +## [व्याख्यान के बाद प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/19) + +## समीक्षा और स्व अध्ययन + +इस पाठ में, आपने Matplotlib का उपयोग किया और अधिक परिष्कृत चार्ट दिखाने के लिए Seaborn के साथ काम करना शुरू किया। सीबॉर्न में `केडीप्लॉट` पर कुछ शोध करें, "एक या अधिक आयामों में निरंतर संभाव्यता घनत्व वक्र"। यह कैसे काम करता है, यह समझने के लिए [दस्तावेज](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) पढ़ें। + +## कार्यभार + +[अपने कौशल को लागू करें](assignment.md) From a129071451117ec9340182895d0074ebfdd7e329 Mon Sep 17 00:00:00 2001 From: imsushant12 Date: Thu, 14 Oct 2021 00:44:50 +0530 Subject: [PATCH 035/234] Added hindi translation of all Vizualization base README --- .../translations/README.hi.md | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 3-Data-Visualization/11-visualization-proportions/translations/README.hi.md diff --git a/3-Data-Visualization/11-visualization-proportions/translations/README.hi.md b/3-Data-Visualization/11-visualization-proportions/translations/README.hi.md new file mode 100644 index 00000000..53e1b342 --- /dev/null +++ b/3-Data-Visualization/11-visualization-proportions/translations/README.hi.md @@ -0,0 +1,184 @@ +# विज़ुअलाइज़िंग अनुपात + +|![ सकेटच्नोते करने वाला [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|विज़ुअलाइज़िंग अनुपात - _सकेटच्नोते करने वाला [@nitya](https://twitter.com/nitya)_ | + +इस पाठ में, आप अनुपात की कल्पना करने के लिए एक अलग प्रकृति-केंद्रित डेटासेट का उपयोग करेंगे, जैसे कि मशरूम के बारे में दिए गए डेटासेट में कितने अलग-अलग प्रकार के कवक आते हैं। आइए ऑडबोन सूची से प्राप्त डेटासेट का उपयोग करके इन आकर्षक कवक का पता लगाएं, एग्रिकस और लेपियोटा परिवारों में ग्रील्ड मशरूम की 23 प्रजातियों के बारे में विवरण। आप स्वादिष्ट विज़ुअलाइज़ेशन के साथ प्रयोग करेंगे जैसे: + +- पाई चार्ट 🥧 +- डोनट चार्ट 🍩 +- वफ़ल चार्ट 🧇 + + +> 💡 माइक्रोसॉफ्ट अनुसंधान द्वारा [चार्टिकुलेटर](https://charticulator.com) नामक एक बहुत ही रोचक परियोजना डेटा विज़ुअलाइज़ेशन के लिए एक निःशुल्क ड्रैग एंड ड्रॉप इंटरफ़ेस प्रदान करती है। अपने एक ट्यूटोरियल में वे इस मशरूम डेटासेट का भी उपयोग करते हैं! तो आप एक ही समय में डेटा का पता लगा सकते हैं और पुस्तकालय सीख सकते हैं: [चार्टिकुलेटर ट्यूटोरियल](https://charticulator.com/tutorials/tutorial4.html)। + +## [प्री-लेक्चर क्विज](https://red-water-0103e7a0f.azurestaticapps.net/quiz/20) + +## अपने मशरूम को जानें 🍄 + +मशरूम बहुत दिलचस्प हैं। आइए उनका अध्ययन करने के लिए एक डेटासेट आयात करें: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +विश्लेषण के लिए कुछ महान डेटा के साथ एक तालिका मुद्रित की जाती है: + + +| class | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | stalk-root | stalk-surface-above-ring | stalk-surface-below-ring | stalk-color-above-ring | stalk-color-below-ring | veil-type | veil-color | ring-number | ring-type | spore-print-color | population | habitat | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Poisonous | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Edible | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Edible | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Poisonous | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | + +तुरंत, आप देखते हैं कि सभी डेटा टेक्स्टुअल है। चार्ट में इसका उपयोग करने में सक्षम होने के लिए आपको इस डेटा को परिवर्तित करना होगा। अधिकांश डेटा, वास्तव में, एक वस्तु के रूप में दर्शाया जाता है: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +आउटपुट है: + +```output +Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor', + 'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color', + 'stalk-shape', 'stalk-root', 'stalk-surface-above-ring', + 'stalk-surface-below-ring', 'stalk-color-above-ring', + 'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number', + 'ring-type', 'spore-print-color', 'population', 'habitat'], + dtype='object') +``` +यह डेटा लें और 'वर्ग' कॉलम को एक श्रेणी में बदलें: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` +अब, यदि आप मशरूम डेटा का प्रिंट आउट लेते हैं, तो आप देख सकते हैं कि इसे जहरीले/खाद्य वर्ग के अनुसार श्रेणियों में बांटा गया है: + + +| | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | stalk-surface-below-ring | stalk-color-above-ring | stalk-color-below-ring | veil-type | veil-color | ring-number | ring-type | spore-print-color | population | habitat | +| --------- | --------- | ----------- | --------- | ------- | ---- | --------------- | ------------ | --------- | ---------- | ----------- | --- | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| class | | | | | | | | | | | | | | | | | | | | | | +| Edible | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| Poisonous | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +यदि आप अपने वर्ग श्रेणी लेबल बनाने के लिए इस तालिका में प्रस्तुत क्रम का पालन करते हैं, तो आप एक पाई चार्ट बना सकते हैं: + +## Pie! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +वोइला, मशरूम के इन दो वर्गों के अनुसार इस डेटा के अनुपात को दर्शाने वाला एक पाई चार्ट। लेबल के क्रम को सही करना बहुत महत्वपूर्ण है, विशेष रूप से यहां, इसलिए उस क्रम को सत्यापित करना सुनिश्चित करें जिसके साथ लेबल सरणी बनाई गई है! + +![पाई चार्ट](images/pie1.png) + +## डोनट्स! + +कुछ अधिक नेत्रहीन दिलचस्प पाई चार्ट एक डोनट चार्ट है, जो बीच में एक छेद के साथ एक पाई चार्ट है। आइए इस पद्धति का उपयोग करके हमारे डेटा को देखें। + +विभिन्न आवासों पर एक नज़र डालें जहाँ मशरूम उगते हैं: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +यहां, आप अपने डेटा को आवास के आधार पर समूहित कर रहे हैं। 7 सूचीबद्ध हैं, इसलिए उन्हें अपने डोनट चार्ट के लिए लेबल के रूप में उपयोग करें: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![डोनट चार्ट](images/donut.png) + +यह कोड एक चार्ट और एक केंद्र वृत्त बनाता है, फिर उस केंद्र वृत्त को चार्ट में जोड़ता है। `0.40` को दूसरे मान में बदलकर केंद्र वृत्त की चौड़ाई संपादित करें। + +डोनट चार्ट को लेबल बदलने के लिए कई तरह से ट्वीक किया जा सकता है। विशेष रूप से लेबल को पठनीयता के लिए हाइलाइट किया जा सकता है। [दस्तावेज़] (https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut) में और जानें। + +अब जबकि आप जानते हैं कि अपने डेटा को कैसे समूहबद्ध करना है और फिर उसे पाई या डोनट के रूप में प्रदर्शित करना है, तो आप अन्य प्रकार के चार्टों को एक्सप्लोर कर सकते हैं। एक वफ़ल चार्ट आज़माएं, जो मात्रा की खोज का एक अलग तरीका है। +## Waffles! + +एक 'वफ़ल' प्रकार का चार्ट मात्राओं को वर्गों के 2डी सरणी के रूप में देखने का एक अलग तरीका है। इस डेटासेट में मशरूम कैप रंगों की विभिन्न मात्राओं को देखने का प्रयास करें। ऐसा करने के लिए, आपको [PyWaffle](https://pypi.org/project/pywaffle/) नामक एक सहायक पुस्तकालय स्थापित करने और Matplotlib का उपयोग करने की आवश्यकता है: + +```python +pip install pywaffle +``` + +समूह के लिए अपने डेटा का एक खंड चुनें: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +लेबल बनाकर और फिर अपने डेटा को समूहीकृत करके एक वफ़ल चार्ट बनाएं: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +वफ़ल चार्ट का उपयोग करके, आप स्पष्ट रूप से इस मशरूम डेटासेट के कैप रंगों के अनुपात को देख सकते हैं। दिलचस्प बात यह है कि कई हरे-छिपे हुए मशरूम हैं! + +![वफ़ल चार्ट](images/waffle.png) + +✅ Pywaffle उन चार्ट के भीतर आइकन का समर्थन करता है जो [Font Awesome](https://fontawesome.com/) में उपलब्ध किसी भी आइकन का उपयोग करते हैं। वर्गों के बजाय आइकन का उपयोग करके और भी अधिक रोचक वफ़ल चार्ट बनाने के लिए कुछ प्रयोग करें। + +इस पाठ में, आपने अनुपातों की कल्पना करने के तीन तरीके सीखे। सबसे पहले, आपको अपने डेटा को श्रेणियों में समूहित करना होगा और फिर यह तय करना होगा कि डेटा प्रदर्शित करने का सबसे अच्छा तरीका कौन सा है - पाई, डोनट, या वफ़ल। सभी स्वादिष्ट हैं और डेटासेट के तत्काल स्नैपशॉट के साथ उपयोगकर्ता को संतुष्ट करते हैं। +## 🚀 चुनौती + +इन स्वादिष्ट चार्ट को फिर से बनाने का प्रयास करें [चार्टिकुलेटर](https://charticulator.com). +## [व्याख्यान के बाद प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/21) + +## समीक्षा और आत्म अध्ययन + +कभी-कभी यह स्पष्ट नहीं होता कि पाई, डोनट, या वफ़ल चार्ट का उपयोग कब करना है। इस विषय पर पढ़ने के लिए यहां कुछ लेख दिए गए हैं: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +इस चिपचिपे निर्णय के बारे में अधिक जानकारी प्राप्त करने के लिए कुछ शोध करें। +## कार्यभार + +[इसे एक्सेल में आज़माएं](assignment.md) From 7c2ca6e3c77c7a8d989dc080b6b8b87210c1f87e Mon Sep 17 00:00:00 2001 From: imsushant12 Date: Thu, 14 Oct 2021 00:45:13 +0530 Subject: [PATCH 036/234] Added hindi translation of all Vizualization base README --- .../translations/README.hi.md | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 3-Data-Visualization/12-visualization-relationships/translations/README.hi.md diff --git a/3-Data-Visualization/12-visualization-relationships/translations/README.hi.md b/3-Data-Visualization/12-visualization-relationships/translations/README.hi.md new file mode 100644 index 00000000..247d580d --- /dev/null +++ b/3-Data-Visualization/12-visualization-relationships/translations/README.hi.md @@ -0,0 +1,173 @@ +# रिश्तों की कल्पना: शहद के बारे में सब कुछ + +|![ सकेटच्नोते करने वाला [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|रिश्तों की कल्पना - _सकेटच्नोते करने वाला [@nitya](https://twitter.com/nitya)_ | + +[यूनाइटेड स्टेट्स डिपार्टमेंट ऑफ़ एग्रीकल्चर](https://www.nass.usda.gov/) से प्राप्त एक डेटासेट के अनुसार, अपने शोध के प्रकृति फ़ोकस को जारी रखते हुए, आइए विभिन्न प्रकार के शहद के बीच संबंधों को दिखाने के लिए दिलचस्प विज़ुअलाइज़ेशन खोजें। लगभग_NASS/index.php)। + +लगभग ६०० वस्तुओं का यह डेटासेट कई यू.एस. राज्यों में शहद उत्पादन को प्रदर्शित करता है। इसलिए, उदाहरण के लिए, आप प्रत्येक राज्य के लिए प्रति वर्ष एक पंक्ति के साथ, 1998-2012 से किसी दिए गए राज्य में उत्पादित कॉलोनियों की संख्या, प्रति कॉलोनी उपज, कुल उत्पादन, स्टॉक, मूल्य प्रति पाउंड और शहद का मूल्य देख सकते हैं। . + +किसी दिए गए राज्य के प्रति वर्ष उत्पादन और, उदाहरण के लिए, उस राज्य में शहद की कीमत के बीच संबंधों की कल्पना करना दिलचस्प होगा। वैकल्पिक रूप से, आप प्रति कॉलोनी राज्यों की शहद उपज के बीच संबंधों की कल्पना कर सकते हैं। इस वर्ष की अवधि में विनाशकारी 'सीसीडी' या 'कॉलोनी पतन विकार' शामिल है जिसे पहली बार 2006 में देखा गया था (http://npic.orst.edu/envir/ccd.html), इसलिए यह अध्ययन करने के लिए एक मार्मिक डेटासेट है।🐝 + +## [व्याख्यान पूर्व प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/22) + +इस पाठ में, आप सीबॉर्न का उपयोग कर सकते हैं, जिसका उपयोग आपने पहले किया है, चरों के बीच संबंधों की कल्पना करने के लिए एक अच्छे पुस्तकालय के रूप में। सीबॉर्न के `रिलप्लॉट` फ़ंक्शन का उपयोग विशेष रूप से दिलचस्प है जो स्कैटर प्लॉट्स और लाइन प्लॉट्स को जल्दी से '[सांख्यिकीय संबंध](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)' की कल्पना करने की अनुमति देता है, जो डेटा वैज्ञानिक को बेहतर ढंग से समझने की अनुमति दें कि चर एक दूसरे से कैसे संबंधित हैं। + +## तितर बितर भूखंडों + +यह दिखाने के लिए स्कैटरप्लॉट का उपयोग करें कि प्रति राज्य शहद की कीमत साल दर साल कैसे विकसित हुई है। सीबॉर्न, `रिलप्लॉट` का उपयोग करते हुए, राज्य डेटा को आसानी से समूहित करता है और श्रेणीबद्ध और संख्यात्मक डेटा दोनों के लिए डेटा बिंदु प्रदर्शित करता है। + +आइए डेटा और सीबोर्न आयात करके शुरू करें: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +आपने देखा कि शहद के आंकड़ों में कई दिलचस्प कॉलम हैं, जिनमें साल और कीमत प्रति पाउंड शामिल हैं। आइए इस डेटा को यू.एस. राज्य द्वारा समूहीकृत करें: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + + +प्रति पाउंड शहद की कीमत और इसकी यू.एस. मूल स्थिति के बीच संबंध दिखाने के लिए एक बुनियादी स्कैटरप्लॉट बनाएं। सभी राज्यों को प्रदर्शित करने के लिए `y` अक्ष को पर्याप्त लंबा बनाएं: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![scatterplot 1](images/scatter1.png) + +अब, शहद रंग योजना के साथ समान डेटा दिखाएं ताकि यह दिखाया जा सके कि मूल्य वर्षों में कैसे विकसित होता है। साल दर साल बदलाव दिखाने के लिए आप 'ह्यू' पैरामीटर जोड़कर ऐसा कर सकते हैं: + +> ✅ [सीबॉर्न में आपके द्वारा उपयोग किए जा सकने वाले रंग पैलेट](https://seaborn.pydata.org/tutorial/color_palettes.html) के बारे में अधिक जानें - एक सुंदर इंद्रधनुष रंग योजना आज़माएं! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![स्कैटरप्लॉट 2](images/scatter2.png) + +इस रंग योजना में बदलाव के साथ, आप देख सकते हैं कि शहद की कीमत प्रति पाउंड के मामले में पिछले कुछ वर्षों में स्पष्ट रूप से एक मजबूत प्रगति हुई है। वास्तव में, यदि आप सत्यापित करने के लिए डेटा में सेट किए गए नमूने को देखते हैं (उदाहरण के लिए किसी दिए गए राज्य, एरिज़ोना को चुनें) तो आप कुछ अपवादों के साथ, साल दर साल मूल्य वृद्धि का एक पैटर्न देख सकते हैं: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + + +इस प्रगति की कल्पना करने का दूसरा तरीका रंग के बजाय आकार का उपयोग करना है। कलरब्लाइंड यूजर्स के लिए यह एक बेहतर विकल्प हो सकता है। डॉट परिधि में वृद्धि करके मूल्य में वृद्धि दिखाने के लिए अपना विज़ुअलाइज़ेशन संपादित करें: + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +आप डॉट्स के आकार को धीरे-धीरे बढ़ते हुए देख सकते हैं। + +![स्कैटरप्लॉट 3](images/scatter3.png) + +क्या यह आपूर्ति और मांग का एक साधारण मामला है? जलवायु परिवर्तन और कॉलोनी के ढहने जैसे कारकों के कारण, क्या साल दर साल खरीद के लिए कम शहद उपलब्ध है, और इस तरह कीमत बढ़ जाती है? + +इस डेटासेट में कुछ चरों के बीच संबंध खोजने के लिए, आइए कुछ लाइन चार्ट देखें। + +## लाइन चार्ट + +प्रश्‍न : क्‍या शहद की कीमत में प्रति पौंड वर्ष दर वर्ष स्पष्ट वृद्धि हुई है? सिंगल लाइन चार्ट बनाकर आप इसे आसानी से खोज सकते हैं: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +Aउत्तर: हाँ, वर्ष २००३ के आसपास कुछ अपवादों को छोड़कर: + +![लाइन चार्ट 1](इमेज/लाइन1.पीएनजी) + +क्योंकि सीबॉर्न एक पंक्ति के आसपास डेटा एकत्र कर रहा है, यह "माध्य की साजिश रचकर प्रत्येक x मान पर कई माप और माध्य के आसपास 95% विश्वास अंतराल" प्रदर्शित करता है। [स्रोत](https://seaborn.pydata.org/tutorial/relational.html)। इस समय लेने वाले व्यवहार को `ci=none` जोड़कर अक्षम किया जा सकता है। + +प्रश्न: क्या २००३ में हम शहद की आपूर्ति में भी वृद्धि देख सकते हैं? अगर आप साल दर साल कुल उत्पादन को देखें तो क्या होगा? + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![लाइन चार्ट 2](इमेज/लाइन2.पीएनजी) + +उत्तर: वास्तव में नहीं। यदि आप कुल उत्पादन को देखें, तो वास्तव में उस विशेष वर्ष में वृद्धि हुई प्रतीत होती है, भले ही आम तौर पर इन वर्षों के दौरान उत्पादित होने वाले शहद की मात्रा में गिरावट आई हो। + +प्रश्न: उस मामले में, 2003 के आसपास शहद की कीमत में उस उछाल का क्या कारण हो सकता है? + +इसे खोजने के लिए, आप एक पहलू ग्रिड का पता लगा सकते हैं। + +## पहलू ग्रिड + +फ़ैसिट ग्रिड आपके डेटासेट का एक पहलू लेते हैं (हमारे मामले में, आप 'वर्ष' चुन सकते हैं ताकि बहुत अधिक फ़ैसिट उत्पन्न न हों)। सीबॉर्न तब आपके चुने हुए x और y निर्देशांकों में से प्रत्येक के लिए अधिक आसान दृश्य तुलना के लिए एक प्लॉट बना सकता है। क्या 2003 इस प्रकार की तुलना में अलग है? + +[सीबॉर्न का दस्तावेज़ीकरण](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid) द्वारा सुझाए गए अनुसार `relplot` का उपयोग जारी रखते हुए एक पहलू ग्रिड बनाएं। +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +इस विज़ुअलाइज़ेशन में, आप प्रति कॉलोनी उपज और साल दर साल कॉलोनियों की संख्या की तुलना कॉलम के लिए 3 पर सेट रैप के साथ कर सकते हैं: + +![पहलू ग्रिड](छवियां/पहलू.पीएनजी) + +इस डेटासेट के लिए, विशेष रूप से कॉलोनियों की संख्या और उनकी उपज, साल दर साल और राज्य दर राज्य के संबंध में कुछ भी नहीं है। क्या इन दो चरों के बीच संबंध खोजने का कोई अलग तरीका है? + +## ड्यूल-लाइन प्लॉट्स + +एक दूसरे के ऊपर दो लाइनप्लॉट्स को सुपरइम्पोज़ करके, सीबॉर्न की 'डेस्पाइन' का उपयोग करके उनके शीर्ष और दाएं स्पाइन को हटाने के लिए, और उपयोग करके एक मल्टीलाइन प्लॉट आज़माएं`ax.twinx` [Matplotlib . से व्युत्पन्न](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). Twinx चार्ट को x अक्ष साझा करने और दो y अक्ष प्रदर्शित करने की अनुमति देता है। तो, प्रति कॉलोनी उपज और कॉलोनियों की संख्या प्रदर्शित करें, जो आरोपित हैं: + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![सुपरइम्पोज्ड प्लॉट्स](images/dual-line.png) + +हालांकि वर्ष 2003 के आस-पास कुछ भी सामने नहीं आया, यह हमें इस पाठ को एक छोटे से सुखद नोट पर समाप्त करने की अनुमति देता है: जबकि कुल मिलाकर कॉलोनियों की संख्या घट रही है, कॉलोनियों की संख्या स्थिर हो रही है, भले ही प्रति कॉलोनी उनकी उपज घट रही हो . + +जाओ, मधुमक्खियों, जाओ! + +❤️ +## चुनौती + +इस पाठ में, आपने फैसेट ग्रिड सहित स्कैटरप्लॉट और लाइन ग्रिड के अन्य उपयोगों के बारे में कुछ और सीखा। किसी भिन्न डेटासेट का उपयोग करके फ़ैसिट ग्रिड बनाने के लिए स्वयं को चुनौती दें, शायद एक जिसे आपने इन पाठों से पहले उपयोग किया था। ध्यान दें कि उन्हें बनाने में कितना समय लगता है और इन तकनीकों का उपयोग करके आपको कितने ग्रिड बनाने की आवश्यकता है, इस बारे में आपको सावधान रहने की आवश्यकता है। +## [व्याख्यान के बाद प्रश्नोत्तरी](https://red-water-0103e7a0f.azurestaticapps.net/quiz/23) + +## समीक्षा और आत्म अध्ययन + +रेखा भूखंड सरल या काफी जटिल हो सकते हैं। [सीबॉर्न डॉक्युमेंटेशन](https://seaborn.pydata.org/generated/seaborn.lineplot.html) को विभिन्न तरीकों से पढ़कर आप उन्हें बना सकते हैं। डॉक्स में सूचीबद्ध अन्य विधियों के साथ इस पाठ में आपके द्वारा बनाए गए लाइन चार्ट को बढ़ाने का प्रयास करें। +## कार्यभार + +[मधुमक्खी के छत्ते में गोता लगाएँ] (असाइनमेंट.एमडी) From 4102b624e6c12098ff7d5b5ba4b5059bae342639 Mon Sep 17 00:00:00 2001 From: Izael Date: Wed, 13 Oct 2021 16:30:53 -0300 Subject: [PATCH 037/234] Translated Stats and Probability to PT-BR --- .../translations/README.pt-br.md | 261 ++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 1-Introduction/04-stats-and-probability/translations/README.pt-br.md diff --git a/1-Introduction/04-stats-and-probability/translations/README.pt-br.md b/1-Introduction/04-stats-and-probability/translations/README.pt-br.md new file mode 100644 index 00000000..10fb6565 --- /dev/null +++ b/1-Introduction/04-stats-and-probability/translations/README.pt-br.md @@ -0,0 +1,261 @@ +# Uma Breve Introdução a Estatística e Probabilidade + +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| Estatística e Probabilidade - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + +Teoria da Probabilidade e Estatística são duas áreas altamente relacionadas da Matemática que são altamente relevante para a Ciência de Dados. É possível operar com dados sem um conhecimento aprofundado de matemática, mas ainda é bom saber pelo menos alguns conceitos. Aqui nós vamos apresentar uma breve introdução que ajudará você a começar. + +[![Vídeo de Introdução](../images/video-prob-and-stats.png)](https://youtu.be/Z5Zy85g4Yjw) + + +## [Quiz Pré Aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/6) + +## Probabilidade e Variáveis Aleatórias + +**Probabilidade** é um número entre 0 e 1 que expressa o quão provável um **evento** é. É definida como um número de resultados positivos (que levam ao evento), divido pelo número possível de resultados, dado que todos os resultados são igualmente prováveis. Por exemplo, quando jogamos um dado, a probabilidade de termos um número par é 3/6 = 0.5. + +Quando falamos de eventos, usamos **variáveis aleatórias**. Por exemplo, a variável aleatória que representa o número obtido quando jogamos um dado assumiria valores entre 1 e 6. O conjunto de números entre 1 a 6 é chamado de **espaço amostral**. Podemos falar sobre a probabilidade de uma variável aleatória ser um certo valor, como por exemplo P(X=3)=1/6. + +A variável aleatória nos exemplos anteriores são chamadas de **discretas**, pois possui um espaço amostral contável, ex. existem valores separados que podem ser numerados. Existem casos onde o espaço amostral é uma gama de valores reais, ou todo o conjunto de números reais. Essas variáveis são chamadas de **contínuas**. Um bom exemplo é a hora em que o ônibus chega. + +## Distribuição de Probabilidade + +No caso de variáveis discretas, é fácil descrever a probabilidade de cada um por uma função P(X). Para cada valor *s* do espaço amostrals *S* vai dar um número entre 0 e 1, de modo que todos os valores P(X=s) para todos os eventos seria 1. + +A distribuição discreta mais conhecida é a **distribuição uniforme**, no qual existe um espaço amostral de N elementos, com probabilidade de 1/N para todos eles. + +É mais difícil descrever a distribuição de probabilidade para uma variável contínua, com valores sorteados dentro de um intervalo [a, b], ou todo o conjunto dos números reais ℝ. Considere o caso da chegado do horário de ônibus. Na verdade, para cada horário de chegada exato $t$, a probabilidade do ônibus chegar exatamente naquele horário é 0! + +> Agora você sabe que eventos com probabilidade 0 acontecem, e muito frequentemente! Pelo menos toda vez que o ônibus chegar! + +Nós só podemos falar da probabilidade de uma variável cair em um determinado intervalo de valores, ex. P(t1≤X<t2). Nesse caso, a distribuição de probabilidade é descrita por uma **função densidade de probabilidade** p(x), sendo que + +![P(t_1\le X1, x2, ..., xn. Nós podemos definir o valor da **média** (ou **média aritmética**) da sequência da forma tradicional como (x1+x2+xn)/n. Conforme aumentamos o tamanho da amostra (ex. obter o limite com n→∞), nós vamos obter a média (também chamada de **expectância ou esperança**) da distribuição. Nós vamos denotá-la por **E**(x). + +> Pode ser demonstrado que para qualquer distribuição discreta com valores {x1, x2, ..., xN} e probabilidades correspondentes p1, p2, ..., pN, a expectativa seria igual a E(X)=x1p1+x2p2+...+xNpN. + +Para demonstrar o quanto os valores estão espalhados, nós podemos computar a variância σsup>2 = ∑(xi - μ)2/n, onde μ é a média da sequência. O valor de σ é chamado de **desvio padrão**, e σ2 é chamado de **variância**. + +## Moda, Média e Quartis + +Algumas vezes, a média não representa adequadamente o valor "típico" para dados. Por exemplo, quando existem poucos valores extremos que estão completamente fora da faixa, eles podem afetar a média. Outra boa indicação é a **mediana**, um valor sendo que metade dos pontos de dados estão abaixo dele, e a outra metade - acima. + +Para nos ajudar a entender a distribuição dos dados, é útil falar de **quartis**: + +* O primeiro quartil, ou Q1, é um valor sendo que 25% dos dados estarão abaixo dele +* O terceiro quartil,ou Q3, é um valor sendo que 75% dos dados estarão abaixo dele + +Graficamente nós podemos representar a relação entre mediana e quartis em um diagrama chamado de **box plot**: + + + +Nós também podemos computar o **intervalo interquartil** IQR=Q3-Q1, e os tão chamados **outliers** - valores que se localizam fora dos limites [Q1-1.5*IQR,Q3+1.5*IQR]. + +Para distribuições finitas que contenham um pequeno número de valores positivos, um bom valor "típico" é aquele que aparece mais frequentemente, que é chamado de **moda**. Geralmente é aplicado para dados categóricos, como cores. Considere uma situação onde nós temos dois grupos de pessoas - alguns preferem fortemente vermelho, enquanto outros preferem azul. Se atribuirmos números a cores, o valor médio para uma cor favorita estaria em algum lugar entre o espectro laranja-verde, o que não indica, de fato, a preferência de nenhum grupo. No entanto, a moda seria ou uma das cores, ou ambas as cores, se os números de pessoas que votaram para elas fossem iguais (nesse caso nós chamamos a amostra de **multimodal**). +## Dados do Mundo Real + +Quando analisamos dados da vida real, eles normalmente não são variáveis aleatórias como tal, no sentido de que não realizamos experimentos com resultado desconhecido. Por exemplo, considere um time de jogadores de baseball, e os seus dados corporais, como altura, peso e idade. Esses númerps não são exatamente aleatórios, mas nós podemos aplicar os mesmos conceitos matemáticos. Por exemplo, a sequência da altura das pessoas pode ser considerada uma sequência de valores sortidos de alguma variável aleatória. Abaixo está a sequência de pesos de jogadores reais da [Major League Baseball](http://mlb.mlb.com/index.jsp), retirados [desse dataset](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) (para a sua conveniência, apenas os primeiros 20 valores são mostrados): + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **Nota**: Para ver o exemplo de trabalhar com esse dataset, olhe o [notebook](notebook.ipynb). Existe também um número de desafios nessa aula, e você pode completá-los adicionando alguns códigos nesse notebook. Se você não tem certeza de como operar os dados, não se preocupe - nós vamos voltar a trabalhar com dados usando Python em um outro momento. Se você não sabe como rodar código no Jupyter Notebook, dê uma olhada [neste artigo](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +Aqui está o box plot mostrando a média, mediana e quartis para os nossos dados: + +![Box Plot dos Pesos](../images/weight-boxplot.png) + +Já que os nossos dados possuem informação de **posições** diferentes dos jogadores, nós podemos fazer o box plot baseado nas posições - permitirá a gente ter uma ideia de como os valores dos parâmetros mudam conforme diferentes posições. Agora vamos considerar a altura: + +![Box plot por posição](../images/boxplot_byrole.png) + +Esse diagrama sugere que, em média, a altura do jogador na primeira base é maior do que a altura dos jogadores na segunda base. Mais tarde nessa aula nós vamos aprender como podemos testar essa hipótese mais formalmente, e como demonstrar que o nosso dado é estatisticamente significante para mostrar isso. + +> Quando trabalhando com dados do mundo real, nós assumimos que todos os pontos de dados são amostras sortidas de alguma distribuição de probabilidade. Essa suposição permite que a gente aplica técnicas de aprendizado de máquina e contrua modelos preditivos que funcionam. + +Para ver qual a distribuição dos nossos dados é, nós podemos "plotar" um gráfico chamado de **histograma**. O eixo x seria um número de diferentes intervalos de valores para peso (chamados de **grupos** (bins)), e o eixo vertical mostrari o número de vezes que a amostra da nossa variável aleatória estava dentro do intervalo dado. + +![Histogram de dados do mundo real](../images/weight-histogram.png) + +A partir desse histograma você pode ver que todos os valores estão centrados ao redor de uma certa média de peso, e quanto mais longe nós formos - menos pesos desse valor são encotnrados. Ex. é muito improvável que o peso de um jogador de baseball seja muito diferente da média de pesos. Variância dos pesos mostram até que pontos os pesos tendem a diferir da média. + +> Se nós pegarmos os pesos de outras pessoas, não da liga de baseball, a distribuição provavelmente será diferente. No entante, a forma da distribuição será a mesma, mas a média e a variância iria mudar. Então, se treinarmos o modelo nos jogadores de baseball, provavelmente teremos resultados errados quando aplicado em estudantes de uma universidade, pois a distribuição subjacente é diferente. +## Distribuição Normal + +A distribuição de pesos que vimos acima é bem típica, e muitas medidas do mundo real seguem o mesmo tipo de distribuição, mas com médias e variâncias diferentes. Essa distribuição é chamada de **distribuição normal**, e possui um papel importante na estatística. + +Usar distribuição normal é uma forma correta de gerar pesos aleatórios para potenciais jogadores de baseball. Uma vez que sabemos a média de pesso `mean` e desvio padrão `std`, nós podemos gerar 1000 amostras de peso da seguinte forma: +```python +samples = np.random.normal(mean,std,1000) +``` + +Se "plotarmos" o histograma das amostras geradas nós vamos ver a figura bem similar com a mostrada acima. Se aumentarmos o número de amostrar e o número de grupos (bins), nós podemos gerar a figura de uma distribuição normal que é mais perto do ideal: + +![Distribuição Normal com mean=0 (média) e std.dev=1 (desvio padrão)](../images/normal-histogram.png) + +*Distribuição Normal com mean=0 e std.dev=1* + +## Intervalos de Confiânça + +Quando falamos sobre os pesos de jogadores de baseball, nós assumimos que existem certas **variáveis aleatórias W** que correspondem a distribuição de probabilidade ideal dos pesos de todos os jogadores de baseball (chamados de **população (population)**). Nossa sequência de pesos correspondem a um subset de todos os jogadores que chamamos de **amostra**. Uma questão interessante é, nós podemos saber os parâmetros da distribuição W, ex. média e variância de uma população? + +A resposta mais fácil seria calcular média e variância da nossa amostra. No entante, pode acontecer que nossa amostra aleatória não representa precisamente a população completa. Portanto faz sentido falar sobre **intervalos de confiança**. + +> **Intervalo de confiança** é a estimação da média verdadeira de uma população dada a nossa amostra, que é precisa é uma certa probabilidade (ou **nível de confiança**). + +Suponha que temos uma amostra X1, ..., Xn da nossa distribuição. Cada vez que sorteamos uma amostra da nossa distribuição, nós acabaríamos com diferentes valores de média μ. Portanto μ pode ser considerado uma variável aleatória. Um **intervalo de confiança** com confiança p é um par de valores (Lp,Rp), de forma que **P**(Lp≤μ≤Rp) = p, ex. a probabilidade da média medida estar dentro do intervalo igual a p. + +Vai além da nossa pequena introdução discutir detalhadamente como esses intervalos de confiança são calculados. Mais detalhes podem ser encontrados [na Wikipedia](https://en.wikipedia.org/wiki/Confidence_interval). Resumidamente, nós definimos a distribuição da média da amostra computada em relação a média verdadeira da população, que é chamada de **distribuiçao student (student distribution)**. + +> **Fato interessante**: distribuição Student é nomeada em homenagem ao matemático William Sealy Gosset, que publicou seu artigo com o pseudônimo "Student". Ele trabalhou na cervejaria Guinness, e, de acordo com uma das versões, seu empregador não queria que o público geral soubesse que eles estavam usando testes estatísticos para determinar a qualidade de materiais brutos. + +Se nós quiséssemos estimar a média μ da nossa população com confiança p, nós precisamos pegar *percentil número (1-p)/2 ((1-p)/2-th percentile)* de uma distribuição Student A, que pode ser coletada de tabelas, ou computadores usando alguma função imbutida de uma software de estatística (ex. Python, R, etc.). Então o intervalo μ seria dados por X±A*D/√n, onde X é a média obtida da amostra, D é o desvio padrão. + +> **Nota**: Nós também omitimos a discussão de um conceito importante de [degrees of freedom (graus de liberdade)](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)), que é importante em relação a distribuição Student. Você pode dar uma olhada em livros mais completos sobre estatísticas para entender esse conceito mais profundadamente. + +Um exemplo para calcular o intervalo de confiança para pesos e alturas é dado no [notebook](notebook.ipynb). + +| p | Weight mean | +|-----|-----------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +Perceba que quanto maior é a probabilidade da confiança, mais amplo é o intervalo de confiança. + +## Testando Hipóteses +No nosso dataset de jogadores de baseball, existem diferentes posições, as quais podem ser sumarizadas abaixo (olhe o [notebook](notebook.ipynb) para ver como essa tabela pode ser calculada): + +| Role | Height | Weight | Count | +|------|--------|--------|-------| +| Catcher | 72.723684 | 204.328947 | 76 | +| Designated_Hitter | 74.222222 | 220.888889 | 18 | +| First_Baseman | 74.000000 | 213.109091 | 55 | +| Outfielder | 73.010309 | 199.113402 | 194 | +| Relief_Pitcher | 74.374603 | 203.517460 | 315 | +| Second_Baseman | 71.362069 | 184.344828 | 58 | +| Shortstop | 71.903846 | 182.923077 | 52 | +| Starting_Pitcher | 74.719457 | 205.163636 | 221 | +| Third_Baseman | 73.044444 | 200.955556 | 45 | + +Nós podemos ver que a média das alturas dos jogadores na primeira base é maior que a dos jogadores na segunda base. Portanto, nós podemos ser tentados a concluir que **jogadores da primeira base é maior que os da segunda base**. + +> Essa afirmação é chamada de **uma hipótese**, pois nós não sabemos se é verdade ou não. + +No entanto, nem sempre é óbvio fazer essa conclusão. A partir da discussão acima nós sabemos que cada média tem um intervalo de confiança associado, e portante esse diferença pode ser apenas um erro estatístico. Nós precisamos de formas mais formais de testar nossa hipótes. + +Vamos computar o intervalo de confiança separadamente para as alturas dos jogadores na primeira base e dos jogadores da segunda base: + +| Confidence | First Basemen | Second Basemen | +|------------|---------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +Nós podemos ver que sobre nenhuma confiança os intervalos se sobrepõem. Isso prova a nossa hipótese de que os jogador na primeira base são mais altos que os jogadores da segunda base. + +Mais formalmente, o problema que estamos resolvendo é ver se **duas distribuições de probabilidades são as mesmas**, ou se pelo menos possuem os mesmos parâmetros. Dependendo da distribuição, nós precisamos usar diferentes testes para isso. Se nós soubermos que a nossa distribuição é normal, nós podemos aplicar **[Teste t de Student (Student t-test)](https://en.wikipedia.org/wiki/Student%27s_t-test)**. + +No teste t de Student, nós computamos o **valor t**, que indica a diferença entre a média, levando em conta a variância. É demonstrado que o valor t segue a **distribuição student**, o que nos permite ter o valor limite para um determinado nível de confiança **p** (isso pode ser computado, ou procurado nas tabelas numéricas). Nós então comparamos o valor t para esse limite para aprovar ou rejeitar a hipótese + +Em Python, nós podemos usar o pacote **SciPy**, o qual inclui a função `ttest_ind` (e mais funções estatísticas!). Ela computa o valor t para a gente, e também faz a pesquisa inversa do valor de confiança p, para que podemos apenas olhar para a confiança para chegarmos a uma conclusão. + +Por exemplo, nossa comparação entre alturas dos jogadores da primeira base e da segunda base nos dá o seguinte resultado: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` +No nosso caso, o valor p é bem baixo, o que significa que existem fortes evidências que confirmam que os jogadores da primeira base são maiores. + +Existe também outros tipos diferentes de hipótes que podemos querer testar, por exemplo: +* Provar que uma dada amostra segue alguma distribuição. No nosso caso nós assumimos que alturas são normalmente distribuídas, mas isso precisa de verificação estatística formal. +* Provar que uma valor média de uma amostra corresponde a algum valor predefinido +* Comparar as médias de um número de amostras (ex. qual é a diferença em níveis de felicidade entre diferentes faixas etárias) + +## Lei dos Números Grandes e Teorema do Limite Central + +Uma das razões pelo qual a distribuição normal é tão importante é a tão chamada **teorema do limite central**. Vamos supor que temos uma grande amostra de N valores independentes X1, ..., XN, amostrado de qualquer distribuição com média μ e variância σ2. Então, para N suficientemente grande (em outras palavras, quando N→∞), a média ΣiXi seria normalmente distribuída, com média μ e variância σ2/N. + +> Outra forma de interpretar o teorema do limite central é dizer que independentemente da distribuição, quando você computa a média da soma de quaisquer valores de variável aleatória você acabará com uma distribuição normal. + +A partir do teorema do limite central também segue que, quando when N→∞, a probabilidade da média da amostra ser igual a μ se torna 1. Isso é conhecido como a **lei dos números grandes**. + +## Covariância e Correlação + +Uma das coisas que Ciência dos Dados faz é encontrar relações entre dados. Nós dizemos que duas sequências **correlacionam** quando elas exibem um comportamento similar ao mesmo tempo, ex. eles sobem/caem simultâneamente, ou uma sequência sobe enquanto a outra desce e vice-versa. Em outras palavras, aparenta ter algum tipo de relaçõa entre as duas sequências. + +> Correlação não necessariamente indica uma relação causal entre duas sequências; algumas vezes ambas as variáveis podem depender de alguma causa externa, or pode ser puramente uma coincidência que duas sequências se relacionem. No entanto, uma forte correlaçõe matemática é um bom indício + + Matematicamente, o conceito principal que mostra uma relações entre duas variávies aleatórias é **covariância**, que é computada da seguinte forma: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]. Nós computamos o desvio de ambas as variáveis em relação a média, e então o produto desses desvios. Se ambas as variáveis desviam juntas, o produto seria sempre um valor positivo, que resulta em uma covariância positiva. Se ambas as variáveis desviam de forma não sincronizadas (ex. uma está abaixo da média enquanto outra está acima), nós sempre vamos ter números negativos, que resulta em uma covariância negativa. Se os desvios não são dependentes, eles sempre vão resultar em quase zero. + +O valor absoluto da covariância não nos informa o quão grande a correlação é, pois depende da magnitude dos valores reais. Para normalizar isso, nós podemos dividir a covariância pelo desvio padrão de ambas as variáveis, para conseguirmos a **correlação**. O bom é que a correlação sempre vai estar na faixa de [-1, 1], onde 1 indica uma forte correlaçao positiva entre os valores, -1 - forte correlação negativa, e 0 - nenhuma correlação (variáveis são independentes). + +**Exemplo**: Nós podemos computar a correlação entre pesos e alturas de jogadores de baseball do dataset mencionado acima: +```python +print(np.corrcoef(weights,heights)) +``` +Como resultado, temos uma **matriz de correlação** como essa: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> Matriz de correlação C pode ser computada para qualquer número de sequências de input S1, ..., Sn. O valor de C ij é a correlação entre Si e Sj, e elementos diagonais são sempre 1 (o que também é uma auto-correlação de Si). + +No nosso caso, o valor 0.53 indica que existe alguma correlação entre peso e altura de uma pessoa. Nós podemos fazer um gráfico de pontos de um valor contra o outro para ver a relação visualmente: + +![Relação entre peso e altura](../images/weight-height-relationship.png) + +> Mais exemplos de correlação e covariância podem ser encontrados no [notebook](notebook.ipynb). + +## Conclusão + +Nessa seção nós aprendemos: +* propriedades estatísticas básicas dos dados, como média, variância, moda e quartis +* diferentes distribuições para variáveis aleatórias, incluindo distribuição normal +* como encontrar a correlação entre propriedades diferentes +* como usar aparelhos de som de matemática e estatística para provar algumas hipóteses, +* como computar intervalos de confiância para variáveis aleatórias dado uma amostra de dados + +Enquanto essa definitivamente não é uma lista exaustiva de tópicos que existem dentro de probabilidade e estatística, deve ser o suficiente para você começar bem esse curso. + +## 🚀 Desafio + +Use o código de exemplo no notebook para testar outras hipóteses que: +1. Jogadores na primeira base e mais velhos que jogadores na segunda base +2. Jogadores na primeira base e mais altos que jogadores na terceira base +3. Interbases (Shortstops) são maiores que jogadores na segunda base + +## [Quis Pós Aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/7) + +## Revisão e Autoestudo + +Probabilidade e estatística é um tópico muito amplo que merece um curso próprio. Se você está interessado em aprofundar a teoria, talvez você queira continuar lendo alguns dos seguintes livros: + +1. [Carlos Fernanderz-Granda](https://cims.nyu.edu/~cfgranda/) da Universidade de Nova Iorque (New York University) tem boas notas de aula [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (disponíveis online) +1. [Peter and Andrew Bruce. Estatística prática para Cientistas de Dados (Practical Statistics for Data Scientists).](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[sample code in R](https://github.com/andrewgbruce/statistics-for-data-scientists)]. +1. [James D. Miller. Estatística para Ciência de Dados (Statistics for Data Science)](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[sample code in R](https://github.com/PacktPublishing/Statistics-for-Data-Science)] + +## Tarefa + +[Small Diabetes Study (Pequeno Estudo de Diabetes)](assignment.md) + +## Créditos + +Essa aula foi autorada com ♥️ por [Dmitry Soshnikov](http://soshnikov.com) From 8b676e321fb5dfd629f716e43bacf954f3e6221a Mon Sep 17 00:00:00 2001 From: Izael Date: Wed, 13 Oct 2021 16:32:46 -0300 Subject: [PATCH 038/234] Fixed a translation of a word on Ethics --- 1-Introduction/02-ethics/translations/RAEDME.pt-br.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/02-ethics/translations/RAEDME.pt-br.md b/1-Introduction/02-ethics/translations/RAEDME.pt-br.md index ec921d8f..08bf7e54 100644 --- a/1-Introduction/02-ethics/translations/RAEDME.pt-br.md +++ b/1-Introduction/02-ethics/translations/RAEDME.pt-br.md @@ -12,7 +12,7 @@ Tendências do mercado nos mostram que até 2022, 1 em 3 grandes organizações Tendências também indicam que nós vamos criar e consumir mais de [180 zettabytes](https://www.statista.com/statistics/871513/worldwide-data-created/) de dados em 2025. Como **Cientistas de Dados**, isso nos dará níveis de acesso sem precedentes à dados pessoais. Isso significa que poderemos construir perfis comportamentais dos usuário e influenciar tomadas de decisão de uma forma que crie a [ilusão da livre escolha](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) enquanto potencialmente direcionando os usuários na direção do resultado que nós preferimos. Isso também levanta questões mais amplas sobre privacidade dos dados e proteção dos usuários. -Ética dos dados é agora um _guarda-corpos necessário_ para ciẽncia de dados e engenharia, nos ajudando a minimizar potenciais danos e consequências não intencionas das nossas ações realizadas com base em dados. O [Gartner Hype Cycle for AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) identifica tendências relevantes ná ética digital, IAs responsáveis, e governanças de IA como principais impulsionadores para grandes mega tendências sobre _democratização_ e _industrialização_ da IA. +Ética dos dados é agora uma _proteção necessário_ para ciẽncia de dados e engenharia, nos ajudando a minimizar potenciais danos e consequências não intencionas das nossas ações realizadas com base em dados. O [Gartner Hype Cycle for AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) identifica tendências relevantes ná ética digital, IAs responsáveis, e governanças de IA como principais impulsionadores para grandes mega tendências sobre _democratização_ e _industrialização_ da IA. ![Gartner's Hype Cycle for AI - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) @@ -124,7 +124,7 @@ Questões a se explorar aqui são: #### 2.6 Viéses dos Datasets -Dataset ou [Viéses da Coleção](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) é sobre selecionar um subset de dados _não representativos_ para o desenvolvimento de um algoritmo, criando potenciais injustiças nos resultados para grupos diversos. Os tipos de viéses incluem seleção ou viés da amostra, viés voluntário, e viés do instrumento. +[Viéses da Coleção ou do Dataset](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) é sobre selecionar um subset de dados _não representativos_ para o desenvolvimento de um algoritmo, criando potenciais injustiças nos resultados para grupos diversos. Os tipos de viéses incluem seleção ou viés da amostra, viés voluntário, e viés do instrumento. Questões a se explorar aqui são: * Recrutamos um conjunto representativo de titulares de dados? From 6064af005da4b5fab3a878b63633627b4dffe561 Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 14 Oct 2021 23:03:40 -0300 Subject: [PATCH 039/234] Fix typos in PT-BR files --- .../translations/README.pt-br.md | 6 +++--- .../03-defining-data/translations/README.pt-br.md | 6 +++--- .../translations/README.pt-br.md | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/1-Introduction/01-defining-data-science/translations/README.pt-br.md b/1-Introduction/01-defining-data-science/translations/README.pt-br.md index b0c065a9..5707f025 100644 --- a/1-Introduction/01-defining-data-science/translations/README.pt-br.md +++ b/1-Introduction/01-defining-data-science/translations/README.pt-br.md @@ -1,6 +1,6 @@ # Definindo Ciências de Dados -|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/01-Definitions.png)| +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/01-Definitions.png)| |:---:| |Definindo Ciências de Dados - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | @@ -20,7 +20,7 @@ Com o surgimento da Internet, o papel dos computadores como dispositivos de mani ## O que é Ciência de Dados? -Na [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Ciência de Dados** é definido como *um campo científico que utiliza métodos científicos para extrair conhecimento e insights de dados estruturados e não estruturados, e aplicar esse conhecimento e insights acionáveis de dados em uma ampla gama de domínios de aplicativos*. +Na [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Ciência de Dados** é definido como *um campo científico que utiliza métodos científicos para extrair conhecimento e insights de dados estruturados e não estruturados, e aplicar esse conhecimento e insights úteis obtidos a partir de dados em uma ampla gama de domínios de aplicativos*. Essa definição destaca os seguintes aspectos importantes da ciência de dados: @@ -147,7 +147,7 @@ Nesse desafio, nós vamos tentar encontrar conceitos relevantes para a área de ![Nuvem de Palavras para Ciência de Dados](../images/ds_wordcloud.png) -Visite [`notebook.ipynb`](notebook.ipynb) para ler o código. Você também pode rodar esse código, e ver como ele performa toda a transformação de dados em tempo real. +Visite [`notebook.ipynb`](../notebook.ipynb) para ler o código. Você também pode rodar esse código, e ver como ele performa toda a transformação de dados em tempo real. > Se você não sabe como rodar códigos no Jupyter Notebook, dê uma olhada [nesse artigo](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). diff --git a/1-Introduction/03-defining-data/translations/README.pt-br.md b/1-Introduction/03-defining-data/translations/README.pt-br.md index f76deed3..2dcb205d 100644 --- a/1-Introduction/03-defining-data/translations/README.pt-br.md +++ b/1-Introduction/03-defining-data/translations/README.pt-br.md @@ -4,13 +4,13 @@ |:---:| |Definindo Dados - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | -Dados são fatos, informações, observações e medidas que são usadas para fazer descobertas e apoiar decisões informadas. Um ponto de dado é uma unidade única dentro de um dataset, que é uma coleção de pontos de dados. Datasets podem vir em diferentes formatos e estruturas, e normalmente será baseado em sua fonte, ou de onde os dados vieram. Por exemplo, os ganhos mensais de uma empresa podem estar em uma planilha mas a frequência cardíaca (por hora) de um smartwatch pode estar em formato [JSON](https://stackoverflow.com/a/383699). É comum para cientistas de dados terem que trabalhar com diferentes tupos de dados em um dataset. +Dados são fatos, informações, observações e medidas que são usadas para fazer descobertas e apoiar decisões informadas. Um ponto de dado é uma unidade única dentro de um dataset, que é uma coleção de pontos de dados. Datasets podem vir em diferentes formatos e estruturas, e normalmente será baseado em sua fonte, ou de onde os dados vieram. Por exemplo, os ganhos mensais de uma empresa podem estar em uma planilha mas a frequência cardíaca (por hora) de um smartwatch pode estar em formato [JSON](https://stackoverflow.com/a/383699). É comum para cientistas de dados terem que trabalhar com diferentes tipos de dados em um dataset. Essa aula irá focar em identificar e classificar dados baseados em sua características e fontes. ## [Quiz Pré Aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) ## Como Dados são Descritos -**Dados Brutos (Raw data)** são dados que vieram em seu estado inicial de sua fonte e não foram analisados ou organizados. Para entender o que está acontecendo com um conjunto de dados, é necessário organizar os dados em uma formato que possa ser entendido pelos humanos e também pela tecnologia que pode ser usada para analisar os mesmos. A estrutura do dataset descreve como estão organizados e pode ser classificada em estruturada, não estruturada e semi estruturada. Esses tipos de estruturas irão variar, dependendo da fonte mas irão ultimamente se encaixar nessas categorias. +**Dados Brutos (Raw data)** são dados que vieram em seu estado inicial de sua fonte e não foram analisados ou organizados. Para entender o que está acontecendo com um conjunto de dados, é necessário organizar os dados em um formato que possa ser entendido pelos humanos e também pela tecnologia que pode ser usada para analisar os mesmos. A estrutura do dataset descreve como estão organizados e pode ser classificada em estruturada, não estruturada e semi estruturada. Esses tipos de estruturas irão variar, dependendo da fonte mas irão ultimamente se encaixar nessas categorias. ### Dados Qualitativos Dados qualitativos, também conhecidos como dados categóricos são dados que não podem ser medidos objetivamente como observações de dados quantitativos. São geralmente vários formatos de dados subjetivos que coletam a qualidade de algo, como um produto ou processo. Algumas vezes, dados qualitativos são numéricos e tipicamente não seriam usados matematicamente, como números de telefones e marcas de tempo. Alguns exemplos de dados qualitativos são: comentários de vídeos, a marca e modelo de um carro e a cor favorita do seu melhor amigo. Dados qualitativos podem ser usados para entender quais produtos os consumidores mais gostam ou identificar palavras-chaves populares em cúrriculos para aplicação em uma vaga de trabalho. @@ -36,7 +36,7 @@ Exemplos de dados não estruturados: HTML, arquivos CSV, JavaScript Object Notat Uma fonte de dados é o local inicial onde os dados foram gerados, ou onde "vivem" e irá variar com base em como e quando foram coletados. Dados gerados por seus usuários são conhecidos como dados primários enquanto dados secundários vem de uma fonte que coletou os dados para uso geral. Por exemplo, um grupo de cientistas fazendo observações em uma floresta tropical seriam considerados dados primários e se eles decidirem compartilhar com outros cientistas seriam considerados dados secundários para aqueles que usarem. -Banco de dados são fontes comuns e dependem de um sistema de gerenciamente de banco de dados para hospedar e manter os dados onde usuários usam comandos chamados de "queries" para explorar os dados. Arquivos como fonte de dados podem ser aúdio, imagens, e arquivos de vídeo assim como planilhas como o Excel. Fontes da internet são lugares comuns para hospedar dados, onde banco de dados e arquivos podem ser encontrados. Application programming interfaces, ou APIs, permitem programadores a criarem formas de compartilhar dados com usuários externos através da interet, enquanto processos de "web scraping" extrai dados de uma página da web. As [tarefas em Trabalhando com Dados](/2-Working-With) focam em como usar várias fontes de dados. +Banco de dados são fontes comuns e dependem de um sistema de gerenciamente de banco de dados para hospedar e manter os dados onde usuários usam comandos chamados de "queries" para explorar os dados. Arquivos como fonte de dados podem ser aúdio, imagens, e arquivos de vídeo assim como planilhas como o Excel. Fontes da internet são lugares comuns para hospedar dados, onde banco de dados e arquivos podem ser encontrados. Application programming interfaces, ou APIs, permitem programadores a criarem formas de compartilhar dados com usuários externos através da interet, enquanto processos de "web scraping" extrai dados de uma página da web. As [tarefas em Trabalhando com Dados](../../../2-Working-With-Data) focam em como usar várias fontes de dados. ## Conclusão diff --git a/1-Introduction/04-stats-and-probability/translations/README.pt-br.md b/1-Introduction/04-stats-and-probability/translations/README.pt-br.md index 10fb6565..348fb09c 100644 --- a/1-Introduction/04-stats-and-probability/translations/README.pt-br.md +++ b/1-Introduction/04-stats-and-probability/translations/README.pt-br.md @@ -69,7 +69,7 @@ Quando analisamos dados da vida real, eles normalmente não são variáveis alea [180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] ``` -> **Nota**: Para ver o exemplo de trabalhar com esse dataset, olhe o [notebook](notebook.ipynb). Existe também um número de desafios nessa aula, e você pode completá-los adicionando alguns códigos nesse notebook. Se você não tem certeza de como operar os dados, não se preocupe - nós vamos voltar a trabalhar com dados usando Python em um outro momento. Se você não sabe como rodar código no Jupyter Notebook, dê uma olhada [neste artigo](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). +> **Nota**: Para ver o exemplo de trabalhar com esse dataset, olhe o [notebook](../notebook.ipynb). Existe também um número de desafios nessa aula, e você pode completá-los adicionando alguns códigos nesse notebook. Se você não tem certeza de como operar os dados, não se preocupe - nós vamos voltar a trabalhar com dados usando Python em um outro momento. Se você não sabe como rodar código no Jupyter Notebook, dê uma olhada [neste artigo](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). Aqui está o box plot mostrando a média, mediana e quartis para os nossos dados: @@ -123,7 +123,7 @@ Se nós quiséssemos estimar a média μ da nossa população com confiança p > **Nota**: Nós também omitimos a discussão de um conceito importante de [degrees of freedom (graus de liberdade)](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)), que é importante em relação a distribuição Student. Você pode dar uma olhada em livros mais completos sobre estatísticas para entender esse conceito mais profundadamente. -Um exemplo para calcular o intervalo de confiança para pesos e alturas é dado no [notebook](notebook.ipynb). +Um exemplo para calcular o intervalo de confiança para pesos e alturas é dado no [notebook](../notebook.ipynb). | p | Weight mean | |-----|-----------| @@ -134,7 +134,7 @@ Um exemplo para calcular o intervalo de confiança para pesos e alturas é dado Perceba que quanto maior é a probabilidade da confiança, mais amplo é o intervalo de confiança. ## Testando Hipóteses -No nosso dataset de jogadores de baseball, existem diferentes posições, as quais podem ser sumarizadas abaixo (olhe o [notebook](notebook.ipynb) para ver como essa tabela pode ser calculada): +No nosso dataset de jogadores de baseball, existem diferentes posições, as quais podem ser sumarizadas abaixo (olhe o [notebook](../notebook.ipynb) para ver como essa tabela pode ser calculada): | Role | Height | Weight | Count | |------|--------|--------|-------| @@ -222,7 +222,7 @@ No nosso caso, o valor 0.53 indica que existe alguma correlação entre peso e a ![Relação entre peso e altura](../images/weight-height-relationship.png) -> Mais exemplos de correlação e covariância podem ser encontrados no [notebook](notebook.ipynb). +> Mais exemplos de correlação e covariância podem ser encontrados no [notebook](../notebook.ipynb). ## Conclusão @@ -254,7 +254,7 @@ Probabilidade e estatística é um tópico muito amplo que merece um curso próp ## Tarefa -[Small Diabetes Study (Pequeno Estudo de Diabetes)](assignment.md) +[Small Diabetes Study (Pequeno Estudo de Diabetes)](../assignment.md) ## Créditos From d95c3ce3872f07a35677cd1bbc22ca7c3e234634 Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 14 Oct 2021 23:07:45 -0300 Subject: [PATCH 040/234] Improved a definition on Defining Data Science --- .../01-defining-data-science/translations/README.pt-br.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/01-defining-data-science/translations/README.pt-br.md b/1-Introduction/01-defining-data-science/translations/README.pt-br.md index 5707f025..c9dfff2b 100644 --- a/1-Introduction/01-defining-data-science/translations/README.pt-br.md +++ b/1-Introduction/01-defining-data-science/translations/README.pt-br.md @@ -20,13 +20,13 @@ Com o surgimento da Internet, o papel dos computadores como dispositivos de mani ## O que é Ciência de Dados? -Na [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Ciência de Dados** é definido como *um campo científico que utiliza métodos científicos para extrair conhecimento e insights de dados estruturados e não estruturados, e aplicar esse conhecimento e insights úteis obtidos a partir de dados em uma ampla gama de domínios de aplicativos*. +Na [Wikipedia (PT-BR)](https://pt.wikipedia.org/wiki/Ci%C3%AAncia_de_dados), **Ciência de Dados** é definido como *é uma área interdisciplinar voltada para o estudo e a análise de dados econômicos, financeiros e sociais, estruturados e não-estruturados, que visa a extração de conhecimento, detecção de padrões e/ou obtenção de insights para possíveis tomadas de decisão*. Essa definição destaca os seguintes aspectos importantes da ciência de dados: * O principal objetivo da ciência de dados é **extrair conhecimento** dos dados, em outras palavras - **entender** os dados, encontrar alguma relação escondida e construir um **modelo**. * Ciência de dados utiliza **métodos científicos**, como probabilidade e estatística. Na verdade, quando o termo *ciência de dados* foi introduzido pela primeira vez, algumas pessoas argumentaram que ciência de dados é apenas um nome chique para estatística. Hoje em dia ficou mais evidente que esse campo é muito mais amplo. -* Conhecimento adquirido deve ser aplicado para produzir algum **insights acionável**. +* Conhecimento adquirido deve ser aplicado para produzir algum **insight para possível tomada de decisão**. * Nós devemos ser capazes de operar tanto nos dados **estruturados** quanto nos **não estruturados**. Nós voltaremos a discutir diferentes tipos de dados mais para a frente no curso. * **Domínio de aplicação** é um conceito importante, e cientistas de dados frequentemente precisam de pelo menos algum grau de perícia no domínio do problema. From 1ea48ae384bd2baee8b5e20ad4ac9992aa35f4b1 Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 14 Oct 2021 23:08:17 -0300 Subject: [PATCH 041/234] Fix typo --- .../01-defining-data-science/translations/README.pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/01-defining-data-science/translations/README.pt-br.md b/1-Introduction/01-defining-data-science/translations/README.pt-br.md index c9dfff2b..3597fe3a 100644 --- a/1-Introduction/01-defining-data-science/translations/README.pt-br.md +++ b/1-Introduction/01-defining-data-science/translations/README.pt-br.md @@ -20,7 +20,7 @@ Com o surgimento da Internet, o papel dos computadores como dispositivos de mani ## O que é Ciência de Dados? -Na [Wikipedia (PT-BR)](https://pt.wikipedia.org/wiki/Ci%C3%AAncia_de_dados), **Ciência de Dados** é definido como *é uma área interdisciplinar voltada para o estudo e a análise de dados econômicos, financeiros e sociais, estruturados e não-estruturados, que visa a extração de conhecimento, detecção de padrões e/ou obtenção de insights para possíveis tomadas de decisão*. +Na [Wikipedia (PT-BR)](https://pt.wikipedia.org/wiki/Ci%C3%AAncia_de_dados), **Ciência de Dados** é definida como *uma área interdisciplinar voltada para o estudo e a análise de dados econômicos, financeiros e sociais, estruturados e não-estruturados, que visa a extração de conhecimento, detecção de padrões e/ou obtenção de insights para possíveis tomadas de decisão*. Essa definição destaca os seguintes aspectos importantes da ciência de dados: From ae47bb431a4c5c48c4758fb0ed8025e07013e5c5 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Fri, 15 Oct 2021 00:13:45 -0500 Subject: [PATCH 042/234] feat: Add file to translate --- .../translations/README.es.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md index e69de29b..098a389d 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md @@ -0,0 +1,142 @@ +# Data Science in the Real World + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +| :--------------------------------------------------------------------------------------------------------------: | +| Data Science In The Real World - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +We're almost at the end of this learning journey! + +We started with definitions of data science and ethics, explored various tools & techniques for data analysis and visualization, reviewed the data science lifecycle, and looked at scaling and automating data science workflows with cloud computing services. So, you're probably wondering: _"How exactly do I map all these learnings to real-world contexts?"_ + +In this lesson, we'll explore real-world applications of data science across industry and dive into specific examples in the research, digital humanities, and sustainability, contexts. We'll look at student project opportunities and conclude with useful resources to help you continue your learning journey! +## Pre-Lecture Quiz + +[Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/38) +## Data Science + Industry + +Thanks to the democratization of AI, developers are now finding it easier to design and integrate AI-driven decision-making and data-driven insights into user experiences and development workflows. Here are a few examples of how data science is "applied" to real-world applications across the industry: + + * [Google Flu Trends](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) used data science to correlate search terms with flu trends. While the approach had flaws, it raised awareness of the possibilities (and challenges) of data-driven healthcare predictions. + + * [UPS Routing Predictions](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - explains how UPS uses data science and machine learning to predict optimal routes for delivery, taking into account weather conditions, traffic patterns, delivery deadlines and more. + + * [NYC Taxicab Route Visualization](http://chriswhong.github.io/nyctaxi/) - data gathered using [Freedom Of Information Laws](https://chriswhong.com/open-data/foil_nyc_taxi/) helped visualize a day in the life of NYC cabs, helping us understand how they navigate the busy city, the money they make, and the duration of trips over each 24-hour period. + + * [Uber Data Science Workbench](https://eng.uber.com/dsw/) - uses data (on pickup & dropoff locations, trip duration, preferred routes etc.) gathered from millions of uber trips *daily* to build a data analytics tool to help with pricing, safety, fraud detection and navigation decisions. + + * [Sports Analytics](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - focuses on _predictive analytics_ (team and player analysis - think [Moneyball](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/) - and fan management) and _data visualization_ (team & fan dashboards, games etc.) with applications like talent scouting, sports gambling and inventory/venue management. + + * [Data Science in Banking](https://data-flair.training/blogs/data-science-in-banking/) - highlights the value of data science in the finance industry with applications ranging from risk modeling and fraud detction, to customer segmentation, real-time prediction and recommender systems. Predictive analytics also drive critical measures like [credit scores](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit). + + * [Data Science in Healthcare](https://data-flair.training/blogs/data-science-in-healthcare/) - highlights applications like medical imaging (e.g., MRI, X-Ray, CT-Scan), genomics (DNA sequencing), drug development (risk assessment, success prediction), predictive analytics (patient care & supply logistics), disease tracking & prevention etc. + +![Data Science Applications in The Real World](./images/data-science-applications.png) Image Credit: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) + +The figure shows other domains and examples for applying data science techniques. Want to explore other applications? Check out the [Review & Self Study](?id=review-amp-self-study) section below. + +## Data Science + Research + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| Data Science & Research - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +While real-world applications often focus on industry use cases at scale, _research_ applications and projects can be useful from two perspectives: + +* _innovation opportunities_ - explore rapid prototyping of advanced concepts and testing of user experiences for next-generation applications. +* _deployment challenges_ - investigate potential harms or unintended consequences of data science technologies in real-world contexts. + +For students, these research projects can provide both learning and collaboration opportunities that can improve your understanding of the topic, and broaden your awareness and engagement with relevant people or teams working in areas of interest. So what do research projects look like and how can they make an impact? + +Let's look at one example - the [MIT Gender Shades Study](http://gendershades.org/overview.html) from Joy Buolamwini (MIT Media Labs) with a [signature research paper](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) co-authored with Timnit Gebru (then at Microsoft Research) that focused on + + * **What:** The objective of the research project was to _evaluate bias present in automated facial analysis algorithms and datasets_ based on gender and skin type. + * **Why:** Facial analysis is used in areas like law enforcement, airport security, hiring systems and more - contexts where inaccurate classifications (e.g., due to bias) can cause potential economic and social harms to affected individuals or groups. Understanding (and eliminating or mitigating) biases is key to fairness in usage. + * **How:** Researchers recongized that existing benchmarks used predominantly lighter-skinned subjects, and curated a new data set (1000+ images) that was _more balanced_ by gender and skin type. The data set was used to evaluate the accuracy of three gender classification products (from Microsoft, IBM & Face++). + +Results showed that though overall classification accuracy was good, there was a noticeable difference in error rates between various subgroups - with **misgendering** being higher for females or persons with darker skin types, indicative of bias. + +**Key Outcomes:** Raised awareness that data science needs more _representative datasets_ (balanced subgroups) and more _inclusive teams_ (diverse backgrounds) to recognize and eliminate or mitigate such biases earlier in AI solutions. Research efforts like this are also instrumental in many organizations defining principles and practices for _responsible AI_ to improve fairness across their AI products and processes. + + +**Want to learn about relevant research efforts in Microsoft?** + +* Check out [Microsoft Research Projects](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) on Artificial Intelligence. +* Explore student projects from [Microsoft Research Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/). +* Check out the [Fairlearn](https://fairlearn.org/) project and [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) initiatives. + + + +## Data Science + Humanities + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| Data Science & Digital Humanities - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + + +Digital Humanities [has been defined](https://digitalhumanities.stanford.edu/about-dh-stanford) as "a collection of practices and approaches combining computational methods with humanistic inquiry". [Stanford projects](https://digitalhumanities.stanford.edu/projects) like _"rebooting history"_ and _"poetic thinking"_ illustrate the linkage between [Digital Humanities and Data Science](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) - emphasizing techniques like network analysis, information visualization, spatial and text analysis that can help us revisit historical and literary data sets to derive new insights and perspective. + +*Want to explore and extend a project in this space?* + +Check out ["Emily Dickinson and the Meter of Mood"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) - a great example from [Jen Looper](https://twitter.com/jenlooper) that asks how we can use data science to revisit familiar poetry and re-evaluate its meaning and the contributions of its author in new contexts. For instance, _can we predict the season in which a poem was authored by analyzing its tone or sentiment_ - and what does this tell us about the author's state of mind over the relevant period? + +To answer that question, we follow the steps of our data science lifecycle: + * [`Data Acquisition`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - to collect a relevant dataset for analysis. Options including using an API ( e.g., [Poetry DB API](https://poetrydb.org/index.html)) or scraping web pages (e.g., [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) using tools like [Scrapy](https://scrapy.org/). + * [`Data Cleaning`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - explains how text can be formatted, sanitized and simplified using basic tools like Visual Studio Code and Microsoft Excel. + * [`Data Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - explains how we can now import the dataset into "Notebooks" for analysis using Python packages (like pandas, numpy and matplotlib) to organize and visualize the data. + * [`Sentiment Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - explains how we can integrate cloud services like Text Analytics, using low-code tools like [Power Automate](https://flow.microsoft.com/en-us/) for automated data processing workflows. + +Using this workflow, we can explore the seasonal impacts on the sentiment of the poems, and help us fashion our own perspectives on the author. Try it out yourself - then extend the notebook to ask other questions or visualize the data in new ways! + +> You can use some of the tools in the [Digital Humanities toolkit](https://github.com/Digital-Humanities-Toolkit) to pursue these avenues of inquiry + + +## Data Science + Sustainability + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| Data Science & Sustainability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +The [2030 Agenda For Sustainable Development](https://sdgs.un.org/2030agenda) - adopted by all United Nations members in 2015 - identifies 17 goals including ones that focus on **Protecting the Planet** from degradation and the impact of climate change. The [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) initiative supports these goals by exploring ways in which technology solutions can support and build more sustainable futures with a [focus on 4 goals](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - being carbon negative, water positive, zero waste, and bio-diverse by 2030. + +Tackling these challenges in a scalable and timely manner requires cloud-scale thinking - and large scale data. The [Planetary Computer](https://planetarycomputer.microsoft.com/) initiative provides 4 components to help data scientists and developers in this effort: + + * [Data Catalog](https://planetarycomputer.microsoft.com/catalog) - with petabytes of Earth Systems data (free & Azure-hosted). + * [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - to help users search for relevant data across space and time. + * [Hub](https://planetarycomputer.microsoft.com/docs/overview/environment/) - managed environment for scientists to process massive geospatial datasets. + * [Applications](https://planetarycomputer.microsoft.com/applications) - showcase use cases & tools for sustainability insights. + +**The Planetary Computer Project is currently in preview (as of Sep 2021)** - here's how you can get started contributing to sustainability solutions using data science. + +* [Request access](https://planetarycomputer.microsoft.com/account/request) to start exploration and connect with peers. +* [Explore documentation](https://planetarycomputer.microsoft.com/docs/overview/about) to understand supported datasets and APIs. +* Explore applications like [Ecosystem Monitoring](https://analytics-lab.org/ecosystemmonitoring/) for inspiration on application ideas. + +Think about how you can use data visualization to expose or amplify relevant insights into areas like climate change and deforestation. Or think about how insights can be used to create new user experiences that motivate behavioral changes for more sustainable living. + +## Data Science + Students + +We've talked about real-world applications in industry and research, and explored data science application examples in digital humanities and sustainability. So how can you build your skills and share your expertise as data science beginners? + +Here are some examples of data science student projects to inspire you. + + * [MSR Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) with GitHub [projects](https://github.com/msr-ds3) exploring topics like: + - [Racial Bias in Police Use of Force](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [Reliability of NYC Subway System](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) + * [Digitizing Material Culture: Exploring socio-economic distributions in Sirkap](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc)- from [Ornella Altunyan](https://twitter.com/ornelladotcom) and team at Claremont, using using [ArcGIS StoryMaps](https://storymaps.arcgis.com/). + +## 🚀 Challenge + +Search for articles that recommend data science projects that are beginner friendly - like [these 50 topic areas](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/) or [these 21 project ideas](https://www.intellspot.com/data-science-project-ideas) or [these 16 projects with source code](https://data-flair.training/blogs/data-science-project-ideas/) that you can deconstruct and remix. And don't forget to blog about your learning journeys and share your insights with all of us. +## Post-Lecture Quiz + +[Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/39) +## Review & Self Study + +Want to explore more use cases? Here are a few relevant articles: + * [17 Data Science Applications and Examples](https://builtin.com/data-science/data-science-applications-examples) - Jul 2021 + * [11 Breathtaking Data Science Applications in Real World](https://myblindbird.com/data-science-applications-real-world/) - May 2021 + * [Data Science In The Real World](https://towardsdatascience.com/data-science-in-the-real-world/home) - Article Collection + * Data Science In: [Education](https://data-flair.training/blogs/data-science-in-education/), [Agriculture](https://data-flair.training/blogs/data-science-in-agriculture/), [Finance](https://data-flair.training/blogs/data-science-in-finance/), [Movies](https://data-flair.training/blogs/data-science-at-movies/) & more. +## Assignment + +[Explore A Planetary Computer Dataset](assignment.md) From 0445e3f1459febede489258fc13085a8a39a8de4 Mon Sep 17 00:00:00 2001 From: Flex Zhong Date: Sat, 16 Oct 2021 09:59:09 +0800 Subject: [PATCH 043/234] Update README.zh-cn.md --- translations/README.zh-cn.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/README.zh-cn.md b/translations/README.zh-cn.md index 1cc9bad7..1ba7c667 100644 --- a/translations/README.zh-cn.md +++ b/translations/README.zh-cn.md @@ -17,9 +17,9 @@ > **同学们**,如果你想自己学习这门课程,你可以在整个 repo 中自己完成练习,从课前测验开始,然后阅读讲座,完成其他活动。尝试通过理解课程内容来创建项目,而不是仅仅把答案代码抄下来;然而,在每个项目课程中,这些代码可以在里面的 /solutions 文件夹中找到。另一个方法是与朋友组成一个学习小组,一起学习内容。为了进一步的研究,我们推荐 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa)。 - +> 🎥 点击上面的图片,观看关于这个项目以及作者的视频! ## 教学方法 @@ -27,7 +27,7 @@ 此外,课前的低风险测验使学生对学习某个主题有了意向,而课后的第二次测验则确保了学生记住了内容。本课程的设计是灵活而有趣的,可以参加整个或部分课程。这些项目开始时很小,在 10 周的学习过程内会变得越来越复杂。 -> 找到我们的 [行为守则](../CODE_OF_CONDUCT.md)、[贡献](../CONTRIBUTING.md) 以及 [翻译](../TRANSLATIONS.md) 指南。我们欢迎你的建设性反馈! +> 看看我们的 [行为守则](../CODE_OF_CONDUCT.md)、[贡献](../CONTRIBUTING.md) 以及 [翻译](../TRANSLATIONS.md) 指南。我们欢迎你的建设性反馈! ## 每节课包括: @@ -94,4 +94,4 @@ - [针对初学者的机器学习课程](https://aka.ms/ml-beginners) - [针对初学者的 IoT 课程](https://aka.ms/iot-beginners) -- [针对初学者的 Web 开发课程](https://aka.ms/webdev-beginners) \ No newline at end of file +- [针对初学者的 Web 开发课程](https://aka.ms/webdev-beginners) From e3a9312591ae90a9fd607d591552a2ac62883be1 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sat, 16 Oct 2021 01:19:49 -0500 Subject: [PATCH 044/234] feat: (translation): Translate module 6 - 20 real world examples * translate to spanish 20 real world examples README file --- .../translations/README.es.md | 170 +++++++++--------- 1 file changed, 86 insertions(+), 84 deletions(-) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md index 098a389d..231495d1 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md @@ -1,142 +1,144 @@ -# Data Science in the Real World +# Ciencia de Datos en el mundo real -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +| ![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-RealWorld.png) | | :--------------------------------------------------------------------------------------------------------------: | -| Data Science In The Real World - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| Ciencia de Datos en el mundo real - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | -We're almost at the end of this learning journey! +¡Estamos casi al final de esta aventura de aprendizaje! -We started with definitions of data science and ethics, explored various tools & techniques for data analysis and visualization, reviewed the data science lifecycle, and looked at scaling and automating data science workflows with cloud computing services. So, you're probably wondering: _"How exactly do I map all these learnings to real-world contexts?"_ +Empezamos con las definiciones de ciencia de datos y ética, se exploraron diveras herramientas y técnicas para el análisis y visualización de datos, se revisó el ciclo de vida de los datos, y se buscó escalar y automatizar flujos de trabajo de ciencia de datos con servicios de cómputo en la nube. Por lo que te preguntarás: _"¿Cómo relaciono todo este aprendizaje con el mundo real?"_ -In this lesson, we'll explore real-world applications of data science across industry and dive into specific examples in the research, digital humanities, and sustainability, contexts. We'll look at student project opportunities and conclude with useful resources to help you continue your learning journey! -## Pre-Lecture Quiz +En esta lección, exploraremos la aplicación de la ciencia de datos en el mundo real en la industria y profundizaremos en ejemplos específicos en la investigación, humanidades digitales y sustentabilidad. Analizaremos oportunidades de proyectos para estudiantes y concluiremos con recursos útiles que te ayuden en tu aventura de aprendizaje. +## Examen previo a la lección -[Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/38) -## Data Science + Industry +[Examen previo a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/38) +## Ciencia de Datos + Industria -Thanks to the democratization of AI, developers are now finding it easier to design and integrate AI-driven decision-making and data-driven insights into user experiences and development workflows. Here are a few examples of how data science is "applied" to real-world applications across the industry: +Gracias a la democratización de la AI, los desarrolladores encuentran más fácil el diseñar e integrar tanto la toma de decisiones dirigidas por AI como el conocimiento práctico dirigido por datos en experiencias de usuario y desarrollar flujos de trabajo. Aquí algunos ejemplos de cómo la ciencia de datos es "aplicada" en aplicaciones del mundo real a través de la industria: - * [Google Flu Trends](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) used data science to correlate search terms with flu trends. While the approach had flaws, it raised awareness of the possibilities (and challenges) of data-driven healthcare predictions. + * [Tendencias de la gripe de Google](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) se usó ciencia de datos para correlacionar términos de búsqueda con tendencias de la gripe. Mientras el enfoque tuvo fallos, este resaltó las posibilidades (y retos) de las predicciones de cuidados de la salud dirigidos por datos. - * [UPS Routing Predictions](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - explains how UPS uses data science and machine learning to predict optimal routes for delivery, taking into account weather conditions, traffic patterns, delivery deadlines and more. + * [Predicciones de enrutamiento de UPS](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - explica cómo UPS usa ciencia de datos y aprendizaje automático para predecir rutas óptimas para la entrega, tomando en cuenta condiciones climáticas, patrones de tráfico, fechas límite de entrega y más. - * [NYC Taxicab Route Visualization](http://chriswhong.github.io/nyctaxi/) - data gathered using [Freedom Of Information Laws](https://chriswhong.com/open-data/foil_nyc_taxi/) helped visualize a day in the life of NYC cabs, helping us understand how they navigate the busy city, the money they make, and the duration of trips over each 24-hour period. + * [Visualización de rutas de taxis en la ciudad de Nueva York](http://chriswhong.github.io/nyctaxi/) - se reunieron los datos usando [leyes de libertad de la información](https://chriswhong.com/open-data/foil_nyc_taxi/) lo cual ayudó a visualizar un día en la vida de los taxis de Nueva York, ayudando a entender como recorren la ajetreada ciudad, cuánto dinero ganan, y la duración de los viajes durante un período de 24 horas. - * [Uber Data Science Workbench](https://eng.uber.com/dsw/) - uses data (on pickup & dropoff locations, trip duration, preferred routes etc.) gathered from millions of uber trips *daily* to build a data analytics tool to help with pricing, safety, fraud detection and navigation decisions. + * [Banco de trabajo de Ciencia de Datos de Uber](https://eng.uber.com/dsw/) - usa los datos (de ubicaciones de inicio y fin de ruta, duración del viaje, rutas preferidas, etc.) reunidos de millones de viajes *diarios* en uber para construir una herramienta de analítica de datos para ayudar con los precios, seguridad, detección de fraude y decisiones de navegación. - * [Sports Analytics](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - focuses on _predictive analytics_ (team and player analysis - think [Moneyball](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/) - and fan management) and _data visualization_ (team & fan dashboards, games etc.) with applications like talent scouting, sports gambling and inventory/venue management. + * [Analítica de deportes](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - se enfoca en _analítica predictiva_ (análisis de equipo y jugador) - piensa [Moneyball](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/) - y gestión de admiradores) y _visualización de datos_ (tableros de equipo y admiradores, juegos, etc.) con aplicaciones como búsqueda de talento, apuestas deportivas y gestión de sedes/inventario. - * [Data Science in Banking](https://data-flair.training/blogs/data-science-in-banking/) - highlights the value of data science in the finance industry with applications ranging from risk modeling and fraud detction, to customer segmentation, real-time prediction and recommender systems. Predictive analytics also drive critical measures like [credit scores](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit). +* [Ciencia de Datos en el sector bancario](https://data-flair.training/blogs/data-science-in-banking/) - resalta el valor de la ciencia de datos en la industria financiera con aplicaciones que varían desde el modelado de riesgo y detección de fraudes, a segmentación de clientes, sistemas de predicción y recomendación en tiempo real. La analítica predictiva también dirige medidas críticas como [puntaje de crédito](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit). - * [Data Science in Healthcare](https://data-flair.training/blogs/data-science-in-healthcare/) - highlights applications like medical imaging (e.g., MRI, X-Ray, CT-Scan), genomics (DNA sequencing), drug development (risk assessment, success prediction), predictive analytics (patient care & supply logistics), disease tracking & prevention etc. + * [Ciencia de Datos en el cuidado de la salud](https://data-flair.training/blogs/data-science-in-healthcare/) - resalta aplicaciones como imágenes médicas (por ejemplo, resonancias magnéticas, rayos X, tomografías computarizadas), genómicas (secuencia de ADN), desarrollo de fármacos (evaluación de riesgos, predicción de éxito), análisis predictivos (cuidado del paciente y logística de suministro), seguimiento y prevención de enfermedades, etcétera. -![Data Science Applications in The Real World](./images/data-science-applications.png) Image Credit: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) +![Aplicaciones de la Ciencia de Datos en el mundo real](../images/data-science-applications.png) Image Credit: [Estilos de datos: 6 sorprendentes aplicaciones de la Ciencia de Datos](https://data-flair.training/blogs/data-science-applications/) -The figure shows other domains and examples for applying data science techniques. Want to explore other applications? Check out the [Review & Self Study](?id=review-amp-self-study) section below. +La imagen muestra otros dominios y ejemplos para aplicar técnicas de ciencia de datos. ¿Quieres explorar otras aplicaciones? Revisa la sección [revisión y auto-estudio](?id=review-amp-self-study) abajo. -## Data Science + Research +## Ciencia de datos + Investigación -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +| ![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Research.png) | | :---------------------------------------------------------------------------------------------------------------: | -| Data Science & Research - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| Ciencia de Datos e Investigación - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | -While real-world applications often focus on industry use cases at scale, _research_ applications and projects can be useful from two perspectives: +Mientras las aplicaciones del mundo real suelen enfocarse en los casos de uso a escala en la industri, las aplicaciones y proyectos de _investigación_ son útiles desde dos prespectivas: -* _innovation opportunities_ - explore rapid prototyping of advanced concepts and testing of user experiences for next-generation applications. -* _deployment challenges_ - investigate potential harms or unintended consequences of data science technologies in real-world contexts. +* _oportunidades de inovación_ - explora el prototipado rápido de conceptos avanzados y pruebas de experiencias de usuario para aplicaciones de próxima generación. +* _desafíos de despliegue_ - investiga daños potenciales o consecuencias involuntarias de las tecnologías de ciencia de datos el mundo real. -For students, these research projects can provide both learning and collaboration opportunities that can improve your understanding of the topic, and broaden your awareness and engagement with relevant people or teams working in areas of interest. So what do research projects look like and how can they make an impact? +Para los estudiantes, estos proyectos de investigación pueden proveer tanto aprendizaje como oportunidades de colaboración que podrían mejorar tu entendimiento del tema, y ampliar tu conciencia y compromiso con gente o equipos relevantes en el área de interés. ¿Entonces, qué te parecen los proyectos de investigación y cómo pueden tener impacto? -Let's look at one example - the [MIT Gender Shades Study](http://gendershades.org/overview.html) from Joy Buolamwini (MIT Media Labs) with a [signature research paper](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) co-authored with Timnit Gebru (then at Microsoft Research) that focused on +Veamos un ejemplo - el [estudio de sombras de género del MIT](http://gendershades.org/overview.html) de Joy Buolamwini (MIT Media Labs) con el[documento de investigación de firma](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) en co-autoría con Timnit Gebru (luego en Microsoft Research) se enfocó en: - * **What:** The objective of the research project was to _evaluate bias present in automated facial analysis algorithms and datasets_ based on gender and skin type. - * **Why:** Facial analysis is used in areas like law enforcement, airport security, hiring systems and more - contexts where inaccurate classifications (e.g., due to bias) can cause potential economic and social harms to affected individuals or groups. Understanding (and eliminating or mitigating) biases is key to fairness in usage. - * **How:** Researchers recongized that existing benchmarks used predominantly lighter-skinned subjects, and curated a new data set (1000+ images) that was _more balanced_ by gender and skin type. The data set was used to evaluate the accuracy of three gender classification products (from Microsoft, IBM & Face++). + * **Qué:** El objetivo del proyecto de investigación fue el _evaluar sesgos presentes en los algoritmos de análisis facial automatizado y conjuntos de datos_ basados en el género y tipo de piel. -Results showed that though overall classification accuracy was good, there was a noticeable difference in error rates between various subgroups - with **misgendering** being higher for females or persons with darker skin types, indicative of bias. + * **Porqué:** El análisis facial es usado en área como cumplimiento de la ley, seguridad aeroportuaria, sistemas de contratación y más - contextos donde las clasificaciones imprecisas (por ejemplo, debido a sesgos) pueden causar daños potenciales económicos y sociales a los individuos o grupos afectados. Entender (y eliminar o mitigar) sesgos es la clave para ser justos en práctica. -**Key Outcomes:** Raised awareness that data science needs more _representative datasets_ (balanced subgroups) and more _inclusive teams_ (diverse backgrounds) to recognize and eliminate or mitigate such biases earlier in AI solutions. Research efforts like this are also instrumental in many organizations defining principles and practices for _responsible AI_ to improve fairness across their AI products and processes. + * **Cómo:** Lso investigadores reconocieron que los puntos de referencia existentes usaron predominantemente sujetos de piel más clara, y curaron un nuevo conjunto de datos (más de 1000 imágenes) que estaban _más equilibradas_ por género y tipo de piel. El conjunto de datos se usó para evaluar la precisión de tres productos de clasificación de género (de Microsoft, IBM y Face++). +Los resultados mostraton que aunque la precisión de clasificación general era buena, había una notable diferencia en las tasas de error entre distintos subgrupos - con la **mala clasificación de género** siendo más alta para mujeres o personas con tipos de piel más oscuros, indicativo de un sesgo. -**Want to learn about relevant research efforts in Microsoft?** +**Resultados clave:** Hicieron evidente que la ciencia de datos necesita más _conjuntos de datos representativos_ (subgrupos equilibrados) y más _equipos incluyentes_ (distintos antecedentes) para reconocer y eliminar o mitigar esos sesgos antes en soluciones de AI. los esfuerzos de investigación como este también son instrumentales en muchas organizaciones definiendo principios y práticas para una _AI responsable_ para mejorar la justicia a través de los productos y procesos de AI. -* Check out [Microsoft Research Projects](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) on Artificial Intelligence. -* Explore student projects from [Microsoft Research Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/). -* Check out the [Fairlearn](https://fairlearn.org/) project and [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) initiatives. +**¿quieres aprender acerca de esfuerzos relevantes de investigación en Microsoft?** +* Revisa los [proyectos de investigación de Microsoft](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) en Inteligencia Artificial. +* Explorar proyectos de estudiantes de la [escuela de verano de investigación en Ciencia de Datos de Microsoft](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/). +* Revisa el proyecto [Fairlearn](https://fairlearn.org/) e iniciativas de [AI responsable](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6). -## Data Science + Humanities -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | +## Ciencia de Datos + Humanidades + +| ![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Humanities.png) | | :---------------------------------------------------------------------------------------------------------------: | -| Data Science & Digital Humanities - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| Ciencia de Datos & Humanidades Digitales - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | -Digital Humanities [has been defined](https://digitalhumanities.stanford.edu/about-dh-stanford) as "a collection of practices and approaches combining computational methods with humanistic inquiry". [Stanford projects](https://digitalhumanities.stanford.edu/projects) like _"rebooting history"_ and _"poetic thinking"_ illustrate the linkage between [Digital Humanities and Data Science](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) - emphasizing techniques like network analysis, information visualization, spatial and text analysis that can help us revisit historical and literary data sets to derive new insights and perspective. +Las Humanidades Digitales [han sido definidas](https://digitalhumanities.stanford.edu/about-dh-stanford) como "una coleción de prácticas y enfoques que combinan métodos computacionales con investigación humanística". Los [proyectos de Stanford](https://digitalhumanities.stanford.edu/projects) como _"reiniciando la historia"_ y _"pensamiento poético"_ ilustran el vículo entre [las Humanidades Digitales y Ciencia de Datos](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) - enfatizando técnicas como el análisis de red, visualización de la información, análisis espacial y de texto que nos ayudan a revisitar datos históricos y literarios para derivar en nuevos conocimientos y perspectivas. -*Want to explore and extend a project in this space?* +*¿Quieres explorar y extender un proyecto en este espacio?* -Check out ["Emily Dickinson and the Meter of Mood"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) - a great example from [Jen Looper](https://twitter.com/jenlooper) that asks how we can use data science to revisit familiar poetry and re-evaluate its meaning and the contributions of its author in new contexts. For instance, _can we predict the season in which a poem was authored by analyzing its tone or sentiment_ - and what does this tell us about the author's state of mind over the relevant period? +Revisa ["Emily Dickinson y el medidor de estado de ánimo"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) - un gran ejemplo de [Jen Looper](https://twitter.com/jenlooper) que planteacomo podemos usar la ciencia de datos para revisitar poesía familiar y re-evaluar su significado y las contribuciones de su autor en nuevos contextos. Por ejemplo, _¿podemos predecir la estación en la cual fue creado un poema realizando un análisis en su tono o sentimiento_? y ¿qué nos dices esto acerca del estado mental del autor en ese período en particular? -To answer that question, we follow the steps of our data science lifecycle: - * [`Data Acquisition`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - to collect a relevant dataset for analysis. Options including using an API ( e.g., [Poetry DB API](https://poetrydb.org/index.html)) or scraping web pages (e.g., [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) using tools like [Scrapy](https://scrapy.org/). - * [`Data Cleaning`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - explains how text can be formatted, sanitized and simplified using basic tools like Visual Studio Code and Microsoft Excel. - * [`Data Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - explains how we can now import the dataset into "Notebooks" for analysis using Python packages (like pandas, numpy and matplotlib) to organize and visualize the data. - * [`Sentiment Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - explains how we can integrate cloud services like Text Analytics, using low-code tools like [Power Automate](https://flow.microsoft.com/en-us/) for automated data processing workflows. +Para responder a esa pregunta, seguiremos los pasos de nuestro ciclo de vida de ciencia de datos: + * [`Adquisición de datos`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - para recolectar un conjunto de datos relevante para el análisis. Las opciones incluyen el uso de un API (por ejemplo, [Poetry DB API](https://poetrydb.org/index.html)) o realizar raspado de páginas web (por ejemplo, [Proyecto Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) usando herramientas como [Scrapy](https://scrapy.org/). + * [`Limpieza de datos`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - explica como se puede dar formato al texto, la sanitización y simplificación usando herramientas básicas como Visual Studio Code y Microsoft Excel. + * [`Análisis de datos`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - explica como podemos importar los conjuntos de trabajo en "Notebooks" para análisis usando paquetes de Python (como pandas, numpy y matplotlib) para organizar y visualizar los datos. + * [`Análisis de sentimiento`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - explica como podemos integrar servicios en la nube como Text Analytics, usando herramientas de low-code tools como [Power Automate](https://flow.microsoft.com/en-us/) para flujos de trabajo de procesamiento de datos automatizados. -Using this workflow, we can explore the seasonal impacts on the sentiment of the poems, and help us fashion our own perspectives on the author. Try it out yourself - then extend the notebook to ask other questions or visualize the data in new ways! +Usando este flujo de trabajo, podemos explorar los impactos estacionales en el sentimiento de los poemas, y nos ayuda a formar nuestras propias perspectivas del autor. ¡Prueba esto tú mismo - luego extiende el notebook para preguntar otras cuestiones o visualizar los datos de nuevas formas! -> You can use some of the tools in the [Digital Humanities toolkit](https://github.com/Digital-Humanities-Toolkit) to pursue these avenues of inquiry +> Puedes usar algunas de las herramientas en la [caja de herramientas de Humanidades Digitales](https://github.com/Digital-Humanities-Toolkit) para seguir estas vías de investigación. -## Data Science + Sustainability +## Ciencia de Datos + Sustentabilidad -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | +| ![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Sustainability.png) | | :---------------------------------------------------------------------------------------------------------------: | -| Data Science & Sustainability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| Ciencia de Datos y Sustentabilidad - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | + +La [agenda de 2030 para el desarrollo sostenible](https://sdgs.un.org/2030agenda) - adoptada por todos los miembros de las Naciones Unidas en 2015 - identifica 17 metas incluyendo algunas que se enfocan en la **protección del planeta** de la degradación y el impacto del cambio climático. La iniciativa de [sustentabilidad de Microsoft](https://www.microsoft.com/en-us/sustainability) soporta estas metas explorando formas en las cuales las soluciones tecnológicas pueden soportar y construir futuros más sostenibles con un [enfoque en 4 metas](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - siendo negativas al carbono, positivas al agua, cero desperdicio y biodiversas para el 2030. + +Abordar estos desafíos de forma escalable y oportuna requiere pensamiento a escala de la nuber y datos en gran escala. La iniciativa de [Computadora Planetaria](https://planetarycomputer.microsoft.com/) provee 4 componentes que ayudan a los científicos de datos y desarrolladores en este esfuerzo: + + * [Catálogo de datos](https://planetarycomputer.microsoft.com/catalog) - con petabytes de datos de los sistemas de la tierra (gratuitos y hospedados en Azure). + * [API Planetaria](https://planetarycomputer.microsoft.com/docs/reference/stac/) - para ayudar a los usuarios a buscar datos relevantes a través del espacio y tiempo. + * [Hub](https://planetarycomputer.microsoft.com/docs/overview/environment/) - entorno gestionado por científicos par el proceso de conjuntos de datos geoespaciales masivos. + * [Aplicaciones](https://planetarycomputer.microsoft.com/applications) - exhibe casos de uso y herramientas para conocimientos prácticos sostenibles. -The [2030 Agenda For Sustainable Development](https://sdgs.un.org/2030agenda) - adopted by all United Nations members in 2015 - identifies 17 goals including ones that focus on **Protecting the Planet** from degradation and the impact of climate change. The [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) initiative supports these goals by exploring ways in which technology solutions can support and build more sustainable futures with a [focus on 4 goals](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - being carbon negative, water positive, zero waste, and bio-diverse by 2030. +**El proyecto de Computadora Planetaria está actualmente en progreso (a Septiembre de 2021)** - así es como puedes iniciarte en la contribución a soluciones sostenibles usando ciencia de datos. -Tackling these challenges in a scalable and timely manner requires cloud-scale thinking - and large scale data. The [Planetary Computer](https://planetarycomputer.microsoft.com/) initiative provides 4 components to help data scientists and developers in this effort: - - * [Data Catalog](https://planetarycomputer.microsoft.com/catalog) - with petabytes of Earth Systems data (free & Azure-hosted). - * [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - to help users search for relevant data across space and time. - * [Hub](https://planetarycomputer.microsoft.com/docs/overview/environment/) - managed environment for scientists to process massive geospatial datasets. - * [Applications](https://planetarycomputer.microsoft.com/applications) - showcase use cases & tools for sustainability insights. +* [Solicita acceso](https://planetarycomputer.microsoft.com/account/request) para iniciar la exploración y conecta con compañeros. +* [Explora la documentación](https://planetarycomputer.microsoft.com/docs/overview/about) para entender los conjuntos de datos y APIs soportados. +* Explora aplicaciones como [Monitoreo del ecosistema](https://analytics-lab.org/ecosystemmonitoring/) en búsqueda de inspiración en ideas de aplicación. -**The Planetary Computer Project is currently in preview (as of Sep 2021)** - here's how you can get started contributing to sustainability solutions using data science. +Piensa en cómo puedes usar la visualización de datos para exponer o amplificar los conocimientos en áreas como el cambio climático y deforestación. O piensa en como pueden ser usados los conocimientos para crear nuevas experiencias de usuario para motivar cambios en comportamiento para una vida más sostenible. -* [Request access](https://planetarycomputer.microsoft.com/account/request) to start exploration and connect with peers. -* [Explore documentation](https://planetarycomputer.microsoft.com/docs/overview/about) to understand supported datasets and APIs. -* Explore applications like [Ecosystem Monitoring](https://analytics-lab.org/ecosystemmonitoring/) for inspiration on application ideas. - -Think about how you can use data visualization to expose or amplify relevant insights into areas like climate change and deforestation. Or think about how insights can be used to create new user experiences that motivate behavioral changes for more sustainable living. +## Ciencia de Datos + Estudiantes -## Data Science + Students +Hemos hablado acerca de aplicaciones en el mundo real en la industria y la investigación y explorado ejemplos de aplicación de la ciencia de datos en las humanidades digitales y sostenibilidad. Entonces, ¿cómo puedes construir tus habilidades y compartir tu experienca como principiantes en la ciencia de datos? -We've talked about real-world applications in industry and research, and explored data science application examples in digital humanities and sustainability. So how can you build your skills and share your expertise as data science beginners? +Aquí tienes algunos ejemplos de proyectos de estudiantes de ciencia de datos para inspirarte. -Here are some examples of data science student projects to inspire you. +* [Escuela de verano de ciencia de datos MSR](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) en [proyectos](https://github.com/msr-ds3) de Github explora temas como: + - [Sesgo racial en el uso de la fuerza policial](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [Fiabilidad del sistema de transporte Metro de la Ciudad de Nueva York](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) + * [Digitalización de la Cultura Material: explora las distribuciones socio-económicas en Sirkap](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc)- por [Ornella Altunyan](https://twitter.com/ornelladotcom) y el equipo en Claremont, usando [ArcGIS StoryMaps](https://storymaps.arcgis.com/). - * [MSR Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) with GitHub [projects](https://github.com/msr-ds3) exploring topics like: - - [Racial Bias in Police Use of Force](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) - - [Reliability of NYC Subway System](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) - * [Digitizing Material Culture: Exploring socio-economic distributions in Sirkap](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc)- from [Ornella Altunyan](https://twitter.com/ornelladotcom) and team at Claremont, using using [ArcGIS StoryMaps](https://storymaps.arcgis.com/). +## 🚀 Desafío -## 🚀 Challenge +Busca artículos que recomienden proyectos de ciencia de datos que son amigables para principiantes - como [éstas 50 temas de área](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/) o [estas 21 ideas de proyecto](https://www.intellspot.com/data-science-project-ideas) o [estos 16 proyectos con código fuente](https://data-flair.training/blogs/data-science-project-ideas/) que puedes deconstruir y remezclar. Y no olvides crear un blog acerca de tu viaje de aprendizaje y comparte tus conocimientos con todos nosotros. -Search for articles that recommend data science projects that are beginner friendly - like [these 50 topic areas](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/) or [these 21 project ideas](https://www.intellspot.com/data-science-project-ideas) or [these 16 projects with source code](https://data-flair.training/blogs/data-science-project-ideas/) that you can deconstruct and remix. And don't forget to blog about your learning journeys and share your insights with all of us. -## Post-Lecture Quiz +## Examen posterior a la lección -[Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/39) -## Review & Self Study +[Examen posterior a la lección](https://red-water-0103e7a0f.azurestaticapps.net/quiz/39) +## Revisión y auto-estudio -Want to explore more use cases? Here are a few relevant articles: - * [17 Data Science Applications and Examples](https://builtin.com/data-science/data-science-applications-examples) - Jul 2021 - * [11 Breathtaking Data Science Applications in Real World](https://myblindbird.com/data-science-applications-real-world/) - May 2021 - * [Data Science In The Real World](https://towardsdatascience.com/data-science-in-the-real-world/home) - Article Collection - * Data Science In: [Education](https://data-flair.training/blogs/data-science-in-education/), [Agriculture](https://data-flair.training/blogs/data-science-in-agriculture/), [Finance](https://data-flair.training/blogs/data-science-in-finance/), [Movies](https://data-flair.training/blogs/data-science-at-movies/) & more. -## Assignment +¿Quieres explorar más casos de uso? Aquí hay algunos artículos relevantes: + * [17 aplicaciones de Ciencia de Datos y ejemplos](https://builtin.com/data-science/data-science-applications-examples) - Julio de 2021 + * [11 proyectos de Ciencia de Datos sorprendentes en el mundo real](https://myblindbird.com/data-science-applications-real-world/) - Mayo de 2021 + * [Ciencia de Datos en el mundo real](https://towardsdatascience.com/data-science-in-the-real-world/home) - colección de artículos + * Ciencia de Datos en la [Educación](https://data-flair.training/blogs/data-science-in-education/), [Agricultura](https://data-flair.training/blogs/data-science-in-agriculture/), [Finanzas](https://data-flair.training/blogs/data-science-in-finance/), [Películas](https://data-flair.training/blogs/data-science-at-movies/) y más. +## Asignación -[Explore A Planetary Computer Dataset](assignment.md) +[Explora un conjunto de datos de la Computadora Planetaria](../assignment.md) From 1c4e3a836aaadeb44d7ecdd999c059a8108cdebb Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sat, 16 Oct 2021 01:32:18 -0500 Subject: [PATCH 045/234] fix: Solve issue with broken link inner reference --- .../20-Real-World-Examples/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md index 231495d1..f708850a 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md @@ -32,7 +32,7 @@ Gracias a la democratización de la AI, los desarrolladores encuentran más fác ![Aplicaciones de la Ciencia de Datos en el mundo real](../images/data-science-applications.png) Image Credit: [Estilos de datos: 6 sorprendentes aplicaciones de la Ciencia de Datos](https://data-flair.training/blogs/data-science-applications/) -La imagen muestra otros dominios y ejemplos para aplicar técnicas de ciencia de datos. ¿Quieres explorar otras aplicaciones? Revisa la sección [revisión y auto-estudio](?id=review-amp-self-study) abajo. +La imagen muestra otros dominios y ejemplos para aplicar técnicas de ciencia de datos. ¿Quieres explorar otras aplicaciones? Revisa la sección [revisión y auto-estudio](#revisi%C3%B3n-y-auto-estudio) abajo. ## Ciencia de datos + Investigación From 9aeb8a5d594cf01e90cd352eb4b7ca0c46017a60 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sat, 16 Oct 2021 01:39:23 -0500 Subject: [PATCH 046/234] feat: Add assignment file to translate --- .../translations/assignment.es.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md new file mode 100644 index 00000000..6538f8df --- /dev/null +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md @@ -0,0 +1,38 @@ +# Explore a Planetary Computer Dataset + +## Instructions + +In this lesson, we talked about various data science application domains - with deep dives into examples related to research, sustainability and digital humanities. In this assignment, you'll explore one of these examples in more detail, and apply some of your learnings around data visualizations and analysis to derive insights about sustainability data. + +The [Planetary Computer](https://planetarycomputer.microsoft.com/) project has datasets and APIs that can be accessed with an account - request one for access if you want to try the bonus step of the assignment. The site also provides an [Explorer](https://planetarycomputer.microsoft.com/explore) feature that you can use without creating an account. + + +`Steps:` +The Explorer interface (shown in the screenshot below) lets you select a dataset (from provided options), a preset query (to filter data) and a rendering option (to create a relevant visualization). In this assignment, your task is to: + + 1. Read the [Explorer documentation](https://planetarycomputer.microsoft.com/docs/overview/explorer/) - understand options. + 2. Explore the dataset [Catalog](https://planetarycomputer.microsoft.com/catalog) - learn the purpose of each. + 3. Use the Explorer - pick a dataset of interest, select a relevant query & rendering option. + + +![The Planetary Computer Explorer](images/Planetary-Computer-Explorer.png) + +`Your Task:` +Now study the visualization that is rendered in the browser and answer the following: + * What _features_ does the dataset have? + * What _insights_ or results does the visualization provide? + * What are the _implications_ of those insights to the sustainability goals of the project? + * What are the _limitations_ of the visualization (i.e., what insight did you not get?) + * If you could get the raw data, what _alternative visualizations_ would you create, and why? + +`Bonus Points:` +Apply for an account - and login when accepted. + * Use the _Launch Hub_ option to open the raw data in a Notebook. + * Explore the data interactively, and implement the alternative visualizations you thought of. + * Now analyze your custom visualizations - were you able to derive the insights you missed before? + +## Rubric + +Exemplary | Adequate | Needs Improvement +--- | --- | -- | +All five core questions were answered. The student clearly identified how current and alternative visualizations could provide insights into sustainability objectives or outcomes.| The student answered at least the top 3 questions in great detail, showing that had practical experience with the Explorer. | The student failed to answer multiple questions, or provided insufficient detail - indicating that no meaningful attempt was made for the project | \ No newline at end of file From 33f9d36054ffb20063560dbecade23747b4cf166 Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sat, 16 Oct 2021 02:05:45 -0500 Subject: [PATCH 047/234] feat:(translation) 20 real world examples spanish translation * translate file `6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md` to spanish --- .../translations/assignment.es.md | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md index 6538f8df..5482bcd0 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.es.md @@ -1,38 +1,37 @@ -# Explore a Planetary Computer Dataset +# Explora un conjunto de datos de la Computadora Planetaria -## Instructions +## Instrucciones -In this lesson, we talked about various data science application domains - with deep dives into examples related to research, sustainability and digital humanities. In this assignment, you'll explore one of these examples in more detail, and apply some of your learnings around data visualizations and analysis to derive insights about sustainability data. +En esta lección, hablamos acerca de distintos dominios de aplicación de la ciencia de datos - profundizando en ejemplos relacionados a la investigación, sustentabilidad y humanidades digitales. En esta asignación, explorarás uno de estos ejemplos a mayor detalle, y aplicarás algunos de tus aprendizajes en visualización de datos y análisis para derivar en conocimientos acerca de datos de sustentabilidad. -The [Planetary Computer](https://planetarycomputer.microsoft.com/) project has datasets and APIs that can be accessed with an account - request one for access if you want to try the bonus step of the assignment. The site also provides an [Explorer](https://planetarycomputer.microsoft.com/explore) feature that you can use without creating an account. +El proyecto de [Computadora Planetaria](https://planetarycomputer.microsoft.com/) tiene conjuntos de datos y APIs que pueden ser accesadas con una cuenta - solicita acceso si quieres probar el paso adicional de esta asignación. El sitio también provee una característica de [Explorador](https://planetarycomputer.microsoft.com/explore) que puedes usar sin crear una cuenta. -`Steps:` -The Explorer interface (shown in the screenshot below) lets you select a dataset (from provided options), a preset query (to filter data) and a rendering option (to create a relevant visualization). In this assignment, your task is to: +`Pasos:` +La interfaz de exploración (mostrada en captura de pantalla abajo) te permite seleccionar un conjunto de datos (de las opciones proporcionadas), una consulta preestablecida (para filtrar los datos) y una opción de representación (para crear una visualización relevante). En esta asignación, tu tarea es: - 1. Read the [Explorer documentation](https://planetarycomputer.microsoft.com/docs/overview/explorer/) - understand options. - 2. Explore the dataset [Catalog](https://planetarycomputer.microsoft.com/catalog) - learn the purpose of each. - 3. Use the Explorer - pick a dataset of interest, select a relevant query & rendering option. + 1. Lee la [documentación del explorador](https://planetarycomputer.microsoft.com/docs/overview/explorer/) - entiende las opciones. + 2. Explora el conjunto de datos del [catálogo](https://planetarycomputer.microsoft.com/catalog) - entiende el propósito de cada uno. + 3. Usa el explorador - elige un conjunto de datos de interés, selecciona una consulta relevante y una opción de representación. +![El explorador de la Computadora Planetaria](../images/planetary-computer-explorer.png) -![The Planetary Computer Explorer](images/Planetary-Computer-Explorer.png) +`Tu tarea:` +Ahora estudia la visualización que es representada en el navegador y responde a lo siguiente: + * ¿Qué _características_ tiene el conjunto de datos? + * ¿Qué _conocimientos_ o resultados provee la visualización? + * ¿Cuáles son las _implicaciones_ de esos conocimientos para las metas de sustentabilidad del proyecto? + * ¿Cuáles son las _limitantes_ de la visualización (esto es, ¿qué conocimiento no obtienes?)? + * Si pudieras obtener los datos en crudo, ¿qué _alternativas de visualización_ crearías y porqué? -`Your Task:` -Now study the visualization that is rendered in the browser and answer the following: - * What _features_ does the dataset have? - * What _insights_ or results does the visualization provide? - * What are the _implications_ of those insights to the sustainability goals of the project? - * What are the _limitations_ of the visualization (i.e., what insight did you not get?) - * If you could get the raw data, what _alternative visualizations_ would you create, and why? +`Puntos adicionales:` +Aplica para una cuenta - e inicia sesión cuando seas aceptado. + * Usa la opción _Launch Hub_ para abrir el conjunto de datos en crudo en un Notebook. +* Explorar los datos de forma interactiva, e implementa las alternativas de visualización que tengas en mente. +* Ahora analiza tus visualizaciones personalizadas - ¿fuiste capaz de derivar los conocimientos que antes te faltaron? -`Bonus Points:` -Apply for an account - and login when accepted. - * Use the _Launch Hub_ option to open the raw data in a Notebook. - * Explore the data interactively, and implement the alternative visualizations you thought of. - * Now analyze your custom visualizations - were you able to derive the insights you missed before? +## Rúbrica -## Rubric - -Exemplary | Adequate | Needs Improvement +Ejemplar | Adecuado | Necesita mejorar --- | --- | -- | -All five core questions were answered. The student clearly identified how current and alternative visualizations could provide insights into sustainability objectives or outcomes.| The student answered at least the top 3 questions in great detail, showing that had practical experience with the Explorer. | The student failed to answer multiple questions, or provided insufficient detail - indicating that no meaningful attempt was made for the project | \ No newline at end of file +Todas las cinco preguntas se respondieron. El estudiante identificó claramente como las visualizaciones actuales y alternativas podrían proveer conocimiento en objetivos de sustentabilidad o resultados. | El estudiante respondió al menos las 3 preguntas principales a gran detalle, mostrando que tuvo experiencia práctica con el Explorador. | El estudiante falló al responder múltiples preguntas, o dió detalles insuficientes - indicando que hizo un intento significativo para el proyecto. | \ No newline at end of file From ccfd961ba822a639f1a50b12d282b63981287cfd Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sat, 16 Oct 2021 02:11:21 -0500 Subject: [PATCH 048/234] feat: Add file to translate --- 6-Data-Science-In-Wild/translations/README.es.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 6-Data-Science-In-Wild/translations/README.es.md diff --git a/6-Data-Science-In-Wild/translations/README.es.md b/6-Data-Science-In-Wild/translations/README.es.md new file mode 100644 index 00000000..edd7a3f2 --- /dev/null +++ b/6-Data-Science-In-Wild/translations/README.es.md @@ -0,0 +1,11 @@ +# Data Science in the Wild + +Real-world applications of data science across industries. + +### Topics + +1. [Data Science in the Real World](20-Real-World-Examples/README.md) + +### Credits + +Written with ❤️ by [Nitya Narasimhan](https://twitter.com/nitya) From 3d659a4fca5bfa2b330b4fd30cdcccc7d33731ca Mon Sep 17 00:00:00 2001 From: Angel Mendez Date: Sat, 16 Oct 2021 02:17:07 -0500 Subject: [PATCH 049/234] feat:(translation) translate main README on module 6 * translate file to spanish --- 6-Data-Science-In-Wild/translations/README.es.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/6-Data-Science-In-Wild/translations/README.es.md b/6-Data-Science-In-Wild/translations/README.es.md index edd7a3f2..3cdc7458 100644 --- a/6-Data-Science-In-Wild/translations/README.es.md +++ b/6-Data-Science-In-Wild/translations/README.es.md @@ -1,11 +1,11 @@ -# Data Science in the Wild +# Ciencia de Datos en la naturaleza -Real-world applications of data science across industries. +Aplicaciones del mundo real de la ciencia de datos en las industrias. -### Topics +### Temas -1. [Data Science in the Real World](20-Real-World-Examples/README.md) +1. [Ciencia de datos en el mundo real](../20-Real-World-Examples/translations/README.es.md) -### Credits +### Créditos -Written with ❤️ by [Nitya Narasimhan](https://twitter.com/nitya) +Escrito con ❤️ por [Nitya Narasimhan](https://twitter.com/nitya) From 05410c649c36bba03c3e272231ac981f437e6f67 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 15:30:01 -0300 Subject: [PATCH 050/234] Create assignment.pt-br.md --- .../translations/assignment.pt-br.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md diff --git a/3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md b/3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md new file mode 100644 index 00000000..ec63b0d7 --- /dev/null +++ b/3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md @@ -0,0 +1,11 @@ +# Aplique suas habilidades + +## Instruções + +Até agora, você trabalhou com o dataset de pássaros de Minnesota para descobrir informação sobre quantidades de pássaros e densidade populacional. Pratique essas técnicas usando um outro dataset, talvez do [Kaggle](https://www.kaggle.com/). Faça um notebook que conta uma história sobre esse dataset, e lembre-se de usar histogramas para isso. + +## Rubrica + +Exemplar | Adequado | Precisa melhorar +--- | --- | -- | +O notebook tem anotações sobre o dataset, incluindo sua origem, e usa pelo menos 5 histogramas para descobrir fatos sobre os dados. | O notebook tem anotações incompletas ou bugs | O notebook não possui nenhuma anotação e contṕem bugs. From 544c06ef80bb351ace57accc60ec8432bac61583 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 16:13:03 -0300 Subject: [PATCH 051/234] Fix typos and change the links Revised and fixed typos, rephrased some sentences. Also changed the links to the translated lessons. --- .../translations/README.pt-br.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/3-Data-Visualization/translations/README.pt-br.md b/3-Data-Visualization/translations/README.pt-br.md index 1437ecf3..816f3743 100644 --- a/3-Data-Visualization/translations/README.pt-br.md +++ b/3-Data-Visualization/translations/README.pt-br.md @@ -1,31 +1,31 @@ # Visualizações -![a bee on a lavender flower](./../images/bee.jpg) +![Uma abelha em uma flor de lavanda](./../images/bee.jpg) > Foto por Jenna Lee em Unsplash - -Visualizar dados é uma das tarefas mais importantes de um cientista de dados. Imagens valem mais que 1000 palavras, e uma visualização pode te ajudar a identificar todo tipo de partes interessantes dos seus dados, como picos, outliers, agrupamentos, tendências, e mais, que podem te ajudar a entender a história que seus dados estão tentando contar. + +Visualizar dados é uma das tarefas mais importantes para um cientista de dados. Uma imagem vale mais que 1000 palavras, e uma visualização pode te ajudar a identificar todo tipo de coisa interessante nos seus dados, como picos, outliers, agrupamentos, tendências, e mais, que podem te ajudar a entender a história que seus dados estão tentando contar. Nessas cinco aulas, você irá explorar dados vindos da natureza e criar visualizações bonitas e interessantes usando várias técnicas. ### Tópicos -1. [Visualizando quantidades](09-visualization-quantities/README.md) -1. [Visualizando distribuições](10-visualization-distributions/README.md) -1. [Visualizando proporções](11-visualization-proportions/README.md) -1. [Visualizando relações](12-visualization-relationships/README.md) -1. [Criando visualizações relevantes](13-meaningful-visualizations/README.md) +1. [Visualizando quantidades](../09-visualization-quantities/translations/README.pt-br.md) +1. [Visualizando distribuições](../10-visualization-distributions/translations/README.pt-br.md) +1. [Visualizando proporções](11-visualization-proportions/README.md) (ainda não traduzido) +1. [Visualizando relações](12-visualization-relationships/README.md) (ainda não traduzido) +1. [Criando visualizações relevantes](13-meaningful-visualizations/README.md) (ainda não traduzido) ### Créditos Essas aulas foram escritas com 🌸 por [Jen Looper](https://twitter.com/jenlooper) -🍯 Dados de produção de mel nos EUA são provenientes do projeto de Jessica Li no [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). Os [dados](https://usda.library.cornell.edu/concern/publications/rn301137d) são provenientes do [Departamento de Agricultura dos Estados Unidos](https://www.nass.usda.gov/About_NASS/index.php). +🍯 Os dados de produção de mel nos EUA são provenientes do projeto de Jessica Li no [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). Eles são derivados dos [dados](https://usda.library.cornell.edu/concern/publications/rn301137d) disponibilizados pelo [Departamento de Agricultura dos Estados Unidos](https://www.nass.usda.gov/About_NASS/index.php). -🍄 Dados dos cogumelos também são provenientes do [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) revisados por Hatteras Dunton. Esse dataset inclui descrições de amostras hipotéticas que correspondem a 23 espécies de cogumelos lamelados das famílias Agaricus e Lepiota. Mushroom drawn from The Audubon Society Field Guide to North American Mushrooms (1981). Esse dataset foi doado para UCI ML 27 em 1987. +🍄 Os dados dos cogumelos também são provenientes do [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset), e foram revisados por Hatteras Dunton. Esse dataset inclui descrições de amostras hipotéticas que correspondem a 23 espécies de cogumelos lamelados das famílias Agaricus e Lepiota. Os cogumelos foram retirados do livro The Audubon Society Field Guide to North American Mushrooms (1981). Esse dataset foi doado para a UCI ML 27 em 1987. -🦆 Dados de pássaros de Minnesota também são provenientes do [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) raspados (web scraping) da [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) por Hannah Collins. +🦆 Os dados de aves de Minnesota também são provenientes do [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds), e foram raspados (scraped) da [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) por Hannah Collins. -Todos esses datasets estão licensiados sob [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). +Todos esses datasets estão licenciados sob [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). From cb0984d0ab522e41990c2aaa02f72df96363e987 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 20:01:44 -0300 Subject: [PATCH 052/234] Fix links --- 3-Data-Visualization/translations/README.pt-br.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3-Data-Visualization/translations/README.pt-br.md b/3-Data-Visualization/translations/README.pt-br.md index 816f3743..80430b78 100644 --- a/3-Data-Visualization/translations/README.pt-br.md +++ b/3-Data-Visualization/translations/README.pt-br.md @@ -11,9 +11,9 @@ Nessas cinco aulas, você irá explorar dados vindos da natureza e criar visuali 1. [Visualizando quantidades](../09-visualization-quantities/translations/README.pt-br.md) 1. [Visualizando distribuições](../10-visualization-distributions/translations/README.pt-br.md) -1. [Visualizando proporções](11-visualization-proportions/README.md) (ainda não traduzido) -1. [Visualizando relações](12-visualization-relationships/README.md) (ainda não traduzido) -1. [Criando visualizações relevantes](13-meaningful-visualizations/README.md) (ainda não traduzido) +1. [Visualizando proporções](../11-visualization-proportions/README.md) (ainda não traduzido) +1. [Visualizando relações](../12-visualization-relationships/README.md) (ainda não traduzido) +1. [Criando visualizações relevantes](../13-meaningful-visualizations/README.md) (ainda não traduzido) ### Créditos From bd363541cc2905f9121affe44715aad977f32918 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 21:24:25 -0300 Subject: [PATCH 053/234] Fix typos and change the links Revised and fixed typos, rephrased some sentences. Also changed the links to the translated lessons. --- .../translations/README.pt-br.md | 91 ++++++++++--------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md index 90838098..f0bf7bf8 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.pt-br.md @@ -4,29 +4,28 @@ |:---:| | Visualizando quantidades - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | -Nessa aula você irá explorar como usar uma das muitas bibliotecas disponíveis de Python para aprender a criar visualizações interessantes relacionadas ao conceito de quantidade. Usando um dataset já limpo sobre pássaros de Minnesota, você pode aprender muitos fatos interessantes sobre a fauna selvagem local. +Nesta aula você irá explorar como usar uma das muitas bibliotecas disponíveis no Python para aprender a criar visualizações interessantes relacionadas ao conceito de quantidade. Usando um dataset já limpo sobre aves de Minnesota, você pode aprender muitos fatos interessantes sobre a fauna selvagem local. ## [Quiz pré-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/16) -## Observar envergadura de asa com Matplotlib +## Observando envergadura da asa com Matplotlib -Uma biblioteca excelente para criar gráficos simples e sofisticados de diversos tipos é o [Matplotlib](https://matplotlib.org/stable/index.html). Em geral, o processo de plotar dados com essas bibliotecas inclui identificar as partes do seu dataframe que você quer focar, utilizando quaisquer transformações necessárias nestes dados, atribuindo seus valores dos eixos x e y, decidindo qual tipo de gráfico mostrar, e então mostrando o gráfico. O Matplotlib oferece uma grande variedade de visualizações, mas, nesta aula, iremos focar nos mais apropriados para visualizar quantidade: gráfico de linha, gráfico de dispersão e gráfico de barra. +Uma biblioteca excelente para criar tanto gráficos simples como sofisticados e de diversos tipos é o [Matplotlib](https://matplotlib.org/stable/index.html). Em geral, o processo de plotar dados com esta biblioteca inclui identificar as partes do seu dataframe que você quer focar, utilizando quaisquer transformações necessárias nestes dados, atribuindo parâmetros dos eixos x e y, decidindo qual tipo de gráfico usar, e então mostrando o gráfico. O Matplotlib oferece uma grande variedade de visualizações, mas, nesta aula, iremos focar nos mais apropriados para visualizar quantidade: gráfico de linha, gráfico de dispersão e gráfico de barra. > ✅ Use o melhor gráfico para se adaptar a estrutura dos dados e a história que você quer contar. -> - Para analisar tendências ao longo do tempo: linha +> - Para analisar tendências temporais: linha > - Para comparar valores: barra, coluna, pizza, dispersão > - Para mostrar como as partes se relacionam com o todo: pizza -> - Para mostrar a distrivuição dos dados: dispersão, barra +> - Para mostrar a distribuição dos dados: dispersão, barra > - Para mostrar tendências: linha, coluna > - Para mostrar relações entre valores: linha, dispersão, bolha -Se você tem um dataset e precisa descobrir quanto de um dado item está presente, uma das primeiras coisas que você precisará fazer é examinar seus valores. +Se você tem um dataset e precisa descobrir quanto de um dado elemento está presente, uma das primeiras coisas que você precisará fazer é examinar seus valores. +✅ Existem dicas ('cheat sheets') ótimas disponíveis para o Matplotlib [aqui](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-1.png) e [aqui](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-2.png). -✅ Existem dicas ('cheat sheets') muito boas disponíveis para o Matplotlib [aqui](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-1.png) e [aqui](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-2.png). +## Construindo um gráfico de linhas sobre os valores de envergadura de aves -## Construir um gráfico de linhas sobre os valores de envergadura de pássaros - -Abra o arquivo `notebook.ipynb` na raiz da pasta dessa aula e adicione uma célula. +Abra o arquivo `notebook.ipynb` na raiz da pasta desta aula e adicione uma célula. > Nota: os dados estão armazenados na raiz deste repositório na pasta `/data`. @@ -36,7 +35,8 @@ import matplotlib.pyplot as plt birds = pd.read_csv('../../data/birds.csv') birds.head() ``` -Esses dados são uma mistura de texto e números: + +Estes dados são uma mistura de texto e números: | | Name | ScientificName | Category | Order | Family | Genus | ConservationStatus | MinLength | MaxLength | MinBodyMass | MaxBodyMass | MinWingspan | MaxWingspan | @@ -47,7 +47,7 @@ Esses dados são uma mistura de texto e números: | 3 | Ross's goose | Anser rossii | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | | 4 | Greater white-fronted goose | Anser albifrons | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | -Vamos começar plotando alguns dados numéricos com um simples gráfico de linhas. Suponha que você quer uma visualização da envergadura máxima desses pássaros interessantes. +Vamos começar plotando alguns dados numéricos com um simples gráfico de linhas. Suponha que você quer uma visualização da envergadura máxima (MaxWingspan) dessas aves interessantes. ```python wingspan = birds['MaxWingspan'] @@ -55,11 +55,11 @@ wingspan.plot() ``` ![Envergadura máxima](../images/max-wingspan.png) -O que é possível perceber imediatamente? Aparentemente existe pelo menos um outlier - e que envergadura! Uma envergadura de 2300 centímetros equivale a 23 metros - têm pterodáctilos voando em Minnesota? Vamos investigar. +O que é possível perceber imediatamente? Aparentemente existe pelo menos um outlier - e que envergadura! Uma envergadura de 2300 centímetros equivale a 23 metros - existem pterodáctilos voando em Minnesota? Vamos investigar. -Você poderia fazer uma ordenação rápida no Excel para encontrar esses outliers, que provavelmente são erros de digitação. No entanto, vamos continuar o processo de visualização trabalhando no gráfico. +Você poderia fazer uma ordenação rápida no Excel para encontrar estes outliers, que provavelmente são erros de digitação. No entanto, vamos continuar o processo de visualização trabalhando no gráfico. -Adicione labels (identificadores) no eixo x para mostrar quais tipos de pássaros estão sendo analisados: +Adicione identificadores (labels) no eixo x para mostrar os nomes das aves que estão sendo analisadas: ``` plt.title('Max Wingspan in Centimeters') @@ -75,7 +75,7 @@ plt.show() ``` ![Envergadura com labels (identificadores)](../images/max-wingspan-labels.png) -Mesmo com a rotação das labels em 45 graus, existem muitos para ler. Vamos tentar outra estratégia: identificar somente os outliers e colocar as labels dentro do gráfico. Você pode usarj um gráfico de dispersão para abrir mais espaço para identificação: +Mesmo com a rotação das labels em 45 graus, existem muitas para ler. Vamos tentar outra estratégia: identificar os outliers e somente colocar as labels deles dentro do gráfico. Você pode usar um gráfico de dispersão para abrir mais espaço para labels (identificadores): ```python plt.title('Max Wingspan in Centimeters') @@ -92,15 +92,15 @@ for i in range(len(birds)): plt.show() ``` -O que aconteceu aqui? Você usou `tick_params` para esconder as labels debaixo e entrão criou um loop sobre o dataset dos paśsaros. Depois, plotou o gráfico com pequenos círculos azuis usando `bo` e procurou por pássaros com envergadura maior que 500 e, se sim, exibiu a label ao lado do círculo. Você ajustou as labels no eixo y (`y * (1 - 0.05)`) e usou o nome do pássaro como label. +O que aconteceu aqui? Você usou `tick_params` para esconder as labels do eixo x e então criou um loop sobre o dataset das aves. Depois, plotou o gráfico com pequenos círculos azuis usando `bo` e procurou por aves com envergadura maior que 500 e, em caso positivo, exibiu a label ao lado do círculo. Você ajustou as labels no eixo y (`y * (1 - 0.05)`) e usou o nome da ave como label. O que você descobriu? ![outliers](../images/labeled-wingspan.png) -## Filtrar seus dados +## Filtrando seus dados -Apesar de grandes, tanto a Bald Eagle e o Prairie Falcon parecem ter valores errados, com um `0` a mais na envergadura máxima. É imporvável que você encontra uma Bald Eagle com envergadura de 25 metros, mas, se encontrar, por favor nos diga! Agora, vamos criar um novo dataframe sem esses dois outliers: +Apesar de grandes, tanto a Bald Eagle (águia-de-cabeça-branca) como o Prairie Falcon (Falcão-da-pradaria) parecem ter valores errados, com um `0` a mais na envergadura máxima (MaxWingspan). É improvável que você encontre uma águia-de-cabeça-branca com envergadura de 25 metros, mas, se encontrar, por favor nos diga! Agora, vamos criar um dataframe sem estes dois outliers: ```python plt.title('Max Wingspan in Centimeters') @@ -115,27 +115,27 @@ for i in range(len(birds)): plt.show() ``` -Ao remover esses outliers, seus dados ficaram mais coesos e compreensíveis. +Agora que estes outliers foram removidos, seus dados estão mais coesos e compreensíveis. ![Dispersão das envergaduras](../images/scatterplot-wingspan.png) -Agora que temos um dataset mais limpo ao menos em termos de envergadura, vamos aprender mais sobre esses pássaros +Agora que temos um dataset mais limpo ao menos em termos de envergadura, vamos aprender mais sobre estas aves. -Enquanto gráficos de linha e dispersão conseguem mostrar informações sobre valores e suas distribuições, nós queremos pensar sobre os valores intrínsecos a esse dataset. Você poderia criar visualizações para responder as seguintes perguntas sobre quantidade: +Enquanto gráficos de linha e dispersão conseguem mostrar informações sobre valores e suas distribuições, nós queremos pensar sobre os valores inerentes a este dataset. Você poderia criar visualizações para responder as seguintes perguntas sobre quantidade: -> Quantas categorias de pássaros existem, e quais são seus números? -> Quantos pássaros estão extintos, em risco de extinção, raros ou comuns? +> Quantas categorias de aves existem, e quais são seus valores? +> Quantas aves estão extintas, em risco de extinção, raras ou comuns? > Quantos gêneros e ordens da taxonomia de Lineu (nome científico) existem no dataset? -## Explorar gráfico de barras +## Explorando gráfico de barras -Gráfico de barras são práticos quando se precisa mostrar agrupamentos de dados. Vamos explorar as categorias de pássaros que existem nesse dataset para obrservar qual é o mais comum em quantidade. +Gráfico de barras são úteis quando precisamos mostrar agrupamentos de dados. Vamos explorar as categorias de aves que existem neste dataset para observar qual é o mais comum em quantidade. -No arquivo notebook, crie um gráfico de barras simples +No arquivo notebook, crie um gráfico de barras simples. -✅ Note que, você pode remover os dois pássaros outliers que foram identificados anteriormente, editar o erro de digitação na envergadura ou deixá-los nesses exercícios que não dependem dos valores da envergadura. +✅ Note que você pode remover as duas aves outliers que foram identificados anteriormente, editar o erro de digitação na envergadura ou deixá-los nestes exercícios que não dependem dos valores da envergadura. -Se você quer criar um gráfico de barras, você pode selecionar os dados que quer focar. Gráfico de barras pode ser criado a partir de dados brutos: +Ao criar um gráfico de barras, você pode selecionar os dados que quer focar. Gráficos de barras podem ser criados a partir de dados brutos: ```python birds.plot(x='Category', @@ -144,30 +144,31 @@ birds.plot(x='Category', title='Birds of Minnesota') ``` -![full data as a bar chart](../images/full-data-bar.png) -No entanto, esse gráfico de barras é ilegível porque existem muitos dados não agrupados. Você precisa selecionar somente os dados que quer plotar, então vamos olhar o comprimento de pássaros com base na sua categoria. +![todos os dados em um gráfico de barras](../images/full-data-bar.png) + +No entanto, este gráfico de barras é ilegível, porque existem muitos dados não agrupados. Você precisa selecionar somente os dados que quer plotar, então vamos olhar o comprimento das aves usando sua categoria como referência. -Filtre os dados para incluir somente a categoria do pássaro. +Filtre os dados para incluir somente a categoria da ave. ✅ Note que você usa o Pandas para lidar com os dados, e deixa a criação de gráficos para o Matplotlib. -Já que existem muitas categorias, você pode mostrar esse gráfico verticalmente e ajustar sua altura para acomodar todos os dados: +Já que existem muitas categorias, você pode mostrar este gráfico verticalmente e ajustar sua altura para acomodar todos os dados: ```python category_count = birds.value_counts(birds['Category'].values, sort=True) plt.rcParams['figure.figsize'] = [6, 12] category_count.plot.barh() ``` -![category and length](../images/category-counts.png) +![categoria e comprimento](../images/category-counts.png) -Esse gráfico de barras mostra uma boa visão do número de pássaros em cada categoria. Em um piscar de olhos, você vê que a maior quantidade de pássaros nessa região pertence à categoria de Ducks/Geese/Waterfowl (patos/gansos/cisnes). Minnesota é 'a terra de 10.000 lagos', então isso não é surpreendente! +Este gráfico de barras mostra uma boa visão do número de aves em cada categoria. Em um piscar de olhos, você vê que a maior quantidade de aves nesta região pertence à categoria de Ducks/Geese/Waterfowl (patos/gansos/cisnes). Minnesota é 'a terra de 10.000 lagos', então isto não é surpreendente! -✅ Tente contar outras quantidades nesse dataset. Algo te surpreende? +✅ Tente contabilizar outras quantidades deste dataset. Algo te surpreende? ## Comparando dados -Você pode tentar diferentes comparações de dados agrupados criando novos eixos. Tente comparar o comprimento máximo de um pássaro, baseado na sua categoria: +Você pode tentar diferentes comparações de dados agrupados criando novos eixos. Tente comparar o comprimento máximo de uma ave, com base na sua categoria: ```python maxlength = birds['MaxLength'] @@ -175,11 +176,11 @@ plt.barh(y=birds['Category'], width=maxlength) plt.rcParams['figure.figsize'] = [6, 12] plt.show() ``` -![comparing data](../images/category-length.png) +![comparando dados](../images/category-length.png) -Nada é surpreendente aqui: hummingbirds (beija-flores) tem o menor comprimento comparados com pelicans (pelicanos) ou geese (gansos). É muito bom quando os dados fazem sentido! +Nada é surpreendente aqui: hummingbirds (beija-flores) têm o menor comprimento enquanto pelicans (pelicanos) e geese (gansos) têm os maiores valores. É muito bom quando os dados fazem sentido! -Você pode criar visualizações mais interessantes de gráficos de barras ao sobrepor dados. Vamos sobrepor o comprimento mínimo e máximo de uma dada categoria de pássaros: +Você pode criar visualizações mais interessantes de gráficos de barras ao sobrepor dados. Vamos sobrepor o comprimento mínimo e máximo de uma dada categoria de ave: ```python minLength = birds['MinLength'] @@ -192,20 +193,20 @@ plt.barh(category, minLength) plt.show() ``` -Nesse gráfico, você pode ver o intervalo de comprimento mínimo e máximo por categoria de pássaro. Você pode seguramente dizer, a partir desses dados, que quanto maior o pássaro, maior seu intervalo de comprimento. Fascinante! +Neste gráfico, você pode ver o intervalo de comprimento mínimo e máximo por categoria de ave. Você pode seguramente dizer, a partir destes dados, que quanto maior a ave, maior o seu intervalo de comprimento. Fascinante! -![superimposed values](../images/superimposed.png) +![valores sobrepostos](../images/superimposed.png) ## 🚀 Desafio -Esse dataset de pássaros oferece uma riqueza de informações sobre os diferentes tipos de pássaros de um ecossistema particular. Tente achar na internet outros datasets com dados sobre pássaros. Pratique construir gráficos sobre esses pássaros e tente descobrir fatos que você ainda não havia percebido. +Este dataset de aves oferece uma riqueza de informações sobre os diferentes tipos de aves de um ecossistema particular. Tente achar na internet outros datasets com dados sobre aves. Pratique construir gráficos com eles e tente descobrir fatos que você ainda não havia percebido. ## [Quiz pós-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/17) ## Revisão e autoestudo -Essa primeira aula lhe deu informações sobre como usar o Matplotlib para visualizar quantidades. Procure por outras formas de trabalhar com dataset para visualização. [Plotly](https://github.com/plotly/plotly.py) é uma que não será abordada nas aulas, então dê uma olhada no que ela pode oferecer. +Esta primeira aula lhe deu informações sobre como usar o Matplotlib para visualizar quantidades. Procure por outras formas de trabalhar com dataset para visualização. [Plotly](https://github.com/plotly/plotly.py) é uma biblioteca que não será abordada nas aulas, então dê uma olhada no que ela pode oferecer. ## Tarefa -[Lines, Scatters, and Bars](assignment.md) +[Linhas, dispersão e barras](assignment.pt-br.md) From f8f55b1d923f7ceea146f7f52453d71f243c1fb7 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 21:27:55 -0300 Subject: [PATCH 054/234] Fix typo --- .../translations/assignment.pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md index fb5b62a3..ecff84e5 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md @@ -2,7 +2,7 @@ ## Instruções -Nessa aula, você trabalhou com gráfico de linhas, dispersão e barras para mostrar fatos interessantes sobre esse dataset. Nessa tarefa, explore mais a fundo o dataset para descobrir algo sobre um dado tipo de pássaro. Por exemplo, crie um notebook que mostre visualizações de todos os fatos interessantes que encontrar sobre os Snow Geese (gansos-das-neves). Use os três tipos de gráficos mencionados anteriormente para contar uma história em seu notebook. +Nesta aula, você trabalhou com gráfico de linhas, dispersão e barras para mostrar fatos interessantes sobre esse dataset. Nessa tarefa, explore mais a fundo o dataset para descobrir algo sobre um dado tipo de pássaro. Por exemplo, crie um notebook que mostre visualizações de todos os fatos interessantes que encontrar sobre os Snow Geese (gansos-das-neves). Use os três tipos de gráficos mencionados anteriormente para contar uma história em seu notebook. ## Rubrica From 5a73ca0eea28292a3485d320ad57577dd7f32e04 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 21:30:05 -0300 Subject: [PATCH 055/234] Rephrase sentences --- .../translations/assignment.pt-br.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md b/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md index ecff84e5..7a180dc3 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/assignment.pt-br.md @@ -2,7 +2,7 @@ ## Instruções -Nesta aula, você trabalhou com gráfico de linhas, dispersão e barras para mostrar fatos interessantes sobre esse dataset. Nessa tarefa, explore mais a fundo o dataset para descobrir algo sobre um dado tipo de pássaro. Por exemplo, crie um notebook que mostre visualizações de todos os fatos interessantes que encontrar sobre os Snow Geese (gansos-das-neves). Use os três tipos de gráficos mencionados anteriormente para contar uma história em seu notebook. +Nesta aula, você trabalhou com gráficos de linhas, dispersão e barras para mostrar fatos interessantes sobre este dataset. Nesta tarefa, explore o mesmo dataset mais a fundo para descobrir algo sobre um dado tipo de ave. Por exemplo, crie um notebook que mostre visualizações de todos os fatos interessantes que encontrar sobre os Snow Geese (gansos-das-neves). Use os três tipos de gráficos mencionados anteriormente para contar uma história em seu notebook. ## Rubrica From 3662f820d87b37033bc68b86a513f39797029713 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 22:47:34 -0300 Subject: [PATCH 056/234] Fix typos and change the links Revised and fixed typos, rephrased some sentences. Changed the path to the images. --- .../translations/README.pt-br.md | 67 +++++++++---------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md b/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md index 1ce0f827..d4e0c8f0 100644 --- a/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md +++ b/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md @@ -1,17 +1,17 @@ # Visualizando distribuições -|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/10-Visualizing-Distributions.png)| +|![ Sketchnote por [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/10-Visualizing-Distributions.png)| |:---:| | Visualizando distribuições - _Sketchnote por [@nitya](https://twitter.com/nitya)_ | -Na aula anterior, você aprendeu fatos interessantes sobre um dataset de pássaros de Minnesota. Você encontrou dados incorretos ao visualizar outliers e olhou as diferenças entre categorias de pássaros com base no seu comprimento máximo. +Na aula anterior, você aprendeu fatos interessantes sobre um dataset de aves de Minnesota. Você encontrou dados incorretos ao visualizar outliers e olhou as diferenças entre categorias de aves com base no seu comprimento máximo. ## [Quiz pré-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) -## Explore o dataset de pássaros +## Explorando o dataset de aves -Outra forma de explorar os dados é olhar para sua distribuição, ou como os dados estão organizados ao longo do eixo. Por exemplo, talvez você gostaria de aprender sobre a distribuição geral, nesse dataset, do máximo de envergadura (wingspan) ou máximo de massa corporal (body mass) dos pássaros de Minnesota. +Outra forma de explorar os dados é olhar para sua distribuição, ou como os dados estão organizados ao longo do eixo. Por exemplo, talvez você gostaria de aprender sobre a distribuição geral, nesse dataset, do máximo de envergadura (wingspan) ou máximo de massa corporal (body mass) das aves de Minnesota. -Vamos descobrir alguns fatos sobre as distribuições de dados nesse dataset. No arquivo _notebook.ipynb_ na raiz do diretório dessa aula, importe Pandas, Matplotlib, e seus dados: +Vamos descobrir alguns fatos sobre as distribuições de dados neste dataset. No arquivo _notebook.ipynb_, na raiz do diretório dessa aula, importe Pandas, Matplotlib, e os dados: ```python import pandas as pd @@ -32,42 +32,42 @@ plt.xlabel('Max Length') plt.show() ``` -Isso nos dá uma visão geral da distribuição de comprimento de corpo por Ordem do pássaro, mas não é a forma ótima de mostrar a distribuição real. Essa tarefa geralmente é realizada usando um histograma. +Isso nos dá uma visão geral da distribuição de comprimento do corpo por Ordem da ave, mas não é a melhor forma de mostrar a distribuição real. Essa tarefa geralmente é realizada usando um histograma. ## Trabalhando com histogramas -O Matplotlib oferece formas muito boas de visualizar distribuição dos dados usando histogramas. Esse tipo de gráfico é parecido com um gráfico de barras onde a distribuiçao pode ser vista por meio da subida e descida das barras. Para construir um histograma, você precisa de dados numéricos. Para construir um histograma, você pode plotar um gráfico definindo o tipo (kind) como 'hist' para histograma. Esse gráfico mostra a distribuição de massa corporal máxima (MaxBodyMass) para todo o intervalo numérico dos dados. Ao dividir um certo vetor de dados em intervalos (bins) menores, vemos a distribuição dos valores: +O Matplotlib oferece formas muito boas de visualizar distribuição dos dados usando histogramas. Este tipo de gráfico é parecido com um gráfico de barras onde a distribuição pode ser vista por meio da subida e descida das barras. Para construir um histograma, você precisa de dados numéricos e você pode plotar um gráfico definindo o tipo (kind) como 'hist' para histograma. Este gráfico mostra a distribuição de massa corporal máxima (MaxBodyMass) para todo o intervalo numérico dos dados. Ao dividir um certo vetor de dados em intervalos (bins) menores, vemos a distribuição dos valores: ```python birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) plt.show() ``` -![Distribuição de todo o dataset](images/dist1.png) +![Distribuição de todo o dataset](../images/dist1.png) -Como você pode ver, a maior parte dos mais de 400 pássaros cai no intervalo de menos de 2000 para a massa corporal máxima. Obtenha mais conhecimento dos dados mudando o parâmetro de intervalo (`bins`) para um número maior, como 30: +Como você pode ver, a maior parte das mais de 400 aves cai no intervalo de menos de 2000 para a massa corporal máxima. Obtenha mais conhecimento dos dados mudando o parâmetro de intervalo (`bins`) para um número maior, como 30: ```python birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) plt.show() ``` -![Distribuição de todo o dataset com valores maiores de intervalo](images/dist2.png) +![Distribuição de todo o dataset com valores maiores de intervalo](../images/dist2.png) -Esse gráfico mostra a distribuição de forma mais detalhada. Um gráfico menos concentrado na esquerda pode ser criado garantindo que você só seleciona os dados dentro de um certo intervalo: +Este gráfico mostra a distribuição de forma mais detalhada. Um gráfico menos concentrado na esquerda pode ser criado garantindo que você só selecione os dados dentro de um certo intervalo: -Filtre seus dados para obter somente os pássaros que possuem menos de 60 de massa corporal, e mostre 40 intervalos (`bins`): +Filtre seus dados para obter somente as aves que possuem menos de 60 de massa corporal, e mostre 40 intervalos (`bins`): ```python filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) plt.show() ``` -![Histograma filtrado](images/dist3.png) +![Histograma filtrado](../images/dist3.png) -✅ Tente outros filtros e pontos de dados (data points). Para ver a distribuição completa dos dados, remova o filtro `['MaxBodyMass']` para mostrar as distribuições com identificação. +✅ Tente outros filtros e pontos de dados (data points). Para ver a distribuição completa dos dados, remova o filtro `['MaxBodyMass']` para mostrar as distribuições com labels (identificadores). -O histrograma também oferece algumas cores legais e identificadores (labels) melhorados: +O histograma também oferece algumas cores legais e labels (identificares) melhorados: Crie um histograma 2D para comparar a relação entre duas distribuições. Vamos comparar massa corporal máxima vs. comprimento máximo (`MaxBodyMass` vs. `MaxLength`). O Matplotlib possui uma forma integrada de mostrar convergência usando cores mais vivas: @@ -81,13 +81,13 @@ hist = ax.hist2d(x, y) Aparentemente, existe uma suposta correlação entre esses dois elementos ao longo de um eixo esperado, com um forte ponto de convergência: -![Histrograma 2D](images/2D.png) +![Histograma 2D](../images/2D.png) -Por definição, os histogramas funcionam para dados numéricos. E se você precisar ver distribuições de dados textuais? +Por definição, os histogramas funcionam para dados numéricos. Mas, e se você precisar ver distribuições de dados textuais? ## Explore o dataset e busque por distribuições usando dados textuais -Esse dataset também inclui informações relevantes sobre a categoria de pássaro e seu gênero, espécie e família, assim como seu status de conservação. Vamos explorar mais a fundo essa informação sobre conservação. Qual é a distribuição dos pássaros de acordo com seu status de conservação? +Este dataset também inclui informações relevantes sobre a categoria de ave e seu gênero, espécie e família, assim como seu status de conservação. Vamos explorar mais a fundo essa informação sobre conservação. Qual é a distribuição das aves de acordo com seu status de conservação? > ✅ No dataset, são utilizados vários acrônimos para descrever o status de conservação. Esses acrônimos vêm da [IUCN Red List Categories](https://www.iucnredlist.org/), uma organização que cataloga os status das espécies. > @@ -98,7 +98,7 @@ Esse dataset também inclui informações relevantes sobre a categoria de pássa > - NT: Near Threatened (Quase ameaçada) > - VU: Vulnerable (Vulnerável) -Esses são valores textuais, então será preciso transformá-los para criar um histograma. Usando o dataframe filteredBirds, mostre seu status de conservação juntamente com sua envergadura mínima (MinWingspan). O que você vê? +Estes são valores textuais, então será preciso transformá-los para criar um histograma. Usando o dataframe filteredBirds, mostre seu status de conservação com sua envergadura mínima (MinWingspan). O que você vê? ```python x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] @@ -121,7 +121,7 @@ plt.gca().set(title='Conservation Status', ylabel='Max Body Mass') plt.legend(); ``` -![Compilação envergadura e conservação](images/histogram-conservation.png) +![Compilação envergadura e conservação](../images/histogram-conservation.png) Aparentemente não existe uma correlação forte entre a envergadura mínima e o status de conservação. Teste outros elementos do dataset usando esse método. Você também pode tentar outros filtros. Você encontrou alguma correlação? @@ -129,9 +129,9 @@ Aparentemente não existe uma correlação forte entre a envergadura mínima e o Você pode ter percebido que até agora os histogramas são quebrados em degraus e não fluem de forma suave em uma curva. Para mostrar um gráfico de densidade mais 'fluido', você pode tentar usar a estimativa de densidade kernel (kde). -Para trabalhar com gráficos de densidade, acostume-se com uma nova biblioteca de gráficos, [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html). +Para trabalhar com gráficos de densidade, acostume-se com uma nova biblioteca de gráficos, o [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html). -Depois de carregar o Seaborn, tente um gráfico de densidade básico: +Após carregar o Seaborn, tente um gráfico de densidade básico: ```python import seaborn as sns @@ -139,10 +139,9 @@ import matplotlib.pyplot as plt sns.kdeplot(filteredBirds['MinWingspan']) plt.show() ``` -![Gráfico de densidade](images/density1.png) +![Gráfico de densidade](../images/density1.png) -Você consegue ver como o gráfico reflete o anterior (de envergadura mínima); só é mais fluido/suave. De acordo com a documentação do Seaborn, "" -"Em comparação com o histograma, KDE pode produzir um gráfico que é menos confuso e mais legível, especialmente quando plotamos múltiplas distribuições. Mas pode potencialmente introduzir distorções se a distribuição usada é limitada ou não suave. Como um histograma, a qualidade da representação também depende na escolha de bons parâmetros suavizadores (smoothing parameters)." [créditos](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) Em outras palavras, dados discrepantes (outliers) vão fazer seus gráficos se comportarem mal, como sempre. +Você consegue ver como o gráfico reflete o anterior (de envergadura mínima); só é mais fluido/suave. De acordo com a documentação do Seaborn, "Em comparação com o histograma, o KDE pode produzir um gráfico que é menos confuso e mais legível, especialmente quando plotamos múltiplas distribuições. Mas pode potencialmente introduzir distorções se a distribuição usada é limitada ou não suave. Como um histograma, a qualidade da representação também depende na escolha de bons parâmetros suavizadores (smoothing parameters)." [créditos](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) Em outras palavras, dados discrepantes (outliers) vão fazer seus gráficos se comportarem mal, como sempre. Se você quer revisitar a linha irregular/dentada MaxBodyMass (massa corporal máxima) no segundo gráfico construído, você pode suavizá-la muito bem recriando o seguinte método: @@ -150,7 +149,7 @@ Se você quer revisitar a linha irregular/dentada MaxBodyMass (massa corporal m sns.kdeplot(filteredBirds['MaxBodyMass']) plt.show() ``` -![Linha suave massa corporal](images/density2.png) +![Linha suave massa corporal](../images/density2.png) Se você quer uma linha suave, mas não tão suave, mude o parâmetro `bw_adjust`: @@ -158,11 +157,11 @@ Se você quer uma linha suave, mas não tão suave, mude o parâmetro `bw_adjust sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) plt.show() ``` -![Linha menos suave massa corporal](images/density3.png) +![Linha menos suave massa corporal](../images/density3.png) ✅ Leia sobre os parâmetros disponíveis para esse tipo de gráfico e experimente! -Esse tipo de gráfico oferece visualizações bonitas e esclarecedoras. Com algumas linhas de código, por exemplo, você pode mostrar a densidade de massa corporal máxima por pássaro por Ordem: +Esse tipo de gráfico oferece visualizações bonitas e esclarecedoras. Com algumas linhas de código, por exemplo, você pode mostrar a densidade de massa corporal máxima por ave por Ordem: ```python sns.kdeplot( @@ -172,17 +171,17 @@ sns.kdeplot( ) ``` -![Massa corporal por Ordem](images/density4.png) +![Massa corporal por Ordem](../images/density4.png) -Você também pode mapear a densidade de várias variáveis em um só gráfico. Teste usar o comprimento máximo (MaxLength) e mínimo (MinLength) de um pássaro comparado com seu status de conservação: +Você também pode mapear a densidade de várias variáveis em um só gráfico. Teste usar o comprimento máximo (MaxLength) e mínimo (MinLength) de uma ave comparado com seu status de conservação: ```python sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") ``` -![Múltiplas densidades sobrepostas](images/multi.png) +![Múltiplas densidades sobrepostas](../images/multi.png) -Talvez valha a pena pesquisar mais a fundo se o cluster de pássaros vulneráveis ('Vulnerable') de acordo com seus comprimentos tem significado ou não. +Talvez valha a pena pesquisar mais a fundo se o cluster de aves vulneráveis ('Vulnerable') de acordo com seus comprimentos têm significado ou não. ## 🚀 Desafio @@ -192,8 +191,8 @@ Histogramas são um tipo mais sofisticado de gráfico em relação a simples gr ## Revisão e autoestudo -Nessa aula, você usou o Matplotlib e começou a trabalhar com o Seaborn para mostrar gráficos mais avançados. Pesquise sobre o `kdeplot` no Seaborn, uma "curva de densidade de probabilidade contínua em uma ou mais dimensões". Leia a [documentação](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) para entender como funciona. +Nesta aula, você usou o Matplotlib e começou a trabalhar com o Seaborn para mostrar gráficos mais avançados. Pesquise sobre o `kdeplot` no Seaborn, uma "curva de densidade de probabilidade contínua em uma ou mais dimensões". Leia a [documentação](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) para entender como funciona. ## Tarefa -[Use suas habilidades](assignment.md) +[Aplique seus conhecimentos](assignment.pt-br.md) From 807896ff97288acce91c23450ff60af88182d0b9 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 22:49:55 -0300 Subject: [PATCH 057/234] Fix typos --- .../translations/assignment.pt-br.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md b/3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md index ec63b0d7..07bbf7bb 100644 --- a/3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md +++ b/3-Data-Visualization/10-visualization-distributions/translations/assignment.pt-br.md @@ -1,8 +1,8 @@ -# Aplique suas habilidades +# Aplique seus conhecimentos ## Instruções -Até agora, você trabalhou com o dataset de pássaros de Minnesota para descobrir informação sobre quantidades de pássaros e densidade populacional. Pratique essas técnicas usando um outro dataset, talvez do [Kaggle](https://www.kaggle.com/). Faça um notebook que conta uma história sobre esse dataset, e lembre-se de usar histogramas para isso. +Até agora, você trabalhou com o dataset de aves de Minnesota para descobrir informação sobre quantidades de aves e densidade populacional. Pratique essas técnicas usando outro dataset, talvez do [Kaggle](https://www.kaggle.com/). Faça um notebook que conta uma história sobre esse dataset, e lembre-se de usar histogramas para isso. ## Rubrica From 0eaa36f0faae13ae9ec4e8b81982ba67db9a3214 Mon Sep 17 00:00:00 2001 From: Fernanda Kawasaki <50497814+fernandakawasaki@users.noreply.github.com> Date: Sat, 16 Oct 2021 22:51:25 -0300 Subject: [PATCH 058/234] Fix typos --- .../translations/README.pt-br.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md b/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md index d4e0c8f0..6886cefe 100644 --- a/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md +++ b/3-Data-Visualization/10-visualization-distributions/translations/README.pt-br.md @@ -9,9 +9,9 @@ Na aula anterior, você aprendeu fatos interessantes sobre um dataset de aves de ## [Quiz pré-aula](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) ## Explorando o dataset de aves -Outra forma de explorar os dados é olhar para sua distribuição, ou como os dados estão organizados ao longo do eixo. Por exemplo, talvez você gostaria de aprender sobre a distribuição geral, nesse dataset, do máximo de envergadura (wingspan) ou máximo de massa corporal (body mass) das aves de Minnesota. +Outra forma de explorar os dados é olhar para sua distribuição, ou como os dados estão organizados ao longo do eixo. Por exemplo, talvez você gostaria de aprender sobre a distribuição geral, neste dataset, do máximo de envergadura (wingspan) ou máximo de massa corporal (body mass) das aves de Minnesota. -Vamos descobrir alguns fatos sobre as distribuições de dados neste dataset. No arquivo _notebook.ipynb_, na raiz do diretório dessa aula, importe Pandas, Matplotlib, e os dados: +Vamos descobrir alguns fatos sobre as distribuições de dados neste dataset. No arquivo _notebook.ipynb_, na raiz do diretório desta aula, importe Pandas, Matplotlib, e os dados: ```python import pandas as pd @@ -32,7 +32,7 @@ plt.xlabel('Max Length') plt.show() ``` -Isso nos dá uma visão geral da distribuição de comprimento do corpo por Ordem da ave, mas não é a melhor forma de mostrar a distribuição real. Essa tarefa geralmente é realizada usando um histograma. +Isso nos dá uma visão geral da distribuição de comprimento do corpo por Ordem da ave, mas não é a melhor forma de mostrar a distribuição real. Esta tarefa geralmente é realizada usando um histograma. ## Trabalhando com histogramas @@ -79,7 +79,7 @@ fig, ax = plt.subplots(tight_layout=True) hist = ax.hist2d(x, y) ``` -Aparentemente, existe uma suposta correlação entre esses dois elementos ao longo de um eixo esperado, com um forte ponto de convergência: +Aparentemente, existe uma suposta correlação entre estes dois elementos ao longo de um eixo esperado, com um forte ponto de convergência: ![Histograma 2D](../images/2D.png) @@ -87,9 +87,9 @@ Por definição, os histogramas funcionam para dados numéricos. Mas, e se você ## Explore o dataset e busque por distribuições usando dados textuais -Este dataset também inclui informações relevantes sobre a categoria de ave e seu gênero, espécie e família, assim como seu status de conservação. Vamos explorar mais a fundo essa informação sobre conservação. Qual é a distribuição das aves de acordo com seu status de conservação? +Este dataset também inclui informações relevantes sobre a categoria de ave e seu gênero, espécie e família, assim como seu status de conservação. Vamos explorar mais a fundo esta informação sobre conservação. Qual é a distribuição das aves de acordo com seu status de conservação? -> ✅ No dataset, são utilizados vários acrônimos para descrever o status de conservação. Esses acrônimos vêm da [IUCN Red List Categories](https://www.iucnredlist.org/), uma organização que cataloga os status das espécies. +> ✅ No dataset, são utilizados vários acrônimos para descrever o status de conservação. Estes acrônimos vêm da [IUCN Red List Categories](https://www.iucnredlist.org/), uma organização que cataloga os status das espécies. > > - CR: Critically Endangered (Criticamente em perigo) > - EN: Endangered (Em perigo) @@ -123,7 +123,7 @@ plt.legend(); ![Compilação envergadura e conservação](../images/histogram-conservation.png) -Aparentemente não existe uma correlação forte entre a envergadura mínima e o status de conservação. Teste outros elementos do dataset usando esse método. Você também pode tentar outros filtros. Você encontrou alguma correlação? +Aparentemente não existe uma correlação forte entre a envergadura mínima e o status de conservação. Teste outros elementos do dataset usando este método. Você também pode tentar outros filtros. Você encontrou alguma correlação? ## Gráfico de densidade (Estimativa de densidade kernel) @@ -159,9 +159,9 @@ plt.show() ``` ![Linha menos suave massa corporal](../images/density3.png) -✅ Leia sobre os parâmetros disponíveis para esse tipo de gráfico e experimente! +✅ Leia sobre os parâmetros disponíveis para este tipo de gráfico e experimente! -Esse tipo de gráfico oferece visualizações bonitas e esclarecedoras. Com algumas linhas de código, por exemplo, você pode mostrar a densidade de massa corporal máxima por ave por Ordem: +Este tipo de gráfico oferece visualizações bonitas e esclarecedoras. Com algumas linhas de código, por exemplo, você pode mostrar a densidade de massa corporal máxima por ave por Ordem: ```python sns.kdeplot( From 50e15364df70555b082abb91a7ecf5ad9f463042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9D=B4=EB=93=A0?= Date: Sun, 17 Oct 2021 22:18:38 +0900 Subject: [PATCH 059/234] start translate Englisth to Korean --- 6-Data-Science-In-Wild/translations/README.ko.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 6-Data-Science-In-Wild/translations/README.ko.md diff --git a/6-Data-Science-In-Wild/translations/README.ko.md b/6-Data-Science-In-Wild/translations/README.ko.md new file mode 100644 index 00000000..e69de29b From 469d826295450dbdc435cbfdfc725967b5906ec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9D=B4=EB=93=A0?= Date: Sun, 17 Oct 2021 22:20:11 +0900 Subject: [PATCH 060/234] start translate Englisth to Korean --- .../translations/README.ko.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md new file mode 100644 index 00000000..b1f63a44 --- /dev/null +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md @@ -0,0 +1,146 @@ +# Data Science in the Real World + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +|:----------------------------------------------------------------------------------------------------------------:| +| Data Science In The Real World - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +We're almost at the end of this learning journey! 우리는 + +우리는 데이터 사이언스와 윤리의 정의로 시작해서, 데이터 분석과 시각화를 위한 여러가지 툴 & 테크닉을 살펴보았고, 데이터 사이언스의 라이프 사이클을 검토하였고, 클라우드 컴퓨팅 서비스를 통한 데이터 사이언스 워크플로우 확장 및 자동화에 대해 알아보았습니다. 그래서 이제 당신은 아마도 _"내가 배운 것들을 현실에서는 어떻게 엮어서 사용하지?"_ 라는 의문점이 생길 것입니다. + +이 레슨에서, 우리는 산업 전반에 걸친 데이터 과학의 실제 적용 사례를 살펴보고 연구, 디지털 인문학, 지속 가능성, 맥락에 대한 구체적인 예를 살펴보겠습니다. 학생 프로젝트 기회를 살펴보고 유용한 리소스로 마무리하여 학습 여정을 계속 이어나갈 수 있도록 도와드리겠습니다! + +## Pre-Lecture Quiz + +[Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/38) + +## Data Science + Industry + +AI의 민주화 덕분에, 개발자들은 이제 사용자 경험과 개발 워크플로우에 대한 AI 중심의 의사 결정 및 데이터 기반 통찰력을 설계하고 통합하는 것이 더 쉬워지고 있습니다. 이것은 현실의 산업에서 데이터 사이언스가 어떻게 "적용" 되는지에 대한 몇 가지의 예입니다: + +* [구글 독감 트렌드 (Google Flu Trends)](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) 데이터 사이언스를 사용하여 검색어와 독감 트렌드를 연관시켰습니다. used data science to correlate search terms with flu trends. 이 접근 방식에는 결함이 있지만 데이터 기반 의료 예측의 가능성(및 과제)에 대한 인식을 높였습니다. + + [UPS 라우팅 예측 (UPS Routing Predictions)](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - UPS가 데이터 사이언스와 머신러닝을 이용하여 배송을 위한 최적의 루트를 날씨 조건, 교통 패턴, 배달 마감일 등을 고려하여 어떻게 예측하는지에 대해 설명합니다. + +* [NYC 택시 루트 시각화 (NYC Taxicab Route Visualization)](http://chriswhong.github.io/nyctaxi/) - [정보 자유법 (Freedom Of Information Laws)](https://chriswhong.com/open-data/foil_nyc_taxi/) 을 사용하여 수집된 데이터는 뉴욕 택시 생활의 하루를 시각화하는 데 도움이 되었고, 뉴욕 택시들이 바쁜 도시를 어떻게 돌아다니는지, 그들이 버는 돈, 그리고 매 24시간 동안의 여행 기간을 이해하는 데 도움이 되었습니다. + +* [우버 데이터 사이언스 워크벤치 (Uber Data Science Workbench)](https://eng.uber.com/dsw/) - 요금, 안전, 사기 탐지 및 탐색 결정에 도움이 되는 데이터 분석 도구를 구축하기 위해 *매일* 수백만 개의 uber 여행에서 수집된 데이터(픽업 & 하차 위치, 이동 시간, 선호 경로 등)를 사용합니다. + +* [스포츠 분석 (Sports Analytics)](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - 인재 스카우트, 스포츠 도박, 재고/장소 관리를 적용한 *예측 분석* (팀 및 선수 분석 - Moneyball 을 생각해보세요 - 그리고 팬 관리) 및 *데이터 시각화* (팀 & 팬 대시보드, 게임 등) 에 중점을 둡니다. + +* [금융 산업에서의 데이터 사이언스 (Data Science in Banking)](https://data-flair.training/blogs/data-science-in-banking/) - 리스크 모델링 및 부정 행위 방지, 고객 세분화, 실시간 예측 및 추천 시스템에 이르기까지 다양한 적용을 통해 금융 산업에서 데이터 과학의 가치를 강조합니다. 예측 분석은 또한 [신용 점수 (credit scores)](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit) 와 같은 중요한 척도를 도출합니다. + +* [헬스케어에서의 데이터 사이언스 (Data Science in Healthcare)](https://data-flair.training/blogs/data-science-in-healthcare/) - 의료 영상(예: MRI, X-Ray, CT-Scan), 유전체학(DNA 시퀀싱), 약물 개발(위험 평가, 성공 예측), 예측 분석(환자 치료 & 공급 물류), 질병 추적 & 예방 등의 적용을 강조합니다. + + + +![Data Science Applications in The Real World](../images/data-science-applications.png) 이미지 출처: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) + +위 그림은 데이터 사이언스 기술을 적용하기 위한 다른 도메인과 예를 보여줍니다. 더 많은 적용 사례를 보고싶나요? 아래의 [Review & Self Study](?id=review-amp-self-study)를 살펴보세요. + +## Data Science + Research + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +|:---------------------------------------------------------------------------------------------------------------:| +| Data Science & Research - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +현실 속에서 종종 규모에 맞는 산업 활용 사례에 초점을 맞추지만, _연구_ 에 적용된 것과 프로젝트는 다음 두 가지 관점에서 유용할 수 있습니다: + +* _혁신 기회_ - 차세대 애플리케이션을 위한 선진 개념의 신속한 프로토타이핑 및 사용자 경험의 테스트를 살펴봅니다. +* _배포 과제_ - 현실 세계에서 데이터 사이언스 기술의 잠재적인 피해 또는 의도하지 않은 결과를 조사합니다. + +학생들에게 이러한 연구 프로젝트는 주제에 대한 이해를 향상시킬 수 있는 학습 기회와 협업 기회를 제공할 수 있으며, 관심 분야에서 일하는 관련 직원 또는 팀과의 인식과 참여를 넓힐 수 있습니다. 그렇다면 연구 프로젝트는 어떻게 생겼고 어떻게 영향을 미칠 수 있을까요? + +이 예제를 한 번 봅시다 - Joy Buolamwini (MIT Media Labs)의 [MIT 젠더 쉐이즈 연구 (MIT Gender Shades Study)](http://gendershades.org/overview.html)의 [연구 (signature research paper)](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) co-authored with Timnit Gebru (then at Microsoft Research) that focused on + +* **무엇:** The objective of the research project was to _evaluate bias present in automated facial analysis algorithms and datasets_ based on gender and skin type. +* **Why:** Facial analysis is used in areas like law enforcement, airport security, hiring systems and more - contexts where inaccurate classifications (e.g., due to bias) can cause potential economic and social harms to affected individuals or groups. Understanding (and eliminating or mitigating) biases is key to fairness in usage. +* **How:** Researchers recongized that existing benchmarks used predominantly lighter-skinned subjects, and curated a new data set (1000+ images) that was _more balanced_ by gender and skin type. The data set was used to evaluate the accuracy of three gender classification products (from Microsoft, IBM & Face++). + +Results showed that though overall classification accuracy was good, there was a noticeable difference in error rates between various subgroups - with **misgendering** being higher for females or persons with darker skin types, indicative of bias. + +**Key Outcomes:** Raised awareness that data science needs more _representative datasets_ (balanced subgroups) and more _inclusive teams_ (diverse backgrounds) to recognize and eliminate or mitigate such biases earlier in AI solutions. Research efforts like this are also instrumental in many organizations defining principles and practices for _responsible AI_ to improve fairness across their AI products and processes. + +**Want to learn about relevant research efforts in Microsoft?** + +* Check out [Microsoft Research Projects](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) on Artificial Intelligence. +* Explore student projects from [Microsoft Research Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/). +* Check out the [Fairlearn](https://fairlearn.org/) project and [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) initiatives. + +## Data Science + Humanities + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | +|:-----------------------------------------------------------------------------------------------------------------:| +| Data Science & Digital Humanities - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +Digital Humanities [has been defined](https://digitalhumanities.stanford.edu/about-dh-stanford) as "a collection of practices and approaches combining computational methods with humanistic inquiry". [Stanford projects](https://digitalhumanities.stanford.edu/projects) like _"rebooting history"_ and _"poetic thinking"_ illustrate the linkage between [Digital Humanities and Data Science](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) - emphasizing techniques like network analysis, information visualization, spatial and text analysis that can help us revisit historical and literary data sets to derive new insights and perspective. + +*Want to explore and extend a project in this space?* + +Check out ["Emily Dickinson and the Meter of Mood"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) - a great example from [Jen Looper](https://twitter.com/jenlooper) that asks how we can use data science to revisit familiar poetry and re-evaluate its meaning and the contributions of its author in new contexts. For instance, _can we predict the season in which a poem was authored by analyzing its tone or sentiment_ - and what does this tell us about the author's state of mind over the relevant period? + +To answer that question, we follow the steps of our data science lifecycle: + +* [`Data Acquisition`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - to collect a relevant dataset for analysis. Options including using an API ( e.g., [Poetry DB API](https://poetrydb.org/index.html)) or scraping web pages (e.g., [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) using tools like [Scrapy](https://scrapy.org/). +* [`Data Cleaning`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - explains how text can be formatted, sanitized and simplified using basic tools like Visual Studio Code and Microsoft Excel. +* [`Data Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - explains how we can now import the dataset into "Notebooks" for analysis using Python packages (like pandas, numpy and matplotlib) to organize and visualize the data. +* [`Sentiment Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - explains how we can integrate cloud services like Text Analytics, using low-code tools like [Power Automate](https://flow.microsoft.com/en-us/) for automated data processing workflows. + +Using this workflow, we can explore the seasonal impacts on the sentiment of the poems, and help us fashion our own perspectives on the author. Try it out yourself - then extend the notebook to ask other questions or visualize the data in new ways! + +> You can use some of the tools in the [Digital Humanities toolkit](https://github.com/Digital-Humanities-Toolkit) to pursue these avenues of inquiry + +## Data Science + Sustainability + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | +|:---------------------------------------------------------------------------------------------------------------------:| +| Data Science & Sustainability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +The [2030 Agenda For Sustainable Development](https://sdgs.un.org/2030agenda) - adopted by all United Nations members in 2015 - identifies 17 goals including ones that focus on **Protecting the Planet** from degradation and the impact of climate change. The [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) initiative supports these goals by exploring ways in which technology solutions can support and build more sustainable futures with a [focus on 4 goals](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - being carbon negative, water positive, zero waste, and bio-diverse by 2030. + +Tackling these challenges in a scalable and timely manner requires cloud-scale thinking - and large scale data. The [Planetary Computer](https://planetarycomputer.microsoft.com/) initiative provides 4 components to help data scientists and developers in this effort: + +* [Data Catalog](https://planetarycomputer.microsoft.com/catalog) - with petabytes of Earth Systems data (free & Azure-hosted). +* [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - to help users search for relevant data across space and time. +* [Hub](https://planetarycomputer.microsoft.com/docs/overview/environment/) - managed environment for scientists to process massive geospatial datasets. +* [Applications](https://planetarycomputer.microsoft.com/applications) - showcase use cases & tools for sustainability insights. + +**The Planetary Computer Project is currently in preview (as of Sep 2021)** - here's how you can get started contributing to sustainability solutions using data science. + +* [Request access](https://planetarycomputer.microsoft.com/account/request) to start exploration and connect with peers. +* [Explore documentation](https://planetarycomputer.microsoft.com/docs/overview/about) to understand supported datasets and APIs. +* Explore applications like [Ecosystem Monitoring](https://analytics-lab.org/ecosystemmonitoring/) for inspiration on application ideas. + +Think about how you can use data visualization to expose or amplify relevant insights into areas like climate change and deforestation. Or think about how insights can be used to create new user experiences that motivate behavioral changes for more sustainable living. + +## Data Science + Students + +We've talked about real-world applications in industry and research, and explored data science application examples in digital humanities and sustainability. So how can you build your skills and share your expertise as data science beginners? + +Here are some examples of data science student projects to inspire you. + +* [MSR Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) with GitHub [projects](https://github.com/msr-ds3) exploring topics like: + - [Racial Bias in Police Use of Force](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [Reliability of NYC Subway System](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) +* [Digitizing Material Culture: Exploring socio-economic distributions in Sirkap](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc)- from [Ornella Altunyan](https://twitter.com/ornelladotcom) and team at Claremont, using using [ArcGIS StoryMaps](https://storymaps.arcgis.com/). + +## 🚀 Challenge + +Search for articles that recommend data science projects that are beginner friendly - like [these 50 topic areas](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/) or [these 21 project ideas](https://www.intellspot.com/data-science-project-ideas) or [these 16 projects with source code](https://data-flair.training/blogs/data-science-project-ideas/) that you can deconstruct and remix. And don't forget to blog about your learning journeys and share your insights with all of us. + +## Post-Lecture Quiz + +[Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/39) + +## Review & Self Study + +Want to explore more use cases? Here are a few relevant articles: + +* [17 Data Science Applications and Examples](https://builtin.com/data-science/data-science-applications-examples) - Jul 2021 +* [11 Breathtaking Data Science Applications in Real World](https://myblindbird.com/data-science-applications-real-world/) - May 2021 +* [Data Science In The Real World](https://towardsdatascience.com/data-science-in-the-real-world/home) - Article Collection +* Data Science In: [Education](https://data-flair.training/blogs/data-science-in-education/), [Agriculture](https://data-flair.training/blogs/data-science-in-agriculture/), [Finance](https://data-flair.training/blogs/data-science-in-finance/), [Movies](https://data-flair.training/blogs/data-science-at-movies/) & more. + + ## Assignment + +[Explore A Planetary Computer Dataset](assignment.md) From 6a03de61240c658610ea3e5e0e151a8b28807a5e Mon Sep 17 00:00:00 2001 From: Eden Park Date: Sun, 17 Oct 2021 22:24:59 +0900 Subject: [PATCH 061/234] Update README.ko.md change image path --- .../20-Real-World-Examples/translations/README.ko.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md index b1f63a44..608cb60b 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md @@ -1,6 +1,6 @@ # Data Science in the Real World -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-RealWorld.png) | |:----------------------------------------------------------------------------------------------------------------:| | Data Science In The Real World - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | @@ -40,7 +40,7 @@ AI의 민주화 덕분에, 개발자들은 이제 사용자 경험과 개발 워 ## Data Science + Research -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Research.png) | |:---------------------------------------------------------------------------------------------------------------:| | Data Science & Research - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | From 3d446ddfdb3ac131145a0366f60e65291738cd8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9D=B4=EB=93=A0?= Date: Sun, 17 Oct 2021 23:20:43 +0900 Subject: [PATCH 062/234] modify README and create assignment file --- .../translations/README.ko.md | 28 +++++++++++-------- .../translations/assignment.ko.md | 0 .../translations/README.ko.md | 11 ++++++++ 3 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.ko.md diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md index b1f63a44..bc2366e6 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md @@ -51,15 +51,19 @@ AI의 민주화 덕분에, 개발자들은 이제 사용자 경험과 개발 워 학생들에게 이러한 연구 프로젝트는 주제에 대한 이해를 향상시킬 수 있는 학습 기회와 협업 기회를 제공할 수 있으며, 관심 분야에서 일하는 관련 직원 또는 팀과의 인식과 참여를 넓힐 수 있습니다. 그렇다면 연구 프로젝트는 어떻게 생겼고 어떻게 영향을 미칠 수 있을까요? -이 예제를 한 번 봅시다 - Joy Buolamwini (MIT Media Labs)의 [MIT 젠더 쉐이즈 연구 (MIT Gender Shades Study)](http://gendershades.org/overview.html)의 [연구 (signature research paper)](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) co-authored with Timnit Gebru (then at Microsoft Research) that focused on +이 예제를 한 번 봅시다 - Joy Buolamwini (MIT Media Labs)의 [MIT 젠더 쉐이즈 연구 (MIT Gender Shades Study)](http://gendershades.org/overview.html)와 Timnit Gebru (당시에 Microsoft Research)가 공동 저술한 [연구 (signature research paper)](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) -* **무엇:** The objective of the research project was to _evaluate bias present in automated facial analysis algorithms and datasets_ based on gender and skin type. -* **Why:** Facial analysis is used in areas like law enforcement, airport security, hiring systems and more - contexts where inaccurate classifications (e.g., due to bias) can cause potential economic and social harms to affected individuals or groups. Understanding (and eliminating or mitigating) biases is key to fairness in usage. -* **How:** Researchers recongized that existing benchmarks used predominantly lighter-skinned subjects, and curated a new data set (1000+ images) that was _more balanced_ by gender and skin type. The data set was used to evaluate the accuracy of three gender classification products (from Microsoft, IBM & Face++). +* **무엇:** 이 연구 프로젝트의 목적은 _성별과 피부 타입에 기초하여 자동화된 얼굴 분석 알고리즘과 데이터 세트에 존재하는 편향을 평가하는 것_ 입니다. +* **왜:** 얼굴 분석은 법 집행, 공항 보안, 고용 시스템 등에서 사용됩니다 - 부정확한 분류(예: 편향으로 인한)로 인해 영향을 받는 개인이나 집단에 잠재적인 경제적, 사회적 피해를 일으킬 수 있는 상황이 생길 수 있습니다. 편향을 이해하는 (그리고 제거 또는 완화하는) 것이 사용 공정성의 핵심입니다. +* **어떻게:** 연구원들은 기존 벤치마크에서 주로 밝은 피부의 피사체를 사용했으며, 성별과 피부 유형에 따라 보다 균형 잡힌 새로운 데이터 셋 (1000개 이상의 이미지)을 큐레이션했다고 밝혔습니다. 데이터 셋은 세 가지 성별 분류 제품 (Microsoft, IBM & Face++)의 정확성을 평가하는 데 사용되었습니다. -Results showed that though overall classification accuracy was good, there was a noticeable difference in error rates between various subgroups - with **misgendering** being higher for females or persons with darker skin types, indicative of bias. +그 결과 전체적인 분류 정확도는 괜찮았지만, 다양한 하위 그룹 간 오류율에서 현저한 차이가 있었습니다. **misgendering**은 여성 또는 피부색이 어두운 사람의 경우에 더 높은 편향을 나타냈습니다. -**Key Outcomes:** Raised awareness that data science needs more _representative datasets_ (balanced subgroups) and more _inclusive teams_ (diverse backgrounds) to recognize and eliminate or mitigate such biases earlier in AI solutions. Research efforts like this are also instrumental in many organizations defining principles and practices for _responsible AI_ to improve fairness across their AI products and processes. +**주요 결과:** 데이터 사이언스가 초기 AI 솔루션에서 이러한 편견을 인식하고 완화하기 위해 더 많은 _대표적인 데이터 셋_ (균형 있는 하위 그룹)과 더 많은 _포괄적인 팀_ (다양한 배경)을 필요로 한다는 인식을 높였습니다. 이러한 연구 노력은 AI 제품 및 프로세스 전반의 공정성을 개선하기 위해 _책임 있는 AI_에 대한 원칙과 관행을 정의하는 많은 조직에서도 중요한 역할을 합니다. + +Raised awareness that data science needs more _representative datasets_ (balanced subgroups) and more _inclusive teams_ (diverse backgrounds) to recognize and eliminate or mitigate such biases earlier in AI solutions. + +Research efforts like this are also instrumental in many organizations defining principles and practices for _responsible AI_ to improve fairness across their AI products and processes. **Want to learn about relevant research efforts in Microsoft?** @@ -69,9 +73,9 @@ Results showed that though overall classification accuracy was good, there was a ## Data Science + Humanities -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | -|:-----------------------------------------------------------------------------------------------------------------:| -| Data Science & Digital Humanities - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Humanities.png) | +|:--------------------------------------------------------------------------------------------------------------------:| +| Data Science & Digital Humanities - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | Digital Humanities [has been defined](https://digitalhumanities.stanford.edu/about-dh-stanford) as "a collection of practices and approaches combining computational methods with humanistic inquiry". [Stanford projects](https://digitalhumanities.stanford.edu/projects) like _"rebooting history"_ and _"poetic thinking"_ illustrate the linkage between [Digital Humanities and Data Science](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) - emphasizing techniques like network analysis, information visualization, spatial and text analysis that can help us revisit historical and literary data sets to derive new insights and perspective. @@ -92,9 +96,9 @@ Using this workflow, we can explore the seasonal impacts on the sentiment of the ## Data Science + Sustainability -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | -|:---------------------------------------------------------------------------------------------------------------------:| -| Data Science & Sustainability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Sustainability.png) | +|:------------------------------------------------------------------------------------------------------------------------:| +| Data Science & Sustainability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | The [2030 Agenda For Sustainable Development](https://sdgs.un.org/2030agenda) - adopted by all United Nations members in 2015 - identifies 17 goals including ones that focus on **Protecting the Planet** from degradation and the impact of climate change. The [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) initiative supports these goals by exploring ways in which technology solutions can support and build more sustainable futures with a [focus on 4 goals](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - being carbon negative, water positive, zero waste, and bio-diverse by 2030. diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.ko.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.ko.md new file mode 100644 index 00000000..e69de29b diff --git a/6-Data-Science-In-Wild/translations/README.ko.md b/6-Data-Science-In-Wild/translations/README.ko.md index e69de29b..f66adbc4 100644 --- a/6-Data-Science-In-Wild/translations/README.ko.md +++ b/6-Data-Science-In-Wild/translations/README.ko.md @@ -0,0 +1,11 @@ +# 실제 환경에서의 데이터 사이언스 + +산업 전반에 걸친 데이터 사이언스의 실제 적용. + +### 토픽 + +1. [현실에서의 데이터 사이언스](20-Real-World-Examples/README.md) + +### 출처 + + [Nitya Narasimhan](https://twitter.com/nitya)에 의해 쓰여졌음 ❤️ From d61fc79cf4b4846de7cb9f1895c69cf95a47bff5 Mon Sep 17 00:00:00 2001 From: Eden Park Date: Mon, 18 Oct 2021 12:15:45 +0900 Subject: [PATCH 063/234] Update README.ko.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit change 데이터 사이언스 to 데이터 과학 --- 6-Data-Science-In-Wild/translations/README.ko.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/6-Data-Science-In-Wild/translations/README.ko.md b/6-Data-Science-In-Wild/translations/README.ko.md index f66adbc4..27fb9666 100644 --- a/6-Data-Science-In-Wild/translations/README.ko.md +++ b/6-Data-Science-In-Wild/translations/README.ko.md @@ -1,10 +1,10 @@ -# 실제 환경에서의 데이터 사이언스 +# 실제 환경에서의 데이터 과학 -산업 전반에 걸친 데이터 사이언스의 실제 적용. +산업 전반에 걸친 데이터 과학의 실제 적용. ### 토픽 -1. [현실에서의 데이터 사이언스](20-Real-World-Examples/README.md) +1. [현실에서의 데이터 과학](20-Real-World-Examples/README.md) ### 출처 From a15d895ad565320d399f2a4afe5c2206788ce263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9D=B4=EB=93=A0?= Date: Mon, 18 Oct 2021 12:48:27 +0900 Subject: [PATCH 064/234] Translate README.md --- .../translations/README.ko.md | 140 +++++++++--------- 1 file changed, 69 insertions(+), 71 deletions(-) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md index db6f272b..db8a78be 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ko.md @@ -1,150 +1,148 @@ -# Data Science in the Real World +# 실제 환경에서의 데이터 과학 -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-RealWorld.png) | +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | |:----------------------------------------------------------------------------------------------------------------:| | Data Science In The Real World - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | -We're almost at the end of this learning journey! 우리는 +우리는 이 학습 여정의 끝에 거의 다다랐습니다! -우리는 데이터 사이언스와 윤리의 정의로 시작해서, 데이터 분석과 시각화를 위한 여러가지 툴 & 테크닉을 살펴보았고, 데이터 사이언스의 라이프 사이클을 검토하였고, 클라우드 컴퓨팅 서비스를 통한 데이터 사이언스 워크플로우 확장 및 자동화에 대해 알아보았습니다. 그래서 이제 당신은 아마도 _"내가 배운 것들을 현실에서는 어떻게 엮어서 사용하지?"_ 라는 의문점이 생길 것입니다. +우리는 데이터 과학과 윤리의 정의로 시작해서, 데이터 분석과 시각화를 위한 여러가지 툴 & 테크닉을 살펴보았고, 데이터 과학의 라이프 사이클을 검토하였고, 클라우드 컴퓨팅 서비스를 통한 데이터 과학 워크플로우 확장 및 자동화에 대해 알아보았습니다. 그래서 이제 당신은 아마도 _"내가 배운 것들을 현실에서는 어떻게 엮어서 사용하지?"_ 라는 의문점이 생길 것입니다. 이 레슨에서, 우리는 산업 전반에 걸친 데이터 과학의 실제 적용 사례를 살펴보고 연구, 디지털 인문학, 지속 가능성, 맥락에 대한 구체적인 예를 살펴보겠습니다. 학생 프로젝트 기회를 살펴보고 유용한 리소스로 마무리하여 학습 여정을 계속 이어나갈 수 있도록 도와드리겠습니다! -## Pre-Lecture Quiz +## 강의 전 퀴즈 [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/38) -## Data Science + Industry +## 데이터 과학 + 산업 -AI의 민주화 덕분에, 개발자들은 이제 사용자 경험과 개발 워크플로우에 대한 AI 중심의 의사 결정 및 데이터 기반 통찰력을 설계하고 통합하는 것이 더 쉬워지고 있습니다. 이것은 현실의 산업에서 데이터 사이언스가 어떻게 "적용" 되는지에 대한 몇 가지의 예입니다: +AI의 민주화 덕분에, 개발자들은 이제 사용자 경험과 개발 워크플로우에 대한 AI 중심의 의사 결정 및 데이터 기반 통찰력을 설계하고 통합하는 것이 더 쉬워지고 있습니다. 이것은 현실의 산업에서 데이터 과학이 어떻게 "적용" 되는지에 대한 몇 가지의 예입니다: -* [구글 독감 트렌드 (Google Flu Trends)](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) 데이터 사이언스를 사용하여 검색어와 독감 트렌드를 연관시켰습니다. used data science to correlate search terms with flu trends. 이 접근 방식에는 결함이 있지만 데이터 기반 의료 예측의 가능성(및 과제)에 대한 인식을 높였습니다. +* [구글 독감 트렌드 (Google Flu Trends)](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) 데이터 과학을 사용하여 검색어와 독감 트렌드를 연관시켰습니다. used data science to correlate search terms with flu trends. 이 접근 방식에는 결함이 있지만 데이터 기반 의료 예측의 가능성(및 과제)에 대한 인식을 높였습니다. - [UPS 라우팅 예측 (UPS Routing Predictions)](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - UPS가 데이터 사이언스와 머신러닝을 이용하여 배송을 위한 최적의 루트를 날씨 조건, 교통 패턴, 배달 마감일 등을 고려하여 어떻게 예측하는지에 대해 설명합니다. + [UPS 라우팅 예측 (UPS Routing Predictions)](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - UPS가 데이터 과학과 머신러닝을 이용하여 배송을 위한 최적의 루트를 날씨 조건, 교통 패턴, 배달 마감일 등을 고려하여 어떻게 예측하는지에 대해 설명합니다. * [NYC 택시 루트 시각화 (NYC Taxicab Route Visualization)](http://chriswhong.github.io/nyctaxi/) - [정보 자유법 (Freedom Of Information Laws)](https://chriswhong.com/open-data/foil_nyc_taxi/) 을 사용하여 수집된 데이터는 뉴욕 택시 생활의 하루를 시각화하는 데 도움이 되었고, 뉴욕 택시들이 바쁜 도시를 어떻게 돌아다니는지, 그들이 버는 돈, 그리고 매 24시간 동안의 여행 기간을 이해하는 데 도움이 되었습니다. -* [우버 데이터 사이언스 워크벤치 (Uber Data Science Workbench)](https://eng.uber.com/dsw/) - 요금, 안전, 사기 탐지 및 탐색 결정에 도움이 되는 데이터 분석 도구를 구축하기 위해 *매일* 수백만 개의 uber 여행에서 수집된 데이터(픽업 & 하차 위치, 이동 시간, 선호 경로 등)를 사용합니다. +* [우버 데이터 과학 워크벤치 (Uber Data Science Workbench)](https://eng.uber.com/dsw/) - 요금, 안전, 사기 탐지 및 탐색 결정에 도움이 되는 데이터 분석 도구를 구축하기 위해 *매일* 수백만 개의 uber 여행에서 수집된 데이터(픽업 & 하차 위치, 이동 시간, 선호 경로 등)를 사용합니다. * [스포츠 분석 (Sports Analytics)](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - 인재 스카우트, 스포츠 도박, 재고/장소 관리를 적용한 *예측 분석* (팀 및 선수 분석 - Moneyball 을 생각해보세요 - 그리고 팬 관리) 및 *데이터 시각화* (팀 & 팬 대시보드, 게임 등) 에 중점을 둡니다. -* [금융 산업에서의 데이터 사이언스 (Data Science in Banking)](https://data-flair.training/blogs/data-science-in-banking/) - 리스크 모델링 및 부정 행위 방지, 고객 세분화, 실시간 예측 및 추천 시스템에 이르기까지 다양한 적용을 통해 금융 산업에서 데이터 과학의 가치를 강조합니다. 예측 분석은 또한 [신용 점수 (credit scores)](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit) 와 같은 중요한 척도를 도출합니다. +* [금융 산업에서의 데이터 과학 (Data Science in Banking)](https://data-flair.training/blogs/data-science-in-banking/) - 리스크 모델링 및 부정 행위 방지, 고객 세분화, 실시간 예측 및 추천 시스템에 이르기까지 다양한 적용을 통해 금융 산업에서 데이터 과학의 가치를 강조합니다. 예측 분석은 또한 [신용 점수 (credit scores)](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit) 와 같은 중요한 척도를 도출합니다. -* [헬스케어에서의 데이터 사이언스 (Data Science in Healthcare)](https://data-flair.training/blogs/data-science-in-healthcare/) - 의료 영상(예: MRI, X-Ray, CT-Scan), 유전체학(DNA 시퀀싱), 약물 개발(위험 평가, 성공 예측), 예측 분석(환자 치료 & 공급 물류), 질병 추적 & 예방 등의 적용을 강조합니다. - - +* [헬스케어에서의 데이터 과학 (Data Science in Healthcare)](https://data-flair.training/blogs/data-science-in-healthcare/) - 의료 영상(예: MRI, X-Ray, CT-Scan), 유전체학(DNA 시퀀싱), 약물 개발(위험 평가, 성공 예측), 예측 분석(환자 치료 & 공급 물류), 질병 추적 & 예방 등의 적용을 강조합니다. ![Data Science Applications in The Real World](../images/data-science-applications.png) 이미지 출처: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) -위 그림은 데이터 사이언스 기술을 적용하기 위한 다른 도메인과 예를 보여줍니다. 더 많은 적용 사례를 보고싶나요? 아래의 [Review & Self Study](?id=review-amp-self-study)를 살펴보세요. +위 그림은 데이터 과학 기술을 적용하기 위한 다른 도메인과 예를 보여줍니다. 더 많은 적용 사례를 보고싶나요? 아래의 [Review & Self Study](?id=review-amp-self-study)를 살펴보세요. -## Data Science + Research +## 데이터 과학 + 연구 -| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Research.png) | +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | |:---------------------------------------------------------------------------------------------------------------:| | Data Science & Research - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | 현실 속에서 종종 규모에 맞는 산업 활용 사례에 초점을 맞추지만, _연구_ 에 적용된 것과 프로젝트는 다음 두 가지 관점에서 유용할 수 있습니다: * _혁신 기회_ - 차세대 애플리케이션을 위한 선진 개념의 신속한 프로토타이핑 및 사용자 경험의 테스트를 살펴봅니다. -* _배포 과제_ - 현실 세계에서 데이터 사이언스 기술의 잠재적인 피해 또는 의도하지 않은 결과를 조사합니다. +* _배포 과제_ - 현실 세계에서 데이터 과학 기술의 잠재적인 피해 또는 의도하지 않은 결과에 대하여 조사합니다. -학생들에게 이러한 연구 프로젝트는 주제에 대한 이해를 향상시킬 수 있는 학습 기회와 협업 기회를 제공할 수 있으며, 관심 분야에서 일하는 관련 직원 또는 팀과의 인식과 참여를 넓힐 수 있습니다. 그렇다면 연구 프로젝트는 어떻게 생겼고 어떻게 영향을 미칠 수 있을까요? +학생들에게 이러한 연구 프로젝트는 주제에 대한 이해를 향상시킬 수 있는 학습 기회와 협업 기회를 제공할 수 있으며, 관심 분야에서 일하는 직원 또는 팀의 인식과 참여를 넓힐 수 있습니다. 그렇다면 연구 프로젝트는 어떻게 생겼고 어떻게 영향을 미칠 수 있을까요? 이 예제를 한 번 봅시다 - Joy Buolamwini (MIT Media Labs)의 [MIT 젠더 쉐이즈 연구 (MIT Gender Shades Study)](http://gendershades.org/overview.html)와 Timnit Gebru (당시에 Microsoft Research)가 공동 저술한 [연구 (signature research paper)](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) -* **무엇:** 이 연구 프로젝트의 목적은 _성별과 피부 타입에 기초하여 자동화된 얼굴 분석 알고리즘과 데이터 세트에 존재하는 편향을 평가하는 것_ 입니다. -* **왜:** 얼굴 분석은 법 집행, 공항 보안, 고용 시스템 등에서 사용됩니다 - 부정확한 분류(예: 편향으로 인한)로 인해 영향을 받는 개인이나 집단에 잠재적인 경제적, 사회적 피해를 일으킬 수 있는 상황이 생길 수 있습니다. 편향을 이해하는 (그리고 제거 또는 완화하는) 것이 사용 공정성의 핵심입니다. +* **무엇:** 이 연구 프로젝트의 목적은 _성별과 피부 타입에 기초하여 자동화된 얼굴 분석 알고리즘과 데이터 셋에 존재하는 편향을 평가하는 것_ 입니다. +* **왜:** 얼굴 분석은 법 집행, 공항 보안, 고용 시스템 등에서 사용됩니다 - 부정확한 분류(예: 편향으로 인한)로 인해 영향을 받는 개인이나 집단에 잠재적인 경제적 피해와 사회적 피해를 일으킬 수 있는 상황이 생길 수 있습니다. 편향을 이해하는 (그리고 제거 또는 완화하는) 것이 사용 공정성의 핵심입니다. * **어떻게:** 연구원들은 기존 벤치마크에서 주로 밝은 피부의 피사체를 사용했으며, 성별과 피부 유형에 따라 보다 균형 잡힌 새로운 데이터 셋 (1000개 이상의 이미지)을 큐레이션했다고 밝혔습니다. 데이터 셋은 세 가지 성별 분류 제품 (Microsoft, IBM & Face++)의 정확성을 평가하는 데 사용되었습니다. 그 결과 전체적인 분류 정확도는 괜찮았지만, 다양한 하위 그룹 간 오류율에서 현저한 차이가 있었습니다. **misgendering**은 여성 또는 피부색이 어두운 사람의 경우에 더 높은 편향을 나타냈습니다. -**주요 결과:** 데이터 사이언스가 초기 AI 솔루션에서 이러한 편견을 인식하고 완화하기 위해 더 많은 _대표적인 데이터 셋_ (균형 있는 하위 그룹)과 더 많은 _포괄적인 팀_ (다양한 배경)을 필요로 한다는 인식을 높였습니다. 이러한 연구 노력은 AI 제품 및 프로세스 전반의 공정성을 개선하기 위해 _책임 있는 AI_에 대한 원칙과 관행을 정의하는 많은 조직에서도 중요한 역할을 합니다. - -Raised awareness that data science needs more _representative datasets_ (balanced subgroups) and more _inclusive teams_ (diverse backgrounds) to recognize and eliminate or mitigate such biases earlier in AI solutions. - -Research efforts like this are also instrumental in many organizations defining principles and practices for _responsible AI_ to improve fairness across their AI products and processes. +**주요 결과:** 데이터 과학의 초기 AI 솔루션에서 이러한 편견을 인식하고 완화하기 위해 더 많은 _대표적인 데이터 셋_ (균형 있는 하위 그룹)과 더 많은 _포괄적인 팀_ (다양한 배경)을 필요로 한다는 인식을 높였습니다. 이러한 연구 노력은 AI 제품 및 프로세스 전반의 공정성을 개선하기 위해 *책임 있는 AI* 에 대한 원칙과 관행을 정의하는 많은 조직에서도 중요한 역할을 합니다. -**Want to learn about relevant research efforts in Microsoft?** +**Microsoft의 관련 연구에 대한 노력을 더 알고싶나요?** -* Check out [Microsoft Research Projects](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) on Artificial Intelligence. -* Explore student projects from [Microsoft Research Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/). -* Check out the [Fairlearn](https://fairlearn.org/) project and [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) initiatives. +* 인공지능에 대한 [Microsoft Research Projects](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) 확인해보세요 +* 학생들의 프로젝트를 [Microsoft Research Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/) 에서 살펴보세요 +* [Fairlearn](https://fairlearn.org/) 프로젝트와 [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) 를 확인해보세요 -## Data Science + Humanities +## 데이터 과학 + 인문학 | ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Humanities.png) | |:--------------------------------------------------------------------------------------------------------------------:| | Data Science & Digital Humanities - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | -Digital Humanities [has been defined](https://digitalhumanities.stanford.edu/about-dh-stanford) as "a collection of practices and approaches combining computational methods with humanistic inquiry". [Stanford projects](https://digitalhumanities.stanford.edu/projects) like _"rebooting history"_ and _"poetic thinking"_ illustrate the linkage between [Digital Humanities and Data Science](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) - emphasizing techniques like network analysis, information visualization, spatial and text analysis that can help us revisit historical and literary data sets to derive new insights and perspective. +디지털 인문학은 "계산 방법과 인문학적 연구를 결합한 관행과 접근법의 집합"으로 [정의](https://digitalhumanities.stanford.edu/about-dh-stanford)되어 왔습니다. _"역사의 재발견"_ 과 _"시적 사고"_ 와 같은 [Stanford projects](https://digitalhumanities.stanford.edu/projects)는 [디지털 인문학과 데이터 과학 (Digital Humanities and Data Science)](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) 사이의 연관성을 보여줍니다. - 새로운 통찰력과 관점을 도출하기 위해 역사 및 문학 데이터 셋을 다시 검토하는 데 도움이 될 수 있는 네트워크 분석, 정보 시각화, 공간 및 텍스트 분석과 같은 기술을 강조 -*Want to explore and extend a project in this space?* +*여기에서 프로젝트를 탐색하고 확장하기를 원하나요?* -Check out ["Emily Dickinson and the Meter of Mood"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) - a great example from [Jen Looper](https://twitter.com/jenlooper) that asks how we can use data science to revisit familiar poetry and re-evaluate its meaning and the contributions of its author in new contexts. For instance, _can we predict the season in which a poem was authored by analyzing its tone or sentiment_ - and what does this tell us about the author's state of mind over the relevant period? +["Emily Dickinson and the Meter of Mood"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) 를 살펴보세요 - [Jen Looper](https://twitter.com/jenlooper)의 아주 좋은 예제는 우리가 익숙한 시를 다시 읽고, 시의 의미와 새로운 맥락에서 작가의 공헌을 재평가하기 위해 어떻게 데이터 과학을 사용할 수 있는지 묻습니다. 예를 들어, *우리는 시의 어조나 감정을 분석함으로써 시가 쓰여진 계절을 예측할 수 있는지* - 그리고 이것은 우리에게 그 시기 동안의 작가의 심리 상태에 대해 무엇을 말해주는지? -To answer that question, we follow the steps of our data science lifecycle: +이 질문들에 대답하기 위해, 우리는 몇 가지 데이터 과학 라이프 사이클의 스텝을 따라가 볼 것 입니다: -* [`Data Acquisition`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - to collect a relevant dataset for analysis. Options including using an API ( e.g., [Poetry DB API](https://poetrydb.org/index.html)) or scraping web pages (e.g., [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) using tools like [Scrapy](https://scrapy.org/). -* [`Data Cleaning`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - explains how text can be formatted, sanitized and simplified using basic tools like Visual Studio Code and Microsoft Excel. -* [`Data Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - explains how we can now import the dataset into "Notebooks" for analysis using Python packages (like pandas, numpy and matplotlib) to organize and visualize the data. -* [`Sentiment Analysis`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - explains how we can integrate cloud services like Text Analytics, using low-code tools like [Power Automate](https://flow.microsoft.com/en-us/) for automated data processing workflows. +* [`데이터 획득 (Data Acquisition)`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - 분석을 위해 관련 데이터 셋을 수집합니다. API(예: [Poetry DB API](https://poetrydb.org/index.html)) 사용 또는 Scrapy와 같은 도구를 사용하여 웹 페이지(예: [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm))를 스크랩핑하는 옵션이 있습니다. +* [`데이터 정리 (Data Cleaning)`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - Visual Studio Code 및 Microsoft Excel과 같은 기본 도구를 사용하여 텍스트를 포맷팅, 검사 및 단순화하는 방법을 설명합니다. +* [`데이터 분석 (Data Analysis)`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - 데이터를 구성하고 시각화하기 위해 파이썬 패키지(pandas, numpy, matplotlib 등)를 사용하여 분석을 위해 데이터 세트를 "노트북 (Notebooks)"으로 가져올 수 있는 방법을 설명합니다. +* [`감정 분석 (Sentiment Analysis)`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - 자동화된 데이터 처리 워크플로우를 위해 [Power Automate](https://flow.microsoft.com/en-us/)와 같은 로우 코드 툴을 사용하여 Text Analytics와 같은 클라우드 서비스를 통합하는 방법을 설명합니다. +* explains how we can integrate cloud services like Text Analytics, using low-code tools like for automated data processing workflows. -Using this workflow, we can explore the seasonal impacts on the sentiment of the poems, and help us fashion our own perspectives on the author. Try it out yourself - then extend the notebook to ask other questions or visualize the data in new ways! +이 워크 워크플로우를 이용해서, 우리는 계절이 시에 실린 감정이 어덯게 영향을 미치는지 알아볼 수 있고, 저자에 대한 우리의 관점을 형성하도록 도울 수 있습니다. 스스로 한 번 해보세요 - 그런 다음 노트북을 확장하여 다른 질문을 하거나 새로운 방법으로 데이터를 시각화해보세요! -> You can use some of the tools in the [Digital Humanities toolkit](https://github.com/Digital-Humanities-Toolkit) to pursue these avenues of inquiry +> [Digital Humanities toolkit](https://github.com/Digital-Humanities-Toolkit) 툴킷의 도구를 사용하여 이러한 검색 방법을 시도해 볼 수 있습니다 -## Data Science + Sustainability +## 데이터 과학 + 지속 가능성 | ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/20-DataScience-Sustainability.png) | |:------------------------------------------------------------------------------------------------------------------------:| | Data Science & Sustainability - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | -The [2030 Agenda For Sustainable Development](https://sdgs.un.org/2030agenda) - adopted by all United Nations members in 2015 - identifies 17 goals including ones that focus on **Protecting the Planet** from degradation and the impact of climate change. The [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) initiative supports these goals by exploring ways in which technology solutions can support and build more sustainable futures with a [focus on 4 goals](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - being carbon negative, water positive, zero waste, and bio-diverse by 2030. +[2030 지속 가능한 개발 의제 (2030 Agenda For Sustainable Development)](https://sdgs.un.org/2030agenda) - 2015년 모든 유엔 회원국들이 채택하였음 - 쇠퇴와 기후 변화의 영향으로 부터 **지구를 보호**하는 것에 초점을 맞춘 목표를 포함하여 17개 목표를 명시하고 있습니다. [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) 이니셔티브는 2030년까지 탄소 네거티브, 물 포지티브, 제로 웨이스트, 바이오 다이버스의 [네 가지 목표](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh)에 초점을 맞춰 기술 솔루션이 보다 지속 가능한 미래를 지원하고 구축할 수 있는 방법을 모색함으로써 이러한 목표를 지원합니다. -Tackling these challenges in a scalable and timely manner requires cloud-scale thinking - and large scale data. The [Planetary Computer](https://planetarycomputer.microsoft.com/) initiative provides 4 components to help data scientists and developers in this effort: +이러한 과제를 확장 가능하게하고 시기 적절하게 해결하려면 클라우드 규모의 사고와 대규모 데이터가 필요합니다. [Planetary Computer](https://planetarycomputer.microsoft.com/) 이니셔티브는 데이터 과학자와 개발자가 이러한 노력을 하는 데 도움이 되는 4가지 구성 요소를 제공합니다. -* [Data Catalog](https://planetarycomputer.microsoft.com/catalog) - with petabytes of Earth Systems data (free & Azure-hosted). -* [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - to help users search for relevant data across space and time. -* [Hub](https://planetarycomputer.microsoft.com/docs/overview/environment/) - managed environment for scientists to process massive geospatial datasets. -* [Applications](https://planetarycomputer.microsoft.com/applications) - showcase use cases & tools for sustainability insights. +* [Data Catalog](https://planetarycomputer.microsoft.com/catalog) - 페타바이트 단위의 지구 시스템 데이터(무료 및 Azure 호스팅됨)를 제공합니다. +* [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - 사용자가 시공간에 걸쳐 관련 데이터를 검색할 수 있도록 지원합니다. +* [Hub](https://planetarycomputer.microsoft.com/docs/overview/environment/) - 과학자들이 대규모 지리공간 데이터셋을 처리할 수 있는 관리 환경입니다. +* [Applications](https://planetarycomputer.microsoft.com/applications) - 지속 가능성 통찰력을 위한 활용 사례 및 도구를 제시합니다. -**The Planetary Computer Project is currently in preview (as of Sep 2021)** - here's how you can get started contributing to sustainability solutions using data science. +**PlaPlanetary Computer Project는 현재 프리뷰 중입니다(2021년 9월 기준)** - 데이터 과학을 사용하여 지속 가능성 솔루션에 기여하는 방법을 소개합니다. -* [Request access](https://planetarycomputer.microsoft.com/account/request) to start exploration and connect with peers. -* [Explore documentation](https://planetarycomputer.microsoft.com/docs/overview/about) to understand supported datasets and APIs. -* Explore applications like [Ecosystem Monitoring](https://analytics-lab.org/ecosystemmonitoring/) for inspiration on application ideas. +* [엑세스를 요청](https://planetarycomputer.microsoft.com/account/request) 하여 탐색을 시작하고 피어와 연결합니다. +* 지원되는 데이터 셋과 API를 이해하기 위한 [문서](https://planetarycomputer.microsoft.com/docs/overview/about)를 살펴보세요. +* 적용 방법에 대한 아이디어에 대한 영감을 얻기 위해 [Ecosystem Monitoring](https://analytics-lab.org/ecosystemmonitoring/)과 같은 애플리케이션을 탐색합니다. -Think about how you can use data visualization to expose or amplify relevant insights into areas like climate change and deforestation. Or think about how insights can be used to create new user experiences that motivate behavioral changes for more sustainable living. +데이터 시각화를 사용하여 기후 변화나 삼림 벌채와 같은 분야에 대한 관련 통찰력을 노출하거나 확대할 수 있는 방법을 생각해보세요. 또는 보다 지속 가능한 생활을 위해, 행동 변화에 동기를 부여하는 새로운 사용자 경험을 만들어 주려면 통찰력을 어떻게 사용할 수 있는지 생각해 보십시오. -## Data Science + Students +## 데이터 과학 + 학생 -We've talked about real-world applications in industry and research, and explored data science application examples in digital humanities and sustainability. So how can you build your skills and share your expertise as data science beginners? +우리는 산업 및 연구 분야의 실제 적용 사례에 대해 이야기했으며 디지털 인문학과 지속 가능성의 데이터 과학 적용 사례를 알아보았습니다. 그렇다면 어떻게 하면 데이터 과학 초보자로서 기술을 개발하고 전문 지식을 공유할 수 있을까요? -Here are some examples of data science student projects to inspire you. +여기에 영감을 불어넣어 줄 만한 데이터 과학에 대한 학생들의 프로젝트 예시가 있습니다. -* [MSR Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) with GitHub [projects](https://github.com/msr-ds3) exploring topics like: - - [Racial Bias in Police Use of Force](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) - - [Reliability of NYC Subway System](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) -* [Digitizing Material Culture: Exploring socio-economic distributions in Sirkap](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc)- from [Ornella Altunyan](https://twitter.com/ornelladotcom) and team at Claremont, using using [ArcGIS StoryMaps](https://storymaps.arcgis.com/). +* 깃허브에서 [projects](https://github.com/msr-ds3) [MSR Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects)의 다음과 같은 토픽이 포함된 [프로젝트](https://github.com/msr-ds3)가 있습니다 : + - [경찰의 무력에 대한 인종 편향 (Racial Bias in Police Use of Force)](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [뉴욕시 지하철 시스템의 신뢰성 (Reliability of NYC Subway System)](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) +* [자료 문화 디지털화: Sirkap의 사회 경제적 분포 탐색](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc)- [Ornella Altunyan](https://twitter.com/ornelladotcom)과 Claremont의 팀이 [ArcGIS StoryMaps](https://storymaps.arcgis.com/)을 사용하였습니다. -## 🚀 Challenge +## 🚀 도전 과제 -Search for articles that recommend data science projects that are beginner friendly - like [these 50 topic areas](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/) or [these 21 project ideas](https://www.intellspot.com/data-science-project-ideas) or [these 16 projects with source code](https://data-flair.training/blogs/data-science-project-ideas/) that you can deconstruct and remix. And don't forget to blog about your learning journeys and share your insights with all of us. +초보자 친화적인 데이터 과학 프로젝트를 추천하는 기사 검색 - [이 50개 토픽 영역](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/)이나 [21개 프로젝트 아이디어](https://www.intellspot.com/data-science-project-ideas) 또는 [16개의 프로젝트와 소스코드](https://data-flair.training/blogs/data-science-project-ideas/)가 있는 프로젝트처럼 해체하고 합칠 수 있습니다. 또한 학습 여정에 대해 블로그에 올리고 여러분의 통찰력을 우리 모두와 공유하는 것을 잊지마세요. -## Post-Lecture Quiz +## 강의 후 퀴즈 [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/39) -## Review & Self Study +## 리뷰 & 혼자 공부해보기 + +더 많은 케이스에 대해 알고싶나요? 여기에 관련된 기사들이 있습니다: + +* [17개의 데이터 과학 적용 사례들 (Data Science Applications and Examples)](https://builtin.com/data-science/data-science-applications-examples) - 2021년 7월 + +* [11개의 놀라운 데이터 과학 애플리케이션 (11 Breathtaking Data Science Applications in Real World)](https://myblindbird.com/data-science-applications-real-world/) - 2021년 5월 -Want to explore more use cases? Here are a few relevant articles: +* [실제 환경에서의 데이터 과학 (Data Science In The Real World)](https://towardsdatascience.com/data-science-in-the-real-world/home) - Article Collection -* [17 Data Science Applications and Examples](https://builtin.com/data-science/data-science-applications-examples) - Jul 2021 -* [11 Breathtaking Data Science Applications in Real World](https://myblindbird.com/data-science-applications-real-world/) - May 2021 -* [Data Science In The Real World](https://towardsdatascience.com/data-science-in-the-real-world/home) - Article Collection -* Data Science In: [Education](https://data-flair.training/blogs/data-science-in-education/), [Agriculture](https://data-flair.training/blogs/data-science-in-agriculture/), [Finance](https://data-flair.training/blogs/data-science-in-finance/), [Movies](https://data-flair.training/blogs/data-science-at-movies/) & more. +* 다음과 같은 분야의 데이터 과학: [Education](https://data-flair.training/blogs/data-science-in-education/), [Agriculture](https://data-flair.training/blogs/data-science-in-agriculture/), [Finance](https://data-flair.training/blogs/data-science-in-finance/), [Movies](https://data-flair.training/blogs/data-science-at-movies/) & 등등. - ## Assignment + ## 과제 -[Explore A Planetary Computer Dataset](assignment.md) +[Planetary Computer 데이터 셋 살펴보기](assignment.md) From 1071cd66fb1c2bb08e100d0de31ffafb6e016b78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9D=B4=EB=93=A0?= Date: Mon, 18 Oct 2021 13:15:30 +0900 Subject: [PATCH 065/234] Translate assignment --- .../translations/assignment.ko.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.ko.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.ko.md index e69de29b..f3d8e8b6 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.ko.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.ko.md @@ -0,0 +1,34 @@ +# Planetary Computer 데이터 셋 살펴보기 + +## 설명 + +이 레슨에서는, 우리는 다양한 도메인에 적용된 데이터 과학에 대해 이야기할 것입니다 - 연구, 지속 가능성과 디지털 인문학에 관련된 예를 더 깊이 파고 들것입니다. 이 과제에서, 당신은 이러한 예들 중 하나를 더 자세히 살펴보고, 데이터 시각화 및 분석에 대한 학습 내용을 적용하여 지속 가능성 데이터에 대한 통찰력을 도출할 수 있습니다. + +[Planetary Computer](https://planetarycomputer.microsoft.com/) 프로젝트에서 계정으로 데이터 셋과 API를 접근할 수 있습니다 - 과제의 보너스 단계를 시도하려면 액세스 권한을 요청하세요. 이 사이트는 계정을 만들지 않고도 사용할 수 있는 [Explorer](https://planetarycomputer.microsoft.com/explore) 기능도 제공합니다. + +`단계:` Explorer 인터페이스(아래 스크린샷에 보임)를 사용하여 데이터 셋(제공된 옵션), 사전 설정된 쿼리(데이터 필터링), 렌더링 옵션(관련 시각화를 생성)을 선택할 수 있습니다. 이 과제에서, 과제는 다음과 같습니다. + +1. [Explorer documentation](https://planetarycomputer.microsoft.com/docs/overview/explorer/) 살펴보기 - 옵션에 대한 이해. +2. 데이터 셋 [Catalog](https://planetarycomputer.microsoft.com/catalog) 살펴보기 - 각각에 대한 목적 이해. +3. Explorer 사용하기 - 관심있는 데이터를 고르고, 알맞은 쿼리 & 렌더링 옵션을 찾으세요. + +![The Planetary Computer Explorer](images/Planetary-Computer-Explorer.png) + +`당신의 과제:` 이제 브라우저에 렌더링된 시각화를 공부하고 다음 질문에 답해보세요: + +* 데이터가 어떤 _특징(features)_ 을 가지고 있나요 ? +* 시각화 어떤 *인사이트* 혹은 결과를 제공하나요? +* 이러한 통찰이 프로젝트의 지속 가능성 목표에 미치는 *의미 (implications)* 는 무엇인가요? +* 시각화의 한계(즉, 어떤 통찰력을 얻지 못했나요?)가 무엇이었나요? +* 미가공 데이터를 얻을 수 있다면 어떤 _대체 시각화_ 를 만들고 싶은지? 그리고 그 이유는 무엇인가요? + +`보너스 포인트:` 계정 신청 - 그리고 계정 승인 후 로그인 해보기. + +* 데이터를 인터랙티브하게 탐색하고, 생각해 낸 다른 시각화를 구현합니다. +* 이제 커스텀한 시각화를 분석해보세요 - 이전에 놓쳤던 통찰력을 도출할 수 있었나요? + +## 지시문 + +| 모범적인 | 적당한 | 개선 필요 | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- | ---------------------------------------------------------------- | +| 다섯 가지 핵심 질문에 모두 답했습니다. 학생은 현재 및 대안 시각화가 지속 가능성 목표 또는 결과에 대한 통찰력을 제공할 수 있는 방법을 명확하게 파악했습니다. | 학생은 적어도 상위 3개의 질문에 매우 자세하게 답변했으며, 이는 Explorer에 대한 실제 경험이 있음을 보여줍니다. | 학생이 여러 질문에 답하지 못하거나 세부 정보가 충분하지 않음 - 프로젝트에 의미 있는 시도가 없었음을 나타냅니다. | From e7adaa97379739b251cdd791bf96a09ffa72c6ac Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Mon, 18 Oct 2021 11:29:56 -0400 Subject: [PATCH 066/234] editing Spanish path for assignment (data science/wild) --- .../20-Real-World-Examples/translations/README.es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md index f708850a..893fd41e 100644 --- a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.es.md @@ -141,4 +141,4 @@ Busca artículos que recomienden proyectos de ciencia de datos que son amigables * Ciencia de Datos en la [Educación](https://data-flair.training/blogs/data-science-in-education/), [Agricultura](https://data-flair.training/blogs/data-science-in-agriculture/), [Finanzas](https://data-flair.training/blogs/data-science-in-finance/), [Películas](https://data-flair.training/blogs/data-science-at-movies/) y más. ## Asignación -[Explora un conjunto de datos de la Computadora Planetaria](../assignment.md) +[Explora un conjunto de datos de la Computadora Planetaria](assignment.es.md) From 9fe08bf5cd2ede9a2a962fc96d8a371db91a08f0 Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Tue, 19 Oct 2021 13:26:30 +0545 Subject: [PATCH 067/234] added translations in Nepali for README --- translations/README.NEPALI.MD | 100 ++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 translations/README.NEPALI.MD diff --git a/translations/README.NEPALI.MD b/translations/README.NEPALI.MD new file mode 100644 index 00000000..b8c97ecf --- /dev/null +++ b/translations/README.NEPALI.MD @@ -0,0 +1,100 @@ +# सुरुआतिका लागी Data Science - पाठ्यक्रम + +Microsoft मा Azure Cloud अधिवक्ताहरु एक १०-हप्ता, २०-पाठ पाठ्यक्रम सबै Data Science को बारे मा प्रस्ताव गर्न पाउँदा खुसी छन्। प्रत्येक पाठ पूर्व पाठ र पछि पाठ क्विज, पाठ, एक समाधान, र एक काम पूरा गर्न को लागी लिखित निर्देश शामिल छ। हाम्रो परियोजना आधारित शिक्षाशास्त्रले तपाइँलाई निर्माण गर्न को लागी जान्न को लागी अनुमति दिन्छ साथै नयाँ कौशल को लागी 'stick' हुने तरीका सिकाउदछ । + +**हाम्रा लेखकहरुलाई हार्दिक धन्यवाद:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer). + +**🙏विशेष धन्यवाद 🙏 हाम्रा Microsoft Learn Student Ambassadorका लेखक, समीक्षक र सामग्री योगदानकर्ता,** विशेष गरी [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Rohit Yadav](https://www.linkedin.com/in/rty2423), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Sheena Narula](https://www.linkedin.com/in/sheena-narula-n/), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), Yogendrasingh Pawar, Max Blum, Samridhi Sharma, Tauqeer Ahmad, Aaryan Arora, ChhailBihari Dubey + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../sketchnotes/00-Title.png)| +|:---:| +|सुरुआतिका लागी Data Science - _स्केचनोट [@nitya](https://twitter.com/nitya) द्वारा_ | + + +# सुरु गर्नका लागी + +> **शिक्षकहरु**, हामीले कसरी यो पाठ्यक्रम को उपयोग गर्न [केहि सुझावहरु ](for-teachers.md) मा समावेस गरेका छौ । हामी तपाइँको प्रतिक्रिया [हाम्रो Discussion Forum](https://github.com/microsoft/Data-Science-For-Beginners/discussions) मा सुन्न आतुर छौ ! + +> **विद्यार्थी**, यो पाठ्यक्रम आफ्नै शैलिमा प्रयोग गर्नका लागी यो Repo लाई fork गर्नुहोस् र एक पूर्व व्याख्यान प्रश्नोत्तरी संग शुरू गरी त्यसपछि गतिविधिहरु को बाकी पूरा लेक्चर पढी अभ्यास पूरा गर्नुहोस् । समाधान कोड प्रतिलिपि गर्नुको सट्टा पाठ बुझेर परियोजनाहरु बनाउन को लागी प्रयास गर्नुहोस्; जे होस् कि कोड प्रत्येक परियोजना उन्मुख पाठ मा /solution फोल्डरहरु मा उपलब्ध छ। अर्को विचार साथीहरु संग एक साथ सामग्री को माध्यम बाट जाने संग एक अध्ययन समूह गठन गर्न को लागी हुनेछ। थप अध्ययन को लागी, हामी [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa)सिफारिश गर्दछौं । + + + +## शिक्षाशास्त्र + +यो पाठ्यक्रम निर्माण गर्दा हामीले दुई शैक्षिक सिद्धान्त छनौट गरेका छौं: यो Project आधारित छ र यीमा बारम्बार क्विजहरु सामेल छन्। यस श्रृंखला को अन्त सम्म, विद्यार्थीहरु नैतिक अवधारणाहरु, डाटा तयारी, डाटा संग काम गर्ने बिभिन्न तरीकाहरु, डाटा दृश्य, डाटा विश्लेषण, डाटा विज्ञान को वास्तविक दुनिया को उपयोग को मामलाहरु, र अधिक सहित डेटा विज्ञान को आधारभूत सिद्धान्तहरु सिक्ने छन । + +यसबाहेक, एक कम दांव क्विज एक कक्षा भन्दा पहिले गर्नाले एक विषय सिक्न को लागी विद्यार्थी को इरादा सेट गर्दछ, जबकि कक्षा पछि एक दोस्रो प्रश्नोत्तरी थप अवधारण सुनिश्चित गर्दछ। यो पाठ्यक्रम लचिलो र रमाईलो हुन को लागी डिजाइन गरीएको छ र सम्पूर्ण वा आंशिक रूपमा लिन सकिन्छ। Project सुरु हुँदै १० हप्ता को अन्त्य सम्म जटिलता बढ्दै जादछ । + +> हाम्रो [आचार संहिता](CODE_OF_CONDUCT.md), [योगदान](CONTRIBUTING.md), [अनुवाद](TRANSLATIONS.md) दिशानिर्देश पाउनुहोस्। हामी तपाइँको रचनात्मक प्रतिक्रिया स्वागत गर्दछौं! + +## प्रत्येक पाठ समावेश छ: + +- वैकल्पिक स्केचनोट +- वैकल्पिक पूरक भिडियो +- पूर्व पाठ वार्मअप प्रश्नोत्तरी +- लिखित पाठ +-परियोजना आधारित पाठ को लागी, कसरी परियोजना निर्माण गर्न को लागी चरण-दर-चरण गाइड +- ज्ञान जाँच +- चुनौती +- पूरक पठन +- असाइनमेन्ट +- पोस्ट पाठ प्रश्नोत्तरी + +> ** क्विजहरु को बारे मा एक नोट **: सबै क्विज [यो एप मा](https://red-water-0103e7a0f.azurestaticapps.net/) निहित छन्, प्रत्येक तीन प्रश्नहरु को ४० कुल क्विज को लागी। तिनीहरू पाठ भित्र बाट जोडिएका छन् तर प्रश्नोत्तरी अनुप्रयोग स्थानीय स्तर मा चलाउन सकिन्छ; 'क्विज- app' फोल्डर मा निर्देशन पालना गर्नुहोस्। उनीहरु बिस्तारै स्थानीयकृत हुँदैछन्। + + +## पाठ + + +|![ स्केचनोट [(@sketchthedocs)](https://sketchthedocs.dev) द्वारा](./sketchnotes/00-Roadmap.png)| +|:---:| +| शुरुआती को लागी डाटा विज्ञान: गाइड - _स्केचनोट [@nitya](https://twitter.com/nitya)_ द्वारा| + + +| पाठ नम्बर | विषय | पाठ समूह | सिक्ने उद्देश्यहरू | लिन्कड पाठ | लेखक | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | + +| 0१ | डाटा विज्ञान को परिभाषा | [परिचय](1-Introduction/README.md) | डाटा विज्ञान को पछाडि आधारभूत अवधारणाहरु जान्नुहोस् र यो कसरी Artificial Intelligence, Machine Learning, र Big Data संग सम्बन्धित छ। | [पाठ](1-Introduction/01-defining-data-science/README.md) [भिडियो](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| 0२ | डाटा विज्ञान नैतिकता | [परिचय](1-Introduction/README.md) | डाटा नैतिक अवधारणाहरु, चुनौतिहरु र फ्रेमवर्क | [पाठ](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| 0३ | डाटा परिभाषा | [परिचय](1-Introduction/README.md) | कसरी डाटा वर्गीकृत र यसको सामान्य स्रोत हो। | [पाठ](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 0४ | Probability र Statistics को परिचय | [परिचय](1-Introduction/README.md) |Probability र Statistics को गणितीय प्रविधि डाटा बुझ्न को लागी।| [पाठ](1-Introduction/04-stats-and-probability/README.md) [भिडिय](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 0५ | Relational Data मा काम | [डाटासंग काम](2-Working-With-Data/README.md) | रिलेशनल डाटा को परिचय र स्ट्रक्चर्ड क्वेरी भाषा संग रिलेशनल डाटा को अन्वेषण र विश्लेषण को मूल कुराहरु, जसलाई SQL को रूप मा पनि जानिन्छ (उच्चारण "see-quell") | [पाठ](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| 0६ | NoSQL Data मा काम | [डाटासंग काम](2-Working-With-Data/README.md) | नन रिलेशनल डाटा को परिचय, यसको विभिन्न प्रकार र अन्वेषण र कागजात डाटाबेस को विश्लेषण को आधारभूत। | [पाठ](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| +| 0७ | Python मा काम | [डाटासंग काम](2-Working-With-Data/README.md) | Pandas जस्तै libraries संग डाटा अन्वेषण को लागी अजगर को उपयोग को आधारभूत। पाइथन प्रोग्रामिंग को आधारभूत समझ सिफारिश गरीएको छ। | [पाठ](2-Working-With-Data/07-python/README.md) [भिडियो](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 0८ | डाटा तयारी | [डाटासंग काम](2-Working-With-Data/README.md) | सफा गर्न र हराइरहेको, गलत, वा अपूर्ण डाटा को चुनौतिहरु लाई सम्हाल्न को लागी डाटा रूपान्तरण को लागी डाटा प्रविधि मा विषय। | [पाठ](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 0९ | मात्रा को दृश्य | [डाटा दृश्यता](3-Data-Visualization/README.md) | जान्नुहोस् कसरी Matplotlibमा चरा डाटा चित्रण गर्ने 🦆 | [पाठ](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| १० | डाटा को वितरण दृश्य | [डाटा दृश्यता](3-Data-Visualization/README.md) | एक अन्तराल भित्र अवलोकन र प्रवृत्ति दृश्य। | [पाठ](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | अनुपात दृश्य | [डाटा दृश्यता](3-Data-Visualization/README.md) | अलग र समूहीकृत प्रतिशत दृश्य। | [पाठ](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | सम्बन्ध को दृश्य | [डाटा दृश्यता](3-Data-Visualization/README.md) | भिजुअलाइजिंग कनेक्शन र डाटा को सेट र उनीहरुको variables को बीच सम्बन्ध। | [पाठ](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | सार्थक दृश्य | [डाटा दृश्यत](3-Data-Visualization/README.md) | प्रभावकारी समस्या को समाधान र अंतर्दृष्टि को लागी तपाइँको दृश्य बहुमूल्य बनाउन को लागी प्रविधि र मार्गदर्शन। | [पाठ](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | डाटा विज्ञान जीवनचक्र को परिचय | [जीवनचक्र](4-Data-Science-Lifecycle/README.md) | डाटा विज्ञान जीवनचक्र को परिचय र डाटा प्राप्त गर्ने र निकाल्ने यसको पहिलो चरण। | [पाठ](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | विश्लेषण | [जीवनचक्र](4-Data-Science-Lifecycle/README.md) | डाटा विज्ञान जीवनचक्र को यो चरण डाटा को विश्लेषण गर्न को लागी टेक्नीक मा केन्द्रित छ। | [पाठ](4-Data-Science-Lifecycle/15-Analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | सञ्चार | [जीवनचक्र](4-Data-Science-Lifecycle/README.md) | डाटा विज्ञान जीवनचक्रको यो चरण डेटा बाट अन्तरदृष्टि प्रस्तुत गर्ने तरीका मा ध्यान केन्द्रित गर्दछ कि यो निर्णय निर्माताहरु लाई बुझ्न को लागी सजिलो बनाउँछ। | [पाठ](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | क्लाउड मा डाटा विज्ञान | [क्लाउड डाटा ](5-Data-Science-In-Cloud/README.md) | पाठ को यो श्रृंखला क्लाउड र यसको लाभ मा डाटा विज्ञान को परिचय। | [पाठ](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) र [Maud](https://twitter.com/maudstweets) | +| 18 | क्लाउड मा डाटा विज्ञान | [क्लाउड डाटा](5-Data-Science-In-Cloud/README.md) | कम कोड उपकरण को उपयोग गरी प्रशिक्षण मोडेल। |[पाठ](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 19 | क्लाउड मा डाटा विज्ञान | [क्लाउड डाटा](5-Data-Science-In-Cloud/README.md) | Azure Machine Learning Studio संग मोडेल परिनियोजन। | [पाठ](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 20 | जंगलमा डाटा विज्ञान| [जंगलम](6-Data-Science-In-Wild/README.md) | वास्तविक दुनिया मा डाटा विज्ञान संचालित परियोजनाहरु। | [पाठ](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | + +## अफलाइन पहुँच + +तपाइँ यो कागजात अफलाइन चलाउन सक्नुहुन्छ [Docsify] (https://docsify.js.org/#/) को उपयोग गरेर। यो Repo Fork गर्नुहोस्, [तपाइँको Docsify स्थापना गर्नुहोस् (https://docsify.js.org/#/quickstart) तपाइँको स्थानीय मेसिन मा, तब यो रेपो को मूल फोल्डर मा, `docsify serve` टाइप गर्नुहोस्। वेबसाइट तपाइँको स्थानीय होस्ट मा पोर्ट 3000 मा सेवा दिइनेछ: `localhost: 3000`। + +> नोट, नोटबुक Docsify को माध्यम बाट रेन्डर गरिनेछैन, त्यसैले जब तपाइँ एक नोटबुक चलाउन को लागी आवश्यक छ, VS Code मा एक अजगर कर्नेल चलिरहेको छुट्टै गर्नुहोस्। + +##PDF + +सबै पाठ को एक पीडीएफ [यहाँ पाउन सकिन्छ](https://microsoft.github.io/Data-Science-For-Beginners/pdf/readme.pdf) + +## सहयोग चाहियो! + +यदि तपाइँ पाठ्यक्रम को सबै वा अंश अनुवाद गर्न चाहानुहुन्छ, कृपया हाम्रो [अनुवाद] (TRANSLATIONS.md) गाइड को पालन गर्नुहोस्। + +## अन्य पाठ्यक्रम + +हाम्रो टोली अन्य पाठ्यक्रम उत्पादन! यहाँ हेर्नुहोस : + +- [शुरुआतीहरुको लागी Machine Learning] (https://aka.ms/ml-beginners) +- [शुरुआती को लागी IoT] (https://aka.ms/iot-beginners) +- [शुरुआतीहरुको लागि Web Dev] (https://aka.ms/webdev-beginners) From badd31780ad55f928e174cae02de80e5e7959593 Mon Sep 17 00:00:00 2001 From: alo_sanchez Date: Tue, 19 Oct 2021 19:12:37 -0500 Subject: [PATCH 068/234] [ES-spanish] Translation Cap 3 and 09 - Visualizing quantities #132 --- .../translations/README.es.md | 206 ++++++++++++++++++ .../translations/assignment.es.md | 11 + .../translations/README.es.md | 27 +++ 3 files changed, 244 insertions(+) create mode 100644 3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.es.md b/3-Data-Visualization/09-visualization-quantities/translations/README.es.md index e69de29b..e01f7379 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/README.es.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.es.md @@ -0,0 +1,206 @@ +# Visualización de cantidades + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| Visualización de cantidades - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +En esta lección explorarás cómo utilizar una de las muchas librerías de Python disponibles para aprender a crear interesantes visualizaciones relacionadas al concepto de cantidad. Utilizando un conjunto de datos limpios sobre las aves de Minnesota, podrás aprender muchos datos interesantes sobre la vida silvestre local. +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/16) + +## Observar la envergadura con Matplotlib + +Una excelente librería para crear gráficos tanto simples como sofisticados de varios tipos es [Matplotlib](https://matplotlib.org/stable/index.html). En términos generales, el proceso de ploteamiento de datos utilizando estas librerías incluye la identificación de las partes del dataframe que desea enfocar, la realización de cualquier transformación en los datos necesarios, la asignación de los valores de los ejes x e y, la decisión de qué tipo de gráfico mostrar, y luego mostrar el gráfico. Matplotlib ofrece una gran variedad de visualizaciones, pero para esta lección, vamos a concentrarnos en las más apropiadas para visualizar cantidad: gráficos de líneas, gráficos de dispersión y gráficos de barras. + +> ✅ Usa el gráfico que mejor se adapte a la estructura de tus datos y a la historia que quieres contar. +> - Para analizar tendencias a lo largo del tiempo: línea +> - Para comparar valores: barra, columna, pastel, diagrama de dispersión +> - Para mostrar cómo se relacionan las partes con un todo: pastel +> - Para mostrar la distribución de los datos: gráfico de dispersión, barra +> - Para mostrar tendencias: línea, columna +> - Para mostrar relaciones entre valores: línea, gráfico de dispersión, burbuja + +Si tienes un conjunto de datos y necesitas descubrir qué cantidad de un elemento determinado está incluido, una de las primeras tareas que tienes que hacer será inspeccionar sus valores. + +✅ Hay muy buenas "hojas de trucos" disponibles para Matplotlib [aquí](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-1.png) y [aquí](https://github.com/matplotlib/cheatsheets/blob/master/cheatsheets-2.png). + +## Construir un gráfico de líneas sobre los valores de la envergadura de las aves + +Abre el archivo `notebook.ipynb` en la raíz de la carpeta de esta lección y añada una celda. + +> Nota: los datos están almacenados en la raíz de este repositorio en la carpeta `/data`. + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +Estos datos son una mezcla de texto y números: + + +| | Name | ScientificName | Category | Order | Family | Genus | ConservationStatus | MinLength | MaxLength | MinBodyMass | MaxBodyMass | MinWingspan | MaxWingspan | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | Black-bellied whistling-duck | Dendrocygna autumnalis | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | Fulvous whistling-duck | Dendrocygna bicolor | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | Snow goose | Anser caerulescens | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | Ross's goose | Anser rossii | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | Greater white-fronted goose | Anser albifrons | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +Empecemos por graficar algunos de los datos numéricos utilizando un gráfico de líneas básico. Supongamos que queremos ver la envergadura máxima de estas interesantes aves. + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![Envergadura máxima](../images/max-wingspan.png) + +¿Qué nota inmediatamente? Parece que hay al menos un valor atípico: ¡esa es una gran envergadura! Una envergadura de 2.300 centímetros equivale a 23 metros: ¿hay pterodáctilos vagando por Minnesota? Vamos a investigar. + +Aunque podrías hacer una ordenación rápida en Excel para encontrar esos valores atípicos, que probablemente sean errores tipográficos, continúa el proceso de visualización trabajando desde el gráfico. + +Añade etiquetas al eje x para mostrar qué tipo de aves hay en cuestión: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![envergadura con etiquetas](../images/max-wingspan-labels.png) + +Incluso con la rotación de las etiquetas ajustada a 45 grados, hay demasiado para leer. Vamos a probar una estrategia diferente: etiquetar sólo los valores atípicos y poner las etiquetas dentro del gráfico. Puedes utilizar un gráfico de dispersión para tener más espacio para el etiquetado: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` + +¿Qué está pasando aquí? Has utilizado `tick_params` para ocultar las etiquetas inferiores y luego has creado un bucle sobre tu conjunto de datos de aves. Al trazar el gráfico con pequeños puntos azules redondos utilizando `bo`, has comprobado si hay algún pájaro con una envergadura máxima superior a 500 y has mostrado su etiqueta junto al punto si es así. Desplazaste las etiquetas un poco en el eje Y (`y * (1 - 0.05)`) y utilizaste el nombre del ave como etiqueta. + +¿Qué descubrimos? + +![valores atípicos](../images/labeled-wingspan.png) +## Filtra tus datos + +Tanto el águila calva como el halcón de las praderas, aunque probablemente sean aves muy grandes, parecen estar mal etiquetadas, con un "0" adicional a su envergadura máxima. Es poco probable que te encuentres con un águila calva de 25 metros de envergadura, pero si es así, ¡háznoslo saber! Vamos a crear un nuevo marco de datos sin esos dos valores atípicos: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +Al filtrar los valores atípicos, sus datos son ahora más coherentes y comprensibles. + +![gráfico de dispersión de la envergadura](../images/scatterplot-wingspan.png) + +Ahora que tenemos un conjunto de datos más limpio, al menos en lo que respecta a la envergadura, vamos a descubrir más cosas sobre estas aves. + +Aunque los gráficos de líneas y de dispersión pueden mostrar información sobre los valores de los datos y sus distribuciones, queremos pensar en los valores inherentes a este conjunto de datos. Podrías crear visualizaciones para responder a las siguientes preguntas sobre la cantidad: + +> ¿Cuántas categorías de aves hay y cuál es su número? +> ¿Cuántas aves están extinguidas, en peligro de extinción, son raras o comunes? +> ¿Cuántos hay de los distintos géneros y tipos en la terminología de Linneo? +## Explorar los gráficos de barras + +Los gráficos de barras son prácticos cuando se necesita mostrar agrupaciones de datos. Exploremos las categorías de aves que existen en este conjunto de datos para ver cuál es la más común por número. + +En el archivo del cuaderno, crea un gráfico de barras básico + +✅ Nota, puedes filtrar las dos aves atípicas que identificamos en la sección anterior, editar la errata de su envergadura, o déjalas para estos ejercicios que no dependen de los valores de envergadura. + +Si desea crear un gráfico de barras, puede seleccionar los datos en los que desea centrarse. Los gráficos de barras se pueden crear a partir de datos sin procesar: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![datos completos en forma de gráfico de barras](../images/full-data-bar.png) + +Este gráfico de barras, sin embargo, es ilegible porque hay demasiados datos no agrupados. Necesitas seleccionar sólo los datos que quieres graficar, así que veamos la longitud de las aves según su categoría. + +Filtra tus datos para incluir sólo la categoría del pájaro. + +✅ Observa que usas Pandas para manejar los datos, y luego dejas que Matplotlib haga el gráfico. + +Como hay muchas categorías, puedes mostrar este gráfico verticalmente y ajustar su altura para tener en cuenta todos los datos: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![categoría y altura](../images/category-counts.png) + +Este gráfico de barras muestra una buena visión del número de aves en cada categoría. En un abrir y cerrar de ojos, se ve que el mayor número de aves de esta región se encuentra en la categoría de patos/gatos/aves acuáticas. Minnesota es el "país de los 10.000 lagos", así que no es de extrañar. + +✅ Prueba otros conteos en este conjunto de datos. ¿Le sorprende algo? + +## Comparación de datos + +Puedes probar diferentes comparaciones de datos agrupados creando nuevos ejes. Intenta una comparación de la longitud máxima de un pájaro, basada en su categoría: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![comparación de datos](../images/category-length.png) + +Aquí no hay nada sorprendente: los colibríes tienen la menor longitud máxima en comparación con los pelícanos o los gansos. ¡Es bueno cuando los datos tienen un sentido lógico! + +Puede crear visualizaciones más interesantes de los gráficos de barras superponiendo los datos. Superpongamos la longitud mínima y máxima en una categoría de aves determinada: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +En este gráfico, puedes ver el rango por categoría de ave de la longitud mínima y la longitud máxima. Se puede decir con seguridad que, dados estos datos, cuanto más grande es el ave, mayor es su rango de longitud. ¡Fascinante! + +![valores superpuestos](../images/superimposed.png) + +## 🚀 Desafío + +Este conjunto de datos sobre aves ofrece una gran cantidad de información sobre diferentes tipos de aves dentro de un ecosistema concreto. Busca en Internet y comprueba si puedes encontrar otros conjuntos de datos orientados a las aves. Practica la construcción de tablas y gráficos en torno a estas aves para descubrir datos que no conocías. + +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/17) + +## Repaso y Autoestudio + +Esta primera lección has recibido alguna información sobre cómo utilizar Matplotlib para visualizar cantidades. Investiga sobre otras formas de trabajar con conjuntos de datos para su visualización. [Plotly](https://github.com/plotly/plotly.py) es otra forma que no cubriremos en estas lecciones, así que echa un vistazo a lo que puede ofrecer. +## Asignación + +[Líneas, dispersiones y barras](assignment.es.md) \ No newline at end of file diff --git a/3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md b/3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md new file mode 100644 index 00000000..60fcb875 --- /dev/null +++ b/3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md @@ -0,0 +1,11 @@ +# Líneas, Scatters y Barras + +## Instrucciones + +En esta lección, has trabajado con gráficos de líneas, gráficos de dispersión y gráficos de barras para mostrar hechos interesantes sobre este conjunto de datos. En esta asignación, profundiza en el conjunto de datos para descubrir un hecho sobre un tipo de ave determinado. Por ejemplo, crea un cuaderno que visualice todos los datos interesantes que puedas descubrir sobre los gansos de nieve. Utiliza los tres gráficos mencionados anteriormente para contar una historia en tu cuaderno. + +## Rúbrica + +Ejemplar | Adecuado | Necesita mejorar +--- | --- | -- | +El cuaderno se presenta con buenas anotaciones, una narración sólida y gráficos atractivos | Al cuaderno le falta uno de estos elementos | Al cuaderno le faltan dos de estos elementos \ No newline at end of file diff --git a/3-Data-Visualization/translations/README.es.md b/3-Data-Visualization/translations/README.es.md index e69de29b..63386387 100644 --- a/3-Data-Visualization/translations/README.es.md +++ b/3-Data-Visualization/translations/README.es.md @@ -0,0 +1,27 @@ +# Visualizaciones + +![una abeja sobre una flor de lavanda](../images/bee.jpg) +> Foto por Jenna Lee en Unsplash + +Visualizar datos es una de las tareas más importantes de un científico de datos. Las imágenes valen más de 100 palabras, y una visualización puede ayudarte a identificar toda clase de partes interesantes de tus datos como picos, valores atípicos, agrupaciones, tendencias, y más, que pueden ayudarte a entender la historia que tus datos están tratando de contar.  + +En estas cinco lecciones, podrás explorar datos provenientes de la naturaleza y crear interesantes y hermosas visualizaciones usando varias técnicas. +### Tópicos + +1. [Visualización de cantidades](09-visualization-quantities/README.md) +2. [Visualización de la distribución](10-visualization-distributions/README.md) +3. [Visualización de proporciones](11-visualization-proportions/README.md) +4. [Visualización de relaciones](12-visualization-relationships/README.md) +5. [Hacer visualizaciones significativas](13-meaningful-visualizations/README.md) + +### Créditos + +Estas lecciones de visualización fueron escritas con 🌸 por [Jen Looper](https://twitter.com/jenlooper) + +🍯 Los datos sobre la producción de miel en EU provienen del proyecto de Jessica Li en [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). Los [datos](https://usda.library.cornell.edu/concern/publications/rn301137d) se han obtenido del [Departamento de Agricultura de los Estados Unidos](https://www.nass.usda.gov/About_NASS/index.php). + +🍄 Los datos sobre hongos también han sido obtenidos de [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) revisados por Hatteras Dunton. Este conjunto de datos incluye descripciones de muestras hipotéticas correspondientes a 23 especies de hongos con agallas de la familia Agaricus y Lepiota. Hongos extraídos de La Guía de Campo de la Sociedad Audubon para los Hongos de América del Norte (1981). Este conjunto de datos fue donado a UCI ML 27 en 1987. + +🦆 Los datos de las aves de Minnesota provienen de [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) extraídos de [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) por Hannah Collins. + +Todos estos conjuntos de datos tienen licencia [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). \ No newline at end of file From 84b8455c14dc235a754bce7589c09411b8d10574 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Thu, 21 Oct 2021 16:25:50 +0300 Subject: [PATCH 069/234] links improved --- translations/README.ru.md | 44 +++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/translations/README.ru.md b/translations/README.ru.md index 56aeb7cc..e293124c 100644 --- a/translations/README.ru.md +++ b/translations/README.ru.md @@ -18,7 +18,7 @@ |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../sketchnotes/00-Title.png)| |:---:| -| Data Science For Beginners - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| Наука о данных для начинающих - _Рисунок [@nitya](https://twitter.com/nitya)_ | # Начало работы @@ -60,31 +60,31 @@ |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../sketchnotes/00-Roadmap.png)| |:---:| -| Data Science For Beginners: Roadmap - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | +| Наука о данных: Дорожная карта - _Рисунок [@nitya](https://twitter.com/nitya)_ | | Номер урока | Тема | Раздел | Цели | Ссылка | Автор | | :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | -| 01 | Что такое наука о данных | [Введение](1-Introduction/README.md) | Изучить основные понятия науки о данных и её связь с искусственным интеллектом, машинным обучением и большими данными. | [урок](1-Introduction/01-defining-data-science/README.md) [видео](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | -| 02 | Этика и наука о данных | [Введение](1-Introduction/README.md) | Этические аспекты в области науки о данных. | [урок](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | -| 03 | Что такое данные | [Введение](1-Introduction/README.md) | Классификация данных и их источники. | [урок](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | -| 04 | Введение в статистику и теорию вероятности | [Введение](1-Introduction/README.md) | Вероятностные и статистические приёмы для изучения данных.| [урок](1-Introduction/04-stats-and-probability/README.md) [видео](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | -| 05 | Работа с реляционными данными | [Работа с данными](2-Working-With-Data/README.md) | Введение в реляционные данные, основы изучения и анализа реляционных данных при помощи структурированного языка запросов, также известного как SQL (произносится “си-квел”). | [урок](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | -| 06 | Работа с NoSQL данными | [Работа с данными](2-Working-With-Data/README.md) | Введение в нереляционные данные, их разнообразие и основы работы с документоориентированными базами данных. | [урок](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| -| 07 | Работа с языком программирования Python | [Работа с данными](2-Working-With-Data/README.md) | Основы использования языка Python при исследовании данных на примере библиотеки Pandas. Рекомендуется предварительно познакомиться с Python. | [урок](2-Working-With-Data/07-python/README.md) [видео](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | -| 08 | Подготовка данных | [Работа с данными](2-Working-With-Data/README.md) | Методы очистки и трансформации данных для работы с пропусками, ошибками и неполными данными. | [урок](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | -| 09 | Визуализация количественных данных | [Визуализация данных](3-Data-Visualization/README.md) | Использование библиотеки Matplotlib для визуализации данных о разнообразии птиц 🦆 | [урок](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | -| 10 | Визуализация распределения данных | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация наблюдений и трендов на временнóм интервале | [урок](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | -| 11 | Визуализация пропорций | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация дискретных и сгруппированных процентных соотношений. | [урок](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | -| 12 | Визуализация связей | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация связей и корреляций между наборами данных и их переменными. | [урок](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | -| 13 | Выразительная визуализация | [Визуализация данных](3-Data-Visualization/README.md) | Методы и инструкция для построения визуализации для эффективного решения проблем и получения инсайтов. | [урок](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | -| 14 | Введение в жизненный цикл проекта в области науки о данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Введение в жизненный цикл проекта в области науки о данных и его первый этап получения и извлечения данных. | [урок](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | -| 15 | Анализ данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сосредоточен на методах анализа данных. | [урок](4-Data-Science-Lifecycle/15-Analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | -| 16 | Взаимодействие на основе данных| [Жизненный цикл проекта](4-Data-Science-Lifecycle/README.md) | Данный этап жизненного цикла сфокусирован на презентацию инсайтов в данных в виде, легком для понимания лицам, принимающим решения. | [урок](4-Data-Science-Lifecycle/16-Communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | -| 17 | Преимущества облачной инфраструктуры для науки о данных. | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Данная серия уроков знакомит с применением облачных технологии в науке о данных и его преимуществах. | [урок](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | -| 18 | Наука о данных в облачной инфраструктуре: подходы с минимальным использованием программирования и без него. | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Обучение моделей с минимальным использованием программирования. |[урок](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | -| 19 | Наука о данных в облачной инфраструктуре: применение Azure ML SDK | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Развёртывание моделей с использованием Azure Machine Learning Studio. | [урок](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | -| 20 | Наука о данных на практике | [На практике](6-Data-Science-In-Wild/README.md) | Проекты в области науки о данных на практике. | [урок](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | +| 01 | Что такое наука о данных | [Введение](1-Introduction/translations/README.ru.md) | Изучить основные понятия науки о данных и её связь с искусственным интеллектом, машинным обучением и большими данными. | [урок](1-Introduction/01-defining-data-science/translations/README.ru.md) [видео](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| 02 | Этика и наука о данных | [Введение](1-Introduction/translations/README.ru.md) | Этические аспекты в области науки о данных. | [урок](1-Introduction/02-ethics/translations/README.ru.md) | [Nitya](https://twitter.com/nitya) | +| 03 | Что такое данные | [Введение](1-Introduction/translations/README.ru.md) | Классификация данных и их источники. | [урок](1-Introduction/03-defining-data/translations/README.ru.md) | [Jasmine](https://www.twitter.com/paladique) | +| 04 | Введение в статистику и теорию вероятности | [Введение](1-Introduction/translations/README.ru.md) | Вероятностные и статистические приёмы для изучения данных.| [урок](1-Introduction/04-stats-and-probability/translations/README.ru.md) [видео](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 05 | Работа с реляционными данными | [Работа с данными](2-Working-With-Data/translations/README.ru.md) | Введение в реляционные данные, основы изучения и анализа реляционных данных при помощи структурированного языка запросов, также известного как SQL (произносится “си-квел”). | [урок](2-Working-With-Data/05-relational-databases/translations/README.ru.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| 06 | Работа с NoSQL данными | [Работа с данными](2-Working-With-Data/translations/README.ru.md) | Введение в нереляционные данные, их разнообразие и основы работы с документоориентированными базами данных. | [урок](2-Working-With-Data/06-non-relational/translations/README.ru.md) | [Jasmine](https://twitter.com/paladique)| +| 07 | Работа с языком программирования Python | [Работа с данными](2-Working-With-Data/translations/README.ru.md) | Основы использования языка Python при исследовании данных на примере библиотеки Pandas. Рекомендуется предварительно познакомиться с Python. | [урок](2-Working-With-Data/07-python/translations/README.ru.md) [видео](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | Подготовка данных | [Работа с данными](2-Working-With-Data/translations/README.ru.md) | Методы очистки и трансформации данных для работы с пропусками, ошибками и неполными данными. | [урок](2-Working-With-Data/08-data-preparation/translations/README.ru.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | Визуализация количественных данных | [Визуализация данных](3-Data-Visualization/translations/README.ru.md) | Использование библиотеки Matplotlib для визуализации данных о разнообразии птиц 🦆 | [урок](3-Data-Visualization/09-visualization-quantities/translations/README.ru.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | Визуализация распределения данных | [Визуализация данных](3-Data-Visualization/translations/README.ru.md) | Визуализация наблюдений и трендов на временнóм интервале | [урок](3-Data-Visualization/10-visualization-distributions/translations/README.ru.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | Визуализация пропорций | [Визуализация данных](3-Data-Visualization/translations/README.ru.md) | Визуализация дискретных и сгруппированных процентных соотношений. | [урок](3-Data-Visualization/11-visualization-proportions/translations/README.ru.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | Визуализация связей | [Визуализация данных](3-Data-Visualization/translations/README.ru.md) | Визуализация связей и корреляций между наборами данных и их переменными. | [урок](3-Data-Visualization/12-visualization-relationships/translations/README.ru.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | Выразительная визуализация | [Визуализация данных](3-Data-Visualization/translations/README.ru.md) | Методы и инструкция для построения визуализации для эффективного решения проблем и получения инсайтов. | [урок](3-Data-Visualization/13-meaningful-visualizations/translations/README.ru.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | Введение в жизненный цикл проекта в области науки о данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/translations/README.ru.md) | Введение в жизненный цикл проекта в области науки о данных и его первый этап получения и извлечения данных. | [урок](4-Data-Science-Lifecycle/14-Introduction/translations/README.ru.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | Анализ данных | [Жизненный цикл проекта](4-Data-Science-Lifecycle/translations/README.ru.md) | Данный этап жизненного цикла сосредоточен на методах анализа данных. | [урок](4-Data-Science-Lifecycle/15-Analyzing/translations/README.ru.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | Взаимодействие на основе данных| [Жизненный цикл проекта](4-Data-Science-Lifecycle/translations/README.ru.md) | Данный этап жизненного цикла сфокусирован на презентацию инсайтов в данных в виде, легком для понимания лицам, принимающим решения. | [урок](4-Data-Science-Lifecycle/16-Communication/translations/README.ru.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | Преимущества облачной инфраструктуры для науки о данных. | [Облачные данные](5-Data-Science-In-Cloud/translations/README.ru.md) | Данная серия уроков знакомит с применением облачных технологии в науке о данных и его преимуществах. | [урок](5-Data-Science-In-Cloud/17-Introduction/translations/README.ru.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 18 | Наука о данных в облачной инфраструктуре: подходы с минимальным использованием программирования и без него. | [Облачные данные](5-Data-Science-In-Cloud/translations/README.ru.md) | Обучение моделей с минимальным использованием программирования. |[урок](5-Data-Science-In-Cloud/18-Low-Code/translations/README.ru.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 19 | Наука о данных в облачной инфраструктуре: применение Azure ML SDK | [Облачные данные](5-Data-Science-In-Cloud/translations/README.ru.md) | Развёртывание моделей с использованием Azure Machine Learning Studio. | [урок](5-Data-Science-In-Cloud/19-Azure/translations/README.ru.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 20 | Наука о данных на практике | [На практике](6-Data-Science-In-Wild/translations/README.ru.md) | Проекты в области науки о данных на практике. | [урок](6-Data-Science-In-Wild/20-Real-World-Examples/translations/README.ru.md) | [Nitya](https://twitter.com/nitya) | ## Оффлайн доступ From aaa36e6c56e2efc6bbd6e61e2cd9559f0e82c30d Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 21 Oct 2021 11:04:47 -0300 Subject: [PATCH 070/234] Translated the Defining Data Science Assignment to PT-BR --- .../translations/assignment.pt-br.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 1-Introduction/01-defining-data-science/translations/assignment.pt-br.md diff --git a/1-Introduction/01-defining-data-science/translations/assignment.pt-br.md b/1-Introduction/01-defining-data-science/translations/assignment.pt-br.md new file mode 100644 index 00000000..5d7754cd --- /dev/null +++ b/1-Introduction/01-defining-data-science/translations/assignment.pt-br.md @@ -0,0 +1,31 @@ +# Tarefa: Cenários de Ciência de Dados + +Nessa primeira tarefa, nós pedimos que você pense sobre algum processo ou problema da vida real em diferentes domínios de problemas, e como você pode melhorar isso usando o processo de Ciência de Dados: Pense sobre: + +1. Quais dados você pode coletar? +1. Como você coletaria os dados? +1. Como você armazenaria os dados? O quão grande os dados provavelmente são? +1. Quais insights você pode ter a partir desses dados? Quais decisões nós podemos fazer baseando-se nos dados? + +Tente pensar sobre 3 diferentes problemas/processos e descreva cada um dos pontos acimas para cada domínio de problemas. + +Aqui estão alguns dos domínio de problemas e problemas que podem te ajudar a começar a pensar: + +1. Como você usa dados para melhorar o processo de educação para crianças nas escolas? +1. Como você usa dados para controlar vacinação em uma pandemia? +1. Como você usa dados para garantir que você está sendo produtivo no trabalho? +## Instruções + +Preencha a seguinte tabela (substitua os domínios de problemas sugeridos pelos os seus próprios se necessário): + +| Domínio de Problema | Problema | Quais dados a serem coletados | Como armazenar os dados | Quais insights/decisões nós podemos fazer | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| Educação | | | | | +| Vacinação | | | | | +| Produtividade | | | | | + +## Rubrica + +Exemplar | Adequado | Precisa melhorar +--- | --- | -- | +Um foi capaz de identificar fontes de dados razoáveis, formas de armazenar dados e possíveis insights/decisões para todos os domínios de problema | Alguns dos aspectos da solução não estão detalhados, armazenamento de dados não é discutido, pelo menos 2 domínios de problemas são descritos | Apenas parte da solução de dados são descritas, apenas um domínio de problema é considerado. From 86e12ec646b9bbe84a0303a2e06736c9db46ab36 Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 21 Oct 2021 11:21:32 -0300 Subject: [PATCH 071/234] Translated Ethics Assignment to PT-BR --- .../translations/assignment.pt-br.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 1-Introduction/02-ethics/translations/assignment.pt-br.md diff --git a/1-Introduction/02-ethics/translations/assignment.pt-br.md b/1-Introduction/02-ethics/translations/assignment.pt-br.md new file mode 100644 index 00000000..7269aca9 --- /dev/null +++ b/1-Introduction/02-ethics/translations/assignment.pt-br.md @@ -0,0 +1,21 @@ +## Escreva um Caso de Estudo de Ética de Dados + +## Instruções + +Você aprendeu sobre vários [Desafios da Ética de Dados](README?id=_2-ethics-challenges) e viu alguns exemplos de [Estudo de Casos](README?id=_3-case-studies) refletindo desafios da ética de dados em contextos do mundo real. + +Nessa tarefa você irá escrever o seu próprio estudo de caso refletindo um desafio da ética de dados de seu própria experiência, ou de um contexto relevante do mundo real que você está familiarizado. Apenas siga esses passos: + +1. `Escolha um Desafio da Ética de Dados`. Olhe [os exemplos da aula](README?id=_2-ethics-challenges) ou explore exemplos onlines como [as Checklists da Deon](https://deon.drivendata.org/examples/) para se inspirar. + +2. `Descreva um Exemplo do Mundo Real`. Pense sobre a situação que você ouviu sobre (manchetes, pesquisas etc.) ou experienciou (comunidade local), onde esse desafio em específico aconteceu. Pense sobre as questões de ética de dados relacionadas ao desafio - e discuta os danos potenciais ou consequências não-ntencionais que são levantados por causa desse problema. Pontos bônus: pense sobre potenciais soluções ou precessos que podem ser aplicados aqui para ajuda a eliminar ou mitigar o impacto adverso desse desafio. + +3. `Forneça um Lista de Recursos Relacionados`. Compartilhe um ou mais recursos (links para artigos, posts ou imagens de blogs pessoais, artigos de pesquisa online etc.) para provar que isso acotnece no mundo real. Pontos bônus: compartilhe recursos que também mostrar potenciais danos e consequências de incidentes, ou destacam medidas positivas tomadas para prevenir sua recorrência. + + + +## Rubrica + +Exemplar | Adequado | Precisa melhorar +--- | --- | -- | +Um ou mais desafios de ética de dados são identificados.

O estudo de caso descreve claramente um incidente do mundo real refletindo aquele desafio, e destaca consequências não desejáveis ou danos que causou.

Existe pelo menos um recurso linkado para provar que isso aconteceu. |Um desafio da ética de dados é identificado.

Pelo menos um dano ou consequência relevante é discutido brevemete.

No entanto a discussão é limitada ou falta provas de uma ocorrência no mundo real. | Um desafio de dados é identificado.

No entanto a descrição ou recursos não refletem adequadamente o desafio ou provam que aconteceu no mundo real. | From cb45f5bf98def4349a5f676ec2b4c81075aa80ee Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 21 Oct 2021 11:33:59 -0300 Subject: [PATCH 072/234] Translated Defining Data Assignment to PT-BR --- .../translations/assignment.pt-br.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 1-Introduction/03-defining-data/translations/assignment.pt-br.md diff --git a/1-Introduction/03-defining-data/translations/assignment.pt-br.md b/1-Introduction/03-defining-data/translations/assignment.pt-br.md new file mode 100644 index 00000000..d3b3a131 --- /dev/null +++ b/1-Introduction/03-defining-data/translations/assignment.pt-br.md @@ -0,0 +1,65 @@ +# Classificando Datasets + +## Instruções + +Siga as instruções nessa tarefa para identificar e classificar os dados como um de cada dos seguintes tipos de dados: + +**Tipos de Estrutura**: Estruturado, Semi Estruturado, ou Não-Estruturado + +**Tipos de Valor**: Qualitativo ou Quantitativo + +**Tipos de Fonte**: Primária ou Secundária + +1. Uma empresa voi adquirida e agora tem uma empresa-mãe. Os cientistas de dados receberam uma planilha com números de telefones dos clientes da empresa-mãe. + +Tipo de Estrutura: + +Tipo de Valor: + +Tipo de Fonte: + +--- + +2. Um smart watch vem coletando dados da frequência cardíaca de seu usuário, e os dados brutos estão em formato JSON. + +Tipo de Estrutura: + +Tipo de Valor: + +Tipo de Fonte: + +--- + +Uma pesquisa sobre o moral do funcionário no local de trabalho armazenada em um arquivo CSV. + +Tipo de Estrutura: + +Tipo de Valor: + +Tipo de Fonte: + +--- + +4. Astrofísicos estão acessando um banco de dados de galáxias que foram coletados por uma sonda espacial. Os dados contém os números de planetas dentro de cada galáxia. + +Tipo de Estrutura: + +Tipo de Valor: + +Tipo de Fonte: + +--- + +5. Um aplicativo de finanças pessoas usa APIs para conectar com as contas financeiras dos usuários para calcular seu net worth. Eles podem ver todas as suas transações em um formato de linhas e colunas e são similares com uma planilha. + +Tipo de Estrutura: + +Tipo de Valor: + +Tipo de Fonte: + +## Rubrica + +Exemplar | Adequado | Precisa melhorar +--- | --- | -- | +Identificou corretamente todas as estruturas, valores, e fontes |Identificou corretamente 3 todas as estruturas, valores e fontes|Correctly Identificou 2 ou menos todas as estruturas, valores, e fontes| \ No newline at end of file From 668baa69bde4228682625366803c25437d2df6ae Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 21 Oct 2021 11:42:29 -0300 Subject: [PATCH 073/234] Translated Stats and Probability Assignment to PT-BR --- .../translations/assignment.pt-br.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 1-Introduction/04-stats-and-probability/translations/assignment.pt-br.md diff --git a/1-Introduction/04-stats-and-probability/translations/assignment.pt-br.md b/1-Introduction/04-stats-and-probability/translations/assignment.pt-br.md new file mode 100644 index 00000000..81a13b3d --- /dev/null +++ b/1-Introduction/04-stats-and-probability/translations/assignment.pt-br.md @@ -0,0 +1,25 @@ +# Pequeno Estudo de Diabetes + +Nessa tarefa, nós vamos trabalhar com um pequeno dataset de diabetes em pacientes retirados [daqui](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html). + +| | AGE | SEX | BMI | BP | S1 | S2 | S3 | S4 | S5 | S6 | Y | +|---|-----|-----|-----|----|----|----|----|----|----|----|----| +| 0 | 59 | 2 | 32.1 | 101. | 157 | 93.2 | 38.0 | 4. | 4.8598 | 87 | 151 | +| 1 | 48 | 1 | 21.6 | 87.0 | 183 | 103.2 | 70. | 3. | 3.8918 | 69 | 75 | +| 2 | 72 | 2 | 30.5 | 93.0 | 156 | 93.6 | 41.0 | 4.0 | 4. | 85 | 141 | +| ... | ... | ... | ... | ...| ...| ...| ...| ...| ...| ...| ... | + +## Instruções + +* Abre o [notebook da tarefa](assignment.ipynb) em um ambiente jupyter notebook +* Complete todas as tarefas listadas no notebook, nomeadamente: + [ ] Compute os valores de média e variância para todos os valores + [ ] "Plote" boxplots para BMI, BP e Y dependendo do gênero + [ ] Qual a distribuição das variáveis Age, Sex, BMI e Y? + [ ] Teste a correlação entre diferentes variáveis e progressão da doença (Y) + [ ] Teste a hipótese que o grau de progressão da diabetes é diferente entre homens e mulheres +## Rubrica + +Exemplar | Adequado | Precisa melhorar +--- | --- | -- | +Todas as tarefas estão completados, graficamente ilustradas e explicadas | A maior para das tarefas estão completadas, explicações ou conclusões a partir de gráficos e/ou valores obtidos estão faltando | Apenas as tarefas básicas como computar a média/variância e "plots" básicos estão completados, nenhuma conclusão é feita a partir dos dados dados. \ No newline at end of file From f19acb8cb0d4f78a26960d9f16acedd4211ab5e7 Mon Sep 17 00:00:00 2001 From: Izael Date: Thu, 21 Oct 2021 11:49:50 -0300 Subject: [PATCH 074/234] Fixed broken links on the translated files --- .../01-defining-data-science/translations/README.pt-br.md | 2 +- .../translations/{RAEDME.pt-br.md => README.pt-br.md} | 2 +- 1-Introduction/02-ethics/translations/assignment.pt-br.md | 4 ++-- 1-Introduction/03-defining-data/translations/README.pt-br.md | 2 +- .../04-stats-and-probability/translations/README.pt-br.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename 1-Introduction/02-ethics/translations/{RAEDME.pt-br.md => README.pt-br.md} (99%) diff --git a/1-Introduction/01-defining-data-science/translations/README.pt-br.md b/1-Introduction/01-defining-data-science/translations/README.pt-br.md index 3597fe3a..4b2708c4 100644 --- a/1-Introduction/01-defining-data-science/translations/README.pt-br.md +++ b/1-Introduction/01-defining-data-science/translations/README.pt-br.md @@ -158,7 +158,7 @@ Visite [`notebook.ipynb`](../notebook.ipynb) para ler o código. Você também p ## Tarefas * **Tarefa 1**: Modifique o código acima para descobrir conceitos relacionados para as áreas de **Big Data** e **Aprendizado de Máquina** -* **Tarefa 2**: [Pense Sobre Cenários de Ciência de Dados](assignment.md) +* **Tarefa 2**: [Pense Sobre Cenários de Ciência de Dados](assignment.pt-br.md) ## Créditos diff --git a/1-Introduction/02-ethics/translations/RAEDME.pt-br.md b/1-Introduction/02-ethics/translations/README.pt-br.md similarity index 99% rename from 1-Introduction/02-ethics/translations/RAEDME.pt-br.md rename to 1-Introduction/02-ethics/translations/README.pt-br.md index 08bf7e54..4c6be792 100644 --- a/1-Introduction/02-ethics/translations/RAEDME.pt-br.md +++ b/1-Introduction/02-ethics/translations/README.pt-br.md @@ -259,4 +259,4 @@ Cursos e livros ajudam a entender os conceitos essencias da ética, enquanto est # Tarefa -[Escreva um Caso de Uso de Ética de Dados](assignment.md) +[Escreva um Caso de Uso de Ética de Dados](assignment.pt-br.md) diff --git a/1-Introduction/02-ethics/translations/assignment.pt-br.md b/1-Introduction/02-ethics/translations/assignment.pt-br.md index 7269aca9..7edc76c7 100644 --- a/1-Introduction/02-ethics/translations/assignment.pt-br.md +++ b/1-Introduction/02-ethics/translations/assignment.pt-br.md @@ -2,11 +2,11 @@ ## Instruções -Você aprendeu sobre vários [Desafios da Ética de Dados](README?id=_2-ethics-challenges) e viu alguns exemplos de [Estudo de Casos](README?id=_3-case-studies) refletindo desafios da ética de dados em contextos do mundo real. +Você aprendeu sobre vários [Desafios da Ética de Dados](README.pt-br.md#2-desafios-de-ética) e viu alguns exemplos de [Estudo de Casos](README.pt-br.md#3-estudo-de-casos) refletindo desafios da ética de dados em contextos do mundo real. Nessa tarefa você irá escrever o seu próprio estudo de caso refletindo um desafio da ética de dados de seu própria experiência, ou de um contexto relevante do mundo real que você está familiarizado. Apenas siga esses passos: -1. `Escolha um Desafio da Ética de Dados`. Olhe [os exemplos da aula](README?id=_2-ethics-challenges) ou explore exemplos onlines como [as Checklists da Deon](https://deon.drivendata.org/examples/) para se inspirar. +1. `Escolha um Desafio da Ética de Dados`. Olhe [os exemplos da aula](README.pt-br.md#2-desafios-de-ética) ou explore exemplos onlines como [as Checklists da Deon](https://deon.drivendata.org/examples/) para se inspirar. 2. `Descreva um Exemplo do Mundo Real`. Pense sobre a situação que você ouviu sobre (manchetes, pesquisas etc.) ou experienciou (comunidade local), onde esse desafio em específico aconteceu. Pense sobre as questões de ética de dados relacionadas ao desafio - e discuta os danos potenciais ou consequências não-ntencionais que são levantados por causa desse problema. Pontos bônus: pense sobre potenciais soluções ou precessos que podem ser aplicados aqui para ajuda a eliminar ou mitigar o impacto adverso desse desafio. diff --git a/1-Introduction/03-defining-data/translations/README.pt-br.md b/1-Introduction/03-defining-data/translations/README.pt-br.md index 2dcb205d..44ec6c03 100644 --- a/1-Introduction/03-defining-data/translations/README.pt-br.md +++ b/1-Introduction/03-defining-data/translations/README.pt-br.md @@ -64,4 +64,4 @@ O Kaggle é uma excelente fonte para datasets abertos. Use a [ferramenta de busc ## Tarefa -[Classificando Datasets](assignment.md) +[Classificando Datasets](assignment.pt-br.md) diff --git a/1-Introduction/04-stats-and-probability/translations/README.pt-br.md b/1-Introduction/04-stats-and-probability/translations/README.pt-br.md index 348fb09c..4ac6139d 100644 --- a/1-Introduction/04-stats-and-probability/translations/README.pt-br.md +++ b/1-Introduction/04-stats-and-probability/translations/README.pt-br.md @@ -254,7 +254,7 @@ Probabilidade e estatística é um tópico muito amplo que merece um curso próp ## Tarefa -[Small Diabetes Study (Pequeno Estudo de Diabetes)](../assignment.md) +[Small Diabetes Study (Pequeno Estudo de Diabetes)](assignment.pt-br.md) ## Créditos From 3a387be370bd5b7957309038eeaa3dec337fd242 Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Fri, 22 Oct 2021 11:12:31 +0530 Subject: [PATCH 075/234] Created assignment.hi.md --- .../translations/assignment.hi.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.hi.md diff --git a/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.hi.md b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.hi.md new file mode 100644 index 00000000..6c99ba47 --- /dev/null +++ b/6-Data-Science-In-Wild/20-Real-World-Examples/translations/assignment.hi.md @@ -0,0 +1,38 @@ +# ग्रहीय कंप्यूटर डेटासेट का अन्वेषण करें + +## निर्देश + +इस पाठ में, हमने विभिन्न डेटा विज्ञान अनुप्रयोग डोमेन के बारे में बात की - अनुसंधान, स्थिरता और डिजिटल मानविकी से संबंधित उदाहरणों में गहन गोता लगाने के साथ। इस असाइनमेंट में, आप इनमें से किसी एक उदाहरण का अधिक विस्तार से अन्वेषण करेंगे, और स्थिरता डेटा के बारे में अंतर्दृष्टि प्राप्त करने के लिए डेटा विज़ुअलाइज़ेशन और विश्लेषण के आसपास अपनी कुछ सीखों को लागू करेंगे। + +[प्लैनेटरी कंप्यूटर](https://planetarycomputer.microsoft.com/) प्रोजेक्ट में डेटासेट और एपीआई हैं जिन्हें किसी खाते से एक्सेस किया जा सकता है - यदि आप असाइनमेंट के बोनस चरण को आज़माना चाहते हैं तो एक्सेस के लिए अनुरोध करें। साइट एक [एक्सप्लोरर](https://planetarycomputer.microsoft.com/explore) सुविधा भी प्रदान करती है जिसका उपयोग आप बिना खाता बनाए भी कर सकते हैं। + + +`कदम:` +एक्सप्लोरर इंटरफ़ेस (नीचे स्क्रीनशॉट में दिखाया गया है) आपको एक डेटासेट (प्रदान किए गए विकल्पों में से), एक प्रीसेट क्वेरी (डेटा फ़िल्टर करने के लिए) और एक रेंडरिंग विकल्प (एक प्रासंगिक विज़ुअलाइज़ेशन बनाने के लिए) का चयन करने देता है। इस असाइनमेंट में, आपका कार्य है: + + 1. [एक्सप्लोरर दस्तावेज़ीकरण] (https://planetarycomputer.microsoft.com/docs/overview/explorer/) पढ़ें - विकल्पों को समझें। + 2. डेटासेट को एक्सप्लोर करें [कैटलॉग](https://planetarycomputer.microsoft.com/catalog) - प्रत्येक का उद्देश्य जानें। + 3. एक्सप्लोरर का उपयोग करें - रुचि का डेटासेट चुनें, प्रासंगिक क्वेरी और रेंडरिंग विकल्प चुनें। + + +![प्लैनेटरी कंप्यूटर एक्सप्लोरर](इमेज/प्लैनेटरी-कंप्यूटर-एक्सप्लोरर.पीएनजी) + +`आपका कार्य:` +अब उस विज़ुअलाइज़ेशन का अध्ययन करें जो ब्राउज़र में प्रस्तुत किया गया है और निम्नलिखित का उत्तर दें: + * डेटासेट में क्या _features_ हैं? + * विज़ुअलाइज़ेशन क्या _insights_ या परिणाम प्रदान करता है? + * परियोजना के स्थायित्व लक्ष्यों के लिए उन अंतर्दृष्टि के _प्रभाव_ क्या हैं? + * विज़ुअलाइज़ेशन की _सीमाएँ_ क्या हैं (यानी, आपको कौन सी अंतर्दृष्टि नहीं मिली?) + * यदि आप कच्चा डेटा प्राप्त कर सकते हैं, तो आप कौन से _वैकल्पिक विज़ुअलाइज़ेशन_ बनाएंगे, और क्यों? + +`बोनस अंक:` +एक खाते के लिए आवेदन करें - और स्वीकार किए जाने पर लॉगिन करें। + * नोटबुक में अपरिष्कृत डेटा खोलने के लिए _Launch Hub_ विकल्प का उपयोग करें। + * डेटा को अंतःक्रियात्मक रूप से एक्सप्लोर करें, और उन वैकल्पिक विज़ुअलाइज़ेशन को लागू करें जिनके बारे में आपने सोचा था। + * अब अपने कस्टम विज़ुअलाइज़ेशन का विश्लेषण करें - क्या आप उन जानकारियों को प्राप्त करने में सक्षम थे जिन्हें आपने पहले याद किया था? + +## रूब्रिक + +अनुकरणीय | पर्याप्त | सुधार की जरूरत +--- | --- | -- | +सभी पांच मुख्य सवालों के जवाब दिए गए। छात्र ने स्पष्ट रूप से पहचाना कि कैसे वर्तमान और वैकल्पिक विज़ुअलाइज़ेशन स्थिरता के उद्देश्यों या परिणामों में अंतर्दृष्टि प्रदान कर सकते हैं।| छात्र ने कम से कम शीर्ष 3 प्रश्नों के उत्तर बहुत विस्तार से दिए, यह दिखाते हुए कि एक्सप्लोरर के साथ व्यावहारिक अनुभव था। | छात्र कई प्रश्नों का उत्तर देने में विफल रहा, या अपर्याप्त विवरण प्रदान किया - यह दर्शाता है कि परियोजना के लिए कोई सार्थक प्रयास नहीं किया गया था | From bce79b438dc2c37b62ba0103c53dfecb58c48a77 Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Fri, 22 Oct 2021 11:28:11 +0530 Subject: [PATCH 076/234] created assignment.hi.md --- .../translations/assignment.hi.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 4-Data-Science-Lifecycle/15-analyzing/translations/assignment.hi.md diff --git a/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.hi.md b/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.hi.md new file mode 100644 index 00000000..6380ca58 --- /dev/null +++ b/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.hi.md @@ -0,0 +1,24 @@ +# जवाब की तलाश + +यह पिछले पाठ के [असाइनमेंट](..\14-Introduction\assignment.md) की निरंतरता है, जहां हमने संक्षेप में डेटा सेट पर एक नज़र डाली। अब हम आंकड़ों पर गहराई से विचार करेंगे। + +फिर से, वह प्रश्न जो ग्राहक जानना चाहता है: **क्या न्यूयॉर्क शहर में पीली टैक्सी के यात्री सर्दियों या गर्मियों में ड्राइवरों को अधिक टिप देते हैं?** + +आपकी टीम डेटा विज्ञान जीवनचक्र के [विश्लेषण] (Readme.md) चरण में है, जहां आप डेटासेट पर खोजपूर्ण डेटा विश्लेषण करने के लिए जिम्मेदार हैं। आपको एक नोटबुक और डेटासेट प्रदान किया गया है जिसमें जनवरी और जुलाई 2019 से 200 टैक्सी लेनदेन शामिल हैं। + +## निर्देश + +इस निर्देशिका में एक [नोटबुक](असाइनमेंट.आईपीएनबी) और [टैक्सी और लिमोसिन कमीशन] का डेटा है(https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi- Yellow? tabs=azureml-opendatasets)। [डेटासेट डिक्शनरी] (https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_ Yellow.pdf) और [उपयोगकर्ता गाइड](https://www1.nyc.gov/assets/tlc/) का संदर्भ लें। डाउनलोड/पीडीएफ/trip_record_user_guide.pdf) डेटा के बारे में अधिक जानकारी के लिए। + + +इस पाठ की कुछ तकनीकों का उपयोग नोटबुक में अपना स्वयं का EDA करने के लिए करें (यदि आप चाहें तो सेल जोड़ें) और निम्नलिखित प्रश्नों के उत्तर दें: + +- डेटा में अन्य कौन से प्रभाव टिप राशि को प्रभावित कर सकते हैं? +- क्लाइंट के सवालों के जवाब देने के लिए किन कॉलमों की सबसे ज्यादा जरूरत नहीं होगी? +- अब तक जो प्रदान किया गया है, उसके आधार पर, क्या डेटा मौसमी टिपिंग व्यवहार का कोई सबूत प्रदान करता है? + + +## रूब्रिक + +अनुकरणीय | पर्याप्त | सुधार की जरूरत +--- | --- | -- | From 32c1271dcda744b2eebfd061372e11f26b02798b Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Fri, 22 Oct 2021 11:41:07 +0530 Subject: [PATCH 077/234] created assignment.hi.md --- .../19-Azure/translations/assignment.hi.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 5-Data-Science-In-Cloud/19-Azure/translations/assignment.hi.md diff --git a/5-Data-Science-In-Cloud/19-Azure/translations/assignment.hi.md b/5-Data-Science-In-Cloud/19-Azure/translations/assignment.hi.md new file mode 100644 index 00000000..cdbcc11c --- /dev/null +++ b/5-Data-Science-In-Cloud/19-Azure/translations/assignment.hi.md @@ -0,0 +1,11 @@ +# Azure ML SDK का उपयोग करके डेटा विज्ञान परियोजना + +## निर्देश + +हमने देखा कि एज़्योर एमएल एसडीके के साथ एक मॉडल को प्रशिक्षित करने, तैनात करने और उपभोग करने के लिए एज़्योर एमएल प्लेटफॉर्म का उपयोग कैसे किया जाता है। अब कुछ डेटा के लिए चारों ओर देखें, जिसका उपयोग आप किसी अन्य मॉडल को प्रशिक्षित करने, उसे परिनियोजित करने और उसका उपभोग करने के लिए कर सकते हैं। आप [कागल](https://kaggle.com) और [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-40229 पर डेटासेट ढूंढ सकते हैं। -cxa&ocid=AID3041109)। + +## रूब्रिक + +| अनुकरणीय | पर्याप्त | सुधार की जरूरत | +|-----------|----------|---------------------| +|ऑटोएमएल कॉन्फ़िगरेशन करते समय, आपने यह देखने के लिए कि आप किन मापदंडों का उपयोग कर सकते हैं, एसडीके दस्तावेज़ीकरण को देखा। आपने Azure ML SDK का उपयोग करके AutoML के माध्यम से डेटासेट पर एक प्रशिक्षण चलाया, और आपने मॉडल स्पष्टीकरण की जाँच की। आपने सबसे अच्छा मॉडल तैनात किया और आप Azure ML SDK के माध्यम से इसका उपभोग करने में सक्षम थे। | आपने Azure ML SDK का उपयोग करके AutoML के माध्यम से डेटासेट पर एक प्रशिक्षण चलाया, और आपने मॉडल स्पष्टीकरण की जाँच की। आपने सबसे अच्छा मॉडल तैनात किया और आप Azure ML SDK के माध्यम से इसका उपभोग करने में सक्षम थे। | आपने Azure ML SDK का उपयोग करके AutoML के माध्यम से डेटासेट पर एक प्रशिक्षण चलाया। आपने सबसे अच्छा मॉडल तैनात किया और आप Azure ML SDK के माध्यम से इसका उपभोग करने में सक्षम थे। | From 8544f2ba8eecf3eb3710df0bc86397721c345469 Mon Sep 17 00:00:00 2001 From: Heril Changwal Date: Fri, 22 Oct 2021 13:36:21 +0530 Subject: [PATCH 078/234] Added Hindi Translation --- 6-Data-Science-In-Wild/README.hi.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 6-Data-Science-In-Wild/README.hi.md diff --git a/6-Data-Science-In-Wild/README.hi.md b/6-Data-Science-In-Wild/README.hi.md new file mode 100644 index 00000000..423cf0b1 --- /dev/null +++ b/6-Data-Science-In-Wild/README.hi.md @@ -0,0 +1,11 @@ +# जंगली प्रारूप में डेटा विज्ञान + +उद्योगों में डेटा विज्ञान के वास्तविक दुनिया के अनुप्रयोग। + +### विषय + +1. [वास्तविक दुनिया में डेटा विज्ञान] (20-Real-World-Examples/README.md) + +### क्रेडिट + +[नित्या नरसिम्हन] द्वारा ❤️ के साथ लिखा गया (https://twitter.com/nitya) \ No newline at end of file From 7118e64b541e70155ec8ba26270e647df89a020d Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Fri, 22 Oct 2021 12:12:13 +0300 Subject: [PATCH 079/234] 1-1 readme translation added --- .../translations/README.ru.md | 177 ++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 1-Introduction/01-defining-data-science/translations/README.ru.md diff --git a/1-Introduction/01-defining-data-science/translations/README.ru.md b/1-Introduction/01-defining-data-science/translations/README.ru.md new file mode 100644 index 00000000..916871ec --- /dev/null +++ b/1-Introduction/01-defining-data-science/translations/README.ru.md @@ -0,0 +1,177 @@ +# Что такое наука о данных? + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/01-Definitions.png)| +|:---:| +|Что такое наука о данных - _Рисунок [@nitya](https://twitter.com/nitya)_ | + +--- + +[![Defining Data Science Video](../images/video-def-ds.png)](https://youtu.be/beZ7Mb_oz9I) + +## [Вступительный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) + +## Что такое данные? +В повседневной жизни мы окружены данными. Текст, который Вы в данный момент читаете, является данными, список номеров телефонов друзей в Вашем смартфоне является данными, также как и время на Ваших часах. Люди умеют оперировать даными естественным образом, считая деньги, которые у нас есть, или составляя письма нашим друзьям. + +Однако данные стали намного более важными с изобретением компьютеров. Главная роль компьютеров заключается в вычислениях, но им нужны данные, над которыми их производить. Таким образом, нам необходимо понимать, как компьютеры хранят и обрабатывают информацию. + +С появлением Интернета роль компьютеров как вычислительных устройств возрасла. Если задуматься, сейчас мы всё больше используем компьютеры для обработки данных и коммуникации, чем непосредственно для вычислений. Когда пишем электронное письмо другу или ищем что-то в Интернете, мы, в действительности, создаём, храним, передаём и управляем данными. + +>Можете ли Вы припомнить, когда последний раз использовали компьютер, чтобы что-то посчитать? + +## Что такое наука о данных? + +В [Википедии](https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%83%D0%BA%D0%B0_%D0%BE_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85), **Наука о данных** определяется как *научная область, использующая научные методы для извлечения знаний и инсайтов из структурированных и неструктурированных данных и для применения их в широком спектре приложений.* + +Данное определение подчеркивает следующие важные аспекты науки о данных: + +* Главная цель науки о данных - **извлечение знаний** из данных, другими словами, - **понимание** данных, нахождение скрытых взаимосвязей и построение **модели**. +* Наука о данных использует **научные методы**, заимствованные из теории вероятности и статистики. Когда термин "наука о данных" был впервые введён, некоторые специалисты заявляли, что наука о данных - это просто новое модное название статистики. Сегодня уже стало очевидно, что данная область гораздо шире. +* Полученные знания должны быть использованы для получения **практических инсайтов**. +* Мы должны уметь оперировать как **структурированными** так и **неструктурированными данными**. Мы вернёмся к обсуждению различных типов данных далее в нашем курсе. +* **Область применения** - важное понятие, и специалисту в науке о данных часто необходима экспертиза в предметной области. + +> Другой важный аспект науки о данных заключается в том, что она исследует, как данные должны быть собраны, сохранены и обработаны с использованием компьютеров. В то время как статистика предоставляет нам математические основы, наука о данных применяет математические знания для того, чтобы извечь инсайты из данных. + +Одним из способов (приписываемым [Джиму Грею](https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B5%D0%B9,_%D0%94%D0%B6%D0%B8%D0%BC)) взглянуть на науку о данных является рассмотрение её как отдельных научных парадигм: + +* Эмпирической, следуя которой мы полагаемся в большей степени на наблюдения и результаты экспериментов. +* Теоретической, в которой новые концепции появляются из уже существующих научных знаний. +* Вычислительной, в которой мы открываем новые принципы, основанные на вычислительных экспериментах. +* Парадигмой на основе данных (data-driven), которая основывается на исследовании взаимосвязей и паттернов в данных. + +## Другие смежные области + +Так как данные - это всепроникающая концепция, наука о данных сама по себе также является широкой областью, пересекающаяся с другими дисциплинами. + +
+
Базы данных
+
+ +Самым очевидным вопросом является "как хранить" данные, т.е. как организовать их так, чтобы обеспечить более быструю обработку. Существуют различные типы баз данных, позволяющие хранить структурированные и неструктурированные данные, которые мы рассмотрим далее в нашем курсе. +
+
Область больших данных
+
+ +Зачастую нам необходимо хранить и обрабатывать по-настоящему огромное количество данных с относительно простой структурой. Для этого существуют специальные подходы и методы хранения и эффективной обработки таких данных распределённым способом на вычислительном кластере. +
+
Машинное обучение
+
+ +Одним из способов понять данные это **построить модель**, способную предсказывать желаемую величину. Способность обучать подобные модели на данных изучается в **машинном обучении**. При желании Вы можете взглянуть на наш курс "Машинное обучение для начинающих", чтобы погрузиться глубже в данную область. +
+
Искусственный интеллект
+
+ +Также как и машинное обучение, искусственный интеллект строится на данных и включает в себя построение сложных комплексных моделей, которые ведут себя подобно человеку. В дополнение, методы ИИ часто позволяют нам трансформировать неструктурированные данные (например, естественную речь) в структурированные при помощи извлечения некоторых признаков. +
+
Визуализация
+
+ +Человек способен воспринимать ограниченное количество данных, но с построением полезной визуализации мы начинаем извлекать больше смысла из данных и строить различные выводы. Таким образом, важно знать несколько способов визуализации информации, те, что мы изучим в Секции 3 нашего курса. Смежными областями здесь также являются **Инфографика** и **Человеко-машинное взаимодействие** в целом. +
+
+ +## Типы данных + +Как мы уже упоминали, данные находятся повсюду, нам нужно просто правильно их собрать. Различают **структурированные** и **неструктурированные** данные. Первые часто представлены в чётко структурированном виде, зачастую в виде одной или нескольких таблиц, в то время как вторые являются простым набором файлов. Иногда мы можем выделить **полуструктурированнные** данные, которые имеют некоторую каждый раз различную структуру. + +| Структурированные | Полуструктурированные | Неструктурированные | +|----------- |-----------------|--------------| +| Список людей и их номеров телефона | Страницы Wikipedia с ссылками | Тексты энциклопедии Britannica | +| Поминутная температура во всех помещениях здания за последние 20 лет | Коллекция научных статей в формате JSON с указанием авторов, даты публикации и краткого описания | Корпоративные документы общего доступа | +| Возраст и пол каждого входящего в здание человека | Страницы сети Интернет | Необработанный видеопоток с камеры наблюдения | + +## Источники данных + +Существует множество возможных источников данных и невозможно перечислить их все. Однако, давайте рассмотрим несколько мест, где можно добыть данные: + +* **Структурированные данные** + - **Интернет вещей**, включающий в себя данные с различных датчиков, например, датчиков температуры или давления, содержит много полезных данных. В случае, если офисное помещение оборудовано датчиками с поддержкой Интернета вещей, то мы можем автоматически управлять отоплением и освещением, чтобы минимизировать затраты. + - **Опросы**, в которых участвуют пользователи после покупки товара или посещения сайта. + - **Анализ поведения**, например, может помочь понять, насколько далеко пользователь заходит на сайте и какие основные причины ухода с него. +* **Неструктурированные данные** + - **Тексты** могут быть богатым источником инсайтов, начиная от общей **эмоциональной оценки** вплоть до извлечения ключевых слов и даже семантического значения. + - **Изображения** или **видео**. Видео с камеры наблюдения может быть использовано для оценки загруженности дорог и информирования о возможных пробках. + - **Логи** веб-сервисов могут быть использованы для того, чтобы понять, какие страницы нашего сайта посещают больше всего и насколько долго задерживаются на них. +* **Полуструктурированные данные** + - Граф **социальной сети** может быть отличным источником данных о личности пользователя и возможной эффективности распространения информации рядом с ним. + - В случае, когда у нас имеется пачка фотографий с вечеринки, мы можем попытаться извлечь данные **групповой динамики**, построив граф людей, фотографировавшихся друг с другом. + +Зная различные возможные источники данных, Вы можете придумать другие сценарии, когда методы науки о данных могут быть применены наилучшим образом для усовершенствования бизнес-процессов. + +## Этапы работы с данными + +В науке о данных мы фокусируемся на следующих шагах работы с данными: + +
+
1) Сбор данных
+
+Первый шаг - это сбор данных. Часто, это довольно примитивный процесс, например данные сохраняются в базу данных из веб-приложения, но иногда нам необходимые специальные методы. В случае данных с датчиков Интернета вещей, данных может оказаться слишком много, и хорошая практика использовать промежуточные точки, такие как хаб Интернета вещей, для сбора всех данных и последующей обработки. + +
+
2) Хранение данных
+
+Хранение данных может быть непростой задачей, особенно когда мы говорим о больших данных. Принимая решение хранить данные, стоит продумать их дальнейшее использование. Вот некоторые из способов хранения данных: +
    +
  • Реляционные базы данных хранят коллекцию таблиц и используют специальный язык запросов SQL. Обычно, таблицы соединены друг с другом по определённой схеме. Очень часто нам необходимо преобразовать данные, чтобы они подходили под схему. +
  • +
  • Нереляционные (NoSQL) базы данных, такие как CosmosDB, не навязывают строгую модель данных и позволяют хранить более сложные данные, например иерархические JSON документы или графы. С другой стороны, нереляционные базы данных не имеют широких возможностей языка SQL и не гарантируют ссылочной целостности данных. +
  • +
  • Озеро данных - хранилище, используемое для больших коллекций "сырых" данных. Озёра данных часто встречаются в больших данных, когда все данные не помещаются в память одного компьютера и их необходимо хранить и обрабатывать вычислительным кластером. Parquet - формат данных, часто применяемый в связке с большими данными. +
  • +
+
+
3) Обработка данных
+
+ +Это наиболее увлекательная часть работы с данными, которая включает в себя обработку данных из их оригинального формата в формат, пригодный для визуализации и/или обучения модели. Имея дело с неструктурированными данными, мы, возможно, вынуждены применять некоторые методы ИИ для извлечения **признаков** из данных, конвертируя их, таким образом, в структурированный формат. + +
+
4) Визуализация / Визуальный анализ
+
+Зачастую, чтобы понять данные, нам необходимо их визуализировать. Имея множество различных методов визуализации, мы можем найти нужный для получения инсайта. Нередко, специалистам по данным необходимо "играть данными", визуализируя их несколько раз в поисках взаимосвязей. Мы также можем использовать статистические методы для проверки гипотез или для доказательства наличия корреляции между двумя наборами данных. +
+
5) Тренировка прогнозной модели
+
+Из-за того, что главная цель науки о данных - предоставить возможность принятия решения на основе данных, мы можем использовать методы машинного обучения для построения прогнозной модели, которая будет способна решить нашу задачу. +
+
+ +Разумеется, в зависимости от реальных данных некоторые шаги могут отсутствовать (например, в случае, когда наши данные уже лежат в базе данных или когда нам не нужно тренировать модель) или могут повторяться несколько раз (например, обработка данных). + +## Цифровизация и цифровая трансформация + +В последнее десятилетие, многие компании начали понимать важность данных при принятии решений. Чтобы применить науку о данных к бизнесу, необходимо собрать некоторые данные, т.е. преобразовать бизнес-процессы в цифровой формат. Этот процесс известен как **цифровизация** и сопровождается методами науки о данных для принятия решений. Зачастую, цифровизация ведёт к значительному увеличению продуктивности (и даже смене курса компании), называемому **цифровой трансформацией**. + +Рассмотрим пример. Предположим, у нас есть учебный курс по науке о данных (похожий на данный), который мы предоставляем нашим студентам в режиме онлайн, и мы хотим использовать методы науки о данных чтобы улучшить его. Как мы можем это сделать? + +Мы можем начать с вопроса "что может быть оцифровано"? Наиболее простой подход - измерить время, затрачиваемое студентами на прохождение каждого модуля, и полученные знания (например, организовав проверочный тест с несколькими вариантами ответов в конце каждого модуля). Усредняя время на завершение модуля по всем студентам, мы можем определить, какие модули курса вызывают наибольшие затруднения среди студентов, и поработать над их упрощением. + +> Вы, может быть, возразите, что данный подход не идеален, потому что разделы могут быть различной длины. Вероятно, наиболее справедливым будет разделить затраченное время на длину модуля (количество символов), и сравнить полученные величины. + +Когда мы приступаем к анализу результатов проверочных тестов, мы можем распознать отдельные понятия, которые студенты воспринимают плохо, и улучшить материал. Чтобы сделать это, нам необходимо спроектировать тесты таким образом, чтобы каждый вопрос покрывал определённое понятие или небольшую часть урока. + +Если же мы хотим усложнить задачу, мы можем построить график времени, затраченного на каждый модуль, и отметить возраст студентов. Мы можем узнать, что для некоторых возрастных категорий прохождение одного модуля занимает непозволительно много времени, или студенты бросают курс на каком-либо этапе. Это поможет нам предоставить возрастные рекомендации для модулей и минимизировать неудовлетворённость студентов от несоответствия их ожиданиям. + +## 🚀 Задача + +При решении данной задачи мы попробуем найти понятия, относящиеся к науке о данных, рассматривая тексты. Мы возьмем статьи из Википедии о науке о данных, скачаем и обработаем тексты, а затем построим облако слов, похожее на это: + +![Word Cloud for Data Science](../images/ds_wordcloud.png) + +Откройте [`notebook.ipynb`](../notebook.ipynb), чтобы ознакомиться с исходным кодом. Вы также можете запустить выполнение кода и понаблюдать, как происходит трансформация данных в реальном времени. + +> Если Вы не знаете, как запустить код в Jupyter Notebook, прочтите [данную статью](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + + +## [Проверочный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/1) + +## Домашнее задание + +* **Задача 1**: Доработайте код из задачи выше, чтобы узнать понятия, относящиеся к областям "большие данные" (**Big Data**) и "машинное обучение" (**Machine Learning**) +* **Задача 2**: [Поразмыслите о сценариях работы в науке о данных](../assignment.md) + +## Благодарности + +Данный модуль был написан с ♥️ [Дмитрием Сошниковым](http://soshnikov.com) From a5a1e9d446b08ed2bbcfeecf284ac95f72071e2c Mon Sep 17 00:00:00 2001 From: Heril Changwal <76246330+Heril18@users.noreply.github.com> Date: Fri, 22 Oct 2021 19:10:50 +0530 Subject: [PATCH 080/234] Update README.hi.md --- 6-Data-Science-In-Wild/README.hi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/6-Data-Science-In-Wild/README.hi.md b/6-Data-Science-In-Wild/README.hi.md index 423cf0b1..d0d6fad8 100644 --- a/6-Data-Science-In-Wild/README.hi.md +++ b/6-Data-Science-In-Wild/README.hi.md @@ -4,8 +4,8 @@ ### विषय -1. [वास्तविक दुनिया में डेटा विज्ञान] (20-Real-World-Examples/README.md) +1. [वास्तविक दुनिया में डेटा विज्ञान](20-Real-World-Examples/README.md) ### क्रेडिट -[नित्या नरसिम्हन] द्वारा ❤️ के साथ लिखा गया (https://twitter.com/nitya) \ No newline at end of file +[नित्या नरसिम्हन](https://twitter.com/nitya) द्वारा ❤️ के साथ लिखा गया From 813878842a0b5373e55af5c0f9f5df03f115fb2e Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Fri, 22 Oct 2021 18:23:05 +0300 Subject: [PATCH 081/234] 1-1 assignment translated --- .../translations/assignment.ru.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 1-Introduction/01-defining-data-science/translations/assignment.ru.md diff --git a/1-Introduction/01-defining-data-science/translations/assignment.ru.md b/1-Introduction/01-defining-data-science/translations/assignment.ru.md new file mode 100644 index 00000000..b81f4181 --- /dev/null +++ b/1-Introduction/01-defining-data-science/translations/assignment.ru.md @@ -0,0 +1,32 @@ +# Домашнее задание: сценарии в науке о данных + +В первом домашнем задании Вам предлагается рассмотреть процессы в реальном мире или проблемы в различных областях и как вы можете улучшить положение дел используя науку о данных. Ответьте на следующие вопросы: + +1. Какие данные Вы планируете собирать? +1. Как Вы хотите собрать данные? +1. Как Вы будете хранить данные? Насколько большими будут они? +1. Какие инсайты Вы сможете извлечь из этих данных? Какие решения сможете принять на основе этих данных? + +Подумайте о трёх различных проблемах/процессах и опишите каждую по пунктам, приведённым выше. + +Ниже приведены некоторые области и проблемы в них, с которых Вы можете начать: + +1. Как можно использовать данные, чтобы улучшить образовательный процесс в школах? +1. Как можно использовать данные, чтобы управлять вакцинацией в период пандемии? +1. Как можно использовать данные, чтобы повысить свою продуктивность на работе? + +## Форма ответов + +Заполните следующую таблицу (замените предложенные области на другие, если необходимо): + +| Область | Проблема | Какие данные нужно собрать | Как хранить данные | Какие инсайты/решения можно извлечь/принять | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| Образование | | | | | +| Вакцинация | | | | | +| Продуктивность | | | | | + +## Оценка + +Отлично | Достаточно | Нуждается в улучшении +--- | --- | -- | +Верно определены источники данных, способы хранения данных и возможные решения/инсайты для всех областей | Некоторые аспекты решения недостаточно детально рассмотрены, хранилища данных не рассмотрены, рассмотрены по меньшей мере 2 области | Решение неполное, рассмотрена только одна область From 96b55dbccd53ca615681ebed41d32262871cc5de Mon Sep 17 00:00:00 2001 From: rosiegamgee718 <38297145+rosiegamgee718@users.noreply.github.com> Date: Fri, 22 Oct 2021 16:09:46 -0400 Subject: [PATCH 082/234] Spreadsheet graphic for #141 #141: Added case study spreadsheet for addition to lesson. Please let me know if I need to change anything!! :) --- ...munication-emerson-presentation-graphic.xlsx | Bin 0 -> 20330 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 4-Data-Science-Lifecycle/16-communication/data-communication-emerson-presentation-graphic.xlsx diff --git a/4-Data-Science-Lifecycle/16-communication/data-communication-emerson-presentation-graphic.xlsx b/4-Data-Science-Lifecycle/16-communication/data-communication-emerson-presentation-graphic.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..73535bbed02e1e25e08534edc87e5a41e4d3b04e GIT binary patch literal 20330 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 literal 0 HcmV?d00001 From 1aa9c36c9a820c1e9de65cc3f1c83d6112331ed7 Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Sat, 23 Oct 2021 08:49:04 +0545 Subject: [PATCH 083/234] added nepali translaition for introduction README --- 1-Introduction/translations/README.np.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 1-Introduction/translations/README.np.md diff --git a/1-Introduction/translations/README.np.md b/1-Introduction/translations/README.np.md new file mode 100644 index 00000000..e18e81e4 --- /dev/null +++ b/1-Introduction/translations/README.np.md @@ -0,0 +1,16 @@ +# डाटा विज्ञान को परिचय + +![कार्यमा डाटा](../images/data.jpg) +> फोटो Stephen Dawson on Unsplash द्वारा + +यी पाठहरूमा, तपाईंले डाटा विज्ञानलाई कसरी परिभाषित गरिएको छ भनेर थाहा पाउनुहुनेछ र डेटा वैज्ञानिकले विचार गर्नुपर्ने नैतिक विचारहरूको बारेमा सिक्नुहुनेछ। तपाइँ यो पाठमा कसरी डाटा परिभाषित गरिएको छ र डाटा विज्ञान को मुख्य शैक्षिक डोमेन, statistics र probability पनि केहि मात्रामा जान्नुहुनेछ । + +### विषयहरु + +१. [डाटा विज्ञान को परिभाषा](01-defining-data-science/README.md) +२. [डाटा विज्ञान नैतिकता](02-ethics/README.md) +३. [डाटा परिभाषा ](03-defining-data/README.md) +४. [Statistics र Probability को परिभाषा](04-stats-and-probability/README.md) + +### विशेष धन्यवाद +यी पाठहरु N [नित्य नरसिम्हन](https://twitter.com/nitya) र [दिमित्री सोश्निकोभ](https://twitter.com/shwars) द्वारा ❤️ का साथ लेखिएको हो। From 75ec306eceb48ab2aa555940b7505fb385c08924 Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Sat, 23 Oct 2021 09:34:31 +0545 Subject: [PATCH 084/234] added translations for working with data README in Nepali --- 2-Working-With-Data/translations/README.np.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 2-Working-With-Data/translations/README.np.md diff --git a/2-Working-With-Data/translations/README.np.md b/2-Working-With-Data/translations/README.np.md new file mode 100644 index 00000000..b2ff22b8 --- /dev/null +++ b/2-Working-With-Data/translations/README.np.md @@ -0,0 +1,15 @@ +# डाटासँग सहकार्य + +![डाटा माया](images/data-love.jpg) +> फोटो Alexander Sinn द्वारा Unsplash बाट + +यी पाठहरुमा, तपाइँ केहि तरिकाहरु डाटा को प्रबंधन, हेरफेर, र अनुप्रयोगहरुमा प्रयोग गर्न सकिन्छ को बारे मा जान्न सक्नुहुन्छ। तपाइँ रिलेशनल र नन-रिलेशनल डाटाबेस को बारे मा र कसरी डाटा उनीहरुमा भण्डारण गर्न सकिन्छ जान्नुहुनेछ। तपाइँ डेटा को प्रबन्ध गर्न को लागी Python संग काम गर्ने आधारभूत कुराहरु सिक्नुहुनेछ, र तपाइँ Python द्वारा डाटा माइन साथै म्यानेज गर्ने धेरै मध्य केहि तरिकाहरु पत्ता लगाउन सक्नुहुनेछ । +### बिषयहरु + +१. [रेलशनल डाटाबेस](05-relational-databases/README.md) +२. [नन रेलशनल डाटाबेस](06-non-relational/README.md) +३. [Python सँग सहकार्य](07-python/README.md) +४. [डाटा को तयारी](08-data-preparation/README.md) + +### बिषेष धन्यवाद +यी पाठहरू ❤️ का साथ [Christopher Harrison](https://twitter.com/geektrainer), [Dmitry Soshnikov](https://twitter.com/shwars) र [Jasmine Greenaway](https://twitter.com/paladique) द्वारा लेखिएको हो । From 3121f8af37989742b1c81558fcf2c4e6244883b6 Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Sat, 23 Oct 2021 09:26:52 +0530 Subject: [PATCH 085/234] created hindi translation --- .../translations/assignment.hi.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 2-Working-With-Data/06-non-relational/translations/assignment.hi.md diff --git a/2-Working-With-Data/06-non-relational/translations/assignment.hi.md b/2-Working-With-Data/06-non-relational/translations/assignment.hi.md new file mode 100644 index 00000000..d4a8f86e --- /dev/null +++ b/2-Working-With-Data/06-non-relational/translations/assignment.hi.md @@ -0,0 +1,19 @@ +# सोडा लाभ + +## निर्देश + +[कोका कोला कंपनी स्प्रेडशीट](CocaColaCo.xlsx) में कुछ गणनाएं नहीं हैं। आपका कार्य है: + +1. वित्त वर्ष '15, '16, '17, और '18' के सकल लाभ की गणना करें + - सकल लाभ = शुद्ध परिचालन राजस्व - बेची गई वस्तुओं की लागत +1. सभी सकल लाभ के औसत की गणना करें। इसे एक फ़ंक्शन के साथ करने का प्रयास करें। + - औसत = वित्तीय वर्षों की संख्या से विभाजित सकल लाभ का योग (10) + - [औसत फ़ंक्शन] पर दस्तावेज़ीकरण(https://support.microsoft.com/en-us/office/average-function-047bac88-d466-426c-a32b-8f33eb960cf6) +1. यह एक एक्सेल फाइल है, लेकिन इसे किसी भी स्प्रेडशीट प्लेटफॉर्म में संपादित किया जा सकता है + +[यीयी वांग को डेटा स्रोत क्रेडिट](https://www.kaggle.com/yiyiwang0826/cocacola-excel) + +## रूब्रिक + +अनुकरणीय | पर्याप्त | सुधार की जरूरत +--- | --- | -- | From 0445f2bca5ac45cb6e1099b8dca2fc817a2bda0e Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Sat, 23 Oct 2021 09:34:15 +0530 Subject: [PATCH 086/234] created assignment.hi.md --- .../translations/assignment.hi.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 2-Working-With-Data/06-non-relational/translations/assignment.hi.md diff --git a/2-Working-With-Data/06-non-relational/translations/assignment.hi.md b/2-Working-With-Data/06-non-relational/translations/assignment.hi.md new file mode 100644 index 00000000..d4a8f86e --- /dev/null +++ b/2-Working-With-Data/06-non-relational/translations/assignment.hi.md @@ -0,0 +1,19 @@ +# सोडा लाभ + +## निर्देश + +[कोका कोला कंपनी स्प्रेडशीट](CocaColaCo.xlsx) में कुछ गणनाएं नहीं हैं। आपका कार्य है: + +1. वित्त वर्ष '15, '16, '17, और '18' के सकल लाभ की गणना करें + - सकल लाभ = शुद्ध परिचालन राजस्व - बेची गई वस्तुओं की लागत +1. सभी सकल लाभ के औसत की गणना करें। इसे एक फ़ंक्शन के साथ करने का प्रयास करें। + - औसत = वित्तीय वर्षों की संख्या से विभाजित सकल लाभ का योग (10) + - [औसत फ़ंक्शन] पर दस्तावेज़ीकरण(https://support.microsoft.com/en-us/office/average-function-047bac88-d466-426c-a32b-8f33eb960cf6) +1. यह एक एक्सेल फाइल है, लेकिन इसे किसी भी स्प्रेडशीट प्लेटफॉर्म में संपादित किया जा सकता है + +[यीयी वांग को डेटा स्रोत क्रेडिट](https://www.kaggle.com/yiyiwang0826/cocacola-excel) + +## रूब्रिक + +अनुकरणीय | पर्याप्त | सुधार की जरूरत +--- | --- | -- | From 85fda55147e2121847b938480b05db4af8e580c6 Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Sat, 23 Oct 2021 09:40:22 +0530 Subject: [PATCH 087/234] created translation for data processing assignment --- .../assignment for data processing.hi.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 2-Working-With-Data/07-python/translations/assignment for data processing.hi.md diff --git a/2-Working-With-Data/07-python/translations/assignment for data processing.hi.md b/2-Working-With-Data/07-python/translations/assignment for data processing.hi.md new file mode 100644 index 00000000..fbec68e8 --- /dev/null +++ b/2-Working-With-Data/07-python/translations/assignment for data processing.hi.md @@ -0,0 +1,23 @@ +# पायथन में डाटा प्रोसेसिंग के लिए असाइनमेंट + +इस असाइनमेंट में, हम आपको उस कोड के बारे में विस्तार से बताने के लिए कहेंगे जिसे हमने अपनी चुनौतियों में विकसित करना शुरू किया है। असाइनमेंट में दो भाग होते हैं: + +## COVID-19 स्प्रेड मॉडलिंग + + - [ ] 5-6 अलग-अलग देशों के लिए तुलना के लिए एक प्लॉट पर $R_t$ ग्राफ़ प्लॉट करें, या साथ-साथ कई प्लॉट का उपयोग करें + - [ ] देखें कि संक्रमित मामलों की संख्या के साथ मौतों और ठीक होने वालों की संख्या कैसे संबंधित है। + - [ ] संक्रमण दर और मृत्यु दर को दृष्टिगत रूप से सहसंबद्ध करके और कुछ विसंगतियों की तलाश करके पता लगाएं कि एक सामान्य बीमारी कितने समय तक चलती है। यह पता लगाने के लिए आपको विभिन्न देशों को देखने की आवश्यकता हो सकती है। + - [ ] मृत्यु दर की गणना करें और यह समय के साथ कैसे बदलता है। *आप गणना करने से पहले एक बार श्रृंखला को स्थानांतरित करने के लिए दिनों में रोग की अवधि को ध्यान में रखना चाह सकते हैं* + +## COVID-19 पेपर्स एनालिसिस + +- [] विभिन्न दवाओं के सह-घटना मैट्रिक्स का निर्माण करें, और देखें कि कौन सी दवाएं अक्सर एक साथ होती हैं (अर्थात एक सार में उल्लिखित)। आप दवाओं और निदान के लिए सह-घटना मैट्रिक्स के निर्माण के लिए कोड को संशोधित कर सकते हैं। +- [] हीटमैप का उपयोग करके इस मैट्रिक्स की कल्पना करें। +- [ ] एक विस्तृत लक्ष्य के रूप में, [कॉर्ड डायग्राम](https://en.wikipedia.org/wiki/Chord_diagram) का उपयोग करके दवाओं की सह-घटना की कल्पना करें। [यह लाइब्रेरी](https://pypi.org/project/chord/) आपको कॉर्ड डायग्राम बनाने में मदद कर सकता है। +- [ ] एक और खिंचाव लक्ष्य के रूप में, नियमित अभिव्यक्तियों का उपयोग करके विभिन्न दवाओं (जैसे **400mg** इन *400mg क्लोरोक्वीन दैनिक*) की खुराक निकालें, और डेटाफ़्रेम बनाएं जो विभिन्न दवाओं के लिए अलग-अलग खुराक दिखाता है। **नोट**: उन संख्यात्मक मानों पर विचार करें जो दवा के नाम के निकट पाठ्य-क्षेत्र में हैं। + +## रूब्रिक + +अनुकरणीय | पर्याप्त | सुधार की जरूरत +--- | --- | -- | +सभी कार्य पूर्ण हैं, ग्राफिक रूप से सचित्र और समझाया गया है, जिसमें दो खिंचाव लक्ष्यों में से कम से कम एक शामिल है | 5 से अधिक कार्य पूरे हो गए हैं, कोई भी लक्ष्य पूरा करने का प्रयास नहीं किया गया है, या परिणाम स्पष्ट नहीं हैं | 5 से कम (लेकिन 3 से अधिक) कार्य पूर्ण हैं, विज़ुअलाइज़ेशन बिंदु को प्रदर्शित करने में मदद नहीं करते हैं From d8409502e370b86a52535f4674a247ef8df0fc1e Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Sat, 23 Oct 2021 10:23:05 +0545 Subject: [PATCH 088/234] added nepali translation for working with data README and Data Lifecycle README --- 3-Data-Visualization/README.md | 8 ++---- .../translations/README.np.md | 26 +++++++++++++++++++ .../translations/README.np.md | 15 +++++++++++ 3 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 3-Data-Visualization/translations/README.np.md create mode 100644 4-Data-Science-Lifecycle/translations/README.np.md diff --git a/3-Data-Visualization/README.md b/3-Data-Visualization/README.md index 346995ca..38d63b1c 100644 --- a/3-Data-Visualization/README.md +++ b/3-Data-Visualization/README.md @@ -2,9 +2,9 @@ ![a bee on a lavender flower](./images/bee.jpg) > Photo by Jenna Lee on Unsplash - -Visualizing data is one of the most important tasks of a data scientist. Images are worth 1000 words, and a visualization can help you identify all kinds of interesting parts of your data such as spikes, outliers, groupings, tendencies, and more, that can help you understand the story your data is trying to tell. + +Visualizing data is one of the most important tasks of a data scientist. Images are worth 1000 words, and a visualization can help you identify all kinds of interesting parts of your data such as spikes, outliers, groupings, tendencies, and more, that can help you understand the story your data is trying to tell. In these five lessons, you will explore data sourced from nature and create interesting and beautiful visualizations using various techniques. ### Topics @@ -26,7 +26,3 @@ These visualization lessons were written with 🌸 by [Jen Looper](https://twitt 🦆 Data for Minnesota Birds is from [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) scraped from [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) by Hannah Collins. All these datasets are licensed as [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). - - - - diff --git a/3-Data-Visualization/translations/README.np.md b/3-Data-Visualization/translations/README.np.md new file mode 100644 index 00000000..b10444c9 --- /dev/null +++ b/3-Data-Visualization/translations/README.np.md @@ -0,0 +1,26 @@ +# भिजुअलाइजेसन + +![एक लेभेंडर फूल मा एक मधुमक्खी](./images/bee.jpg) +> फोटो Jenna Lee द्वारा Unsplash बाट + +डाटा भिजुअलाइज गर्नु डाटा वैज्ञानिकको सबैभन्दा महत्त्वपूर्ण कार्यहरू मध्ये एक हो। छविहरू 1000 शब्दहरूको लायक छन्, र एक दृश्यले तपाईंलाई तपाईंको डेटाका सबै प्रकारका रोचक भागहरू जस्तै स्पाइकहरू, आउटलियरहरू, समूहहरू, प्रवृत्तिहरू, र थप, जसले तपाईंलाई तपाईंको डेटाले बताउन खोजेको कथा बुझ्न मद्दत गर्न सक्छ। + +यी पाँच पाठहरूमा, तपाईंले प्रकृतिबाट प्राप्त डाटा अन्वेषण गर्नुहुनेछ र विभिन्न प्रविधिहरू प्रयोग गरेर रोचक र सुन्दर दृश्यहरू सिर्जना गर्नुहुनेछ। + +१. [परिमाणहरू भिजुअलाईजिङ](09-visualization-quantities/README.md) +२. [वितरण भिजुअलाईजिङ](10-visualization-distributions/README.md) +३. [अनुपात भिजुअलाईजिङ](11-visualization-proportions/README.md) +४. [सम्बन्धहरु भिजुअलाईजिङ](12-visualization-relationships/README.md) +५. [भिजुअलाइजेसन अर्थपूर्ण बनाउने](13-meaningful-visualizations/README.md) + +### बिषेष धन्यवाद + +यी भिजुअलाइजेसन पाठहरू [Jen Looper](https://twitter.com/jenlooper) द्वारा 🌸 सँग लेखिएको हो । + +🍯 अमेरिकी मह उत्पादन को लागी डाटा, जेसिका लीको [Kaggle](https://www.kaggle.com/jessicali9530/honey-production) प्रोजेक्ट बाट लिइएको हो । [डाटा](https://usda.library.cornell.edu/concern/publications/rn301137d) [United States Department of Agriculture](https://www.nass.usda.gov/About_NASS/index.php) बाट लिइएको हो । + +🍄 च्याउको लागि डाटा पनि [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) बाट लिइएको Hatteras Dunton द्वारा संशोधित हो । यो डाटासेट Agaricus र Lepiota परिवार मा gilled मशरूम को २३ प्रजातिहरु संग सम्बन्धित काल्पनिक नमूनाहरु को विवरण शामिल छ। द अडुबोन सोसाइटी फिल्ड गाइड बाट नर्थ अमेरिकन मशरूम (१९८१) को च्याउ कोरिएको। यो डाटासेट UCI ML २ to मा १ 7 मा दान गरिएको थियो। + +🦆 मिनेसोटा पक्षीहरूको लागि डाटा [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) बाट हो जुन [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) हन्ना कोलिन्स द्वारा, बाट स्क्र्याप गरिएको हो । + +यी सबै डाटासेट [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/) को रूप मा लाइसेन्स प्राप्त छ । diff --git a/4-Data-Science-Lifecycle/translations/README.np.md b/4-Data-Science-Lifecycle/translations/README.np.md new file mode 100644 index 00000000..ae5603dc --- /dev/null +++ b/4-Data-Science-Lifecycle/translations/README.np.md @@ -0,0 +1,15 @@ +# डाटा विज्ञान जीवनचक्र + +![संचार](images/communication.jpg) + +> फोटो Headway मा Unsplash द्वारा + +यी पाठहरुमा, तपाइँ डाटा विज्ञान जीवन चक्र को केहि पहलुहरु को अन्वेषण गर्नुहुनेछ, विश्लेषण र डाटा को आसपास संचार सहित। + +### बिषयहरु + +१. [परिचय](14-Introduction/README.md) +२. [विश्लेषण](15-Analyzing/README.md) +३. [संचार](16-communication/README.md) + +यी पाठहरु ❤️ का साथ [Jalen McGee](https://twitter.com/JalenMCG) र [Jasmine Greenaway](https://twitter.com/paladique) द्वारा लेखिएको हो । From 1ee1c620437906c1ab1f8f3e338a7961c2a731b3 Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Sat, 23 Oct 2021 13:22:16 +0545 Subject: [PATCH 089/234] fixed links and table of content --- translations/README.NEPALI.MD | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/translations/README.NEPALI.MD b/translations/README.NEPALI.MD index b8c97ecf..3e56c8eb 100644 --- a/translations/README.NEPALI.MD +++ b/translations/README.NEPALI.MD @@ -17,9 +17,9 @@ Microsoft मा Azure Cloud अधिवक्ताहरु एक १०-ह > **विद्यार्थी**, यो पाठ्यक्रम आफ्नै शैलिमा प्रयोग गर्नका लागी यो Repo लाई fork गर्नुहोस् र एक पूर्व व्याख्यान प्रश्नोत्तरी संग शुरू गरी त्यसपछि गतिविधिहरु को बाकी पूरा लेक्चर पढी अभ्यास पूरा गर्नुहोस् । समाधान कोड प्रतिलिपि गर्नुको सट्टा पाठ बुझेर परियोजनाहरु बनाउन को लागी प्रयास गर्नुहोस्; जे होस् कि कोड प्रत्येक परियोजना उन्मुख पाठ मा /solution फोल्डरहरु मा उपलब्ध छ। अर्को विचार साथीहरु संग एक साथ सामग्री को माध्यम बाट जाने संग एक अध्ययन समूह गठन गर्न को लागी हुनेछ। थप अध्ययन को लागी, हामी [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa)सिफारिश गर्दछौं । - +> 🎥 यो Project मा काम गर्नुहुने माहानुभाभरुको भिडियो हेर्ने माथी को image क्लिक गर्नुहोस् ## शिक्षाशास्त्र @@ -48,14 +48,13 @@ Microsoft मा Azure Cloud अधिवक्ताहरु एक १०-ह ## पाठ -|![ स्केचनोट [(@sketchthedocs)](https://sketchthedocs.dev) द्वारा](./sketchnotes/00-Roadmap.png)| +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Roadmap.png)| |:---:| | शुरुआती को लागी डाटा विज्ञान: गाइड - _स्केचनोट [@nitya](https://twitter.com/nitya)_ द्वारा| | पाठ नम्बर | विषय | पाठ समूह | सिक्ने उद्देश्यहरू | लिन्कड पाठ | लेखक | | :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | - | 0१ | डाटा विज्ञान को परिभाषा | [परिचय](1-Introduction/README.md) | डाटा विज्ञान को पछाडि आधारभूत अवधारणाहरु जान्नुहोस् र यो कसरी Artificial Intelligence, Machine Learning, र Big Data संग सम्बन्धित छ। | [पाठ](1-Introduction/01-defining-data-science/README.md) [भिडियो](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | | 0२ | डाटा विज्ञान नैतिकता | [परिचय](1-Introduction/README.md) | डाटा नैतिक अवधारणाहरु, चुनौतिहरु र फ्रेमवर्क | [पाठ](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | | 0३ | डाटा परिभाषा | [परिचय](1-Introduction/README.md) | कसरी डाटा वर्गीकृत र यसको सामान्य स्रोत हो। | [पाठ](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | @@ -95,6 +94,6 @@ Microsoft मा Azure Cloud अधिवक्ताहरु एक १०-ह हाम्रो टोली अन्य पाठ्यक्रम उत्पादन! यहाँ हेर्नुहोस : -- [शुरुआतीहरुको लागी Machine Learning] (https://aka.ms/ml-beginners) -- [शुरुआती को लागी IoT] (https://aka.ms/iot-beginners) -- [शुरुआतीहरुको लागि Web Dev] (https://aka.ms/webdev-beginners) +- [शुरुआतीहरुको लागी Machine Learning](https://aka.ms/ml-beginners) +- [शुरुआती को लागी IoT](https://aka.ms/iot-beginners) +- [शुरुआतीहरुको लागि Web Dev](https://aka.ms/webdev-beginners) From 0a685919bedf5e13a6783f5789849138e4a73db4 Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Sat, 23 Oct 2021 13:32:52 +0545 Subject: [PATCH 090/234] some minor erros fixed --- translations/README.NEPALI.MD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/translations/README.NEPALI.MD b/translations/README.NEPALI.MD index 3e56c8eb..e1142163 100644 --- a/translations/README.NEPALI.MD +++ b/translations/README.NEPALI.MD @@ -17,6 +17,8 @@ Microsoft मा Azure Cloud अधिवक्ताहरु एक १०-ह > **विद्यार्थी**, यो पाठ्यक्रम आफ्नै शैलिमा प्रयोग गर्नका लागी यो Repo लाई fork गर्नुहोस् र एक पूर्व व्याख्यान प्रश्नोत्तरी संग शुरू गरी त्यसपछि गतिविधिहरु को बाकी पूरा लेक्चर पढी अभ्यास पूरा गर्नुहोस् । समाधान कोड प्रतिलिपि गर्नुको सट्टा पाठ बुझेर परियोजनाहरु बनाउन को लागी प्रयास गर्नुहोस्; जे होस् कि कोड प्रत्येक परियोजना उन्मुख पाठ मा /solution फोल्डरहरु मा उपलब्ध छ। अर्को विचार साथीहरु संग एक साथ सामग्री को माध्यम बाट जाने संग एक अध्ययन समूह गठन गर्न को लागी हुनेछ। थप अध्ययन को लागी, हामी [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa)सिफारिश गर्दछौं । +### टोलीलाई भेट्नुहोस् + [![प्रोमो भिडियो](screenshot.png)]( "Promo video") > 🎥 यो Project मा काम गर्नुहुने माहानुभाभरुको भिडियो हेर्ने माथी को image क्लिक गर्नुहोस् From d6716494d516aeeef04b2d5f00eb17dd631b6051 Mon Sep 17 00:00:00 2001 From: sarthak Date: Sat, 23 Oct 2021 14:41:28 +0545 Subject: [PATCH 091/234] added nepali transaltion of Data science in cloud readme --- .../translations/README.Nepali.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 5-Data-Science-In-Cloud/translations/README.Nepali.md diff --git a/5-Data-Science-In-Cloud/translations/README.Nepali.md b/5-Data-Science-In-Cloud/translations/README.Nepali.md new file mode 100644 index 00000000..4926f922 --- /dev/null +++ b/5-Data-Science-In-Cloud/translations/README.Nepali.md @@ -0,0 +1,20 @@ +# डाटा बिज्ञान क्लाउडमा + +![क्लाउड-चित्र](images/cloud-picture.jpg) + +>चित्र खिच्ने [Jelleke Vanooteghem](https://unsplash.com/@ilumire) कहाँबाट [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape) + +जब डाटा बिज्ञान ठुला डाटामा प्रयोग गरिन्छ, तब क्लाउडले खेल परिवर्तन गर्न सक्छ। आगामी तीन पाठमा,हामी क्लाउड भनेको के हो र किन सहयोगी हुन्छ भन्ने सिक्न गईरहेका छौ।हामी यिनै पाठ्यक्रममा मुटु रोगीहरुको डाटासेट पत्ता लगाउने र मुटु रोगको संभावना पत्ता लगाउने मोडको तयार पार्ने छौ। हामी क्लाउडको तागत प्रयोग गरेर मोडललाई तालीम ,तैनाथ र उपभोग विभिन्न तरिकाले गर्नेछौ। यसमा प्रकृयामा एउटा तरिका भनेको user interface निम्न कोड्/नो कोड ढंगले प्रयोग गर्ने हो भने अर्को तरिका Azure Machine Learning Software Developer Kit प्रयोग गरेर हो। + +![प्रोजेक्ट-योजना](19-Azure/images/project-schema.PNG) + +### पाठहरु +१. [किन डाटा बिज्ञानमा क्लाउड प्रयोग गर्ने ?](१७-परिचय/README.md) +२. [डाटा बिज्ञानमा क्लाउड: निम्न कोड्/नो कोड ढंग ](१८-निम्न-कोड्/README.md) +3. [डाटा बिज्ञानमा क्लाउडः "Azure ML SDK" तरिका ](19-Azure/README.md) + +### श्रेय +यि पाठहरु ☁️ र 💕 ले लेखिएको [Maud Levy](https://twitter.com/maudstweets) र [Tiffany Souterre](https://twitter.com/TiffanySouterre) + +मुटु फेल हुने भविष्यबानि गरिएको डाटा निकालिएको सोर्स[ +Larxel](https://www.kaggle.com/andrewmvd) on [Kaggle](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data).लाइसेन्स गरिएको नियम [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/) From c8b08cf750fe1d87f366ec259ff917db62cedadd Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Sun, 24 Oct 2021 19:18:41 +0530 Subject: [PATCH 092/234] Create assignment.hi.md --- .../translations/assignment.hi.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 1-Introduction/01-defining-data-science/translations/assignment.hi.md diff --git a/1-Introduction/01-defining-data-science/translations/assignment.hi.md b/1-Introduction/01-defining-data-science/translations/assignment.hi.md new file mode 100644 index 00000000..b4250dd4 --- /dev/null +++ b/1-Introduction/01-defining-data-science/translations/assignment.hi.md @@ -0,0 +1,31 @@ +# असाइनमेंट: डाटा साइंस के परिदृश्य + +इस असाइनमेंट मे हम चाहते हैं कि आप कुछ असल ज़िंदगी की दिक्कतें या क्रिया-कलाप सोचें विभिन्न क्षेत्रों मे, और फिर सोचें कि इसको हम डाटा साइंस के प्रयोग से कैसे सुधार सकते हैं| इन चीजों के बारे मे सोचें: + +1. आप कौनसी डाटा इकट्ठा कर सकते हैं? +1. आप उसको कैसे इकट्ठा करेंगे? +1. आप उस डाटा को कैसे संग्रहीत करेंगे? वो डाटा कितनी बड़ी होगी? +1. अस डाटा से आपको क्या अनुमान मिलेगा? उस डाटा के आधार पर आप क्या निर्णय ले सकते हैं? + +किन्ही 3 अलग दिक्कत या क्रिया-कलाप के बारे मे सोचे का प्रयास करें और ऊपर लिखे हर पॉइंट को अलग कार्यक्षेत्र के लिए वर्णित कीजिए| + +यहा कुछ कार्यक्षेत्र और दिक्कतें लिखी हैं जिनकी मदद से आप सोचना शुरू कर सकते हैं: + +1. आप डाटा का प्रयोग करके विद्यालय जा रहे बच्चों की शिक्षा कैसे सुधार सकते हैं? +1. आप डाटा का प्रयोग करके महामारी के समय मे टीकाकरण कैसे नियंत्रित कर सकते हैं? +1. आप डाटा का प्रयोग करके अपने काम मे कैसे और उत्पादक बन सकते हैं? +## निर्देश: + +निम्नलिखित मेज को भरें (अपने विकल्प सुझावित क्षेत्रों की जगह लिखें अगर जरूरत हो तो): + +| समस्या डोमेन | समस्या | कॉनसी डाटा संग्रहीत करनी है | डाटा को कैसे संग्रहीत करना है | कॉन्से निर्णय ले सकते हैं | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| शिक्षा | | | | | +| टीकाकरण | | | | | +| उत्पादकता | | | | | + +## सरनामा + +अनुकरणीय | पर्याप्त | सुधार चाहिए +--- | --- | -- | +डाटा के स्तोत्र को पहचानने मे, उसको भंडारित मे और निर्णय लेने मे सक्षम थे | समाधान के कुछ हिस्से विस्तृत नहीं हैं, डाटा को संग्रहीत करना नहीं बताया गया है, कम से कम दो क्षेत्रों का वर्णन है | समाधान के सिर्फ कुछ ही हिस्सों का वर्णन है, सिर्फ एक क्षेत्र पर विचार किया है| From f4512ddd4bddfd48ee4ad74e709c68a85f65914b Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Sun, 24 Oct 2021 18:48:52 +0300 Subject: [PATCH 093/234] 1-2 readme and assignment translated --- .../02-ethics/translations/README.ru.md | 273 ++++++++++++++++++ .../02-ethics/translations/assignment.ru.md | 21 ++ 2 files changed, 294 insertions(+) create mode 100644 1-Introduction/02-ethics/translations/README.ru.md create mode 100644 1-Introduction/02-ethics/translations/assignment.ru.md diff --git a/1-Introduction/02-ethics/translations/README.ru.md b/1-Introduction/02-ethics/translations/README.ru.md new file mode 100644 index 00000000..8c290f77 --- /dev/null +++ b/1-Introduction/02-ethics/translations/README.ru.md @@ -0,0 +1,273 @@ +# Введение в этику данных + +|![ Рисунок [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/02-Ethics.png)| +|:---:| +| Этика в науке о данных - _Рисунок [@nitya](https://twitter.com/nitya)_ | + +--- + +Мы все инфо-граждане, живущие в инфо-мире. + +Из тенденций рынка следует, что к 2022 году одна из трёх крупных организаций будет покупать и продавать свои данные на онлайн [маркетплейсах и биржах](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/). Как **разработчики приложений**, мы интегрируем инсайты на основе данных и алгоритмы автоматизации в ежедневную жизнь пользователя более простым и дешёвым способом. Однако по мере распространения ИИ, нам необходимо осознавать потенциальную угрозу использования подобных алгоритмов в качестве [оружия](https://www.youtube.com/watch?v=TQHs8SA1qpk) в больших масштабах. + +Тенденции также показывают, что мы создадим и потребим более [180 зеттабайт](https://www.statista.com/statistics/871513/worldwide-data-created/) данных к 2025 году. Нам, как **дата сайентистам - специалистам по данным**, открывается беспрецедентный уровень доступа к личным данным. Это означает, что мы сможем составлять поведенческие профили пользователей и влиять на принятие решений, создавая [иллюзию свободного выбора](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) и подталкивая пользователей делать то, что нам нужно. Также возникают широкие вопросы о приватности данных и защите пользователей. + +В настоящее время, этика данных является _необходимым ограждением_ для специалистов и инженеров по данным, минимизирующим ущерб и непреднамеренные последствия от наших действий на основе данных. На [графике цикла популярности Gartner для ИИ](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) современные тренды в цифровой этике, ответственном ИИ и управлении ИИ обозначены как ключевые двигатели мегатрендов _демократизации_ и _индустриализации_ искусственного интеллекта. + +![Цикл популярности Gartner для ИИ - 2020 год](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +В данном уроке мы исследуем увлекательную область этики данных, от основных положений и проблем, до реальных примеров и прикладных концепции, таких как управление данными, которые помогают установить этическую культуру в командах и организациях, работающих с данными и ИИ. + + + + +## [Вступительный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/2) 🎯 + +## Основные определения + +Давайте начнём с базовых терминов. + +Само слово "этика" происходит от [греческого слова "этикос"](https://ru.wikipedia.org/wiki/%D0%AD%D1%82%D0%B8%D0%BA%D0%B0) (и его корня "этос"), означающего _характер или моральная природа_. + +**Этика** изучает общие ценности и моральные принципы, которые определяют наше поведение в обществе. Этика основывается не на законах, а на широких принятых нормах того, что хорошо, а что плохо. Однако, этические соображения могут влиять на политику компаний и государственное регулирование, которое создает больше стимулов для соблюдения этических норм. + + +**Этика данных** - это [новая ветвь этики](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1), которая "изучает и оценивает моральные вопросы связанные с _данными, алгоритмами и соответствующими практиками_". Упомянутые здесь вопросы **"данных"** сосредоточены вокруг действий генерации, записи, курирования, обработки, распространения, предоставление доступа и использования. Вопросы **"алгоритмов"** сосредоточены вокруг ИИ, агентов, машинного обучения и роботов. Вопросы **"практик"** сфокусированы на темах ответственных инноваций, программирования, хакинга и этичного исходного кода. + +**Прикладная этика** - это [практическое применение моральных соображений](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%B0%D1%8F_%D1%8D%D1%82%D0%B8%D0%BA%D0%B0). Это процесс активного исследования этических проблем в контексте _действий, товаров и процессов реального мира_, и принятия корректирующих мер по удержанию их в соответствии нашим принятым этическим ценностям. + +**Этическая культура** - раздел об [_использовании_ прикладной этики](https://hbr.org/2019/05/how-to-design-an-ethical-organization) для того, чтобы убедиться, что наши этические принципы и порядки приняты полномасштабно в рамках всей организации и действуют постоянно. Успешные этические культуры определяют общеорганизационные этические принципы, обеспечивают ощутимые стимулы для их соблюдения и укрепляют этические нормы, поощряя желаемое поведение на каждом уровне организации. + + +## Этические концепции + +В данном разделе мы обсудим такие понятия как **общие ценности** (принципы) и **этические вызовы** (проблемы) в этике данных, а также исследуем **реальные примеры**, которые помогут Вам понять эти концепции в реальном мире. + +### 1. Принципы этики + +Каждая стратегия в этике данных начинается с определения _этических принципов_ - "общих ценностей", которые описывают приемлемое поведение и регламентируют соответствующие действия в проектах, связанных с данными и ИИ. Вы можете определить их на индивидуальном уровне или на уровне команды. Однако, большинство крупных организаций выделяют их как миссию по созданию _этичного ИИ_ или набора правил, который определён на уровне компании и которому подчиняются все без исключения. + +**Пример**: Формулировка миссии об [ответственном ИИ](https://www.microsoft.com/en-us/ai/responsible-ai) компании Майкрософт звучит так: _"Мы преданы идее продвижения ИИ на основе этических принципов, которые ставят людей во главу угла"_. Данный лозунг определяет 6 этических принципов, описанных далее. + +![Ответсвенный ИИ в компании Майкрософт](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +Давайте кратко рассмотрим эти принципы. _Прозрачность_ и _Ответственность_ являются основными, а остальные строятся поверх, поэтому начнем с главных: + +* Принцип [**ответственности**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) накладывает ответственность на активных пользователей за использование данных и ИИ и требует согласия с данными этическими принципами. +* Принцип [**прозрачности**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) позволяет убедиться, что действия с данными и ИИ _понимаемы_ (осознаваемы) пользователями, разъясняя, что кроется за действиями и их последствия. +* Принцип [**справедливости**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) фокусируется на равном восприятии искусственным интеллектом _всех людей_ и обращает внимание на системную и скрытую социально-техническую предвзятость в данных и информационных системах. +* Принцип [**надёжности и сохранности**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) обеспечивает _постоянное_ соответствие поведения ИИ заранее определённым ценностям, минимизируя потенциальный ущерб или неумышленные последствия. +* Принцип [**приватности и безопасности**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) говорит о необходимости понимания происхождения данных и обеспечивает _приватность данных и их защиту_ для пользователей. +* Принцип [**инклюзивности**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) гарантирует создание решений на основе ИИ с целью адаптировать их к _нуждам широкого круга людей с различными возможностями_. + +> 🚨 Подумайте о том, какими могут быть формулировки миссий в этике данных. Познакомьтесь с подходами этичного ИИ в других организациях: [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles) и [Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). Какие общие ценности являются схожими? Как эти принципы связаны с продуктами и отраслями этих компаний? + + +### 2. Проблемы этики + +Как только мы определили этические принципы, следующим шагом становится оценить наши действия с данными и ИИ с точки зрения того, как они соотносятся с принятыми общими ценностями. Подумайте над Вашими действиями в разрезе двух категорий: _сбора данных_ и _разработка алгоритма_. + +При сборе данных, список действий наверняка будет включать в себя **персональные данные** или персональные идентифицирующие данные для установления личностей. Они состоят из +[различных неперсональных данных](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en), которые _в совокупности_ определяются как персональные. Этические вызовы здесь могут относиться к _приватности данных_, _владению данными_ и связанным с ними вопросам _информированного согласия_, и _прав на интеллектуальную собственность_ пользователей. + +При разработке алгоритма, действия включают в себя сбор и обработку **датасетов** и последующее использование их для тренировки и развёртывания _модели данных_, способной выдавать прогнозы или автоматизировать принятие решений в реальном мире. Этические вызовы возникают из-за _несбалансированного датасета_, _качества данных_, _несправедливости модели_ и _искажения фактов_ в алгоритмах, включая некоторые системные по своей природе вопросы. + +В обоих случаях, этические проблемы подсвечивают области, в которых наши действия могут идти в разрез с нашими общими ценностями. Для того чтобы распознать, смягчить, сократить или устранить конфликты, нам необходимо задать моральные "да/нет" вопросы, связанные с нашими действиями, а затем скорректировать наши действия при необходимости. Давайте взглянем на некоторые этические вызовы и моральные вопросы, которые они поднимают: + + +#### 2.1 Право собственности на данные + +Сбор данных часто включает в себя сбор персональных данных, которые могут идентифицировать действующих лиц. [Право собственности на данные](https://permission.io/blog/data-ownership) занимается вопросами _контроля_ и [_прав пользователя_](https://permission.io/blog/data-ownership) в области создания, обработки и распространения данных. + +Моральные вопросы, которые мы должны задать себе здесь: +* Кто владеет данными (пользователь или организация)? +* Какие права имеют действующие лица, имеющие отношение к данным? (напр., доступ, стирание, перенос) +* Какие права имеет организация? (напр., редактирование злонамеренных пользовательских отзывов) + +#### 2.2 Информированное согласие + +[Информированное согласие](https://legaldictionary.net/informed-consent/) определяет согласие пользователя на действия (например, сбор данных) с _полным пониманием_ всех фактов, включая цель, потенциальные риски и альтернативы. + +Вопросы для дискуссии: +* Предоставил ли пользователь (действующее лицо) соглашение на сбор и использование данных? +* Осознал ли пользователь цель сбора данных? +* Осознал ли пользователь возможные риски от использования данных? + +#### 2.3 Интеллектуальная собственность + +[Интеллектуальная собственность](https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C) относится к нематериальным творениям, произведенным по инициативе человека, которые могут _иметь экономическую ценность_ для физических или юридических лиц. + +Вопросы для дискуссии: +* Имеют ли собранные данные экономическую ценность для пользователя или компании? +* Обладает ли **пользователь** интеллектуальной собственностью в данном случае? +* Обладает ли **компания** интеллектуальной собственностью в данном случае? +* Если права на собственность существуют, как мы защищаем их? + +#### 2.4 Приватность данных + +[Приватность данных](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) или информационная приватность относится к сохранению приватности пользователя и защиты его личности относительно пользовательской идентифицирующей информации. + +Вопросы для дискуссии: +* Защищены ли пользовательские (персональные) данные от взломов и утечек? +* Доступны ли пользовательские данные только уполномоченным пользователям и окружениям? +* Сохраняется ли анонимность пользователя при передаче и распространении данных? +* Может ли пользователь быть идентифицирован из анонимизированного датасета? + + +#### 2.5 Право на забвение + +[Право на забвение](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B0%D0%B2%D0%BE_%D0%BD%D0%B0_%D0%B7%D0%B0%D0%B1%D0%B2%D0%B5%D0%BD%D0%B8%D0%B5) или [Право на стирание](https://www.gdpreu.org/right-to-be-forgotten/) обеспечивает дополнительную защиту данных пользователя. В особенности, данное право предоставляет пользователям возможность удаления персональных данных из поисковых систем сети Интернет и других мест, позволяя, при определённых обстоятельствах, начать онлайн-историю с чистого листа без учёта предыдущих событий. + +Вопросы для дискуссии: +* Позволяет ли рассматриваемая система действующим лицам запрашивать удаление данных? +* Должен ли отзыв пользовательского соглашения вызывать автоматическое стирание данных? +* Были ли данные собраны без согласия или незаконными способами? +* Действуем ли мы согласно государственному регулированию в сфере приватности данных? + + +#### 2.6 Несбалансированный датасет + +Проблема [несбалансированного датасета или коллекции данных](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) появляется при использовании _нерепрезентативной_ выборки для разработки алгоритма, создании потенциальной несправедливости в результатах модели для различных групп. Типы искажений включают в себя систематические ошибки, ошибки наблюдателя, погрешности инструментов. + +Вопросы для дискуссии: +* Имеем ли мы дело с репрезентативным набором действующих лиц? +* Был ли протестирован собранный или созданный датасет на различные искажения? +* Можем ли мы уменьшить или избавиться от обнаруженных искажений? + + +#### 2.7 Качество данных + +[Качество данных](https://lakefs.io/data-quality-testing/) отображает пригодность собранного датасета, используемого для разработки нашего алгоритма, проверяет, удовлетворяют ли признаки и записи требованиям качества и согласованности, необходимым для целей нашего ИИ. + + +Вопросы для дискуссии: +* Собрали ли мы _пригодные_ признаки для решения нашей задачи? +* Собраны ли данные _согласованно_ с различных источников? +* Является ли датасет _полным_ с точки зрения различных условий и сценариев? +* _Достоверно_ ли отображает собранная информация реальность? + + +#### 2.8 Справедливость алгоритма + +[Справедливость алгоритма](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) указывает, дискриминирует ли созданный алгоритм отдельные группы действующих лиц и ведет ли это к [потенциальному ущербу](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) в _распределении_ (когда ресурсы недоступны или, наоборот, удерживаются отдельной группой) и в _качестве услуг_ (когда ИИ недостаточно точен для некоторых групп в отличие от других). + +Вопросы для дискуссии: +* Правильно ли мы оценили точность модели для различных групп и условий? +* Внимательно ли мы изучили созданную систему на предмет потенциального ущерба (например, на стереотипизацию)? +* Можем ли мы перепроверить данные или перетренировать модель, чтобы сократить выявленный ущерб? + + +Изучите материалы, подобные [контрольному списку справедливости ИИ](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA), чтобы узнать больше. + +#### 2.9 Искажение фактов + +[Искажение фактов в данных](https://www.sciencedirect.com/topics/computer-science/misrepresentation) указывает, вводим ли мы в заблуждение инсайтами, чтобы поддержать желаемую точку зрения, несмотря на достоверные собранные данные. + +Вопросы для дискуссии: +* Предоставляем ли мы неполные или неточные данные? +* Визуализируем ли мы данные таким образом, который ведет к ошибочным выводам? +* Используем ли мы статистические методы выборочно, чтобы манипулировать результатами? +* Существуют ли альтернативные суждения, которые могут привести к другим выводам? + + +#### 2.10 Свободный выбор + +[Иллюзия свободного выбора](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) появляется, когда система, "проектирующая выбор", использует алгоритмы принятия решений, чтобы подтолкнуть к предподчтительным действиям, и в то же время обманчиво даёт выбор и контроль над ситуацией. Эти [нечестные уловки](https://www.darkpatterns.org/) могут нанести социальный и экономический вред пользователям. Поскольку решения пользователей влияют на поведенческие паттерны, подобные действия могут привести к последующим принятиям решений, которые приумножат или продлят действие нанесённого ущерба. + +Вопросы для дискуссии: +* Понимает ли пользователь последствия принятия того или иного решения? +* Был ли пользователь осведомлён о (альтернативном) выборе и плюсах и минусах каждого исхода? +* Может ли пользователь изменить автоматический выбор или выбор, сделанный под влиянием, позднее? + + +### 3. Случаи из реальной практики + +В решении упомянутых этических вызовов в контексте реального мира нам поможет взглянуть на случаи, когда потенциальные угрозы и последствия для личности и общества наиболее выражены, когда этические нарушения упущены из виду. + +Вот некоторые примеры: + +| Этический вызов | Реальный пример | +|--- |--- | +| **Информированное согласие** | 1972 год - [Исследование сифилиса в Таскиги](https://ru.wikipedia.org/wiki/%D0%98%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D1%84%D0%B8%D0%BB%D0%B8%D1%81%D0%B0_%D0%B2_%D0%A2%D0%B0%D1%81%D0%BA%D0%B8%D0%B3%D0%B8) - Принявшим участие в исследовании афроамериканцам была обещана бесплатная медицинская помощь, однако их _обманули_ исследователи, не предоставив информацию о диагнозе или доступности лекарств. Многие участники умерли, заразив партнёров или детей. Исследование длилось 40 лет. | +| **Приватность данных** | 2007 год - В соревновании [от компании Netflix](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) участникам предложили _10 миллионов анонимизированных оценок фильмов от 50 тысяч клиентов_ для улучшения алгоритма рекомендаций. Однако, участники оказались способны сопоставить анонимизированные данные с персональными данными из _внешнего источника данных_ (например, комментарии на сайте IMDb) и успешно де-анонимизировать некоторых подписчиков Netflix. | +| **Систематическая ошибка** | 2013 год - городские власти города Бостона [разработали Street Bump](https://www.boston.gov/transportation/street-bump), приложение, позволяющее гражданам сообщать о дорожных выбоинах, предоставляя властям более качественные данные для поиска и ремонта. Однако, [люди из группы с низким доходом имели ограниченный доступ к машинам и смартфонам](https://hbr.org/2013/04/the-hidden-biases-in-big-data), и их дорожные проблемы не отображались в этом приложении. Разработчики совместно с учеными исправили проблемы _равного доступа и цифрового неравенства_ для большей справедливости. | +| **Справедливость алгоритма** | 2018 год - В [исследовании гендерных оттенков](http://gendershades.org/overview.html) в университете MIT при оценке точности ИИ для задачи гендерной классификации товаров были обнаружены пробелы в точности для женщин и для "цветных" людей. В 2019 году [кредитная программа компании Apple](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) предлагала меньший кредитный лимит женщинам по сравнению с мужчинами. Оба случая иллюстрируют предвзятость, ведущую к социально-экономическому ущербу. | +| **Искажение фактов** | 2020 год - [Департамент штата Джорджия выпустил графики заболеваемости COVID-19](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening), которые ввели в заблуждение граждан насчёт трендов подтверждённых случаев своей хронологической неупорядоченностью. Данный пример показывает искажение фактов при помощи визуализации. | +| **Иллюзия свободного выбора** | 2020 год - Разработчики обучающего приложения [ABCmouse заплатили 10 миллионов долларов для урегулирования жалобы Федеральной торговой комиссии](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/), в которой родители были вынуждены платить за подписку, которую они не могли отменить. Данный случай иллюстрирует тёмную сторону систем с наличием выбора, в которых пользователей подталкивают к потенциально вредному выбору. | +| **Приватность данных и права пользователя** | 2021 год - [Утечка данных в компании Facebook](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) содержала данные 530 миллионов пользователей и повлекла штраф в 5 миллиардов долларов от Федеральной торговой комиссии. Компания отказалась предупреждать пользователей об утечке данных, нарушив тем самым права пользователей на прозрачность и приватный доступ. | + +Хотите узнать больше случаев из реальной жизни? Познакомьтесь с данными ресурсами: +* [Этика без прикрас](https://ethicsunwrapped.utexas.edu/case-studies) - этические дилеммы в различных отраслях. +* [Курс этики в науке о данных](https://www.coursera.org/learn/data-science-ethics#syllabus) - рассматриваются ключевые примеры из реальной практики. +* [Место, где что-то пошло не так](https://deon.drivendata.org/examples/) - список примеров от Deon. + +> 🚨 Вспомните реальные случаи из своей жизни. Сталкивались ли Вы сами или пострадали от подобных этических вызовов? Можете ли вы вспомнить по крайней мере ещё один случай, который иллюстрирует один из этических вызовов, которые мы обсудили в данном разделе? + +## Прикладная этика + +Мы рассмотрели этические концепции, вызовы и случаи из реальной жизни. Но как мы можем начать _применять_ этические принципы в наших проектах? И как мы должны _оперировать_ данными принципами для лучшего управления? Давайте рассмотрим некоторые решения проблем из реальной практики. + +### 1. Профессиональные нормы поведения + +Профессиональные нормы поведения в организации являются способом _стимулирования_ участников для поддержания её этических принципов и целей. Зафиксированные нормы являются _моральным ориентиром_ для поведения на работе, помощи сотрудникам в принятии решений, которые соответствуют принципам их организации. Они имеют силу только при добровольном согласии участников, однако многие организации предлагают дополнительные вознаграждения и штрафы, чтобы мотивировать участников на согласие. + +Примеры: + + * Нормы этики в [университете Оксфорда в городе Мюнхен](http://www.code-of-ethics.org/code-of-conduct/) + * Нормы поведения в [Ассоциации науки о данных](http://datascienceassn.org/code-of-conduct.html) (написаны в 2013 году) + * Этические и профессиональные нормы в [Ассоциации вычислительной техники](https://www.acm.org/code-of-ethics) (действуют с 1993 года) + +> 🚨 Имеете ли Вы отношение к организациям, занимающимся разработкой ПО и наукой о данных? Исследуйте их сайты на наличие зафиксированных норм этики. Какие этические принципы там определены? Как они "стимулируют" участников следовать принятым нормам? + + +### 2. Списки этических норм + +В то время как нормы профессионального поведения определяют необходимое _этичное поведение_ участников, они также принуждают к соблюдению [установленных ограничений](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), особенно в крупных проектах. Вместо этого, многие эксперты в науке о данных [поддерживают использование списков](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), которые **соединяют принципы и реальные практики** более определённым и действенным методом. + +Подобные списки конвертируют размытые вопросы в "да/нет" пункты, которые могут быть введены в действие и которые могут отслеживаться как часть стандартного процесса выпуска продукта. + +Примеры: + * [Deon](https://deon.drivendata.org/) - список этических пунктов общего назначения, созданный по [промышленным рекомендациям](https://deon.drivendata.org/#checklist-citations) с поддержкой интерфейса командной строки для удобной интеграции. + * [Список аудита приватности](https://cyber.harvard.edu/ecommerce/privacyaudit.html) содержит общие рекомендации для обработки информации с точки зрения правового и социального воздействия. + * [Чеклист справедливого ИИ](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) создан разработчиками систем ИИ для поддержки интеграции проверок справедливости в цикл разработки продуктов с ИИ. + * [22 вопросв о этике в данных и ИИ](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - более открытый список, ориентированный на первоначальное обнаружение этических проблем в контексте структуры, реализации и организации. + +### 3. Регулирование в области этики + +Этика определяет общие ценности и правильные поступки _на добровольной основе_. **Соглашение** в свою очередь принуждает _следовать закону_, если он определён, там, где он определён. **Руководство** покрывает широкий спектр способов, которыми организации пользуются для продвижения этических принципов и согласия с установленными законами. + +На сегодняшний день, руководство по этике принимает две формы внутри организации. Во-первых, оно определяет принципы **этичного ИИ** и устанавливает правила его внедрения для всех проектов организации, связанных с ИИ. Во-вторых, оно действует в соглашении с государственным **регулированием в области защиты данных** в регионах представительства организации. + + +Примеры государственного регулирования в области защиты данных и конфиденциальности: + + * `1974 год`, [Закон США о конфиденциальности](https://www.justice.gov/opcl/privacy-act-1974), регулирующий сбор, использование и раскрытие персональной информации _на государственном уровне_. + * `1996 год`, [Закон США о переносимости и подотчетности медицинского страхования (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html), защищающий персональные данные в сфере здравоохранения. + * `1998 год`, [Закон США о защите конфиденциальности детей в Интернете (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule), защищающий конфиденциальность данных детей младше 13 лет. + * `2018 год`, [Общие правила защиты данных (GDPR)](https://gdpr-info.eu/), обеспечивающий пользовательские права, защиту данных и конфиденциальность. + * `2018`, [Закон Калифорнии о конфиденциальности потребителей (CCPA)](https://www.oag.ca.gov/privacy/ccpa), предоставляющий потребителям больше _прав_ в области своих (персональных) данных. + * `2021`, китайский [Закон о защите личной информации](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/), принятый в недавном времени, применяющий одно из самых строгих в мире регулирований в области конфиденциальности данных в сети Интернет. + +> 🚨 Принятые Европейским Союзом Общие правила защиты данных (GDPR) остаются на сегодняшний день наиболее влиятельным регулированием в области приватности данных. Знали ли Вы, что они также определяют [8 прав пользователей](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) в области защиты конфиденциальности и персональных данных граждан? Узнайте подробнее, что они из себя представляют и почему они имеют значение. + +### 4. Этичная культура + +Отметим, что остаётся неосязаемый промежуток между _соглашением_ (делать достаточно, чтобы оставаться "в рамках закона") и [системными проблемами](https://www.coursera.org/learn/data-science-ethics/home/week/4) (такими, как потеря гибкости, информационная несимметричность и несправедливое распределение), который может ускорить применение ИИ в качестве оружия. + +Решение этой проблемы кроется в [совместных подходах к определению этичных культур](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f), которые выстраивают эмоциональные связи и постоянные общие ценности _во всех организациях_ отрасли. Это требует более глубокой [формализации культуры в области этики данных](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) в организациях, позволяющей _любому_ [потянуть за ниточки](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (чтобы поднять вопрос этики на ранней стадии) и провести _оценку этичности_ (например, при найме на работу) основных критериев формирования команд в проектах с ИИ. + +--- +## [Проверочный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/3) 🎯 +## Дополнительные источники + +Курсы и книги помогут Вам понять основные этические принципы и вызовы, а примеры из реальной практики помогут с прикладными вопросами этики в контексте реального мира. Вот некоторые ресурсы, с которых можно начать: + +* [Машинное обучение для начинающих (на англ.)](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - курс о справедливости от компании Microsoft. +* [Принципы ответственного ИИ](https://docs.microsoft.com/ru-ru/learn/modules/responsible-ai-principles/) - бесплатный курс от Microsoft Learn. +* [Этика в науке о данных](https://resources.oreilly.com/examples/0636920203964) - электронная книга издательства O'Reilly (M. Loukides, H. Mason и др.) +* [Этика науки о данных](https://www.coursera.org/learn/data-science-ethics#syllabus) - онлайн курс от Мичиганского университета. +* [Этика без прикрас](https://ethicsunwrapped.utexas.edu/case-studies) - случаи из реальной практики от Техасского университета. + +# Домашнее задание + +[Опишите реальный случай из этики в науке о данных](assignment.ru.md) diff --git a/1-Introduction/02-ethics/translations/assignment.ru.md b/1-Introduction/02-ethics/translations/assignment.ru.md new file mode 100644 index 00000000..f5452d38 --- /dev/null +++ b/1-Introduction/02-ethics/translations/assignment.ru.md @@ -0,0 +1,21 @@ +## Опишите реальный случай из этики в науке о данных + +## Порядок выполнения + +Вы узнали о различных [проблемах в науке о данных](README.ru.md#2-проблемы-этики) и увидели некоторые [случаи из реальной практики](README.ru.md#3-случаи-из-реальной-практики), отражающие этические вызовы в контексте реального мира. + +В данном домашнем задании Вам предстоит написать свой собственный пример, отражающий этический вызов, из Вашего личного опыта или окружения. Следуйте шагам: + +1. `Выберите этический вызов, относящийся к науке о данных`. Взгляните на [примеры из лекции](README.ru.md#2-проблемы-этики) или ознакомьтесь с примерами из Интернета, например [список Deon](https://deon.drivendata.org/examples/). + +2. `Опишите случай из реальной практики`. Вспомните ситуацию, о которой Вы слышали (заголовки, исследования и т.п.) или в которой принимали участие (на местном уровне), когда именно этот этический вызов проявился. Обдумайте вопросы в рамках этики данных и обсудите ущерб или непреднамеренные последствия, которые имели место вследствие этой проблемы. Дополнительный вопрос: подумайте о потенциальных решениях или процессах, которые могли бы помочь смягчить или устранить неблагоприятное воздействие этого вызова. + + +3. `Приведите список использованных источников`. Поделитесь одним или несколькими ресурсами (ссылки на статьи, пост в личном блоге или изображение, исследовательская онлайн статья и др.), чтобы подтвердить достоверность приведённого случая. Дополнительный вопрос: поделитесь ресурсами, которые описывают потенциальный ущерб и последствия от инцидента, или выделите положительные изменения для предотвращения его появления. + + +## Оценка + +Отлично | Достаточно | Нуждается в улучшении +--- | --- | -- | +Найден один или более этических вызовов.

Приведённый пример полно описывает случай из реальной жизни, отражающий выбранный этический вызов и подчёркивающий нежелательные последствия или ущерб, которые он вызвал.

Приведён по крайней мере один источник в доказательство существования данной проблемы. | Приведёт один этический вызов.

Кратко описан по крайне мере один нанесённый ущерб или одно последствие.

Приведены неубедительные доказательства существования данной проблемы или не приведены вообще. | Вызов верно определён.

Приведённое описание или источники не отображают или не подтверждают существование выбранной проблемы. | From f03f44adb30a19e1b806ff3e8ad64ad2da97f7aa Mon Sep 17 00:00:00 2001 From: jiwooshim <60967141+jiwooshim@users.noreply.github.com> Date: Mon, 25 Oct 2021 10:39:40 +0800 Subject: [PATCH 094/234] Create README.ko.md Korean Translation of REDAME.md --- translations/README.ko.md | 112 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 translations/README.ko.md diff --git a/translations/README.ko.md b/translations/README.ko.md new file mode 100644 index 00000000..d3ae509f --- /dev/null +++ b/translations/README.ko.md @@ -0,0 +1,112 @@ +# 초보자를 위한 데이터 사이언스 - 커리큘럼 + +[![깃허브 라이센스](https://img.shields.io/github/license/microsoft/Data-Science-For-Beginners.svg)](https://github.com/microsoft/Data-Science-For-Beginners/blob/master/LICENSE)) +[![깃허브 기여자](https://img.shields.io/github/contributors/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/graphs/contributors/)) +[![깃허브 문제](https://img.shields.io/github/issues/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/issues/)) +[![깃허브 풀백](https://img.shields.io/github/issues-pr/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/pulls/)) +[![PRs 환영](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) + +[![GitHub 시청자](https://img.shields.io/github/watchers/microsoft/Data-Science-For-Beginners.svg?style=social&label=)시청)](https://GitHub.com/microsoft/Data-Science-For-Beginners/watchers/) +[![깃허브 포크](https://img.shields.io/github/forks/microsoft/Data-Science-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Data-Science-For-Beginners/network/)) +[![깃허브 스타](https://img.shields.io/github/stars/microsoft/Data-Science-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Data-Science-For-Beginners/stargazers/)) + +Microsoft의 Azure Cloud Advocates는 데이터 과학에 관한 10주짜리 20개 레슨 커리큘럼을 제공하게 된 것을 기쁘게 생각합니다. 각 레슨에는 예습 및 복습 퀴즈, 레슨을 완료하기 위한 서면 지침, 해결책 및 과제가 포함됩니다. 프로젝트 기반 교육학을 통해 새로운 기술을 익힐 수 있는 검증된 방법으로 학습 할 수 있습니다. + +**Hearty thanks to our authors:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer). + +**🙏 Special thanks 🙏 to our [Microsoft Student Ambassador](https://studentambassadors.microsoft.com/) authors, reviewers and content contributors,** notably Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), +[Sheena Narula](https://www.linkedin.com/in/sheena-narua-n/), Tauqeer Ahmad, Yogendrasingh Pawar + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Title.png)| +|:---:| +| 초보자를 위한 데이터 사이언스 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + + +# 시작하기 + +> **선생님들께**, 이 커리큘럼의 사용 방법에 대해 [일부 제안사항](for-teachers.md)이 있습니다. 이 [포럼에서](https://github.com/microsoft/Data-Science-For-Beginners/discussions) 의견을 주시면 감사하겠습니다. + +> **학생분들께**, 스스로 이 커리큘럼을 활용하려면 강의 전 퀴즈부터 시작하여 강의 전 학습 과정을 읽고 나머지 과제를 완료하면 됩니다. 솔루션 코드를 복사하는 대신 레슨을 이해하여 프로젝트를 만들어 보십시오. 이 코드들의 답안은 각 프로젝트 지향 레슨에 있는 /solutions 폴더에서 찾을 수 있습니다. 또 다른 방법으로는 친구들과 함께 학습 내용을 살펴보는 스터디 그룹을 만드는 것입니다. 추가 학습은 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa)을 추천합니다. + +# 팀을 만나다 + +[![Promo video](ds-for-beginners.png)](https://youtu.be/8mzavjQSMM4 "Promo video") + + +> 🎥 프로젝트를 만든 사람들에 대한 동영상을 보려면 위의 이미지를 클릭하십시오! + +# 커리큘럼 + +우리는 이 커리큘럼을 구축하는 동안 두 가지 교육학 교리를 선택했습니다. 프로젝트 기반이며 빈번한 퀴즈를 포함하도록 하는 것입니다. 이 시리즈가 끝날 때까지 학생들은 윤리적 개념, 데이터 준비, 다양한 데이터 작업 방법, 데이터 시각화, 데이터 분석, 데이터 과학의 실제 사용 사례 등을 포함한 데이터 과학의 기본 원리를 배우게 됩니다. + +또한, 수업 전 간단한 퀴즈는 학생이 주제를 학습하려는 의도를 정하고, 수업 후 두 번째 퀴즈는 더 많은 내용을 습득할 수 있도록 합니다. 이 커리큘럼은 유연하고 재미있도록 설계되었으며 전체 또는 부분적으로 수강할 수 있습니다. 프로젝트는 소규모로 시작하여 10주가 끝날 때까지 단계별로 점점 더 복잡해집니다. + + +> [행동 강령](CODE_OF_CONITION.md), [기여](CONTRIBUTING.md), [번역](TRANSLATIONS.md) 지침을 참고하세요. 우리는 당신의 피드백을 환영합니다! + +## 각 레슨은 다음을 포함합니다. + +- 스케치노트(옵션) +- 보조 비디오(옵션) +- 사전 예습 퀴즈 +- 서면 수업 +- 프로젝트 기반 레슨: 개인 프로젝트 구축 방법에 대한 단계별 가이드 +- 쪽지 시험 +- 챌린지 +- 보충 학습자료 +- 과제 +- 복습 퀴즈 + +> **퀴즈에 대한 참고사항*: 모든 퀴즈는 [이 앱에](https://white-water-09ec41f0f.azurestaticapps.net/) 포함되어 있으며 각 3문항씩 총 40개의 퀴즈가 있습니다. 퀴즈 앱은 교육 과정과 연결되어 있지만, 원하는 경우 따로 퀴즈 앱을 실행할 수도 있습니다. 자세한 사항은 퀴즈 앱 폴더 내의 지침을 따르십시오. + +## 세부 수업내용 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Roadmap.png)| +|:---:| +| 초보자를 위한 데이터 사이언스 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + + +| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | Defining Data Science | [Introduction](1-Introduction/README.md) | Learn the basic concepts behind data science and how it’s related to artificial intelligence, machine learning, and big data. | [lesson](1-Introduction/01-defining-data-science/README.md) [video](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| 02 | Data Science Ethics | [Introduction](1-Introduction/README.md) | Data Ethics Concepts, Challenges & Frameworks. | [lesson](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| 03 | Defining Data | [Introduction](1-Introduction/README.md) | How data is classified and its common sources. | [lesson](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 04 | Introduction to Statistics & Probability | [Introduction](1-Introduction/README.md) | The mathematical techniques of probability and statistics to understand data. | [lesson](1-Introduction/04-stats-and-probability/README.md) [video](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 05 | Working with Relational Data | [Working With Data](2-Working-With-Data/README.md) | Introduction to relational data and the basics of exploring and analyzing relational data with the Structured Query Language, also known as SQL (pronounced “see-quell”). | [lesson](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| 06 | Working with NoSQL Data | [Working With Data](2-Working-With-Data/README.md) | Introduction to non-relational data, its various types and the basics of exploring and analyzing document databases. | [lesson](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| +| 07 | Working with Python | [Working With Data](2-Working-With-Data/README.md) | Basics of using Python for data exploration with libraries such as Pandas. Foundational understanding of Python programming is recommended. | [lesson](2-Working-With-Data/07-python/README.md) [video](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | Data Preparation | [Working With Data](2-Working-With-Data/README.md) | Topics on data techniques for cleaning and transforming the data to handle challenges of missing, inaccurate, or incomplete data. | [lesson](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | Visualizing Quantities | [Data Visualization](3-Data-Visualization/README.md) | Learn how to use Matplotlib to visualize bird data 🦆 | [lesson](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | Visualizing Distributions of Data | [Data Visualization](3-Data-Visualization/README.md) | Visualizing observations and trends within an interval. | [lesson](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | Visualizing Proportions | [Data Visualization](3-Data-Visualization/README.md) | Visualizing discrete and grouped percentages. | [lesson](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | Visualizing Relationships | [Data Visualization](3-Data-Visualization/README.md) | Visualizing connections and correlations between sets of data and their variables. | [lesson](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | Meaningful Visualizations | [Data Visualization](3-Data-Visualization/README.md) | Techniques and guidance for making your visualizations valuable for effective problem solving and insights. | [lesson](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | Introduction to the Data Science lifecycle | [Lifecycle](4-Data-Science-Lifecycle/README.md) | Introduction to the data science lifecycle and its first step of acquiring and extracting data. | [lesson](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | Analyzing | [Lifecycle](4-Data-Science-Lifecycle/README.md) | This phase of the data science lifecycle focuses on techniques to analyze data. | [lesson](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | Communication | [Lifecycle](4-Data-Science-Lifecycle/README.md) | This phase of the data science lifecycle focuses on presenting the insights from the data in a way that makes it easier for decision makers to understand. | [lesson](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | Data Science in the Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | This series of lessons introduces data science in the cloud and its benefits. | [lesson](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 18 | Data Science in the Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Training models using Low Code tools. |[lesson](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 19 | Data Science in the Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Deploying models with Azure Machine Learning Studio. | [lesson](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) and [Maud](https://twitter.com/maudstweets) | +| 20 | Data Science in the Wild | [In the Wild](6-Data-Science-In-Wild/README.md) | Data science driven projects in the real world. | [lesson](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | + +## 오프라인 액세스 + +[Docsify](https://docsify.js.org/#/)를 사용하여 이 문서를 오프라인으로 실행할 수 있습니다. 이 repo를 포크하여 로컬 컴퓨터에 [Docsify (설치)](https://docsify.js.org/#/quickstart)를 설치한 다음 이 repo의 루트 폴더에 'docsify serve'를 입력하면 됩니다. 웹 사이트는 로컬 호스트의 포트 3000에서 제공됩니다: 'localhost:3000'. + +> 참고: 노트북은 Docsify를 통해 렌더링되지 않으므로 노트북을 실행해야 할 때는 Python 커널을 실행하는 VS Code에서 별도로 렌더링하십시오. + +## PDF + +[여기](https://microsoft.github.io/Data-Science-For-Beginners/pdf/readme.pdf) 링크를 통해 커리큘럼의 PDF를 찾아보십시오. + +# 기여 + +번역에 기여하시겠습니까? 커리큘럼의 전부 또는 일부를 번역하려면 [번역](TRANSLATIONS.md)의 내용을 참고하십시오. + +# 기타 커리큘럼 + +우리 팀은 아래의 다른 커리큘럼도 제작 및 제공합니다! + +- [초보자용 웹 개발](https://aka.ms/webdev-beginners) +- [초보자용 IoT](https://aka.ms/iot-beginners) +- [초보자용 데이터 과학](https://aka.ms/datascience-beginners) From 131157e87c347e31c1a587c0d9a1c0ccf1695755 Mon Sep 17 00:00:00 2001 From: alo_sanchez Date: Sun, 24 Oct 2021 21:59:13 -0500 Subject: [PATCH 095/234] [ES-spanish] Translation Cap 3 and 09 - Fixed some typos --- .../translations/README.es.md | 2 +- .../translations/assignment.es.md | 2 +- 3-Data-Visualization/translations/README.es.md | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/3-Data-Visualization/09-visualization-quantities/translations/README.es.md b/3-Data-Visualization/09-visualization-quantities/translations/README.es.md index e01f7379..80167cf5 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/README.es.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/README.es.md @@ -1,4 +1,4 @@ -# Visualización de cantidades +# Visualización de Cantidades |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/09-Visualizing-Quantities.png)| |:---:| diff --git a/3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md b/3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md index 60fcb875..c40ce264 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/assignment.es.md @@ -1,4 +1,4 @@ -# Líneas, Scatters y Barras +# Líneas, Dispersiones y Barras ## Instrucciones diff --git a/3-Data-Visualization/translations/README.es.md b/3-Data-Visualization/translations/README.es.md index 63386387..602e1969 100644 --- a/3-Data-Visualization/translations/README.es.md +++ b/3-Data-Visualization/translations/README.es.md @@ -8,11 +8,11 @@ Visualizar datos es una de las tareas más importantes de un científico de dato En estas cinco lecciones, podrás explorar datos provenientes de la naturaleza y crear interesantes y hermosas visualizaciones usando varias técnicas. ### Tópicos -1. [Visualización de cantidades](09-visualization-quantities/README.md) -2. [Visualización de la distribución](10-visualization-distributions/README.md) -3. [Visualización de proporciones](11-visualization-proportions/README.md) -4. [Visualización de relaciones](12-visualization-relationships/README.md) -5. [Hacer visualizaciones significativas](13-meaningful-visualizations/README.md) +1. [Visualización de cantidades](../09-visualization-quantities/translations/README.es.md) +2. [Visualización de distribuciones](../10-visualization-distributions/translations/README.es.md) +3. [Visualización de proporciones](../11-visualization-proportions/translations/README.es.md) +4. [Visualización de relaciones](../12-visualization-relationships/translations/README.es.md) +5. [Hacer visualizaciones significativas](../13-meaningful-visualizations/translations/README.es.md) ### Créditos From 0ce31143d518ca62288fca94f1155e70efc29752 Mon Sep 17 00:00:00 2001 From: sarthak Date: Mon, 25 Oct 2021 09:57:25 +0545 Subject: [PATCH 096/234] added nepali translation oF DS in wild --- 6-Data-Science-In-Wild/translations/README.Nepali.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 6-Data-Science-In-Wild/translations/README.Nepali.md diff --git a/6-Data-Science-In-Wild/translations/README.Nepali.md b/6-Data-Science-In-Wild/translations/README.Nepali.md new file mode 100644 index 00000000..be4c0202 --- /dev/null +++ b/6-Data-Science-In-Wild/translations/README.Nepali.md @@ -0,0 +1,11 @@ +# जंगली प्रारूप मा डाटा विज्ञान + +डाटा विज्ञानको वास्तविक दुनियामा प्रयोग। + +### विषय + +1. [वास्तविक दुनियामा डाटा विज्ञान](20-Real-World-Examples/README.md) + +### क्रेडिट + +[नित्या नरसिम्हन](https://twitter.com/nitya) द्वारा ❤️ को साथ लेखिएको। From 9fdf226aabe6630db2abbe37a87b6dbe2425ca1d Mon Sep 17 00:00:00 2001 From: pranavsingla100 <90247887+pranavsingla100@users.noreply.github.com> Date: Mon, 25 Oct 2021 17:42:33 +0530 Subject: [PATCH 097/234] Create for-teachers.hi.md --- translations/for-teachers.hi.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 translations/for-teachers.hi.md diff --git a/translations/for-teachers.hi.md b/translations/for-teachers.hi.md new file mode 100644 index 00000000..be538c76 --- /dev/null +++ b/translations/for-teachers.hi.md @@ -0,0 +1,23 @@ +## शिक्षकों के लिए + +क्या आप इस पाठ्यक्रम का उपयोग अपनी कक्षा में करना चाहेंगे? कृपया निःसंकोच! + +वास्तव में, आप इसे GitHub क्लासरूम का उपयोग करके GitHub के भीतर ही उपयोग कर सकते हैं। + +ऐसा करने के लिए, इस रेपो का प्रतिरूप करें। आपको प्रत्येक पाठ के लिए एक रेपो बनाने की आवश्यकता होगी, इसलिए आपको प्रत्येक फ़ोल्डर को एक अलग रेपो में निकालने की आवश्यकता होगी। इस तरह, [GitHub Classroom](https://classroom.github.com/classrooms) प्रत्येक पाठ को अलग से उठा सकता है। + +ये [पूरे निर्देश](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) से आपको पता चल जाएगा कि आप अपनी कक्षा कैसे सेट अप करें। + +## रेपो का इस प्रकार उपयोग करना + +यदि आप इस रेपो का उपयोग करना चाहते हैं, जैसा कि यह वर्तमान में खड़ा है, बिना गिटहब क्लासरूम का उपयोग किए, यह भी किया जा सकता है। आपको अपने छात्रों के साथ संवाद करने की आवश्यकता होगी कि कौन सा पाठ एक साथ काम करना है। + +एक ऑनलाइन प्रारूप (ज़ूम, टीम, या अन्य) में आप क्विज़ के लिए ब्रेकआउट रूम बना सकते हैं, और छात्रों को सीखने के लिए तैयार होने में मदद करने के लिए सलाह दे सकते हैं। फिर छात्रों को प्रश्नोत्तरी के लिए आमंत्रित करें और एक निश्चित समय पर अपने उत्तर 'मुद्दों' के रूप में जमा करें। आप असाइनमेंट के साथ भी ऐसा ही कर सकते हैं, यदि आप चाहते हैं कि छात्र खुले में मिलकर काम करें। + +यदि आप अधिक निजी प्रारूप पसंद करते हैं, तो अपने छात्रों से पाठ्यक्रम, पाठ दर पाठ, निजी रिपो के रूप में अपने स्वयं के गिटहब रेपो में फोर्क करने के लिए कहें, और आपको पहुंच प्रदान करें। फिर वे क्विज़ और असाइनमेंट को निजी तौर पर पूरा कर सकते हैं और उन्हें आपके क्लासरूम रेपो पर मुद्दों के माध्यम से आपको सबमिट कर सकते हैं। + +ऑनलाइन कक्षा प्रारूप में इस काम को करने के कई तरीके हैं। कृपया हमें बताएं कि आपके लिए सबसे अच्छा क्या काम करता है! + +## कृपया हमें अपने विचार दें! + +हम इस पाठ्यक्रम को आपके और आपके छात्रों के लिए कारगर बनाना चाहते हैं। कृपया हमें चर्चा बोर्डों में प्रतिक्रिया दें! From 2e6985efaf96412597f594ad7f64ba36578cecb0 Mon Sep 17 00:00:00 2001 From: pranavsingla100 <90247887+pranavsingla100@users.noreply.github.com> Date: Mon, 25 Oct 2021 18:00:19 +0530 Subject: [PATCH 098/234] Update for-teachers.hi.md --- translations/for-teachers.hi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/for-teachers.hi.md b/translations/for-teachers.hi.md index be538c76..98cd0b39 100644 --- a/translations/for-teachers.hi.md +++ b/translations/for-teachers.hi.md @@ -1,6 +1,6 @@ ## शिक्षकों के लिए -क्या आप इस पाठ्यक्रम का उपयोग अपनी कक्षा में करना चाहेंगे? कृपया निःसंकोच! +क्या आप इस पाठ्यक्रम का उपयोग अपनी कक्षा में करना चाहेंगे? कृपया निःसंकोच करें! वास्तव में, आप इसे GitHub क्लासरूम का उपयोग करके GitHub के भीतर ही उपयोग कर सकते हैं। From 38c8ae68c54f72007de32213ed66fb0fd172a14a Mon Sep 17 00:00:00 2001 From: alo_sanchez Date: Mon, 25 Oct 2021 08:12:19 -0500 Subject: [PATCH 099/234] [ES-spanish] Translation Cap 3-10 - Visualizing Distributions #132 --- .../translations/README.es.md | 193 ++++++++++++++++++ .../translations/assignment.es.md | 10 + 2 files changed, 203 insertions(+) create mode 100644 3-Data-Visualization/10-visualization-distributions/translations/assignment.es.md diff --git a/3-Data-Visualization/10-visualization-distributions/translations/README.es.md b/3-Data-Visualization/10-visualization-distributions/translations/README.es.md index e69de29b..5849ae88 100644 --- a/3-Data-Visualization/10-visualization-distributions/translations/README.es.md +++ b/3-Data-Visualization/10-visualization-distributions/translations/README.es.md @@ -0,0 +1,193 @@ +# Visualización de Distribuciones + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| Visualización de Distribuciones - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +En la lección anterior, aprendiste algunos datos interesantes sobre un conjunto de datos acerca de las aves de Minnesota. Encontraste algunos datos erróneos visualizando los valores atípicos y observaste las diferencias entre las categorías de aves según su longitud máxima. + +## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) +## Explora el conjunto de datos sobre aves + +Otra forma de profundizar en los datos es observar su distribución, o cómo se organizan los datos a lo largo de un eje. Quizás, por ejemplo, te gustaría conocer la distribución general para este conjunto de datos, de la envergadura máxima o la masa corporal máxima de las aves de Minnesota. + +Descubramos algunos hechos sobre las distribuciones de los datos en este conjunto de datos. En el archivo _notebook.ipynb_ en la raíz de la carpeta de esta lección, importa Pandas, Matplotlib, y tus datos: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +En general, puedes ver rápidamente la forma en que se distribuyen los datos usando un gráfico de dispersión como hicimos en la lección anterior: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` + +Esto da una visión general de la distribución de la longitud del cuerpo por orden de las aves, pero no es la forma óptima de mostrar las verdaderas distribuciones. Esa tarea se suele realizar creando un Histograma. + +## Trabajando con histogramas + +Matplotlib ofrece muy buenas formas de visualizar la distribución de los datos utilizando Histogramas. Este tipo de gráfico es como un gráfico de barras en el que la distribución se puede ver a través de la subida y bajada de las barras. Para construir un histograma, necesitas datos numéricos. Para construir un Histograma, puedes trazar un gráfico definiendo el tipo como 'hist' para Histograma. Este gráfico muestra la distribución de MaxBodyMass para todo el rango de datos numéricos del conjunto de datos. Al dividir el conjunto de datos que se le da en intervalos más pequeños, puede mostrar la distribución de los valores de los datos: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` +![distribución en todo el conjunto de datos](../images/dist1.png) + +Como puedes ver, la mayoría de los más de 400 pájaros de este conjunto de datos se encuentran en el rango de menos de 2000 para su masa corporal máxima. Puedes obtener más información sobre los datos cambiando el parámetro `bins` a un número mayor, algo así como 30: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` +![distribución en todo el conjunto de datos con un parámetro de bins más grande](../images/dist2.png) + +Este gráfico muestra la distribución de forma un poco más granular. Se podría crear un gráfico menos sesgado hacia la izquierda asegurándose de que sólo se seleccionan datos dentro de un rango determinado: + +Filtra tus datos para obtener sólo las aves cuya masa corporal es inferior a 60, y mostrar 40 `bins`: + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![histograma filtrado](../images/dist3.png) + +✅ Prueba otros filtros y puntos de datos. Para ver la distribución completa de los datos, elimina el filtro `['MaxBodyMass']` para mostrar las distribuciones etiquetadas. + +El histograma ofrece algunas mejoras de color y etiquetado para probar también: + +Crea un histograma 2D para comparar la relación entre dos distribuciones. Comparemos `MaxBodyMass` vs. `MaxLength`. Matplotlib ofrece una forma integrada de mostrar la convergencia utilizando colores más brillantes: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` +Parece haber una correlación esperada entre estos dos elementos a lo largo de un eje esperado, con un punto de convergencia particularmente fuerte: + +![diagrama 2D](../images/2D.png) + +Los histogramas funcionan bien por defecto para los datos numéricos. ¿Y si necesita ver las distribuciones según los datos de texto? +## Explorar el conjunto de datos para ver las distribuciones según los datos de texto + +Este conjunto de datos también incluye buena información sobre la categoría de ave, su género, especie y familia, así como su estado de conservación. Exploremos esta información sobre la conservación. Cuál es la distribución de las aves según su estado de conservación? + +> ✅ En el conjunto de datos, se utilizan varios acrónimos para describir el estado de conservación. Estas siglas proceden de la [Lista Roja de Categorías de la UICN](https://www.iucnredlist.org/), una organización que cataloga el estado de las especies. +> +> - CR: En peligro crítico +> - EN: En peligro de extinción +> - EX: Extinta +> - LC: Preocupación Menor +> - NT: Casi amenazada +> - VU: Vulnerable + +Estos son valores basados en texto, por lo que tendrás que hacer una transformación para crear un histograma. Utilizando el dataframe de FilteredBirds, muestra su estado de conservación junto con su envergadura mínima. ¿Qué es lo que ves? + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Max Body Mass') +plt.legend(); +``` + +![colación de la envergadura y la conservación](../images/histogram-conservation.png) + +No parece haber una buena correlación entre la envergadura mínima y el estado de conservación. Prueba otros elementos del conjunto de datos utilizando este método. También puedes probar diferentes filtros. ¿Encuentras alguna correlación? + +## Gráficos de densidad + +Habrás notado que los histogramas que hemos visto hasta ahora están "escalonados" y no fluyen suavemente en un arco. Para mostrar un gráfico de densidad más suave, puedes probar con un gráfico de densidad. + +Para trabajar con gráficos de densidad, familiarízate con una nueva biblioteca de trazado, [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html). + +Cargando Seaborn, intenta un gráfico de densidad básico: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![gráfico de densidad](../images/density1.png) + +Puedes ver cómo el gráfico se asemeja al anterior para los datos de envergadura mínima; sólo que es un poco más suave. De acuerdo con la documentación de Seaborn, "En relación con un histograma, KDE puede producir un gráfico que es menos desordenado y más interpretable, especialmente cuando se dibujan múltiples distribuciones. Pero tiene el potencial de introducir distorsiones si la distribución subyacente está acotada o no es suave. Al igual que un histograma, la calidad de la representación también depende de la selección de buenos parámetros de suavización." [fuente](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) En otras palabras, los valores atípicos, como siempre, harán que tus gráficos se comporten mal. + +Si quieres volver a ver esa línea dentada de MaxBodyMass en el segundo gráfico que construiste, podrías suavizarla muy bien recreándola con este método: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![línea de masa corporal lisa ](../images/density2.png) + +Si quieres una línea suave, pero no demasiado suave, edita el parámetro `bw_adjust`: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![línea de masa corporal menos suave](../images/density3.png) + +✅ Lee acerca de los parámetros disponibles para este tipo de gráfico y experimenta. + +Este tipo de gráfico ofrece bonitas visualizaciones explicativas. Con unas pocas líneas de código, por ejemplo, se puede mostrar la densidad de masa corporal máxima por orden de aves: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![masa corporal por orden](../images/density4.png) + +También puedes mapear la densidad de varias variables en un gráfico. Observa la longitud máxima y mínima de un ave en comparación con su estado de conservación: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![densidades múltiples, superpuestas](../images/multi.png) + +Tal vez valga la pena investigar si la agrupación de aves "Vulnerables" según su longitud tiene sentido o no. + +## 🚀 Desafío + +Los histogramas son un tipo de gráfico más sofisticado que los gráficos de dispersión básicos, los gráficos de barras o los gráficos de líneas. Haz una búsqueda en internet para encontrar buenos ejemplos del uso de histogramas. ¿Cómo se utilizan, qué demuestran y en qué campos o áreas de investigación suelen utilizarse? + +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/19) + +## Repaso y Autoestudio + +En esta lección, has utilizado Matplotlib y empezado a trabajar con Seaborn para mostrar gráficos más sofisticados. Investiga un poco sobre `kdeplot` en Seaborn, una "curva de densidad de probabilidad continua en una o más dimensiones". Lee [la documentación](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) para entender cómo funciona. + +## Asignación + +[Aplica tus habilidades](assignment.es.md) diff --git a/3-Data-Visualization/10-visualization-distributions/translations/assignment.es.md b/3-Data-Visualization/10-visualization-distributions/translations/assignment.es.md new file mode 100644 index 00000000..e054011d --- /dev/null +++ b/3-Data-Visualization/10-visualization-distributions/translations/assignment.es.md @@ -0,0 +1,10 @@ +# Aplica tus habilidades + +## Instrucciones + +Hasta ahora, has trabajado con el conjunto de datos de aves de Minnesota para descubrir información sobre las cantidades de aves y la densidad de población. Practica tu aplicación de estas técnicas probando un conjunto de datos diferente, quizás procedente de [Kaggle](https://www.kaggle.com/). Construye un cuaderno para contar una historia sobre este conjunto de datos, y asegúrate de utilizar histogramas al hablar de él. +## Rúbrica + +Ejemplar | Adecuado | Necesita mejorar +--- | --- | -- | +Un cuaderno se presenta con anotaciones sobre este conjunto de datos, incluyendo su fuente, y utiliza al menos 5 histogramas para descubrir hechos sobre los datos. | Un cuaderno se presenta con anotaciones incompletas o con errores. | Un cuaderno se presenta sin anotaciones e incluye errores. \ No newline at end of file From 324803974c44b7fe6ff09475e66b6dd539e40aa7 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Tue, 26 Oct 2021 20:15:58 +0530 Subject: [PATCH 100/234] Create assignment.hi.md --- .../translations/assignment.hi.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 1-Introduction/03-defining-data/translations/assignment.hi.md diff --git a/1-Introduction/03-defining-data/translations/assignment.hi.md b/1-Introduction/03-defining-data/translations/assignment.hi.md new file mode 100644 index 00000000..a68dc7fa --- /dev/null +++ b/1-Introduction/03-defining-data/translations/assignment.hi.md @@ -0,0 +1,65 @@ +# डाटासेट को वर्गीकृत करना + +## निर्देश + +इस असाइनमेंट मे निम्नलिखित प्रॉम्प्ट को देख कर डाटा को पहचाने व एक या उससे ज्यादा डाटा टाइप मे वर्गीकृत करें: + +**स्ट्रक्चर टाइप**: संरचित, अर्ध्य-संरचित अथवा असंरचित + +**वैल्यू टाइप**: गुणात्मक अथवा मात्रात्मक + +**सोर्स टाइप**: मुख्य अथवा माध्यमिक + +1. एक कंपनी को अधिग्रहित किया गया है और अब उसकी पेरन्ट कंपनी है| डाटा वैज्ञानिकों को पेरन्ट कंपनी से ग्राहकों के फओबने नंबर की सूची प्राप्त हुई है| + +स्ट्रक्चर टाइप: + +वैल्यू टाइप: + +सोर्स टाइप: + +--- + +2. एक स्मार्ट वाच उसको पहनने वाले का हृदय दर का माप ले रही है, जो की JSON फॉर्मैट मे है| + +स्ट्रक्चर टाइप: + +वैल्यू टाइप: + +सोर्स टाइप: + +--- + +3. कुछ कर्मचारियो का कार्यस्थल सर्वेक्षण जो की एक CSV फाइल मे संग्रहीत है| + +स्ट्रक्चर टाइप: + +वैल्यू टाइप: + +सोर्स टाइप: + +--- + +4. कुछ खगोल वैज्ञानिक एक आकाशगंगा के डेटाबेस को जांच रहे हैं जो अंतरिक्ष जांच से मिला है| उसकी डाटा मे हर आकाशगंगा मे स्थित ग्रहों की संख्या है| + +स्ट्रक्चर टाइप: + +वैल्यू टाइप: + +सोर्स टाइप: + +--- + +5. एक वयऐक्टिक फाइनैन्स एप कुछ APIs के सहारे एक व्यक्ति के आर्थिक खाते से जुड़ता है व उनकी कुल योग्यता निकलता है| यूजर अपनी सारी लेनदेन को एक स्प्रेड्शीट की तरह पंक्ति और स्तम्भ के रूप मे देख सकते हैं| + +स्ट्रक्चर टाइप: + +वैल्यू टाइप: + +सोर्स टाइप: + +## सरनामा + +अनुकरणीय | पर्याप्त | सुधार चाहिए +--- | --- | -- | +डाटा के स्तोत्र को पहचानने मे, उसको भंडारित मे और निर्णय लेने मे सक्षम थे | समाधान के कुछ हिस्से विस्तृत नहीं हैं, डाटा को संग्रहीत करना नहीं बताया गया है, कम से कम दो क्षेत्रों का वर्णन है | समाधान के सिर्फ कुछ ही हिस्सों का वर्णन है, सिर्फ एक क्षेत्र पर विचार किया है| From fb42e969bfa93aec62fec1d3ef3089f88487bfe4 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Wed, 27 Oct 2021 00:49:03 +0300 Subject: [PATCH 101/234] 1-3 defining data translated --- .../translations/README.ru.md | 76 +++++++++++++++++++ .../translations/assignment.ru.md | 65 ++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 1-Introduction/03-defining-data/translations/README.ru.md create mode 100644 1-Introduction/03-defining-data/translations/assignment.ru.md diff --git a/1-Introduction/03-defining-data/translations/README.ru.md b/1-Introduction/03-defining-data/translations/README.ru.md new file mode 100644 index 00000000..2c045fbd --- /dev/null +++ b/1-Introduction/03-defining-data/translations/README.ru.md @@ -0,0 +1,76 @@ +# Что такое данные? + +|![ Рисунок [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/03-DefiningData.png)| +|:---:| +|Что такое данные - _Рисунок [@nitya](https://twitter.com/nitya)_ | + +Данные - это факты, информация, наблюдения и измерения, которые используются для совершения открытий и для принятия информированных решений. Экземпляр данных - единичная сущность внутри датасета - коллекции экземпляров. Датасеты могут иметь различный формат и структуру в зависимости от источника данных и их природы. Например, данные о ежемесячной выручке компании могут лежать в таблице, а почасовые данные сердечного ритма с умных часов - в формате [JSON](https://stackoverflow.com/a/383699). Очень часто дата сайентистам приходится работать с разными типами данных в рамках одного датасета. + +В данном уроке мы сосредоточимся на описании и классификации данных по их характеристикам и источникам. + + +## [Вступительный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/4) + +## Классификация данных +**"Сырые" данные** - это необработанные данные, полученные из источника без дополнительного анализа или организации. Для того, чтобы понять, что содержит в себе датасет, необходимо привести данные к формату, одинаково понятному как человеку, так и методам, которые могут быть использованы при их анализе. Структура датасета характеризует его содержание, которое делится на структурированные, неструктурированные и полуструктурированные данные. Эти типы структуры могут изменяться в зависимости от источника, но в конечном счёте все равно принадлежат одной из трёх упомянутых категорий. + + +### Количественные данные +Количественные данные - это численные наблюдения внутри датасета, которые обычно могут быть проанализированы, измерены и использованы при расчетах. Примеры таких данных: население страны, рост человека или поквартальная выручка компании. При дополнительном анализе, количественные данные могут быть использованы для обнаружения сезонных трендов в Индексе качества воздуха (AQI) или при оценке вероятности пробок в час пик в обычный рабочий день. + + +### Качественные данные +Качественные данные, также известные как категориальные, - это данные, которые не могут быть объективно измерены, в отличие от количественных наблюдений. В общем случае, они представляют из себя различные форматы субъективных данных, которые оценивают качество чего-либо, например товара или процесса. Иногда, качественные данные представлены в численном формате, но не могут быть обработаны обычными математическими методами, как например номера телефонов или временные интервалы. Примеры качественных данных: комментарии к видео, марка и модель автомобиля, любимый цвет Вашего близкого друга. Количественные данные можно использовать для того, чтобы понять, какие товары больше нравятся потребителями или определить популярные ключевые слова в резюме претендентов. + + +### Структурированные данные +Структурированные данные - это данные, которые организованы в строки и столбцы, при этом каждая строка имеет одинаковый набор столбцов. Стоблцы обозначают величину определённого типа и имеют название, отражающее эту величину, в то время как строки содержат значения этой величины. Столбцы часто имеют специальный набор правил или ограничений для значений, чтобы гарантировать соответствие между столбцом и значениями в нём. Представьте таблицу клиентов, в которой каждая строка должна иметь номер телефона и номера телефонов никогда не содержат букв. Таким образом, можно применить правило к столбцу номеров телефона, чтобы убедиться, что он не содержит пустых значений и содержит только цифры. + +Преимущество структурированных данных в том, что они могут быть организованы таким образом, который соотносится с другим набором структурированных данных. Однако, из-за того, что данные должны быть организованны определённым способом, внесение изменений в общую структуру может быть затруднительным. Например, добавление колонки с адресом электронного ящика в таблицу клиентов, которая не может быть пустой, означает, что Вам необходимо продумать, как добавить эти значения в существующие строки датасета, соответствующие клиентам. + +Примеры структурированных данных: таблицы, реляционные базы данных, телефонные номера, выписки из банка. + + +### Неструктурированные данные +Неструктурированные данные обычно не могут быть организованы по строкам или столбцам и не имеют строгого формата и набора правил. Благодаря тому, что неструктурированные данные содержат меньше ограничений на свою структуру, добавить новую информацию в них гораздо легче, чем в случае со структурированными данными. Если датчик, измеряющий давление каждые две минуты, получит обновление, которое позволит измерять и сохранять температуру, то в случае неструктурированных данных нет необходимости изменять уже существующие данные. Однако, такой подход требует более тщательного анализа и исследования выбранного типа данных. Например, специалист, который хочет найти среднюю температуру за предыдущий месяц из показаний датичков, может обнаружить, что датчики в некоторых случаях записали "е" чтобы обозначить поломку, соответственно, данные будут неполными. + +Примеры неструктурированных данных: текстовые файлы, текстовые сообщения, видеофайлы. + + +### Полуструктурированные данные +Полуструктурированные данные имеют свойства как структурированных, так и неструктурированных данных. Обычно, они не соответствуют табличному формату, но организованы таким образом, который считается структурированным и могут иметь фиксированный формат данных и набор правил. Структура может отличаться от источника к источнику, от строго определённой иерархии до чего-то более гибкого, что позволяет более простое слияние с новой информацией. Метаданные - это индикаторы, которые помогают понять, как данные организованы и хранятся, и имеют различные наименования в зависимости от типа данных. Наиболее распространённые наименования метаданных: теги, элементы, сущности и аттрибуты. Например, обычное электронное письмо имеет тему, тело и набор адресатов и может быть организовано по адресам и датам отправки. + +Примеры полуструктурированных данных: HTML страницы, CSV файлы, файлы JSON. + +## Источники данных + +Источник данных - место, где данные были изначально сгенерированы, или где они "лежат", оно может отличаться от того, как и когда данные были собраны. Данные, сгенерированные пользователем (пользователями) называются первичными, а собранные из источника и пригодные для использования - вторичными. Например, группа специалистов, собравших наблюдения в тропическом лесу, буду называть их первичными, а если они поделятся ими с другими, то относительно другой группы данные будут считаться вторичными. + +Базы данных - общепринятый источник данных, который управляется и поддерживается системой управления базой данных (СУБД), в которой пользователи при помощи команд инициируют запросы для получения данных. В качестве источников могут выступать аудиофайлы, изображения, видеофайлы, а также таблицы, например файлы Excel. Интернет - распространённое место для хранения данных, где можно найти как базы данных, так и файлы. Прикладные программные интерфейсы, также известные как API, дают программистам возможность создавать различные способы обмена данными с внешними пользователями через Интернет, а парсинг веб-страниц извлекает информацию с сайтов. На уроках [работы с данными](../../../2-Working-With-Data) мы обратим внимание на то, как использовать различные источники данных. + +## Заключение + +На данном уроке мы изучили: + +- Что такое данные +- Как можно описать данные +- Классификацию данных +- Где хранятся данные + +## 🚀 Задача + +Портал Kaggle - отличный источник датасетов. Воспользуйтесь [средством поиска по датасетам](https://www.kaggle.com/datasets), чтобы найти интересные и охарактеризовать 3-5 датасетов по следующим критериям: + +- Являются ли данные количественными или качественными? +- Являются ли данные структурированными, неструктурированными, полуструктурированными? + + +## [Проверочный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/5) + + +## Материалы для самостоятельного изучения + +- Глава курса Microsoft Learn под названием ["Классификация данных"](https://docs.microsoft.com/ru-ru/learn/modules/choose-storage-approach-in-azure/2-classify-data) содержит детальную классификацию структурированных, полуструктурированных и неструктурированных данных. + +## Домашнее задание +[Классификация датасетов](assignment.ru.md) diff --git a/1-Introduction/03-defining-data/translations/assignment.ru.md b/1-Introduction/03-defining-data/translations/assignment.ru.md new file mode 100644 index 00000000..0752f4d7 --- /dev/null +++ b/1-Introduction/03-defining-data/translations/assignment.ru.md @@ -0,0 +1,65 @@ +# Классификация датасетов + +## Порядок выполнения + +Следуйте подсказкам в данном домашнем задании, чтобы определить и классифицировать данные по следующим категориям: + +**Структура**: структурированные, полуструктурированные, неструктурированные + +**Величины**: количественные или качественные + +**Источники**: первичные или вторичные + +1. Компания была приобретена и теперь у нее есть материнская компания. Дата сайентисты получили таблицу с номерами телефонов клиентов от материнской компании. + +Структура: + +Величина: + +Источник: + +--- + +2. Умные часы собрали данные сердечного ритма владельца и сохранили сырые данные в формате JSON. + +Структура: + +Величина: + +Источник: + +--- + +3. Опрос настроения сотрудников, результаты которого хранятся в файле CSV. + +Структура: + +Величина: + +Источник: + +--- + +4. Астрофизики получили доступ к базе данных галактик, которая была собрана с помощью космического зонда. Данные содержат номера планет в переделах каждой галактики. + +Структура: + +Величина: + +Источник: + +--- + +5. Приложение для управления финансами использует API для соединения с финансовым счетом пользователя для того, чтобы рассчитать его траты. Пользователи могут видеть свои транзакции в строках и столбцах, напоминающих таблицу. + +Структура: + +Величина: + +Источник: + +## Оценка + +Отлично | Достаточно | Нуждается в улучшении +--- | --- | -- | +Верно определены все структуры, величины и источники |Верно определены структура, величины и источники трёх примеров целиком |Верно определены структура, величины и источники двух и менее примеров целиком | \ No newline at end of file From 2e7da071177fbcaf47b106d73dd53a57f39053e6 Mon Sep 17 00:00:00 2001 From: Jasmine Greenaway Date: Wed, 27 Oct 2021 13:56:24 -0400 Subject: [PATCH 102/234] Rename README.np.md to README.ne.md --- 3-Data-Visualization/translations/{README.np.md => README.ne.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 3-Data-Visualization/translations/{README.np.md => README.ne.md} (100%) diff --git a/3-Data-Visualization/translations/README.np.md b/3-Data-Visualization/translations/README.ne.md similarity index 100% rename from 3-Data-Visualization/translations/README.np.md rename to 3-Data-Visualization/translations/README.ne.md From 54a0d2d57e5ba03ac87a31a32630657be0378174 Mon Sep 17 00:00:00 2001 From: Jasmine Greenaway Date: Wed, 27 Oct 2021 13:57:03 -0400 Subject: [PATCH 103/234] Rename README.np.md to README.ne.md --- 1-Introduction/translations/{README.np.md => README.ne.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 1-Introduction/translations/{README.np.md => README.ne.md} (100%) diff --git a/1-Introduction/translations/README.np.md b/1-Introduction/translations/README.ne.md similarity index 100% rename from 1-Introduction/translations/README.np.md rename to 1-Introduction/translations/README.ne.md From ab26be85b96881e0357cb128100e29004222799a Mon Sep 17 00:00:00 2001 From: Jasmine Greenaway Date: Wed, 27 Oct 2021 13:57:35 -0400 Subject: [PATCH 104/234] Rename README.NEPALI.MD to README.ne.md --- translations/{README.NEPALI.MD => README.ne.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename translations/{README.NEPALI.MD => README.ne.md} (100%) diff --git a/translations/README.NEPALI.MD b/translations/README.ne.md similarity index 100% rename from translations/README.NEPALI.MD rename to translations/README.ne.md From 45142c09131caf51aac116bb306e11a82e63719a Mon Sep 17 00:00:00 2001 From: Jasmine Greenaway Date: Wed, 27 Oct 2021 13:58:13 -0400 Subject: [PATCH 105/234] Rename README.np.md to README.ne.md --- .../translations/{README.np.md => README.ne.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 4-Data-Science-Lifecycle/translations/{README.np.md => README.ne.md} (100%) diff --git a/4-Data-Science-Lifecycle/translations/README.np.md b/4-Data-Science-Lifecycle/translations/README.ne.md similarity index 100% rename from 4-Data-Science-Lifecycle/translations/README.np.md rename to 4-Data-Science-Lifecycle/translations/README.ne.md From 1f8d519fba9a61082bd7cd97e279a7fa310adb97 Mon Sep 17 00:00:00 2001 From: Jasmine Greenaway Date: Wed, 27 Oct 2021 13:58:46 -0400 Subject: [PATCH 106/234] Rename README.np.md to README.ne.md --- 2-Working-With-Data/translations/{README.np.md => README.ne.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 2-Working-With-Data/translations/{README.np.md => README.ne.md} (100%) diff --git a/2-Working-With-Data/translations/README.np.md b/2-Working-With-Data/translations/README.ne.md similarity index 100% rename from 2-Working-With-Data/translations/README.np.md rename to 2-Working-With-Data/translations/README.ne.md From 373b7af19a971579a8125873946da7838d2c32e6 Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Wed, 27 Oct 2021 23:42:32 +0530 Subject: [PATCH 107/234] Rename assignment for data processing.hi.md to assignment.hi.md --- .../{assignment for data processing.hi.md => assignment.hi.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 2-Working-With-Data/07-python/translations/{assignment for data processing.hi.md => assignment.hi.md} (100%) diff --git a/2-Working-With-Data/07-python/translations/assignment for data processing.hi.md b/2-Working-With-Data/07-python/translations/assignment.hi.md similarity index 100% rename from 2-Working-With-Data/07-python/translations/assignment for data processing.hi.md rename to 2-Working-With-Data/07-python/translations/assignment.hi.md From db2f5d163f1638d7b70611fd94e08d6bb12219d6 Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Thu, 28 Oct 2021 07:39:41 +0545 Subject: [PATCH 108/234] renamed file --- translations/{README.NEPALI.MD => README.np.MD} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename translations/{README.NEPALI.MD => README.np.MD} (99%) diff --git a/translations/README.NEPALI.MD b/translations/README.np.MD similarity index 99% rename from translations/README.NEPALI.MD rename to translations/README.np.MD index e1142163..46b171d0 100644 --- a/translations/README.NEPALI.MD +++ b/translations/README.np.MD @@ -90,7 +90,7 @@ Microsoft मा Azure Cloud अधिवक्ताहरु एक १०-ह ## सहयोग चाहियो! -यदि तपाइँ पाठ्यक्रम को सबै वा अंश अनुवाद गर्न चाहानुहुन्छ, कृपया हाम्रो [अनुवाद] (TRANSLATIONS.md) गाइड को पालन गर्नुहोस्। +यदि तपाइँ पाठ्यक्रम को सबै वा अंश अनुवाद गर्न चाहानुहुन्छ, कृपया हाम्रो [अनुवाद](TRANSLATIONS.md) गाइड को पालन गर्नुहोस्। ## अन्य पाठ्यक्रम From ff817ffd41c10f46299a18dfc9044625e849742f Mon Sep 17 00:00:00 2001 From: Sarthak Regmi <66667396+sarthakregmi@users.noreply.github.com> Date: Thu, 28 Oct 2021 07:41:02 +0545 Subject: [PATCH 109/234] Rename README.Nepali.md to README.np.md --- .../translations/{README.Nepali.md => README.np.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 6-Data-Science-In-Wild/translations/{README.Nepali.md => README.np.md} (100%) diff --git a/6-Data-Science-In-Wild/translations/README.Nepali.md b/6-Data-Science-In-Wild/translations/README.np.md similarity index 100% rename from 6-Data-Science-In-Wild/translations/README.Nepali.md rename to 6-Data-Science-In-Wild/translations/README.np.md From 1b3b85d6f4070f3bd1cca91af358938beb9fa35d Mon Sep 17 00:00:00 2001 From: Sarthak Regmi <66667396+sarthakregmi@users.noreply.github.com> Date: Thu, 28 Oct 2021 07:42:31 +0545 Subject: [PATCH 110/234] Rename README.Nepali.md to README.ne.md --- .../translations/{README.Nepali.md => README.ne.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 5-Data-Science-In-Cloud/translations/{README.Nepali.md => README.ne.md} (100%) diff --git a/5-Data-Science-In-Cloud/translations/README.Nepali.md b/5-Data-Science-In-Cloud/translations/README.ne.md similarity index 100% rename from 5-Data-Science-In-Cloud/translations/README.Nepali.md rename to 5-Data-Science-In-Cloud/translations/README.ne.md From f09be466f73aac492c8edf422b1a4d96eb853b96 Mon Sep 17 00:00:00 2001 From: Srishti Poudel Date: Thu, 28 Oct 2021 07:53:45 +0545 Subject: [PATCH 111/234] renamed again --- translations/{README.np.MD => README.ne.MD} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename translations/{README.np.MD => README.ne.MD} (100%) diff --git a/translations/README.np.MD b/translations/README.ne.MD similarity index 100% rename from translations/README.np.MD rename to translations/README.ne.MD From c0e792fd893f6d70647969bc6f722ad208980357 Mon Sep 17 00:00:00 2001 From: Mohit Jaisal Date: Fri, 29 Oct 2021 01:55:14 +0530 Subject: [PATCH 112/234] Added ds-for-beginners.gif --- README.md | 8 ++++---- ds-for-beginners.gif | Bin 0 -> 369314 bytes 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 ds-for-beginners.gif diff --git a/README.md b/README.md index c90d8ec7..c04d68fe 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Azure Cloud Advocates at Microsoft are pleased to offer a 10-week, 20-lesson cur **Hearty thanks to our authors:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer). -**🙏 Special thanks 🙏 to our [Microsoft Student Ambassador](https://studentambassadors.microsoft.com/) authors, reviewers and content contributors,** notably Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), +**🙏 Special thanks 🙏 to our [Microsoft Student Ambassador](https://studentambassadors.microsoft.com/) authors, reviewers and content contributors,** notably Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Sheena Narula](https://www.linkedin.com/in/sheena-narua-n/), Tauqeer Ahmad, Yogendrasingh Pawar |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Title.png)| @@ -30,7 +30,7 @@ Azure Cloud Advocates at Microsoft are pleased to offer a 10-week, 20-lesson cur ## Meet the Team -[![Promo video](ds-for-beginners.png)](https://youtu.be/8mzavjQSMM4 "Promo video") +[![Promo video](ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "Promo video") > 🎥 Click the image above for a video about the project the folks who created it! @@ -89,9 +89,9 @@ In addition, a low-stakes quiz before a class sets the intention of the student | 20 | Data Science in the Wild | [In the Wild](6-Data-Science-In-Wild/README.md) | Data science driven projects in the real world. | [lesson](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | ## Offline access -You can run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork this repo, [install Docsify](https://docsify.js.org/#/quickstart) on your local machine, then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`. +You can run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork this repo, [install Docsify](https://docsify.js.org/#/quickstart) on your local machine, then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`. -> Note, notebooks will not be rendered via Docsify, so when you need to run a notebook, do that separately in VS Code running a Python kernel. +> Note, notebooks will not be rendered via Docsify, so when you need to run a notebook, do that separately in VS Code running a Python kernel. ## PDF A PDF of all of the lessons can be found [here](https://microsoft.github.io/Data-Science-For-Beginners/pdf/readme.pdf) diff --git a/ds-for-beginners.gif b/ds-for-beginners.gif new file mode 100644 index 0000000000000000000000000000000000000000..6834a69b49a42b75ebe06153b3f57f72a8b07889 GIT binary patch literal 369314 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 z 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 z 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

`i@ZJiS3kVH8xxe1bW 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 KG>|X?0suRQ7Vs|s literal 0 HcmV?d00001 From c8114b59804d7d592984b01f19d95f3a386d91a6 Mon Sep 17 00:00:00 2001 From: alo_sanchez Date: Thu, 28 Oct 2021 16:58:34 -0500 Subject: [PATCH 113/234] [ES-spanish] Translation Cap 3-11 - Visualizing Proportions #132 --- .../translations/README.es.md | 2 +- .../translations/README.es.md | 183 ++++++++++++++++++ .../translations/assignment.es.md | 11 ++ 3 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 3-Data-Visualization/11-visualization-proportions/translations/assignment.es.md diff --git a/3-Data-Visualization/10-visualization-distributions/translations/README.es.md b/3-Data-Visualization/10-visualization-distributions/translations/README.es.md index 5849ae88..1d18c7e9 100644 --- a/3-Data-Visualization/10-visualization-distributions/translations/README.es.md +++ b/3-Data-Visualization/10-visualization-distributions/translations/README.es.md @@ -6,7 +6,7 @@ En la lección anterior, aprendiste algunos datos interesantes sobre un conjunto de datos acerca de las aves de Minnesota. Encontraste algunos datos erróneos visualizando los valores atípicos y observaste las diferencias entre las categorías de aves según su longitud máxima. -## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) ## Explora el conjunto de datos sobre aves Otra forma de profundizar en los datos es observar su distribución, o cómo se organizan los datos a lo largo de un eje. Quizás, por ejemplo, te gustaría conocer la distribución general para este conjunto de datos, de la envergadura máxima o la masa corporal máxima de las aves de Minnesota. diff --git a/3-Data-Visualization/11-visualization-proportions/translations/README.es.md b/3-Data-Visualization/11-visualization-proportions/translations/README.es.md index e69de29b..4a7976b0 100644 --- a/3-Data-Visualization/11-visualization-proportions/translations/README.es.md +++ b/3-Data-Visualization/11-visualization-proportions/translations/README.es.md @@ -0,0 +1,183 @@ +# Visualización de Proporciones + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|Visualización de Proporciones - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +En esta lección, utilizarás un conjunto de datos diferente centrado en la naturaleza para visualizar proporciones, como por ejemplo cuántos tipos diferentes de hongos pueblan un determinado conjunto de datos sobre setas. Vamos a explorar estos fascinantes hongos utilizando un conjunto de datos procedente de Audubon que enumera detalles sobre 23 especies de hongos con branquias de las familias Agaricus y Lepiota. Experimentarás con sabrosas visualizaciones como: + +- Gráficos de tarta 🥧 +- Gráficos de donuts 🍩 +- Gráficos de waffles 🧇 + +> 💡 Un proyecto muy interesante llamado [Charticulator](https://charticulator.com) de Microsoft Research ofrece una interfaz gratuita de arrastrar y soltar para las visualizaciones de datos. ¡En uno de sus tutoriales también utilizan este conjunto de datos de hongos! Así que puedes explorar los datos y aprender la biblioteca al mismo tiempo: [Tutorial de Charticulator](https://charticulator.com/tutorials/tutorial4.html). + +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/20) + +## Conoce tus hongos 🍄 + +Los hongos son muy interesantes. Vamos a importar un conjunto de datos para estudiarlos: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +Una tabla con grandes datos para su análisis se imprime: + + +| class | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | stalk-root | stalk-surface-above-ring | stalk-surface-below-ring | stalk-color-above-ring | stalk-color-below-ring | veil-type | veil-color | ring-number | ring-type | spore-print-color | population | habitat | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Poisonous | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Edible | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Edible | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Poisonous | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | + +Enseguida se nota que todos los datos son textuales. Tendrás que convertir estos datos para poder utilizarlos en un gráfico. La mayoría de los datos, de hecho, se representan como un objeto: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +La salida es: + +```output +Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor', + 'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color', + 'stalk-shape', 'stalk-root', 'stalk-surface-above-ring', + 'stalk-surface-below-ring', 'stalk-color-above-ring', + 'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number', + 'ring-type', 'spore-print-color', 'population', 'habitat'], + dtype='object') +``` +Toma estos datos y convierte la columna "class" en una categoría: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` +Ahora, si imprimes los datos de las setas, puedes ver que se han agrupado en categorías según la clase poisonous/edible (venenosa/comestible): + +| | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | stalk-surface-below-ring | stalk-color-above-ring | stalk-color-below-ring | veil-type | veil-color | ring-number | ring-type | spore-print-color | population | habitat | +| --------- | --------- | ----------- | --------- | ------- | ---- | --------------- | ------------ | --------- | ---------- | ----------- | --- | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| class | | | | | | | | | | | | | | | | | | | | | | +| Edible | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| Poisonous | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +Si sigues el orden presentado en esta tabla para crear tus etiquetas de categoría de clase, puedes construir un gráfico circular: + +## ¡Pastel! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +Voilá, un gráfico circular que muestra las proporciones de estos datos según estas dos clases de hongos. ¡Es bastante importante conseguir el orden de las etiquetas correcto, especialmente aquí, así que asegúrate de verificar el orden con el que se construye la matriz de etiquetas! + +![gráfico de pastel](../images/pie1.png) + +## ¡Donas! + +Algo más interesante desde el punto de vista visual que el gráfico de pastel es el gráfico de donas, que es un gráfico circular con un agujero en el centro. Veamos nuestros datos con este método. + +Observa los distintos hábitats donde crecen las setas: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +Aquí, estás agrupando tus datos por hábitat. Hay 7 listados, así que úsalos como etiquetas para tu gráfico de donas: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![gráfico de donas](../images/donut.png) + +Este código dibuja un gráfico y un círculo central, luego añade ese círculo central en el gráfico. Edite el ancho del círculo central cambiando `0.40` por otro valor. + +Los gráficos de donas pueden ser modificados de varias maneras para cambiar las etiquetas. Las etiquetas, en particular, pueden ser resaltadas para facilitar su lectura. Obtenga más información en los [docs](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut). + +Ahora que sabes cómo agrupar tus datos y mostrarlos como un pastel o una dona, puedes explorar otros tipos de gráficos. Prueba con un gráfico waffle, que es una forma diferente de explorar la cantidad. +## ¡Waffles! + +Un gráfico de tipo "waffle" es una forma diferente de visualizar las cantidades como una matriz 2D de cuadrados. Intenta visualizar las diferentes cantidades de colores de los sombreros de los champiñones en este conjunto de datos. Para hacer esto, necesitas instalar una biblioteca de ayuda llamada [PyWaffle](https://pypi.org/project/pywaffle/) y usar Matplotlib: + +```python +pip install pywaffle +``` + +Seleccione un segmento de sus datos para agrupar: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +Crea un gráfico de waffles creando etiquetas y luego agrupando los datos: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +Utilizando un gráfico de waffles, se pueden ver claramente las proporciones de los colores de los sombreros de este conjunto de datos de hongos. Curiosamente, ¡hay muchas hongos con el sombrero verde! + +![gráfico de waffles](../images/waffle.png) + +✅ Pywaffle soporta iconos dentro de los gráficos que utilizan cualquier icono disponible en [Font Awesome](https://fontawesome.com/). Haz algunos experimentos para crear un gráfico waffle aún más interesante usando iconos en lugar de cuadrados. + +En esta lección, aprendiste tres maneras de visualizar proporciones. En primer lugar, tienes que agrupar tus datos en categorías y luego decidir cuál es la mejor manera de mostrar los datos: pastel, dona o waffle. Todas son deliciosas y gratifican al usuario con una instantánea de un conjunto de datos. + +## 🚀 Desafío + +Intenta recrear estos sabrosos gráficos en [Charticulator](https://charticulator.com). +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/21) + +## Repaso y autoestudio + +A veces no es obvio cuándo utilizar un gráfico de pastel, de dona o de waffle. Aquí hay algunos artículos para leer sobre este tema: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +Investiga un poco para encontrar más información sobre esta decisión pegajosa. +## Asignación + +[Pruébalo en Excel](assignment.es.md) \ No newline at end of file diff --git a/3-Data-Visualization/11-visualization-proportions/translations/assignment.es.md b/3-Data-Visualization/11-visualization-proportions/translations/assignment.es.md new file mode 100644 index 00000000..36480859 --- /dev/null +++ b/3-Data-Visualization/11-visualization-proportions/translations/assignment.es.md @@ -0,0 +1,11 @@ +## Pruébalo en Excel + +## Instrucciones + +¿Sabías que puedes crear gráficos de donas, pastel y waffle en Excel? Utilizando un conjunto de datos de su elección, crea estos tres gráficos directamente en una hoja de cálculo de Excel. + +## Rúbrica + +| Ejemplar | Adecuado | Necesita mejorar +| ------------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------------ | +| Una hoja de cálculo de Excel se presenta con los tres gráficos | Una hoja de cálculo de Excel se presenta con dos gráficos | Una hoja de cálculo de Excel se presenta con un solo gráfico | \ No newline at end of file From 31c917f3a061ab9cd689080456e76e5d792af464 Mon Sep 17 00:00:00 2001 From: alo_sanchez Date: Thu, 28 Oct 2021 18:57:07 -0500 Subject: [PATCH 114/234] [ES-spanish] Translation Cap 3.12 - Visualizing Relationships #132 --- .../12-visualization-relationships/README.md | 2 +- .../translations/README.es.md | 173 ++++++++++++++++++ .../translations/assignment.es.md | 11 ++ 3 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 3-Data-Visualization/12-visualization-relationships/translations/assignment.es.md diff --git a/3-Data-Visualization/12-visualization-relationships/README.md b/3-Data-Visualization/12-visualization-relationships/README.md index e9a59969..e873aedf 100644 --- a/3-Data-Visualization/12-visualization-relationships/README.md +++ b/3-Data-Visualization/12-visualization-relationships/README.md @@ -99,7 +99,7 @@ Answer: Yes, with some exceptions around the year 2003: ![line chart 1](images/line1.png) -✅ Because Seaborn is aggregating data around one line, it displays "the multiple measurements at each x value by plotting the mean and the 95% confidence interval around the mean". [source](https://seaborn.pydata.org/tutorial/relational.html). This time-consuming behavior can be disabled by adding `ci=None`. +✅ Because Seaborn is aggregating data around one line, it displays "the multiple measurements at each x value by plotting the mean and the 95% confidence interval around the mean". [Source](https://seaborn.pydata.org/tutorial/relational.html). This time-consuming behavior can be disabled by adding `ci=None`. Question: Well, in 2003 can we also see a spike in the honey supply? What if you look at total production year over year? diff --git a/3-Data-Visualization/12-visualization-relationships/translations/README.es.md b/3-Data-Visualization/12-visualization-relationships/translations/README.es.md index e69de29b..02d16e36 100644 --- a/3-Data-Visualization/12-visualization-relationships/translations/README.es.md +++ b/3-Data-Visualization/12-visualization-relationships/translations/README.es.md @@ -0,0 +1,173 @@ +# Visualización de Relaciones: Todo sobre la miel 🍯 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|Visualización de Relaciones - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +Siguiendo con el enfoque de la naturaleza de nuestra investigación, vamos a descubrir interesantes visualizaciones para mostrar las relaciones entre los distintos tipos de miel, según un conjunto de datos procedentes del [Departamento de Agricultura de Estados Unidos](https://www.nass.usda.gov/About_NASS/index.php). + +Este conjunto de datos, compuesto por unos 600 elementos, muestra la producción de miel en muchos estados de Estados Unidos. Así, por ejemplo, se puede ver el número de colonias, el rendimiento por colonia, la producción total, las existencias, el precio por libra y el valor de la miel producida en un determinado estado entre 1998 y 2012, con una fila por año para cada estado. + +Será interesante visualizar la relación entre la producción de un estado determinado por año y, por ejemplo, el precio de la miel en ese estado. También se podría visualizar la relación entre la producción de miel por colonia de los estados. Este intervalo de años abarca el devastador "CCD" o "Colony Collapse Disorder" que se observó por primera vez en 2006 (http://npic.orst.edu/envir/ccd.html), por lo que es un conjunto de datos conmovedor para estudiar. 🐝 + +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/22) + +En esta lección, puedes utilizar Seaborn, que ya has utilizado anteriormente, como una buena librería para visualizar las relaciones entre las variables. Es especialmente interesante el uso de la función `relplot` de Seaborn, que permite realizar gráficos de dispersión y de líneas para visualizar rápidamente las '[relaciones estadísticas](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)', que permiten al científico de datos comprender mejor cómo se relacionan las variables entre sí. + +## Gráficos de dispersión + +Utiliza un gráfico de dispersión para mostrar cómo ha evolucionado el precio de la miel, año tras año, por estado. Seaborn, utilizando `relplot`, agrupa convenientemente los datos de los estados y muestra puntos de datos tanto categóricos como numéricos. + +Empecemos por importar los datos y Seaborn: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +Observará que los datos de la miel tienen varias columnas interesantes, como el año y el precio por libra. Exploremos estos datos, agrupados por estados de Estados Unidos: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + + +Crea un gráfico de dispersión básico para mostrar la relación entre el precio por libra de miel y su estado de origen en EE.UU. Haz que el eje `y` sea lo suficientemente alto como para mostrar todos los estados: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![gráfico de dispersión 1](../images/scatter1.png) + +Ahora, muestra los mismos datos con un esquema de color miel para exponer cómo evoluciona el precio a lo largo de los años. Puedes hacerlo añadiendo un parámetro 'hue' para visualizar el cambio, año tras año: + +> ✅ Aprende más sobre las [paletas de colores que puedes usar en Seaborn](https://seaborn.pydata.org/tutorial/color_palettes.html) - ¡prueba una hermosa combinación de colores del arco iris! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![gráfico de dispersión 2](../images/scatter2.png) + +Con este cambio de color, se puede ver que obviamente hay una fuerte progresión a lo largo de los años en cuanto al precio de la miel por libra. De hecho, si se observa un conjunto de muestras en los datos para comprobarlo (elige un estado determinado, Arizona por ejemplo) se puede ver un patrón de aumento de precios año tras año, con pocas excepciones: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +Otra forma de visualizar esta progresión es utilizar el tamaño, en lugar del color. Para los usuarios daltónicos, ésta podría ser una mejor opción. Edita tu visualización para mostrar un aumento de precio por un aumento de la circunferencia del punto: + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +Puedes ver que el tamaño de los puntos aumenta gradualmente. + +![gráfico de dispersión 3](../images/scatter3.png) + +¿Se trata de un simple caso de oferta y demanda? Debido a factores como el cambio climático y el colapso de las colonias, ¿hay menos miel disponible para la compra año tras año y, por tanto, el precio aumenta? + +Para descubrir una correlación entre algunas de las variables de este conjunto de datos, exploremos algunos gráficos de líneas. + +## Gráficos de líneas + +Pregunta: ¿Existe un claro aumento del precio de la miel por libra año tras año? Lo más fácil es descubrirlo creando un gráfico de líneas: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +Answer: Yes, with some exceptions around the year 2003: + +![gráfico de líneas 1](../images/line1.png) + +✅ Como Seaborn está agregando datos en torno a una línea, muestra "las múltiples mediciones en cada valor de x trazando la media y el intervalo de confianza del 95% en torno a la media". [Fuente](https://seaborn.pydata.org/tutorial/relational.html). Este comportamiento, que consume mucho tiempo, puede desactivarse añadiendo `ci=None`. + +Pregunta: En 2003, ¿también podemos ver un pico en la oferta de miel? ¿Y si se observa la producción total año tras año? + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![gráfico de líneas 2](../images/line2.png) + +Respuesta: La verdad es que no. Si se observa la producción total, parece haber aumentado en ese año concreto, aunque en general la cantidad de miel que se produce disminuye en esos años. + +Pregunta: En ese caso, ¿qué pudo causar ese repunte del precio de la miel en torno a 2003? + +Para descubrirlo, puedes explorar una cuadrícula de facetas. + +## Cuadrículas de facetas + +Las cuadrículas de facetas toman una faceta de su conjunto de datos (en nuestro caso, puede elegir "año" para evitar que se produzcan demasiadas facetas). Seaborn puede entonces hacer un gráfico para cada una de esas facetas de sus coordenadas x e y elegidas para una comparación visual más fácil. ¿Destaca el año 2003 en este tipo de comparación? + +Cree una cuadrícula de facetas continuando con el uso de `relplot` como recomienda [la documentación de Seaborn](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid). + +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +En esta visualización, se puede comparar el rendimiento por colonia y el número de colonias año tras año, uno al lado del otro con un ajuste de 3 para las columnas: + +[cuadrícula de facetas](../images/facet.png) + +Para este conjunto de datos, no hay nada que destaque especialmente en cuanto al número de colonias y su rendimiento, año tras año y estado tras estado. ¿Hay alguna forma diferente de buscar una correlación entre estas dos variables? + +## Gráficos de dos líneas + +Prueba con un gráfico multilínea superponiendo dos gráficos de líneas uno encima del otro, utilizando el 'despine' de Seaborn para eliminar sus espinas superiores y derechas, y utilizando `ax.twinx` [derivado de Matplotlib](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). Twinx permite que un gráfico comparta el eje x y muestre dos ejes y. Así, mostrar el rendimiento por colonia y el número de colonias, superpuestos: + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![parcelas superpuestas](../images/dual-line.png) + +Aunque no hay nada que salte a la vista en torno al año 2003, nos permite terminar esta lección con una nota un poco más alegre: aunque en general hay un número de colonias en descenso, el número de colonias se está estabilizando aunque su rendimiento por colonia esté disminuyendo. + +¡Vamos, abejas, vamos! + +🐝❤️ +## 🚀 Desafío + +En esta lección, has aprendido un poco más sobre otros usos de los gráficos de dispersión y las cuadrículas de líneas, incluyendo las cuadrículas de facetas. Desafíate a crear una cuadrícula de facetas utilizando un conjunto de datos diferente, tal vez uno que hayas utilizado antes de estas lecciones. Fíjate en el tiempo que se tarda en crearlas y en la necesidad de tener cuidado con el número de cuadrículas que necesitas dibujar utilizando estas técnicas. +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/23) + +## Repaso y autoestudio + +Los gráficos de líneas pueden ser simples o bastante complejos. Lee un poco en la [documentación de Seaborn](https://seaborn.pydata.org/generated/seaborn.lineplot.html) sobre las diversas formas en que puedes construirlos. Intenta mejorar los gráficos de líneas que construiste en esta lección con otros métodos listados en la documentación. +## Asignación + +[Sumérgete en la colmena](assignment.es.md) diff --git a/3-Data-Visualization/12-visualization-relationships/translations/assignment.es.md b/3-Data-Visualization/12-visualization-relationships/translations/assignment.es.md new file mode 100644 index 00000000..c64678b0 --- /dev/null +++ b/3-Data-Visualization/12-visualization-relationships/translations/assignment.es.md @@ -0,0 +1,11 @@ +# Sumérgete en la colmena + +## Instrucciones + +En esta lección has empezado a estudiar un conjunto de datos sobre las abejas y su producción de miel durante un periodo de tiempo en el que se han producido pérdidas en la población de colonias de abejas en general. Profundiza en este conjunto de datos y construye un cuaderno que pueda contar la historia de la salud de la población de abejas, estado por estado y año por año. ¿Descubres algo interesante en este conjunto de datos? + +## Rúbrica + +| Ejemplar | Adecuado | Necesita mejorar +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| El cuaderno se presenta con una historia anotada con al menos tres gráficos diferentes que muestran aspectos del conjunto de datos, estado sobre estado y año sobre año | El cuaderno carece de uno de estos elementos | El cuaderno carece de dos de estos elementos \ No newline at end of file From 3e92aa90beea071851217082103ff9a6ecd859a6 Mon Sep 17 00:00:00 2001 From: alo_sanchez Date: Thu, 28 Oct 2021 20:02:20 -0500 Subject: [PATCH 115/234] [ES-spanish] Translation Cap 3.13 - Meaningful Visualizations #132 --- .../translations/README.es.md | 167 ++++++++++++++++++ .../translations/assignment.es.md | 10 ++ 2 files changed, 177 insertions(+) create mode 100644 3-Data-Visualization/13-meaningful-visualizations/translations/assignment.es.md diff --git a/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md b/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md index e69de29b..14db2b57 100644 --- a/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md +++ b/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md @@ -0,0 +1,167 @@ +# Haciendo visualizaciones significativas + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| Visualizaciones Significativas - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +> "Si se torturan los datos el tiempo suficiente, confesarán cualquier cosa" -- [Ronald Coase](https://en.wikiquote.org/wiki/Ronald_Coase) + +Una de las habilidades básicas de un científico de datos es la capacidad de crear una visualización de datos significativa que ayude a responder a las preguntas que pueda tener. Antes de visualizar tus datos, tienes que asegurarte de que han sido limpiados y preparados, como hiciste en las lecciones anteriores. Después de eso, puedes empezar a decidir la mejor manera de presentar los datos. + +En esta lección, revisarás: + +1. Cómo elegir el tipo de gráfico adecuado +2. Cómo evitar los gráficos engañosos +3. Cómo trabajar con el color +4. Cómo estilizar los gráficos para que sean legibles +5. Cómo construir soluciones de gráficos animados o en 3D +6. Cómo construir una visualización creativa + +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/24) + +## Elegir el tipo de gráfico adecuado + +En las lecciones anteriores, has experimentado con la construcción de todo tipo de visualizaciones de datos interesantes utilizando Matplotlib y Seaborn para la elaboración de gráficos. En general, puedes seleccionar el [tipo de gráfico correcto](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) para la pregunta que estás haciendo usando esta tabla: + +| Debes: | Debes usar: | +| -------------------------- | ------------------------------- | +| Mostrar las tendencias de los datos a lo largo del tiempo | Lineal | +| Comparar categorías | Barras, Pastel | +| Comparar totales | Pastel, Barra apilada | +| Mostrar relaciones | Dispersión, Línea, Faceta, Línea doble | +| Mostrar distribuciones | Dispersión, Histograma, Caja | +| Mostrar proporciones | Patel, Dona, Waffle | + +> ✅ Dependiendo de la composición de tus datos, es posible que tenga que convertirlos de texto a numéricos para conseguir un gráfico determinado que los soporte. + +## Evitar el engaño + +Incluso si un científico de datos tiene cuidado de elegir el gráfico adecuado para los datos correctos, hay muchas maneras en que los datos pueden ser mostrados de una manera para demostrar un punto, a menudo a costa de socavar los propios datos. Hay muchos ejemplos de gráficos e infografías engañosos. + +[![Cómo mienten los gráficos por Alberto Cairo](.././images/tornado.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie") + +> 🎥 Haz clic en la imagen de arriba para ver una conferencia sobre los gráficos engañosos + +Este gráfico invierte el eje X para mostrar lo contrario de la verdad, según la fecha: + +![gráfico malo 1](../images/bad-chart-1.png) + +[Este gráfico](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) es aún más engañoso, ya que la mirada se dirige hacia la derecha para concluir que, con el tiempo, los casos de COVID han disminuido en los distintos condados. De hecho, si se observan detenidamente las fechas, se descubre que han sido reordenadas para dar esa engañosa tendencia a la baja. + +![gráfico malo 2](../images/bad-chart-2.jpg) + +Este ejemplo notorio utiliza el color Y un eje Y invertido para engañar: en lugar de concluir que las muertes por armas de fuego se dispararon después de la aprobación de la legislación favorable a las armas, en realidad se engaña al ojo para que piense lo contrario: + +![gráfico malo 3](../images/bad-chart-3.jpg) + +Este extraño gráfico muestra cómo se puede manipular la proporción, con un efecto hilarante: + +![bad chart 4](../images/bad-chart-4.jpg) + +Comparar lo incomparable es otro truco turbio. Hay un [maravilloso sitio web](https://tylervigen.com/spurious-correlations) que trata sobre "correlaciones falsas" y muestra "hechos" que correlacionan cosas como la tasa de divorcios en Maine y el consumo de margarina. Un grupo de Reddit también recoge los [usos feos](https://www.reddit.com/r/dataisugly/top/?t=all) de los datos. + +Es importante entender lo fácil que es engañar al ojo con gráficos engañosos. Incluso si la intención del científico de datos es buena, la elección de un mal tipo de gráfico, como un gráfico circular que muestre demasiadas categorías, puede ser engañosa. + +## Color + +En el gráfico sobre la violencia con armas de fuego en Florida, ya has visto cómo el color puede proporcionar un nivel adicional de significado a los gráficos, especialmente a los que no están diseñados con bibliotecas como Matplotlib y Seaborn, que vienen con varias bibliotecas y paletas de colores. Si estás haciendo un gráfico a mano, haz un pequeño estudio de la [teoría del color](https://colormatters.com/color-and-design/basic-color-theory) + +> ✅ Al diseñar los gráficos, ten en cuenta que la accesibilidad es un aspecto importante de la visualización. Algunos de sus usuarios pueden ser daltónicos: ¿su gráfico se visualiza bien para los usuarios con problemas de visión? + +Tenga cuidado al elegir los colores de su gráfico, ya que el color puede transmitir un significado que quizá no sea el deseado. Las "damas rosas" del gráfico de "altura" de arriba transmiten un significado claramente "femenino" que se suma a la extrañeza del propio gráfico. + +Mientras que [el significado del color](https://colormatters.com/color-symbolism/the-meanings-of-colors) puede ser diferente en distintas partes del mundo, y tiende a cambiar de significado según su tonalidad. En general, los significados de los colores incluyen: + +| Color | significado | +| ------ | ------------------- | +| rojo | poder +| azul | confianza, lealtad +| amarillo | felicidad, precaución +| verde | ecología, suerte, envidia | +| púrpura | felicidad | +| naranja | vitalidad | + +Si tienes que construir un gráfico con colores personalizados, asegúrese de que tus gráficos sean accesibles y de que el color que elijas coincida con el significado que intentas transmitir. + +## Estilizar los gráficos para que sean legibles + +Los gráficos no tienen sentido si no son legibles. Tómate un momento para considerar el estilo de la anchura y la altura de tu gráfico para que se ajuste a tus datos. Si es necesario mostrar una variable (como los 50 estados), muéstrela verticalmente en el eje Y si es posible, para evitar un gráfico que se desplace horizontalmente. + +Etiqueta tus ejes, proporciona una leyenda si es necesario y ofrece información sobre herramientas para una mejor comprensión de los datos. + +Si tus datos son textuales y verbales en el eje X, puedes inclinar el texto para una mejor legibilidad. [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) ofrece gráficos en 3D, si tus datos lo permiten. Se pueden producir sofisticadas visualizaciones de datos utilizando `mpl_toolkits.mplot3d`. + +![gráficos 3D](../images/3d.png) + +## Animación y visualización de gráficos en 3D + +Algunas de las mejores visualizaciones de datos actuales son animadas. Shirley Wu tiene unas increíbles realizadas con D3, como '[film flowers](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', donde cada flor es una visualización de una película. Otro ejemplo de The Guardian es 'bussed out', una experiencia interactiva que combina visualizaciones con Greensock y D3 más un formato de artículo de scrollytelling para mostrar cómo la ciudad de Nueva York maneja su problema de los sin techo sacando a la gente de la ciudad en autobús. + +![autobuses](../images/busing.png) + +> "Bussed Out: How America Moves its Homeless" de [the Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Visualizaciones de Nadieh Bremer y Shirley Wu + +Aunque esta lección no es suficiente para profundizar en la enseñanza de estas potentes librerías de visualización, prueba a usar D3 en una aplicación Vue.js utilizando una librería para mostrar una visualización del libro "Dangerous Liaisons" como una red social animada. + +> "Les Liaisons Dangereuses" es una novela epistolar, o una novela presentada como una serie de cartas. Escrita en 1782 por Choderlos de Laclos, narra las viciosas maniobras sociales de dos protagonistas del duelo de la aristocracia francesa de finales del siglo XVIII, el Vizconde de Valmont y la Marquesa de Merteuil. Ambos acaban muriendo, pero no sin causar un gran daño social. La novela se desarrolla como una serie de cartas escritas a varias personas de sus círculos, tramando una venganza o simplemente creando problemas. Crea una visualización de estas cartas para descubrir los principales protagonistas de la narración, de forma visual. + +Completarás una aplicación web que mostrará una vista animada de esta red social. Utiliza una biblioteca construida para crear una [visualización de una red](https://github.com/emiliorizzo/vue-d3-network) utilizando Vue.js y D3. Cuando la aplicación se está ejecutando, se puede tirar de los nodos alrededor de la pantalla para barajar los datos. + +![vinculoa](../images/liaisons.png) + +## Proyecto: Construir un gráfico para mostrar una red usando D3.js + +> Esta carpeta de la lección incluye una carpeta `solution` donde puedes encontrar el proyecto completado, para tu referencia. + +1. Sigue las instrucciones del archivo README.md en la raíz de la carpeta de inicio. Asegúrate de que tienes NPM y Node.js funcionando en tu máquina antes de instalar las dependencias del proyecto. + +2. Abre la carpeta `starter/src`. Descubrirás una carpeta `assets` donde encontrarás un archivo .json con todas las letras de la novela, numeradas, con una anotación 'to' y 'from'. + +3. Completa el código en `components/Nodes.vue` para habilitar la visualización. Busca el método llamado `createLinks()` y añade el siguiente bucle anidado. + +Recorre el objeto .json para capturar los datos "to" y "from" de las letras y construye el objeto `links` para que la librería de visualización pueda consumirlo: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` +¡Ejecuta tu app desde la terminal (npm run serve) y disfruta de la visualización! + +## 🚀 Reto + +Date una vuelta por internet para descubrir visualizaciones engañosas. ¿Cómo engaña el autor al usuario, y, si es intencionado? Intenta corregir las visualizaciones para mostrar cómo deberían ser. + +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/25) + +## Revisión y Autoestudio + +Aquí hay algunos artículos para leer sobre la visualización de datos engañosa: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +Eche un vistazo a estas interesantes visualizaciones de activos y artefactos históricos: + +https://handbook.pubpub.org/ + +Mira este artículo sobre cómo la animación puedes mejorar tus visualizaciones: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## Asignación + +[Construye tu propia visualización personalizada](assignment.es.md) diff --git a/3-Data-Visualization/13-meaningful-visualizations/translations/assignment.es.md b/3-Data-Visualization/13-meaningful-visualizations/translations/assignment.es.md new file mode 100644 index 00000000..99677c52 --- /dev/null +++ b/3-Data-Visualization/13-meaningful-visualizations/translations/assignment.es.md @@ -0,0 +1,10 @@ +# Construye tu propio vis a medida + +## Instrucciones + +Utilizando el ejemplo de código de este proyecto para crear una red social, maqueta los datos de tus propias interacciones sociales. Podrías mapear tu uso de las redes sociales o hacer un diagrama de los miembros de tu familia. Crea una aplicación web interesante que muestre una visualización única de una red social. +## Rúbrica + +Ejemplar | Adecuado | Necesita mejorar +--- | --- | -- | +Un repo de GitHub se presenta con código que se ejecuta correctamente (intenta desplegarlo como una aplicación web estática) y tiene un README anotado que explica el proyecto | El repo no se ejecuta correctamente o no está bien documentado | El repo no se ejecuta correctamente y no está bien documentado \ No newline at end of file From 00b2a8f3c52d92b6f4dde4a62ed139e0aa632819 Mon Sep 17 00:00:00 2001 From: sarthak Date: Fri, 29 Oct 2021 10:37:10 +0545 Subject: [PATCH 116/234] added nepali translation of Data-science-in-cloud/introduction/readme --- .../17-Introduction/translations/README.ne.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 5-Data-Science-In-Cloud/17-Introduction/translations/README.ne.md diff --git a/5-Data-Science-In-Cloud/17-Introduction/translations/README.ne.md b/5-Data-Science-In-Cloud/17-Introduction/translations/README.ne.md new file mode 100644 index 00000000..fcc57aee --- /dev/null +++ b/5-Data-Science-In-Cloud/17-Introduction/translations/README.ne.md @@ -0,0 +1,101 @@ + क्लाउडमा डाटा साइंस को परिचय + +|![[(@sketchthedocs) द्वारा स्केचनोट](https://sketchthedocs.dev) ](../../../sketchnotes/17-DataScience-Cloud.png)| +|:---:| +| क्लाउड मा डाटा साइंस: परिचय - _[@nitya](https://twitter.com/nitya) द्वारा स्केचनोट_ | + + +यो पाठमा ,तपाईले क्लाउडको मूलभूत सिद्धांत सिक्नहुनेछ,अनि देख्नुहुनेछ कि तपाईले डाटा साइंस परियोजना चलाउनका लागि क्लाउड सेवाको उपयोग कत दिलचस्प हुन सक्छ । त्यसपछि हामी क्लाउडमा चल्ने वाला डाटा साइंस प्रोजेक्टको केही उदाहरण हेर्नेछौ। + + +## [प्री-लेक्चर क्विज़](https://red-water-0103e7a0f.azurestaticapps.net/quiz/32) + + +## क्लाउड के हो? + +क्लाउड, या क्लाउड कंप्यूटिंग, इंटरनेटमा हुने एक बुनियादी ढांचामा होस्ट हुन पे-एज़-यू-गो कंप्यूटिंग सेवाको एक विस्तृत श्रृंखला को डिलीवरी हो। सेवाहरुमा स्टोरेज, डेटाबेस, नेटवर्किंग, सॉफ्टवेयर, एनालिटिक्स र इंटेलिजेंट सर्विसेज जस्तो उदहारनहरु शामिल छन्। + +हामी पब्लिक, प्राइवेट र हाइब्रिड क्लाउडमा यसरी अंतर ल्याउन सक्छौ : + +* पब्लिक क्लाउड: एउटा पब्लिक क्लाउड को स्वामित्व र संचालन तेस्रो पक्षको क्लाउड सेवा प्रदातासंग हुन्छ जुन इंटरनेटबाट कंप्यूटिंग साधनबाट जनतासंग + पुग्छ। +* प्राइवेट क्लाउड: एउटा नै व्यवसाय या संगठबाट विशेष रूपमा उपयोग हुने क्लाउड कंप्यूटिंग साधनलाई संदर्भित गर्छ, जहा सेवा र निजी नेटवर्कमा बनाइएको इंफ्रास्ट्रक्चरहरु हुन्छ। +* हाइब्रिड क्लाउड: हाइब्रिड क्लाउड एउटा यस्तो सिस्टम हो जसले पब्लिक र प्राइवेट क्लाउडलाइ जोड्छ । उपयोगकर्ताले ऑन-प्रिमाइसेस डेटासेंटर छान्छन्, जहा डाटा र एप्लिकेशनको एक या अधिक पब्लिक क्लाउडमा पनि चल्न सक्छन् । + +अधिकांश क्लाउड कंप्यूटिंग सेवाए तीन श्रेणिमा विभाजित छ: सर्विसको रूपमा इंफ्रास्ट्रक्चर (IaaS), सर्विसको रूपमा प्लेटफॉर्म (PaaS) र सर्विसको रूपमा सॉफ्टवेयर (SaaS)। + +* सर्विसको रूपमा इंफ्रास्ट्रक्चर (IaaS): उपयोगकर्ताले आईटी इन्फ्रास्ट्रक्चर किराएको रुपमा लिन्छन् ः सर्वर और वर्चुअल मशीन (VMs), स्टोरेज, नेटवर्क, ऑपरेटिंग सिस्टम। +* सर्विसको रूपमा प्लेटफॉर्म (PaaS): उपयोगकर्ताले सॉफ्टवेयर ऍप्लिकेशन्सको विकास, परीक्षण, वितरण र मैनेज गर्नका लागि एक वातावरण किराएमा लिन्छन् । उपयोगकर्ताको विकास को लागि आवश्यक सर्वरको इंफ्रास्ट्रक्चर, स्टोरेज, नेटवर्क र डाटाबेस को स्थापना गर्ने या प्रबन्ध गर्नको बारेमा चिंता गर्ने आवश्यकता हुन्न। +* सर्विसको रूपमा सॉफ्टवेयर (SaaS): उपयोगकर्ताहरुलाई प्रायजसो माग र सदस्यता को आधारमा इंटरनेटमा सॉफ़्टवेयर एप्लिकेशनसम्म पहुंच प्राप्त हुन्छ ह। उपयोगकर्ताहरुको सॉफ़्टवेयर एप्लिकेशन को होस्टिंग र मैनेजिंग, बुनियादी इंफ्रास्ट्रक्चर या मेंटेनेंस, जस्तै सॉफ़्टवेयर अपग्रेड र सुरक्षा पैचिंगको बारे मा चिंता गर्ने आवश्यकता हुन्न। + +केही ठूलो क्लाउड प्रदाताको उदहारन ऐमज़ॉन वेब सर्विसेस, गूगल क्लाउड प्लेटफॉर्म और माइक्रोसॉफ्ट हो। +## डाटा साइंसको लागि क्लाउडनै किन? + +डेवलपर र आईटी पेशेवर निम्न कारणले क्लाउडमा काम गर्न छान्छन्: + +* नवाचार: क्लाउड प्रदाताद्वारा बनाएको नवीन सेवाबाट सीधै आफ्नो ऐप्समा एकीकृत गरेर आफ्नो एप्लिकेशनलाई सशक्त बनाउन सकिन्छ। +* लचक: तपाई केवल त्यो सेवाको लागि भुक्तान गर्नु हुन्छ जसको तपाईलाई आवश्यकता छ र त्यो सेवालाई एक विस्तृत श्रृंखलाबाट छान्न्न सक्नुहुनेछ । तपाई आफ्नो जरूरतको अनुसार आफ्नो सेवाको भुक्तान गर्नसक्नुहुनेछ। +* बजेट: तपाईको हार्डवेयर र सॉफ़्टवेयर किन्ने, साइट र डेटासेंटर स्थापित गर्न र चलाउनका लागि प्रारंभिक निवेश गर्ने आवश्यकता छैन र तपाई केवल त्यसैको भुक्तान गर्नेुहुनेछ हैं जसको उपयोग गर्नुहुनेछ । +* अनुमापकता: तपाई संसाधन तपाईको परियोजनाको ज़रूरतको अनुसार बडाउन सक्नुहुनेछ, जसको अर्थ यो हो कि तपाई ऐप्स कुनै पनि समयमा बाहरी कारकहरुलाई अपनाएर, कम या धेरै कंप्यूटिंग शक्ति, स्टोरेज र बैंडविड्थको उपयोग गर्नसक्नुहुनेछ। +* उत्पादकता: तपाई त्यो कार्यमा समय बिताउनको साटो , जसलाई कुनै अर्को व्यक्ति प्रबंधित गर्न सक्छ, जैसे डेटासेंटरको प्रबंध गर्नु , तपाई व्यवसायमा ध्यान केंद्रित गर्न सक्छ। +* विश्वसनीयता: क्लाउड कम्प्यूटिंग तपाईको डाटाको लगातार बैकअप लिनलाई धेरै तरीका प्रदान गर्न सक्छ र तपाई संकटको समयमा पनि आफ्नो व्यवसाय र सेवालाई चालू राख्नका लागि आपदा वसूली योजना स्थापित गर्न सक्नुहुनेछ । +* सुरक्षा: तपाई त्यो नीति र नियंत्रणबाट लाभ उठाउन सक्नुहुनेछ जसले तपाईको प्रोजेक्टको सुरक्षालाई मजबूत बनाउछ। + +यिनिहरु केही सबैभन्दा सामान्य कारण हो जसले लोग क्लाउड सेवाको उपयोग गर्न छान्नुहुनेछ।हामीले यो कुराको राम्ररी बुझ्यौ ,आउनुहोस् डाटासँग काम गर्ने डाटा वैज्ञानिकों र डेवलपर्सको कामलाई नजिकबाट र अधिक विशेष रूपबाट हेरौ,र क्लाउडले कई चुनौतियको सामना गर्न कसरी मदद गर्छ हेरौ : + +* ठूलो मात्रा में डाटा स्टोर गर्न: ठूलो सर्वरों किन्ने, प्रबंधित गर्ने र सुरक्षा गर्नेको साटो , तपाई अज़ूर कॉसमॉस डीबी , अज़ूर एसक्यूएल डेटाबेस और अज़ूर डेटा लेक स्टोरेज जस्तो समाधानको साथ अपने डाटालाई सीधै क्लाउडमा स्टोर गर्न सक्नुहुनेछ। +* डेटा एकीकरण गर्ने: डेटा एकीकरण डेटा साइंसको एक अनिवार्य हिस्सा हो, जो तपाईको डेटा संग्रहलाई कार्रवाई गर्नको लागि संक्रमण गर्न दिन्छ। क्लाउडमा दीनजाने वाला डाटा एकीकरण सेवाकोसाथ,तपाई डेटा फ़ैक्टरीको साथ विभिन्न स्रोतबाट डेटा एकत्र, रूपांतरित र एकीकृत गर्न सक्नुहुनेछ। +* डेटा प्रोसेसिंग: ठूलो मात्रामा डाटाको संसाधित गर्नका लागि अधिक कंप्यूटिंग शक्तिको आवश्यकता हुन्छ ,र सबैसँग यसको पर्याप्त शक्तिशाली मशीनको सम्म पहुंच हुदैन, यही कारनले धेरैजसो मानिस आफ्नो समाधानलाई चलाउने र डिप्लॉय गर्नका लागि क्लाउड को विशाल कंप्यूटिंग शक्ति सीधै उपयोग गर्न छान्नुहुनेछ। +* डेटा एनालिटिक्स सेवाको उपयोग : अज़ूर सिनेप्स एनालिटिक्स, अज़ूर स्ट्रीम एनालिटिक्स र अज़ूर डेटाब्रिक्स जस्तो क्लाउड सेवा तपाईको डाटा को कार्रवाई योग्य अंतर्दृष्टिमा बदलन तपाईको सहायता गर्छ। +* मशीन लर्निंग र डेटा इंटेलिजेंस सेवाको उपयोग गर्ने: स्क्रैचबाट शुरू गर्नुको बजाय, तपाई क्लाउड प्रदाताद्वारा पेश गरिएको क मशीन लर्निंग एल्गोरिदमको उपयोग अज़ूरएमएल जैसी सेवाको साथ गर्न सक्नुहुनेछ। तपाई संज्ञानात्मक सेवाको पनि उपयोग गर्न सक्नु हुनेछ जस्तै कि स्पीच-टू-टेक्स्ट, टेक्स्ट-टू-स्पीच, कंप्यूटर दृष्टि आदि। + +## क्लाउडमा डाटा साइंसको उदाहरण + +आउनुहोस् केही परिदृश्यहरुलाई हेरेर यसलाई अधिक मूर्त बनाउ। + +### रीयल-टाइम सोशल मीडिया भावना विश्लेषण +हामी मशीन लर्निंगबाट शुरू हुनेवाला मानिसद्वारा अध्ययन गरिएको परिदृश्यबाट शुरू गर्नेछौ: वास्तविक समयमा सोशल मीडिया को भावनाको विश्लेषण। + +मान्नुहोस् कि तपाई एउटा समाचार मीडिया वेबसाइट चलाउनु हुन्छ र तपाई यसलाई सम्झनका लागि लाइव डाटा को लाभ उठाउन चाहानु हुन्छ र तपाईको पाठकहरुलाई कुन सामग्रीमा रुचि हुन सक्छ ,यसको बारेमा अधिक जान्नको लागि,तपाई एक प्रोग्राम बनाउन सक्नुहुनेछ जो ट्विटर प्रकाशनबाट डेटाको रीयल-टाइम भावना विश्लेषण गर्नेछ । + +तपाई जुन प्रमुख संकेतलाई देख्नुहुनेछ, त्यो विशिष्ट विषय (हैशटैग)र भावनाको ट्वीट्स को मात्रा हो, जुन विश्लेषिकी टूलको उपयोग गरेर स्थापित गर्न सकिन्छ र निर्दिष्ट विषयको आसपासको भावना विश्लेषण गर्छ। + +यस प्रोजेक्टलाई बनाउनका लागि आवश्यक स्टेप्स यस प्रकारका छन् : + +* स्ट्रीमिंग इनपुटका लागि एक इवेंट हब बनाउने, जुन ट्विटरबाट डेटा एकत्र गर्नेछ। +* ट्विटर क्लाइंट एप्लिकेशनलाई कॉन्फ़िगर गर्ने र शुरू गर्ने, जसले ट्विटर स्ट्रीमिंग एपीआईलाई पुकार्नेछ । +* एउटा स्ट्रीम एनालिटिक्स जब बनाउने +* जब इनपुट र क्वेरी निर्दिष्ट गर्ने +* आउटपुट सिंक बनाउने र जॉब आउटपुट निर्दिष्ट गर्ने +* जब शुरू गर्ने + +पूरा प्रक्रिया हेर्नको लागी [प्रलेखन](https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?WT.mc_id=academic-40229-cxa&ocid=AID30411099) । + +### वैज्ञानिक कागजात विश्लेषण +आउनुहोस् यस पाठ्यक्रमको लेखहरुमध्य एक, [दिमित्री सोशनिकोव](http://soshnikov.com) द्वारा बनाईएको परियोजनाको एउटा उदाहरण हेरौ। + +दिमित्रीले एउटा टूल बनाउनुभयो जो कोविड पेपर्सलाई विश्लेषण गर्छ । यस परियोजनाको समीक्षा गरेेर, तपाई देख्नसक्नुहुनेछ कि तपाई एक उपकरण कसरी बनाउन सक्नुहुनेछ जसले वैज्ञानिक पत्रबाट ज्ञान प्राप्त गर्ने छ, अंतर्दृष्टि प्राप्त गर्छ र शोधकर्ताहरुलाई एक कुशल तरीकाबाट कागजातको संग्रहको माध्यमबाट नेविगेट गर्न मदत गर्छ। + +आउनुहोस् यसको लागि उपयोग गरिने विभिन्न चरणहरुलाई हेरौः +* [टेक्स्ट एनालिटिक्स फॉर हेल्थ](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health?WT.mc_id=academic-40229-cxa&ocid=AID3041109) को साथ जानकारी निकाल्न र प्री-प्रोसेस गर्न +* प्रसंस्करणलाई समानांतर राख्नका लागि [अज़ूरएमएल](https://azure.microsoft.com/services/machine-learning?WT.mc_id=academic-40229-cxa&ocid=AID3041109) को उपयोग गर्ने +* [कॉसमॉस डीबी](https://azure.microsoft.com/services/cosmos-db?WT.mc_id=academic-40229-cxa&ocid=AID3041109) को साथ जानकारी संग्रहीत गर्न र क्वेरी गर्न +* पावर बीआईको उपयोग गरेर डेटा अन्वेषण र विज़ुअलाइज़ेशनका लागि एक इंटरैक्टिव डैशबोर्ड बनाउन + +पूरा प्रक्रिया हेर्नका लागि [दिमित्री के ब्लॉग](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) + +तपाई देख्न सक्नुहुनेछ , हामी डाटा साइन्सको प्रदर्शन गर्नका लागि धेरै तरिकाबाट क्लाउड सेवाको लाभ उठाउन सक्नुहुनेछ। +## पादटिप्पणी + +स्त्रोत: +* https://azure.microsoft.com/overview/what-is-cloud-computing?ocid=AID3041109 +* https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?ocid=AID3041109 +* https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ + +## पोस्ट-लेक्चर क्विज़ + +[पोस्ट-लेक्चर क्विज़](https://red-water-0103e7a0f.azurestaticapps.net/quiz/33) + +## असाइनमेंट + +[मार्केट रिसर्च](./assignment.hi.md) From dc8911c0af70312703972c738633f73e52387162 Mon Sep 17 00:00:00 2001 From: sarthak Date: Fri, 29 Oct 2021 11:20:14 +0545 Subject: [PATCH 117/234] added nepali translation of Data-science-in-cloud assignment --- .../17-Introduction/translations/assignment.ne.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 5-Data-Science-In-Cloud/17-Introduction/translations/assignment.ne.md diff --git a/5-Data-Science-In-Cloud/17-Introduction/translations/assignment.ne.md b/5-Data-Science-In-Cloud/17-Introduction/translations/assignment.ne.md new file mode 100644 index 00000000..32717a14 --- /dev/null +++ b/5-Data-Science-In-Cloud/17-Introduction/translations/assignment.ne.md @@ -0,0 +1,10 @@ +# मार्केट रिसर्च + +## निर्देश + + यस पाठमा तपाईले धेरै महत्वपूर्ण क्लाउड प्रदाताहरु सिक्नभएको छ। डेटा साइंटिस्ट बारे केही खोज गर्नुहोस् र के सहायता पुर्याउन सक्नुहुन्छ सोच्नुहोस। के उनको सब्स्क्रिप्शन्स तुलनीय छ? यिनिहरु मध्यमा तीन या अधिक क्लाउड प्रदाताको पेशकशको वर्णन गर्नका लागि एउटा पेपर लेख्नुहोस्। +## स्कोर गाइड + +उदाहरणात्मक | पर्याप्त | सुधारको जरूरत हछ +--- | --- | -- | +एक पृष्ठको पेपरमा तीन क्लाउड प्रदाताको डेटा विज्ञान, प्रसादको वर्णन गरोस् र उनीहरु बीचको अंतरको बारेमा होस् | एउटा छोटो पेपर प्रस्तुत गरिएको छ | विश्लेषण पूरा नगरी एक पेपर प्रस्तुत गरिएको छ । \ No newline at end of file From 3b390afc389e4c75c8647372b92f5aa6369f9688 Mon Sep 17 00:00:00 2001 From: ycechungAI Date: Fri, 29 Oct 2021 13:49:09 -0400 Subject: [PATCH 118/234] first iteration translated working with data README to Simplified chinese --- .../translations/README.zh-cn.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 2-Working-With-Data/translations/README.zh-cn.md diff --git a/2-Working-With-Data/translations/README.zh-cn.md b/2-Working-With-Data/translations/README.zh-cn.md new file mode 100644 index 00000000..4bb2a350 --- /dev/null +++ b/2-Working-With-Data/translations/README.zh-cn.md @@ -0,0 +1,17 @@ +# 处理数据 + +![data love](images/data-love.jpg) +> 摄影者 Alexander Sinn on Unsplash + +在这些课程中, 你将学习一些数据管理, 数据操作, 和应用中使用的方式. 你将学习关系和非关系数据库, 和数据如何存储在他们中. 你将学习Python的基础, 并且你将发现一些你可以使用Python的方式来管理和挖掘数据. + +### 主题 + +1. [关系数据库](05-relational-databases/README.md) +2. [非关系数据库](06-non-relational/README.md) +3. [使用Python](07-python/README.md) +4. [准备数据](08-data-preparation/README.md) + +### 感谢 + +这些课程是用❤️写的 [Christopher Harrison](https://twitter.com/geektrainer), [Dmitry Soshnikov](https://twitter.com/shwars) and [Jasmine Greenaway](https://twitter.com/paladique) \ No newline at end of file From af6f262bb6d6cf7eb3bf7c5432ba43d88a72f486 Mon Sep 17 00:00:00 2001 From: ycechungAI Date: Fri, 29 Oct 2021 13:54:44 -0400 Subject: [PATCH 119/234] second iteration translated working with data README to Simplified chinese --- 2-Working-With-Data/translations/README.zh-cn.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/2-Working-With-Data/translations/README.zh-cn.md b/2-Working-With-Data/translations/README.zh-cn.md index 4bb2a350..ebcb87f9 100644 --- a/2-Working-With-Data/translations/README.zh-cn.md +++ b/2-Working-With-Data/translations/README.zh-cn.md @@ -5,13 +5,13 @@ 在这些课程中, 你将学习一些数据管理, 数据操作, 和应用中使用的方式. 你将学习关系和非关系数据库, 和数据如何存储在他们中. 你将学习Python的基础, 并且你将发现一些你可以使用Python的方式来管理和挖掘数据. -### 主题 +### 话题 1. [关系数据库](05-relational-databases/README.md) 2. [非关系数据库](06-non-relational/README.md) 3. [使用Python](07-python/README.md) 4. [准备数据](08-data-preparation/README.md) -### 感谢 +### 学分 -这些课程是用❤️写的 [Christopher Harrison](https://twitter.com/geektrainer), [Dmitry Soshnikov](https://twitter.com/shwars) and [Jasmine Greenaway](https://twitter.com/paladique) \ No newline at end of file +这些课程由 ❤️ [Christopher Harrison](https://twitter.com/geektrainer), [Dmitry Soshnikov](https://twitter.com/shwars) and [Jasmine Greenaway](https://twitter.com/paladique) \ No newline at end of file From 8aaa0c7891b63e29d1c237d1f845ed198fdf40d1 Mon Sep 17 00:00:00 2001 From: Mohit Jaisal Date: Fri, 29 Oct 2021 23:59:39 +0530 Subject: [PATCH 120/234] Gif by Mohit Jaisal credit added --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c04d68fe..c5a34100 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,8 @@ Azure Cloud Advocates at Microsoft are pleased to offer a 10-week, 20-lesson cur [![Promo video](ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "Promo video") +**Gif by** [Mohit Jaisal](https://www.linkedin.com/in/mohitjaisal) + > 🎥 Click the image above for a video about the project the folks who created it! ## Pedagogy From d43fce1047f198ec256f8af79bb2bc1ff59a76d1 Mon Sep 17 00:00:00 2001 From: rym-oualha Date: Fri, 29 Oct 2021 22:51:36 +0100 Subject: [PATCH 121/234] added french readme for intro to part 1 and 2 --- 1-Introduction/translations/README.fr.md | 17 +++++++++++++++++ 2-Working-With-Data/translations/README.fr.md | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 1-Introduction/translations/README.fr.md create mode 100644 2-Working-With-Data/translations/README.fr.md diff --git a/1-Introduction/translations/README.fr.md b/1-Introduction/translations/README.fr.md new file mode 100644 index 00000000..14ba5763 --- /dev/null +++ b/1-Introduction/translations/README.fr.md @@ -0,0 +1,17 @@ +# Introduction à la science des données + +![données en action](images/data.jpg) +> Photo par Stephen Dawson sur Unsplash + +Dans ces leçons, vous découvrirez comment la science des données est définie et apprendrez les considérations éthiques qui doivent être prises en compte par un scientifique des données. Vous apprendrez également comment les données sont définies et vous vous familiariserez avec les statistiques et les probabilités, qui sont les principaux domaines académiques de la science des données. + +### Thèmes + +1. [Définition de la science des données](01-defining-data-science/README.md) +2. [Éthique de la science des données](02-ethics/README.md) +3. [Définir les données](03-defining-data/README.md) +4. [Introduction aux statistiques et aux probabilités](04-stats-and-probability/README.md) + +### Crédits + +Ces leçons ont été rédigées avec ❤️ par [Nitya Narasimhan](https://twitter.com/nitya) et [Dmitry Soshnikov](https://twitter.com/shwars). \ No newline at end of file diff --git a/2-Working-With-Data/translations/README.fr.md b/2-Working-With-Data/translations/README.fr.md new file mode 100644 index 00000000..afb98aef --- /dev/null +++ b/2-Working-With-Data/translations/README.fr.md @@ -0,0 +1,17 @@ +# Travailler avec les données + +![l'amour des données](images/data-love.jpg) +> Photo par Alexander Sinn sur Unsplash + +Dans ces leçons, vous découvrirez quelques-unes des façons dont les données peuvent être gérées, manipulées et utilisées dans les applications. Vous découvrirez les bases de données relationnelles et non relationnelles et la manière dont les données peuvent y être stockées. Vous apprendrez les principes fondamentaux de l'utilisation de Python pour gérer les données et vous découvrirez quelques-unes des nombreuses façons de travailler avec Python pour gérer et exploiter les données. + +### Thèmes + +1. [Bases de données relationnelles](05-relational-databases/README.md) +2. [Bases de données non relationnelles](06-non-relational/README.md) +3. [Travailler avec Python](07-python/README.md) +4. [Préparation des données](08-data-preparation/README.md) + +### Crédits + +Ces leçons ont été rédigées avec ❤️ par [Christopher Harrison](https://twitter.com/geektrainer), [Dmitry Soshnikov](https://twitter.com/shwars) et [Jasmine Greenaway](https://twitter.com/paladique) \ No newline at end of file From 9e8a91fe5c11a967e737be366977df76343b7194 Mon Sep 17 00:00:00 2001 From: Mikhail Sadiakhmatov Date: Sat, 30 Oct 2021 01:45:43 +0300 Subject: [PATCH 122/234] 1-4 stats translated --- .../translations/README.ru.md | 272 ++++++++++++++++++ .../translations/assignment.ru.md | 26 ++ 2 files changed, 298 insertions(+) create mode 100644 1-Introduction/04-stats-and-probability/translations/README.ru.md create mode 100644 1-Introduction/04-stats-and-probability/translations/assignment.ru.md diff --git a/1-Introduction/04-stats-and-probability/translations/README.ru.md b/1-Introduction/04-stats-and-probability/translations/README.ru.md new file mode 100644 index 00000000..14ca11ad --- /dev/null +++ b/1-Introduction/04-stats-and-probability/translations/README.ru.md @@ -0,0 +1,272 @@ +# Краткое введение в теорию вероятности и статистику + +|![ Рисунок [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| Теория вероятности и статистика - _Рисунок [@nitya](https://twitter.com/nitya)_ | + + +Статистика и теория вероятности - две связанные друг с другом области математики, которые активно применяются в науке о данных. Оперировать данными вполе возможно без глубоких знаний математики, но всё лучше знать, по крайней мере, некоторые базовые концепции. В этом уроке мы приводим краткое введение, чтобы помочь Вам их понять. + +[![Вступительное видео](../images/video-prob-and-stats.png)](https://youtu.be/Z5Zy85g4Yjw) + + +## [Вступительный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/6) + +## Вероятность и случайная величина + +**Вероятность** - число от 0 до 1, которое выражает, насколько вероятным является **событие**. Она определяется как число благоприятных исходов (которые ведут к появлению события), делённое на число всех исходов, при условии, что все исходы одинаково вероятны. Например, при броске кубика, вероятность того, что мы получим чётное числов равна 3/6 = 0.5. + +Когда мы говорим о событиях, мы используем **случайные величины**. Например, случайная величина, которая представляет собой число, выпавшее при броске кубика, принимает значения от 1 до 6. Числа от 1 до 6 в данном случае называются **пространством элементарных событий**. Мы можем говорить о вероятности случайной величины, оперируя конкретным числом, например P(X=3)=1/6. + +Случайная величина из предыдущего примера называется **дискретной**, потому что она имеет счётное пространство элементарных событий, т.е. принимает отдельные значения, которые можно перечислить. Существуют случаи, когда пространство событий представляет собой диапазон действительных чисел, или целый их набор. Такие величины называются **непрерывными**. Отличным примером такой величины является время прибытия автобуса. + + +## Распределение вероятности + +В случае случайных дискретных величин, легко описать вероятность каждого события функцией P(X). Для каждого значения *s* из пространства событий *S* она возвращает число от 0 до 1 таким образом, что сумма всех значений функции P(X=s) для всех событий равна 1. + +Наиболее широко известное распределение - **равномерное распределение**, при котором элементы пространства событий N имеют равную вероятность 1/N. + +Описать распределение вероятности непрерывной величины, принимающей значения в интервале [a,b] или в пространстве действительных чисел ℝ, гораздо сложнее. Рассмотрим случай со временем прибытия автобуса. На самом деле, для каждого отдельного времени прибытия $t$, вероятность прибытия автобуса точно в данное время равна 0! + +> Теперь Вы знаете, что события с нулевой вероятностью встречаются, и очень часто! По крайней мере, каждый раз, когда приходит автобус. + +Мы можем говорить о вероятности случайной величины, распределённой на интервале значений, напр. P(t1≤X<t2). В этом случае, распределение вероятности описывается **функцией плотности вероятности** p(x), например + +![P(t_1\le X1, x2, ..., xn. Мы можем рассчитать **среднее** (or **арифметическое среднее**) значение традиционным способом: (x1+x2+xn)/n. По мере увеличения числа элементов выборки (т.е. взять неограниченное число n→∞), мы получим среднее (также называемое **математическим ожиданием**) распределения. Обозначим его **E**(x). + +> Можно продемонстрировать, что для любого дискретного распределения, принимающего значения {x1, x2, ..., xN} с вероятностями p1, p2, ..., pN, математическое ожидание равно E(X)=x1p1+x2p2+...+xNpN. + +Чтобы определить, насколько широко распределены данные, мы можем посчитать дисперсию σ2 = ∑(xi - μ)2/n, где μ - среднее значение ряда. Величина σ называется **стандартным отклонением**, а σ2 - **дисперсией**. + + +## Мода, медиана и квартили + +Иногда, среднее значение необъективно отображает "обычное" значение в данных. Например, когда имеются несколько экстремальных значений, которые лежат далеко за пределами интервала, они могут влиять на среднее. Ещё одна полезная величина - **медиана**, значение, меньше которого половина точек, а другая половина - больше. + +Чтобы лучше понять распределение данных, полезно упомянуть **квартили**: + +* Первая квартиль, или Q1, - величина, меньше которой 25% всех данных +* Третья квартиль, или Q3 - величина, меньше которой 75% всех данных + +Взаимосвязь между медианой и квартилями мы можем изобразить графически при помощи диаграммы **ящик с усами**: + + + + +Мы также можем посчитать **интерквартильный размах** IQR=Q3-Q1 и так называемые **выбросы** - значения, оторые лежат за пределами [Q1-1.5*IQR,Q3+1.5*IQR]. + + +Для конечного распределения, которое принимает небольшое число возможных значений, хорошее "обычное" значение - то, которое появляется наиболее часто, оно называется **мода**. Она актуальна для категориальных данных, таких как цвета. Представим ситуцию, в которой у нас есть две группы людей, одни из них предпочитают красный цвет, другим больше нравится синий. Если мы закодируем цвета при помощи цифр, среднее значение для предпочитаемого цвета будет где-то в оранжево-зелёном спектре и не отобразит реальные предпочтения ни одной из групп. Однако, мода примет значение одного из цветов, или обоих, если число проголосовавших за них людей одинаково (в этом случае мы называем выборку **мультимодальной**). + +## Реальные данные + +Когда мы анализируем данные из реального мира, они зачастую не являются случайными по своей природе, в том смысле, что мы не проводим эксперименты с неизвестным результатом. Например, рассмотрим игроков бейсбольной команды и их параметры, такие как рост, вес и возраст. Эти числа не совсем случайные, но, несмотря на это, мы можем применять те же самые математические концепции. Например, последовательность весов людей может быть рассмотрена как последовательность чисел, взятых из какой-либо случайной величины. Ниже приведена последовательность весов реальных бейсбольных игроков [Главной бейсбольной лиги](http://mlb.mlb.com/index.jsp), взятых из [этого датасета](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) (приводим только первые 20 значений для Вашего ознакомления) + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **Замечание**: Чтобы ознакомиться с примером работы с данным датасетом, взгляните на [соответствующий блокнот](../notebook.ipynb). Также там доступны задачи из данного урока, и Вы можете выполнить их, добавив свой код в этот блокнот. Если Вы не знаете как обращаться с данными, не переживайте, мы вернёмся к работе с данными при помощи языка Python позже. Если вы не знаете, как запускать код в Jupyter блокнотах, взгляните на [эту статью](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +Ниже приведён график "ящик с усами", отображающий среднее значение, медину и квартили для наших данных: + +![График весов](../images/weight-boxplot.png) + +Так как наши данные содержат информацию о различных **ролях** игроков, мы также может построить подобный график по ролям, это позволит нам увидеть, как параметры игроков варьируются в зависимости от роли. На этот раз отобразим рост: + +![График "ящик с усами" по ролям](../images/boxplot_byrole.png) + +Из этого графика следует, что, в среднем, бейсболист с первой базы выше ростом, чем со второй. Далее в этом уроке мы рассмотрим, как проверить эту гипотезу формально и как продемонстрировать, что наши данные обладают статистической значимостью, чтобы подтвердить нашу гипотезу. + +> При работе с реальными данными, мы предполагаем, что все экземпляры данных взяты из одного распределения. Это предположение позволяет нам применять методы машинного обучения и строить работающие предиктивные модели. + +Для того, чтобы увидеть распределение наших данных, мы можем построить график под названием **гистограмма**. Шкала X будет содержать различные интервалы весов (так называемые **столбцы**), а шкала Y - количество попаданий случайной величины в заданный интервал. + +![Гистограмма реальных данных](../images/weight-histogram.png) + +На гистограмме вы можете увидеть, что все значения сосредоточены вокруг определённого среднего веса и что чем дальше мы от этого веса, тем меньше весов находится в столбце. Т.е. крайне маловероятно, что веса бейсболистов будут сильно отличаться от среднего веса. Дисперсия весов показывает степень вероятности, с которой веса будут отличаться от своего среднего значения. + +> Если мы возьмём веса других людей, не из бейсбольной лиги, то распределение наверняка будет другим. Однако форма распределения останется той же самой, но среднее и дисперсия изменятся. Таким образом, если мы натренируем нашу модель на бейсбольных игроках, мы, вероятно, получим плохие результаты, применяя эту модель к студентам университета, потому что распределение их весов другое. + +## Нормальное распределение + +Распределение весов, которое мы наблюдали выше, крайне типичное, множество измерений величин реального мира подчиняются этому типу распределений, но с другими средним значением и дисперсией. Данное распределение называется **нормальным распределением**, и оно занимает очень важное место в статистике. + +Использование нормального распределения - верный способ сгенерировать случайные веса потенциальных бейсболистов. Как только мы узнаем средний вес `mean` и стандартное отклонение `std`, мы можем сгенерироваться 1000 примеров весов следующей командой: + +```python +samples = np.random.normal(mean,std,1000) +``` + +Если мы построим гистограмму сгенерированных примеров, мы увидим картину, очень похожую на ту, что мы видели выше. И в случае увеличения количества примеров и количества столбцов, мы можем получить изображение нормального распределения, которое более близко к идеальному: + +![Нормальное распределение с параметрами mean=0 и std.dev=1](../images/normal-histogram.png) + +*Нормальное распределение с параметрами среднее (mean) = 0 и стандартным отклонением (std.dev) = 1* + +## Доверительные интервалы + +Когда мы говорим о весе бейсболистов, мы полагаем, что существует **случайная величина W**, которая соответствует идеальному распределению вероятности весов всех бейсболистов (так называемой **популяции**). Наша последовательность весов соответствует подмножеству множества всех бейсболистов, которое мы называем **выборкой**. Интересный вопрос состоит в том, можем ли мы узнать параметры распределения W, т.е. среднее значение и дисперсию популяции? + +Самым простым решением может быть посчитать среднее и дисперсию нашей выборки. Однако, может произойти так, что наша случайная выборка не достаточно точно представляет полную популяцию. Таким образом, имеет смысл обсудить понятие **доверительных интервалов**. + +> **Доверительный интервал** - оценка реального среднего значения популяции при условии нашей выборки, которая точна для определенного уровня вероятности (или **степени достоверности**) + +Предположим у нас есть выборка X1, ..., Xn из нашего распределения. Каждый раз, когда мы выделяем выборку из нашего распределения, мы получаем различные среднее значение μ. Таким образом, μ может быть рассмотрено в качестве случайной величины. **Доверительный интервал** с уверенностью p - пара таких значений (Lp,Rp), что **P**(Lp≤μ≤Rp) = p, т.е. вероятность измеренного среднего значения попадает лежит в данном интервале с вероятностью p. + +Детальное обсуждение расчёта подобных доверительных интервалов лежит за рамками нашего краткого введения. Некоторые подробности Вы можете найти [на портале Wikipedia](https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B2%D0%B0%D0%BB). Коротко, мы нашли распределение рассчитанного выборочного среднего по отношению к реальному среднему популяции, которое называется **распределением Стьюдента**. + +> **Интересный факт**: распределение Стьюдента названо в честь математика Уильяма Сили Госсета, который публиковал свои статьи под псевдонимом "Стьюдент". Он работал в пивоварне Гиннес и, по одной из версий, его работодатель не хотел, чтобы широкая публика знала, что на производстве использовали статистические методы для определения качества исходных материалов. + +Если мы хотим подсчитать среднее значение μ популяции с уверенностью p, нам необходимо взять *(1-p)/2-ую перцентиль* распределения Стьюдента A, которая находится в специальной таблице или рассчитывается встренными функциями статистического ПО (например языки программирования Python, R, и др.). Затем найдём интервал для μ при помощи X±A*D/√n, где X - полученное выборочное среднее, D - стандартное отклонение. + +> **Замечание**: мы также опустим обсуждение важной концепции [степени свободы](https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BF%D0%B5%D0%BD%D0%B8_%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D1%8B_(%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9)), которая имеет прямое отношение к распределению Стьюдента. Вы также можете ознакомиться с более полными пособиями по статистике, чтобы глубже изучить данное понятие. + +Пример расчёта доверительных интервалов для весов и высот бейсболистов приведёт в [соответствующем блокноте](../notebook.ipynb). + +| p | Weight mean | +|-----|-----------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +Отметим, что чем выше степень уверенности, тем шире доверительный интервал. + +## Проверка гипотез + +В нашем датасете бейсболистов есть разные роли игроков, которые могут быть агрегированы как в примере ниже (взгляните на [соответствующий блокнот](../notebook.ipynb), чтобы увидеть, как рассчитывается данная таблица): + +| Роль | Высота | Вес | Количество | +|------|--------|--------|-------| +| Кэтчер | 72.723684 | 204.328947 | 76 | +| Назначенный хиттер | 74.222222 | 220.888889 | 18 | +| Игрок первой базы | 74.000000 | 213.109091 | 55 | +| Аутфилдер | 73.010309 | 199.113402 | 194 | +| Релиф-питчер | 74.374603 | 203.517460 | 315 | +| Игрок второй базы | 71.362069 | 184.344828 | 58 | +| Шорт-стоп | 71.903846 | 182.923077 | 52 | +| Стартовый питчер | 74.719457 | 205.163636 | 221 | +| Игрок третьей базы | 73.044444 | 200.955556 | 45 | + +Мы можем отметить, что средняя высота игрока первой базы больше, чем игрока второй. Поэтому, мы можем заключить, что **игрок первой базы выше, чем игрок второй базы**. + +> Данное утверждение называется **гипотезой**, потому что мы не знаем, правдив ли данный факт. + +Однако, не всегда очевидно, можем ли мы сделать такой вывод. Из обсуждения выше мы знаем, что каждое среднее ассоциировано с доверительным интервалом, и, таким образом, эта разница может быть всего лишь статистической погрешностью. Нам необходим более формальный способ, чтобы проверить нашу гипотезу. + +Давайте посчитаем доверительные интервалы отдельно для высот игроков первой и второй баз: + +| Степень уверенности | Игрок первой базы | Игрок второй базы | +|------------|---------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +Мы можем заметить, что нет никакой уверенности, что интервалы пересекаются. Это подтверждает нашу гипотезу о том, что игрок первой базы выше, чем игрок второй. + +Более формально задача, которую мы решаем, состоит в том, чтобы увидеть, **являются ли два распределения вероятности одинаковыми**, или, по крайней мере, имеют те же самые параметры. Нам необходимо использовать разные тесты в зависимости от рассматриваемого распределения. В случае, когда мы знаем, что наше распределение нормальное, мы можем применять **[t-критерий Стьюдента](https://ru.wikipedia.org/wiki/T-%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D0%B8%D0%B9_%D0%A1%D1%82%D1%8C%D1%8E%D0%B4%D0%B5%D0%BD%D1%82%D0%B0)**. + +В t-критерии Стьюдента мы рассчитываем так называемое **t-значение**, которое показывает разницу между двумя средними, обращая внимание на дисперсию. Оно показывает, что t-значение подчиняется **распределению Стьдента**, которое позволяет нам определить пороговое значение при условии степени уверенности **p** (оно также может быть вычислено или найдено в расчётных таблицах). Мы можем сравнивать t-значения с полученным пороговым значением, чтобы подтвердить или опровергнуть гипотезу. + +В языке Python, мы можем использовать библиотеку **SciPy**, которая содержит функцию `ttest_ind` (в дополнение ко многим другим полезным статистическим функциям). Она вычисляет t-значение и также проводит обратный поиск степени уверенности p-значения, поэтому мы можем просто взглянуть на степень уверенности для построения вывода. + +Например, наше сравнение между высотами игроков первой и второй баз имеет следующие результаты: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` + +В нашем случае, p-значение очень маленькое и означает, что существует веское доказательство того, что игрок первой базы выше. + +Существуют также и другие виды гипотез, которые мы можем хотеть проверить, например: +* Доказать, что данная выборка подчиняется некоторому распределению. В нашем случае мы полагали, что высоты распределены нормально, но данный факт требует формального статистического подтверждения. +* Доказать, что среднее значение выборки совпадает с некоторым определённым заранее значением. +* Сравнить средние нескольких выборок (например, какова разница в уровне счастья среди разных возрастных групп) + +## Закон больших чисел и центральная предельная теорема + +Одной из причин, почему нормальное распределение настолько важно, является так называемая **центральная предельная теорема**. Предположим, у нас имеется большое число N независимых величин X1, ..., XN, взятых из любого распределения со средним значением μ и дисперсией σ2. Тогда, для достаточного большого N (другими словами, при N→∞), среднее значение ΣiXi будет распределено нормально, со средним μ и дисперсией σ2/N. + +> Другая интерпретация центральной предельной теоремы заключается в том, что вне зависимости от распределения, когда вы вычисляете среднее значение суммы значений любой случайной величины, вы приходите к нормальному распределению. + +Из центральной предельной теоремы также следует, что когда N→∞, вероятность того, что выборочное среднее будет равно μ, равняется 1. Данный факт называется **законом больших чисел**. + +## Ковариация и корреляция + +Одна из задач науки о данных - нахождение зависимостей в данных. Мы говорим, что две последовательности **коррелируют**, когда они демонстрируют похожее поведение в одно и то же время, т.е. они либо растут/падают совместно, либо одна последовательность растет, когда другая падает и наоборот. Другими словами, между ними существует какая-либо связь. + +> Корреляция не обязательно означает каузацию (причинно-следственную связь) между двумя последовательностями; иногда обе переменные могут зависеть от одной внешней причины, или их корреляция может быть чистым совпадением. Однако, сильная математическая корреляция является хорошим индикатором, что две переменные как-либо связаны. + +Математически, **ковариация** - основная концепция, которая показывает связь двух случайных величин, и рассчитывается по формуле: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]. Мы вычисляем стандартное отклонение обоих переменных от их средних значений, затем произведение этих отклонений. Если обе переменные отклоняются совместно, произведение будет всегда положительной величиной и приведёт к положительной ковариации. Если обе переменные отклоняются по-разному (т.е. одна снижается ниже среднего, когда другая поднимается выше), мы всегда будем получать отрицательные числа, которые приведут к отрицательной ковариации. Если отклонения не зависят друг от друга, их сумма будет примерно равна нулю. + +Абсолютная величина ковариации не может сказать нам, насколько сильная корреляция, потому что она зависит от величины реальных значений. Для того, чтобы нормализовать их, мы можем поделить ковариацию на стандартное отклонение обоих переменных и получить **корреляцию**. Очень удачно, что корреляция всегда находится в диапазоне [-1,1], где 1 означает сильную положительную корреляцию, -1 - сильную отрицательную корреляцию, а 0 - отсутствие корреляции (переменные являются независимыми). + +**Пример**: Мы можем рассчитать корреляцию между весом и ростом бейсболистм из датасета, рассмотренного выше: +```python +print(np.corrcoef(weights,heights)) +``` +В результате, мы получаем **корреляционную матрицу** наподобие этой: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> Корреляционная матрица может быть построена для любого числа входных последовательностей S1, ..., Sn. Значение Cij является коэффициентом корреляции между Si и Sj, а диагональные элементы всегда равны 1 (что по сути является автокорреляцией последовательности Si). + +В нашем случае, значение 0.52 означает, что существует некоторая корреляция между весом и ростом человека. Мы также можем построить точечный график зависимости между одной величиной от другой, чтобы оценить связь между ними визуально: + +![Связь между ростом и весом](../images/weight-height-relationship.png) + +> Больше примеров корреляции и ковариации Вы можете найти в [соответствующем ноутбуке](notebook.ipynb). + +## Заключение + +В данной главе мы изучили: + +* базовые статистические свойства данных, такие как среднее значение, дисперсия, мода и квартили +* различные распределени случайной величины, включая нормальное распределение +* как найти корреляцию между различными величинами +* как использовать математические и статистические методы, чтобы доказать некоторые гипотезы +* как вычислить доверительные интервалы случайной величины при условии данной выборки + +Хотя всё вышеперечисленное не является исчерпывающим списком тем в теории вероятности и статистике, этого должно быть достаточно для Вашего успешного погружения в этот курс. + +## 🚀 Задача + +Используя примеры из блокнота, проверьте другие гипотезы: +1. Игрок первой базы старше, чем игрок второй +2. Игрок первой базы выше, чем игрок третьей +3. Шорт-стоп выше, чем игрок второй базы + +## [Проверочный тест](https://red-water-0103e7a0f.azurestaticapps.net/quiz/7) + +## Материалы для самостоятельного изучения + +Теория вероятности и статистика - это широкий набор тем, которые заслуживают отдельного курса. Если Вы хотите изучить теорию поглубже, ознакомьтесь со следующими книгами: + +1. [Carlos Fernanderz-Granda](https://cims.nyu.edu/~cfgranda/) из университета Нью-Йорка написал отличные лекционные материалы [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (доступны онлайн) +1. [Peter and Andrew Bruce. Practical Statistics for Data Scientists.](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[примеры кода на языке R](https://github.com/andrewgbruce/statistics-for-data-scientists)]. +1. [James D. Miller. Statistics for Data Science](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[примеры кода на языке R](https://github.com/PacktPublishing/Statistics-for-Data-Science)] + +## Домашнее задание + +[Небольшое исследование диабета](assignment.ru.md) + +## Благодарности + +Данный урок был написан с ♥️ [Дмитрием Сошниковым](http://soshnikov.com) diff --git a/1-Introduction/04-stats-and-probability/translations/assignment.ru.md b/1-Introduction/04-stats-and-probability/translations/assignment.ru.md new file mode 100644 index 00000000..70edb88f --- /dev/null +++ b/1-Introduction/04-stats-and-probability/translations/assignment.ru.md @@ -0,0 +1,26 @@ +# Небольшое исследование диабета + +В данном домашнем задании мы поработаем с небольшим датасетом пациентов с диабетом, взятым [здесь](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html). + +| | AGE | SEX | BMI | BP | S1 | S2 | S3 | S4 | S5 | S6 | Y | +|---|-----|-----|-----|----|----|----|----|----|----|----|----| +| 0 | 59 | 2 | 32.1 | 101. | 157 | 93.2 | 38.0 | 4. | 4.8598 | 87 | 151 | +| 1 | 48 | 1 | 21.6 | 87.0 | 183 | 103.2 | 70. | 3. | 3.8918 | 69 | 75 | +| 2 | 72 | 2 | 30.5 | 93.0 | 156 | 93.6 | 41.0 | 4.0 | 4. | 85 | 141 | +| ... | ... | ... | ... | ...| ...| ...| ...| ...| ...| ...| ... | + +## Порядок выполнения + +* Откройте [блокнот для домашнего задания](../assignment.ipynb) в окружении Jupyter +* Выполните все перечисленные там задачи, а именно: + [ ] Вычислите средние значения и дисперсии для всех величин + [ ] Постройте "ящики с усами" для признаков BMI, BP и Y в зависимости от пола пациента + [ ] Какие распределения имеют признаки Age, Sex, BMI и Y? + [ ] Проверьте корреляцию между различными переменными и степенью болезни (столбец Y) + [ ] Проверьте гипотезу о том, что степень диабета различается у мужчин и женщин + +## Оценка + +Отлично | Достаточно | Нуждается в улучшении +--- | --- | -- | +Все задачи выполнены, проиллюстрированы и содержат пояснения | Большинство задач выполнены, пояснения или выводы из графиков и/или полученных значений отсутствуют | Некоторые простые задачи, такие как вычисление среднего/дисперсии, выполнены, выводы на основе данных не были получены \ No newline at end of file From 9e736c04b2f5d3fb3480c68718bdf6a53fd5b80e Mon Sep 17 00:00:00 2001 From: sarthak Date: Sat, 30 Oct 2021 11:38:08 +0545 Subject: [PATCH 123/234] added nepali translation of assignment Data-science-lifecirle/analyzing --- .../translations/assignment.ne.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ne.md diff --git a/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ne.md b/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ne.md new file mode 100644 index 00000000..ceb893c6 --- /dev/null +++ b/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ne.md @@ -0,0 +1,21 @@ +# उत्तरको खोज + +यो पहिलेको पाठको [असाइनमेंट](..\14-Introduction\assignment.md) निरंतरता हो, जहां हामीले संक्षेपमा डेटा सेटमा एक नज़र लगाएका थियौ। अब हामी आंकडालाई गहिराईवाट विचार गर्नेछौ। + +फेरि, उही प्रश्न ग्राहक के जान्न चाहन्छ: **के न्यु योर्क शहरका पहेंलो ट्याक्सी यात्रुहरूले जाडो वा गर्मीमा चालकहरूलाई बढी टिप दिन्छन्?** + +तपाईंको टोली डेटा विज्ञान जीवनचक्रको [विश्लेषण] (Readme.md) चरणमा छ, जहाँ तपाईं डेटासेटहरूमा अन्वेषण डेटा विश्लेषण गर्न जिम्मेवार हुनुहुन्छ। तपाईलाई एउटा नोटबुक र डाटासेट प्रदान गरिएको छ जसमा जनवरी र जुलाई २०१९ सम्मका २०० ट्याक्सी लेनदेनहरू समावेश छन्। +## निर्देश + +यस डाइरेक्टरीमा [नोटबुक](assignment.ipnb) र [ट्याक्सी र लिमोसिन कमिसन](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi- Yellow? tabs= azureml-opendatasets)। [डेटासेट शब्दकोश] (https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_ Yellow.pdf) र [प्रयोगकर्ता गाइड](https://www1.nyc.gov/assets/tlc/) सन्दर्भ को। डाउनलोड/pdf/trip_record_user_guide.pdf) डाटा बारे थप जानकारीको लागि। + +नोटबुकमा तपाईंको आफ्नै EDA बनाउनका लागि यस पाठका केही प्रविधिहरू प्रयोग गर्नुहोस् (यदि तपाईं चाहनुहुन्छ भने कक्षहरू थप्नुहोस्) र निम्न प्रश्नहरूको जवाफ दिनुहोस्: + +- डेटामा अन्य कुन प्रभावहरूले टिप रकमलाई असर गर्न सक्छ? +- ग्राहकका प्रश्नहरूको जवाफ दिन कुन स्तम्भहरू प्रायः आवश्यक पर्दैन? +- अहिलेसम्म प्रदान गरिएको कुराको आधारमा, डेटाले मौसमी टिपिङ व्यवहारको कुनै प्रमाण दिन्छ? + +## रूब्रिक + +अनुकरणीय | पर्याप्त | सुधारको जरूरत +--- | --- | -- | From 009b2ccd6ef3f9101871184ed38d9a7f34781a0a Mon Sep 17 00:00:00 2001 From: sarthak Date: Sat, 30 Oct 2021 20:24:11 +0545 Subject: [PATCH 124/234] added nepali translation of 5-data-science-in-cloud/19-azure --- .../19-Azure/translations/assignment.ne.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md diff --git a/5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md b/5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md new file mode 100644 index 00000000..5d8b9338 --- /dev/null +++ b/5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md @@ -0,0 +1,11 @@ +# Azure ML SDK प्रयोग गरेर डाटा विज्ञान परियोजना + +## निर्देशन + +हामीले Azure ML SDK सँग मोडेललाई तालिम, डिप्लोय, र उपभोग गर्न Azure ML प्लेटफर्म कसरी प्रयोग गर्ने भनेर हेर्यौं। अब केहि डेटा को लागी वरिपरि हेर्नुहोस् जुन तपाईले अर्को मोडेललाई प्रशिक्षित गर्न, प्रयोग गर्न र उपभोग गर्न सक्नुहुन्छ। तपाईंले Kaggle र [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-40229. -cxa&ocid=AID3041109) मा डाटासेट फेला पार्न सक्नुहुन्छ। + +## रूब्रिक + +|अनुकरणीय | पर्याप्त | सुधारको आवश्यकता | + +| AutoML कन्फिगरेसन गरिरहँदा, तपाईंले कुन प्यारामिटरहरू प्रयोग गर्न सक्नुहुन्छ भनी हेर्न SDK कागजात हेर्नुभयो। तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण चलाउनुभयो, र तपाईंले मोडेल स्पष्टीकरण जाँच गर्नुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो।|तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण चलाउनुभयो, र तपाईंले मोडेल स्पष्टीकरण जाँच गर्नुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो। | तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण दिनुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो। | \ No newline at end of file From bf1224e50e9a4ee70fec13cf1922abae6417aa85 Mon Sep 17 00:00:00 2001 From: swapnilregmi Date: Sat, 30 Oct 2021 20:36:16 +0545 Subject: [PATCH 125/234] nepali translation added in 3-Data-visualization\9-visualization-quantites assignment --- .../09-visualization-quantities/translations/assignment.ne.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 3-Data-Visualization/09-visualization-quantities/translations/assignment.ne.md diff --git a/3-Data-Visualization/09-visualization-quantities/translations/assignment.ne.md b/3-Data-Visualization/09-visualization-quantities/translations/assignment.ne.md new file mode 100644 index 00000000..e69de29b From e47fac5c9eab016135e58635b25c028822fa7dd5 Mon Sep 17 00:00:00 2001 From: swapnilregmi Date: Sat, 30 Oct 2021 20:48:48 +0545 Subject: [PATCH 126/234] nepali translation added in assignment --- .../06-non-relational/translations/assignment.ne.md | 0 .../translations/assignment.ne.md | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 2-Working-With-Data/06-non-relational/translations/assignment.ne.md diff --git a/2-Working-With-Data/06-non-relational/translations/assignment.ne.md b/2-Working-With-Data/06-non-relational/translations/assignment.ne.md new file mode 100644 index 00000000..e69de29b diff --git a/3-Data-Visualization/09-visualization-quantities/translations/assignment.ne.md b/3-Data-Visualization/09-visualization-quantities/translations/assignment.ne.md index e69de29b..a14c69e4 100644 --- a/3-Data-Visualization/09-visualization-quantities/translations/assignment.ne.md +++ b/3-Data-Visualization/09-visualization-quantities/translations/assignment.ne.md @@ -0,0 +1,11 @@ +# रेखाहरू, स्क्याटरहरू र बारहरू + +## निर्देशनहरू + +यस पाठमा, तपाईंले यस डेटा सेटको बारेमा रोचक तथ्यहरू देखाउन लाइन चार्टहरू, स्क्याटर चार्टहरू, र बार चार्टहरूसँग काम गर्नुभएको छ। यस असाइनमेन्टमा, तपाइँ एक विशेष प्रकारको चराको बारेमा तथ्य पत्ता लगाउन आफ्नो डेटा सेटमा ड्रिल डाउन गर्नुहुन्छ। उदाहरणका लागि, एउटा नोटबुक सिर्जना गर्नुहोस् जुन तपाईंले स्नो गिजको बारेमा पत्ता लगाउन सक्ने सबै रोचक तथ्यहरू प्रदर्शन गर्दछ। तपाईंको नोटबुकमा कथा बताउन माथि उल्लेखित तीनवटा चार्टहरू प्रयोग गर्नुहोस्। + +## रुब्रिक + +अनुकरणीय | पर्याप्त | सुधार चाहिन्छ +--- | --- | - | +नोटबुक राम्रो एनोटेसन, बलियो कथन र आकर्षक ग्राफिक्स संग प्रस्तुत गरिएको छ | नोटबुकमा यी वस्तुहरू मध्ये एउटा हराइरहेको छ | नोटबुकमा यी दुई वस्तुहरू हराइरहेका छन् | \ No newline at end of file From 78e92e9be71f1e079c45988b2039ff3055fea31c Mon Sep 17 00:00:00 2001 From: Kurt Brummert Date: Sat, 30 Oct 2021 16:02:22 -0400 Subject: [PATCH 127/234] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c5a34100..5df47a7e 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ Azure Cloud Advocates at Microsoft are pleased to offer a 10-week, 20-lesson cur # Getting Started -> **Teachers**, we have [included some suggestions](for-teachers.md) on how to use this curriculum. We'd love your feedback [in our discussion forum](https://github.com/microsoft/Data-Science-For-Beginners/discussions)! +> **Teachers**: we have [included some suggestions](for-teachers.md) on how to use this curriculum. We'd love your feedback [in our discussion forum](https://github.com/microsoft/Data-Science-For-Beginners/discussions)! -> **Students**, to use this curriculum on your own, fork the entire repo complete the exercises on your own, starting with a pre-lecture quiz, then reading the lecture completing the rest of the activities. Try to create the projects by comprehending the lessons rather than copying the solution code; however that code is available in the /solutions folders in each project-oriented lesson. Another idea would be to form a study group with friends go through the content together. For further study, we recommend [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa). +> **Students**: to use this curriculum on your own, fork the entire repo and complete the exercises on your own, starting with a pre-lecture quiz. Then read the lecture and complete the rest of the activities. Try to create the projects by comprehending the lessons rather than copying the solution code; however, that code is available in the /solutions folders in each project-oriented lesson. Another idea would be to form a study group with friends and go through the content together. For further study, we recommend [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa). ## Meet the Team @@ -57,7 +57,7 @@ In addition, a low-stakes quiz before a class sets the intention of the student - Assignment - Post-lesson quiz -> **A note about quizzes**: All quizzes are contained [in this app](https://red-water-0103e7a0f.azurestaticapps.net/), for 40 total quizzes of three questions each. They are linked from within the lessons but the quiz app can be run locally; follow the instruction in the `quiz-app` folder. They are gradually being localized. +> **A note about quizzes**: All quizzes are contained [in this app](https://red-water-0103e7a0f.azurestaticapps.net/), for 40 total quizzes of three questions each. They are linked from within the lessons, but the quiz app can be run locally; follow the instruction in the `quiz-app` folder. They are gradually being localized. ## Lessons From 4a779c2897637339efe2e211b68888fceccbb254 Mon Sep 17 00:00:00 2001 From: ehmsu <35581029+ehmsu@users.noreply.github.com> Date: Sat, 30 Oct 2021 16:43:45 -0400 Subject: [PATCH 128/234] Create assignment.fr.md --- .../07-python/translations/assignment.fr.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 2-Working-With-Data/07-python/translations/assignment.fr.md diff --git a/2-Working-With-Data/07-python/translations/assignment.fr.md b/2-Working-With-Data/07-python/translations/assignment.fr.md new file mode 100644 index 00000000..1e423e53 --- /dev/null +++ b/2-Working-With-Data/07-python/translations/assignment.fr.md @@ -0,0 +1,23 @@ +# Tâche: Traitement Des Données en Python + +Dans cette tâche, développez le code que nous avons commencé dans nos défis. La tâche a deux sections: + +## Modélisation de la Propagation de COVID-19 + + - [ ] Placez les graphiques $R_t$ de 5-6 pays sur une graphe à comparer, ou mettez plusieurs graphiques côte à côte + - [ ] Voiez comment les nombres des morts et guérisons sont liés aux nombres des infectés + - [ ] Trouvez combien de temps une maladie typique dure en mettre en corrélation le taux de l'infection avex le taux du décès et cherchez les anomalies. Peut-être vous avez besoin de regarder les pays différents à le trouver. + - [ ] Calculez le taux du décès et comment il change au fil du temps. *Il se peut que vous voulez prendre en compte la durée de la maladie en jours alors que vous pouvez déplacer une série chronologique avant de faire les calculs* + +## Analyse des Articles COVID-19 + +- [ ] Build co-occurrence matrix of different medications, and see which medications often occur together (i.e. mentioned in one abstract). You can modify the code for building co-occurrence matrix for medications and diagnoses. +- [ ] Visualize this matrix using heatmap. +- [ ] As a stretch goal, visualize the co-occurrence of medications using [chord diagram](https://en.wikipedia.org/wiki/Chord_diagram). [This library](https://pypi.org/project/chord/) may help you draw a chord diagram. +- [ ] As another stretch goal, extract dosages of different medications (such as **400mg** in *take 400mg of chloroquine daily*) using regular expressions, and build dataframe that shows different dosages for different medications. **Note**: consider numeric values that are in close textual vicinity of the medicine name. + +## Rubric + +Exemplaire | Acceptable | A Besoin D’amélioration +--- | --- | -- | +Chaque tâche est complet, illustré, et expliqué, y compris au moins un des deux objectifs | Plus que 5 tâches sont complets, aucun des objectifs sont essayés, ou les résultats ne sont pas évidents | Moins que 5 (mais plus que 3) tâches sont complets, les illustrations n'expliquent pas l'objectif From a02d48df8a0a3eea64654ac81d44dc354bd92ac4 Mon Sep 17 00:00:00 2001 From: Kurt Brummert Date: Sat, 30 Oct 2021 17:41:50 -0400 Subject: [PATCH 129/234] Update README.md Update documentation --- .../01-defining-data-science/README.md | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/1-Introduction/01-defining-data-science/README.md b/1-Introduction/01-defining-data-science/README.md index ca25810d..084e1147 100644 --- a/1-Introduction/01-defining-data-science/README.md +++ b/1-Introduction/01-defining-data-science/README.md @@ -11,11 +11,11 @@ ## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) ## What is Data? -In our everyday life, we are constantly surrounded by data. The text you are reading now is data, the list of phone numbers of your friends in your smartphone is data, as well as the current time displayed on your watch. As human beings, we naturally operate with data by counting the money we have or writing letters to our friends. +In our everyday life, we are constantly surrounded by data. The text you are reading now is data. The list of phone numbers of your friends in your smartphone is data, as well as the current time displayed on your watch. As human beings, we naturally operate with data by counting the money we have or by writing letters to our friends. -However, data became much more critical with the creation of computers. The primary role of computers is to perform computations, but they need data to operate on. Thus, we need to understand how computers store and process data. +However, data became much more critical with the creation of computers. The primary role of computers is to perform computations, but they need data to operate on. Thus, we need to understand how computers store and process data. -With the emergence of the Internet, the role of computers as data handling devices increased. If you think of it, we now use computers more and more for data processing and communication, rather than actual computations. When we write an e-mail to a friend or search for some information on the Internet - we are essentially creating, storing, transmitting, and manipulating data. +With the emergence of the Internet, the role of computers as data handling devices increased. If you think about it, we now use computers more and more for data processing and communication, rather than actual computations. When we write an e-mail to a friend or search for some information on the Internet - we are essentially creating, storing, transmitting, and manipulating data. > Can you remember the last time you have used computers to actually compute something? ## What is Data Science? @@ -25,12 +25,12 @@ In [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Data Science** is This definition highlights the following important aspects of data science: * The main goal of data science is to **extract knowledge** from data, in order words - to **understand** data, find some hidden relationships and build a **model**. -* Data science uses **scientific methods**, such as probability and statistics. In fact, when the term *data science* was first introduced, some people argued that data science is just a new fancy name for statistics. Nowadays it has become evident that the field is much broader. -* Obtained knowledge should be applied to produce some **actionable insights**. -* We should be able to operate on both **structured** and **unstructured** data. We will come back to discuss different types of data later in the course. -* **Application domain** is an important concept, and data scientist often needs at least some degree of expertise in the problem domain. +* Data science uses **scientific methods**, such as probability and statistics. In fact, when the term *data science* was first introduced, some people argued that data science was just a new fancy name for statistics. Nowadays it has become evident that the field is much broader. +* Obtained knowledge should be applied to produce some **actionable insights**, i.e. practical insights that you can apply to real business situations. +* We should be able to operate on both **structured** and **unstructured** data. We will come back to discuss different types of data later in the course. +* **Application domain** is an important concept, and data scientists often need at least some degree of expertise in the problem domain, for example: finance, medicine, marketing, etc. -> Another important aspect of Data Science is that it studies how data can be gathered, stored and operated upon using computers. While statistics gives us mathematical foundations, data science applies mathematical concepts to actually draw insights from data. +> Another important aspect of Data Science is that it studies how data can be gathered, stored and operated upon using computers. While statistics gives us mathematical foundations, data science applies mathematical concepts to actually draw insights from data. One of the ways (attributed to [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) to look at the data science is to consider it to be a separate paradigm of science: * **Empirical**, in which we rely mostly on observations and results of experiments @@ -40,34 +40,34 @@ One of the ways (attributed to [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray ## Other Related Fields -Since data is a pervasive concept, data science itself is also a broad field, touching many other related disciplines. +Since data is pervasive, data science itself is also a broad field, touching many other disciplines.

Databases
-The most obvious thing to consider is **how to store** the data, i.e. how to structure them in a way that allows faster processing. There are different types of databases that store structured and unstructured data, which we will consider in our course. +A critical consideration is **how to store** the data, i.e. how to structure it in a way that allows faster processing. There are different types of databases that store structured and unstructured data, which we will consider in our course.
Big Data
-Often we need to store and process really large quantities of data with relatively simple structure. There are special approaches and tools to store that data in a distributed manner on a computer cluster, and process them efficiently. +Often we need to store and process very large quantities of data with a relatively simple structure. There are special approaches and tools to store that data in a distributed manner on a computer cluster, and process it efficiently.
Machine Learning
-One of the ways to understand the data is to **build a model** that will be able to predict desired outcome. Being able to learn such models from data is the area studied in **machine learning**. You may want to have a look at our Machine Learning for Beginners Curriculum to get deeper into that field. +One way to understand data is to **build a model** that will be able to predict a desired outcome. Developing models from data is called **machine learning**. You may want to have a look at our Machine Learning for Beginners Curriculum to learn more about it.
Artificial Intelligence
-As machine learning, artificial intelligence also relies on data, and it involves building high complexity models that will exhibit the behavior similar to a human being. Also, AI methods often allow us to turn unstructured data (eg. natural language) into structured by extracting some insights. +An area of machine learning known as artificial intelligence (AI) also relies on data, and it involves building high complexity models that mimic human thought processes. AI methods often allow us to turn unstructured data (e.g. natural language) into structured insights.
Visualization
-Vast amounts of data are incomprehensible for a human being, but once we create useful visualizations - we can start making much more sense of data, and drawing some conclusions. Thus, it is important to know many ways to visualize information - something that we will cover in Section 3 of our course. Related fields also include **Infographics**, and **Human-Computer Interaction** in general. +Vast amounts of data are incomprehensible for a human being, but once we create useful visualizations using that data, we can make more sense of the data, and draw some conclusions. Thus, it is important to know many ways to visualize information - something that we will cover in Section 3 of our course. Related fields also include **Infographics**, and **Human-Computer Interaction** in general.
## Types of Data -As we have already mentioned - data is everywhere, we just need to capture it in the right way! It is useful to distinguish between **structured** and **unstructured** data. The former are typically represented in some well-structured form, often as a table or number of tables, while latter is just a collection of files. Sometimes we can also talk about **semistructured** data, that have some sort of a structure that may vary greatly. +As we have already mentioned, data is everywhere. We just need to capture it in the right way! It is useful to distinguish between **structured** and **unstructured** data. The former is typically represented in some well-structured form, often as a table or number of tables, while the latter is just a collection of files. Sometimes we can also talk about **semistructured** data, that have some sort of a structure that may vary greatly. | Structured | Semi-structured | Unstructured | | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------- | @@ -80,15 +80,15 @@ As we have already mentioned - data is everywhere, we just need to capture it in There are many possible sources of data, and it will be impossible to list all of them! However, let's mention some of the typical places where you can get data: * **Structured** - - **Internet of Things**, including data from different sensors, such as temperature or pressure sensors, provides a lot of useful data. For example, if an office building is equipped with IoT sensors, we can automatically control heating and lighting in order to minimize costs. - - **Surveys** that we ask users after purchase of a good, or after visiting a web site. + - **Internet of Things** (IoT), including data from different sensors, such as temperature or pressure sensors, provides a lot of useful data. For example, if an office building is equipped with IoT sensors, we can automatically control heating and lighting in order to minimize costs. + - **Surveys** that we ask users to complete after a purchase, or after visiting a web site. - **Analysis of behavior** can, for example, help us understand how deeply a user goes into a site, and what is the typical reason for leaving the site. * **Unstructured** - - **Texts** can be a rich source of insights, starting from overall **sentiment score**, up to extracting keywords and even some semantic meaning. - - **Images** or **Video**. A video from surveillance camera can be used to estimate traffic on the road, and inform people about potential traffic jams. - - Web server **Logs** can be used to understand which pages of our site are most visited, and for how long. + - **Texts** can be a rich source of insights, such as an overall **sentiment score**, or extracting keywords and semantic meaning. + - **Images** or **Video**. A video from a surveillance camera can be used to estimate traffic on the road, and inform people about potential traffic jams. + - Web server **Logs** can be used to understand which pages of our site are most often visited, and for how long. * Semi-structured - - **Social Network** graph can be a great source of data about user personality and potential effectiveness in spreading information around. + - **Social Network** graphs can be great sources of data about user personalities and potential effectiveness in spreading information around. - When we have a bunch of photographs from a party, we can try to extract **Group Dynamics** data by building a graph of people taking pictures with each other. By knowing different possible sources of data, you can try to think about different scenarios where data science techniques can be applied to know the situation better, and to improve business processes. @@ -100,56 +100,56 @@ In Data Science, we focus on the following steps of data journey:
1) Data Acquisition
-First step is to collect the data. While in many cases it can be a straightforward process, like data coming to a database from web application, sometimes we need to use special techniques. For example, data from IoT sensors can be overwhelming, and it is a good practice to use buffering endpoints such as IoT Hub to collect all the data before further processing. +The first step is to collect the data. While in many cases it can be a straightforward process, like data coming to a database from a web application, sometimes we need to use special techniques. For example, data from IoT sensors can be overwhelming, and it is a good practice to use buffering endpoints such as IoT Hub to collect all the data before further processing.
2) Data Storage
-Storing the data can be challenging, especially if we are talking about big data. When deciding how to store data, it makes sense to anticipate the way you would want later on to query them. There are several ways data can be stored: +Storing data can be challenging, especially if we are talking about big data. When deciding how to store data, it makes sense to anticipate the way you would to query the data in the future. There are several ways data can be stored:
    -
  • Relational database stores a collection of tables, and uses a special language called SQL to query them. Typically, tables would be connected to each other using some schema. In many cases we need to convert the data from original form to fit the schema.
  • -
  • NoSQL database, such as CosmosDB, does not enforce schema on data, and allows storing more complex data, for example, hierarchical JSON documents or graphs. However, NoSQL database does not have rich querying capabilities of SQL, and cannot enforce referential integrity between data.
  • -
  • Data Lake storage is used for large collections of data in raw form. Data lakes are often used with big data, where all data cannot fit into one machine, and has to be stored and processed by a cluster. Parquet is the data format that is often used in conjunction with big data.
  • +
  • A relational database stores a collection of tables, and uses a special language called SQL to query them. Typically, tables are organized into different groups called schemas. In many cases we need to convert the data from original form to fit the schema.
  • +
  • A NoSQL database, such as CosmosDB, does not enforce schemas on data, and allows storing more complex data, for example, hierarchical JSON documents or graphs. However, NoSQL databases do not have the rich querying capabilities of SQL, and cannot enforce referential integrity, i.e. rules on how the data is structured in tables and governing the relationships between tables.
  • +
  • Data Lake storage is used for large collections of data in raw, unstructured form. Data lakes are often used with big data, where all data cannot fit on one machine, and has to be stored and processed by a cluster of servers. Parquet is the data format that is often used in conjunction with big data.
3) Data Processing
-This is the most exciting part of data journey, which involved processing the data from its original form to the form that can be used for visualization/model training. When dealing with unstructured data such as text or images, we may need to use some AI techniques to extract **features** from the data, thus converting it to structured form. +This is the most exciting part of the data journey, which involves converting the data from its original form into a form that can be used for visualization/model training. When dealing with unstructured data such as text or images, we may need to use some AI techniques to extract **features** from the data, thus converting it to structured form.
4) Visualization / Human Insights
-Often to understand the data we need to visualize them. Having many different visualization techniques in our toolbox we can find the right view to make an insight. Often, data scientist needs to "play with data", visualizing it many times and looking for some relationships. Also, we may use techniques from statistics to test some hypotheses or prove correlation between different pieces of data. +Oftentimes, in order to understand the data, we need to visualize it. Having many different visualization techniques in our toolbox, we can find the right view to make an insight. Often, a data scientist needs to "play with data", visualizing it many times and looking for some relationships. Also, we may use statistical techniques to test a hypotheses or prove a correlation between different pieces of data.
-
5) Training predictive model
+
5) Training a predictive model
-Because the ultimate goal of data science is to be able to take decisions based on data, we may want to use the techniques of Machine Learning to build predictive model that will be able to solve our problem. +Because the ultimate goal of data science is to be able to make decisions based on data, we may want to use the techniques of Machine Learning to build a predictive model. We can then use this to make predictions using new data sets with similar structures.
-Of course, depending on the actual data some steps might be missing (eg., when we already have the data in the database, or when we do not need model training), or some steps might be repeated several times (such as data processing). +Of course, depending on the actual data, some steps might be missing (e.g., when we already have the data in the database, or when we do not need model training), or some steps might be repeated several times (such as data processing). ## Digitalization and Digital Transformation -In the last decade, many businesses started to understand the importance of data when making business decisions. To apply data science principles to running a business one first needs to collect some data, i.e. somehow turn business processes into digital form. This is known as **digitalization**, and followed by using data science techniques to guide decisions it often leads to significant increase of productivity (or even business pivot), called **digital transformation**. +In the last decade, many businesses started to understand the importance of data when making business decisions. To apply data science principles to running a business, one first needs to collect some data, i.e. translate business processes into digital form. This is known as **digitalization**. Applying data science techniques to this data to guide decisions can lead to significant increases in productivity (or even business pivot), called **digital transformation**. -Let's consider an example. Suppose, we have a data science course (like this one), which we deliver online to students, and we want to use data science to improve it. How can we do it? +Let's consider an example. Suppose we have a data science course (like this one) which we deliver online to students, and we want to use data science to improve it. How can we do it? -We can start with thinking "what can be digitized?". The simplest way would be to measure time it takes each student to complete each module, and the obtained knowledge (eg. by giving multiple-choice test at the end of each module). By averaging time-to-complete across all students, we can find out which modules cause the most problems to students, and work on simplifying them. +We can start by asking "What can be digitized?" The simplest way would be to measure the time it takes each student to complete each module, and to measure the obtained knowledge by giving a multiple-choice test at the end of each module. By averaging time-to-complete across all students, we can find out which modules cause the most difficulties for students, and work on simplifying them. -> You may argue that this approach is not ideal, because modules can be of different length. It is probably more fair to divide the time by the length of the module (in number of characters), and compare those values instead. +> You may argue that this approach is not ideal, because modules can be of different lengths. It is probably more fair to divide the time by the length of the module (in number of characters), and compare those values instead. -When we start analyzing results of multiple-choice tests, we can try to find out specific concepts that students understand poorly, and improve the content. To do that, we need to design tests in such a way that each question maps to a certain concept or chunk of knowledge. +When we start analyzing results of multiple-choice tests, we can try to determine which concepts that students have difficulty understanding, and and use that information to improve the content. To do that, we need to design tests in such a way that each question maps to a certain concept or chunk of knowledge. -If we want to get even more complicated, we can plot the time taken for each module against the age category of students. We might find out that for some age categories it takes inappropriately long time to complete the module, or students drop out at certain point. This can help us provide age recommendation for the module, and minimize people's dissatisfaction from wrong expectations. +If we want to get even more complicated, we can plot the time taken for each module against the age category of students. We might find out that for some age categories it takes an inappropriately long time to complete the module, or that students drop out before completing it. This can help us provide age recommendations for the module, and minimize people's dissatisfaction from wrong expectations. ## 🚀 Challenge -In this challenge, we will try to find concepts relevant to the field of Data Science by looking at texts. We will take Wikipedia article on Data Science, download and process the text, and then build a word cloud like this one: +In this challenge, we will try to find concepts relevant to the field of Data Science by looking at texts. We will take a Wikipedia article on Data Science, download and process the text, and then build a word cloud like this one: ![Word Cloud for Data Science](images/ds_wordcloud.png) -Visit [`notebook.ipynb`](notebook.ipynb) to read through the code. You can also run the code, and see how it performs all data transformations in real time. +Visit [`notebook.ipynb`](notebook.ipynb) to read through the code. You can also run the code, and see how it performs all data transformations in real time. -> If you do not know how to run code in Jupyter Notebook, have a look at [this article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). +> If you do not know how to run code in a Jupyter Notebook, have a look at [this article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). From a5610760530b9af58b135fc458a8288f00d42b3b Mon Sep 17 00:00:00 2001 From: ludovicobesana Date: Sun, 31 Oct 2021 15:56:18 +0100 Subject: [PATCH 130/234] feat: Add favicon --- images/favicon.png | Bin 0 -> 6188 bytes index.html | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 images/favicon.png diff --git a/images/favicon.png b/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5b4f6ac5ab75ef5467dcdb59f9db3cc7a0f405 GIT binary patch literal 6188 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 79c76acf..2edab889 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ + @@ -23,4 +24,4 @@ - \ No newline at end of file + From aad92567e8b4fcc308a699484614c7dad3e41773 Mon Sep 17 00:00:00 2001 From: Floor Drees Date: Sun, 31 Oct 2021 22:27:46 +0100 Subject: [PATCH 131/234] Add NL translation project README Loving this curriculum! --- translations/README.nl.md | 115 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 translations/README.nl.md diff --git a/translations/README.nl.md b/translations/README.nl.md new file mode 100644 index 00000000..e5220328 --- /dev/null +++ b/translations/README.nl.md @@ -0,0 +1,115 @@ +# Data Science voor Beginners - Een curriculum + +[![GitHub license](https://img.shields.io/github/license/microsoft/Data-Science-For-Beginners.svg)](https://github.com/microsoft/Data-Science-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Data-Science-For-Beginners.svg)](https://GitHub.com/microsoft/Data-Science-For-Beginners/pulls/) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) + +[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Data-Science-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/Data-Science-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/Data-Science-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Data-Science-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/Data-Science-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/Data-Science-For-Beginners/stargazers/) + + +Met groot genoegen bieden Azure Cloud Advocates bij Microsoft dit curriculum van 10 weken en 20 lessen aan over data science (datawetenschap). Elke les bevat quizzen voor en na de les, schriftelijke instructies om de les te voltooien, een oplossing en een opdracht. Onze projectmatige pedagogiek stelt je in staat om te leren tijdens het bouwen, een bewezen manier om nieuwe vaardigheden te laten 'plakken'. + + +**Met dank aan de auteurs:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer). + +**🙏 Speciale dank 🙏 gaat uit naar onze [Microsoft Student Ambassador](https://studentambassadors.microsoft.com/) auteurs, proeflezers en "meedenkers",** notably Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), +[Sheena Narula](https://www.linkedin.com/in/sheena-narua-n/), Tauqeer Ahmad, Yogendrasingh Pawar + +|![ Sketchnote door [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Title.png)| +|:---:| +| Data Science voor Beginners - _Sketchnote door [@nitya](https://twitter.com/nitya)_ | + + +# Start + +> **Leerkrachten**: we hebben [suggesties bijgevoegd](for-teachers.md) over het gebruik van dit curriculum. We staan open voor uw feedback [in ons discussie forum](https://github.com/microsoft/Data-Science-For-Beginners/discussions)! + +> **Studenten, leerlingen**: "fork" om dit lesmateriaal te gebruiken de gehele folder, en werk op eigen kracht door de opdrachten. Start steeds met de quiz vooraf. Lees dan de lezing en volg de rest van de opdrachten. Probeer de projecten te voltooien zonder de oplossing een-op-een te kopiëren; maar weet dat de oplossing in de /solutions folder te vinden is. Overweeg een studie groep te vormen en samen door het lesmateriaal te gaan. Wil je nog meer leren? Ga dan naar [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-40229-cxa). + +## Het team achter Data Science voor Beginners + +[![Promo video](ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "Promo video") + +**Gif door** [Mohit Jaisal](https://www.linkedin.com/in/mohitjaisal) + +> 🎥 Klik op de afbeelding hierboven om een video over de makers van dit project te bekijken! + +## Pedagogie + +We hebben twee pedagogische uitgangspunten gekozen bij het bouwen van dit curriculum: we wilden ervoor zorgen dat het projectmatig is en dat het frequente quizzen bevat. Aan het einde van deze serie hebben studenten de basisprincipes van datawetenschap geleerd, waaronder ethische concepten, "data preparation", verschillende manieren van werken met gegevens, gegevensvisualisatie, gegevensanalyse, praktijkgevallen van data wetenschap en meer. + +Bovendien zet een laagdrempelige quiz voor een les de intentie van de student om een ​​onderwerp te leren, terwijl een tweede quiz na de les zorgt voor verdere retentie. Dit curriculum is ontworpen om flexibel en leuk te zijn en kan geheel of gedeeltelijk worden gevolgd. De projecten beginnen klein en worden steeds complexer tegen het einde van de cyclus van 10 weken. + +> Vind onze richtlijnen hierL [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translation](TRANSLATIONS.md). Ook hier verwelkomen wij feedback. + +## Elke les omvat: + +- (Optioneel) sketchnote +- (Optioneel) video +- Een warmup quiz voor de les +- Uitgeschreven lezing +- Voor projectgebaseerde lessen: stapsgewijze handleidingen voor het bouwen van het project +- Kennischecks +- Een uitdaging +- Aanvullende lectuur +- Opdracht +- Quiz na de les + + +> **Een opmerking over de quizzen**: Alle quizzen zijn opgenomen [in deze app](https://red-water-0103e7a0f.azurestaticapps.net/), voor in totaal 40 quizzen van elk drie vragen. Ze zijn gekoppeld vanuit de lessen, maar de quiz-app kan lokaal worden uitgevoerd; volg de instructies in de `quiz-app` map. Ze worden stilaan gelokaliseerd. + +## Lessen + + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](./sketchnotes/00-Roadmap.png)| +|:---:| +| Data Science voor Beginners: Roadmap - _Sketchnote door [@nitya](https://twitter.com/nitya)_ | + + +| Les Nummer | Onderwerp | Lesgroepering | Leerdoelen | Link | Auteur | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | Datawetenschap definiëren | [Introductie](1-Introduction/README.md) | Leer de basisconcepten achter datawetenschap en hoe deze verband houdt met kunstmatige intelligentie, machine learning en big data. | [les](1-Introduction/01-defining-data-science/README.md) [video](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| 02 | Ethiek | [Introductie](1-Introduction/README.md) | Data-ethiekconcepten, uitdagingen en kaders. | [lesson](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| 03 | Data definiëren | [Introductie](1-Introduction/README.md) | Hoe gegevens worden geclassificeerd en de gemeenschappelijke bronnen. | [les](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 04 | Inleiding tot statistiek en waarschijnlijkheid | [Introductie](1-Introduction/README.md) | De wiskundige techniek van waarschijnlijkheid en statistiek om gegevens te begrijpen. | [les](1-Introduction/04-stats-and-probability/README.md) [video](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 05 | Werken met relationele gegevens | [Werken met Data](2-Working-With-Data/README.md) | Inleiding tot relationele gegevens en de basisprincipes van het verkennen en analyseren van relationele gegevens met de Structured Query Language, ook bekend als SQL (uitgesproken als "see-quell"). | [les](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| 06 | Werken met NoSQL Data | [Werken met Data](2-Working-With-Data/README.md) | Inleiding tot niet-relationele gegevens, de verschillende soorten en de basisprincipes van het verkennen en analyseren van documentdatabases. | [les](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| +| 07 | Aan de slag met Python | [Werken met Data](2-Working-With-Data/README.md) |Basisprincipes van het gebruik van Python voor gegevensverkenning met bibliotheken zoals Panda's. Fundamenteel begrip van Python-programmering wordt aanbevolen. | [les](2-Working-With-Data/07-python/README.md) [video](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | Data Preparation | [Werken met Data](2-Working-With-Data/README.md) | Onderwerpen over gegevenstechnieken voor het opschonen en transformeren van gegevens om uitdagingen als ontbrekende, onnauwkeurige of onvolledige gegevens aan te pakken. | [les](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | Hoeveelheden visualiseren | [Data Visualisatie](3-Data-Visualization/README.md) | Leer Matplotlib te gebruiken om vogelgegevens te visualiseren 🦆 | [les](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | Distributies van gegevens visualiseren | [Data Visualisatie](3-Data-Visualization/README.md) | Visualiseren van waarnemingen en trends binnen een interval. | [les](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | Verhoudingen visualiseren | [Data Visualisatie](3-Data-Visualization/README.md) | Het visualiseren van discrete en gegroepeerde percentages. | [les](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | Relaties visualiseren | [Data Visualisatie](3-Data-Visualization/README.md) | Het visualiseren van verbanden en correlaties tussen gegevenssets en hun variabelen. | [les](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | Betekenisvolle visualisaties | [Data Visualisatie](3-Data-Visualization/README.md) | Technieken en begeleiding om uw visualisaties waardevol te maken voor effectieve probleemoplossing en inzichten. | [les](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | Inleiding tot de Data Science-levenscyclus | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Inleiding tot de data science-levenscyclus en de eerste stap van het verwerven en extraheren van gegevens. | [les](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | Analyse | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Deze fase van de data science-levenscyclus richt zich op technieken om data te analyseren. | [les](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | Communicatie | [Levenscyclus](4-Data-Science-Lifecycle/README.md) | Deze fase van de data science-levenscyclus richt zich op het presenteren van de inzichten uit de data op een manier die het voor besluitvormers gemakkelijker maakt om te begrijpen. | [les](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | Data Science in de Cloud | [Levenscyclus](5-Data-Science-In-Cloud/README.md) | Deze lessenreeks introduceert datawetenschap in de cloud en de voordelen ervan. | [les](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) | +| 18 | Data Science in de Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Modellen trainen met behulp van low code-tools. |[les](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) | +| 19 | Data Science in de Cloud | [Cloud Data](5-Data-Science-In-Cloud/README.md) | Modellen implementeren met Azure Machine Learning Studio. | [les](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) en [Maud](https://twitter.com/maudstweets) | +| 20 | Data Science in het Wild | [In het Wild](6-Data-Science-In-Wild/README.md) | Data science projecten in de echte wereld. | [les](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | + +## Offline toegang + +Deze documentatie kan offline geconsumeerd worden door [Docsify](https://docsify.js.org/#/) te gebruiken. Fork deze foldeer, [installeer Docsify](https://docsify.js.org/#/quickstart) op uw computer en typ vervolgens in de hoofdmap van deze opslagplaats `docsify serve`. De website wordt bediend op poort 3000: `localhost:3000`. + +> Let op, notebooks worden niet weergegeven via Docsify, dus als je een notebook moet uitvoeren, doe dat dan apart in VS Code met een Python-kernel. + +## PDF + +Een PDF van alle lessen is [hier](https://microsoft.github.io/Data-Science-For-Beginners/pdf/readme.pdf) te vinden. + +## Hulp gewenst! + +Als je het hele curriculum of een deel ervan wilt vertalen, volg dan onze gids [Vertalingen](TRANSLATIONS.md). + +## Ander Curricula + +Ons team maakt andere curricula: +- [Machine Learning voor Beginners](https://aka.ms/ml-beginners) +- [IoT voor Beginners](https://aka.ms/iot-beginners) +- [Web Dev voor Beginners](https://aka.ms/webdev-beginners) From 7628aa644ff21f0b9b8b5b59e4cebcfe239c06fc Mon Sep 17 00:00:00 2001 From: Floor Drees Date: Sun, 31 Oct 2021 22:33:29 +0100 Subject: [PATCH 132/234] NL README for 1-Introductions --- 1-Introduction/translations/README.nl.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 1-Introduction/translations/README.nl.md diff --git a/1-Introduction/translations/README.nl.md b/1-Introduction/translations/README.nl.md new file mode 100644 index 00000000..04682436 --- /dev/null +++ b/1-Introduction/translations/README.nl.md @@ -0,0 +1,17 @@ +# Inleiding tot datawetenschap + +![data in actie](images/data.jpg) +> Beeld door Stephen Dawson op Unsplash + +In deze lessen ontdek je hoe Data Science wordt gedefinieerd en leer je over ethische overwegingen waarmee een datawetenschapper rekening moet houden. Je leert ook hoe gegevens worden gedefinieerd en leert over statistiek en waarschijnlijkheid, de academische kerndomeinen van Data Science. + +### Onderwerpen + +1. [Data Science definiëren](01-defining-data-science/README.md) +2. [Ethiek in Data Science](02-ethics/README.md) +3. [Data definiëren](03-defining-data/README.md) +4. [Inleiding tot statistiek en kansrekening](04-stats-and-probability/README.md) + +### Credits + +Dit lesmateriaal is met liefde ❤️ geschreven door [Nitya Narasimhan](https://twitter.com/nitya) en [Dmitry Soshnikov](https://twitter.com/shwars). From 00567ead7a2896e23d4479b23966725ecea40644 Mon Sep 17 00:00:00 2001 From: Floor Drees Date: Sun, 31 Oct 2021 23:17:53 +0100 Subject: [PATCH 133/234] NL README 2-Working-With-Data project --- 2-Working-With-Data/translations/README.nl.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 2-Working-With-Data/translations/README.nl.md diff --git a/2-Working-With-Data/translations/README.nl.md b/2-Working-With-Data/translations/README.nl.md new file mode 100644 index 00000000..3ce3b957 --- /dev/null +++ b/2-Working-With-Data/translations/README.nl.md @@ -0,0 +1,16 @@ +# Werken met gegevens + +![data love](images/data-love.jpg) +> Beeld door Alexander Sinn op Unsplash + +Leer over de manieren waarop gegevens kunnen worden beheerd, gemanipuleerd en gebruikt in applicaties. Leer meer over relationele en niet-relationele databases en hoe gegevens daarin kunnen worden opgeslagen. Lees over de basisprincipes van het werken met Python om gegevens te beheren, en ontdek enkele van de vele manieren waarop je met Python kunt werken om gegevens te beheren en te ontginnen. +### Onderwerpen + +1. [Relationele databases](05-relational-databases/README.md) +2. [Niet-relationale databases](06-non-relational/README.md) +3. [Aan de slag met Python](07-python/README.md) +4. [Data voorbereiden](08-data-preparation/README.md) + +### Credits + +Dit materiaal is met ❤️ geschreven door [Christopher Harrison](https://twitter.com/geektrainer), [Dmitry Soshnikov](https://twitter.com/shwars) en [Jasmine Greenaway](https://twitter.com/paladique) From 86e9fae19c36717d47218515df679bace65d99bc Mon Sep 17 00:00:00 2001 From: Floor Drees Date: Sun, 31 Oct 2021 23:30:37 +0100 Subject: [PATCH 134/234] NL README project 3-Data-Vizualisation --- .../translations/README.nl.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 3-Data-Visualization/translations/README.nl.md diff --git a/3-Data-Visualization/translations/README.nl.md b/3-Data-Visualization/translations/README.nl.md new file mode 100644 index 00000000..eb04fff2 --- /dev/null +++ b/3-Data-Visualization/translations/README.nl.md @@ -0,0 +1,27 @@ +# Visualisaties + +![Een bij op lavendel](./images/bee.jpg) +> Beeld door Jenna Lee op Unsplash + +Het visualiseren van data is een van de belangrijkste taken van een data scientist. Afbeeldingen zeggen meer dan 1000 woorden, en een visualisatie kan helpen allerlei interessante delen van uw gegevens te identificeren, zoals pieken, uitbijters, groeperingen, tendensen en meer, die kunnen helpen het verhaal te begrijpen dat de data probeert te vertellen. + +In deze vijf lessen verkennen we gegevens uit de natuur en maken we interessante en mooie visualisaties met behulp van verschillende technieken. +### Onderwerpen + +1. [Hoeveelheden visualiseren](09-visualization-quantities/README.md) +1. [Distributie visualiseren](10-visualization-distributions/README.md) +1. [Proporties visualiseren](11-visualization-proportions/README.md) +1. [Relaties visualiseren](12-visualization-relationships/README.md) +1. [Betekenisvolle visualisaties maken](13-meaningful-visualizations/README.md) + +### Credits + +🌸 Deze lessen in visualisatie zijn geschreven door [Jen Looper](https://twitter.com/jenlooper) + +🍯 De US Honey Production data is gebruikt uit Jessica Li's project op [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). De [data](https://usda.library.cornell.edu/concern/publications/rn301137d) is afgeleid van de [United States Department of Agriculture](https://www.nass.usda.gov/About_NASS/index.php). + +🍄 De gegevens voor paddenstoelen zijn ook afkomstig van [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset), herzien door Hatteras Dunton. Deze dataset bevat beschrijvingen van hypothetische monsters die overeenkomen met 23 soorten kieuwen van paddenstoelen in de Agaricus- en Lepiota-familie. Paddestoel getekend uit The Audubon Society Field Guide to North American Mushrooms (1981). Deze dataset werd in 1987 geschonken aan UCI ML 27. + +🦆 Gegevens voor Minnesota Birds komen eveneens van [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) gescraped van [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) door Hannah Collins. + +Al deze datasets zijn gelicentieerd als [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). From 54e955a7d0a4a09efccc005fa9a0ad91e978eef0 Mon Sep 17 00:00:00 2001 From: vahid baghi Date: Mon, 1 Nov 2021 11:16:53 +0330 Subject: [PATCH 135/234] Create README.fa.md adding persian translation --- 1-Introduction/translations/README.fa.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 1-Introduction/translations/README.fa.md diff --git a/1-Introduction/translations/README.fa.md b/1-Introduction/translations/README.fa.md new file mode 100644 index 00000000..46baec88 --- /dev/null +++ b/1-Introduction/translations/README.fa.md @@ -0,0 +1,21 @@ +
+ +# مقدمه‌ای بر علم داده + + +![data in action](images/data.jpg) +> تصویر از Stephen Dawson در Unsplash + +شما در این بخش با تعریف علم داده و ملاحظات اخلاقی که یک دانشمند علوم داده باید در نظر داشته باشد آشنا خواهید شد. همچنین با تعریف داده و کمی هم با آمار و احتمالات که پایه و اساس علم داده است آشنا خواهید شد. + +### سرفصل ها + +1. [تعریف علم داده](01-defining-data-science/README.md) +2. [اصول اخلاقی علم داده](02-ethics/README.md) +3. [تعریف داده](03-defining-data/README.md) +4. [مقدمه ای بر آمار و احتمال](04-stats-and-probability/README.md) + +### تهیه کنندگان + +این درس ها با ❤️ توسط [Nitya Narasimhan](https://twitter.com/nitya) و [Dmitry Soshnikov](https://twitter.com/shwars) تهیه شده است. +
From badfd94a842f00226f4d9b456f8e9f3dcdf9a165 Mon Sep 17 00:00:00 2001 From: Naveen Namani Date: Mon, 1 Nov 2021 16:46:03 +0530 Subject: [PATCH 136/234] case sensitive paths --- docs/_sidebar.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 2701ba71..cbabcc41 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -16,11 +16,11 @@ - [Meaningful Visualizations](../3-Data-Visualization/13-meaningful-visualizations/README.md) - Data Science Lifecycle - [Introduction](../4-Data-Science-Lifecycle/14-Introduction/README.md) - - [Analyzing](../4-Data-Science-Lifecycle/15-Analyzing/README.md) - - [Communication](../4-Data-Science-Lifecycle/16-Communication/README.md) + - [Analyzing](../4-Data-Science-Lifecycle/15-analyzing/README.md) + - [Communication](../4-Data-Science-Lifecycle/16-communication/README.md) - Data Science in the Cloud - [Introduction](../5-Data-Science-In-Cloud/17-Introduction/README.md) - [Low Code](../5-Data-Science-In-Cloud/18-Low-Code/README.md) - [Azure](../5-Data-Science-In-Cloud/19-Azure/README.md) - Data Science in the Wild - - [DS In The Wild](../6-Data-Science-In-Wild/README.md) \ No newline at end of file + - [DS In The Wild](../6-Data-Science-In-Wild/README.md) From 2c865ca69255fef3b8fe79fa3d28afbda49a2074 Mon Sep 17 00:00:00 2001 From: Swapnil <89239360+swapnilregmi@users.noreply.github.com> Date: Mon, 1 Nov 2021 20:33:19 +0545 Subject: [PATCH 137/234] Update assignment.ne.md --- .../19-Azure/translations/assignment.ne.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md b/5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md index 5d8b9338..f94794c6 100644 --- a/5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md +++ b/5-Data-Science-In-Cloud/19-Azure/translations/assignment.ne.md @@ -2,10 +2,10 @@ ## निर्देशन -हामीले Azure ML SDK सँग मोडेललाई तालिम, डिप्लोय, र उपभोग गर्न Azure ML प्लेटफर्म कसरी प्रयोग गर्ने भनेर हेर्यौं। अब केहि डेटा को लागी वरिपरि हेर्नुहोस् जुन तपाईले अर्को मोडेललाई प्रशिक्षित गर्न, प्रयोग गर्न र उपभोग गर्न सक्नुहुन्छ। तपाईंले Kaggle र [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-40229. -cxa&ocid=AID3041109) मा डाटासेट फेला पार्न सक्नुहुन्छ। +हामीले Azure ML SDK सँग मोडेललाई तालिम, डिप्लोय, र उपभोग गर्न Azure ML प्लेटफर्म कसरी प्रयोग गर्ने भनेर हेर्यौं। अब केहि डेटा को लागी वरिपरि हेर्नुहोस् जुन तपाईले अर्को मोडेललाई प्रशिक्षित गर्न, प्रयोग गर्न र उपभोग गर्न सक्नुहुन्छ। तपाईंले Kaggle र [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-40229-cxa&ocid=AID3041109) मा डाटासेट फेला पार्न सक्नुहुन्छ। ## रूब्रिक |अनुकरणीय | पर्याप्त | सुधारको आवश्यकता | -| AutoML कन्फिगरेसन गरिरहँदा, तपाईंले कुन प्यारामिटरहरू प्रयोग गर्न सक्नुहुन्छ भनी हेर्न SDK कागजात हेर्नुभयो। तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण चलाउनुभयो, र तपाईंले मोडेल स्पष्टीकरण जाँच गर्नुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो।|तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण चलाउनुभयो, र तपाईंले मोडेल स्पष्टीकरण जाँच गर्नुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो। | तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण दिनुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो। | \ No newline at end of file +| AutoML कन्फिगरेसन गरिरहँदा, तपाईंले कुन प्यारामिटरहरू प्रयोग गर्न सक्नुहुन्छ भनी हेर्न SDK कागजात हेर्नुभयो। तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण चलाउनुभयो, र तपाईंले मोडेल स्पष्टीकरण जाँच गर्नुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो।|तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण चलाउनुभयो, र तपाईंले मोडेल स्पष्टीकरण जाँच गर्नुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो। | तपाईंले Azure ML SDK प्रयोग गरेर AutoML मार्फत डेटासेटमा प्रशिक्षण दिनुभयो। तपाईंले उत्तम मोडेल प्रयोग गर्नुभयो र तपाईं Azure ML SDK मार्फत यसलाई उपभोग गर्न सक्षम हुनुभयो। | From 51f83182ca641af8cfc8c937d247e6ac0b0466f8 Mon Sep 17 00:00:00 2001 From: Ryan Gann <43328613+RyanGann@users.noreply.github.com> Date: Mon, 1 Nov 2021 14:06:05 -0500 Subject: [PATCH 138/234] Update README.md Typo. Changed "order" to "other" --- 1-Introduction/01-defining-data-science/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/01-defining-data-science/README.md b/1-Introduction/01-defining-data-science/README.md index 084e1147..19fb45f0 100644 --- a/1-Introduction/01-defining-data-science/README.md +++ b/1-Introduction/01-defining-data-science/README.md @@ -24,7 +24,7 @@ In [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Data Science** is This definition highlights the following important aspects of data science: -* The main goal of data science is to **extract knowledge** from data, in order words - to **understand** data, find some hidden relationships and build a **model**. +* The main goal of data science is to **extract knowledge** from data, in other words - to **understand** data, find some hidden relationships and build a **model**. * Data science uses **scientific methods**, such as probability and statistics. In fact, when the term *data science* was first introduced, some people argued that data science was just a new fancy name for statistics. Nowadays it has become evident that the field is much broader. * Obtained knowledge should be applied to produce some **actionable insights**, i.e. practical insights that you can apply to real business situations. * We should be able to operate on both **structured** and **unstructured** data. We will come back to discuss different types of data later in the course. From 86704da9a6ca180bc1b3785186872a6c62de9eab Mon Sep 17 00:00:00 2001 From: Thoogend1 Date: Tue, 2 Nov 2021 15:14:18 +0100 Subject: [PATCH 139/234] Added NL translation of assignment 01 --- .../translations/assignment.nl.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 1-Introduction/01-defining-data-science/translations/assignment.nl.md diff --git a/1-Introduction/01-defining-data-science/translations/assignment.nl.md b/1-Introduction/01-defining-data-science/translations/assignment.nl.md new file mode 100644 index 00000000..f670798a --- /dev/null +++ b/1-Introduction/01-defining-data-science/translations/assignment.nl.md @@ -0,0 +1,33 @@ +# Opdracht: Data Science Scenarios + +In deze eerste opdracht vragen we je na te denken over processen of problemen van verschillende aspecten van het echte leven. Om vervolgens na te denken over hoe je deze kan verbeteren met Data Science. Denk bijvoorbeeld aan; + +1. Welke data kan ik verzamelen +2. Hoe kan ik deze data verzamelen? +3. Hoe wil ik deze data opslaan? Hoe groot zal de hoeveelheid data worden? +4. Wat voor inzichten wil ik krijgen op deze data? Welke beslissingen kan ik gaan maken aan de hand van deze data? + +Probeer 3 verschillende problemen/processen te bedenken, en beschrijf voor elk van deze items het onderwerp van het probleem. + +Hier zijn wat voorbeeld onderwerpen om je in de goede richting te helpen: + +1. Hoe kan ik data gebruiken om het leertraject van kinderen op school te verbeteren? +2. Hoe kan ik data gebruiken om controle te krijgen op het vaccinatieprocess tijdens de pandemie? +3. Hoe kan ik data gebruiken om inzicht te krijgen in mijn productiviteit op het werk? + + +## Instructies + +Vul de volgende tabel in (vul je eigen onderwerp in, indien nodig): + +| Probleem Onderwerp | Probleem | Welke data te verzamelen | Hoe de data te verzamelen | Welke inzichten/beslissingen wil ik maken | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| Onderwijs | | | | | +| Vaccinaties | | | | | +| Productiviteit | | | | | + +## Rubriek + +Uitstekend | Adequaat | Vereist verbetering +--- | --- | -- | +Men kon voldoende databronnen vinden, deze juist opslaan en hier de juiste inzichten aan ontlenen voor alle probleemstellingen. | Sommige aspecten van de oplssing zijn niet concreet, de data opslag is niet gedefinieerd, tenminste 2 van de probleemstellingen zijn besproken. | Enkel onderdelen vand e oplossing zijn beschreven, slechts een van de probleemstellingen is besproken. From e511c5c60a27910311f57da8cf8643b51caa173d Mon Sep 17 00:00:00 2001 From: Thoogend1 Date: Tue, 2 Nov 2021 15:18:43 +0100 Subject: [PATCH 140/234] Eerste opzet README vertaling --- .../translations/README.nl.md | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 1-Introduction/01-defining-data-science/translations/README.nl.md diff --git a/1-Introduction/01-defining-data-science/translations/README.nl.md b/1-Introduction/01-defining-data-science/translations/README.nl.md new file mode 100644 index 00000000..f7257365 --- /dev/null +++ b/1-Introduction/01-defining-data-science/translations/README.nl.md @@ -0,0 +1,165 @@ +# Definitie van Data Science + +| ![ Sketchnote door [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png) | +| :----------------------------------------------------------------------------------------------------: | +| Defining Data Science - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +--- + +[![Defining Data Science Video](images/video-def-ds.png)](https://youtu.be/beZ7Mb_oz9I) + +## [Starttoets data science](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) + +## Wat is Data? +In our everyday life, we are constantly surrounded by data. The text you are reading now is data. The list of phone numbers of your friends in your smartphone is data, as well as the current time displayed on your watch. As human beings, we naturally operate with data by counting the money we have or by writing letters to our friends. + +However, data became much more critical with the creation of computers. The primary role of computers is to perform computations, but they need data to operate on. Thus, we need to understand how computers store and process data. + +With the emergence of the Internet, the role of computers as data handling devices increased. If you think about it, we now use computers more and more for data processing and communication, rather than actual computations. When we write an e-mail to a friend or search for some information on the Internet - we are essentially creating, storing, transmitting, and manipulating data. +> Can you remember the last time you have used computers to actually compute something? + +## What is Data Science? + +In [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Data Science** is defined as *a scientific field that uses scientific methods to extract knowledge and insights from structured and unstructured data, and apply knowledge and actionable insights from data across a broad range of application domains*. + +This definition highlights the following important aspects of data science: + +* The main goal of data science is to **extract knowledge** from data, in order words - to **understand** data, find some hidden relationships and build a **model**. +* Data science uses **scientific methods**, such as probability and statistics. In fact, when the term *data science* was first introduced, some people argued that data science was just a new fancy name for statistics. Nowadays it has become evident that the field is much broader. +* Obtained knowledge should be applied to produce some **actionable insights**, i.e. practical insights that you can apply to real business situations. +* We should be able to operate on both **structured** and **unstructured** data. We will come back to discuss different types of data later in the course. +* **Application domain** is an important concept, and data scientists often need at least some degree of expertise in the problem domain, for example: finance, medicine, marketing, etc. + +> Another important aspect of Data Science is that it studies how data can be gathered, stored and operated upon using computers. While statistics gives us mathematical foundations, data science applies mathematical concepts to actually draw insights from data. + +One of the ways (attributed to [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) to look at the data science is to consider it to be a separate paradigm of science: +* **Empirical**, in which we rely mostly on observations and results of experiments +* **Theoretical**, where new concepts emerge from existing scientific knowledge +* **Computational**, where we discover new principles based on some computational experiments +* **Data-Driven**, based on discovering relationships and patterns in the data + +## Other Related Fields + +Since data is pervasive, data science itself is also a broad field, touching many other disciplines. + +
+
Databases
+
+A critical consideration is **how to store** the data, i.e. how to structure it in a way that allows faster processing. There are different types of databases that store structured and unstructured data, which we will consider in our course. +
+
Big Data
+
+Often we need to store and process very large quantities of data with a relatively simple structure. There are special approaches and tools to store that data in a distributed manner on a computer cluster, and process it efficiently. +
+
Machine Learning
+
+One way to understand data is to **build a model** that will be able to predict a desired outcome. Developing models from data is called **machine learning**. You may want to have a look at our Machine Learning for Beginners Curriculum to learn more about it. +
+
Artificial Intelligence
+
+An area of machine learning known as artificial intelligence (AI) also relies on data, and it involves building high complexity models that mimic human thought processes. AI methods often allow us to turn unstructured data (e.g. natural language) into structured insights. +
+
Visualization
+
+Vast amounts of data are incomprehensible for a human being, but once we create useful visualizations using that data, we can make more sense of the data, and draw some conclusions. Thus, it is important to know many ways to visualize information - something that we will cover in Section 3 of our course. Related fields also include **Infographics**, and **Human-Computer Interaction** in general. +
+
+ +## Types of Data + +As we have already mentioned, data is everywhere. We just need to capture it in the right way! It is useful to distinguish between **structured** and **unstructured** data. The former is typically represented in some well-structured form, often as a table or number of tables, while the latter is just a collection of files. Sometimes we can also talk about **semistructured** data, that have some sort of a structure that may vary greatly. + +| Structured | Semi-structured | Unstructured | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------- | +| List of people with their phone numbers | Wikipedia pages with links | Text of Encyclopaedia Britannica | +| Temperature in all rooms of a building at every minute for the last 20 years | Collection of scientific papers in JSON format with authors, data of publication, and abstract | File share with corporate documents | +| Data for age and gender of all people entering the building | Internet pages | Raw video feed from surveillance camera | + +## Where to get Data + +There are many possible sources of data, and it will be impossible to list all of them! However, let's mention some of the typical places where you can get data: + +* **Structured** + - **Internet of Things** (IoT), including data from different sensors, such as temperature or pressure sensors, provides a lot of useful data. For example, if an office building is equipped with IoT sensors, we can automatically control heating and lighting in order to minimize costs. + - **Surveys** that we ask users to complete after a purchase, or after visiting a web site. + - **Analysis of behavior** can, for example, help us understand how deeply a user goes into a site, and what is the typical reason for leaving the site. +* **Unstructured** + - **Texts** can be a rich source of insights, such as an overall **sentiment score**, or extracting keywords and semantic meaning. + - **Images** or **Video**. A video from a surveillance camera can be used to estimate traffic on the road, and inform people about potential traffic jams. + - Web server **Logs** can be used to understand which pages of our site are most often visited, and for how long. +* Semi-structured + - **Social Network** graphs can be great sources of data about user personalities and potential effectiveness in spreading information around. + - When we have a bunch of photographs from a party, we can try to extract **Group Dynamics** data by building a graph of people taking pictures with each other. + +By knowing different possible sources of data, you can try to think about different scenarios where data science techniques can be applied to know the situation better, and to improve business processes. + +## What you can do with Data + +In Data Science, we focus on the following steps of data journey: + +
+
1) Data Acquisition
+
+The first step is to collect the data. While in many cases it can be a straightforward process, like data coming to a database from a web application, sometimes we need to use special techniques. For example, data from IoT sensors can be overwhelming, and it is a good practice to use buffering endpoints such as IoT Hub to collect all the data before further processing. +
+
2) Data Storage
+
+Storing data can be challenging, especially if we are talking about big data. When deciding how to store data, it makes sense to anticipate the way you would to query the data in the future. There are several ways data can be stored: +
    +
  • A relational database stores a collection of tables, and uses a special language called SQL to query them. Typically, tables are organized into different groups called schemas. In many cases we need to convert the data from original form to fit the schema.
  • +
  • A NoSQL database, such as CosmosDB, does not enforce schemas on data, and allows storing more complex data, for example, hierarchical JSON documents or graphs. However, NoSQL databases do not have the rich querying capabilities of SQL, and cannot enforce referential integrity, i.e. rules on how the data is structured in tables and governing the relationships between tables.
  • +
  • Data Lake storage is used for large collections of data in raw, unstructured form. Data lakes are often used with big data, where all data cannot fit on one machine, and has to be stored and processed by a cluster of servers. Parquet is the data format that is often used in conjunction with big data.
  • +
+
+
3) Data Processing
+
+This is the most exciting part of the data journey, which involves converting the data from its original form into a form that can be used for visualization/model training. When dealing with unstructured data such as text or images, we may need to use some AI techniques to extract **features** from the data, thus converting it to structured form. +
+
4) Visualization / Human Insights
+
+Oftentimes, in order to understand the data, we need to visualize it. Having many different visualization techniques in our toolbox, we can find the right view to make an insight. Often, a data scientist needs to "play with data", visualizing it many times and looking for some relationships. Also, we may use statistical techniques to test a hypotheses or prove a correlation between different pieces of data. +
+
5) Training a predictive model
+
+Because the ultimate goal of data science is to be able to make decisions based on data, we may want to use the techniques of Machine Learning to build a predictive model. We can then use this to make predictions using new data sets with similar structures. +
+
+ +Of course, depending on the actual data, some steps might be missing (e.g., when we already have the data in the database, or when we do not need model training), or some steps might be repeated several times (such as data processing). + +## Digitalization and Digital Transformation + +In the last decade, many businesses started to understand the importance of data when making business decisions. To apply data science principles to running a business, one first needs to collect some data, i.e. translate business processes into digital form. This is known as **digitalization**. Applying data science techniques to this data to guide decisions can lead to significant increases in productivity (or even business pivot), called **digital transformation**. + +Let's consider an example. Suppose we have a data science course (like this one) which we deliver online to students, and we want to use data science to improve it. How can we do it? + +We can start by asking "What can be digitized?" The simplest way would be to measure the time it takes each student to complete each module, and to measure the obtained knowledge by giving a multiple-choice test at the end of each module. By averaging time-to-complete across all students, we can find out which modules cause the most difficulties for students, and work on simplifying them. + +> You may argue that this approach is not ideal, because modules can be of different lengths. It is probably more fair to divide the time by the length of the module (in number of characters), and compare those values instead. + +When we start analyzing results of multiple-choice tests, we can try to determine which concepts that students have difficulty understanding, and and use that information to improve the content. To do that, we need to design tests in such a way that each question maps to a certain concept or chunk of knowledge. + +If we want to get even more complicated, we can plot the time taken for each module against the age category of students. We might find out that for some age categories it takes an inappropriately long time to complete the module, or that students drop out before completing it. This can help us provide age recommendations for the module, and minimize people's dissatisfaction from wrong expectations. + +## 🚀 Challenge + +In this challenge, we will try to find concepts relevant to the field of Data Science by looking at texts. We will take a Wikipedia article on Data Science, download and process the text, and then build a word cloud like this one: + +![Word Cloud for Data Science](images/ds_wordcloud.png) + +Visit [`notebook.ipynb`](notebook.ipynb) to read through the code. You can also run the code, and see how it performs all data transformations in real time. + +> If you do not know how to run code in a Jupyter Notebook, have a look at [this article](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + + + +## [Post-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/1) + +## Assignments + +* **Task 1**: Modify the code above to find out related concepts for the fields of **Big Data** and **Machine Learning** +* **Task 2**: [Think About Data Science Scenarios](assignment.md) + +## Credits + +This lesson has been authored with ♥️ by [Dmitry Soshnikov](http://soshnikov.com) From 9b50293f5baa13a3a8ec702713ca58683945b2df Mon Sep 17 00:00:00 2001 From: Thoogend1 Date: Wed, 3 Nov 2021 09:02:30 +0100 Subject: [PATCH 141/234] Translated 'what is data' section --- .../translations/README.nl.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/1-Introduction/01-defining-data-science/translations/README.nl.md b/1-Introduction/01-defining-data-science/translations/README.nl.md index f7257365..7808649f 100644 --- a/1-Introduction/01-defining-data-science/translations/README.nl.md +++ b/1-Introduction/01-defining-data-science/translations/README.nl.md @@ -1,24 +1,24 @@ # Definitie van Data Science -| ![ Sketchnote door [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png) | +| ![ Sketchnote door [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/01-Definitions.png) | | :----------------------------------------------------------------------------------------------------: | | Defining Data Science - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | --- -[![Defining Data Science Video](images/video-def-ds.png)](https://youtu.be/beZ7Mb_oz9I) +[![Defining Data Science Video](../images/video-def-ds.png)](https://youtu.be/beZ7Mb_oz9I) ## [Starttoets data science](https://red-water-0103e7a0f.azurestaticapps.net/quiz/0) ## Wat is Data? -In our everyday life, we are constantly surrounded by data. The text you are reading now is data. The list of phone numbers of your friends in your smartphone is data, as well as the current time displayed on your watch. As human beings, we naturally operate with data by counting the money we have or by writing letters to our friends. +In ons dagelijks leven zijn we voortdurend omringd door data. De tekst die je nu leest is data. De lijst met telefoonnummers van je vrienden op je smartphone is data, evenals de huidige tijd die op je horloge wordt weergegeven. Als mens werken we van nature met data, denk aan het geld dat we moeten tellen of door berichten te schrijven aan onze vrienden. -However, data became much more critical with the creation of computers. The primary role of computers is to perform computations, but they need data to operate on. Thus, we need to understand how computers store and process data. +Gegevens werden echter veel belangrijker met de introductie van computers. De primaire rol van computers is om berekeningen uit te voeren, maar ze hebben gegevens nodig om mee te werken. We moeten dus begrijpen hoe computers gegevens opslaan en verwerken. -With the emergence of the Internet, the role of computers as data handling devices increased. If you think about it, we now use computers more and more for data processing and communication, rather than actual computations. When we write an e-mail to a friend or search for some information on the Internet - we are essentially creating, storing, transmitting, and manipulating data. -> Can you remember the last time you have used computers to actually compute something? +Met de opkomst van het internet nam de rol van computers als gegevensverwerkingsapparatuur toe. Als je erover nadenkt, gebruiken we computers nu steeds meer voor gegevensverwerking en communicatie, in plaats van echte berekeningen. Wanneer we een e-mail schrijven naar een vriend of zoeken naar informatie op internet, creëren, bewaren, verzenden en manipuleren we in wezen gegevens. +> Kan jij je herinneren wanneer jij voor het laatste echte berekeningen door een computer hebt laten uitvoeren? -## What is Data Science? +## Wat is Data Science? In [Wikipedia](https://en.wikipedia.org/wiki/Data_science), **Data Science** is defined as *a scientific field that uses scientific methods to extract knowledge and insights from structured and unstructured data, and apply knowledge and actionable insights from data across a broad range of application domains*. From 7e1d6e3123f6ff36a4de138ab73a3815c267ecac Mon Sep 17 00:00:00 2001 From: vahid baghi Date: Fri, 5 Nov 2021 10:28:00 +0330 Subject: [PATCH 142/234] Update README.fa.md --- 1-Introduction/translations/README.fa.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/1-Introduction/translations/README.fa.md b/1-Introduction/translations/README.fa.md index 46baec88..45532340 100644 --- a/1-Introduction/translations/README.fa.md +++ b/1-Introduction/translations/README.fa.md @@ -3,17 +3,17 @@ # مقدمه‌ای بر علم داده -![data in action](images/data.jpg) +![data in action](../images/data.jpg) > تصویر از Stephen Dawson در Unsplash شما در این بخش با تعریف علم داده و ملاحظات اخلاقی که یک دانشمند علوم داده باید در نظر داشته باشد آشنا خواهید شد. همچنین با تعریف داده و کمی هم با آمار و احتمالات که پایه و اساس علم داده است آشنا خواهید شد. ### سرفصل ها -1. [تعریف علم داده](01-defining-data-science/README.md) -2. [اصول اخلاقی علم داده](02-ethics/README.md) -3. [تعریف داده](03-defining-data/README.md) -4. [مقدمه ای بر آمار و احتمال](04-stats-and-probability/README.md) +1. [تعریف علم داده](../01-defining-data-science/README.md) +2. [اصول اخلاقی علم داده](../02-ethics/README.md) +3. [تعریف داده](../03-defining-data/README.md) +4. [مقدمه ای بر آمار و احتمال](../04-stats-and-probability/README.md) ### تهیه کنندگان From f55ff50466f8f3ac256b86599a65df393f2698e1 Mon Sep 17 00:00:00 2001 From: Maud Date: Fri, 5 Nov 2021 16:22:14 +0100 Subject: [PATCH 143/234] Fixed typo --- 2-Working-With-Data/06-non-relational/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Working-With-Data/06-non-relational/README.md b/2-Working-With-Data/06-non-relational/README.md index 808dc702..423b6023 100644 --- a/2-Working-With-Data/06-non-relational/README.md +++ b/2-Working-With-Data/06-non-relational/README.md @@ -49,7 +49,7 @@ NoSQL is an umbrella term for the different ways to store non-relational data an ![Graphical representation of a columnar data store showing a customer database with two column families named Identity and Contact Info](images/columnar-db.png) -[Columnar](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) data stores organizes data into columns and rows like a relational data structure but each column is divided into groups called a column family, where the all the data under one column is related and can be retrieved and changed in one unit. +[Columnar](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) data stores organizes data into columns and rows like a relational data structure but each column is divided into groups called a column family, where all the data under one column is related and can be retrieved and changed in one unit. ### Document Data Stores with the Azure Cosmos DB From 42d2a68bc0868ac2647990d2000752d3c27da0ac Mon Sep 17 00:00:00 2001 From: Eugene Chung Date: Fri, 5 Nov 2021 14:16:58 -0400 Subject: [PATCH 144/234] fixed paths for README.zh-cn.md --- 2-Working-With-Data/translations/README.zh-cn.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2-Working-With-Data/translations/README.zh-cn.md b/2-Working-With-Data/translations/README.zh-cn.md index ebcb87f9..fb0e368b 100644 --- a/2-Working-With-Data/translations/README.zh-cn.md +++ b/2-Working-With-Data/translations/README.zh-cn.md @@ -7,10 +7,10 @@ ### 话题 -1. [关系数据库](05-relational-databases/README.md) -2. [非关系数据库](06-non-relational/README.md) -3. [使用Python](07-python/README.md) -4. [准备数据](08-data-preparation/README.md) +1. [关系数据库](../05-relational-databases/README.md) +2. [非关系数据库](../06-non-relational/README.md) +3. [使用Python](../07-python/README.md) +4. [准备数据](../08-data-preparation/README.md) ### 学分 From a097fda28b2c573955c7b5b0a96ccd5fd7645a66 Mon Sep 17 00:00:00 2001 From: nahyeong99 Date: Sat, 6 Nov 2021 04:11:52 +0900 Subject: [PATCH 145/234] README for translation --- 1-Introduction/translations/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 1-Introduction/translations/README.md diff --git a/1-Introduction/translations/README.md b/1-Introduction/translations/README.md new file mode 100644 index 00000000..b041eb5b --- /dev/null +++ b/1-Introduction/translations/README.md @@ -0,0 +1,17 @@ +# Introduction to Data Science + +![data in action](images/data.jpg) +> Photo by Stephen Dawson on Unsplash + +In these lessons, you will discover how Data Science is defined and learn about ethical considerations that must be considered by a data scientist. You will also learn how data is defined and learn a bit about statistics and probability, the core academic domains of Data Science. + +### Topics + +1. [Defining Data Science](01-defining-data-science/README.md) +2. [Data Science Ethics](02-ethics/README.md) +3. [Defining Data](03-defining-data/README.md) +4. [Introduction to Statistics and Probability](04-stats-and-probability/README.md) + +### Credits + +These lessons were written with ❤️ by [Nitya Narasimhan](https://twitter.com/nitya) and [Dmitry Soshnikov](https://twitter.com/shwars). From e25cf768f2af71d828e2117ed85cb5d8f6ce0480 Mon Sep 17 00:00:00 2001 From: nahyeongKim <74201593+nahyeong99@users.noreply.github.com> Date: Sat, 6 Nov 2021 04:42:10 +0900 Subject: [PATCH 146/234] Update README.md --- 1-Introduction/translations/README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/1-Introduction/translations/README.md b/1-Introduction/translations/README.md index b041eb5b..232dcd3f 100644 --- a/1-Introduction/translations/README.md +++ b/1-Introduction/translations/README.md @@ -1,17 +1,18 @@ -# Introduction to Data Science +# 데이터 과학의 입문 ![data in action](images/data.jpg) -> Photo by Stephen Dawson on Unsplash +> 이미지 출처: Stephen Dawson on Unsplash -In these lessons, you will discover how Data Science is defined and learn about ethical considerations that must be considered by a data scientist. You will also learn how data is defined and learn a bit about statistics and probability, the core academic domains of Data Science. +이 레슨에서, 당신은 어떻게 데이터 과학이 정의되었는지 발견하고 데이터 과학자에게 있어서 필히 고려해야만 하는 윤리적 사항들에 대하여 배울 것입니다. 당신은 또한 데이터가 어떻게 정의되었는지와, 데이터 과학 학습 영역에서의 중심인 약간의 통계와 확률에 대하여 배울 것입니다. -### Topics -1. [Defining Data Science](01-defining-data-science/README.md) -2. [Data Science Ethics](02-ethics/README.md) -3. [Defining Data](03-defining-data/README.md) -4. [Introduction to Statistics and Probability](04-stats-and-probability/README.md) +### 토픽 -### Credits +1. [데이터 과학 정의하기](01-defining-data-science/README.md) +2. [데이터 과학에서의 윤리](02-ethics/README.md) +3. [데이터 정의하기](03-defining-data/README.md) +4. [통계와 확률에 대한 소개](04-stats-and-probability/README.md) -These lessons were written with ❤️ by [Nitya Narasimhan](https://twitter.com/nitya) and [Dmitry Soshnikov](https://twitter.com/shwars). +### 출처 + +이 강의들은 [Nitya Narasimhan](https://twitter.com/nitya) 과 [Dmitry Soshnikov](https://twitter.com/shwars)에 의해 쓰여졌음❤️ From 1be226e0e89b17fcff500f89b2b84ca9f71f888b Mon Sep 17 00:00:00 2001 From: nahyeongKim <74201593+nahyeong99@users.noreply.github.com> Date: Sat, 6 Nov 2021 04:42:23 +0900 Subject: [PATCH 147/234] Rename README.md to README.ko.md --- 1-Introduction/translations/{README.md => README.ko.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 1-Introduction/translations/{README.md => README.ko.md} (100%) diff --git a/1-Introduction/translations/README.md b/1-Introduction/translations/README.ko.md similarity index 100% rename from 1-Introduction/translations/README.md rename to 1-Introduction/translations/README.ko.md From 2b47221e8567cb66c41726694ff64d6ca77074e9 Mon Sep 17 00:00:00 2001 From: Hyejeong443 <82637076+Hyejeong443@users.noreply.github.com> Date: Sat, 6 Nov 2021 13:05:18 +0900 Subject: [PATCH 148/234] Update assignment.md --- .../14-Introduction/assignment.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/4-Data-Science-Lifecycle/14-Introduction/assignment.md b/4-Data-Science-Lifecycle/14-Introduction/assignment.md index e0ff4244..0a6db90f 100644 --- a/4-Data-Science-Lifecycle/14-Introduction/assignment.md +++ b/4-Data-Science-Lifecycle/14-Introduction/assignment.md @@ -1,23 +1,23 @@ -# Assessing a Dataset +# 데이터셋 평가 -A client has approached your team for help in investigating a taxi customer's seasonal spending habits in New York City. +한 고객이 뉴욕에서 택시 고객의 계절별 소비 습관을 조사하는 데 도움을 청하기 위해 귀하의 팀에 연락했습니다. -They want to know: **Do yellow taxi passengers in New York City tip drivers more in the winter or summer?** +그들은 알고 싶어한다: **뉴욕의 노란 택시 승객들은 겨울이나 여름에 기사들에게 팁을 더 많이 주는가?** -Your team is in the [Capturing](Readme.md#Capturing) stage of the Data Science Lifecycle and you are in charge of handling the the dataset. You have been provided a notebook and [data](../../data/taxi.csv) to explore. +귀하의 팀은 데이터과학 라이프사이클 [캡처링](Readme.md#Capturing) 단계에 있으며, 귀하는 데이터 셋을 처리하는 임무를 맡고 있습니다. 노트북과 가공할 [데이터](../../data/taxi.csv)를 제공받으셨습니다. -In this directory is a [notebook](notebook.ipynb) that uses Python to load yellow taxi trip data from the [NYC Taxi & Limousine Commission](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets). -You can also open the taxi data file in text editor or spreadsheet software like Excel. +이 디렉토리에서는 파이썬을 사용하여 [NYC택시 & 리무진 위원회](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets)로부터 노란색 택시 트립 데이터를 로드하는 [노트북](notebook.ipynb)이 있습니다. +엑셀과 같은 텍스트 편집기나 스프레드시트 소프트웨어에서 택시 데이터 파일을 열 수도 있습니다. -## Instructions +## 지시사항 -- Assess whether or not the data in this dataset can help answer the question. -- Explore the [NYC Open Data catalog](https://data.cityofnewyork.us/browse?sortBy=most_accessed&utf8=%E2%9C%93). Identify an additional dataset that could potentially be helpful in answering the client's question. -- Write 3 questions that you would ask the client for more clarification and better understanding of the problem. +- 이 데이터 세트의 데이터가 질문에 대답하는 데 도움이 될 수 있는지 여부를 평가합니다. +- [NYC Open Data 카탈로그](https://data.cityofnewyork.us/browse?sortBy=most_accessed&utf8=%E2%9C%93)를 살펴보십시오. 고객의 질문에 대답하는 데 잠재적으로 도움이 될 수 있는 추가 데이터 세트를 식별합니다. +- 고객에게 문제에 대한 보다 명확한 설명과 이해를 위해 물어볼 질문 3개를 작성합니다. -Refer to the [dataset's dictionary](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) and [user guide](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) for more information about the data. +데이터에 대한 자세한 내용은 [정보 사전](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) 및 [사용자 가이드](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf)을 참조하십시오. ## Rubric -Exemplary | Adequate | Needs Improvement +모범 | 충분 | 개선 필요 --- | --- | -- | From 9a02c016f69a9ab3cbd151d9e57c396904a7487c Mon Sep 17 00:00:00 2001 From: Hyejeong443 <82637076+Hyejeong443@users.noreply.github.com> Date: Sat, 6 Nov 2021 13:06:01 +0900 Subject: [PATCH 149/234] Update assignment.md --- 4-Data-Science-Lifecycle/14-Introduction/assignment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-Data-Science-Lifecycle/14-Introduction/assignment.md b/4-Data-Science-Lifecycle/14-Introduction/assignment.md index 0a6db90f..df425137 100644 --- a/4-Data-Science-Lifecycle/14-Introduction/assignment.md +++ b/4-Data-Science-Lifecycle/14-Introduction/assignment.md @@ -17,7 +17,7 @@ 데이터에 대한 자세한 내용은 [정보 사전](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) 및 [사용자 가이드](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf)을 참조하십시오. -## Rubric +## 표제 모범 | 충분 | 개선 필요 --- | --- | -- | From c1802f663259e9cfaa9bfc88f1164bf6940b1ea2 Mon Sep 17 00:00:00 2001 From: ludovicobesana Date: Sat, 6 Nov 2021 19:14:38 +0100 Subject: [PATCH 150/234] fix: Update favicon img --- images/favicon.png | Bin 6188 -> 4556 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/favicon.png b/images/favicon.png index 9e5b4f6ac5ab75ef5467dcdb59f9db3cc7a0f405..7e33f5aedba624bb20001cc044b0fdd9a8587a46 100644 GIT binary patch delta 4214 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 Gy8l0+P~2Yt delta 5859 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 From 57297a4b28f3228cc0191060d2e59f4b97d0d8b4 Mon Sep 17 00:00:00 2001 From: chaeyoon20 Date: Sun, 7 Nov 2021 04:53:25 +0900 Subject: [PATCH 151/234] add README.ko.md and assignment.ko.md --- .../15-analyzing/translations/README.ko.md | 46 +++++++++++++++++++ .../translations/assignment.ko.md | 22 +++++++++ 2 files changed, 68 insertions(+) create mode 100644 4-Data-Science-Lifecycle/15-analyzing/translations/README.ko.md create mode 100644 4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ko.md diff --git a/4-Data-Science-Lifecycle/15-analyzing/translations/README.ko.md b/4-Data-Science-Lifecycle/15-analyzing/translations/README.ko.md new file mode 100644 index 00000000..7ae57b00 --- /dev/null +++ b/4-Data-Science-Lifecycle/15-analyzing/translations/README.ko.md @@ -0,0 +1,46 @@ +# 데이터 과학의 라이프 사이클: 분석하기 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/15-Analyzing.png)| +|:---:| +| 데이터 과학의 라이프 사이클: 분석하기 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +## 강의 전 퀴즈 + +## [강의 전 퀴즈](https://red-water-0103e7a0f.azurestaticapps.net/quiz/28) + +데이터의 라이프사이클을 분석하면 데이터가 제안된 질문에 답하거나 특정 문제를 해결할 수 있음을 확인할 수 있습니다. 또한 이 단계는 모델이 이러한 질문과 문제를 올바르게 해결하는지 확인하는 데 초점을 맞출 수 있습니다. 이 과정에서는 데이터 내의 특징과 관계를 정의하는 기술이며 모델링을 위한 데이터를 준비하는 데 사용할 수 있는 탐색 데이터 분석(Exploratory Data Analysis) 또는 EDA에 초점을 맞춥니다. + + [Kaggle](https://www.kaggle.com/balaka18/email-spam-classification-dataset-csv/version/1)의 예제 데이터셋을 사용하여 파이썬 및 Pandas 라이브러리에 어떻게 적용할 수 있는지 보여드리겠습니다. 이 데이터셋에는 이메일에서 발견되는 몇 가지 일반적인 단어가 포함되어 있으며 이러한 이메일의 출처는 익명입니다. 이 디렉터리에 있는 [노트북](notebook.ipynb)을 사용하여 계속 진행하십시오. + +## 탐색 데이터 분석 + +라이프사이클의 캡처 단계는 데이터를 획득하는 단계이며 당면한 문제와 질문입니다. 하지만 데이터가 최종 결과를 지원하는 데 도움이 될 수 있는지 어떻게 알 수 있을까요? +데이터 과학자는 데이터를 획득할 때 다음과 같은 질문을 할 수 있습니다. +- 이 문제를 해결할 데이터가 충분한가요? +- 이 문제에 적합한 품질의 데이터입니까? +- 이 데이터를 통해 추가 정보를 발견하게 되면 목표를 바꾸거나 재정의하는 것을 고려해야 하나요? +탐색적 데이터 분석은 데이터를 파악하는 프로세스이며, 이러한 질문에 답하는 데 사용할 수 있을 뿐만 아니라 데이터셋으로 작업하는 데 따른 당면 과제를 파악할 수 있습니다. 이를 달성하기 위해 사용되는 몇 가지 기술에 초점을 맞춰보겠습니다. + +## 데이터 프로파일링, 기술 통계 및 Pandas +이 문제를 해결하기에 충분한 데이터가 있는지 어떻게 평가합니까? 데이터 프로파일링은 기술 통계 기법을 통해 데이터셋에 대한 일반적인 전체 정보를 요약하고 수집할 수 있습니다. 데이터 프로파일링은 우리가 사용할 수 있는 것을 이해하는 데 도움이 되며 기술 통계는 우리가 사용할 수 있는 것이 얼마나 많은지 이해하는 데 도움이 됩니다. + +이전 강의에서 우리는 Pandas를 사용하여 [`describe()` 함수]와 함께 기술 통계를 제공했습니다. 숫자 데이터에 대한 카운트, 최대값 및 최소값, 평균, 표준 편차 및 분위수를 제공합니다. `describe()` 함수와 같은 기술 통계를 사용하면 얼마나 가지고 있고 더 필요한지를 평가하는 데 도움이 될 수 있습니다. + +## 샘플링 및 쿼리 +대규모 데이터셋의 모든 것을 탐색하는 것은 매우 많은 시간이 걸릴 수 있으며 일반적으로 컴퓨터가 수행해야 하는 작업입니다. 그러나 샘플링은 데이터를 이해하는 데 유용한 도구이며 데이터 집합에 무엇이 있고 무엇을 나타내는지를 더 잘 이해할 수 있도록 해줍니다. 표본을 사용하여 확률과 통계량을 적용하여 데이터에 대한 일반적인 결론을 내릴 수 있습니다. 표본 추출하는 데이터의 양에 대한 규칙은 정의되어 있지 않지만, 표본 추출하는 데이터의 양이 많을수록 데이터에 대한 일반화의 정확성을 높일 수 있다는 점에 유의해야 합니다. +Pandas에는 받거나 사용하려는 임의의 샘플 수에 대한 아규먼트를 전달할 수 있는 [라이브러리 속 함수`sample()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html)이 있습니다. + +데이터에 대한 일반적인 쿼리는 몇 가지 일반적인 질문과 이론에 답하는 데 도움이 될 수 있습니다. 샘플링과 달리 쿼리를 사용하면 질문이 있는 데이터의 특정 부분을 제어하고 집중할 수 있습니다. +Pandas 라이브러리의 [`query()` 함수](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html)를 사용하면 열을 선택하고 간단한 검색된 행을 통해 데이터에 대한 답변을 제공받을 수 있습니다. + +## 시각화를 통한 탐색 +시각화 생성을 시작하기 위해 데이터가 완전히 정리되고 분석될 때까지 기다릴 필요가 없습니다. 실제로 탐색하는 동안 시각적 표현이 있으면 데이터의 패턴, 관계 및 문제를 식별하는 데 도움이 될 수 있습니다. 또한, 시각화는 데이터 관리에 관여하지 않는 사람들과 의사 소통하는 수단을 제공하고 캡처 단계에서 해결되지 않은 추가 질문을 공유하고 명확히 할 수 있는 기회가 될 수 있습니다. 시각적으로 탐색하는 몇 가지 인기 있는 방법에 대해 자세히 알아보려면 [section on Visualizations](3-Data-Visualization)을 참조하세요. + +## 불일치 식별을 위한 탐색 +이 강의의 모든 주제는 누락되거나 일치하지 않는 값을 식별하는 데 도움이 될 수 있지만 Pandas는 이러한 값 중 일부를 확인하는 기능을 제공합니다. [isna() 또는 isnull()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.isna.html)에서 결측값을 확인할 수 있습니다. 데이터 내에서 이러한 값을 탐구할 때 중요한 한 가지 요소는 처음에 이러한 값이 왜 이렇게 되었는지 이유를 탐구하는 것입니다. 이는 [문제 해결을 위해 취해야 할 조치](2-Working-With-Data\08-data-preparation\notebook.ipynb)를 결정하는 데 도움이 될 수 있습니다. + +## [강의 전 퀴즈](https://red-water-0103e7a0f.azurestaticapps.net/quiz/27) + +## 과제 + +[Exploring for answers](assignment.md) diff --git a/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ko.md b/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ko.md new file mode 100644 index 00000000..882c40a0 --- /dev/null +++ b/4-Data-Science-Lifecycle/15-analyzing/translations/assignment.ko.md @@ -0,0 +1,22 @@ +# 정답 찾기 + +이는 지난 강의의 [assignment](..\14-Introduction\assignment.md)와 이어지며, 우리는 잠시 데이터셋을 살펴보았습니다. 이제 데이터를 더욱 자세히 살펴보겠습니다. + +다시 한번, 고객이 알고싶어하는 질문: **뉴욕의 노란 택시 승객들은 겨울이나 여름에 기사들에게 팁을 더 많이 주나요?** + +당신의 팀은 Data Science Lifecycle의 [Analyzing](Readme.md)단계에 있으며, 이 곳에서 데이터셋에 대한 탐색적 데이터분석을 수행해야합니다. 당신은 2019년 1월부터 7월까지 200건의 택시 거래가 포함된 노트북과 데이터셋을 제공받았습니다. + +## 지시사항 + +이 디렉토리에는 [notebook](assignment.ipynb)와 [Taxi & Limousine Commission](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets)의 데이터가 있습니다. 데이터에 대한 자세한 내용은 [dataset's dictionary](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) 및 [user guide](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf)를 참조하세요. + +이번 강의에서 배운 몇 가지 기술을 사용하여 노트북에 있는 EDA를 직접 수행하고(원하는 경우 셀 추가) 다음 질문에 답하십시오. + +- 데이터의 어떤 다른 영향이 팁 금액에 영향을 미칠 수 있습니까? +- 클라이언트의 질문에 답하는 데 가장 필요없는 열은 무엇입니까? +- 지금까지 제공된 자료에 따르면, 데이터가 계절별 팁에대한 증거를 제공하는 것 같습니까? + +## Rubric + +모범 | 충분 | 개선 필요 +--- | --- | -- | From a0415e4c967e67597f9b39076befb693076cb80d Mon Sep 17 00:00:00 2001 From: qzylalala <304228244@qq.com> Date: Sun, 7 Nov 2021 21:16:59 +0800 Subject: [PATCH 152/234] [zh-cn] 3/README --- .../translations/README.zh-cn.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 3-Data-Visualization/translations/README.zh-cn.md diff --git a/3-Data-Visualization/translations/README.zh-cn.md b/3-Data-Visualization/translations/README.zh-cn.md new file mode 100644 index 00000000..2a5393fa --- /dev/null +++ b/3-Data-Visualization/translations/README.zh-cn.md @@ -0,0 +1,28 @@ +# 可视化 + +![a bee on a lavender flower](../images/bee.jpg) +> 拍摄者 Jenna Lee 上传于 Unsplash + +数据可视化是数据科学家最重要的任务之一。一张图片有时胜过千言万语,同时可视化还可以帮助你指出你的数据中包含的各种有趣的特征,例如峰值、异常值、分组、趋势等等,这可以帮助你更好的了解你的数据。 + +在这五节课当中,你将接触到来源于大自然的数据,并使用各种不同的技术来完成有趣且漂亮的可视化。 + +### 主题 + +1. [可视化数据](../09-visualization-quantities/README.md) +1. [可视化数据分布](../10-visualization-distributions/README.md) +1. [可视化数据占比](../11-visualization-proportions/README.md) +1. [可视化数据间的关系](../12-visualization-relationships/README.md) +1. [做有意义的可视化](../13-meaningful-visualizations/README.md) + +### 致谢 + +这些可视化课程是由 [Jen Looper](https://twitter.com/jenlooper) 用 🌸 编写的 + +🍯 US Honey Production 所使用的数据来自 Jessica Li 在 [Kaggle](https://www.kaggle.com/jessicali9530/honey-production) 上的项目. 实际上,该 [数据集](https://usda.library.cornell.edu/concern/publications/rn301137d) 来自 [美国农业部](https://www.nass.usda.gov/About_NASS/index.php). + +🍄 mushrooms 所使用的数据集也是来自于 [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) ,该数据集经历过 Hatteras Dunton 的一些小修订. 该数据集包括对与姬松茸和环柄菇属中 23 种金针菇相对应的假设样本的描述。 蘑菇取自于奥杜邦协会北美蘑菇野外指南 (1981)。 该数据集于 1987 年捐赠给了 UCI ML(机器学习数据集仓库) 27 + +🦆 Minnesota Birds 的数据也来自于 [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) ,是由 Hannah Collins 从 [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) 中获取的. + +以上这些数据集都遵循 [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/) 条款. \ No newline at end of file From c3deb5759b54e9d02e581f9c5efec647f097974a Mon Sep 17 00:00:00 2001 From: JULO01 <90795588+JULO01@users.noreply.github.com> Date: Sun, 7 Nov 2021 14:51:33 +0100 Subject: [PATCH 153/234] Fixed Navigation Bar scaling of quiz-app --- quiz-app/src/App.vue | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/quiz-app/src/App.vue b/quiz-app/src/App.vue index 65b54a08..8b5365df 100644 --- a/quiz-app/src/App.vue +++ b/quiz-app/src/App.vue @@ -1,14 +1,21 @@